From b393bba073a6fdbc587a8a007115582ddc44dda3 Mon Sep 17 00:00:00 2001 From: Marc Mintel Date: Thu, 7 May 2026 11:40:47 +0200 Subject: [PATCH] refactor: enforce global Button component usage across all files (Header, Forms, Grids, MDX) Former-commit-id: aa55620667a28e5c00ab2603da6ea6dc1e1c5ecf --- .next/BUILD_ID | 2 +- .next/build-manifest.json | 10 +++---- .next/fallback-build-manifest.json | 4 +-- .next/required-server-files.js | 2 +- .next/required-server-files.json | 2 +- .next/server/app/[locale]/[slug]/page.js | 8 ++--- .../app/[locale]/[slug]/page.js.nft.json | 2 +- .../[locale]/[slug]/page/build-manifest.json | 6 ++-- .../[slug]/page/react-loadable-manifest.json | 11 ++++--- .../[slug]/page_client-reference-manifest.js | 2 +- .next/server/app/[locale]/blog/[slug]/page.js | 6 ++-- .../app/[locale]/blog/[slug]/page.js.nft.json | 2 +- .../blog/[slug]/page/build-manifest.json | 6 ++-- .../[slug]/page/react-loadable-manifest.json | 11 ++++--- .../[slug]/page_client-reference-manifest.js | 2 +- .next/server/app/[locale]/blog/page.js | 10 +++---- .../server/app/[locale]/blog/page.js.nft.json | 2 +- .../[locale]/blog/page/build-manifest.json | 6 ++-- .../blog/page/react-loadable-manifest.json | 11 ++++--- .../blog/page_client-reference-manifest.js | 2 +- .next/server/app/[locale]/contact/page.js | 10 +++---- .../app/[locale]/contact/page.js.nft.json | 2 +- .../[locale]/contact/page/build-manifest.json | 6 ++-- .../contact/page/react-loadable-manifest.json | 11 ++++--- .../contact/page_client-reference-manifest.js | 2 +- .next/server/app/[locale]/page.js | 10 +++---- .next/server/app/[locale]/page.js.nft.json | 2 +- .../app/[locale]/page/build-manifest.json | 6 ++-- .../page/react-loadable-manifest.json | 11 ++++--- .../page_client-reference-manifest.js | 2 +- .next/server/app/[locale]/team/page.js | 10 +++---- .../server/app/[locale]/team/page.js.nft.json | 2 +- .../[locale]/team/page/build-manifest.json | 6 ++-- .../team/page/react-loadable-manifest.json | 11 ++++--- .../team/page_client-reference-manifest.js | 2 +- .next/server/app/[locale]/test/page.js | 10 +++---- .../server/app/[locale]/test/page.js.nft.json | 2 +- .../[locale]/test/page/build-manifest.json | 6 ++-- .../test/page/react-loadable-manifest.json | 11 ++++--- .../test/page_client-reference-manifest.js | 2 +- .next/server/app/_global-error.html | 4 +-- .next/server/app/_global-error.rsc | 2 +- .../__PAGE__.segment.rsc | 2 +- .../_global-error.segments/_full.segment.rsc | 2 +- .../_global-error.segments/_head.segment.rsc | 2 +- .../_global-error.segments/_index.segment.rsc | 2 +- .../_global-error.segments/_tree.segment.rsc | 2 +- .../_global-error/page/build-manifest.json | 6 ++-- .next/server/app/_not-found.html | 2 +- .next/server/app/_not-found.rsc | 2 +- .../app/_not-found.segments/_full.segment.rsc | 2 +- .../app/_not-found.segments/_head.segment.rsc | 2 +- .../_not-found.segments/_index.segment.rsc | 2 +- .../_not-found.segment.rsc | 2 +- .../_not-found/__PAGE__.segment.rsc | 2 +- .../app/_not-found.segments/_tree.segment.rsc | 2 +- .next/server/app/_not-found/page.js.nft.json | 2 +- .../app/_not-found/page/build-manifest.json | 6 ++-- .../page_client-reference-manifest.js | 2 +- .next/server/app/test.html | 2 +- .next/server/app/test.rsc | 2 +- .../app/test.segments/_full.segment.rsc | 2 +- .../app/test.segments/_head.segment.rsc | 2 +- .../app/test.segments/_index.segment.rsc | 2 +- .../app/test.segments/_tree.segment.rsc | 2 +- .../server/app/test.segments/test.segment.rsc | 2 +- .../test.segments/test/__PAGE__.segment.rsc | 2 +- .next/server/app/test/page.js.nft.json | 2 +- .../server/app/test/page/build-manifest.json | 6 ++-- .../test/page_client-reference-manifest.js | 2 +- .../chunks/node_modules__pnpm_b4ece637._.js | 6 ++-- .../node_modules__pnpm_b4ece637._.js.map | 2 +- .../chunks/ssr/468ab_next_dist_6d1ec603._.js | 8 ----- .../ssr/468ab_next_dist_6d1ec603._.js.map | 7 ----- .../ssr/468ab_next_dist_bc66fa15._.js.map | 7 ----- ...js => [root-of-the-server]__00212f08._.js} | 2 +- ...> [root-of-the-server]__00212f08._.js.map} | 0 ...js => [root-of-the-server]__047498e4._.js} | 2 +- ...> [root-of-the-server]__047498e4._.js.map} | 0 ...js => [root-of-the-server]__0acb6d60._.js} | 2 +- ...> [root-of-the-server]__0acb6d60._.js.map} | 0 .../ssr/[root-of-the-server]__0bdab930._.js | 5 ++++ .../[root-of-the-server]__0bdab930._.js.map | 7 +++++ .../ssr/[root-of-the-server]__28a191f2._.js | 5 ---- .../[root-of-the-server]__28a191f2._.js.map | 7 ----- .../ssr/[root-of-the-server]__2da52317._.js | 5 ++++ .../[root-of-the-server]__2da52317._.js.map | 7 +++++ .../ssr/[root-of-the-server]__2e5112e6._.js | 6 ++-- .../[root-of-the-server]__2e5112e6._.js.map | 4 +-- .../ssr/[root-of-the-server]__34977423._.js | 5 ++++ .../[root-of-the-server]__34977423._.js.map | 7 +++++ .../ssr/[root-of-the-server]__4f559f29._.js} | 8 ++--- ...> [root-of-the-server]__4f559f29._.js.map} | 2 +- .../ssr/[root-of-the-server]__515fce6c._.js | 5 ++++ .../[root-of-the-server]__515fce6c._.js.map | 7 +++++ ...js => [root-of-the-server]__5209d0e9._.js} | 2 +- ...> [root-of-the-server]__5209d0e9._.js.map} | 0 .../ssr/[root-of-the-server]__5bbfddd1._.js | 5 ---- .../[root-of-the-server]__5bbfddd1._.js.map | 7 ----- .../ssr/[root-of-the-server]__63a582be._.js | 5 ++++ .../[root-of-the-server]__63a582be._.js.map | 7 +++++ .../ssr/[root-of-the-server]__6a2afcd0._.js | 5 ---- .../[root-of-the-server]__6a2afcd0._.js.map | 7 ----- .../ssr/[root-of-the-server]__7fda9c9f._.js | 5 ++++ .../[root-of-the-server]__7fda9c9f._.js.map | 7 +++++ .../ssr/[root-of-the-server]__a965d2a8._.js | 5 ---- .../ssr/[root-of-the-server]__b17bd572._.js | 5 ---- .../[root-of-the-server]__b17bd572._.js.map | 7 ----- .../ssr/[root-of-the-server]__b20a6437._.js | 5 ++++ .../[root-of-the-server]__b20a6437._.js.map | 7 +++++ .../ssr/[root-of-the-server]__bc83295f._.js | 5 ---- .../ssr/[root-of-the-server]__cf9f2fa5._.js | 5 ++++ ...> [root-of-the-server]__cf9f2fa5._.js.map} | 0 .../ssr/[root-of-the-server]__d3969a9f._.js | 5 ++++ ...> [root-of-the-server]__d3969a9f._.js.map} | 0 .../ssr/[root-of-the-server]__eb368494._.js | 6 ++-- .../[root-of-the-server]__eb368494._.js.map | 4 +-- .../ssr/[root-of-the-server]__f153a21f._.js | 5 ---- .../[root-of-the-server]__f153a21f._.js.map | 7 ----- .../ssr/[root-of-the-server]__f939d130._.js | 5 ---- .../[root-of-the-server]__f939d130._.js.map | 7 ----- ...js => [root-of-the-server]__fb2ceaaf._.js} | 8 ++--- ...> [root-of-the-server]__fb2ceaaf._.js.map} | 4 +-- .../ssr/[root-of-the-server]__fceaebac._.js | 5 ---- .../[root-of-the-server]__fceaebac._.js.map | 7 ----- .next/server/chunks/ssr/_106014c9._.js | 5 ---- .next/server/chunks/ssr/_106014c9._.js.map | 7 ----- .../chunks/ssr/_16003e4d._.js} | 11 ++++--- .next/server/chunks/ssr/_16003e4d._.js.map | 7 +++++ .next/server/chunks/ssr/_3cfbee09._.js | 5 ---- .next/server/chunks/ssr/_3cfbee09._.js.map | 7 ----- .next/server/chunks/ssr/_45bb404c._.js | 5 ---- .next/server/chunks/ssr/_45bb404c._.js.map | 7 ----- .next/server/chunks/ssr/_49a7ffbe._.js | 5 ---- .next/server/chunks/ssr/_49a7ffbe._.js.map | 7 ----- .../ssr/{_536bc82a._.js => _6189c8b5._.js} | 8 ++--- ...{_536bc82a._.js.map => _6189c8b5._.js.map} | 4 +-- .next/server/chunks/ssr/_7a317879._.js | 5 ---- .next/server/chunks/ssr/_7a317879._.js.map | 7 ----- .next/server/chunks/ssr/_7ce8a06e._.js | 5 ++++ .next/server/chunks/ssr/_7ce8a06e._.js.map | 7 +++++ .next/server/chunks/ssr/_90fa5b69._.js | 5 ++++ .next/server/chunks/ssr/_90fa5b69._.js.map | 7 +++++ .next/server/chunks/ssr/_c364a7fb._.js | 5 ++++ .next/server/chunks/ssr/_c364a7fb._.js.map | 7 +++++ .next/server/chunks/ssr/_c3cb4fd0._.js | 6 ++-- .next/server/chunks/ssr/_c3cb4fd0._.js.map | 4 +-- .next/server/chunks/ssr/_d825b83f._.js | 5 ++++ .next/server/chunks/ssr/_d825b83f._.js.map | 7 +++++ .next/server/chunks/ssr/_f1e03d27._.js | 5 ++++ .next/server/chunks/ssr/_f1e03d27._.js.map | 7 +++++ .../chunks/ssr/components_1268b55f._.js | 5 ---- .../chunks/ssr/components_1268b55f._.js.map | 7 ----- .../chunks/ssr/components_4d1233ab._.js.map | 7 ----- .../chunks/ssr/components_5d55bae9._.js | 5 ++++ .../chunks/ssr/components_5d55bae9._.js.map | 7 +++++ .../chunks/ssr/components_64b50741._.js | 5 ---- .../chunks/ssr/components_64b50741._.js.map | 7 ----- .../ssr/components_blocks_05eea213._.js | 5 ++++ .../ssr/components_blocks_05eea213._.js.map | 7 +++++ .../chunks/ssr/components_ui_6a2a3715._.js} | 8 ++--- .../ssr/components_ui_6a2a3715._.js.map | 7 +++++ .../ssr/components_ui_utils_ts_f85ae7af._.js | 5 ---- .../components_ui_utils_ts_f85ae7af._.js.map | 7 ----- .../ssr/node_modules__pnpm_2ad0b5ae._.js | 6 ++-- .../ssr/node_modules__pnpm_2ad0b5ae._.js.map | 2 +- .../ssr/node_modules__pnpm_66399b09._.js | 6 ++-- .../ssr/node_modules__pnpm_66399b09._.js.map | 2 +- .next/server/middleware-build-manifest.js | 6 ++-- .next/server/pages/404.html | 2 +- .next/server/pages/500.html | 4 +-- .next/standalone/.next/BUILD_ID | 2 +- .next/standalone/.next/build-manifest.json | 10 +++---- .../.next/required-server-files.json | 2 +- .../.next/server/app/[locale]/[slug]/page.js | 8 ++--- .../app/[locale]/[slug]/page.js.nft.json | 2 +- .../[locale]/[slug]/page/build-manifest.json | 6 ++-- .../[slug]/page/react-loadable-manifest.json | 11 ++++--- .../[slug]/page_client-reference-manifest.js | 2 +- .../server/app/[locale]/blog/[slug]/page.js | 6 ++-- .../app/[locale]/blog/[slug]/page.js.nft.json | 2 +- .../blog/[slug]/page/build-manifest.json | 6 ++-- .../[slug]/page/react-loadable-manifest.json | 11 ++++--- .../[slug]/page_client-reference-manifest.js | 2 +- .../.next/server/app/[locale]/blog/page.js | 10 +++---- .../server/app/[locale]/blog/page.js.nft.json | 2 +- .../[locale]/blog/page/build-manifest.json | 6 ++-- .../blog/page/react-loadable-manifest.json | 11 ++++--- .../blog/page_client-reference-manifest.js | 2 +- .../.next/server/app/[locale]/contact/page.js | 10 +++---- .../app/[locale]/contact/page.js.nft.json | 2 +- .../[locale]/contact/page/build-manifest.json | 6 ++-- .../contact/page/react-loadable-manifest.json | 11 ++++--- .../contact/page_client-reference-manifest.js | 2 +- .../.next/server/app/[locale]/page.js | 10 +++---- .../server/app/[locale]/page.js.nft.json | 2 +- .../app/[locale]/page/build-manifest.json | 6 ++-- .../page/react-loadable-manifest.json | 11 ++++--- .../page_client-reference-manifest.js | 2 +- .../.next/server/app/[locale]/team/page.js | 10 +++---- .../server/app/[locale]/team/page.js.nft.json | 2 +- .../[locale]/team/page/build-manifest.json | 6 ++-- .../team/page/react-loadable-manifest.json | 11 ++++--- .../team/page_client-reference-manifest.js | 2 +- .../.next/server/app/[locale]/test/page.js | 10 +++---- .../server/app/[locale]/test/page.js.nft.json | 2 +- .../[locale]/test/page/build-manifest.json | 6 ++-- .../test/page/react-loadable-manifest.json | 11 ++++--- .../test/page_client-reference-manifest.js | 2 +- .../.next/server/app/_global-error.html | 4 +-- .../.next/server/app/_global-error.rsc | 2 +- .../__PAGE__.segment.rsc | 2 +- .../_global-error.segments/_full.segment.rsc | 2 +- .../_global-error.segments/_head.segment.rsc | 2 +- .../_global-error.segments/_index.segment.rsc | 2 +- .../_global-error.segments/_tree.segment.rsc | 2 +- .../_global-error/page/build-manifest.json | 6 ++-- .../.next/server/app/_not-found.html | 2 +- .../.next/server/app/_not-found.rsc | 2 +- .../app/_not-found.segments/_full.segment.rsc | 2 +- .../app/_not-found.segments/_head.segment.rsc | 2 +- .../_not-found.segments/_index.segment.rsc | 2 +- .../_not-found.segment.rsc | 2 +- .../_not-found/__PAGE__.segment.rsc | 2 +- .../app/_not-found.segments/_tree.segment.rsc | 2 +- .../server/app/_not-found/page.js.nft.json | 2 +- .../app/_not-found/page/build-manifest.json | 6 ++-- .../page_client-reference-manifest.js | 2 +- .next/standalone/.next/server/app/test.html | 2 +- .next/standalone/.next/server/app/test.rsc | 2 +- .../app/test.segments/_full.segment.rsc | 2 +- .../app/test.segments/_head.segment.rsc | 2 +- .../app/test.segments/_index.segment.rsc | 2 +- .../app/test.segments/_tree.segment.rsc | 2 +- .../server/app/test.segments/test.segment.rsc | 2 +- .../test.segments/test/__PAGE__.segment.rsc | 2 +- .../.next/server/app/test/page.js.nft.json | 2 +- .../server/app/test/page/build-manifest.json | 6 ++-- .../test/page_client-reference-manifest.js | 2 +- .../chunks/node_modules__pnpm_b4ece637._.js | 6 ++-- .../chunks/ssr/468ab_next_dist_6d1ec603._.js | 8 ----- .../ssr/[root-of-the-server]__00212f08._.js | 5 ++++ .../ssr/[root-of-the-server]__047498e4._.js | 5 ++++ .../ssr/[root-of-the-server]__0acb6d60._.js | 5 ++++ .../ssr/[root-of-the-server]__0bdab930._.js | 5 ++++ .../ssr/[root-of-the-server]__22b888eb._.js | 5 ---- .../ssr/[root-of-the-server]__28a191f2._.js | 5 ---- .../ssr/[root-of-the-server]__2da52317._.js | 5 ++++ .../ssr/[root-of-the-server]__2e5112e6._.js | 6 ++-- .../ssr/[root-of-the-server]__34977423._.js | 5 ++++ .../ssr/[root-of-the-server]__4f559f29._.js} | 8 ++--- .../ssr/[root-of-the-server]__515fce6c._.js | 5 ++++ .../ssr/[root-of-the-server]__5209d0e9._.js | 5 ++++ .../ssr/[root-of-the-server]__57266d7f._.js | 5 ---- .../ssr/[root-of-the-server]__5bbfddd1._.js | 5 ---- .../ssr/[root-of-the-server]__63a582be._.js | 5 ++++ .../ssr/[root-of-the-server]__6a2afcd0._.js | 5 ---- .../ssr/[root-of-the-server]__6bb30663._.js | 5 ---- .../ssr/[root-of-the-server]__7fda9c9f._.js | 5 ++++ .../ssr/[root-of-the-server]__9aa0d618._.js | 5 ---- .../ssr/[root-of-the-server]__a965d2a8._.js | 5 ---- .../ssr/[root-of-the-server]__b17bd572._.js | 5 ---- .../ssr/[root-of-the-server]__b20a6437._.js | 5 ++++ .../ssr/[root-of-the-server]__bc83295f._.js | 5 ---- .../ssr/[root-of-the-server]__cf9f2fa5._.js | 5 ++++ .../ssr/[root-of-the-server]__d3969a9f._.js | 5 ++++ .../ssr/[root-of-the-server]__eb368494._.js | 6 ++-- .../ssr/[root-of-the-server]__f153a21f._.js | 5 ---- .../ssr/[root-of-the-server]__f939d130._.js | 5 ---- ...js => [root-of-the-server]__fb2ceaaf._.js} | 8 ++--- .../ssr/[root-of-the-server]__fceaebac._.js | 5 ---- .../.next/server/chunks/ssr/_106014c9._.js | 5 ---- .../.next/server/chunks/ssr/_16003e4d._.js} | 11 ++++--- .../.next/server/chunks/ssr/_3cfbee09._.js | 5 ---- .../.next/server/chunks/ssr/_45bb404c._.js | 5 ---- .../.next/server/chunks/ssr/_49a7ffbe._.js | 5 ---- .../ssr/{_536bc82a._.js => _6189c8b5._.js} | 8 ++--- .../.next/server/chunks/ssr/_7a317879._.js | 5 ---- .../.next/server/chunks/ssr/_7ce8a06e._.js | 5 ++++ .../.next/server/chunks/ssr/_90fa5b69._.js | 5 ++++ .../.next/server/chunks/ssr/_c364a7fb._.js | 5 ++++ .../.next/server/chunks/ssr/_c3cb4fd0._.js | 6 ++-- .../.next/server/chunks/ssr/_d825b83f._.js | 5 ++++ .../.next/server/chunks/ssr/_f1e03d27._.js | 5 ++++ .../chunks/ssr/components_1268b55f._.js | 5 ---- .../chunks/ssr/components_5d55bae9._.js | 5 ++++ .../chunks/ssr/components_64b50741._.js | 5 ---- .../ssr/components_blocks_05eea213._.js | 5 ++++ .../chunks/ssr/components_ui_6a2a3715._.js} | 8 ++--- .../ssr/components_ui_utils_ts_f85ae7af._.js | 5 ---- .../ssr/node_modules__pnpm_2ad0b5ae._.js | 6 ++-- .../ssr/node_modules__pnpm_66399b09._.js | 6 ++-- .../.next/server/middleware-build-manifest.js | 6 ++-- .next/standalone/.next/server/pages/404.html | 2 +- .next/standalone/.next/server/pages/500.html | 4 +-- .next/standalone/content/de/home.mdx | 29 ++++++++++++++++-- .next/standalone/content/en/home.mdx | 29 ++++++++++++++++-- .next/standalone/server.js | 2 +- .../_buildManifest.js | 0 .../_clientMiddlewareManifest.json | 0 .../_ssgManifest.js | 0 .next/static/chunks/0a765fb53d81ccec.js | 4 --- .next/static/chunks/11cc0f2e00ba9563.js | 4 +++ .next/static/chunks/1f1682674618b971.js | 4 --- ...6d825876541b2df.js => 1f783c97b273e603.js} | 6 ++-- ...99046ae195fe277.js => 32fec23faa4b171a.js} | 6 ++-- .next/static/chunks/3f652f1a7128a03a.css | 1 + .next/static/chunks/49a11913baa3bac9.js | 4 --- .next/static/chunks/595f4cd305cd0088.js | 6 ++++ .next/static/chunks/650cc12d707f2be0.js | 4 +++ .next/static/chunks/6640bcd504ed2815.js | 12 ++++++++ .next/static/chunks/76668d2ab61cd4a8.js | 12 -------- ...578f418b9661eaf.js => 844db355c06db065.js} | 6 ++-- .next/static/chunks/928be433d65b40cc.css | 1 - .next/static/chunks/981b2323ce5143ef.js | 4 +++ .next/static/chunks/a147e5875d1faa83.js | 4 +++ .next/static/chunks/ab5e3144c40ca7be.js | 4 --- ...e4487a1c38504b3.js => b02fdfb08ad720b0.js} | 6 ++-- .next/static/chunks/b263a60573bfd155.js | 7 +++++ .next/static/chunks/b550ef5d0ebc89bc.js | 4 --- .next/static/chunks/b62c08cc490fef16.js | 7 ----- .next/static/chunks/b6898185462c2fee.js | 4 +++ .next/static/chunks/b786cbc2e9238523.js | 6 ---- ...d4a06e69ee5f0c8.js => c1fbbe823a34b6d4.js} | 6 ++-- ...6d16f278f687ad0.js => d62bf387414e0748.js} | 6 ++-- ...86ed0e5ea629175.js => e91fc49c513620bc.js} | 6 ++-- .next/static/chunks/f51290069c969e8a.js | 4 --- .next/static/chunks/fac3383571a5e891.js | 4 +++ .next/static/chunks/fb4360ef78ba79a7.js | 4 --- ...fa1fc1d8df71347.js => ff6db6d7946b9f90.js} | 6 ++-- ...f1f21.js => turbopack-721eb9b8c3f79e29.js} | 8 ++--- .next/trace | 2 +- .next/trace-build | 2 +- app/[locale]/[slug]/page.tsx | 2 ++ app/[locale]/page.tsx | 3 ++ components/blocks/CompetenceBentoGrid.tsx | 5 ++-- components/blocks/JobListingBlock.tsx | 5 +++- components/forms/ContactForm.tsx | 9 ++++-- components/layout/Header.tsx | 8 +++-- content/de/home.mdx | 30 +++++++++---------- content/en/home.mdx | 30 +++++++++---------- 341 files changed, 885 insertions(+), 877 deletions(-) delete mode 100644 .next/server/chunks/ssr/468ab_next_dist_6d1ec603._.js delete mode 100644 .next/server/chunks/ssr/468ab_next_dist_6d1ec603._.js.map delete mode 100644 .next/server/chunks/ssr/468ab_next_dist_bc66fa15._.js.map rename .next/server/chunks/ssr/{[root-of-the-server]__57266d7f._.js => [root-of-the-server]__00212f08._.js} (99%) rename .next/server/chunks/ssr/{[root-of-the-server]__22b888eb._.js.map => [root-of-the-server]__00212f08._.js.map} (100%) rename .next/server/chunks/ssr/{[root-of-the-server]__22b888eb._.js => [root-of-the-server]__047498e4._.js} (99%) rename .next/server/chunks/ssr/{[root-of-the-server]__57266d7f._.js.map => [root-of-the-server]__047498e4._.js.map} (100%) rename .next/server/chunks/ssr/{[root-of-the-server]__9aa0d618._.js => [root-of-the-server]__0acb6d60._.js} (99%) rename .next/server/chunks/ssr/{[root-of-the-server]__6bb30663._.js.map => [root-of-the-server]__0acb6d60._.js.map} (100%) create mode 100644 .next/server/chunks/ssr/[root-of-the-server]__0bdab930._.js create mode 100644 .next/server/chunks/ssr/[root-of-the-server]__0bdab930._.js.map delete mode 100644 .next/server/chunks/ssr/[root-of-the-server]__28a191f2._.js delete mode 100644 .next/server/chunks/ssr/[root-of-the-server]__28a191f2._.js.map create mode 100644 .next/server/chunks/ssr/[root-of-the-server]__2da52317._.js create mode 100644 .next/server/chunks/ssr/[root-of-the-server]__2da52317._.js.map create mode 100644 .next/server/chunks/ssr/[root-of-the-server]__34977423._.js create mode 100644 .next/server/chunks/ssr/[root-of-the-server]__34977423._.js.map rename .next/{standalone/.next/server/chunks/ssr/[root-of-the-server]__3b46c561._.js => server/chunks/ssr/[root-of-the-server]__4f559f29._.js} (94%) rename .next/server/chunks/ssr/{[root-of-the-server]__3b46c561._.js.map => [root-of-the-server]__4f559f29._.js.map} (99%) create mode 100644 .next/server/chunks/ssr/[root-of-the-server]__515fce6c._.js create mode 100644 .next/server/chunks/ssr/[root-of-the-server]__515fce6c._.js.map rename .next/server/chunks/ssr/{[root-of-the-server]__6bb30663._.js => [root-of-the-server]__5209d0e9._.js} (99%) rename .next/server/chunks/ssr/{[root-of-the-server]__9aa0d618._.js.map => [root-of-the-server]__5209d0e9._.js.map} (100%) delete mode 100644 .next/server/chunks/ssr/[root-of-the-server]__5bbfddd1._.js delete mode 100644 .next/server/chunks/ssr/[root-of-the-server]__5bbfddd1._.js.map create mode 100644 .next/server/chunks/ssr/[root-of-the-server]__63a582be._.js create mode 100644 .next/server/chunks/ssr/[root-of-the-server]__63a582be._.js.map delete mode 100644 .next/server/chunks/ssr/[root-of-the-server]__6a2afcd0._.js delete mode 100644 .next/server/chunks/ssr/[root-of-the-server]__6a2afcd0._.js.map create mode 100644 .next/server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js create mode 100644 .next/server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js.map delete mode 100644 .next/server/chunks/ssr/[root-of-the-server]__a965d2a8._.js delete mode 100644 .next/server/chunks/ssr/[root-of-the-server]__b17bd572._.js delete mode 100644 .next/server/chunks/ssr/[root-of-the-server]__b17bd572._.js.map create mode 100644 .next/server/chunks/ssr/[root-of-the-server]__b20a6437._.js create mode 100644 .next/server/chunks/ssr/[root-of-the-server]__b20a6437._.js.map delete mode 100644 .next/server/chunks/ssr/[root-of-the-server]__bc83295f._.js create mode 100644 .next/server/chunks/ssr/[root-of-the-server]__cf9f2fa5._.js rename .next/server/chunks/ssr/{[root-of-the-server]__a965d2a8._.js.map => [root-of-the-server]__cf9f2fa5._.js.map} (100%) create mode 100644 .next/server/chunks/ssr/[root-of-the-server]__d3969a9f._.js rename .next/server/chunks/ssr/{[root-of-the-server]__bc83295f._.js.map => [root-of-the-server]__d3969a9f._.js.map} (100%) delete mode 100644 .next/server/chunks/ssr/[root-of-the-server]__f153a21f._.js delete mode 100644 .next/server/chunks/ssr/[root-of-the-server]__f153a21f._.js.map delete mode 100644 .next/server/chunks/ssr/[root-of-the-server]__f939d130._.js delete mode 100644 .next/server/chunks/ssr/[root-of-the-server]__f939d130._.js.map rename .next/server/chunks/ssr/{[root-of-the-server]__1fc7332e._.js => [root-of-the-server]__fb2ceaaf._.js} (64%) rename .next/server/chunks/ssr/{[root-of-the-server]__1fc7332e._.js.map => [root-of-the-server]__fb2ceaaf._.js.map} (88%) delete mode 100644 .next/server/chunks/ssr/[root-of-the-server]__fceaebac._.js delete mode 100644 .next/server/chunks/ssr/[root-of-the-server]__fceaebac._.js.map delete mode 100644 .next/server/chunks/ssr/_106014c9._.js delete mode 100644 .next/server/chunks/ssr/_106014c9._.js.map rename .next/{standalone/.next/server/chunks/ssr/468ab_next_dist_bc66fa15._.js => server/chunks/ssr/_16003e4d._.js} (63%) create mode 100644 .next/server/chunks/ssr/_16003e4d._.js.map delete mode 100644 .next/server/chunks/ssr/_3cfbee09._.js delete mode 100644 .next/server/chunks/ssr/_3cfbee09._.js.map delete mode 100644 .next/server/chunks/ssr/_45bb404c._.js delete mode 100644 .next/server/chunks/ssr/_45bb404c._.js.map delete mode 100644 .next/server/chunks/ssr/_49a7ffbe._.js delete mode 100644 .next/server/chunks/ssr/_49a7ffbe._.js.map rename .next/server/chunks/ssr/{_536bc82a._.js => _6189c8b5._.js} (94%) rename .next/server/chunks/ssr/{_536bc82a._.js.map => _6189c8b5._.js.map} (99%) delete mode 100644 .next/server/chunks/ssr/_7a317879._.js delete mode 100644 .next/server/chunks/ssr/_7a317879._.js.map create mode 100644 .next/server/chunks/ssr/_7ce8a06e._.js create mode 100644 .next/server/chunks/ssr/_7ce8a06e._.js.map create mode 100644 .next/server/chunks/ssr/_90fa5b69._.js create mode 100644 .next/server/chunks/ssr/_90fa5b69._.js.map create mode 100644 .next/server/chunks/ssr/_c364a7fb._.js create mode 100644 .next/server/chunks/ssr/_c364a7fb._.js.map create mode 100644 .next/server/chunks/ssr/_d825b83f._.js create mode 100644 .next/server/chunks/ssr/_d825b83f._.js.map create mode 100644 .next/server/chunks/ssr/_f1e03d27._.js create mode 100644 .next/server/chunks/ssr/_f1e03d27._.js.map delete mode 100644 .next/server/chunks/ssr/components_1268b55f._.js delete mode 100644 .next/server/chunks/ssr/components_1268b55f._.js.map delete mode 100644 .next/server/chunks/ssr/components_4d1233ab._.js.map create mode 100644 .next/server/chunks/ssr/components_5d55bae9._.js create mode 100644 .next/server/chunks/ssr/components_5d55bae9._.js.map delete mode 100644 .next/server/chunks/ssr/components_64b50741._.js delete mode 100644 .next/server/chunks/ssr/components_64b50741._.js.map create mode 100644 .next/server/chunks/ssr/components_blocks_05eea213._.js create mode 100644 .next/server/chunks/ssr/components_blocks_05eea213._.js.map rename .next/{standalone/.next/server/chunks/ssr/components_4d1233ab._.js => server/chunks/ssr/components_ui_6a2a3715._.js} (92%) create mode 100644 .next/server/chunks/ssr/components_ui_6a2a3715._.js.map delete mode 100644 .next/server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js delete mode 100644 .next/server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js.map delete mode 100644 .next/standalone/.next/server/chunks/ssr/468ab_next_dist_6d1ec603._.js create mode 100644 .next/standalone/.next/server/chunks/ssr/[root-of-the-server]__00212f08._.js create mode 100644 .next/standalone/.next/server/chunks/ssr/[root-of-the-server]__047498e4._.js create mode 100644 .next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0acb6d60._.js create mode 100644 .next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0bdab930._.js delete mode 100644 .next/standalone/.next/server/chunks/ssr/[root-of-the-server]__22b888eb._.js delete mode 100644 .next/standalone/.next/server/chunks/ssr/[root-of-the-server]__28a191f2._.js create mode 100644 .next/standalone/.next/server/chunks/ssr/[root-of-the-server]__2da52317._.js create mode 100644 .next/standalone/.next/server/chunks/ssr/[root-of-the-server]__34977423._.js rename .next/{server/chunks/ssr/[root-of-the-server]__3b46c561._.js => standalone/.next/server/chunks/ssr/[root-of-the-server]__4f559f29._.js} (94%) create mode 100644 .next/standalone/.next/server/chunks/ssr/[root-of-the-server]__515fce6c._.js create mode 100644 .next/standalone/.next/server/chunks/ssr/[root-of-the-server]__5209d0e9._.js delete mode 100644 .next/standalone/.next/server/chunks/ssr/[root-of-the-server]__57266d7f._.js delete mode 100644 .next/standalone/.next/server/chunks/ssr/[root-of-the-server]__5bbfddd1._.js create mode 100644 .next/standalone/.next/server/chunks/ssr/[root-of-the-server]__63a582be._.js delete mode 100644 .next/standalone/.next/server/chunks/ssr/[root-of-the-server]__6a2afcd0._.js delete mode 100644 .next/standalone/.next/server/chunks/ssr/[root-of-the-server]__6bb30663._.js create mode 100644 .next/standalone/.next/server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js delete mode 100644 .next/standalone/.next/server/chunks/ssr/[root-of-the-server]__9aa0d618._.js delete mode 100644 .next/standalone/.next/server/chunks/ssr/[root-of-the-server]__a965d2a8._.js delete mode 100644 .next/standalone/.next/server/chunks/ssr/[root-of-the-server]__b17bd572._.js create mode 100644 .next/standalone/.next/server/chunks/ssr/[root-of-the-server]__b20a6437._.js delete mode 100644 .next/standalone/.next/server/chunks/ssr/[root-of-the-server]__bc83295f._.js create mode 100644 .next/standalone/.next/server/chunks/ssr/[root-of-the-server]__cf9f2fa5._.js create mode 100644 .next/standalone/.next/server/chunks/ssr/[root-of-the-server]__d3969a9f._.js delete mode 100644 .next/standalone/.next/server/chunks/ssr/[root-of-the-server]__f153a21f._.js delete mode 100644 .next/standalone/.next/server/chunks/ssr/[root-of-the-server]__f939d130._.js rename .next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__1fc7332e._.js => [root-of-the-server]__fb2ceaaf._.js} (64%) delete mode 100644 .next/standalone/.next/server/chunks/ssr/[root-of-the-server]__fceaebac._.js delete mode 100644 .next/standalone/.next/server/chunks/ssr/_106014c9._.js rename .next/{server/chunks/ssr/468ab_next_dist_bc66fa15._.js => standalone/.next/server/chunks/ssr/_16003e4d._.js} (63%) delete mode 100644 .next/standalone/.next/server/chunks/ssr/_3cfbee09._.js delete mode 100644 .next/standalone/.next/server/chunks/ssr/_45bb404c._.js delete mode 100644 .next/standalone/.next/server/chunks/ssr/_49a7ffbe._.js rename .next/standalone/.next/server/chunks/ssr/{_536bc82a._.js => _6189c8b5._.js} (94%) delete mode 100644 .next/standalone/.next/server/chunks/ssr/_7a317879._.js create mode 100644 .next/standalone/.next/server/chunks/ssr/_7ce8a06e._.js create mode 100644 .next/standalone/.next/server/chunks/ssr/_90fa5b69._.js create mode 100644 .next/standalone/.next/server/chunks/ssr/_c364a7fb._.js create mode 100644 .next/standalone/.next/server/chunks/ssr/_d825b83f._.js create mode 100644 .next/standalone/.next/server/chunks/ssr/_f1e03d27._.js delete mode 100644 .next/standalone/.next/server/chunks/ssr/components_1268b55f._.js create mode 100644 .next/standalone/.next/server/chunks/ssr/components_5d55bae9._.js delete mode 100644 .next/standalone/.next/server/chunks/ssr/components_64b50741._.js create mode 100644 .next/standalone/.next/server/chunks/ssr/components_blocks_05eea213._.js rename .next/{server/chunks/ssr/components_4d1233ab._.js => standalone/.next/server/chunks/ssr/components_ui_6a2a3715._.js} (92%) delete mode 100644 .next/standalone/.next/server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js rename .next/static/{Wkpp63uvO0BZHP6YvXq4O => RNpp86I_Wwm4reXmuvbzY}/_buildManifest.js (100%) rename .next/static/{Wkpp63uvO0BZHP6YvXq4O => RNpp86I_Wwm4reXmuvbzY}/_clientMiddlewareManifest.json (100%) rename .next/static/{Wkpp63uvO0BZHP6YvXq4O => RNpp86I_Wwm4reXmuvbzY}/_ssgManifest.js (100%) delete mode 100644 .next/static/chunks/0a765fb53d81ccec.js create mode 100644 .next/static/chunks/11cc0f2e00ba9563.js delete mode 100644 .next/static/chunks/1f1682674618b971.js rename .next/static/chunks/{16d825876541b2df.js => 1f783c97b273e603.js} (59%) rename .next/static/chunks/{f99046ae195fe277.js => 32fec23faa4b171a.js} (99%) create mode 100644 .next/static/chunks/3f652f1a7128a03a.css delete mode 100644 .next/static/chunks/49a11913baa3bac9.js create mode 100644 .next/static/chunks/595f4cd305cd0088.js create mode 100644 .next/static/chunks/650cc12d707f2be0.js create mode 100644 .next/static/chunks/6640bcd504ed2815.js delete mode 100644 .next/static/chunks/76668d2ab61cd4a8.js rename .next/static/chunks/{d578f418b9661eaf.js => 844db355c06db065.js} (99%) delete mode 100644 .next/static/chunks/928be433d65b40cc.css create mode 100644 .next/static/chunks/981b2323ce5143ef.js create mode 100644 .next/static/chunks/a147e5875d1faa83.js delete mode 100644 .next/static/chunks/ab5e3144c40ca7be.js rename .next/static/chunks/{4e4487a1c38504b3.js => b02fdfb08ad720b0.js} (56%) create mode 100644 .next/static/chunks/b263a60573bfd155.js delete mode 100644 .next/static/chunks/b550ef5d0ebc89bc.js delete mode 100644 .next/static/chunks/b62c08cc490fef16.js create mode 100644 .next/static/chunks/b6898185462c2fee.js delete mode 100644 .next/static/chunks/b786cbc2e9238523.js rename .next/static/chunks/{4d4a06e69ee5f0c8.js => c1fbbe823a34b6d4.js} (51%) rename .next/static/chunks/{a6d16f278f687ad0.js => d62bf387414e0748.js} (98%) rename .next/static/chunks/{a86ed0e5ea629175.js => e91fc49c513620bc.js} (63%) delete mode 100644 .next/static/chunks/f51290069c969e8a.js create mode 100644 .next/static/chunks/fac3383571a5e891.js delete mode 100644 .next/static/chunks/fb4360ef78ba79a7.js rename .next/static/chunks/{1fa1fc1d8df71347.js => ff6db6d7946b9f90.js} (98%) rename .next/static/chunks/{turbopack-e5b78b2a7c8f1f21.js => turbopack-721eb9b8c3f79e29.js} (90%) diff --git a/.next/BUILD_ID b/.next/BUILD_ID index 6cd539a46..d03dbc4a3 100644 --- a/.next/BUILD_ID +++ b/.next/BUILD_ID @@ -1 +1 @@ -Wkpp63uvO0BZHP6YvXq4O \ No newline at end of file +RNpp86I_Wwm4reXmuvbzY \ No newline at end of file diff --git a/.next/build-manifest.json b/.next/build-manifest.json index 3077622cf..3409817a0 100644 --- a/.next/build-manifest.json +++ b/.next/build-manifest.json @@ -7,15 +7,15 @@ "static/chunks/a6dad97d9634a72d.js" ], "lowPriorityFiles": [ - "static/Wkpp63uvO0BZHP6YvXq4O/_ssgManifest.js", - "static/Wkpp63uvO0BZHP6YvXq4O/_buildManifest.js" + "static/RNpp86I_Wwm4reXmuvbzY/_ssgManifest.js", + "static/RNpp86I_Wwm4reXmuvbzY/_buildManifest.js" ], "rootMainFiles": [ "static/chunks/c68fc807b9365f18.js", - "static/chunks/f51290069c969e8a.js", + "static/chunks/b263a60573bfd155.js", "static/chunks/29297b02a438a66e.js", "static/chunks/fd7b24483a212e2f.js", - "static/chunks/b62c08cc490fef16.js", - "static/chunks/turbopack-e5b78b2a7c8f1f21.js" + "static/chunks/b6898185462c2fee.js", + "static/chunks/turbopack-721eb9b8c3f79e29.js" ] } \ No newline at end of file diff --git a/.next/fallback-build-manifest.json b/.next/fallback-build-manifest.json index fd78b9fd4..b8c6d9cbe 100644 --- a/.next/fallback-build-manifest.json +++ b/.next/fallback-build-manifest.json @@ -5,8 +5,8 @@ "devFiles": [], "polyfillFiles": [], "lowPriorityFiles": [ - "static/Wkpp63uvO0BZHP6YvXq4O/_ssgManifest.js", - "static/Wkpp63uvO0BZHP6YvXq4O/_buildManifest.js" + "static/RNpp86I_Wwm4reXmuvbzY/_ssgManifest.js", + "static/RNpp86I_Wwm4reXmuvbzY/_buildManifest.js" ], "rootMainFiles": [] } \ No newline at end of file diff --git a/.next/required-server-files.js b/.next/required-server-files.js index 4cd64d407..a82f8431c 100644 --- a/.next/required-server-files.js +++ b/.next/required-server-files.js @@ -4,7 +4,7 @@ self.__SERVER_FILES_MANIFEST={ "env": { "_sentryRewriteFramesDistDir": ".next", "_sentryRewriteFramesAssetPrefixPath": "", - "_sentryRelease": "d45ef2baf7ed5f673dc8dd688a3f937376743f84" + "_sentryRelease": "66d0d6a6e06671f2575ec88a95202d81fe7d0e81" }, "typescript": { "ignoreBuildErrors": false diff --git a/.next/required-server-files.json b/.next/required-server-files.json index a1622b903..0e8a67d5a 100644 --- a/.next/required-server-files.json +++ b/.next/required-server-files.json @@ -4,7 +4,7 @@ "env": { "_sentryRewriteFramesDistDir": ".next", "_sentryRewriteFramesAssetPrefixPath": "", - "_sentryRelease": "d45ef2baf7ed5f673dc8dd688a3f937376743f84" + "_sentryRelease": "66d0d6a6e06671f2575ec88a95202d81fe7d0e81" }, "typescript": { "ignoreBuildErrors": false diff --git a/.next/server/app/[locale]/[slug]/page.js b/.next/server/app/[locale]/[slug]/page.js index f2a63725a..3d784e8f3 100644 --- a/.next/server/app/[locale]/[slug]/page.js +++ b/.next/server/app/[locale]/[slug]/page.js @@ -7,7 +7,7 @@ R.c("server/chunks/ssr/[root-of-the-server]__5bd1b04a._.js") R.c("server/chunks/ssr/5e5d0_@opentelemetry_api_build_esm_f7b039e6._.js") R.c("server/chunks/ssr/468ab_next_dist_d9f52090._.js") R.c("server/chunks/ssr/468ab_next_dist_e98c316f._.js") -R.c("server/chunks/ssr/[root-of-the-server]__f153a21f._.js") +R.c("server/chunks/ssr/[root-of-the-server]__2da52317._.js") R.c("server/chunks/ssr/468ab_next_dist_668db2a3._.js") R.c("server/chunks/ssr/node_modules__pnpm_20ad9314._.js") R.c("server/chunks/ssr/3c3e1_next-intl_dist_esm_production_server_react-server_getConfig_8e5b989d.js") @@ -21,12 +21,12 @@ R.c("server/chunks/ssr/468ab_next_dist_client_components_9ea24689._.js") R.c("server/chunks/ssr/468ab_next_dist_client_components_builtin_forbidden_fcf22647.js") R.c("server/chunks/ssr/468ab_next_dist_client_components_builtin_unauthorized_242673a5.js") R.c("server/chunks/ssr/_88d60384._.js") -R.c("server/chunks/ssr/_536bc82a._.js") +R.c("server/chunks/ssr/_6189c8b5._.js") R.c("server/chunks/ssr/[root-of-the-server]__bc75933a._.js") R.c("server/chunks/ssr/_df4aec0b._.js") R.c("server/chunks/ssr/app_[locale]_error_tsx_37c0341f._.js") -R.c("server/chunks/ssr/_49a7ffbe._.js") -R.c("server/chunks/ssr/components_4d1233ab._.js") +R.c("server/chunks/ssr/_d825b83f._.js") +R.c("server/chunks/ssr/components_ui_6a2a3715._.js") R.c("server/chunks/ssr/_next-internal_server_app_[locale]_[slug]_page_actions_d8822895.js") R.m(602253) module.exports=R.m(602253).exports diff --git a/.next/server/app/[locale]/[slug]/page.js.nft.json b/.next/server/app/[locale]/[slug]/page.js.nft.json index a74b013b1..f90bbda64 100644 --- a/.next/server/app/[locale]/[slug]/page.js.nft.json +++ b/.next/server/app/[locale]/[slug]/page.js.nft.json @@ -1 +1 @@ -{"version":1,"files":["../../../../../content/de/agb.mdx","../../../../../content/de/blog/moderne-verfahren-kabeltiefbau.mdx","../../../../../content/de/datenschutz.mdx","../../../../../content/de/home.mdx","../../../../../content/de/impressum.mdx","../../../../../content/de/karriere.mdx","../../../../../content/de/kompetenzen.mdx","../../../../../content/de/messen.mdx","../../../../../content/de/ueber-uns.mdx","../../../../../content/en/agb.mdx","../../../../../content/en/blog/modern-methods-civil-engineering.mdx","../../../../../content/en/datenschutz.mdx","../../../../../content/en/home.mdx","../../../../../content/en/impressum.mdx","../../../../../content/en/karriere.mdx","../../../../../content/en/kompetenzen.mdx","../../../../../content/en/messen.mdx","../../../../../content/en/ueber-uns.mdx","../../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/@babel/code-frame/lib/index.js","../../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/@babel/code-frame/package.json","../../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/@babel/helper-validator-identifier","../../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/js-tokens","../../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/picocolors","../../../../../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/lib/identifier.js","../../../../../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/lib/index.js","../../../../../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/lib/keyword.js","../../../../../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/package.json","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/index.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/compile.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/core.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/evaluate.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/node-types.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/recma-build-jsx-transform.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/recma-document.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/recma-jsx-rewrite.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/rehype-remove-raw.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/remark-mark-and-unravel.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/run.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-create.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-declaration-to-expression.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-is-declaration.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-specifiers-to-declarations.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-to-binary-addition.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-to-id-or-member-expression.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/extnames.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/resolve-evaluate-options.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/resolve-file-and-options.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/package.json","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/collapse-white-space","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/devlop","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/estree-util-is-identifier-name","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/estree-util-scope","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/estree-walker","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/markdown-extensions","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/recma-build-jsx","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/recma-jsx","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/recma-stringify","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/rehype-recma","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/remark-mdx","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/remark-parse","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/remark-rehype","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/unified","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/unist-util-position-from-estree","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/unist-util-stringify-position","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/unist-util-visit","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/vfile","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/context.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/diag.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/metrics.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/propagation.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/trace.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/context.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/types.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/index.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/global-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/semver.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/Metric.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/context-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/span_kind.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/status.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/version.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/package.json","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/execAsync.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-bsd.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-darwin.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-linux.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-unsupported.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-win.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId.js","../../../../../node_modules/.pnpm/@pinojs+redact@0.4.0/node_modules/@pinojs/redact/index.js","../../../../../node_modules/.pnpm/@pinojs+redact@0.4.0/node_modules/@pinojs/redact/package.json","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/browserTracingIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/clientNormalizationIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/appRouterRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/isrRoutingTracing.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/nextRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/pagesRouterRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/parameterization.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/tunnelRoute.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/captureRequestError.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/debug-build.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/devErrorSymbolicationEventProcessor.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/getVercelEnv.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextNavigationErrorUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextSpanAttributes.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/_error.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentryVercelCrons.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapAppGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapDocumentGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapErrorGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetServerSidePropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetStaticPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapPageComponentWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/span-attributes-with-logic-attached.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/addHeadersAsAttributes.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/dropMiddlewareTunnelRequests.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isBuild.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isUseCacheFunction.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/nextSpan.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/responseEnd.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/setUrlProcessingMetadata.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/tracingUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/urls.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/wrapperUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/withServerActionInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapGenerationFunctionWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapMiddlewareWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapRouteHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapServerComponentWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/getBuildPluginOptions.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/handleRunAfterProductionCompile.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/componentAnnotationLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/moduleMetadataInjectionLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/prefixLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/valueInjectionLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/wrappingLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/manifest/createRouteManifest.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/polyfills/perf_hooks.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/apiWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/middlewareWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/pageWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/requestAsyncStorageShim.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/routeHandlerWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/sentryInitWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/serverComponentWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/constructTurbopackConfig.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/generateValueInjectionRules.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/util.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/webpack.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/buildTime.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/constants.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/deprecatedWebpackOptions.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObject.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectBundlerUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/tunnel.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/distDirRewriteFramesIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/wrapApiHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.client.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.server.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/distDirRewriteFramesIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/handleOnSpanStart.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/prepareSafeIdGeneratorContext.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelCronsMonitoring.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelQueuesMonitoring.js","../../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/deserialize.js","../../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/index.js","../../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/serialize.js","../../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/types.js","../../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/package.json","../../../../../node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.16.0/node_modules/acorn","../../../../../node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.16.0/node_modules/acorn-jsx/index.js","../../../../../node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.16.0/node_modules/acorn-jsx/package.json","../../../../../node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.16.0/node_modules/acorn-jsx/xhtml.js","../../../../../node_modules/.pnpm/acorn@8.16.0/node_modules/acorn/dist/acorn.js","../../../../../node_modules/.pnpm/acorn@8.16.0/node_modules/acorn/dist/acorn.mjs","../../../../../node_modules/.pnpm/acorn@8.16.0/node_modules/acorn/package.json","../../../../../node_modules/.pnpm/astring@1.9.0/node_modules/astring/dist/astring.mjs","../../../../../node_modules/.pnpm/astring@1.9.0/node_modules/astring/package.json","../../../../../node_modules/.pnpm/atomic-sleep@1.0.0/node_modules/atomic-sleep/index.js","../../../../../node_modules/.pnpm/atomic-sleep@1.0.0/node_modules/atomic-sleep/package.json","../../../../../node_modules/.pnpm/bail@2.0.2/node_modules/bail/index.js","../../../../../node_modules/.pnpm/bail@2.0.2/node_modules/bail/package.json","../../../../../node_modules/.pnpm/ccount@2.0.1/node_modules/ccount/index.js","../../../../../node_modules/.pnpm/ccount@2.0.1/node_modules/ccount/package.json","../../../../../node_modules/.pnpm/character-entities-html4@2.1.0/node_modules/character-entities-html4/index.js","../../../../../node_modules/.pnpm/character-entities-html4@2.1.0/node_modules/character-entities-html4/package.json","../../../../../node_modules/.pnpm/character-entities-legacy@3.0.0/node_modules/character-entities-legacy/index.js","../../../../../node_modules/.pnpm/character-entities-legacy@3.0.0/node_modules/character-entities-legacy/package.json","../../../../../node_modules/.pnpm/character-entities@2.0.2/node_modules/character-entities/index.js","../../../../../node_modules/.pnpm/character-entities@2.0.2/node_modules/character-entities/package.json","../../../../../node_modules/.pnpm/character-reference-invalid@2.0.1/node_modules/character-reference-invalid/index.js","../../../../../node_modules/.pnpm/character-reference-invalid@2.0.1/node_modules/character-reference-invalid/package.json","../../../../../node_modules/.pnpm/collapse-white-space@2.1.0/node_modules/collapse-white-space/index.js","../../../../../node_modules/.pnpm/collapse-white-space@2.1.0/node_modules/collapse-white-space/package.json","../../../../../node_modules/.pnpm/comma-separated-tokens@2.0.3/node_modules/comma-separated-tokens/index.js","../../../../../node_modules/.pnpm/comma-separated-tokens@2.0.3/node_modules/comma-separated-tokens/package.json","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/package.json","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/browser.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/index.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/node.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/ms","../../../../../node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/character-entities","../../../../../node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/decode-named-character-reference/index.js","../../../../../node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/decode-named-character-reference/package.json","../../../../../node_modules/.pnpm/devlop@1.1.0/node_modules/devlop/lib/default.js","../../../../../node_modules/.pnpm/devlop@1.1.0/node_modules/devlop/package.json","../../../../../node_modules/.pnpm/estree-util-attach-comments@3.0.0/node_modules/estree-util-attach-comments/index.js","../../../../../node_modules/.pnpm/estree-util-attach-comments@3.0.0/node_modules/estree-util-attach-comments/lib/index.js","../../../../../node_modules/.pnpm/estree-util-attach-comments@3.0.0/node_modules/estree-util-attach-comments/package.json","../../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/devlop","../../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-util-build-jsx/index.js","../../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-util-build-jsx/lib/index.js","../../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-util-build-jsx/package.json","../../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-util-is-identifier-name","../../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-walker","../../../../../node_modules/.pnpm/estree-util-is-identifier-name@3.0.0/node_modules/estree-util-is-identifier-name/index.js","../../../../../node_modules/.pnpm/estree-util-is-identifier-name@3.0.0/node_modules/estree-util-is-identifier-name/lib/index.js","../../../../../node_modules/.pnpm/estree-util-is-identifier-name@3.0.0/node_modules/estree-util-is-identifier-name/package.json","../../../../../node_modules/.pnpm/estree-util-scope@1.0.0/node_modules/devlop","../../../../../node_modules/.pnpm/estree-util-scope@1.0.0/node_modules/estree-util-scope/index.js","../../../../../node_modules/.pnpm/estree-util-scope@1.0.0/node_modules/estree-util-scope/lib/index.js","../../../../../node_modules/.pnpm/estree-util-scope@1.0.0/node_modules/estree-util-scope/package.json","../../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/astring","../../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/estree-util-to-js/index.js","../../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/estree-util-to-js/lib/index.js","../../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/estree-util-to-js/lib/jsx.js","../../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/estree-util-to-js/package.json","../../../../../node_modules/.pnpm/estree-util-visit@2.0.0/node_modules/estree-util-visit/index.js","../../../../../node_modules/.pnpm/estree-util-visit@2.0.0/node_modules/estree-util-visit/lib/color.node.js","../../../../../node_modules/.pnpm/estree-util-visit@2.0.0/node_modules/estree-util-visit/lib/index.js","../../../../../node_modules/.pnpm/estree-util-visit@2.0.0/node_modules/estree-util-visit/package.json","../../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/package.json","../../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/async.js","../../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/index.js","../../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/sync.js","../../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/walker.js","../../../../../node_modules/.pnpm/extend@3.0.2/node_modules/extend/index.js","../../../../../node_modules/.pnpm/extend@3.0.2/node_modules/extend/package.json","../../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js","../../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/package.json","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/comma-separated-tokens","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/devlop","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/estree-util-attach-comments","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/estree-util-is-identifier-name","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/index.js","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/comment.js","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/element.js","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/index.js","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/mdx-expression.js","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/mdx-jsx-element.js","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/mdxjs-esm.js","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/root.js","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/text.js","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/index.js","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/state.js","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/package.json","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-whitespace","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/property-information","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/space-separated-tokens","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/style-to-js","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/unist-util-position","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/zwitch","../../../../../node_modules/.pnpm/hast-util-whitespace@3.0.0/node_modules/hast-util-whitespace/index.js","../../../../../node_modules/.pnpm/hast-util-whitespace@3.0.0/node_modules/hast-util-whitespace/lib/index.js","../../../../../node_modules/.pnpm/hast-util-whitespace@3.0.0/node_modules/hast-util-whitespace/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@1.15.0/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/index.js","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/lib/register.js","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/index.js","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/lib/register.js","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/inline-style-parser@0.2.7/node_modules/inline-style-parser/cjs/index.js","../../../../../node_modules/.pnpm/inline-style-parser@0.2.7/node_modules/inline-style-parser/package.json","../../../../../node_modules/.pnpm/is-alphabetical@2.0.1/node_modules/is-alphabetical/index.js","../../../../../node_modules/.pnpm/is-alphabetical@2.0.1/node_modules/is-alphabetical/package.json","../../../../../node_modules/.pnpm/is-alphanumerical@2.0.1/node_modules/is-alphabetical","../../../../../node_modules/.pnpm/is-alphanumerical@2.0.1/node_modules/is-alphanumerical/index.js","../../../../../node_modules/.pnpm/is-alphanumerical@2.0.1/node_modules/is-alphanumerical/package.json","../../../../../node_modules/.pnpm/is-alphanumerical@2.0.1/node_modules/is-decimal","../../../../../node_modules/.pnpm/is-decimal@2.0.1/node_modules/is-decimal/index.js","../../../../../node_modules/.pnpm/is-decimal@2.0.1/node_modules/is-decimal/package.json","../../../../../node_modules/.pnpm/is-hexadecimal@2.0.1/node_modules/is-hexadecimal/index.js","../../../../../node_modules/.pnpm/is-hexadecimal@2.0.1/node_modules/is-hexadecimal/package.json","../../../../../node_modules/.pnpm/is-plain-obj@4.1.0/node_modules/is-plain-obj/index.js","../../../../../node_modules/.pnpm/is-plain-obj@4.1.0/node_modules/is-plain-obj/package.json","../../../../../node_modules/.pnpm/js-tokens@4.0.0/node_modules/js-tokens/index.js","../../../../../node_modules/.pnpm/js-tokens@4.0.0/node_modules/js-tokens/package.json","../../../../../node_modules/.pnpm/markdown-extensions@2.0.0/node_modules/markdown-extensions/index.js","../../../../../node_modules/.pnpm/markdown-extensions@2.0.0/node_modules/markdown-extensions/package.json","../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/decode-named-character-reference","../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/index.js","../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/lib/index.js","../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/package.json","../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-to-string","../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/micromark","../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/micromark-util-decode-numeric-character-reference","../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/micromark-util-decode-string","../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/micromark-util-normalize-identifier","../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/unist-util-stringify-position","../../../../../node_modules/.pnpm/mdast-util-mdx-expression@2.0.1/node_modules/devlop","../../../../../node_modules/.pnpm/mdast-util-mdx-expression@2.0.1/node_modules/mdast-util-mdx-expression/index.js","../../../../../node_modules/.pnpm/mdast-util-mdx-expression@2.0.1/node_modules/mdast-util-mdx-expression/lib/index.js","../../../../../node_modules/.pnpm/mdast-util-mdx-expression@2.0.1/node_modules/mdast-util-mdx-expression/package.json","../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/ccount","../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/devlop","../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/mdast-util-mdx-jsx/index.js","../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/mdast-util-mdx-jsx/lib/index.js","../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/mdast-util-mdx-jsx/package.json","../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/parse-entities","../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/stringify-entities","../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/unist-util-stringify-position","../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/vfile-message","../../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx-expression","../../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx-jsx","../../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx/index.js","../../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx/lib/index.js","../../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx/package.json","../../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdxjs-esm","../../../../../node_modules/.pnpm/mdast-util-mdxjs-esm@2.0.1/node_modules/devlop","../../../../../node_modules/.pnpm/mdast-util-mdxjs-esm@2.0.1/node_modules/mdast-util-mdxjs-esm/index.js","../../../../../node_modules/.pnpm/mdast-util-mdxjs-esm@2.0.1/node_modules/mdast-util-mdxjs-esm/lib/index.js","../../../../../node_modules/.pnpm/mdast-util-mdxjs-esm@2.0.1/node_modules/mdast-util-mdxjs-esm/package.json","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/@ungap/structured-clone","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/devlop","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/index.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/footer.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/break.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/code.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/delete.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/heading.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/html.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/image.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/index.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/link.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/list.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/root.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/strong.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/text.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/index.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/revert.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/state.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/package.json","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/micromark-util-sanitize-uri","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/trim-lines","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/unist-util-position","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/unist-util-visit","../../../../../node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/index.js","../../../../../node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/lib/index.js","../../../../../node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/package.json","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/decode-named-character-reference","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/index.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/attention.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/autolink.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/blank-line.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/block-quote.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/character-escape.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/character-reference.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-fenced.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-indented.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-text.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/content.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/definition.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/heading-atx.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/html-flow.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/html-text.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-end.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-start-image.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-start-link.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/line-ending.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/list.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/setext-underline.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/thematic-break.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/package.json","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-destination","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-label","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-space","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-title","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-whitespace","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-character","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-chunked","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-classify-character","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-html-tag-name","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-normalize-identifier","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-resolve-all","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-subtokenize","../../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-extension-mdx-expression/index.js","../../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-extension-mdx-expression/lib/syntax.js","../../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-extension-mdx-expression/package.json","../../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-factory-mdx-expression","../../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-factory-space","../../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-util-character","../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/estree-util-is-identifier-name","../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/index.js","../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/lib/factory-tag.js","../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/lib/jsx-flow.js","../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/lib/jsx-text.js","../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/lib/syntax.js","../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/package.json","../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-factory-mdx-expression","../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-factory-space","../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-util-character","../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/vfile-message","../../../../../node_modules/.pnpm/micromark-extension-mdx-md@2.0.0/node_modules/micromark-extension-mdx-md/index.js","../../../../../node_modules/.pnpm/micromark-extension-mdx-md@2.0.0/node_modules/micromark-extension-mdx-md/package.json","../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-core-commonmark","../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-extension-mdxjs-esm/index.js","../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-extension-mdxjs-esm/lib/syntax.js","../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-extension-mdxjs-esm/package.json","../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-util-character","../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-util-events-to-acorn","../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/unist-util-position-from-estree","../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/vfile-message","../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/acorn","../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/acorn-jsx","../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdx-expression","../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdx-jsx","../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdx-md","../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdxjs-esm","../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdxjs/index.js","../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdxjs/package.json","../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-util-combine-extensions","../../../../../node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-factory-destination/index.js","../../../../../node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-factory-destination/package.json","../../../../../node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-util-character","../../../../../node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-factory-label/index.js","../../../../../node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-factory-label/package.json","../../../../../node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-util-character","../../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-factory-mdx-expression/index.js","../../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-factory-mdx-expression/package.json","../../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-factory-space","../../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-util-character","../../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-util-events-to-acorn","../../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/unist-util-position-from-estree","../../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/vfile-message","../../../../../node_modules/.pnpm/micromark-factory-space@2.0.1/node_modules/micromark-factory-space/index.js","../../../../../node_modules/.pnpm/micromark-factory-space@2.0.1/node_modules/micromark-factory-space/package.json","../../../../../node_modules/.pnpm/micromark-factory-space@2.0.1/node_modules/micromark-util-character","../../../../../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-space","../../../../../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-title/index.js","../../../../../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-title/package.json","../../../../../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-util-character","../../../../../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-space","../../../../../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-whitespace/index.js","../../../../../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-whitespace/package.json","../../../../../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-util-character","../../../../../node_modules/.pnpm/micromark-util-character@2.1.1/node_modules/micromark-util-character/index.js","../../../../../node_modules/.pnpm/micromark-util-character@2.1.1/node_modules/micromark-util-character/package.json","../../../../../node_modules/.pnpm/micromark-util-chunked@2.0.1/node_modules/micromark-util-chunked/index.js","../../../../../node_modules/.pnpm/micromark-util-chunked@2.0.1/node_modules/micromark-util-chunked/package.json","../../../../../node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-character","../../../../../node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-classify-character/index.js","../../../../../node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-classify-character/package.json","../../../../../node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-chunked","../../../../../node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-combine-extensions/index.js","../../../../../node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-combine-extensions/package.json","../../../../../node_modules/.pnpm/micromark-util-decode-numeric-character-reference@2.0.2/node_modules/micromark-util-decode-numeric-character-reference/index.js","../../../../../node_modules/.pnpm/micromark-util-decode-numeric-character-reference@2.0.2/node_modules/micromark-util-decode-numeric-character-reference/package.json","../../../../../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/decode-named-character-reference","../../../../../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-numeric-character-reference","../../../../../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-string/index.js","../../../../../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-string/package.json","../../../../../node_modules/.pnpm/micromark-util-encode@2.0.1/node_modules/micromark-util-encode/index.js","../../../../../node_modules/.pnpm/micromark-util-encode@2.0.1/node_modules/micromark-util-encode/package.json","../../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/estree-util-visit","../../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/micromark-util-events-to-acorn/index.js","../../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/micromark-util-events-to-acorn/lib/index.js","../../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/micromark-util-events-to-acorn/package.json","../../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/vfile-message","../../../../../node_modules/.pnpm/micromark-util-html-tag-name@2.0.1/node_modules/micromark-util-html-tag-name/index.js","../../../../../node_modules/.pnpm/micromark-util-html-tag-name@2.0.1/node_modules/micromark-util-html-tag-name/package.json","../../../../../node_modules/.pnpm/micromark-util-normalize-identifier@2.0.1/node_modules/micromark-util-normalize-identifier/index.js","../../../../../node_modules/.pnpm/micromark-util-normalize-identifier@2.0.1/node_modules/micromark-util-normalize-identifier/package.json","../../../../../node_modules/.pnpm/micromark-util-resolve-all@2.0.1/node_modules/micromark-util-resolve-all/index.js","../../../../../node_modules/.pnpm/micromark-util-resolve-all@2.0.1/node_modules/micromark-util-resolve-all/package.json","../../../../../node_modules/.pnpm/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-character","../../../../../node_modules/.pnpm/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-encode","../../../../../node_modules/.pnpm/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-sanitize-uri/index.js","../../../../../node_modules/.pnpm/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-sanitize-uri/package.json","../../../../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-chunked","../../../../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/index.js","../../../../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/lib/splice-buffer.js","../../../../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/package.json","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/decode-named-character-reference","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-core-commonmark","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-factory-space","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-character","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-chunked","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-combine-extensions","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-decode-numeric-character-reference","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-encode","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-normalize-identifier","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-resolve-all","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-sanitize-uri","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-subtokenize","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/index.js","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/compile.js","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/constructs.js","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/create-tokenizer.js","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/content.js","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/document.js","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/flow.js","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/text.js","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/parse.js","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/postprocess.js","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/preprocess.js","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/package.json","../../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/index.js","../../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/package.json","../../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js","../../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/package.json","../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/@babel/code-frame","../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/@mdx-js/mdx","../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/format-mdx-error.js","../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/jsx-runtime.cjs","../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/plugins/remove-imports-exports.js","../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/rsc.js","../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/serialize.js","../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/package.json","../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/rsc.js","../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/react","../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/unist-util-remove","../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/vfile","../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/vfile-matter","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/@opentelemetry/api","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/LICENSE","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/index.edge.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/index.node.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/noto-sans-v27-latin-regular.ttf","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/resvg.wasm","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/satori/LICENSE","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/yoga.wasm","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/constants.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/is-error.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/runtime-reacts.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/package.json","../../../../../node_modules/.pnpm/node_modules/@babel/code-frame","../../../../../node_modules/.pnpm/node_modules/@babel/helper-validator-identifier","../../../../../node_modules/.pnpm/node_modules/@mdx-js/mdx","../../../../../node_modules/.pnpm/node_modules/@opentelemetry/api","../../../../../node_modules/.pnpm/node_modules/@pinojs/redact","../../../../../node_modules/.pnpm/node_modules/@ungap/structured-clone","../../../../../node_modules/.pnpm/node_modules/acorn","../../../../../node_modules/.pnpm/node_modules/acorn-jsx","../../../../../node_modules/.pnpm/node_modules/astring","../../../../../node_modules/.pnpm/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/node_modules/bail","../../../../../node_modules/.pnpm/node_modules/ccount","../../../../../node_modules/.pnpm/node_modules/character-entities","../../../../../node_modules/.pnpm/node_modules/character-entities-html4","../../../../../node_modules/.pnpm/node_modules/character-entities-legacy","../../../../../node_modules/.pnpm/node_modules/character-reference-invalid","../../../../../node_modules/.pnpm/node_modules/collapse-white-space","../../../../../node_modules/.pnpm/node_modules/comma-separated-tokens","../../../../../node_modules/.pnpm/node_modules/debug","../../../../../node_modules/.pnpm/node_modules/decode-named-character-reference","../../../../../node_modules/.pnpm/node_modules/devlop","../../../../../node_modules/.pnpm/node_modules/estree-util-attach-comments","../../../../../node_modules/.pnpm/node_modules/estree-util-build-jsx","../../../../../node_modules/.pnpm/node_modules/estree-util-is-identifier-name","../../../../../node_modules/.pnpm/node_modules/estree-util-scope","../../../../../node_modules/.pnpm/node_modules/estree-util-to-js","../../../../../node_modules/.pnpm/node_modules/estree-util-visit","../../../../../node_modules/.pnpm/node_modules/estree-walker","../../../../../node_modules/.pnpm/node_modules/extend","../../../../../node_modules/.pnpm/node_modules/has-flag","../../../../../node_modules/.pnpm/node_modules/hast-util-to-estree","../../../../../node_modules/.pnpm/node_modules/hast-util-whitespace","../../../../../node_modules/.pnpm/node_modules/inline-style-parser","../../../../../node_modules/.pnpm/node_modules/is-alphabetical","../../../../../node_modules/.pnpm/node_modules/is-alphanumerical","../../../../../node_modules/.pnpm/node_modules/is-decimal","../../../../../node_modules/.pnpm/node_modules/is-hexadecimal","../../../../../node_modules/.pnpm/node_modules/is-plain-obj","../../../../../node_modules/.pnpm/node_modules/js-tokens","../../../../../node_modules/.pnpm/node_modules/markdown-extensions","../../../../../node_modules/.pnpm/node_modules/mdast-util-from-markdown","../../../../../node_modules/.pnpm/node_modules/mdast-util-mdx","../../../../../node_modules/.pnpm/node_modules/mdast-util-mdx-expression","../../../../../node_modules/.pnpm/node_modules/mdast-util-mdx-jsx","../../../../../node_modules/.pnpm/node_modules/mdast-util-mdxjs-esm","../../../../../node_modules/.pnpm/node_modules/mdast-util-to-hast","../../../../../node_modules/.pnpm/node_modules/mdast-util-to-string","../../../../../node_modules/.pnpm/node_modules/micromark","../../../../../node_modules/.pnpm/node_modules/micromark-core-commonmark","../../../../../node_modules/.pnpm/node_modules/micromark-extension-mdx-expression","../../../../../node_modules/.pnpm/node_modules/micromark-extension-mdx-jsx","../../../../../node_modules/.pnpm/node_modules/micromark-extension-mdx-md","../../../../../node_modules/.pnpm/node_modules/micromark-extension-mdxjs","../../../../../node_modules/.pnpm/node_modules/micromark-extension-mdxjs-esm","../../../../../node_modules/.pnpm/node_modules/micromark-factory-destination","../../../../../node_modules/.pnpm/node_modules/micromark-factory-label","../../../../../node_modules/.pnpm/node_modules/micromark-factory-mdx-expression","../../../../../node_modules/.pnpm/node_modules/micromark-factory-space","../../../../../node_modules/.pnpm/node_modules/micromark-factory-title","../../../../../node_modules/.pnpm/node_modules/micromark-factory-whitespace","../../../../../node_modules/.pnpm/node_modules/micromark-util-character","../../../../../node_modules/.pnpm/node_modules/micromark-util-chunked","../../../../../node_modules/.pnpm/node_modules/micromark-util-classify-character","../../../../../node_modules/.pnpm/node_modules/micromark-util-combine-extensions","../../../../../node_modules/.pnpm/node_modules/micromark-util-decode-numeric-character-reference","../../../../../node_modules/.pnpm/node_modules/micromark-util-decode-string","../../../../../node_modules/.pnpm/node_modules/micromark-util-encode","../../../../../node_modules/.pnpm/node_modules/micromark-util-events-to-acorn","../../../../../node_modules/.pnpm/node_modules/micromark-util-html-tag-name","../../../../../node_modules/.pnpm/node_modules/micromark-util-normalize-identifier","../../../../../node_modules/.pnpm/node_modules/micromark-util-resolve-all","../../../../../node_modules/.pnpm/node_modules/micromark-util-sanitize-uri","../../../../../node_modules/.pnpm/node_modules/micromark-util-subtokenize","../../../../../node_modules/.pnpm/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/node_modules/ms","../../../../../node_modules/.pnpm/node_modules/on-exit-leak-free","../../../../../node_modules/.pnpm/node_modules/parse-entities","../../../../../node_modules/.pnpm/node_modules/picocolors","../../../../../node_modules/.pnpm/node_modules/pino-std-serializers","../../../../../node_modules/.pnpm/node_modules/property-information","../../../../../node_modules/.pnpm/node_modules/quick-format-unescaped","../../../../../node_modules/.pnpm/node_modules/real-require","../../../../../node_modules/.pnpm/node_modules/recma-build-jsx","../../../../../node_modules/.pnpm/node_modules/recma-jsx","../../../../../node_modules/.pnpm/node_modules/recma-stringify","../../../../../node_modules/.pnpm/node_modules/rehype-recma","../../../../../node_modules/.pnpm/node_modules/remark-mdx","../../../../../node_modules/.pnpm/node_modules/remark-parse","../../../../../node_modules/.pnpm/node_modules/remark-rehype","../../../../../node_modules/.pnpm/node_modules/safe-stable-stringify","../../../../../node_modules/.pnpm/node_modules/sonic-boom","../../../../../node_modules/.pnpm/node_modules/space-separated-tokens","../../../../../node_modules/.pnpm/node_modules/stringify-entities","../../../../../node_modules/.pnpm/node_modules/style-to-js","../../../../../node_modules/.pnpm/node_modules/style-to-object","../../../../../node_modules/.pnpm/node_modules/supports-color","../../../../../node_modules/.pnpm/node_modules/thread-stream","../../../../../node_modules/.pnpm/node_modules/trim-lines","../../../../../node_modules/.pnpm/node_modules/trough","../../../../../node_modules/.pnpm/node_modules/unified","../../../../../node_modules/.pnpm/node_modules/unist-util-is","../../../../../node_modules/.pnpm/node_modules/unist-util-position","../../../../../node_modules/.pnpm/node_modules/unist-util-position-from-estree","../../../../../node_modules/.pnpm/node_modules/unist-util-remove","../../../../../node_modules/.pnpm/node_modules/unist-util-stringify-position","../../../../../node_modules/.pnpm/node_modules/unist-util-visit","../../../../../node_modules/.pnpm/node_modules/unist-util-visit-parents","../../../../../node_modules/.pnpm/node_modules/vfile","../../../../../node_modules/.pnpm/node_modules/vfile-matter","../../../../../node_modules/.pnpm/node_modules/vfile-message","../../../../../node_modules/.pnpm/node_modules/yaml","../../../../../node_modules/.pnpm/node_modules/zwitch","../../../../../node_modules/.pnpm/on-exit-leak-free@2.1.2/node_modules/on-exit-leak-free/index.js","../../../../../node_modules/.pnpm/on-exit-leak-free@2.1.2/node_modules/on-exit-leak-free/package.json","../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/character-entities-legacy","../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/character-reference-invalid","../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/decode-named-character-reference","../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/is-alphanumerical","../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/is-decimal","../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/is-hexadecimal","../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/parse-entities/index.js","../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/parse-entities/lib/index.js","../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/parse-entities/package.json","../../../../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/package.json","../../../../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/index.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-helpers.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-proto.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-with-cause.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/req.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/res.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/package.json","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/@pinojs/redact","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/on-exit-leak-free","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino-std-serializers","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/file.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/caller.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/constants.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/deprecations.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/levels.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/meta.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/multistream.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/proto.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/redaction.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/symbols.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/time.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/tools.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/transport-stream.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/transport.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/worker.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/package.json","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/pino.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/quick-format-unescaped","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/safe-stable-stringify","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/sonic-boom","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/thread-stream","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/index.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/aria.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/find.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/hast-to-react.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/html.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/normalize.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/svg.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/case-insensitive-transform.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/case-sensitive-transform.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/create.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/defined-info.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/info.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/merge.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/schema.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/types.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/xlink.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/xml.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/xmlns.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/package.json","../../../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/index.js","../../../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/package.json","../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-jsx-dev-runtime.development.js","../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-jsx-dev-runtime.production.js","../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-jsx-runtime.development.js","../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-jsx-runtime.production.js","../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react.development.js","../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react.production.js","../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/index.js","../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/jsx-dev-runtime.js","../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/jsx-runtime.js","../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/package.json","../../../../../node_modules/.pnpm/real-require@0.2.0/node_modules/real-require/package.json","../../../../../node_modules/.pnpm/real-require@0.2.0/node_modules/real-require/src/index.js","../../../../../node_modules/.pnpm/recma-build-jsx@1.0.0/node_modules/estree-util-build-jsx","../../../../../node_modules/.pnpm/recma-build-jsx@1.0.0/node_modules/recma-build-jsx/index.js","../../../../../node_modules/.pnpm/recma-build-jsx@1.0.0/node_modules/recma-build-jsx/lib/index.js","../../../../../node_modules/.pnpm/recma-build-jsx@1.0.0/node_modules/recma-build-jsx/package.json","../../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/acorn-jsx","../../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/estree-util-to-js","../../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/recma-jsx/index.js","../../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/recma-jsx/lib/index.js","../../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/recma-jsx/package.json","../../../../../node_modules/.pnpm/recma-stringify@1.0.0/node_modules/estree-util-to-js","../../../../../node_modules/.pnpm/recma-stringify@1.0.0/node_modules/recma-stringify/index.js","../../../../../node_modules/.pnpm/recma-stringify@1.0.0/node_modules/recma-stringify/lib/index.js","../../../../../node_modules/.pnpm/recma-stringify@1.0.0/node_modules/recma-stringify/package.json","../../../../../node_modules/.pnpm/rehype-recma@1.0.0/node_modules/hast-util-to-estree","../../../../../node_modules/.pnpm/rehype-recma@1.0.0/node_modules/rehype-recma/index.js","../../../../../node_modules/.pnpm/rehype-recma@1.0.0/node_modules/rehype-recma/lib/index.js","../../../../../node_modules/.pnpm/rehype-recma@1.0.0/node_modules/rehype-recma/package.json","../../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/mdast-util-mdx","../../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/micromark-extension-mdxjs","../../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/remark-mdx/index.js","../../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/remark-mdx/lib/index.js","../../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/remark-mdx/package.json","../../../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/mdast-util-from-markdown","../../../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/index.js","../../../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/lib/index.js","../../../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/package.json","../../../../../node_modules/.pnpm/remark-rehype@11.1.2/node_modules/mdast-util-to-hast","../../../../../node_modules/.pnpm/remark-rehype@11.1.2/node_modules/remark-rehype/index.js","../../../../../node_modules/.pnpm/remark-rehype@11.1.2/node_modules/remark-rehype/lib/index.js","../../../../../node_modules/.pnpm/remark-rehype@11.1.2/node_modules/remark-rehype/package.json","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/debug","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/index.js","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/package.json","../../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/index.js","../../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/package.json","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/LICENSE","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/README.md","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/bench.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/check.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/example.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/fixtures/firehose.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/index.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/package.json","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/destroy.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/end.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/flush-sync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/flush.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/fsync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/helper.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/minlength.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/mode.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/periodicflush.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/reopen.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/retry.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/sync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/write.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/types/tests/test.ts","../../../../../node_modules/.pnpm/space-separated-tokens@2.0.2/node_modules/space-separated-tokens/index.js","../../../../../node_modules/.pnpm/space-separated-tokens@2.0.2/node_modules/space-separated-tokens/package.json","../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/character-entities-html4","../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/character-entities-legacy","../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/index.js","../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/constant/dangerous.js","../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/core.js","../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/index.js","../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/format-basic.js","../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/format-smart.js","../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-decimal.js","../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-hexadecimal.js","../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-named.js","../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/package.json","../../../../../node_modules/.pnpm/style-to-js@1.1.21/node_modules/style-to-js/cjs/index.js","../../../../../node_modules/.pnpm/style-to-js@1.1.21/node_modules/style-to-js/cjs/utilities.js","../../../../../node_modules/.pnpm/style-to-js@1.1.21/node_modules/style-to-js/package.json","../../../../../node_modules/.pnpm/style-to-js@1.1.21/node_modules/style-to-object","../../../../../node_modules/.pnpm/style-to-object@1.0.14/node_modules/inline-style-parser","../../../../../node_modules/.pnpm/style-to-object@1.0.14/node_modules/style-to-object/cjs/index.js","../../../../../node_modules/.pnpm/style-to-object@1.0.14/node_modules/style-to-object/package.json","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/has-flag","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/package.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/real-require","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/LICENSE","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/bench.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/eslint.config.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/index.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/indexes.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/wait.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/worker.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/package.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/base.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/bench.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/bundlers.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/close-on-gc.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/commonjs-fallback.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/context.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/create-and-exit.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/custom-worker.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/dir with spaces/test-package.zip","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/emit-event.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/end.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/error.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/esm.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/event.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/exit.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/get-context.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/helper.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/indexes.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/multibyte-chars.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/on-message.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/index.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/pkg.config.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/pkg.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/port.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/post-message.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/string-limit-2.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/string-limit.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/syntax-error.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/thread-management.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file-on-destroy.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file-on-final.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-next.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/transpiled.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-commonjs-default-export.zip","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-native.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-node-fallback.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts/to-file.ts","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts/transpile.sh","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/uncaughtException.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/unhandledRejection.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/yarnrc.yml","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/tsconfig.json","../../../../../node_modules/.pnpm/trim-lines@3.0.1/node_modules/trim-lines/index.js","../../../../../node_modules/.pnpm/trim-lines@3.0.1/node_modules/trim-lines/package.json","../../../../../node_modules/.pnpm/trough@2.2.0/node_modules/trough/index.js","../../../../../node_modules/.pnpm/trough@2.2.0/node_modules/trough/lib/index.js","../../../../../node_modules/.pnpm/trough@2.2.0/node_modules/trough/package.json","../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/bail","../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/devlop","../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/extend","../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/is-plain-obj","../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/trough","../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/index.js","../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/lib/callable-instance.js","../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/lib/index.js","../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/package.json","../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/vfile","../../../../../node_modules/.pnpm/unist-util-is@5.2.1/node_modules/unist-util-is/index.js","../../../../../node_modules/.pnpm/unist-util-is@5.2.1/node_modules/unist-util-is/lib/index.js","../../../../../node_modules/.pnpm/unist-util-is@5.2.1/node_modules/unist-util-is/package.json","../../../../../node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/index.js","../../../../../node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/lib/index.js","../../../../../node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/package.json","../../../../../node_modules/.pnpm/unist-util-position-from-estree@2.0.0/node_modules/unist-util-position-from-estree/index.js","../../../../../node_modules/.pnpm/unist-util-position-from-estree@2.0.0/node_modules/unist-util-position-from-estree/lib/index.js","../../../../../node_modules/.pnpm/unist-util-position-from-estree@2.0.0/node_modules/unist-util-position-from-estree/package.json","../../../../../node_modules/.pnpm/unist-util-position@5.0.0/node_modules/unist-util-position/index.js","../../../../../node_modules/.pnpm/unist-util-position@5.0.0/node_modules/unist-util-position/lib/index.js","../../../../../node_modules/.pnpm/unist-util-position@5.0.0/node_modules/unist-util-position/package.json","../../../../../node_modules/.pnpm/unist-util-remove@3.1.1/node_modules/unist-util-is","../../../../../node_modules/.pnpm/unist-util-remove@3.1.1/node_modules/unist-util-remove/index.js","../../../../../node_modules/.pnpm/unist-util-remove@3.1.1/node_modules/unist-util-remove/lib/index.js","../../../../../node_modules/.pnpm/unist-util-remove@3.1.1/node_modules/unist-util-remove/package.json","../../../../../node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/index.js","../../../../../node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/lib/index.js","../../../../../node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/package.json","../../../../../node_modules/.pnpm/unist-util-visit-parents@5.1.3/node_modules/unist-util-visit-parents/package.json","../../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-is","../../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/index.js","../../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/color.node.js","../../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/index.js","../../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/package.json","../../../../../node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit-parents","../../../../../node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit/index.js","../../../../../node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit/lib/index.js","../../../../../node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit/package.json","../../../../../node_modules/.pnpm/vfile-matter@5.0.1/node_modules/vfile-matter/index.js","../../../../../node_modules/.pnpm/vfile-matter@5.0.1/node_modules/vfile-matter/lib/index.js","../../../../../node_modules/.pnpm/vfile-matter@5.0.1/node_modules/vfile-matter/package.json","../../../../../node_modules/.pnpm/vfile-matter@5.0.1/node_modules/yaml","../../../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/unist-util-stringify-position","../../../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/index.js","../../../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/lib/index.js","../../../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/package.json","../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile-message","../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/index.js","../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/index.js","../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minpath.js","../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minproc.js","../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minurl.js","../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minurl.shared.js","../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/package.json","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/compose-collection.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/compose-doc.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/compose-node.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/compose-scalar.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/composer.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-block-map.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-block-scalar.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-block-seq.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-end.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-flow-collection.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-flow-scalar.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-props.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/util-contains-newline.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/util-empty-scalar-position.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/util-flow-indent-check.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/util-map-includes.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/Document.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/anchors.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/applyReviver.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/createNode.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/directives.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/errors.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/index.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/log.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Alias.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Collection.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Node.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Pair.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Scalar.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/YAMLMap.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/YAMLSeq.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/addPairToJSMap.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/identity.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/toJS.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/cst-scalar.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/cst-stringify.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/cst-visit.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/cst.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/lexer.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/line-counter.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/parser.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/public-api.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/Schema.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/common/map.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/common/null.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/common/seq.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/common/string.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/core/bool.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/core/float.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/core/int.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/core/schema.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/json/schema.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/tags.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/binary.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/bool.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/float.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/int.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/merge.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/omap.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/pairs.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/schema.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/set.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/foldFlowLines.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringify.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyCollection.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyComment.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyDocument.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyNumber.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyPair.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyString.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/visit.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/package.json","../../../../../node_modules/.pnpm/zwitch@2.0.4/node_modules/zwitch/index.js","../../../../../node_modules/.pnpm/zwitch@2.0.4/node_modules/zwitch/package.json","../../../../../node_modules/import-in-the-middle","../../../../../node_modules/next","../../../../../node_modules/pino","../../../../../node_modules/react","../../../../../node_modules/require-in-the-middle","../../../../node_modules/import-in-the-middle-138cd032e4b029f3","../../../../node_modules/import-in-the-middle-6ecbfda1283b1532","../../../../node_modules/next-mdx-remote-38ab1b696f56808a","../../../../node_modules/pino-2e79642258e38174","../../../../node_modules/require-in-the-middle-a99415fa67232f7f","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_5e35a34a.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_f7a67094.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_68baf629.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_e2e05945.js","../../../chunks/ssr/3c3e1_next-intl_dist_esm_production_server_react-server_getConfig_8e5b989d.js","../../../chunks/ssr/468ab_next_b54e3ae0._.js","../../../chunks/ssr/468ab_next_c7821d87._.js","../../../chunks/ssr/468ab_next_dist_668db2a3._.js","../../../chunks/ssr/468ab_next_dist_6d1ec603._.js","../../../chunks/ssr/468ab_next_dist_9c02c43c._.js","../../../chunks/ssr/468ab_next_dist_a9fadb3f._.js","../../../chunks/ssr/468ab_next_dist_bc66fa15._.js","../../../chunks/ssr/468ab_next_dist_client_components_9ea24689._.js","../../../chunks/ssr/468ab_next_dist_client_components_builtin_forbidden_fcf22647.js","../../../chunks/ssr/468ab_next_dist_client_components_builtin_unauthorized_242673a5.js","../../../chunks/ssr/468ab_next_dist_d9f52090._.js","../../../chunks/ssr/468ab_next_dist_e98c316f._.js","../../../chunks/ssr/468ab_next_dist_esm_10bac804._.js","../../../chunks/ssr/5e5d0_@opentelemetry_api_build_esm_f7b039e6._.js","../../../chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_317a5e2b._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_51b27302._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_634cb413._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_88fed31f._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_929773f6._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_f2e70164._.js","../../../chunks/ssr/[externals]_next_dist_compiled_@vercel_og_index_node_055f47ab.js","../../../chunks/ssr/[externals]_node:inspector_7a4283c6._.js","../../../chunks/ssr/[root-of-the-server]__03e78303._.js","../../../chunks/ssr/[root-of-the-server]__16d71f56._.js","../../../chunks/ssr/[root-of-the-server]__22b888eb._.js","../../../chunks/ssr/[root-of-the-server]__28a191f2._.js","../../../chunks/ssr/[root-of-the-server]__366a9ff8._.js","../../../chunks/ssr/[root-of-the-server]__411530ea._.js","../../../chunks/ssr/[root-of-the-server]__5bbfddd1._.js","../../../chunks/ssr/[root-of-the-server]__5bd1b04a._.js","../../../chunks/ssr/[root-of-the-server]__6a2afcd0._.js","../../../chunks/ssr/[root-of-the-server]__6bb30663._.js","../../../chunks/ssr/[root-of-the-server]__9aa0d618._.js","../../../chunks/ssr/[root-of-the-server]__9bfda315._.js","../../../chunks/ssr/[root-of-the-server]__9eff91eb._.js","../../../chunks/ssr/[root-of-the-server]__bae78d21._.js","../../../chunks/ssr/[root-of-the-server]__bc75933a._.js","../../../chunks/ssr/[root-of-the-server]__d37a945e._.js","../../../chunks/ssr/[root-of-the-server]__eb368494._.js","../../../chunks/ssr/[root-of-the-server]__f153a21f._.js","../../../chunks/ssr/[root-of-the-server]__f939d130._.js","../../../chunks/ssr/[root-of-the-server]__fbc63b72._.js","../../../chunks/ssr/[turbopack]_runtime.js","../../../chunks/ssr/_49a7ffbe._.js","../../../chunks/ssr/_536bc82a._.js","../../../chunks/ssr/_6f66913b._.js","../../../chunks/ssr/_88d60384._.js","../../../chunks/ssr/_b76d0ab2._.js","../../../chunks/ssr/_c3cb4fd0._.js","../../../chunks/ssr/_ddd43d26._.js","../../../chunks/ssr/_df4aec0b._.js","../../../chunks/ssr/_next-internal_server_app_[locale]_[slug]_page_actions_d8822895.js","../../../chunks/ssr/app_[locale]_error_tsx_37c0341f._.js","../../../chunks/ssr/app_global-error_tsx_9170b7a0._.js","../../../chunks/ssr/components_4d1233ab._.js","../../../chunks/ssr/components_d242fd4b._.js","../../../chunks/ssr/components_ui_utils_ts_f85ae7af._.js","../../../chunks/ssr/messages_de_json_56e8cde5._.js","../../../chunks/ssr/messages_en_json_a7997480._.js","../../../chunks/ssr/node_modules__pnpm_20ad9314._.js","../../../chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","../../../chunks/ssr/node_modules__pnpm_329a8f51._.js","../../../chunks/ssr/node_modules__pnpm_66399b09._.js","../../../chunks/ssr/node_modules__pnpm_8387bcd6._.js","../../../chunks/ssr/node_modules__pnpm_d28cabd9._.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file +{"version":1,"files":["../../../../../content/de/agb.mdx","../../../../../content/de/blog/moderne-verfahren-kabeltiefbau.mdx","../../../../../content/de/datenschutz.mdx","../../../../../content/de/home.mdx","../../../../../content/de/impressum.mdx","../../../../../content/de/karriere.mdx","../../../../../content/de/kompetenzen.mdx","../../../../../content/de/messen.mdx","../../../../../content/de/ueber-uns.mdx","../../../../../content/en/agb.mdx","../../../../../content/en/blog/modern-methods-civil-engineering.mdx","../../../../../content/en/datenschutz.mdx","../../../../../content/en/home.mdx","../../../../../content/en/impressum.mdx","../../../../../content/en/karriere.mdx","../../../../../content/en/kompetenzen.mdx","../../../../../content/en/messen.mdx","../../../../../content/en/ueber-uns.mdx","../../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/@babel/code-frame/lib/index.js","../../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/@babel/code-frame/package.json","../../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/@babel/helper-validator-identifier","../../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/js-tokens","../../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/picocolors","../../../../../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/lib/identifier.js","../../../../../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/lib/index.js","../../../../../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/lib/keyword.js","../../../../../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/package.json","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/index.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/compile.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/core.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/evaluate.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/node-types.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/recma-build-jsx-transform.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/recma-document.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/recma-jsx-rewrite.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/rehype-remove-raw.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/remark-mark-and-unravel.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/run.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-create.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-declaration-to-expression.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-is-declaration.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-specifiers-to-declarations.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-to-binary-addition.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-to-id-or-member-expression.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/extnames.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/resolve-evaluate-options.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/resolve-file-and-options.js","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/package.json","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/collapse-white-space","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/devlop","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/estree-util-is-identifier-name","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/estree-util-scope","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/estree-walker","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/markdown-extensions","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/recma-build-jsx","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/recma-jsx","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/recma-stringify","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/rehype-recma","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/remark-mdx","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/remark-parse","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/remark-rehype","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/unified","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/unist-util-position-from-estree","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/unist-util-stringify-position","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/unist-util-visit","../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/vfile","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/context.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/diag.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/metrics.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/propagation.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/trace.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/context.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/types.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/index.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/global-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/semver.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/Metric.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/context-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/span_kind.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/status.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/version.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/package.json","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/execAsync.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-bsd.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-darwin.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-linux.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-unsupported.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-win.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId.js","../../../../../node_modules/.pnpm/@pinojs+redact@0.4.0/node_modules/@pinojs/redact/index.js","../../../../../node_modules/.pnpm/@pinojs+redact@0.4.0/node_modules/@pinojs/redact/package.json","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/browserTracingIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/clientNormalizationIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/appRouterRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/isrRoutingTracing.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/nextRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/pagesRouterRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/parameterization.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/tunnelRoute.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/captureRequestError.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/debug-build.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/devErrorSymbolicationEventProcessor.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/getVercelEnv.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextNavigationErrorUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextSpanAttributes.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/_error.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentryVercelCrons.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapAppGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapDocumentGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapErrorGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetServerSidePropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetStaticPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapPageComponentWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/span-attributes-with-logic-attached.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/addHeadersAsAttributes.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/dropMiddlewareTunnelRequests.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isBuild.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isUseCacheFunction.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/nextSpan.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/responseEnd.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/setUrlProcessingMetadata.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/tracingUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/urls.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/wrapperUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/withServerActionInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapGenerationFunctionWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapMiddlewareWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapRouteHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapServerComponentWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/getBuildPluginOptions.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/handleRunAfterProductionCompile.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/componentAnnotationLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/moduleMetadataInjectionLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/prefixLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/valueInjectionLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/wrappingLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/manifest/createRouteManifest.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/polyfills/perf_hooks.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/apiWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/middlewareWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/pageWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/requestAsyncStorageShim.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/routeHandlerWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/sentryInitWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/serverComponentWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/constructTurbopackConfig.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/generateValueInjectionRules.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/util.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/webpack.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/buildTime.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/constants.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/deprecatedWebpackOptions.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObject.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectBundlerUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/tunnel.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/distDirRewriteFramesIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/wrapApiHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.client.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.server.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/distDirRewriteFramesIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/handleOnSpanStart.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/prepareSafeIdGeneratorContext.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelCronsMonitoring.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelQueuesMonitoring.js","../../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/deserialize.js","../../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/index.js","../../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/serialize.js","../../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/types.js","../../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/package.json","../../../../../node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.16.0/node_modules/acorn","../../../../../node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.16.0/node_modules/acorn-jsx/index.js","../../../../../node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.16.0/node_modules/acorn-jsx/package.json","../../../../../node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.16.0/node_modules/acorn-jsx/xhtml.js","../../../../../node_modules/.pnpm/acorn@8.16.0/node_modules/acorn/dist/acorn.js","../../../../../node_modules/.pnpm/acorn@8.16.0/node_modules/acorn/dist/acorn.mjs","../../../../../node_modules/.pnpm/acorn@8.16.0/node_modules/acorn/package.json","../../../../../node_modules/.pnpm/astring@1.9.0/node_modules/astring/dist/astring.mjs","../../../../../node_modules/.pnpm/astring@1.9.0/node_modules/astring/package.json","../../../../../node_modules/.pnpm/atomic-sleep@1.0.0/node_modules/atomic-sleep/index.js","../../../../../node_modules/.pnpm/atomic-sleep@1.0.0/node_modules/atomic-sleep/package.json","../../../../../node_modules/.pnpm/bail@2.0.2/node_modules/bail/index.js","../../../../../node_modules/.pnpm/bail@2.0.2/node_modules/bail/package.json","../../../../../node_modules/.pnpm/ccount@2.0.1/node_modules/ccount/index.js","../../../../../node_modules/.pnpm/ccount@2.0.1/node_modules/ccount/package.json","../../../../../node_modules/.pnpm/character-entities-html4@2.1.0/node_modules/character-entities-html4/index.js","../../../../../node_modules/.pnpm/character-entities-html4@2.1.0/node_modules/character-entities-html4/package.json","../../../../../node_modules/.pnpm/character-entities-legacy@3.0.0/node_modules/character-entities-legacy/index.js","../../../../../node_modules/.pnpm/character-entities-legacy@3.0.0/node_modules/character-entities-legacy/package.json","../../../../../node_modules/.pnpm/character-entities@2.0.2/node_modules/character-entities/index.js","../../../../../node_modules/.pnpm/character-entities@2.0.2/node_modules/character-entities/package.json","../../../../../node_modules/.pnpm/character-reference-invalid@2.0.1/node_modules/character-reference-invalid/index.js","../../../../../node_modules/.pnpm/character-reference-invalid@2.0.1/node_modules/character-reference-invalid/package.json","../../../../../node_modules/.pnpm/collapse-white-space@2.1.0/node_modules/collapse-white-space/index.js","../../../../../node_modules/.pnpm/collapse-white-space@2.1.0/node_modules/collapse-white-space/package.json","../../../../../node_modules/.pnpm/comma-separated-tokens@2.0.3/node_modules/comma-separated-tokens/index.js","../../../../../node_modules/.pnpm/comma-separated-tokens@2.0.3/node_modules/comma-separated-tokens/package.json","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/package.json","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/browser.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/index.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/node.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/ms","../../../../../node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/character-entities","../../../../../node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/decode-named-character-reference/index.js","../../../../../node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/decode-named-character-reference/package.json","../../../../../node_modules/.pnpm/devlop@1.1.0/node_modules/devlop/lib/default.js","../../../../../node_modules/.pnpm/devlop@1.1.0/node_modules/devlop/package.json","../../../../../node_modules/.pnpm/estree-util-attach-comments@3.0.0/node_modules/estree-util-attach-comments/index.js","../../../../../node_modules/.pnpm/estree-util-attach-comments@3.0.0/node_modules/estree-util-attach-comments/lib/index.js","../../../../../node_modules/.pnpm/estree-util-attach-comments@3.0.0/node_modules/estree-util-attach-comments/package.json","../../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/devlop","../../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-util-build-jsx/index.js","../../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-util-build-jsx/lib/index.js","../../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-util-build-jsx/package.json","../../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-util-is-identifier-name","../../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-walker","../../../../../node_modules/.pnpm/estree-util-is-identifier-name@3.0.0/node_modules/estree-util-is-identifier-name/index.js","../../../../../node_modules/.pnpm/estree-util-is-identifier-name@3.0.0/node_modules/estree-util-is-identifier-name/lib/index.js","../../../../../node_modules/.pnpm/estree-util-is-identifier-name@3.0.0/node_modules/estree-util-is-identifier-name/package.json","../../../../../node_modules/.pnpm/estree-util-scope@1.0.0/node_modules/devlop","../../../../../node_modules/.pnpm/estree-util-scope@1.0.0/node_modules/estree-util-scope/index.js","../../../../../node_modules/.pnpm/estree-util-scope@1.0.0/node_modules/estree-util-scope/lib/index.js","../../../../../node_modules/.pnpm/estree-util-scope@1.0.0/node_modules/estree-util-scope/package.json","../../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/astring","../../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/estree-util-to-js/index.js","../../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/estree-util-to-js/lib/index.js","../../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/estree-util-to-js/lib/jsx.js","../../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/estree-util-to-js/package.json","../../../../../node_modules/.pnpm/estree-util-visit@2.0.0/node_modules/estree-util-visit/index.js","../../../../../node_modules/.pnpm/estree-util-visit@2.0.0/node_modules/estree-util-visit/lib/color.node.js","../../../../../node_modules/.pnpm/estree-util-visit@2.0.0/node_modules/estree-util-visit/lib/index.js","../../../../../node_modules/.pnpm/estree-util-visit@2.0.0/node_modules/estree-util-visit/package.json","../../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/package.json","../../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/async.js","../../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/index.js","../../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/sync.js","../../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/walker.js","../../../../../node_modules/.pnpm/extend@3.0.2/node_modules/extend/index.js","../../../../../node_modules/.pnpm/extend@3.0.2/node_modules/extend/package.json","../../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js","../../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/package.json","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/comma-separated-tokens","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/devlop","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/estree-util-attach-comments","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/estree-util-is-identifier-name","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/index.js","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/comment.js","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/element.js","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/index.js","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/mdx-expression.js","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/mdx-jsx-element.js","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/mdxjs-esm.js","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/root.js","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/text.js","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/index.js","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/state.js","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/package.json","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-whitespace","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/property-information","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/space-separated-tokens","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/style-to-js","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/unist-util-position","../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/zwitch","../../../../../node_modules/.pnpm/hast-util-whitespace@3.0.0/node_modules/hast-util-whitespace/index.js","../../../../../node_modules/.pnpm/hast-util-whitespace@3.0.0/node_modules/hast-util-whitespace/lib/index.js","../../../../../node_modules/.pnpm/hast-util-whitespace@3.0.0/node_modules/hast-util-whitespace/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@1.15.0/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/index.js","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/lib/register.js","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/index.js","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/lib/register.js","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/inline-style-parser@0.2.7/node_modules/inline-style-parser/cjs/index.js","../../../../../node_modules/.pnpm/inline-style-parser@0.2.7/node_modules/inline-style-parser/package.json","../../../../../node_modules/.pnpm/is-alphabetical@2.0.1/node_modules/is-alphabetical/index.js","../../../../../node_modules/.pnpm/is-alphabetical@2.0.1/node_modules/is-alphabetical/package.json","../../../../../node_modules/.pnpm/is-alphanumerical@2.0.1/node_modules/is-alphabetical","../../../../../node_modules/.pnpm/is-alphanumerical@2.0.1/node_modules/is-alphanumerical/index.js","../../../../../node_modules/.pnpm/is-alphanumerical@2.0.1/node_modules/is-alphanumerical/package.json","../../../../../node_modules/.pnpm/is-alphanumerical@2.0.1/node_modules/is-decimal","../../../../../node_modules/.pnpm/is-decimal@2.0.1/node_modules/is-decimal/index.js","../../../../../node_modules/.pnpm/is-decimal@2.0.1/node_modules/is-decimal/package.json","../../../../../node_modules/.pnpm/is-hexadecimal@2.0.1/node_modules/is-hexadecimal/index.js","../../../../../node_modules/.pnpm/is-hexadecimal@2.0.1/node_modules/is-hexadecimal/package.json","../../../../../node_modules/.pnpm/is-plain-obj@4.1.0/node_modules/is-plain-obj/index.js","../../../../../node_modules/.pnpm/is-plain-obj@4.1.0/node_modules/is-plain-obj/package.json","../../../../../node_modules/.pnpm/js-tokens@4.0.0/node_modules/js-tokens/index.js","../../../../../node_modules/.pnpm/js-tokens@4.0.0/node_modules/js-tokens/package.json","../../../../../node_modules/.pnpm/markdown-extensions@2.0.0/node_modules/markdown-extensions/index.js","../../../../../node_modules/.pnpm/markdown-extensions@2.0.0/node_modules/markdown-extensions/package.json","../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/decode-named-character-reference","../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/index.js","../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/lib/index.js","../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/package.json","../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-to-string","../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/micromark","../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/micromark-util-decode-numeric-character-reference","../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/micromark-util-decode-string","../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/micromark-util-normalize-identifier","../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/unist-util-stringify-position","../../../../../node_modules/.pnpm/mdast-util-mdx-expression@2.0.1/node_modules/devlop","../../../../../node_modules/.pnpm/mdast-util-mdx-expression@2.0.1/node_modules/mdast-util-mdx-expression/index.js","../../../../../node_modules/.pnpm/mdast-util-mdx-expression@2.0.1/node_modules/mdast-util-mdx-expression/lib/index.js","../../../../../node_modules/.pnpm/mdast-util-mdx-expression@2.0.1/node_modules/mdast-util-mdx-expression/package.json","../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/ccount","../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/devlop","../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/mdast-util-mdx-jsx/index.js","../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/mdast-util-mdx-jsx/lib/index.js","../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/mdast-util-mdx-jsx/package.json","../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/parse-entities","../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/stringify-entities","../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/unist-util-stringify-position","../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/vfile-message","../../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx-expression","../../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx-jsx","../../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx/index.js","../../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx/lib/index.js","../../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx/package.json","../../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdxjs-esm","../../../../../node_modules/.pnpm/mdast-util-mdxjs-esm@2.0.1/node_modules/devlop","../../../../../node_modules/.pnpm/mdast-util-mdxjs-esm@2.0.1/node_modules/mdast-util-mdxjs-esm/index.js","../../../../../node_modules/.pnpm/mdast-util-mdxjs-esm@2.0.1/node_modules/mdast-util-mdxjs-esm/lib/index.js","../../../../../node_modules/.pnpm/mdast-util-mdxjs-esm@2.0.1/node_modules/mdast-util-mdxjs-esm/package.json","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/@ungap/structured-clone","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/devlop","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/index.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/footer.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/break.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/code.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/delete.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/heading.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/html.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/image.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/index.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/link.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/list.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/root.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/strong.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/text.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/index.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/revert.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/state.js","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/package.json","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/micromark-util-sanitize-uri","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/trim-lines","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/unist-util-position","../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/unist-util-visit","../../../../../node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/index.js","../../../../../node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/lib/index.js","../../../../../node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/package.json","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/decode-named-character-reference","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/index.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/attention.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/autolink.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/blank-line.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/block-quote.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/character-escape.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/character-reference.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-fenced.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-indented.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-text.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/content.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/definition.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/heading-atx.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/html-flow.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/html-text.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-end.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-start-image.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-start-link.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/line-ending.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/list.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/setext-underline.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/thematic-break.js","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/package.json","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-destination","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-label","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-space","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-title","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-whitespace","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-character","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-chunked","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-classify-character","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-html-tag-name","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-normalize-identifier","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-resolve-all","../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-subtokenize","../../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-extension-mdx-expression/index.js","../../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-extension-mdx-expression/lib/syntax.js","../../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-extension-mdx-expression/package.json","../../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-factory-mdx-expression","../../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-factory-space","../../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-util-character","../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/estree-util-is-identifier-name","../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/index.js","../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/lib/factory-tag.js","../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/lib/jsx-flow.js","../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/lib/jsx-text.js","../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/lib/syntax.js","../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/package.json","../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-factory-mdx-expression","../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-factory-space","../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-util-character","../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/vfile-message","../../../../../node_modules/.pnpm/micromark-extension-mdx-md@2.0.0/node_modules/micromark-extension-mdx-md/index.js","../../../../../node_modules/.pnpm/micromark-extension-mdx-md@2.0.0/node_modules/micromark-extension-mdx-md/package.json","../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-core-commonmark","../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-extension-mdxjs-esm/index.js","../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-extension-mdxjs-esm/lib/syntax.js","../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-extension-mdxjs-esm/package.json","../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-util-character","../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-util-events-to-acorn","../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/unist-util-position-from-estree","../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/vfile-message","../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/acorn","../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/acorn-jsx","../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdx-expression","../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdx-jsx","../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdx-md","../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdxjs-esm","../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdxjs/index.js","../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdxjs/package.json","../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-util-combine-extensions","../../../../../node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-factory-destination/index.js","../../../../../node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-factory-destination/package.json","../../../../../node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-util-character","../../../../../node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-factory-label/index.js","../../../../../node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-factory-label/package.json","../../../../../node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-util-character","../../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-factory-mdx-expression/index.js","../../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-factory-mdx-expression/package.json","../../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-factory-space","../../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-util-character","../../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-util-events-to-acorn","../../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/unist-util-position-from-estree","../../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/vfile-message","../../../../../node_modules/.pnpm/micromark-factory-space@2.0.1/node_modules/micromark-factory-space/index.js","../../../../../node_modules/.pnpm/micromark-factory-space@2.0.1/node_modules/micromark-factory-space/package.json","../../../../../node_modules/.pnpm/micromark-factory-space@2.0.1/node_modules/micromark-util-character","../../../../../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-space","../../../../../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-title/index.js","../../../../../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-title/package.json","../../../../../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-util-character","../../../../../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-space","../../../../../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-whitespace/index.js","../../../../../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-whitespace/package.json","../../../../../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-util-character","../../../../../node_modules/.pnpm/micromark-util-character@2.1.1/node_modules/micromark-util-character/index.js","../../../../../node_modules/.pnpm/micromark-util-character@2.1.1/node_modules/micromark-util-character/package.json","../../../../../node_modules/.pnpm/micromark-util-chunked@2.0.1/node_modules/micromark-util-chunked/index.js","../../../../../node_modules/.pnpm/micromark-util-chunked@2.0.1/node_modules/micromark-util-chunked/package.json","../../../../../node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-character","../../../../../node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-classify-character/index.js","../../../../../node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-classify-character/package.json","../../../../../node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-chunked","../../../../../node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-combine-extensions/index.js","../../../../../node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-combine-extensions/package.json","../../../../../node_modules/.pnpm/micromark-util-decode-numeric-character-reference@2.0.2/node_modules/micromark-util-decode-numeric-character-reference/index.js","../../../../../node_modules/.pnpm/micromark-util-decode-numeric-character-reference@2.0.2/node_modules/micromark-util-decode-numeric-character-reference/package.json","../../../../../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/decode-named-character-reference","../../../../../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-numeric-character-reference","../../../../../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-string/index.js","../../../../../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-string/package.json","../../../../../node_modules/.pnpm/micromark-util-encode@2.0.1/node_modules/micromark-util-encode/index.js","../../../../../node_modules/.pnpm/micromark-util-encode@2.0.1/node_modules/micromark-util-encode/package.json","../../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/estree-util-visit","../../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/micromark-util-events-to-acorn/index.js","../../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/micromark-util-events-to-acorn/lib/index.js","../../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/micromark-util-events-to-acorn/package.json","../../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/vfile-message","../../../../../node_modules/.pnpm/micromark-util-html-tag-name@2.0.1/node_modules/micromark-util-html-tag-name/index.js","../../../../../node_modules/.pnpm/micromark-util-html-tag-name@2.0.1/node_modules/micromark-util-html-tag-name/package.json","../../../../../node_modules/.pnpm/micromark-util-normalize-identifier@2.0.1/node_modules/micromark-util-normalize-identifier/index.js","../../../../../node_modules/.pnpm/micromark-util-normalize-identifier@2.0.1/node_modules/micromark-util-normalize-identifier/package.json","../../../../../node_modules/.pnpm/micromark-util-resolve-all@2.0.1/node_modules/micromark-util-resolve-all/index.js","../../../../../node_modules/.pnpm/micromark-util-resolve-all@2.0.1/node_modules/micromark-util-resolve-all/package.json","../../../../../node_modules/.pnpm/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-character","../../../../../node_modules/.pnpm/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-encode","../../../../../node_modules/.pnpm/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-sanitize-uri/index.js","../../../../../node_modules/.pnpm/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-sanitize-uri/package.json","../../../../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-chunked","../../../../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/index.js","../../../../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/lib/splice-buffer.js","../../../../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/package.json","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/decode-named-character-reference","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-core-commonmark","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-factory-space","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-character","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-chunked","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-combine-extensions","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-decode-numeric-character-reference","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-encode","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-normalize-identifier","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-resolve-all","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-sanitize-uri","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-subtokenize","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/index.js","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/compile.js","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/constructs.js","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/create-tokenizer.js","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/content.js","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/document.js","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/flow.js","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/text.js","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/parse.js","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/postprocess.js","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/preprocess.js","../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/package.json","../../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/index.js","../../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/package.json","../../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js","../../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/package.json","../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/@babel/code-frame","../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/@mdx-js/mdx","../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/format-mdx-error.js","../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/jsx-runtime.cjs","../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/plugins/remove-imports-exports.js","../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/rsc.js","../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/serialize.js","../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/package.json","../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/rsc.js","../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/react","../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/unist-util-remove","../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/vfile","../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/vfile-matter","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/@opentelemetry/api","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/LICENSE","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/index.edge.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/index.node.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/noto-sans-v27-latin-regular.ttf","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/resvg.wasm","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/satori/LICENSE","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/yoga.wasm","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/constants.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/is-error.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/runtime-reacts.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/package.json","../../../../../node_modules/.pnpm/node_modules/@babel/code-frame","../../../../../node_modules/.pnpm/node_modules/@babel/helper-validator-identifier","../../../../../node_modules/.pnpm/node_modules/@mdx-js/mdx","../../../../../node_modules/.pnpm/node_modules/@opentelemetry/api","../../../../../node_modules/.pnpm/node_modules/@pinojs/redact","../../../../../node_modules/.pnpm/node_modules/@ungap/structured-clone","../../../../../node_modules/.pnpm/node_modules/acorn","../../../../../node_modules/.pnpm/node_modules/acorn-jsx","../../../../../node_modules/.pnpm/node_modules/astring","../../../../../node_modules/.pnpm/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/node_modules/bail","../../../../../node_modules/.pnpm/node_modules/ccount","../../../../../node_modules/.pnpm/node_modules/character-entities","../../../../../node_modules/.pnpm/node_modules/character-entities-html4","../../../../../node_modules/.pnpm/node_modules/character-entities-legacy","../../../../../node_modules/.pnpm/node_modules/character-reference-invalid","../../../../../node_modules/.pnpm/node_modules/collapse-white-space","../../../../../node_modules/.pnpm/node_modules/comma-separated-tokens","../../../../../node_modules/.pnpm/node_modules/debug","../../../../../node_modules/.pnpm/node_modules/decode-named-character-reference","../../../../../node_modules/.pnpm/node_modules/devlop","../../../../../node_modules/.pnpm/node_modules/estree-util-attach-comments","../../../../../node_modules/.pnpm/node_modules/estree-util-build-jsx","../../../../../node_modules/.pnpm/node_modules/estree-util-is-identifier-name","../../../../../node_modules/.pnpm/node_modules/estree-util-scope","../../../../../node_modules/.pnpm/node_modules/estree-util-to-js","../../../../../node_modules/.pnpm/node_modules/estree-util-visit","../../../../../node_modules/.pnpm/node_modules/estree-walker","../../../../../node_modules/.pnpm/node_modules/extend","../../../../../node_modules/.pnpm/node_modules/has-flag","../../../../../node_modules/.pnpm/node_modules/hast-util-to-estree","../../../../../node_modules/.pnpm/node_modules/hast-util-whitespace","../../../../../node_modules/.pnpm/node_modules/inline-style-parser","../../../../../node_modules/.pnpm/node_modules/is-alphabetical","../../../../../node_modules/.pnpm/node_modules/is-alphanumerical","../../../../../node_modules/.pnpm/node_modules/is-decimal","../../../../../node_modules/.pnpm/node_modules/is-hexadecimal","../../../../../node_modules/.pnpm/node_modules/is-plain-obj","../../../../../node_modules/.pnpm/node_modules/js-tokens","../../../../../node_modules/.pnpm/node_modules/markdown-extensions","../../../../../node_modules/.pnpm/node_modules/mdast-util-from-markdown","../../../../../node_modules/.pnpm/node_modules/mdast-util-mdx","../../../../../node_modules/.pnpm/node_modules/mdast-util-mdx-expression","../../../../../node_modules/.pnpm/node_modules/mdast-util-mdx-jsx","../../../../../node_modules/.pnpm/node_modules/mdast-util-mdxjs-esm","../../../../../node_modules/.pnpm/node_modules/mdast-util-to-hast","../../../../../node_modules/.pnpm/node_modules/mdast-util-to-string","../../../../../node_modules/.pnpm/node_modules/micromark","../../../../../node_modules/.pnpm/node_modules/micromark-core-commonmark","../../../../../node_modules/.pnpm/node_modules/micromark-extension-mdx-expression","../../../../../node_modules/.pnpm/node_modules/micromark-extension-mdx-jsx","../../../../../node_modules/.pnpm/node_modules/micromark-extension-mdx-md","../../../../../node_modules/.pnpm/node_modules/micromark-extension-mdxjs","../../../../../node_modules/.pnpm/node_modules/micromark-extension-mdxjs-esm","../../../../../node_modules/.pnpm/node_modules/micromark-factory-destination","../../../../../node_modules/.pnpm/node_modules/micromark-factory-label","../../../../../node_modules/.pnpm/node_modules/micromark-factory-mdx-expression","../../../../../node_modules/.pnpm/node_modules/micromark-factory-space","../../../../../node_modules/.pnpm/node_modules/micromark-factory-title","../../../../../node_modules/.pnpm/node_modules/micromark-factory-whitespace","../../../../../node_modules/.pnpm/node_modules/micromark-util-character","../../../../../node_modules/.pnpm/node_modules/micromark-util-chunked","../../../../../node_modules/.pnpm/node_modules/micromark-util-classify-character","../../../../../node_modules/.pnpm/node_modules/micromark-util-combine-extensions","../../../../../node_modules/.pnpm/node_modules/micromark-util-decode-numeric-character-reference","../../../../../node_modules/.pnpm/node_modules/micromark-util-decode-string","../../../../../node_modules/.pnpm/node_modules/micromark-util-encode","../../../../../node_modules/.pnpm/node_modules/micromark-util-events-to-acorn","../../../../../node_modules/.pnpm/node_modules/micromark-util-html-tag-name","../../../../../node_modules/.pnpm/node_modules/micromark-util-normalize-identifier","../../../../../node_modules/.pnpm/node_modules/micromark-util-resolve-all","../../../../../node_modules/.pnpm/node_modules/micromark-util-sanitize-uri","../../../../../node_modules/.pnpm/node_modules/micromark-util-subtokenize","../../../../../node_modules/.pnpm/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/node_modules/ms","../../../../../node_modules/.pnpm/node_modules/on-exit-leak-free","../../../../../node_modules/.pnpm/node_modules/parse-entities","../../../../../node_modules/.pnpm/node_modules/picocolors","../../../../../node_modules/.pnpm/node_modules/pino-std-serializers","../../../../../node_modules/.pnpm/node_modules/property-information","../../../../../node_modules/.pnpm/node_modules/quick-format-unescaped","../../../../../node_modules/.pnpm/node_modules/real-require","../../../../../node_modules/.pnpm/node_modules/recma-build-jsx","../../../../../node_modules/.pnpm/node_modules/recma-jsx","../../../../../node_modules/.pnpm/node_modules/recma-stringify","../../../../../node_modules/.pnpm/node_modules/rehype-recma","../../../../../node_modules/.pnpm/node_modules/remark-mdx","../../../../../node_modules/.pnpm/node_modules/remark-parse","../../../../../node_modules/.pnpm/node_modules/remark-rehype","../../../../../node_modules/.pnpm/node_modules/safe-stable-stringify","../../../../../node_modules/.pnpm/node_modules/sonic-boom","../../../../../node_modules/.pnpm/node_modules/space-separated-tokens","../../../../../node_modules/.pnpm/node_modules/stringify-entities","../../../../../node_modules/.pnpm/node_modules/style-to-js","../../../../../node_modules/.pnpm/node_modules/style-to-object","../../../../../node_modules/.pnpm/node_modules/supports-color","../../../../../node_modules/.pnpm/node_modules/thread-stream","../../../../../node_modules/.pnpm/node_modules/trim-lines","../../../../../node_modules/.pnpm/node_modules/trough","../../../../../node_modules/.pnpm/node_modules/unified","../../../../../node_modules/.pnpm/node_modules/unist-util-is","../../../../../node_modules/.pnpm/node_modules/unist-util-position","../../../../../node_modules/.pnpm/node_modules/unist-util-position-from-estree","../../../../../node_modules/.pnpm/node_modules/unist-util-remove","../../../../../node_modules/.pnpm/node_modules/unist-util-stringify-position","../../../../../node_modules/.pnpm/node_modules/unist-util-visit","../../../../../node_modules/.pnpm/node_modules/unist-util-visit-parents","../../../../../node_modules/.pnpm/node_modules/vfile","../../../../../node_modules/.pnpm/node_modules/vfile-matter","../../../../../node_modules/.pnpm/node_modules/vfile-message","../../../../../node_modules/.pnpm/node_modules/yaml","../../../../../node_modules/.pnpm/node_modules/zwitch","../../../../../node_modules/.pnpm/on-exit-leak-free@2.1.2/node_modules/on-exit-leak-free/index.js","../../../../../node_modules/.pnpm/on-exit-leak-free@2.1.2/node_modules/on-exit-leak-free/package.json","../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/character-entities-legacy","../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/character-reference-invalid","../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/decode-named-character-reference","../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/is-alphanumerical","../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/is-decimal","../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/is-hexadecimal","../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/parse-entities/index.js","../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/parse-entities/lib/index.js","../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/parse-entities/package.json","../../../../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/package.json","../../../../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/index.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-helpers.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-proto.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-with-cause.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/req.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/res.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/package.json","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/@pinojs/redact","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/on-exit-leak-free","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino-std-serializers","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/file.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/caller.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/constants.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/deprecations.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/levels.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/meta.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/multistream.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/proto.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/redaction.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/symbols.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/time.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/tools.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/transport-stream.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/transport.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/worker.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/package.json","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/pino.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/quick-format-unescaped","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/safe-stable-stringify","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/sonic-boom","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/thread-stream","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/index.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/aria.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/find.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/hast-to-react.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/html.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/normalize.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/svg.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/case-insensitive-transform.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/case-sensitive-transform.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/create.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/defined-info.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/info.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/merge.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/schema.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/types.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/xlink.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/xml.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/xmlns.js","../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/package.json","../../../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/index.js","../../../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/package.json","../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-jsx-dev-runtime.development.js","../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-jsx-dev-runtime.production.js","../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-jsx-runtime.development.js","../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-jsx-runtime.production.js","../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react.development.js","../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react.production.js","../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/index.js","../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/jsx-dev-runtime.js","../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/jsx-runtime.js","../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/package.json","../../../../../node_modules/.pnpm/real-require@0.2.0/node_modules/real-require/package.json","../../../../../node_modules/.pnpm/real-require@0.2.0/node_modules/real-require/src/index.js","../../../../../node_modules/.pnpm/recma-build-jsx@1.0.0/node_modules/estree-util-build-jsx","../../../../../node_modules/.pnpm/recma-build-jsx@1.0.0/node_modules/recma-build-jsx/index.js","../../../../../node_modules/.pnpm/recma-build-jsx@1.0.0/node_modules/recma-build-jsx/lib/index.js","../../../../../node_modules/.pnpm/recma-build-jsx@1.0.0/node_modules/recma-build-jsx/package.json","../../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/acorn-jsx","../../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/estree-util-to-js","../../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/recma-jsx/index.js","../../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/recma-jsx/lib/index.js","../../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/recma-jsx/package.json","../../../../../node_modules/.pnpm/recma-stringify@1.0.0/node_modules/estree-util-to-js","../../../../../node_modules/.pnpm/recma-stringify@1.0.0/node_modules/recma-stringify/index.js","../../../../../node_modules/.pnpm/recma-stringify@1.0.0/node_modules/recma-stringify/lib/index.js","../../../../../node_modules/.pnpm/recma-stringify@1.0.0/node_modules/recma-stringify/package.json","../../../../../node_modules/.pnpm/rehype-recma@1.0.0/node_modules/hast-util-to-estree","../../../../../node_modules/.pnpm/rehype-recma@1.0.0/node_modules/rehype-recma/index.js","../../../../../node_modules/.pnpm/rehype-recma@1.0.0/node_modules/rehype-recma/lib/index.js","../../../../../node_modules/.pnpm/rehype-recma@1.0.0/node_modules/rehype-recma/package.json","../../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/mdast-util-mdx","../../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/micromark-extension-mdxjs","../../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/remark-mdx/index.js","../../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/remark-mdx/lib/index.js","../../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/remark-mdx/package.json","../../../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/mdast-util-from-markdown","../../../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/index.js","../../../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/lib/index.js","../../../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/package.json","../../../../../node_modules/.pnpm/remark-rehype@11.1.2/node_modules/mdast-util-to-hast","../../../../../node_modules/.pnpm/remark-rehype@11.1.2/node_modules/remark-rehype/index.js","../../../../../node_modules/.pnpm/remark-rehype@11.1.2/node_modules/remark-rehype/lib/index.js","../../../../../node_modules/.pnpm/remark-rehype@11.1.2/node_modules/remark-rehype/package.json","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/debug","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/index.js","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/package.json","../../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/index.js","../../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/package.json","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/LICENSE","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/README.md","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/bench.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/check.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/example.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/fixtures/firehose.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/index.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/package.json","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/destroy.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/end.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/flush-sync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/flush.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/fsync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/helper.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/minlength.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/mode.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/periodicflush.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/reopen.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/retry.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/sync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/write.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/types/tests/test.ts","../../../../../node_modules/.pnpm/space-separated-tokens@2.0.2/node_modules/space-separated-tokens/index.js","../../../../../node_modules/.pnpm/space-separated-tokens@2.0.2/node_modules/space-separated-tokens/package.json","../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/character-entities-html4","../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/character-entities-legacy","../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/index.js","../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/constant/dangerous.js","../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/core.js","../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/index.js","../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/format-basic.js","../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/format-smart.js","../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-decimal.js","../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-hexadecimal.js","../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-named.js","../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/package.json","../../../../../node_modules/.pnpm/style-to-js@1.1.21/node_modules/style-to-js/cjs/index.js","../../../../../node_modules/.pnpm/style-to-js@1.1.21/node_modules/style-to-js/cjs/utilities.js","../../../../../node_modules/.pnpm/style-to-js@1.1.21/node_modules/style-to-js/package.json","../../../../../node_modules/.pnpm/style-to-js@1.1.21/node_modules/style-to-object","../../../../../node_modules/.pnpm/style-to-object@1.0.14/node_modules/inline-style-parser","../../../../../node_modules/.pnpm/style-to-object@1.0.14/node_modules/style-to-object/cjs/index.js","../../../../../node_modules/.pnpm/style-to-object@1.0.14/node_modules/style-to-object/package.json","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/has-flag","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/package.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/real-require","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/LICENSE","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/bench.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/eslint.config.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/index.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/indexes.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/wait.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/worker.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/package.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/base.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/bench.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/bundlers.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/close-on-gc.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/commonjs-fallback.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/context.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/create-and-exit.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/custom-worker.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/dir with spaces/test-package.zip","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/emit-event.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/end.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/error.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/esm.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/event.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/exit.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/get-context.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/helper.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/indexes.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/multibyte-chars.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/on-message.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/index.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/pkg.config.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/pkg.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/port.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/post-message.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/string-limit-2.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/string-limit.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/syntax-error.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/thread-management.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file-on-destroy.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file-on-final.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-next.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/transpiled.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-commonjs-default-export.zip","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-native.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-node-fallback.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts/to-file.ts","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts/transpile.sh","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/uncaughtException.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/unhandledRejection.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/yarnrc.yml","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/tsconfig.json","../../../../../node_modules/.pnpm/trim-lines@3.0.1/node_modules/trim-lines/index.js","../../../../../node_modules/.pnpm/trim-lines@3.0.1/node_modules/trim-lines/package.json","../../../../../node_modules/.pnpm/trough@2.2.0/node_modules/trough/index.js","../../../../../node_modules/.pnpm/trough@2.2.0/node_modules/trough/lib/index.js","../../../../../node_modules/.pnpm/trough@2.2.0/node_modules/trough/package.json","../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/bail","../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/devlop","../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/extend","../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/is-plain-obj","../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/trough","../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/index.js","../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/lib/callable-instance.js","../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/lib/index.js","../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/package.json","../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/vfile","../../../../../node_modules/.pnpm/unist-util-is@5.2.1/node_modules/unist-util-is/index.js","../../../../../node_modules/.pnpm/unist-util-is@5.2.1/node_modules/unist-util-is/lib/index.js","../../../../../node_modules/.pnpm/unist-util-is@5.2.1/node_modules/unist-util-is/package.json","../../../../../node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/index.js","../../../../../node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/lib/index.js","../../../../../node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/package.json","../../../../../node_modules/.pnpm/unist-util-position-from-estree@2.0.0/node_modules/unist-util-position-from-estree/index.js","../../../../../node_modules/.pnpm/unist-util-position-from-estree@2.0.0/node_modules/unist-util-position-from-estree/lib/index.js","../../../../../node_modules/.pnpm/unist-util-position-from-estree@2.0.0/node_modules/unist-util-position-from-estree/package.json","../../../../../node_modules/.pnpm/unist-util-position@5.0.0/node_modules/unist-util-position/index.js","../../../../../node_modules/.pnpm/unist-util-position@5.0.0/node_modules/unist-util-position/lib/index.js","../../../../../node_modules/.pnpm/unist-util-position@5.0.0/node_modules/unist-util-position/package.json","../../../../../node_modules/.pnpm/unist-util-remove@3.1.1/node_modules/unist-util-is","../../../../../node_modules/.pnpm/unist-util-remove@3.1.1/node_modules/unist-util-remove/index.js","../../../../../node_modules/.pnpm/unist-util-remove@3.1.1/node_modules/unist-util-remove/lib/index.js","../../../../../node_modules/.pnpm/unist-util-remove@3.1.1/node_modules/unist-util-remove/package.json","../../../../../node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/index.js","../../../../../node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/lib/index.js","../../../../../node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/package.json","../../../../../node_modules/.pnpm/unist-util-visit-parents@5.1.3/node_modules/unist-util-visit-parents/package.json","../../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-is","../../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/index.js","../../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/color.node.js","../../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/index.js","../../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/package.json","../../../../../node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit-parents","../../../../../node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit/index.js","../../../../../node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit/lib/index.js","../../../../../node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit/package.json","../../../../../node_modules/.pnpm/vfile-matter@5.0.1/node_modules/vfile-matter/index.js","../../../../../node_modules/.pnpm/vfile-matter@5.0.1/node_modules/vfile-matter/lib/index.js","../../../../../node_modules/.pnpm/vfile-matter@5.0.1/node_modules/vfile-matter/package.json","../../../../../node_modules/.pnpm/vfile-matter@5.0.1/node_modules/yaml","../../../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/unist-util-stringify-position","../../../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/index.js","../../../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/lib/index.js","../../../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/package.json","../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile-message","../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/index.js","../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/index.js","../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minpath.js","../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minproc.js","../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minurl.js","../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minurl.shared.js","../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/package.json","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/compose-collection.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/compose-doc.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/compose-node.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/compose-scalar.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/composer.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-block-map.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-block-scalar.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-block-seq.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-end.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-flow-collection.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-flow-scalar.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-props.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/util-contains-newline.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/util-empty-scalar-position.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/util-flow-indent-check.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/util-map-includes.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/Document.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/anchors.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/applyReviver.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/createNode.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/directives.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/errors.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/index.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/log.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Alias.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Collection.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Node.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Pair.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Scalar.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/YAMLMap.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/YAMLSeq.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/addPairToJSMap.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/identity.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/toJS.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/cst-scalar.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/cst-stringify.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/cst-visit.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/cst.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/lexer.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/line-counter.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/parser.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/public-api.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/Schema.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/common/map.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/common/null.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/common/seq.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/common/string.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/core/bool.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/core/float.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/core/int.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/core/schema.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/json/schema.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/tags.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/binary.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/bool.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/float.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/int.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/merge.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/omap.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/pairs.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/schema.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/set.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/foldFlowLines.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringify.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyCollection.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyComment.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyDocument.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyNumber.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyPair.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyString.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/visit.js","../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/package.json","../../../../../node_modules/.pnpm/zwitch@2.0.4/node_modules/zwitch/index.js","../../../../../node_modules/.pnpm/zwitch@2.0.4/node_modules/zwitch/package.json","../../../../../node_modules/import-in-the-middle","../../../../../node_modules/next","../../../../../node_modules/pino","../../../../../node_modules/react","../../../../../node_modules/require-in-the-middle","../../../../node_modules/import-in-the-middle-138cd032e4b029f3","../../../../node_modules/import-in-the-middle-6ecbfda1283b1532","../../../../node_modules/next-mdx-remote-38ab1b696f56808a","../../../../node_modules/pino-2e79642258e38174","../../../../node_modules/require-in-the-middle-a99415fa67232f7f","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_5e35a34a.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_f7a67094.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_68baf629.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_e2e05945.js","../../../chunks/ssr/3c3e1_next-intl_dist_esm_production_server_react-server_getConfig_8e5b989d.js","../../../chunks/ssr/468ab_next_b54e3ae0._.js","../../../chunks/ssr/468ab_next_c7821d87._.js","../../../chunks/ssr/468ab_next_dist_668db2a3._.js","../../../chunks/ssr/468ab_next_dist_9c02c43c._.js","../../../chunks/ssr/468ab_next_dist_a9fadb3f._.js","../../../chunks/ssr/468ab_next_dist_client_components_9ea24689._.js","../../../chunks/ssr/468ab_next_dist_client_components_builtin_forbidden_fcf22647.js","../../../chunks/ssr/468ab_next_dist_client_components_builtin_unauthorized_242673a5.js","../../../chunks/ssr/468ab_next_dist_d9f52090._.js","../../../chunks/ssr/468ab_next_dist_e98c316f._.js","../../../chunks/ssr/468ab_next_dist_esm_10bac804._.js","../../../chunks/ssr/5e5d0_@opentelemetry_api_build_esm_f7b039e6._.js","../../../chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_317a5e2b._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_51b27302._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_634cb413._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_88fed31f._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_929773f6._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_f2e70164._.js","../../../chunks/ssr/[externals]_next_dist_compiled_@vercel_og_index_node_055f47ab.js","../../../chunks/ssr/[externals]_node:inspector_7a4283c6._.js","../../../chunks/ssr/[root-of-the-server]__03e78303._.js","../../../chunks/ssr/[root-of-the-server]__047498e4._.js","../../../chunks/ssr/[root-of-the-server]__0acb6d60._.js","../../../chunks/ssr/[root-of-the-server]__16d71f56._.js","../../../chunks/ssr/[root-of-the-server]__2da52317._.js","../../../chunks/ssr/[root-of-the-server]__34977423._.js","../../../chunks/ssr/[root-of-the-server]__366a9ff8._.js","../../../chunks/ssr/[root-of-the-server]__411530ea._.js","../../../chunks/ssr/[root-of-the-server]__515fce6c._.js","../../../chunks/ssr/[root-of-the-server]__5bd1b04a._.js","../../../chunks/ssr/[root-of-the-server]__63a582be._.js","../../../chunks/ssr/[root-of-the-server]__7fda9c9f._.js","../../../chunks/ssr/[root-of-the-server]__9bfda315._.js","../../../chunks/ssr/[root-of-the-server]__9eff91eb._.js","../../../chunks/ssr/[root-of-the-server]__bae78d21._.js","../../../chunks/ssr/[root-of-the-server]__bc75933a._.js","../../../chunks/ssr/[root-of-the-server]__d37a945e._.js","../../../chunks/ssr/[root-of-the-server]__d3969a9f._.js","../../../chunks/ssr/[root-of-the-server]__eb368494._.js","../../../chunks/ssr/[root-of-the-server]__fbc63b72._.js","../../../chunks/ssr/[turbopack]_runtime.js","../../../chunks/ssr/_16003e4d._.js","../../../chunks/ssr/_6189c8b5._.js","../../../chunks/ssr/_6f66913b._.js","../../../chunks/ssr/_88d60384._.js","../../../chunks/ssr/_b76d0ab2._.js","../../../chunks/ssr/_c3cb4fd0._.js","../../../chunks/ssr/_d825b83f._.js","../../../chunks/ssr/_ddd43d26._.js","../../../chunks/ssr/_df4aec0b._.js","../../../chunks/ssr/_next-internal_server_app_[locale]_[slug]_page_actions_d8822895.js","../../../chunks/ssr/app_[locale]_error_tsx_37c0341f._.js","../../../chunks/ssr/app_global-error_tsx_9170b7a0._.js","../../../chunks/ssr/components_blocks_05eea213._.js","../../../chunks/ssr/components_d242fd4b._.js","../../../chunks/ssr/components_ui_6a2a3715._.js","../../../chunks/ssr/messages_de_json_56e8cde5._.js","../../../chunks/ssr/messages_en_json_a7997480._.js","../../../chunks/ssr/node_modules__pnpm_20ad9314._.js","../../../chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","../../../chunks/ssr/node_modules__pnpm_329a8f51._.js","../../../chunks/ssr/node_modules__pnpm_66399b09._.js","../../../chunks/ssr/node_modules__pnpm_8387bcd6._.js","../../../chunks/ssr/node_modules__pnpm_d28cabd9._.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/.next/server/app/[locale]/[slug]/page/build-manifest.json b/.next/server/app/[locale]/[slug]/page/build-manifest.json index 436cd66d8..4482423a4 100644 --- a/.next/server/app/[locale]/[slug]/page/build-manifest.json +++ b/.next/server/app/[locale]/[slug]/page/build-manifest.json @@ -7,11 +7,11 @@ "lowPriorityFiles": [], "rootMainFiles": [ "static/chunks/c68fc807b9365f18.js", - "static/chunks/f51290069c969e8a.js", + "static/chunks/b263a60573bfd155.js", "static/chunks/29297b02a438a66e.js", "static/chunks/fd7b24483a212e2f.js", - "static/chunks/b62c08cc490fef16.js", - "static/chunks/turbopack-e5b78b2a7c8f1f21.js" + "static/chunks/b6898185462c2fee.js", + "static/chunks/turbopack-721eb9b8c3f79e29.js" ], "pages": {}, "ampFirstPages": [] diff --git a/.next/server/app/[locale]/[slug]/page/react-loadable-manifest.json b/.next/server/app/[locale]/[slug]/page/react-loadable-manifest.json index 313542e4d..a0b34aa9d 100644 --- a/.next/server/app/[locale]/[slug]/page/react-loadable-manifest.json +++ b/.next/server/app/[locale]/[slug]/page/react-loadable-manifest.json @@ -2,30 +2,29 @@ "565071": { "id": 565071, "files": [ - "static/chunks/a6d16f278f687ad0.js", + "static/chunks/d62bf387414e0748.js", "static/chunks/0ff158dd58fe47c8.js" ] }, "248785": { "id": 248785, "files": [ - "static/chunks/1fa1fc1d8df71347.js", + "static/chunks/ff6db6d7946b9f90.js", "static/chunks/0ff158dd58fe47c8.js" ] }, "950648": { "id": 950648, "files": [ - "static/chunks/d578f418b9661eaf.js", + "static/chunks/844db355c06db065.js", "static/chunks/0ff158dd58fe47c8.js" ] }, "566137": { "id": 566137, "files": [ - "static/chunks/0a765fb53d81ccec.js", - "static/chunks/c9e4534297dc4d54.js", - "static/chunks/9c4a690cd48e1298.js" + "static/chunks/9c4a690cd48e1298.js", + "static/chunks/c9e4534297dc4d54.js" ] } } \ No newline at end of file diff --git a/.next/server/app/[locale]/[slug]/page_client-reference-manifest.js b/.next/server/app/[locale]/[slug]/page_client-reference-manifest.js index 714c8c32d..1ead96256 100644 --- a/.next/server/app/[locale]/[slug]/page_client-reference-manifest.js +++ b/.next/server/app/[locale]/[slug]/page_client-reference-manifest.js @@ -1,2 +1,2 @@ globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; -globalThis.__RSC_MANIFEST["/[locale]/[slug]/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":666284,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":666284,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":29584,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":29584,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":30965,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":30965,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":966591,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":966591,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":3420,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3420,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":489266,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":489266,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":67067,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":67067,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/app/global-error.tsx ":{"id":253348,"name":"*","chunks":["/_next/static/chunks/7bc980684698d6e7.js","/_next/static/chunks/5336d64d11e7435f.js"],"async":false},"[project]/app/global-error.tsx":{"id":253348,"name":"*","chunks":["/_next/static/chunks/7bc980684698d6e7.js","/_next/static/chunks/5336d64d11e7435f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/app-dir/link.js ":{"id":184868,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/b550ef5d0ebc89bc.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/ab5e3144c40ca7be.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/app-dir/link.js":{"id":184868,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/b550ef5d0ebc89bc.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/ab5e3144c40ca7be.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/image-component.js ":{"id":702050,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/image-component.js":{"id":702050,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/layout/LanguageSwitcher.tsx ":{"id":287564,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/layout/LanguageSwitcher.tsx":{"id":287564,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/layout/Header.tsx ":{"id":993983,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/layout/Header.tsx":{"id":993983,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/SkipLink.tsx ":{"id":814508,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/SkipLink.tsx":{"id":814508,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/analytics/AnalyticsShell.tsx ":{"id":531518,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/analytics/AnalyticsShell.tsx":{"id":531518,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/node_modules/.pnpm/next-intl@4.9.0_@swc+helpers@0.5.20_next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js ":{"id":600023,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/node_modules/.pnpm/next-intl@4.9.0_@swc+helpers@0.5.20_next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js":{"id":600023,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/FeedbackClientWrapper.tsx ":{"id":689647,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/FeedbackClientWrapper.tsx":{"id":689647,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/app/[locale]/error.tsx ":{"id":309974,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/4e4487a1c38504b3.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/app/[locale]/error.tsx":{"id":309974,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/4e4487a1c38504b3.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/Scribble.tsx ":{"id":224038,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/Scribble.tsx":{"id":224038,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/analytics/ClientNotFoundTracker.tsx ":{"id":555331,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/analytics/ClientNotFoundTracker.tsx":{"id":555331,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/analytics/TrackedLink.tsx ":{"id":813804,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/b550ef5d0ebc89bc.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/ab5e3144c40ca7be.js"],"async":false},"[project]/components/analytics/TrackedLink.tsx":{"id":813804,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/b550ef5d0ebc89bc.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/ab5e3144c40ca7be.js"],"async":false},"[project]/components/blocks/HeroVideo.tsx ":{"id":610408,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/b550ef5d0ebc89bc.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/ab5e3144c40ca7be.js"],"async":false},"[project]/components/blocks/HeroVideo.tsx":{"id":610408,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/b550ef5d0ebc89bc.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/ab5e3144c40ca7be.js"],"async":false},"[project]/components/blocks/SubCompanyTiles.tsx ":{"id":138557,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/b550ef5d0ebc89bc.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/ab5e3144c40ca7be.js"],"async":false},"[project]/components/blocks/SubCompanyTiles.tsx":{"id":138557,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/b550ef5d0ebc89bc.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/ab5e3144c40ca7be.js"],"async":false},"[project]/components/blocks/CompetenceBentoGrid.tsx ":{"id":285997,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/b550ef5d0ebc89bc.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/ab5e3144c40ca7be.js"],"async":false},"[project]/components/blocks/CompetenceBentoGrid.tsx":{"id":285997,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/b550ef5d0ebc89bc.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/ab5e3144c40ca7be.js"],"async":false},"[project]/components/blocks/ReferencesSlider.tsx ":{"id":677705,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/b550ef5d0ebc89bc.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/ab5e3144c40ca7be.js"],"async":false},"[project]/components/blocks/ReferencesSlider.tsx":{"id":677705,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/b550ef5d0ebc89bc.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/ab5e3144c40ca7be.js"],"async":false},"[project]/components/blocks/CompanyTimeline.tsx ":{"id":287980,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/b550ef5d0ebc89bc.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/ab5e3144c40ca7be.js"],"async":false},"[project]/components/blocks/CompanyTimeline.tsx":{"id":287980,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/b550ef5d0ebc89bc.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/ab5e3144c40ca7be.js"],"async":false}},"ssrModuleMapping":{"666284":{"*":{"id":164732,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"29584":{"*":{"id":743976,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"30965":{"*":{"id":46550,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"966591":{"*":{"id":594180,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"3420":{"*":{"id":585766,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"489266":{"*":{"id":471584,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"67067":{"*":{"id":561162,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"253348":{"*":{"id":303171,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__411530ea._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js"],"async":false}},"184868":{"*":{"id":841757,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/components_d242fd4b._.js","server/chunks/ssr/[root-of-the-server]__6a2afcd0._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"702050":{"*":{"id":739969,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"287564":{"*":{"id":81870,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"993983":{"*":{"id":581631,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"814508":{"*":{"id":909381,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"531518":{"*":{"id":905651,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"600023":{"*":{"id":650766,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"689647":{"*":{"id":894447,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"309974":{"*":{"id":497627,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__5bbfddd1._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"224038":{"*":{"id":991320,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__28a191f2._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"555331":{"*":{"id":868513,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__28a191f2._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"813804":{"*":{"id":586793,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/components_d242fd4b._.js","server/chunks/ssr/[root-of-the-server]__6a2afcd0._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"610408":{"*":{"id":805585,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/components_d242fd4b._.js","server/chunks/ssr/[root-of-the-server]__6a2afcd0._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"138557":{"*":{"id":523290,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/components_d242fd4b._.js","server/chunks/ssr/[root-of-the-server]__6a2afcd0._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"285997":{"*":{"id":649511,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/components_d242fd4b._.js","server/chunks/ssr/[root-of-the-server]__6a2afcd0._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"677705":{"*":{"id":744435,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/components_d242fd4b._.js","server/chunks/ssr/[root-of-the-server]__6a2afcd0._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"287980":{"*":{"id":104186,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/components_d242fd4b._.js","server/chunks/ssr/[root-of-the-server]__6a2afcd0._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"666284":{"*":{"id":551417,"name":"*","chunks":[],"async":false}},"29584":{"*":{"id":536434,"name":"*","chunks":[],"async":false}},"30965":{"*":{"id":387103,"name":"*","chunks":[],"async":false}},"966591":{"*":{"id":580884,"name":"*","chunks":[],"async":false}},"3420":{"*":{"id":504014,"name":"*","chunks":[],"async":false}},"489266":{"*":{"id":726190,"name":"*","chunks":[],"async":false}},"67067":{"*":{"id":76412,"name":"*","chunks":[],"async":false}},"253348":{"*":{"id":153128,"name":"*","chunks":[],"async":false}},"184868":{"*":{"id":917929,"name":"*","chunks":[],"async":false}},"702050":{"*":{"id":986834,"name":"*","chunks":[],"async":false}},"287564":{"*":{"id":168713,"name":"*","chunks":[],"async":false}},"993983":{"*":{"id":625244,"name":"*","chunks":[],"async":false}},"814508":{"*":{"id":566663,"name":"*","chunks":[],"async":false}},"531518":{"*":{"id":292727,"name":"*","chunks":[],"async":false}},"600023":{"*":{"id":963034,"name":"*","chunks":[],"async":false}},"689647":{"*":{"id":679583,"name":"*","chunks":[],"async":false}},"309974":{"*":{"id":363934,"name":"*","chunks":[],"async":false}},"224038":{"*":{"id":404449,"name":"*","chunks":[],"async":false}},"555331":{"*":{"id":588684,"name":"*","chunks":[],"async":false}},"813804":{"*":{"id":214504,"name":"*","chunks":[],"async":false}},"610408":{"*":{"id":575076,"name":"*","chunks":[],"async":false}},"138557":{"*":{"id":34183,"name":"*","chunks":[],"async":false}},"285997":{"*":{"id":819160,"name":"*","chunks":[],"async":false}},"677705":{"*":{"id":960688,"name":"*","chunks":[],"async":false}},"287980":{"*":{"id":980820,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/app/[locale]/opengraph-image--metadata":[],"[project]/app/global-error":[],"[project]/app/[locale]/layout":[{"path":"static/chunks/928be433d65b40cc.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/error":[{"path":"static/chunks/928be433d65b40cc.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/not-found":[{"path":"static/chunks/928be433d65b40cc.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/[slug]/page":[{"path":"static/chunks/928be433d65b40cc.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}]},"entryJSFiles":{"[project]/app/[locale]/opengraph-image--metadata":["static/chunks/93736546a7cd8cd8.js","static/chunks/870a2c2978ab4440.js"],"[project]/app/global-error":["static/chunks/7bc980684698d6e7.js","static/chunks/5336d64d11e7435f.js"],"[project]/app/[locale]/layout":["static/chunks/76668d2ab61cd4a8.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b786cbc2e9238523.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/eeabc9d46e43f022.js"],"[project]/app/[locale]/error":["static/chunks/76668d2ab61cd4a8.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b786cbc2e9238523.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/eeabc9d46e43f022.js","static/chunks/4e4487a1c38504b3.js","static/chunks/0ff158dd58fe47c8.js","static/chunks/b550ef5d0ebc89bc.js"],"[project]/app/[locale]/not-found":["static/chunks/76668d2ab61cd4a8.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b786cbc2e9238523.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/eeabc9d46e43f022.js","static/chunks/a86ed0e5ea629175.js","static/chunks/0ff158dd58fe47c8.js","static/chunks/b550ef5d0ebc89bc.js"],"[project]/app/[locale]/[slug]/page":["static/chunks/76668d2ab61cd4a8.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b786cbc2e9238523.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/eeabc9d46e43f022.js","static/chunks/b550ef5d0ebc89bc.js","static/chunks/0ff158dd58fe47c8.js","static/chunks/ab5e3144c40ca7be.js"]}} +globalThis.__RSC_MANIFEST["/[locale]/[slug]/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":666284,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":666284,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":29584,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":29584,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":30965,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":30965,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":966591,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":966591,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":3420,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3420,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":489266,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":489266,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":67067,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":67067,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/app/global-error.tsx ":{"id":253348,"name":"*","chunks":["/_next/static/chunks/7bc980684698d6e7.js","/_next/static/chunks/5336d64d11e7435f.js"],"async":false},"[project]/app/global-error.tsx":{"id":253348,"name":"*","chunks":["/_next/static/chunks/7bc980684698d6e7.js","/_next/static/chunks/5336d64d11e7435f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/app-dir/link.js ":{"id":184868,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/11cc0f2e00ba9563.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/app-dir/link.js":{"id":184868,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/11cc0f2e00ba9563.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/image-component.js ":{"id":702050,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/image-component.js":{"id":702050,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/layout/LanguageSwitcher.tsx ":{"id":287564,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/layout/LanguageSwitcher.tsx":{"id":287564,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/layout/Header.tsx ":{"id":993983,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/layout/Header.tsx":{"id":993983,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/SkipLink.tsx ":{"id":814508,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/SkipLink.tsx":{"id":814508,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/analytics/AnalyticsShell.tsx ":{"id":531518,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/analytics/AnalyticsShell.tsx":{"id":531518,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/node_modules/.pnpm/next-intl@4.9.0_@swc+helpers@0.5.20_next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js ":{"id":600023,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/node_modules/.pnpm/next-intl@4.9.0_@swc+helpers@0.5.20_next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js":{"id":600023,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/FeedbackClientWrapper.tsx ":{"id":689647,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/FeedbackClientWrapper.tsx":{"id":689647,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/app/[locale]/error.tsx ":{"id":309974,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b02fdfb08ad720b0.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/app/[locale]/error.tsx":{"id":309974,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b02fdfb08ad720b0.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/Scribble.tsx ":{"id":224038,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/Scribble.tsx":{"id":224038,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/analytics/ClientNotFoundTracker.tsx ":{"id":555331,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/analytics/ClientNotFoundTracker.tsx":{"id":555331,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/analytics/TrackedLink.tsx ":{"id":813804,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/11cc0f2e00ba9563.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/analytics/TrackedLink.tsx":{"id":813804,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/11cc0f2e00ba9563.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/blocks/HeroVideo.tsx ":{"id":610408,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/11cc0f2e00ba9563.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/blocks/HeroVideo.tsx":{"id":610408,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/11cc0f2e00ba9563.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/blocks/SubCompanyTiles.tsx ":{"id":138557,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/11cc0f2e00ba9563.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/blocks/SubCompanyTiles.tsx":{"id":138557,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/11cc0f2e00ba9563.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/blocks/CompetenceBentoGrid.tsx ":{"id":285997,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/11cc0f2e00ba9563.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/blocks/CompetenceBentoGrid.tsx":{"id":285997,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/11cc0f2e00ba9563.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/blocks/ReferencesSlider.tsx ":{"id":677705,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/11cc0f2e00ba9563.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/blocks/ReferencesSlider.tsx":{"id":677705,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/11cc0f2e00ba9563.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/blocks/CompanyTimeline.tsx ":{"id":287980,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/11cc0f2e00ba9563.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/blocks/CompanyTimeline.tsx":{"id":287980,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/11cc0f2e00ba9563.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false}},"ssrModuleMapping":{"666284":{"*":{"id":164732,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"29584":{"*":{"id":743976,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"30965":{"*":{"id":46550,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"966591":{"*":{"id":594180,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"3420":{"*":{"id":585766,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"489266":{"*":{"id":471584,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"67067":{"*":{"id":561162,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"253348":{"*":{"id":303171,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__411530ea._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js"],"async":false}},"184868":{"*":{"id":841757,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__515fce6c._.js","server/chunks/ssr/components_blocks_05eea213._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_d242fd4b._.js"],"async":false}},"702050":{"*":{"id":739969,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"287564":{"*":{"id":81870,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"993983":{"*":{"id":581631,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"814508":{"*":{"id":909381,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"531518":{"*":{"id":905651,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"600023":{"*":{"id":650766,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"689647":{"*":{"id":894447,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"309974":{"*":{"id":497627,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__34977423._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"224038":{"*":{"id":991320,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__63a582be._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"555331":{"*":{"id":868513,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__63a582be._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"813804":{"*":{"id":586793,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__515fce6c._.js","server/chunks/ssr/components_blocks_05eea213._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_d242fd4b._.js"],"async":false}},"610408":{"*":{"id":805585,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__515fce6c._.js","server/chunks/ssr/components_blocks_05eea213._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_d242fd4b._.js"],"async":false}},"138557":{"*":{"id":523290,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__515fce6c._.js","server/chunks/ssr/components_blocks_05eea213._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_d242fd4b._.js"],"async":false}},"285997":{"*":{"id":649511,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__515fce6c._.js","server/chunks/ssr/components_blocks_05eea213._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_d242fd4b._.js"],"async":false}},"677705":{"*":{"id":744435,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__515fce6c._.js","server/chunks/ssr/components_blocks_05eea213._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_d242fd4b._.js"],"async":false}},"287980":{"*":{"id":104186,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__515fce6c._.js","server/chunks/ssr/components_blocks_05eea213._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_d242fd4b._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"666284":{"*":{"id":551417,"name":"*","chunks":[],"async":false}},"29584":{"*":{"id":536434,"name":"*","chunks":[],"async":false}},"30965":{"*":{"id":387103,"name":"*","chunks":[],"async":false}},"966591":{"*":{"id":580884,"name":"*","chunks":[],"async":false}},"3420":{"*":{"id":504014,"name":"*","chunks":[],"async":false}},"489266":{"*":{"id":726190,"name":"*","chunks":[],"async":false}},"67067":{"*":{"id":76412,"name":"*","chunks":[],"async":false}},"253348":{"*":{"id":153128,"name":"*","chunks":[],"async":false}},"184868":{"*":{"id":917929,"name":"*","chunks":[],"async":false}},"702050":{"*":{"id":986834,"name":"*","chunks":[],"async":false}},"287564":{"*":{"id":168713,"name":"*","chunks":[],"async":false}},"993983":{"*":{"id":625244,"name":"*","chunks":[],"async":false}},"814508":{"*":{"id":566663,"name":"*","chunks":[],"async":false}},"531518":{"*":{"id":292727,"name":"*","chunks":[],"async":false}},"600023":{"*":{"id":963034,"name":"*","chunks":[],"async":false}},"689647":{"*":{"id":679583,"name":"*","chunks":[],"async":false}},"309974":{"*":{"id":363934,"name":"*","chunks":[],"async":false}},"224038":{"*":{"id":404449,"name":"*","chunks":[],"async":false}},"555331":{"*":{"id":588684,"name":"*","chunks":[],"async":false}},"813804":{"*":{"id":214504,"name":"*","chunks":[],"async":false}},"610408":{"*":{"id":575076,"name":"*","chunks":[],"async":false}},"138557":{"*":{"id":34183,"name":"*","chunks":[],"async":false}},"285997":{"*":{"id":819160,"name":"*","chunks":[],"async":false}},"677705":{"*":{"id":960688,"name":"*","chunks":[],"async":false}},"287980":{"*":{"id":980820,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/app/[locale]/opengraph-image--metadata":[],"[project]/app/global-error":[],"[project]/app/[locale]/layout":[{"path":"static/chunks/3f652f1a7128a03a.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/error":[{"path":"static/chunks/3f652f1a7128a03a.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/not-found":[{"path":"static/chunks/3f652f1a7128a03a.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/[slug]/page":[{"path":"static/chunks/3f652f1a7128a03a.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}]},"entryJSFiles":{"[project]/app/[locale]/opengraph-image--metadata":["static/chunks/93736546a7cd8cd8.js","static/chunks/870a2c2978ab4440.js"],"[project]/app/global-error":["static/chunks/7bc980684698d6e7.js","static/chunks/5336d64d11e7435f.js"],"[project]/app/[locale]/layout":["static/chunks/6640bcd504ed2815.js","static/chunks/eeabc9d46e43f022.js","static/chunks/595f4cd305cd0088.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/fac3383571a5e891.js","static/chunks/ad1b4e551db227fe.js"],"[project]/app/[locale]/error":["static/chunks/6640bcd504ed2815.js","static/chunks/eeabc9d46e43f022.js","static/chunks/595f4cd305cd0088.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/fac3383571a5e891.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b02fdfb08ad720b0.js","static/chunks/0ff158dd58fe47c8.js"],"[project]/app/[locale]/not-found":["static/chunks/6640bcd504ed2815.js","static/chunks/eeabc9d46e43f022.js","static/chunks/595f4cd305cd0088.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/fac3383571a5e891.js","static/chunks/ad1b4e551db227fe.js","static/chunks/e91fc49c513620bc.js","static/chunks/0ff158dd58fe47c8.js"],"[project]/app/[locale]/[slug]/page":["static/chunks/6640bcd504ed2815.js","static/chunks/eeabc9d46e43f022.js","static/chunks/595f4cd305cd0088.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/fac3383571a5e891.js","static/chunks/ad1b4e551db227fe.js","static/chunks/11cc0f2e00ba9563.js","static/chunks/0ff158dd58fe47c8.js"]}} diff --git a/.next/server/app/[locale]/blog/[slug]/page.js b/.next/server/app/[locale]/blog/[slug]/page.js index 77bf95ba2..f7aea358d 100644 --- a/.next/server/app/[locale]/blog/[slug]/page.js +++ b/.next/server/app/[locale]/blog/[slug]/page.js @@ -7,7 +7,7 @@ R.c("server/chunks/ssr/[root-of-the-server]__5bd1b04a._.js") R.c("server/chunks/ssr/5e5d0_@opentelemetry_api_build_esm_f7b039e6._.js") R.c("server/chunks/ssr/468ab_next_dist_d9f52090._.js") R.c("server/chunks/ssr/468ab_next_dist_e98c316f._.js") -R.c("server/chunks/ssr/[root-of-the-server]__f153a21f._.js") +R.c("server/chunks/ssr/[root-of-the-server]__2da52317._.js") R.c("server/chunks/ssr/468ab_next_dist_668db2a3._.js") R.c("server/chunks/ssr/node_modules__pnpm_20ad9314._.js") R.c("server/chunks/ssr/3c3e1_next-intl_dist_esm_production_server_react-server_getConfig_8e5b989d.js") @@ -25,8 +25,8 @@ R.c("server/chunks/ssr/468ab_next_dist_client_components_builtin_unauthorized_24 R.c("server/chunks/ssr/_4e0f57e0._.js") R.c("server/chunks/ssr/[root-of-the-server]__bc75933a._.js") R.c("server/chunks/ssr/app_[locale]_error_tsx_37c0341f._.js") -R.c("server/chunks/ssr/_49a7ffbe._.js") -R.c("server/chunks/ssr/components_4d1233ab._.js") +R.c("server/chunks/ssr/_d825b83f._.js") +R.c("server/chunks/ssr/components_ui_6a2a3715._.js") R.c("server/chunks/ssr/_next-internal_server_app_[locale]_blog_[slug]_page_actions_acb43cb8.js") R.m(986905) module.exports=R.m(986905).exports diff --git a/.next/server/app/[locale]/blog/[slug]/page.js.nft.json b/.next/server/app/[locale]/blog/[slug]/page.js.nft.json index a253b8be9..e6d0ca447 100644 --- a/.next/server/app/[locale]/blog/[slug]/page.js.nft.json +++ b/.next/server/app/[locale]/blog/[slug]/page.js.nft.json @@ -1 +1 @@ -{"version":1,"files":["../../../../../../content/de/blog/moderne-verfahren-kabeltiefbau.mdx","../../../../../../content/en/blog/modern-methods-civil-engineering.mdx","../../../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/@babel/code-frame/lib/index.js","../../../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/@babel/code-frame/package.json","../../../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/@babel/helper-validator-identifier","../../../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/js-tokens","../../../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/picocolors","../../../../../../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/lib/identifier.js","../../../../../../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/lib/index.js","../../../../../../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/lib/keyword.js","../../../../../../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/package.json","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/index.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/compile.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/core.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/evaluate.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/node-types.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/recma-build-jsx-transform.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/recma-document.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/recma-jsx-rewrite.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/rehype-remove-raw.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/remark-mark-and-unravel.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/run.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-create.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-declaration-to-expression.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-is-declaration.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-specifiers-to-declarations.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-to-binary-addition.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-to-id-or-member-expression.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/extnames.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/resolve-evaluate-options.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/resolve-file-and-options.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/package.json","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/collapse-white-space","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/devlop","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/estree-util-is-identifier-name","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/estree-util-scope","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/estree-walker","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/markdown-extensions","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/recma-build-jsx","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/recma-jsx","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/recma-stringify","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/rehype-recma","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/remark-mdx","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/remark-parse","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/remark-rehype","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/unified","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/unist-util-position-from-estree","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/unist-util-stringify-position","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/unist-util-visit","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/vfile","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/context.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/diag.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/metrics.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/propagation.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/trace.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/utils.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context-api.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/context.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag-api.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/types.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/index.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/global-utils.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/semver.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics-api.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/Metric.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation-api.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace-api.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/context-utils.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/span_kind.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/status.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/version.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/package.json","../../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/execAsync.js","../../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-bsd.js","../../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-darwin.js","../../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-linux.js","../../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-unsupported.js","../../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-win.js","../../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId.js","../../../../../../node_modules/.pnpm/@pinojs+redact@0.4.0/node_modules/@pinojs/redact/index.js","../../../../../../node_modules/.pnpm/@pinojs+redact@0.4.0/node_modules/@pinojs/redact/package.json","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/browserTracingIntegration.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/clientNormalizationIntegration.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/index.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/appRouterRoutingInstrumentation.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/isrRoutingTracing.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/nextRoutingInstrumentation.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/pagesRouterRoutingInstrumentation.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/parameterization.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/tunnelRoute.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/captureRequestError.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/debug-build.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/devErrorSymbolicationEventProcessor.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/getVercelEnv.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextNavigationErrorUtils.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextSpanAttributes.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/_error.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentry.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentryVercelCrons.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapAppGetInitialPropsWithSentry.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapDocumentGetInitialPropsWithSentry.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapErrorGetInitialPropsWithSentry.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetInitialPropsWithSentry.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetServerSidePropsWithSentry.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetStaticPropsWithSentry.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapPageComponentWithSentry.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/span-attributes-with-logic-attached.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/addHeadersAsAttributes.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/dropMiddlewareTunnelRequests.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isBuild.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isUseCacheFunction.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/nextSpan.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/responseEnd.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/setUrlProcessingMetadata.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/tracingUtils.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/urls.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/wrapperUtils.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/withServerActionInstrumentation.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapGenerationFunctionWithSentry.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapMiddlewareWithSentry.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapRouteHandlerWithSentry.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapServerComponentWithSentry.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/getBuildPluginOptions.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/handleRunAfterProductionCompile.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/index.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/componentAnnotationLoader.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/index.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/moduleMetadataInjectionLoader.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/prefixLoader.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/valueInjectionLoader.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/wrappingLoader.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/manifest/createRouteManifest.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/polyfills/perf_hooks.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/apiWrapperTemplate.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/middlewareWrapperTemplate.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/pageWrapperTemplate.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/requestAsyncStorageShim.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/routeHandlerWrapperTemplate.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/sentryInitWrapperTemplate.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/serverComponentWrapperTemplate.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/constructTurbopackConfig.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/generateValueInjectionRules.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/util.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/webpack.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/buildTime.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/constants.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/deprecatedWebpackOptions.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObject.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectBundlerUtils.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectUtils.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/index.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/tunnel.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/distDirRewriteFramesIntegration.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/index.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/wrapApiHandlerWithSentry.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.client.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.server.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/distDirRewriteFramesIntegration.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/handleOnSpanStart.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/index.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/prepareSafeIdGeneratorContext.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelCronsMonitoring.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelQueuesMonitoring.js","../../../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/deserialize.js","../../../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/index.js","../../../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/serialize.js","../../../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/types.js","../../../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/package.json","../../../../../../node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.16.0/node_modules/acorn","../../../../../../node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.16.0/node_modules/acorn-jsx/index.js","../../../../../../node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.16.0/node_modules/acorn-jsx/package.json","../../../../../../node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.16.0/node_modules/acorn-jsx/xhtml.js","../../../../../../node_modules/.pnpm/acorn@8.16.0/node_modules/acorn/dist/acorn.js","../../../../../../node_modules/.pnpm/acorn@8.16.0/node_modules/acorn/dist/acorn.mjs","../../../../../../node_modules/.pnpm/acorn@8.16.0/node_modules/acorn/package.json","../../../../../../node_modules/.pnpm/astring@1.9.0/node_modules/astring/dist/astring.mjs","../../../../../../node_modules/.pnpm/astring@1.9.0/node_modules/astring/package.json","../../../../../../node_modules/.pnpm/atomic-sleep@1.0.0/node_modules/atomic-sleep/index.js","../../../../../../node_modules/.pnpm/atomic-sleep@1.0.0/node_modules/atomic-sleep/package.json","../../../../../../node_modules/.pnpm/bail@2.0.2/node_modules/bail/index.js","../../../../../../node_modules/.pnpm/bail@2.0.2/node_modules/bail/package.json","../../../../../../node_modules/.pnpm/ccount@2.0.1/node_modules/ccount/index.js","../../../../../../node_modules/.pnpm/ccount@2.0.1/node_modules/ccount/package.json","../../../../../../node_modules/.pnpm/character-entities-html4@2.1.0/node_modules/character-entities-html4/index.js","../../../../../../node_modules/.pnpm/character-entities-html4@2.1.0/node_modules/character-entities-html4/package.json","../../../../../../node_modules/.pnpm/character-entities-legacy@3.0.0/node_modules/character-entities-legacy/index.js","../../../../../../node_modules/.pnpm/character-entities-legacy@3.0.0/node_modules/character-entities-legacy/package.json","../../../../../../node_modules/.pnpm/character-entities@2.0.2/node_modules/character-entities/index.js","../../../../../../node_modules/.pnpm/character-entities@2.0.2/node_modules/character-entities/package.json","../../../../../../node_modules/.pnpm/character-reference-invalid@2.0.1/node_modules/character-reference-invalid/index.js","../../../../../../node_modules/.pnpm/character-reference-invalid@2.0.1/node_modules/character-reference-invalid/package.json","../../../../../../node_modules/.pnpm/collapse-white-space@2.1.0/node_modules/collapse-white-space/index.js","../../../../../../node_modules/.pnpm/collapse-white-space@2.1.0/node_modules/collapse-white-space/package.json","../../../../../../node_modules/.pnpm/comma-separated-tokens@2.0.3/node_modules/comma-separated-tokens/index.js","../../../../../../node_modules/.pnpm/comma-separated-tokens@2.0.3/node_modules/comma-separated-tokens/package.json","../../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/package.json","../../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/browser.js","../../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js","../../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/index.js","../../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/node.js","../../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/ms","../../../../../../node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/character-entities","../../../../../../node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/decode-named-character-reference/index.js","../../../../../../node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/decode-named-character-reference/package.json","../../../../../../node_modules/.pnpm/devlop@1.1.0/node_modules/devlop/lib/default.js","../../../../../../node_modules/.pnpm/devlop@1.1.0/node_modules/devlop/package.json","../../../../../../node_modules/.pnpm/estree-util-attach-comments@3.0.0/node_modules/estree-util-attach-comments/index.js","../../../../../../node_modules/.pnpm/estree-util-attach-comments@3.0.0/node_modules/estree-util-attach-comments/lib/index.js","../../../../../../node_modules/.pnpm/estree-util-attach-comments@3.0.0/node_modules/estree-util-attach-comments/package.json","../../../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/devlop","../../../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-util-build-jsx/index.js","../../../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-util-build-jsx/lib/index.js","../../../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-util-build-jsx/package.json","../../../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-util-is-identifier-name","../../../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-walker","../../../../../../node_modules/.pnpm/estree-util-is-identifier-name@3.0.0/node_modules/estree-util-is-identifier-name/index.js","../../../../../../node_modules/.pnpm/estree-util-is-identifier-name@3.0.0/node_modules/estree-util-is-identifier-name/lib/index.js","../../../../../../node_modules/.pnpm/estree-util-is-identifier-name@3.0.0/node_modules/estree-util-is-identifier-name/package.json","../../../../../../node_modules/.pnpm/estree-util-scope@1.0.0/node_modules/devlop","../../../../../../node_modules/.pnpm/estree-util-scope@1.0.0/node_modules/estree-util-scope/index.js","../../../../../../node_modules/.pnpm/estree-util-scope@1.0.0/node_modules/estree-util-scope/lib/index.js","../../../../../../node_modules/.pnpm/estree-util-scope@1.0.0/node_modules/estree-util-scope/package.json","../../../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/astring","../../../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/estree-util-to-js/index.js","../../../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/estree-util-to-js/lib/index.js","../../../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/estree-util-to-js/lib/jsx.js","../../../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/estree-util-to-js/package.json","../../../../../../node_modules/.pnpm/estree-util-visit@2.0.0/node_modules/estree-util-visit/index.js","../../../../../../node_modules/.pnpm/estree-util-visit@2.0.0/node_modules/estree-util-visit/lib/color.node.js","../../../../../../node_modules/.pnpm/estree-util-visit@2.0.0/node_modules/estree-util-visit/lib/index.js","../../../../../../node_modules/.pnpm/estree-util-visit@2.0.0/node_modules/estree-util-visit/package.json","../../../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/package.json","../../../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/async.js","../../../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/index.js","../../../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/sync.js","../../../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/walker.js","../../../../../../node_modules/.pnpm/extend@3.0.2/node_modules/extend/index.js","../../../../../../node_modules/.pnpm/extend@3.0.2/node_modules/extend/package.json","../../../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js","../../../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/package.json","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/comma-separated-tokens","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/devlop","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/estree-util-attach-comments","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/estree-util-is-identifier-name","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/index.js","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/comment.js","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/element.js","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/index.js","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/mdx-expression.js","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/mdx-jsx-element.js","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/mdxjs-esm.js","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/root.js","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/text.js","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/index.js","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/state.js","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/package.json","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-whitespace","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/property-information","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/space-separated-tokens","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/style-to-js","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/unist-util-position","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/zwitch","../../../../../../node_modules/.pnpm/hast-util-whitespace@3.0.0/node_modules/hast-util-whitespace/index.js","../../../../../../node_modules/.pnpm/hast-util-whitespace@3.0.0/node_modules/hast-util-whitespace/lib/index.js","../../../../../../node_modules/.pnpm/hast-util-whitespace@3.0.0/node_modules/hast-util-whitespace/package.json","../../../../../../node_modules/.pnpm/import-in-the-middle@1.15.0/node_modules/import-in-the-middle/package.json","../../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/index.js","../../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/lib/register.js","../../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/package.json","../../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/module-details-from-path","../../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/index.js","../../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/lib/register.js","../../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/package.json","../../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/module-details-from-path","../../../../../../node_modules/.pnpm/inline-style-parser@0.2.7/node_modules/inline-style-parser/cjs/index.js","../../../../../../node_modules/.pnpm/inline-style-parser@0.2.7/node_modules/inline-style-parser/package.json","../../../../../../node_modules/.pnpm/is-alphabetical@2.0.1/node_modules/is-alphabetical/index.js","../../../../../../node_modules/.pnpm/is-alphabetical@2.0.1/node_modules/is-alphabetical/package.json","../../../../../../node_modules/.pnpm/is-alphanumerical@2.0.1/node_modules/is-alphabetical","../../../../../../node_modules/.pnpm/is-alphanumerical@2.0.1/node_modules/is-alphanumerical/index.js","../../../../../../node_modules/.pnpm/is-alphanumerical@2.0.1/node_modules/is-alphanumerical/package.json","../../../../../../node_modules/.pnpm/is-alphanumerical@2.0.1/node_modules/is-decimal","../../../../../../node_modules/.pnpm/is-decimal@2.0.1/node_modules/is-decimal/index.js","../../../../../../node_modules/.pnpm/is-decimal@2.0.1/node_modules/is-decimal/package.json","../../../../../../node_modules/.pnpm/is-hexadecimal@2.0.1/node_modules/is-hexadecimal/index.js","../../../../../../node_modules/.pnpm/is-hexadecimal@2.0.1/node_modules/is-hexadecimal/package.json","../../../../../../node_modules/.pnpm/is-plain-obj@4.1.0/node_modules/is-plain-obj/index.js","../../../../../../node_modules/.pnpm/is-plain-obj@4.1.0/node_modules/is-plain-obj/package.json","../../../../../../node_modules/.pnpm/js-tokens@4.0.0/node_modules/js-tokens/index.js","../../../../../../node_modules/.pnpm/js-tokens@4.0.0/node_modules/js-tokens/package.json","../../../../../../node_modules/.pnpm/markdown-extensions@2.0.0/node_modules/markdown-extensions/index.js","../../../../../../node_modules/.pnpm/markdown-extensions@2.0.0/node_modules/markdown-extensions/package.json","../../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/decode-named-character-reference","../../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/index.js","../../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/lib/index.js","../../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/package.json","../../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-to-string","../../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/micromark","../../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/micromark-util-decode-numeric-character-reference","../../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/micromark-util-decode-string","../../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/micromark-util-normalize-identifier","../../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/unist-util-stringify-position","../../../../../../node_modules/.pnpm/mdast-util-mdx-expression@2.0.1/node_modules/devlop","../../../../../../node_modules/.pnpm/mdast-util-mdx-expression@2.0.1/node_modules/mdast-util-mdx-expression/index.js","../../../../../../node_modules/.pnpm/mdast-util-mdx-expression@2.0.1/node_modules/mdast-util-mdx-expression/lib/index.js","../../../../../../node_modules/.pnpm/mdast-util-mdx-expression@2.0.1/node_modules/mdast-util-mdx-expression/package.json","../../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/ccount","../../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/devlop","../../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/mdast-util-mdx-jsx/index.js","../../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/mdast-util-mdx-jsx/lib/index.js","../../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/mdast-util-mdx-jsx/package.json","../../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/parse-entities","../../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/stringify-entities","../../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/unist-util-stringify-position","../../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/vfile-message","../../../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx-expression","../../../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx-jsx","../../../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx/index.js","../../../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx/lib/index.js","../../../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx/package.json","../../../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdxjs-esm","../../../../../../node_modules/.pnpm/mdast-util-mdxjs-esm@2.0.1/node_modules/devlop","../../../../../../node_modules/.pnpm/mdast-util-mdxjs-esm@2.0.1/node_modules/mdast-util-mdxjs-esm/index.js","../../../../../../node_modules/.pnpm/mdast-util-mdxjs-esm@2.0.1/node_modules/mdast-util-mdxjs-esm/lib/index.js","../../../../../../node_modules/.pnpm/mdast-util-mdxjs-esm@2.0.1/node_modules/mdast-util-mdxjs-esm/package.json","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/@ungap/structured-clone","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/devlop","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/index.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/footer.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/break.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/code.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/delete.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/heading.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/html.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/image.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/index.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/link.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/list.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/root.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/strong.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/text.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/index.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/revert.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/state.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/package.json","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/micromark-util-sanitize-uri","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/trim-lines","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/unist-util-position","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/unist-util-visit","../../../../../../node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/index.js","../../../../../../node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/lib/index.js","../../../../../../node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/package.json","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/decode-named-character-reference","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/index.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/attention.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/autolink.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/blank-line.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/block-quote.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/character-escape.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/character-reference.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-fenced.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-indented.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-text.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/content.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/definition.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/heading-atx.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/html-flow.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/html-text.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-end.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-start-image.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-start-link.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/line-ending.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/list.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/setext-underline.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/thematic-break.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/package.json","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-destination","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-label","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-space","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-title","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-whitespace","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-character","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-chunked","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-classify-character","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-html-tag-name","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-normalize-identifier","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-resolve-all","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-subtokenize","../../../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-extension-mdx-expression/index.js","../../../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-extension-mdx-expression/lib/syntax.js","../../../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-extension-mdx-expression/package.json","../../../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-factory-mdx-expression","../../../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-factory-space","../../../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-util-character","../../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/estree-util-is-identifier-name","../../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/index.js","../../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/lib/factory-tag.js","../../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/lib/jsx-flow.js","../../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/lib/jsx-text.js","../../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/lib/syntax.js","../../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/package.json","../../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-factory-mdx-expression","../../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-factory-space","../../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-util-character","../../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/vfile-message","../../../../../../node_modules/.pnpm/micromark-extension-mdx-md@2.0.0/node_modules/micromark-extension-mdx-md/index.js","../../../../../../node_modules/.pnpm/micromark-extension-mdx-md@2.0.0/node_modules/micromark-extension-mdx-md/package.json","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-core-commonmark","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-extension-mdxjs-esm/index.js","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-extension-mdxjs-esm/lib/syntax.js","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-extension-mdxjs-esm/package.json","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-util-character","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-util-events-to-acorn","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/unist-util-position-from-estree","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/vfile-message","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/acorn","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/acorn-jsx","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdx-expression","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdx-jsx","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdx-md","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdxjs-esm","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdxjs/index.js","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdxjs/package.json","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-util-combine-extensions","../../../../../../node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-factory-destination/index.js","../../../../../../node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-factory-destination/package.json","../../../../../../node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-util-character","../../../../../../node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-factory-label/index.js","../../../../../../node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-factory-label/package.json","../../../../../../node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-util-character","../../../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-factory-mdx-expression/index.js","../../../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-factory-mdx-expression/package.json","../../../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-factory-space","../../../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-util-character","../../../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-util-events-to-acorn","../../../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/unist-util-position-from-estree","../../../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/vfile-message","../../../../../../node_modules/.pnpm/micromark-factory-space@2.0.1/node_modules/micromark-factory-space/index.js","../../../../../../node_modules/.pnpm/micromark-factory-space@2.0.1/node_modules/micromark-factory-space/package.json","../../../../../../node_modules/.pnpm/micromark-factory-space@2.0.1/node_modules/micromark-util-character","../../../../../../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-space","../../../../../../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-title/index.js","../../../../../../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-title/package.json","../../../../../../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-util-character","../../../../../../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-space","../../../../../../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-whitespace/index.js","../../../../../../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-whitespace/package.json","../../../../../../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-util-character","../../../../../../node_modules/.pnpm/micromark-util-character@2.1.1/node_modules/micromark-util-character/index.js","../../../../../../node_modules/.pnpm/micromark-util-character@2.1.1/node_modules/micromark-util-character/package.json","../../../../../../node_modules/.pnpm/micromark-util-chunked@2.0.1/node_modules/micromark-util-chunked/index.js","../../../../../../node_modules/.pnpm/micromark-util-chunked@2.0.1/node_modules/micromark-util-chunked/package.json","../../../../../../node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-character","../../../../../../node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-classify-character/index.js","../../../../../../node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-classify-character/package.json","../../../../../../node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-chunked","../../../../../../node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-combine-extensions/index.js","../../../../../../node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-combine-extensions/package.json","../../../../../../node_modules/.pnpm/micromark-util-decode-numeric-character-reference@2.0.2/node_modules/micromark-util-decode-numeric-character-reference/index.js","../../../../../../node_modules/.pnpm/micromark-util-decode-numeric-character-reference@2.0.2/node_modules/micromark-util-decode-numeric-character-reference/package.json","../../../../../../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/decode-named-character-reference","../../../../../../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-numeric-character-reference","../../../../../../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-string/index.js","../../../../../../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-string/package.json","../../../../../../node_modules/.pnpm/micromark-util-encode@2.0.1/node_modules/micromark-util-encode/index.js","../../../../../../node_modules/.pnpm/micromark-util-encode@2.0.1/node_modules/micromark-util-encode/package.json","../../../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/estree-util-visit","../../../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/micromark-util-events-to-acorn/index.js","../../../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/micromark-util-events-to-acorn/lib/index.js","../../../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/micromark-util-events-to-acorn/package.json","../../../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/vfile-message","../../../../../../node_modules/.pnpm/micromark-util-html-tag-name@2.0.1/node_modules/micromark-util-html-tag-name/index.js","../../../../../../node_modules/.pnpm/micromark-util-html-tag-name@2.0.1/node_modules/micromark-util-html-tag-name/package.json","../../../../../../node_modules/.pnpm/micromark-util-normalize-identifier@2.0.1/node_modules/micromark-util-normalize-identifier/index.js","../../../../../../node_modules/.pnpm/micromark-util-normalize-identifier@2.0.1/node_modules/micromark-util-normalize-identifier/package.json","../../../../../../node_modules/.pnpm/micromark-util-resolve-all@2.0.1/node_modules/micromark-util-resolve-all/index.js","../../../../../../node_modules/.pnpm/micromark-util-resolve-all@2.0.1/node_modules/micromark-util-resolve-all/package.json","../../../../../../node_modules/.pnpm/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-character","../../../../../../node_modules/.pnpm/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-encode","../../../../../../node_modules/.pnpm/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-sanitize-uri/index.js","../../../../../../node_modules/.pnpm/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-sanitize-uri/package.json","../../../../../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-chunked","../../../../../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/index.js","../../../../../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/lib/splice-buffer.js","../../../../../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/package.json","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/decode-named-character-reference","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-core-commonmark","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-factory-space","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-character","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-chunked","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-combine-extensions","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-decode-numeric-character-reference","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-encode","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-normalize-identifier","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-resolve-all","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-sanitize-uri","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-subtokenize","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/index.js","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/compile.js","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/constructs.js","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/create-tokenizer.js","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/content.js","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/document.js","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/flow.js","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/text.js","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/parse.js","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/postprocess.js","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/preprocess.js","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/package.json","../../../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/index.js","../../../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/package.json","../../../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js","../../../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/package.json","../../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/@babel/code-frame","../../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/@mdx-js/mdx","../../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/format-mdx-error.js","../../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/jsx-runtime.cjs","../../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/plugins/remove-imports-exports.js","../../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/rsc.js","../../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/serialize.js","../../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/package.json","../../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/rsc.js","../../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/react","../../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/unist-util-remove","../../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/vfile","../../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/vfile-matter","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/@opentelemetry/api","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/LICENSE","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/index.edge.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/index.node.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/noto-sans-v27-latin-regular.ttf","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/package.json","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/resvg.wasm","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/satori/LICENSE","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/yoga.wasm","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/constants.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/package.json","../../../../../../node_modules/.pnpm/node_modules/@babel/code-frame","../../../../../../node_modules/.pnpm/node_modules/@babel/helper-validator-identifier","../../../../../../node_modules/.pnpm/node_modules/@mdx-js/mdx","../../../../../../node_modules/.pnpm/node_modules/@opentelemetry/api","../../../../../../node_modules/.pnpm/node_modules/@pinojs/redact","../../../../../../node_modules/.pnpm/node_modules/@ungap/structured-clone","../../../../../../node_modules/.pnpm/node_modules/acorn","../../../../../../node_modules/.pnpm/node_modules/acorn-jsx","../../../../../../node_modules/.pnpm/node_modules/astring","../../../../../../node_modules/.pnpm/node_modules/atomic-sleep","../../../../../../node_modules/.pnpm/node_modules/bail","../../../../../../node_modules/.pnpm/node_modules/ccount","../../../../../../node_modules/.pnpm/node_modules/character-entities","../../../../../../node_modules/.pnpm/node_modules/character-entities-html4","../../../../../../node_modules/.pnpm/node_modules/character-entities-legacy","../../../../../../node_modules/.pnpm/node_modules/character-reference-invalid","../../../../../../node_modules/.pnpm/node_modules/collapse-white-space","../../../../../../node_modules/.pnpm/node_modules/comma-separated-tokens","../../../../../../node_modules/.pnpm/node_modules/debug","../../../../../../node_modules/.pnpm/node_modules/decode-named-character-reference","../../../../../../node_modules/.pnpm/node_modules/devlop","../../../../../../node_modules/.pnpm/node_modules/estree-util-attach-comments","../../../../../../node_modules/.pnpm/node_modules/estree-util-build-jsx","../../../../../../node_modules/.pnpm/node_modules/estree-util-is-identifier-name","../../../../../../node_modules/.pnpm/node_modules/estree-util-scope","../../../../../../node_modules/.pnpm/node_modules/estree-util-to-js","../../../../../../node_modules/.pnpm/node_modules/estree-util-visit","../../../../../../node_modules/.pnpm/node_modules/estree-walker","../../../../../../node_modules/.pnpm/node_modules/extend","../../../../../../node_modules/.pnpm/node_modules/has-flag","../../../../../../node_modules/.pnpm/node_modules/hast-util-to-estree","../../../../../../node_modules/.pnpm/node_modules/hast-util-whitespace","../../../../../../node_modules/.pnpm/node_modules/inline-style-parser","../../../../../../node_modules/.pnpm/node_modules/is-alphabetical","../../../../../../node_modules/.pnpm/node_modules/is-alphanumerical","../../../../../../node_modules/.pnpm/node_modules/is-decimal","../../../../../../node_modules/.pnpm/node_modules/is-hexadecimal","../../../../../../node_modules/.pnpm/node_modules/is-plain-obj","../../../../../../node_modules/.pnpm/node_modules/js-tokens","../../../../../../node_modules/.pnpm/node_modules/markdown-extensions","../../../../../../node_modules/.pnpm/node_modules/mdast-util-from-markdown","../../../../../../node_modules/.pnpm/node_modules/mdast-util-mdx","../../../../../../node_modules/.pnpm/node_modules/mdast-util-mdx-expression","../../../../../../node_modules/.pnpm/node_modules/mdast-util-mdx-jsx","../../../../../../node_modules/.pnpm/node_modules/mdast-util-mdxjs-esm","../../../../../../node_modules/.pnpm/node_modules/mdast-util-to-hast","../../../../../../node_modules/.pnpm/node_modules/mdast-util-to-string","../../../../../../node_modules/.pnpm/node_modules/micromark","../../../../../../node_modules/.pnpm/node_modules/micromark-core-commonmark","../../../../../../node_modules/.pnpm/node_modules/micromark-extension-mdx-expression","../../../../../../node_modules/.pnpm/node_modules/micromark-extension-mdx-jsx","../../../../../../node_modules/.pnpm/node_modules/micromark-extension-mdx-md","../../../../../../node_modules/.pnpm/node_modules/micromark-extension-mdxjs","../../../../../../node_modules/.pnpm/node_modules/micromark-extension-mdxjs-esm","../../../../../../node_modules/.pnpm/node_modules/micromark-factory-destination","../../../../../../node_modules/.pnpm/node_modules/micromark-factory-label","../../../../../../node_modules/.pnpm/node_modules/micromark-factory-mdx-expression","../../../../../../node_modules/.pnpm/node_modules/micromark-factory-space","../../../../../../node_modules/.pnpm/node_modules/micromark-factory-title","../../../../../../node_modules/.pnpm/node_modules/micromark-factory-whitespace","../../../../../../node_modules/.pnpm/node_modules/micromark-util-character","../../../../../../node_modules/.pnpm/node_modules/micromark-util-chunked","../../../../../../node_modules/.pnpm/node_modules/micromark-util-classify-character","../../../../../../node_modules/.pnpm/node_modules/micromark-util-combine-extensions","../../../../../../node_modules/.pnpm/node_modules/micromark-util-decode-numeric-character-reference","../../../../../../node_modules/.pnpm/node_modules/micromark-util-decode-string","../../../../../../node_modules/.pnpm/node_modules/micromark-util-encode","../../../../../../node_modules/.pnpm/node_modules/micromark-util-events-to-acorn","../../../../../../node_modules/.pnpm/node_modules/micromark-util-html-tag-name","../../../../../../node_modules/.pnpm/node_modules/micromark-util-normalize-identifier","../../../../../../node_modules/.pnpm/node_modules/micromark-util-resolve-all","../../../../../../node_modules/.pnpm/node_modules/micromark-util-sanitize-uri","../../../../../../node_modules/.pnpm/node_modules/micromark-util-subtokenize","../../../../../../node_modules/.pnpm/node_modules/module-details-from-path","../../../../../../node_modules/.pnpm/node_modules/ms","../../../../../../node_modules/.pnpm/node_modules/on-exit-leak-free","../../../../../../node_modules/.pnpm/node_modules/parse-entities","../../../../../../node_modules/.pnpm/node_modules/picocolors","../../../../../../node_modules/.pnpm/node_modules/pino-std-serializers","../../../../../../node_modules/.pnpm/node_modules/property-information","../../../../../../node_modules/.pnpm/node_modules/quick-format-unescaped","../../../../../../node_modules/.pnpm/node_modules/real-require","../../../../../../node_modules/.pnpm/node_modules/recma-build-jsx","../../../../../../node_modules/.pnpm/node_modules/recma-jsx","../../../../../../node_modules/.pnpm/node_modules/recma-stringify","../../../../../../node_modules/.pnpm/node_modules/rehype-recma","../../../../../../node_modules/.pnpm/node_modules/remark-mdx","../../../../../../node_modules/.pnpm/node_modules/remark-parse","../../../../../../node_modules/.pnpm/node_modules/remark-rehype","../../../../../../node_modules/.pnpm/node_modules/safe-stable-stringify","../../../../../../node_modules/.pnpm/node_modules/sonic-boom","../../../../../../node_modules/.pnpm/node_modules/space-separated-tokens","../../../../../../node_modules/.pnpm/node_modules/stringify-entities","../../../../../../node_modules/.pnpm/node_modules/style-to-js","../../../../../../node_modules/.pnpm/node_modules/style-to-object","../../../../../../node_modules/.pnpm/node_modules/supports-color","../../../../../../node_modules/.pnpm/node_modules/thread-stream","../../../../../../node_modules/.pnpm/node_modules/trim-lines","../../../../../../node_modules/.pnpm/node_modules/trough","../../../../../../node_modules/.pnpm/node_modules/unified","../../../../../../node_modules/.pnpm/node_modules/unist-util-is","../../../../../../node_modules/.pnpm/node_modules/unist-util-position","../../../../../../node_modules/.pnpm/node_modules/unist-util-position-from-estree","../../../../../../node_modules/.pnpm/node_modules/unist-util-remove","../../../../../../node_modules/.pnpm/node_modules/unist-util-stringify-position","../../../../../../node_modules/.pnpm/node_modules/unist-util-visit","../../../../../../node_modules/.pnpm/node_modules/unist-util-visit-parents","../../../../../../node_modules/.pnpm/node_modules/vfile","../../../../../../node_modules/.pnpm/node_modules/vfile-matter","../../../../../../node_modules/.pnpm/node_modules/vfile-message","../../../../../../node_modules/.pnpm/node_modules/yaml","../../../../../../node_modules/.pnpm/node_modules/zwitch","../../../../../../node_modules/.pnpm/on-exit-leak-free@2.1.2/node_modules/on-exit-leak-free/index.js","../../../../../../node_modules/.pnpm/on-exit-leak-free@2.1.2/node_modules/on-exit-leak-free/package.json","../../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/character-entities-legacy","../../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/character-reference-invalid","../../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/decode-named-character-reference","../../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/is-alphanumerical","../../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/is-decimal","../../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/is-hexadecimal","../../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/parse-entities/index.js","../../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/parse-entities/lib/index.js","../../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/parse-entities/package.json","../../../../../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/package.json","../../../../../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js","../../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/index.js","../../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-helpers.js","../../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-proto.js","../../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-with-cause.js","../../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err.js","../../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/req.js","../../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/res.js","../../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/package.json","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/@pinojs/redact","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/atomic-sleep","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/on-exit-leak-free","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino-std-serializers","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/file.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/caller.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/constants.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/deprecations.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/levels.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/meta.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/multistream.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/proto.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/redaction.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/symbols.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/time.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/tools.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/transport-stream.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/transport.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/worker.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/package.json","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/pino.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/quick-format-unescaped","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/safe-stable-stringify","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/sonic-boom","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/thread-stream","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/index.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/aria.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/find.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/hast-to-react.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/html.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/normalize.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/svg.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/case-insensitive-transform.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/case-sensitive-transform.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/create.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/defined-info.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/info.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/merge.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/schema.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/types.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/xlink.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/xml.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/xmlns.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/package.json","../../../../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/index.js","../../../../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/package.json","../../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-jsx-dev-runtime.development.js","../../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-jsx-dev-runtime.production.js","../../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-jsx-runtime.development.js","../../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-jsx-runtime.production.js","../../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react.development.js","../../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react.production.js","../../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/index.js","../../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/jsx-dev-runtime.js","../../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/jsx-runtime.js","../../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/package.json","../../../../../../node_modules/.pnpm/real-require@0.2.0/node_modules/real-require/package.json","../../../../../../node_modules/.pnpm/real-require@0.2.0/node_modules/real-require/src/index.js","../../../../../../node_modules/.pnpm/recma-build-jsx@1.0.0/node_modules/estree-util-build-jsx","../../../../../../node_modules/.pnpm/recma-build-jsx@1.0.0/node_modules/recma-build-jsx/index.js","../../../../../../node_modules/.pnpm/recma-build-jsx@1.0.0/node_modules/recma-build-jsx/lib/index.js","../../../../../../node_modules/.pnpm/recma-build-jsx@1.0.0/node_modules/recma-build-jsx/package.json","../../../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/acorn-jsx","../../../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/estree-util-to-js","../../../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/recma-jsx/index.js","../../../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/recma-jsx/lib/index.js","../../../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/recma-jsx/package.json","../../../../../../node_modules/.pnpm/recma-stringify@1.0.0/node_modules/estree-util-to-js","../../../../../../node_modules/.pnpm/recma-stringify@1.0.0/node_modules/recma-stringify/index.js","../../../../../../node_modules/.pnpm/recma-stringify@1.0.0/node_modules/recma-stringify/lib/index.js","../../../../../../node_modules/.pnpm/recma-stringify@1.0.0/node_modules/recma-stringify/package.json","../../../../../../node_modules/.pnpm/rehype-recma@1.0.0/node_modules/hast-util-to-estree","../../../../../../node_modules/.pnpm/rehype-recma@1.0.0/node_modules/rehype-recma/index.js","../../../../../../node_modules/.pnpm/rehype-recma@1.0.0/node_modules/rehype-recma/lib/index.js","../../../../../../node_modules/.pnpm/rehype-recma@1.0.0/node_modules/rehype-recma/package.json","../../../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/mdast-util-mdx","../../../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/micromark-extension-mdxjs","../../../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/remark-mdx/index.js","../../../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/remark-mdx/lib/index.js","../../../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/remark-mdx/package.json","../../../../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/mdast-util-from-markdown","../../../../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/index.js","../../../../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/lib/index.js","../../../../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/package.json","../../../../../../node_modules/.pnpm/remark-rehype@11.1.2/node_modules/mdast-util-to-hast","../../../../../../node_modules/.pnpm/remark-rehype@11.1.2/node_modules/remark-rehype/index.js","../../../../../../node_modules/.pnpm/remark-rehype@11.1.2/node_modules/remark-rehype/lib/index.js","../../../../../../node_modules/.pnpm/remark-rehype@11.1.2/node_modules/remark-rehype/package.json","../../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/debug","../../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/module-details-from-path","../../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/index.js","../../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/package.json","../../../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/index.js","../../../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/package.json","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/atomic-sleep","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/LICENSE","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/README.md","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/bench.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/check.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/example.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/fixtures/firehose.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/index.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/package.json","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/destroy.test.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/end.test.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/flush-sync.test.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/flush.test.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/fsync.test.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/helper.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/minlength.test.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/mode.test.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/periodicflush.test.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/reopen.test.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/retry.test.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/sync.test.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/write.test.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/types/tests/test.ts","../../../../../../node_modules/.pnpm/space-separated-tokens@2.0.2/node_modules/space-separated-tokens/index.js","../../../../../../node_modules/.pnpm/space-separated-tokens@2.0.2/node_modules/space-separated-tokens/package.json","../../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/character-entities-html4","../../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/character-entities-legacy","../../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/index.js","../../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/constant/dangerous.js","../../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/core.js","../../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/index.js","../../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/format-basic.js","../../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/format-smart.js","../../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-decimal.js","../../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-hexadecimal.js","../../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-named.js","../../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/package.json","../../../../../../node_modules/.pnpm/style-to-js@1.1.21/node_modules/style-to-js/cjs/index.js","../../../../../../node_modules/.pnpm/style-to-js@1.1.21/node_modules/style-to-js/cjs/utilities.js","../../../../../../node_modules/.pnpm/style-to-js@1.1.21/node_modules/style-to-js/package.json","../../../../../../node_modules/.pnpm/style-to-js@1.1.21/node_modules/style-to-object","../../../../../../node_modules/.pnpm/style-to-object@1.0.14/node_modules/inline-style-parser","../../../../../../node_modules/.pnpm/style-to-object@1.0.14/node_modules/style-to-object/cjs/index.js","../../../../../../node_modules/.pnpm/style-to-object@1.0.14/node_modules/style-to-object/package.json","../../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/has-flag","../../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js","../../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/package.json","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/real-require","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/LICENSE","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/bench.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/eslint.config.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/index.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/indexes.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/wait.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/worker.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/package.json","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/base.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/bench.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/bundlers.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/close-on-gc.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/commonjs-fallback.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/context.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/create-and-exit.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/custom-worker.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/dir with spaces/test-package.zip","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/emit-event.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/end.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/error.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/esm.test.mjs","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/event.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/exit.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/get-context.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/helper.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/indexes.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/multibyte-chars.test.mjs","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/on-message.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/index.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/pkg.config.json","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/pkg.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/port.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/post-message.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/string-limit-2.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/string-limit.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/syntax-error.mjs","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/thread-management.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file-on-destroy.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file-on-final.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file.mjs","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-next.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/transpiled.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-commonjs-default-export.zip","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-native.test.mjs","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-node-fallback.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts/to-file.ts","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts/transpile.sh","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/uncaughtException.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/unhandledRejection.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/yarnrc.yml","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/tsconfig.json","../../../../../../node_modules/.pnpm/trim-lines@3.0.1/node_modules/trim-lines/index.js","../../../../../../node_modules/.pnpm/trim-lines@3.0.1/node_modules/trim-lines/package.json","../../../../../../node_modules/.pnpm/trough@2.2.0/node_modules/trough/index.js","../../../../../../node_modules/.pnpm/trough@2.2.0/node_modules/trough/lib/index.js","../../../../../../node_modules/.pnpm/trough@2.2.0/node_modules/trough/package.json","../../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/bail","../../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/devlop","../../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/extend","../../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/is-plain-obj","../../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/trough","../../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/index.js","../../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/lib/callable-instance.js","../../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/lib/index.js","../../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/package.json","../../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/vfile","../../../../../../node_modules/.pnpm/unist-util-is@5.2.1/node_modules/unist-util-is/index.js","../../../../../../node_modules/.pnpm/unist-util-is@5.2.1/node_modules/unist-util-is/lib/index.js","../../../../../../node_modules/.pnpm/unist-util-is@5.2.1/node_modules/unist-util-is/package.json","../../../../../../node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/index.js","../../../../../../node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/lib/index.js","../../../../../../node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/package.json","../../../../../../node_modules/.pnpm/unist-util-position-from-estree@2.0.0/node_modules/unist-util-position-from-estree/index.js","../../../../../../node_modules/.pnpm/unist-util-position-from-estree@2.0.0/node_modules/unist-util-position-from-estree/lib/index.js","../../../../../../node_modules/.pnpm/unist-util-position-from-estree@2.0.0/node_modules/unist-util-position-from-estree/package.json","../../../../../../node_modules/.pnpm/unist-util-position@5.0.0/node_modules/unist-util-position/index.js","../../../../../../node_modules/.pnpm/unist-util-position@5.0.0/node_modules/unist-util-position/lib/index.js","../../../../../../node_modules/.pnpm/unist-util-position@5.0.0/node_modules/unist-util-position/package.json","../../../../../../node_modules/.pnpm/unist-util-remove@3.1.1/node_modules/unist-util-is","../../../../../../node_modules/.pnpm/unist-util-remove@3.1.1/node_modules/unist-util-remove/index.js","../../../../../../node_modules/.pnpm/unist-util-remove@3.1.1/node_modules/unist-util-remove/lib/index.js","../../../../../../node_modules/.pnpm/unist-util-remove@3.1.1/node_modules/unist-util-remove/package.json","../../../../../../node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/index.js","../../../../../../node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/lib/index.js","../../../../../../node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/package.json","../../../../../../node_modules/.pnpm/unist-util-visit-parents@5.1.3/node_modules/unist-util-visit-parents/package.json","../../../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-is","../../../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/index.js","../../../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/color.node.js","../../../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/index.js","../../../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/package.json","../../../../../../node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit-parents","../../../../../../node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit/index.js","../../../../../../node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit/lib/index.js","../../../../../../node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit/package.json","../../../../../../node_modules/.pnpm/vfile-matter@5.0.1/node_modules/vfile-matter/index.js","../../../../../../node_modules/.pnpm/vfile-matter@5.0.1/node_modules/vfile-matter/lib/index.js","../../../../../../node_modules/.pnpm/vfile-matter@5.0.1/node_modules/vfile-matter/package.json","../../../../../../node_modules/.pnpm/vfile-matter@5.0.1/node_modules/yaml","../../../../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/unist-util-stringify-position","../../../../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/index.js","../../../../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/lib/index.js","../../../../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/package.json","../../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile-message","../../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/index.js","../../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/index.js","../../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minpath.js","../../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minproc.js","../../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minurl.js","../../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minurl.shared.js","../../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/package.json","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/compose-collection.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/compose-doc.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/compose-node.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/compose-scalar.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/composer.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-block-map.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-block-scalar.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-block-seq.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-end.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-flow-collection.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-flow-scalar.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-props.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/util-contains-newline.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/util-empty-scalar-position.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/util-flow-indent-check.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/util-map-includes.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/Document.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/anchors.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/applyReviver.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/createNode.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/directives.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/errors.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/index.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/log.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Alias.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Collection.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Node.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Pair.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Scalar.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/YAMLMap.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/YAMLSeq.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/addPairToJSMap.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/identity.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/toJS.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/cst-scalar.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/cst-stringify.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/cst-visit.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/cst.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/lexer.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/line-counter.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/parser.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/public-api.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/Schema.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/common/map.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/common/null.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/common/seq.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/common/string.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/core/bool.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/core/float.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/core/int.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/core/schema.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/json/schema.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/tags.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/binary.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/bool.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/float.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/int.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/merge.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/omap.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/pairs.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/schema.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/set.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/foldFlowLines.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringify.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyCollection.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyComment.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyDocument.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyNumber.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyPair.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyString.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/visit.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/package.json","../../../../../../node_modules/.pnpm/zwitch@2.0.4/node_modules/zwitch/index.js","../../../../../../node_modules/.pnpm/zwitch@2.0.4/node_modules/zwitch/package.json","../../../../../../node_modules/import-in-the-middle","../../../../../../node_modules/next","../../../../../../node_modules/pino","../../../../../../node_modules/react","../../../../../../node_modules/require-in-the-middle","../../../../../node_modules/import-in-the-middle-138cd032e4b029f3","../../../../../node_modules/import-in-the-middle-6ecbfda1283b1532","../../../../../node_modules/next-mdx-remote-38ab1b696f56808a","../../../../../node_modules/pino-2e79642258e38174","../../../../../node_modules/require-in-the-middle-a99415fa67232f7f","../../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_5e35a34a.js","../../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_f7a67094.js","../../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_68baf629.js","../../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_e2e05945.js","../../../../chunks/ssr/3c3e1_next-intl_dist_esm_production_server_react-server_getConfig_8e5b989d.js","../../../../chunks/ssr/468ab_next_b54e3ae0._.js","../../../../chunks/ssr/468ab_next_c7821d87._.js","../../../../chunks/ssr/468ab_next_dist_668db2a3._.js","../../../../chunks/ssr/468ab_next_dist_6d1ec603._.js","../../../../chunks/ssr/468ab_next_dist_9c02c43c._.js","../../../../chunks/ssr/468ab_next_dist_a9fadb3f._.js","../../../../chunks/ssr/468ab_next_dist_bc66fa15._.js","../../../../chunks/ssr/468ab_next_dist_client_components_9ea24689._.js","../../../../chunks/ssr/468ab_next_dist_client_components_builtin_forbidden_fcf22647.js","../../../../chunks/ssr/468ab_next_dist_client_components_builtin_unauthorized_242673a5.js","../../../../chunks/ssr/468ab_next_dist_d9f52090._.js","../../../../chunks/ssr/468ab_next_dist_e98c316f._.js","../../../../chunks/ssr/468ab_next_dist_esm_10bac804._.js","../../../../chunks/ssr/5e5d0_@opentelemetry_api_build_esm_f7b039e6._.js","../../../../chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","../../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_317a5e2b._.js","../../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_51b27302._.js","../../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_634cb413._.js","../../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_88fed31f._.js","../../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_929773f6._.js","../../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_f2e70164._.js","../../../../chunks/ssr/[externals]_next_dist_compiled_@vercel_og_index_node_055f47ab.js","../../../../chunks/ssr/[externals]_node:inspector_7a4283c6._.js","../../../../chunks/ssr/[root-of-the-server]__16d71f56._.js","../../../../chunks/ssr/[root-of-the-server]__28a191f2._.js","../../../../chunks/ssr/[root-of-the-server]__366a9ff8._.js","../../../../chunks/ssr/[root-of-the-server]__3b46c561._.js","../../../../chunks/ssr/[root-of-the-server]__411530ea._.js","../../../../chunks/ssr/[root-of-the-server]__5186451e._.js","../../../../chunks/ssr/[root-of-the-server]__5bbfddd1._.js","../../../../chunks/ssr/[root-of-the-server]__5bd1b04a._.js","../../../../chunks/ssr/[root-of-the-server]__6bb30663._.js","../../../../chunks/ssr/[root-of-the-server]__9aa0d618._.js","../../../../chunks/ssr/[root-of-the-server]__9bfda315._.js","../../../../chunks/ssr/[root-of-the-server]__9eff91eb._.js","../../../../chunks/ssr/[root-of-the-server]__a965d2a8._.js","../../../../chunks/ssr/[root-of-the-server]__ba65f140._.js","../../../../chunks/ssr/[root-of-the-server]__bc75933a._.js","../../../../chunks/ssr/[root-of-the-server]__ec303f7a._.js","../../../../chunks/ssr/[root-of-the-server]__f153a21f._.js","../../../../chunks/ssr/[root-of-the-server]__f939d130._.js","../../../../chunks/ssr/[root-of-the-server]__fbc63b72._.js","../../../../chunks/ssr/[turbopack]_runtime.js","../../../../chunks/ssr/_49a7ffbe._.js","../../../../chunks/ssr/_4e0f57e0._.js","../../../../chunks/ssr/_6f66913b._.js","../../../../chunks/ssr/_b76d0ab2._.js","../../../../chunks/ssr/_c3cb4fd0._.js","../../../../chunks/ssr/_cbda2ac7._.js","../../../../chunks/ssr/_df4aec0b._.js","../../../../chunks/ssr/_ed7052e7._.js","../../../../chunks/ssr/_next-internal_server_app_[locale]_blog_[slug]_page_actions_acb43cb8.js","../../../../chunks/ssr/app_[locale]_blog_opengraph-image--metadata_6372a955.js","../../../../chunks/ssr/app_[locale]_error_tsx_37c0341f._.js","../../../../chunks/ssr/app_global-error_tsx_9170b7a0._.js","../../../../chunks/ssr/components_4d1233ab._.js","../../../../chunks/ssr/components_ui_utils_ts_f85ae7af._.js","../../../../chunks/ssr/messages_de_json_56e8cde5._.js","../../../../chunks/ssr/messages_en_json_a7997480._.js","../../../../chunks/ssr/node_modules__pnpm_20ad9314._.js","../../../../chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","../../../../chunks/ssr/node_modules__pnpm_329a8f51._.js","../../../../chunks/ssr/node_modules__pnpm_66399b09._.js","../../../../chunks/ssr/node_modules__pnpm_8387bcd6._.js","../../../../chunks/ssr/node_modules__pnpm_d28cabd9._.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file +{"version":1,"files":["../../../../../../content/de/blog/moderne-verfahren-kabeltiefbau.mdx","../../../../../../content/en/blog/modern-methods-civil-engineering.mdx","../../../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/@babel/code-frame/lib/index.js","../../../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/@babel/code-frame/package.json","../../../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/@babel/helper-validator-identifier","../../../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/js-tokens","../../../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/picocolors","../../../../../../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/lib/identifier.js","../../../../../../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/lib/index.js","../../../../../../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/lib/keyword.js","../../../../../../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/package.json","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/index.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/compile.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/core.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/evaluate.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/node-types.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/recma-build-jsx-transform.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/recma-document.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/recma-jsx-rewrite.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/rehype-remove-raw.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/remark-mark-and-unravel.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/run.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-create.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-declaration-to-expression.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-is-declaration.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-specifiers-to-declarations.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-to-binary-addition.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-to-id-or-member-expression.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/extnames.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/resolve-evaluate-options.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/resolve-file-and-options.js","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/package.json","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/collapse-white-space","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/devlop","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/estree-util-is-identifier-name","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/estree-util-scope","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/estree-walker","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/markdown-extensions","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/recma-build-jsx","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/recma-jsx","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/recma-stringify","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/rehype-recma","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/remark-mdx","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/remark-parse","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/remark-rehype","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/unified","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/unist-util-position-from-estree","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/unist-util-stringify-position","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/unist-util-visit","../../../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/vfile","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/context.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/diag.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/metrics.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/propagation.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/trace.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/utils.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context-api.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/context.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag-api.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/types.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/index.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/global-utils.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/semver.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics-api.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/Metric.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation-api.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace-api.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/context-utils.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/span_kind.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/status.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/version.js","../../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/package.json","../../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/execAsync.js","../../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-bsd.js","../../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-darwin.js","../../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-linux.js","../../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-unsupported.js","../../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-win.js","../../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId.js","../../../../../../node_modules/.pnpm/@pinojs+redact@0.4.0/node_modules/@pinojs/redact/index.js","../../../../../../node_modules/.pnpm/@pinojs+redact@0.4.0/node_modules/@pinojs/redact/package.json","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/browserTracingIntegration.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/clientNormalizationIntegration.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/index.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/appRouterRoutingInstrumentation.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/isrRoutingTracing.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/nextRoutingInstrumentation.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/pagesRouterRoutingInstrumentation.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/parameterization.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/tunnelRoute.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/captureRequestError.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/debug-build.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/devErrorSymbolicationEventProcessor.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/getVercelEnv.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextNavigationErrorUtils.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextSpanAttributes.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/_error.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentry.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentryVercelCrons.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapAppGetInitialPropsWithSentry.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapDocumentGetInitialPropsWithSentry.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapErrorGetInitialPropsWithSentry.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetInitialPropsWithSentry.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetServerSidePropsWithSentry.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetStaticPropsWithSentry.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapPageComponentWithSentry.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/span-attributes-with-logic-attached.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/addHeadersAsAttributes.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/dropMiddlewareTunnelRequests.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isBuild.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isUseCacheFunction.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/nextSpan.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/responseEnd.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/setUrlProcessingMetadata.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/tracingUtils.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/urls.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/wrapperUtils.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/withServerActionInstrumentation.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapGenerationFunctionWithSentry.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapMiddlewareWithSentry.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapRouteHandlerWithSentry.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapServerComponentWithSentry.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/getBuildPluginOptions.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/handleRunAfterProductionCompile.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/index.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/componentAnnotationLoader.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/index.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/moduleMetadataInjectionLoader.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/prefixLoader.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/valueInjectionLoader.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/wrappingLoader.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/manifest/createRouteManifest.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/polyfills/perf_hooks.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/apiWrapperTemplate.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/middlewareWrapperTemplate.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/pageWrapperTemplate.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/requestAsyncStorageShim.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/routeHandlerWrapperTemplate.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/sentryInitWrapperTemplate.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/serverComponentWrapperTemplate.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/constructTurbopackConfig.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/generateValueInjectionRules.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/util.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/webpack.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/buildTime.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/constants.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/deprecatedWebpackOptions.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObject.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectBundlerUtils.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectUtils.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/index.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/tunnel.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/distDirRewriteFramesIntegration.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/index.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/wrapApiHandlerWithSentry.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.client.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.server.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/distDirRewriteFramesIntegration.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/handleOnSpanStart.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/index.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/prepareSafeIdGeneratorContext.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelCronsMonitoring.js","../../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelQueuesMonitoring.js","../../../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/deserialize.js","../../../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/index.js","../../../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/serialize.js","../../../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/types.js","../../../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/package.json","../../../../../../node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.16.0/node_modules/acorn","../../../../../../node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.16.0/node_modules/acorn-jsx/index.js","../../../../../../node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.16.0/node_modules/acorn-jsx/package.json","../../../../../../node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.16.0/node_modules/acorn-jsx/xhtml.js","../../../../../../node_modules/.pnpm/acorn@8.16.0/node_modules/acorn/dist/acorn.js","../../../../../../node_modules/.pnpm/acorn@8.16.0/node_modules/acorn/dist/acorn.mjs","../../../../../../node_modules/.pnpm/acorn@8.16.0/node_modules/acorn/package.json","../../../../../../node_modules/.pnpm/astring@1.9.0/node_modules/astring/dist/astring.mjs","../../../../../../node_modules/.pnpm/astring@1.9.0/node_modules/astring/package.json","../../../../../../node_modules/.pnpm/atomic-sleep@1.0.0/node_modules/atomic-sleep/index.js","../../../../../../node_modules/.pnpm/atomic-sleep@1.0.0/node_modules/atomic-sleep/package.json","../../../../../../node_modules/.pnpm/bail@2.0.2/node_modules/bail/index.js","../../../../../../node_modules/.pnpm/bail@2.0.2/node_modules/bail/package.json","../../../../../../node_modules/.pnpm/ccount@2.0.1/node_modules/ccount/index.js","../../../../../../node_modules/.pnpm/ccount@2.0.1/node_modules/ccount/package.json","../../../../../../node_modules/.pnpm/character-entities-html4@2.1.0/node_modules/character-entities-html4/index.js","../../../../../../node_modules/.pnpm/character-entities-html4@2.1.0/node_modules/character-entities-html4/package.json","../../../../../../node_modules/.pnpm/character-entities-legacy@3.0.0/node_modules/character-entities-legacy/index.js","../../../../../../node_modules/.pnpm/character-entities-legacy@3.0.0/node_modules/character-entities-legacy/package.json","../../../../../../node_modules/.pnpm/character-entities@2.0.2/node_modules/character-entities/index.js","../../../../../../node_modules/.pnpm/character-entities@2.0.2/node_modules/character-entities/package.json","../../../../../../node_modules/.pnpm/character-reference-invalid@2.0.1/node_modules/character-reference-invalid/index.js","../../../../../../node_modules/.pnpm/character-reference-invalid@2.0.1/node_modules/character-reference-invalid/package.json","../../../../../../node_modules/.pnpm/collapse-white-space@2.1.0/node_modules/collapse-white-space/index.js","../../../../../../node_modules/.pnpm/collapse-white-space@2.1.0/node_modules/collapse-white-space/package.json","../../../../../../node_modules/.pnpm/comma-separated-tokens@2.0.3/node_modules/comma-separated-tokens/index.js","../../../../../../node_modules/.pnpm/comma-separated-tokens@2.0.3/node_modules/comma-separated-tokens/package.json","../../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/package.json","../../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/browser.js","../../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js","../../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/index.js","../../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/node.js","../../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/ms","../../../../../../node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/character-entities","../../../../../../node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/decode-named-character-reference/index.js","../../../../../../node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/decode-named-character-reference/package.json","../../../../../../node_modules/.pnpm/devlop@1.1.0/node_modules/devlop/lib/default.js","../../../../../../node_modules/.pnpm/devlop@1.1.0/node_modules/devlop/package.json","../../../../../../node_modules/.pnpm/estree-util-attach-comments@3.0.0/node_modules/estree-util-attach-comments/index.js","../../../../../../node_modules/.pnpm/estree-util-attach-comments@3.0.0/node_modules/estree-util-attach-comments/lib/index.js","../../../../../../node_modules/.pnpm/estree-util-attach-comments@3.0.0/node_modules/estree-util-attach-comments/package.json","../../../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/devlop","../../../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-util-build-jsx/index.js","../../../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-util-build-jsx/lib/index.js","../../../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-util-build-jsx/package.json","../../../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-util-is-identifier-name","../../../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-walker","../../../../../../node_modules/.pnpm/estree-util-is-identifier-name@3.0.0/node_modules/estree-util-is-identifier-name/index.js","../../../../../../node_modules/.pnpm/estree-util-is-identifier-name@3.0.0/node_modules/estree-util-is-identifier-name/lib/index.js","../../../../../../node_modules/.pnpm/estree-util-is-identifier-name@3.0.0/node_modules/estree-util-is-identifier-name/package.json","../../../../../../node_modules/.pnpm/estree-util-scope@1.0.0/node_modules/devlop","../../../../../../node_modules/.pnpm/estree-util-scope@1.0.0/node_modules/estree-util-scope/index.js","../../../../../../node_modules/.pnpm/estree-util-scope@1.0.0/node_modules/estree-util-scope/lib/index.js","../../../../../../node_modules/.pnpm/estree-util-scope@1.0.0/node_modules/estree-util-scope/package.json","../../../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/astring","../../../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/estree-util-to-js/index.js","../../../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/estree-util-to-js/lib/index.js","../../../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/estree-util-to-js/lib/jsx.js","../../../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/estree-util-to-js/package.json","../../../../../../node_modules/.pnpm/estree-util-visit@2.0.0/node_modules/estree-util-visit/index.js","../../../../../../node_modules/.pnpm/estree-util-visit@2.0.0/node_modules/estree-util-visit/lib/color.node.js","../../../../../../node_modules/.pnpm/estree-util-visit@2.0.0/node_modules/estree-util-visit/lib/index.js","../../../../../../node_modules/.pnpm/estree-util-visit@2.0.0/node_modules/estree-util-visit/package.json","../../../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/package.json","../../../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/async.js","../../../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/index.js","../../../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/sync.js","../../../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/walker.js","../../../../../../node_modules/.pnpm/extend@3.0.2/node_modules/extend/index.js","../../../../../../node_modules/.pnpm/extend@3.0.2/node_modules/extend/package.json","../../../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js","../../../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/package.json","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/comma-separated-tokens","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/devlop","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/estree-util-attach-comments","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/estree-util-is-identifier-name","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/index.js","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/comment.js","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/element.js","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/index.js","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/mdx-expression.js","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/mdx-jsx-element.js","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/mdxjs-esm.js","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/root.js","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/text.js","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/index.js","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/state.js","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/package.json","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-whitespace","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/property-information","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/space-separated-tokens","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/style-to-js","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/unist-util-position","../../../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/zwitch","../../../../../../node_modules/.pnpm/hast-util-whitespace@3.0.0/node_modules/hast-util-whitespace/index.js","../../../../../../node_modules/.pnpm/hast-util-whitespace@3.0.0/node_modules/hast-util-whitespace/lib/index.js","../../../../../../node_modules/.pnpm/hast-util-whitespace@3.0.0/node_modules/hast-util-whitespace/package.json","../../../../../../node_modules/.pnpm/import-in-the-middle@1.15.0/node_modules/import-in-the-middle/package.json","../../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/index.js","../../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/lib/register.js","../../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/package.json","../../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/module-details-from-path","../../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/index.js","../../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/lib/register.js","../../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/package.json","../../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/module-details-from-path","../../../../../../node_modules/.pnpm/inline-style-parser@0.2.7/node_modules/inline-style-parser/cjs/index.js","../../../../../../node_modules/.pnpm/inline-style-parser@0.2.7/node_modules/inline-style-parser/package.json","../../../../../../node_modules/.pnpm/is-alphabetical@2.0.1/node_modules/is-alphabetical/index.js","../../../../../../node_modules/.pnpm/is-alphabetical@2.0.1/node_modules/is-alphabetical/package.json","../../../../../../node_modules/.pnpm/is-alphanumerical@2.0.1/node_modules/is-alphabetical","../../../../../../node_modules/.pnpm/is-alphanumerical@2.0.1/node_modules/is-alphanumerical/index.js","../../../../../../node_modules/.pnpm/is-alphanumerical@2.0.1/node_modules/is-alphanumerical/package.json","../../../../../../node_modules/.pnpm/is-alphanumerical@2.0.1/node_modules/is-decimal","../../../../../../node_modules/.pnpm/is-decimal@2.0.1/node_modules/is-decimal/index.js","../../../../../../node_modules/.pnpm/is-decimal@2.0.1/node_modules/is-decimal/package.json","../../../../../../node_modules/.pnpm/is-hexadecimal@2.0.1/node_modules/is-hexadecimal/index.js","../../../../../../node_modules/.pnpm/is-hexadecimal@2.0.1/node_modules/is-hexadecimal/package.json","../../../../../../node_modules/.pnpm/is-plain-obj@4.1.0/node_modules/is-plain-obj/index.js","../../../../../../node_modules/.pnpm/is-plain-obj@4.1.0/node_modules/is-plain-obj/package.json","../../../../../../node_modules/.pnpm/js-tokens@4.0.0/node_modules/js-tokens/index.js","../../../../../../node_modules/.pnpm/js-tokens@4.0.0/node_modules/js-tokens/package.json","../../../../../../node_modules/.pnpm/markdown-extensions@2.0.0/node_modules/markdown-extensions/index.js","../../../../../../node_modules/.pnpm/markdown-extensions@2.0.0/node_modules/markdown-extensions/package.json","../../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/decode-named-character-reference","../../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/index.js","../../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/lib/index.js","../../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/package.json","../../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-to-string","../../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/micromark","../../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/micromark-util-decode-numeric-character-reference","../../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/micromark-util-decode-string","../../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/micromark-util-normalize-identifier","../../../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/unist-util-stringify-position","../../../../../../node_modules/.pnpm/mdast-util-mdx-expression@2.0.1/node_modules/devlop","../../../../../../node_modules/.pnpm/mdast-util-mdx-expression@2.0.1/node_modules/mdast-util-mdx-expression/index.js","../../../../../../node_modules/.pnpm/mdast-util-mdx-expression@2.0.1/node_modules/mdast-util-mdx-expression/lib/index.js","../../../../../../node_modules/.pnpm/mdast-util-mdx-expression@2.0.1/node_modules/mdast-util-mdx-expression/package.json","../../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/ccount","../../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/devlop","../../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/mdast-util-mdx-jsx/index.js","../../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/mdast-util-mdx-jsx/lib/index.js","../../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/mdast-util-mdx-jsx/package.json","../../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/parse-entities","../../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/stringify-entities","../../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/unist-util-stringify-position","../../../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/vfile-message","../../../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx-expression","../../../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx-jsx","../../../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx/index.js","../../../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx/lib/index.js","../../../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx/package.json","../../../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdxjs-esm","../../../../../../node_modules/.pnpm/mdast-util-mdxjs-esm@2.0.1/node_modules/devlop","../../../../../../node_modules/.pnpm/mdast-util-mdxjs-esm@2.0.1/node_modules/mdast-util-mdxjs-esm/index.js","../../../../../../node_modules/.pnpm/mdast-util-mdxjs-esm@2.0.1/node_modules/mdast-util-mdxjs-esm/lib/index.js","../../../../../../node_modules/.pnpm/mdast-util-mdxjs-esm@2.0.1/node_modules/mdast-util-mdxjs-esm/package.json","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/@ungap/structured-clone","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/devlop","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/index.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/footer.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/break.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/code.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/delete.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/heading.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/html.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/image.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/index.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/link.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/list.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/root.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/strong.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/text.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/index.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/revert.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/state.js","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/package.json","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/micromark-util-sanitize-uri","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/trim-lines","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/unist-util-position","../../../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/unist-util-visit","../../../../../../node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/index.js","../../../../../../node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/lib/index.js","../../../../../../node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/package.json","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/decode-named-character-reference","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/index.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/attention.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/autolink.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/blank-line.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/block-quote.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/character-escape.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/character-reference.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-fenced.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-indented.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-text.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/content.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/definition.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/heading-atx.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/html-flow.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/html-text.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-end.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-start-image.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-start-link.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/line-ending.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/list.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/setext-underline.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/thematic-break.js","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/package.json","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-destination","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-label","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-space","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-title","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-whitespace","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-character","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-chunked","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-classify-character","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-html-tag-name","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-normalize-identifier","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-resolve-all","../../../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-subtokenize","../../../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-extension-mdx-expression/index.js","../../../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-extension-mdx-expression/lib/syntax.js","../../../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-extension-mdx-expression/package.json","../../../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-factory-mdx-expression","../../../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-factory-space","../../../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-util-character","../../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/estree-util-is-identifier-name","../../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/index.js","../../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/lib/factory-tag.js","../../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/lib/jsx-flow.js","../../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/lib/jsx-text.js","../../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/lib/syntax.js","../../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/package.json","../../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-factory-mdx-expression","../../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-factory-space","../../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-util-character","../../../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/vfile-message","../../../../../../node_modules/.pnpm/micromark-extension-mdx-md@2.0.0/node_modules/micromark-extension-mdx-md/index.js","../../../../../../node_modules/.pnpm/micromark-extension-mdx-md@2.0.0/node_modules/micromark-extension-mdx-md/package.json","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-core-commonmark","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-extension-mdxjs-esm/index.js","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-extension-mdxjs-esm/lib/syntax.js","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-extension-mdxjs-esm/package.json","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-util-character","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-util-events-to-acorn","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/unist-util-position-from-estree","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/vfile-message","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/acorn","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/acorn-jsx","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdx-expression","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdx-jsx","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdx-md","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdxjs-esm","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdxjs/index.js","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdxjs/package.json","../../../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-util-combine-extensions","../../../../../../node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-factory-destination/index.js","../../../../../../node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-factory-destination/package.json","../../../../../../node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-util-character","../../../../../../node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-factory-label/index.js","../../../../../../node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-factory-label/package.json","../../../../../../node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-util-character","../../../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-factory-mdx-expression/index.js","../../../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-factory-mdx-expression/package.json","../../../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-factory-space","../../../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-util-character","../../../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-util-events-to-acorn","../../../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/unist-util-position-from-estree","../../../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/vfile-message","../../../../../../node_modules/.pnpm/micromark-factory-space@2.0.1/node_modules/micromark-factory-space/index.js","../../../../../../node_modules/.pnpm/micromark-factory-space@2.0.1/node_modules/micromark-factory-space/package.json","../../../../../../node_modules/.pnpm/micromark-factory-space@2.0.1/node_modules/micromark-util-character","../../../../../../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-space","../../../../../../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-title/index.js","../../../../../../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-title/package.json","../../../../../../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-util-character","../../../../../../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-space","../../../../../../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-whitespace/index.js","../../../../../../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-whitespace/package.json","../../../../../../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-util-character","../../../../../../node_modules/.pnpm/micromark-util-character@2.1.1/node_modules/micromark-util-character/index.js","../../../../../../node_modules/.pnpm/micromark-util-character@2.1.1/node_modules/micromark-util-character/package.json","../../../../../../node_modules/.pnpm/micromark-util-chunked@2.0.1/node_modules/micromark-util-chunked/index.js","../../../../../../node_modules/.pnpm/micromark-util-chunked@2.0.1/node_modules/micromark-util-chunked/package.json","../../../../../../node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-character","../../../../../../node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-classify-character/index.js","../../../../../../node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-classify-character/package.json","../../../../../../node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-chunked","../../../../../../node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-combine-extensions/index.js","../../../../../../node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-combine-extensions/package.json","../../../../../../node_modules/.pnpm/micromark-util-decode-numeric-character-reference@2.0.2/node_modules/micromark-util-decode-numeric-character-reference/index.js","../../../../../../node_modules/.pnpm/micromark-util-decode-numeric-character-reference@2.0.2/node_modules/micromark-util-decode-numeric-character-reference/package.json","../../../../../../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/decode-named-character-reference","../../../../../../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-numeric-character-reference","../../../../../../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-string/index.js","../../../../../../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-string/package.json","../../../../../../node_modules/.pnpm/micromark-util-encode@2.0.1/node_modules/micromark-util-encode/index.js","../../../../../../node_modules/.pnpm/micromark-util-encode@2.0.1/node_modules/micromark-util-encode/package.json","../../../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/estree-util-visit","../../../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/micromark-util-events-to-acorn/index.js","../../../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/micromark-util-events-to-acorn/lib/index.js","../../../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/micromark-util-events-to-acorn/package.json","../../../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/vfile-message","../../../../../../node_modules/.pnpm/micromark-util-html-tag-name@2.0.1/node_modules/micromark-util-html-tag-name/index.js","../../../../../../node_modules/.pnpm/micromark-util-html-tag-name@2.0.1/node_modules/micromark-util-html-tag-name/package.json","../../../../../../node_modules/.pnpm/micromark-util-normalize-identifier@2.0.1/node_modules/micromark-util-normalize-identifier/index.js","../../../../../../node_modules/.pnpm/micromark-util-normalize-identifier@2.0.1/node_modules/micromark-util-normalize-identifier/package.json","../../../../../../node_modules/.pnpm/micromark-util-resolve-all@2.0.1/node_modules/micromark-util-resolve-all/index.js","../../../../../../node_modules/.pnpm/micromark-util-resolve-all@2.0.1/node_modules/micromark-util-resolve-all/package.json","../../../../../../node_modules/.pnpm/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-character","../../../../../../node_modules/.pnpm/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-encode","../../../../../../node_modules/.pnpm/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-sanitize-uri/index.js","../../../../../../node_modules/.pnpm/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-sanitize-uri/package.json","../../../../../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-chunked","../../../../../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/index.js","../../../../../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/lib/splice-buffer.js","../../../../../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/package.json","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/decode-named-character-reference","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-core-commonmark","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-factory-space","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-character","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-chunked","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-combine-extensions","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-decode-numeric-character-reference","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-encode","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-normalize-identifier","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-resolve-all","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-sanitize-uri","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-subtokenize","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/index.js","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/compile.js","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/constructs.js","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/create-tokenizer.js","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/content.js","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/document.js","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/flow.js","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/text.js","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/parse.js","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/postprocess.js","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/preprocess.js","../../../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/package.json","../../../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/index.js","../../../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/package.json","../../../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js","../../../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/package.json","../../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/@babel/code-frame","../../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/@mdx-js/mdx","../../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/format-mdx-error.js","../../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/jsx-runtime.cjs","../../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/plugins/remove-imports-exports.js","../../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/rsc.js","../../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/serialize.js","../../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/package.json","../../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/rsc.js","../../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/react","../../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/unist-util-remove","../../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/vfile","../../../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/vfile-matter","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/@opentelemetry/api","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/LICENSE","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/index.edge.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/index.node.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/noto-sans-v27-latin-regular.ttf","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/package.json","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/resvg.wasm","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/satori/LICENSE","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/yoga.wasm","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/constants.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/package.json","../../../../../../node_modules/.pnpm/node_modules/@babel/code-frame","../../../../../../node_modules/.pnpm/node_modules/@babel/helper-validator-identifier","../../../../../../node_modules/.pnpm/node_modules/@mdx-js/mdx","../../../../../../node_modules/.pnpm/node_modules/@opentelemetry/api","../../../../../../node_modules/.pnpm/node_modules/@pinojs/redact","../../../../../../node_modules/.pnpm/node_modules/@ungap/structured-clone","../../../../../../node_modules/.pnpm/node_modules/acorn","../../../../../../node_modules/.pnpm/node_modules/acorn-jsx","../../../../../../node_modules/.pnpm/node_modules/astring","../../../../../../node_modules/.pnpm/node_modules/atomic-sleep","../../../../../../node_modules/.pnpm/node_modules/bail","../../../../../../node_modules/.pnpm/node_modules/ccount","../../../../../../node_modules/.pnpm/node_modules/character-entities","../../../../../../node_modules/.pnpm/node_modules/character-entities-html4","../../../../../../node_modules/.pnpm/node_modules/character-entities-legacy","../../../../../../node_modules/.pnpm/node_modules/character-reference-invalid","../../../../../../node_modules/.pnpm/node_modules/collapse-white-space","../../../../../../node_modules/.pnpm/node_modules/comma-separated-tokens","../../../../../../node_modules/.pnpm/node_modules/debug","../../../../../../node_modules/.pnpm/node_modules/decode-named-character-reference","../../../../../../node_modules/.pnpm/node_modules/devlop","../../../../../../node_modules/.pnpm/node_modules/estree-util-attach-comments","../../../../../../node_modules/.pnpm/node_modules/estree-util-build-jsx","../../../../../../node_modules/.pnpm/node_modules/estree-util-is-identifier-name","../../../../../../node_modules/.pnpm/node_modules/estree-util-scope","../../../../../../node_modules/.pnpm/node_modules/estree-util-to-js","../../../../../../node_modules/.pnpm/node_modules/estree-util-visit","../../../../../../node_modules/.pnpm/node_modules/estree-walker","../../../../../../node_modules/.pnpm/node_modules/extend","../../../../../../node_modules/.pnpm/node_modules/has-flag","../../../../../../node_modules/.pnpm/node_modules/hast-util-to-estree","../../../../../../node_modules/.pnpm/node_modules/hast-util-whitespace","../../../../../../node_modules/.pnpm/node_modules/inline-style-parser","../../../../../../node_modules/.pnpm/node_modules/is-alphabetical","../../../../../../node_modules/.pnpm/node_modules/is-alphanumerical","../../../../../../node_modules/.pnpm/node_modules/is-decimal","../../../../../../node_modules/.pnpm/node_modules/is-hexadecimal","../../../../../../node_modules/.pnpm/node_modules/is-plain-obj","../../../../../../node_modules/.pnpm/node_modules/js-tokens","../../../../../../node_modules/.pnpm/node_modules/markdown-extensions","../../../../../../node_modules/.pnpm/node_modules/mdast-util-from-markdown","../../../../../../node_modules/.pnpm/node_modules/mdast-util-mdx","../../../../../../node_modules/.pnpm/node_modules/mdast-util-mdx-expression","../../../../../../node_modules/.pnpm/node_modules/mdast-util-mdx-jsx","../../../../../../node_modules/.pnpm/node_modules/mdast-util-mdxjs-esm","../../../../../../node_modules/.pnpm/node_modules/mdast-util-to-hast","../../../../../../node_modules/.pnpm/node_modules/mdast-util-to-string","../../../../../../node_modules/.pnpm/node_modules/micromark","../../../../../../node_modules/.pnpm/node_modules/micromark-core-commonmark","../../../../../../node_modules/.pnpm/node_modules/micromark-extension-mdx-expression","../../../../../../node_modules/.pnpm/node_modules/micromark-extension-mdx-jsx","../../../../../../node_modules/.pnpm/node_modules/micromark-extension-mdx-md","../../../../../../node_modules/.pnpm/node_modules/micromark-extension-mdxjs","../../../../../../node_modules/.pnpm/node_modules/micromark-extension-mdxjs-esm","../../../../../../node_modules/.pnpm/node_modules/micromark-factory-destination","../../../../../../node_modules/.pnpm/node_modules/micromark-factory-label","../../../../../../node_modules/.pnpm/node_modules/micromark-factory-mdx-expression","../../../../../../node_modules/.pnpm/node_modules/micromark-factory-space","../../../../../../node_modules/.pnpm/node_modules/micromark-factory-title","../../../../../../node_modules/.pnpm/node_modules/micromark-factory-whitespace","../../../../../../node_modules/.pnpm/node_modules/micromark-util-character","../../../../../../node_modules/.pnpm/node_modules/micromark-util-chunked","../../../../../../node_modules/.pnpm/node_modules/micromark-util-classify-character","../../../../../../node_modules/.pnpm/node_modules/micromark-util-combine-extensions","../../../../../../node_modules/.pnpm/node_modules/micromark-util-decode-numeric-character-reference","../../../../../../node_modules/.pnpm/node_modules/micromark-util-decode-string","../../../../../../node_modules/.pnpm/node_modules/micromark-util-encode","../../../../../../node_modules/.pnpm/node_modules/micromark-util-events-to-acorn","../../../../../../node_modules/.pnpm/node_modules/micromark-util-html-tag-name","../../../../../../node_modules/.pnpm/node_modules/micromark-util-normalize-identifier","../../../../../../node_modules/.pnpm/node_modules/micromark-util-resolve-all","../../../../../../node_modules/.pnpm/node_modules/micromark-util-sanitize-uri","../../../../../../node_modules/.pnpm/node_modules/micromark-util-subtokenize","../../../../../../node_modules/.pnpm/node_modules/module-details-from-path","../../../../../../node_modules/.pnpm/node_modules/ms","../../../../../../node_modules/.pnpm/node_modules/on-exit-leak-free","../../../../../../node_modules/.pnpm/node_modules/parse-entities","../../../../../../node_modules/.pnpm/node_modules/picocolors","../../../../../../node_modules/.pnpm/node_modules/pino-std-serializers","../../../../../../node_modules/.pnpm/node_modules/property-information","../../../../../../node_modules/.pnpm/node_modules/quick-format-unescaped","../../../../../../node_modules/.pnpm/node_modules/real-require","../../../../../../node_modules/.pnpm/node_modules/recma-build-jsx","../../../../../../node_modules/.pnpm/node_modules/recma-jsx","../../../../../../node_modules/.pnpm/node_modules/recma-stringify","../../../../../../node_modules/.pnpm/node_modules/rehype-recma","../../../../../../node_modules/.pnpm/node_modules/remark-mdx","../../../../../../node_modules/.pnpm/node_modules/remark-parse","../../../../../../node_modules/.pnpm/node_modules/remark-rehype","../../../../../../node_modules/.pnpm/node_modules/safe-stable-stringify","../../../../../../node_modules/.pnpm/node_modules/sonic-boom","../../../../../../node_modules/.pnpm/node_modules/space-separated-tokens","../../../../../../node_modules/.pnpm/node_modules/stringify-entities","../../../../../../node_modules/.pnpm/node_modules/style-to-js","../../../../../../node_modules/.pnpm/node_modules/style-to-object","../../../../../../node_modules/.pnpm/node_modules/supports-color","../../../../../../node_modules/.pnpm/node_modules/thread-stream","../../../../../../node_modules/.pnpm/node_modules/trim-lines","../../../../../../node_modules/.pnpm/node_modules/trough","../../../../../../node_modules/.pnpm/node_modules/unified","../../../../../../node_modules/.pnpm/node_modules/unist-util-is","../../../../../../node_modules/.pnpm/node_modules/unist-util-position","../../../../../../node_modules/.pnpm/node_modules/unist-util-position-from-estree","../../../../../../node_modules/.pnpm/node_modules/unist-util-remove","../../../../../../node_modules/.pnpm/node_modules/unist-util-stringify-position","../../../../../../node_modules/.pnpm/node_modules/unist-util-visit","../../../../../../node_modules/.pnpm/node_modules/unist-util-visit-parents","../../../../../../node_modules/.pnpm/node_modules/vfile","../../../../../../node_modules/.pnpm/node_modules/vfile-matter","../../../../../../node_modules/.pnpm/node_modules/vfile-message","../../../../../../node_modules/.pnpm/node_modules/yaml","../../../../../../node_modules/.pnpm/node_modules/zwitch","../../../../../../node_modules/.pnpm/on-exit-leak-free@2.1.2/node_modules/on-exit-leak-free/index.js","../../../../../../node_modules/.pnpm/on-exit-leak-free@2.1.2/node_modules/on-exit-leak-free/package.json","../../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/character-entities-legacy","../../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/character-reference-invalid","../../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/decode-named-character-reference","../../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/is-alphanumerical","../../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/is-decimal","../../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/is-hexadecimal","../../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/parse-entities/index.js","../../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/parse-entities/lib/index.js","../../../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/parse-entities/package.json","../../../../../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/package.json","../../../../../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js","../../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/index.js","../../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-helpers.js","../../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-proto.js","../../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-with-cause.js","../../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err.js","../../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/req.js","../../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/res.js","../../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/package.json","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/@pinojs/redact","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/atomic-sleep","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/on-exit-leak-free","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino-std-serializers","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/file.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/caller.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/constants.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/deprecations.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/levels.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/meta.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/multistream.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/proto.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/redaction.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/symbols.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/time.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/tools.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/transport-stream.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/transport.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/worker.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/package.json","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/pino.js","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/quick-format-unescaped","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/safe-stable-stringify","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/sonic-boom","../../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/thread-stream","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/index.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/aria.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/find.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/hast-to-react.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/html.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/normalize.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/svg.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/case-insensitive-transform.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/case-sensitive-transform.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/create.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/defined-info.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/info.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/merge.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/schema.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/types.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/xlink.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/xml.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/xmlns.js","../../../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/package.json","../../../../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/index.js","../../../../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/package.json","../../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-jsx-dev-runtime.development.js","../../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-jsx-dev-runtime.production.js","../../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-jsx-runtime.development.js","../../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-jsx-runtime.production.js","../../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react.development.js","../../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react.production.js","../../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/index.js","../../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/jsx-dev-runtime.js","../../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/jsx-runtime.js","../../../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/package.json","../../../../../../node_modules/.pnpm/real-require@0.2.0/node_modules/real-require/package.json","../../../../../../node_modules/.pnpm/real-require@0.2.0/node_modules/real-require/src/index.js","../../../../../../node_modules/.pnpm/recma-build-jsx@1.0.0/node_modules/estree-util-build-jsx","../../../../../../node_modules/.pnpm/recma-build-jsx@1.0.0/node_modules/recma-build-jsx/index.js","../../../../../../node_modules/.pnpm/recma-build-jsx@1.0.0/node_modules/recma-build-jsx/lib/index.js","../../../../../../node_modules/.pnpm/recma-build-jsx@1.0.0/node_modules/recma-build-jsx/package.json","../../../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/acorn-jsx","../../../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/estree-util-to-js","../../../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/recma-jsx/index.js","../../../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/recma-jsx/lib/index.js","../../../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/recma-jsx/package.json","../../../../../../node_modules/.pnpm/recma-stringify@1.0.0/node_modules/estree-util-to-js","../../../../../../node_modules/.pnpm/recma-stringify@1.0.0/node_modules/recma-stringify/index.js","../../../../../../node_modules/.pnpm/recma-stringify@1.0.0/node_modules/recma-stringify/lib/index.js","../../../../../../node_modules/.pnpm/recma-stringify@1.0.0/node_modules/recma-stringify/package.json","../../../../../../node_modules/.pnpm/rehype-recma@1.0.0/node_modules/hast-util-to-estree","../../../../../../node_modules/.pnpm/rehype-recma@1.0.0/node_modules/rehype-recma/index.js","../../../../../../node_modules/.pnpm/rehype-recma@1.0.0/node_modules/rehype-recma/lib/index.js","../../../../../../node_modules/.pnpm/rehype-recma@1.0.0/node_modules/rehype-recma/package.json","../../../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/mdast-util-mdx","../../../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/micromark-extension-mdxjs","../../../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/remark-mdx/index.js","../../../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/remark-mdx/lib/index.js","../../../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/remark-mdx/package.json","../../../../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/mdast-util-from-markdown","../../../../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/index.js","../../../../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/lib/index.js","../../../../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/package.json","../../../../../../node_modules/.pnpm/remark-rehype@11.1.2/node_modules/mdast-util-to-hast","../../../../../../node_modules/.pnpm/remark-rehype@11.1.2/node_modules/remark-rehype/index.js","../../../../../../node_modules/.pnpm/remark-rehype@11.1.2/node_modules/remark-rehype/lib/index.js","../../../../../../node_modules/.pnpm/remark-rehype@11.1.2/node_modules/remark-rehype/package.json","../../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/debug","../../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/module-details-from-path","../../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/index.js","../../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/package.json","../../../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/index.js","../../../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/package.json","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/atomic-sleep","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/LICENSE","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/README.md","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/bench.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/check.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/example.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/fixtures/firehose.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/index.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/package.json","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/destroy.test.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/end.test.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/flush-sync.test.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/flush.test.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/fsync.test.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/helper.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/minlength.test.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/mode.test.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/periodicflush.test.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/reopen.test.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/retry.test.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/sync.test.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/write.test.js","../../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/types/tests/test.ts","../../../../../../node_modules/.pnpm/space-separated-tokens@2.0.2/node_modules/space-separated-tokens/index.js","../../../../../../node_modules/.pnpm/space-separated-tokens@2.0.2/node_modules/space-separated-tokens/package.json","../../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/character-entities-html4","../../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/character-entities-legacy","../../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/index.js","../../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/constant/dangerous.js","../../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/core.js","../../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/index.js","../../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/format-basic.js","../../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/format-smart.js","../../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-decimal.js","../../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-hexadecimal.js","../../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-named.js","../../../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/package.json","../../../../../../node_modules/.pnpm/style-to-js@1.1.21/node_modules/style-to-js/cjs/index.js","../../../../../../node_modules/.pnpm/style-to-js@1.1.21/node_modules/style-to-js/cjs/utilities.js","../../../../../../node_modules/.pnpm/style-to-js@1.1.21/node_modules/style-to-js/package.json","../../../../../../node_modules/.pnpm/style-to-js@1.1.21/node_modules/style-to-object","../../../../../../node_modules/.pnpm/style-to-object@1.0.14/node_modules/inline-style-parser","../../../../../../node_modules/.pnpm/style-to-object@1.0.14/node_modules/style-to-object/cjs/index.js","../../../../../../node_modules/.pnpm/style-to-object@1.0.14/node_modules/style-to-object/package.json","../../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/has-flag","../../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js","../../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/package.json","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/real-require","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/LICENSE","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/bench.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/eslint.config.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/index.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/indexes.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/wait.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/worker.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/package.json","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/base.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/bench.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/bundlers.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/close-on-gc.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/commonjs-fallback.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/context.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/create-and-exit.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/custom-worker.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/dir with spaces/test-package.zip","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/emit-event.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/end.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/error.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/esm.test.mjs","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/event.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/exit.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/get-context.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/helper.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/indexes.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/multibyte-chars.test.mjs","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/on-message.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/index.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/pkg.config.json","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/pkg.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/port.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/post-message.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/string-limit-2.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/string-limit.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/syntax-error.mjs","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/thread-management.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file-on-destroy.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file-on-final.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file.mjs","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-next.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/transpiled.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-commonjs-default-export.zip","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-native.test.mjs","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-node-fallback.test.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts/to-file.ts","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts/transpile.sh","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/uncaughtException.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/unhandledRejection.js","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/yarnrc.yml","../../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/tsconfig.json","../../../../../../node_modules/.pnpm/trim-lines@3.0.1/node_modules/trim-lines/index.js","../../../../../../node_modules/.pnpm/trim-lines@3.0.1/node_modules/trim-lines/package.json","../../../../../../node_modules/.pnpm/trough@2.2.0/node_modules/trough/index.js","../../../../../../node_modules/.pnpm/trough@2.2.0/node_modules/trough/lib/index.js","../../../../../../node_modules/.pnpm/trough@2.2.0/node_modules/trough/package.json","../../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/bail","../../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/devlop","../../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/extend","../../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/is-plain-obj","../../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/trough","../../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/index.js","../../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/lib/callable-instance.js","../../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/lib/index.js","../../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/package.json","../../../../../../node_modules/.pnpm/unified@11.0.5/node_modules/vfile","../../../../../../node_modules/.pnpm/unist-util-is@5.2.1/node_modules/unist-util-is/index.js","../../../../../../node_modules/.pnpm/unist-util-is@5.2.1/node_modules/unist-util-is/lib/index.js","../../../../../../node_modules/.pnpm/unist-util-is@5.2.1/node_modules/unist-util-is/package.json","../../../../../../node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/index.js","../../../../../../node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/lib/index.js","../../../../../../node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/package.json","../../../../../../node_modules/.pnpm/unist-util-position-from-estree@2.0.0/node_modules/unist-util-position-from-estree/index.js","../../../../../../node_modules/.pnpm/unist-util-position-from-estree@2.0.0/node_modules/unist-util-position-from-estree/lib/index.js","../../../../../../node_modules/.pnpm/unist-util-position-from-estree@2.0.0/node_modules/unist-util-position-from-estree/package.json","../../../../../../node_modules/.pnpm/unist-util-position@5.0.0/node_modules/unist-util-position/index.js","../../../../../../node_modules/.pnpm/unist-util-position@5.0.0/node_modules/unist-util-position/lib/index.js","../../../../../../node_modules/.pnpm/unist-util-position@5.0.0/node_modules/unist-util-position/package.json","../../../../../../node_modules/.pnpm/unist-util-remove@3.1.1/node_modules/unist-util-is","../../../../../../node_modules/.pnpm/unist-util-remove@3.1.1/node_modules/unist-util-remove/index.js","../../../../../../node_modules/.pnpm/unist-util-remove@3.1.1/node_modules/unist-util-remove/lib/index.js","../../../../../../node_modules/.pnpm/unist-util-remove@3.1.1/node_modules/unist-util-remove/package.json","../../../../../../node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/index.js","../../../../../../node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/lib/index.js","../../../../../../node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/package.json","../../../../../../node_modules/.pnpm/unist-util-visit-parents@5.1.3/node_modules/unist-util-visit-parents/package.json","../../../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-is","../../../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/index.js","../../../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/color.node.js","../../../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/index.js","../../../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/package.json","../../../../../../node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit-parents","../../../../../../node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit/index.js","../../../../../../node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit/lib/index.js","../../../../../../node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit/package.json","../../../../../../node_modules/.pnpm/vfile-matter@5.0.1/node_modules/vfile-matter/index.js","../../../../../../node_modules/.pnpm/vfile-matter@5.0.1/node_modules/vfile-matter/lib/index.js","../../../../../../node_modules/.pnpm/vfile-matter@5.0.1/node_modules/vfile-matter/package.json","../../../../../../node_modules/.pnpm/vfile-matter@5.0.1/node_modules/yaml","../../../../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/unist-util-stringify-position","../../../../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/index.js","../../../../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/lib/index.js","../../../../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/package.json","../../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile-message","../../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/index.js","../../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/index.js","../../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minpath.js","../../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minproc.js","../../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minurl.js","../../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minurl.shared.js","../../../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/package.json","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/compose-collection.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/compose-doc.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/compose-node.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/compose-scalar.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/composer.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-block-map.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-block-scalar.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-block-seq.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-end.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-flow-collection.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-flow-scalar.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-props.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/util-contains-newline.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/util-empty-scalar-position.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/util-flow-indent-check.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/util-map-includes.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/Document.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/anchors.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/applyReviver.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/createNode.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/directives.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/errors.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/index.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/log.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Alias.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Collection.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Node.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Pair.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Scalar.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/YAMLMap.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/YAMLSeq.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/addPairToJSMap.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/identity.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/toJS.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/cst-scalar.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/cst-stringify.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/cst-visit.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/cst.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/lexer.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/line-counter.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/parser.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/public-api.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/Schema.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/common/map.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/common/null.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/common/seq.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/common/string.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/core/bool.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/core/float.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/core/int.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/core/schema.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/json/schema.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/tags.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/binary.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/bool.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/float.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/int.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/merge.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/omap.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/pairs.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/schema.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/set.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/foldFlowLines.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringify.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyCollection.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyComment.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyDocument.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyNumber.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyPair.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyString.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/visit.js","../../../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/package.json","../../../../../../node_modules/.pnpm/zwitch@2.0.4/node_modules/zwitch/index.js","../../../../../../node_modules/.pnpm/zwitch@2.0.4/node_modules/zwitch/package.json","../../../../../../node_modules/import-in-the-middle","../../../../../../node_modules/next","../../../../../../node_modules/pino","../../../../../../node_modules/react","../../../../../../node_modules/require-in-the-middle","../../../../../node_modules/import-in-the-middle-138cd032e4b029f3","../../../../../node_modules/import-in-the-middle-6ecbfda1283b1532","../../../../../node_modules/next-mdx-remote-38ab1b696f56808a","../../../../../node_modules/pino-2e79642258e38174","../../../../../node_modules/require-in-the-middle-a99415fa67232f7f","../../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_5e35a34a.js","../../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_f7a67094.js","../../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_68baf629.js","../../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_e2e05945.js","../../../../chunks/ssr/3c3e1_next-intl_dist_esm_production_server_react-server_getConfig_8e5b989d.js","../../../../chunks/ssr/468ab_next_b54e3ae0._.js","../../../../chunks/ssr/468ab_next_c7821d87._.js","../../../../chunks/ssr/468ab_next_dist_668db2a3._.js","../../../../chunks/ssr/468ab_next_dist_9c02c43c._.js","../../../../chunks/ssr/468ab_next_dist_a9fadb3f._.js","../../../../chunks/ssr/468ab_next_dist_client_components_9ea24689._.js","../../../../chunks/ssr/468ab_next_dist_client_components_builtin_forbidden_fcf22647.js","../../../../chunks/ssr/468ab_next_dist_client_components_builtin_unauthorized_242673a5.js","../../../../chunks/ssr/468ab_next_dist_d9f52090._.js","../../../../chunks/ssr/468ab_next_dist_e98c316f._.js","../../../../chunks/ssr/468ab_next_dist_esm_10bac804._.js","../../../../chunks/ssr/5e5d0_@opentelemetry_api_build_esm_f7b039e6._.js","../../../../chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","../../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_317a5e2b._.js","../../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_51b27302._.js","../../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_634cb413._.js","../../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_88fed31f._.js","../../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_929773f6._.js","../../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_f2e70164._.js","../../../../chunks/ssr/[externals]_next_dist_compiled_@vercel_og_index_node_055f47ab.js","../../../../chunks/ssr/[externals]_node:inspector_7a4283c6._.js","../../../../chunks/ssr/[root-of-the-server]__047498e4._.js","../../../../chunks/ssr/[root-of-the-server]__16d71f56._.js","../../../../chunks/ssr/[root-of-the-server]__2da52317._.js","../../../../chunks/ssr/[root-of-the-server]__34977423._.js","../../../../chunks/ssr/[root-of-the-server]__366a9ff8._.js","../../../../chunks/ssr/[root-of-the-server]__411530ea._.js","../../../../chunks/ssr/[root-of-the-server]__4f559f29._.js","../../../../chunks/ssr/[root-of-the-server]__5186451e._.js","../../../../chunks/ssr/[root-of-the-server]__5bd1b04a._.js","../../../../chunks/ssr/[root-of-the-server]__63a582be._.js","../../../../chunks/ssr/[root-of-the-server]__7fda9c9f._.js","../../../../chunks/ssr/[root-of-the-server]__9bfda315._.js","../../../../chunks/ssr/[root-of-the-server]__9eff91eb._.js","../../../../chunks/ssr/[root-of-the-server]__ba65f140._.js","../../../../chunks/ssr/[root-of-the-server]__bc75933a._.js","../../../../chunks/ssr/[root-of-the-server]__cf9f2fa5._.js","../../../../chunks/ssr/[root-of-the-server]__d3969a9f._.js","../../../../chunks/ssr/[root-of-the-server]__ec303f7a._.js","../../../../chunks/ssr/[root-of-the-server]__fbc63b72._.js","../../../../chunks/ssr/[turbopack]_runtime.js","../../../../chunks/ssr/_16003e4d._.js","../../../../chunks/ssr/_4e0f57e0._.js","../../../../chunks/ssr/_6f66913b._.js","../../../../chunks/ssr/_b76d0ab2._.js","../../../../chunks/ssr/_c3cb4fd0._.js","../../../../chunks/ssr/_cbda2ac7._.js","../../../../chunks/ssr/_d825b83f._.js","../../../../chunks/ssr/_df4aec0b._.js","../../../../chunks/ssr/_ed7052e7._.js","../../../../chunks/ssr/_next-internal_server_app_[locale]_blog_[slug]_page_actions_acb43cb8.js","../../../../chunks/ssr/app_[locale]_blog_opengraph-image--metadata_6372a955.js","../../../../chunks/ssr/app_[locale]_error_tsx_37c0341f._.js","../../../../chunks/ssr/app_global-error_tsx_9170b7a0._.js","../../../../chunks/ssr/components_ui_6a2a3715._.js","../../../../chunks/ssr/messages_de_json_56e8cde5._.js","../../../../chunks/ssr/messages_en_json_a7997480._.js","../../../../chunks/ssr/node_modules__pnpm_20ad9314._.js","../../../../chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","../../../../chunks/ssr/node_modules__pnpm_329a8f51._.js","../../../../chunks/ssr/node_modules__pnpm_66399b09._.js","../../../../chunks/ssr/node_modules__pnpm_8387bcd6._.js","../../../../chunks/ssr/node_modules__pnpm_d28cabd9._.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/.next/server/app/[locale]/blog/[slug]/page/build-manifest.json b/.next/server/app/[locale]/blog/[slug]/page/build-manifest.json index 436cd66d8..4482423a4 100644 --- a/.next/server/app/[locale]/blog/[slug]/page/build-manifest.json +++ b/.next/server/app/[locale]/blog/[slug]/page/build-manifest.json @@ -7,11 +7,11 @@ "lowPriorityFiles": [], "rootMainFiles": [ "static/chunks/c68fc807b9365f18.js", - "static/chunks/f51290069c969e8a.js", + "static/chunks/b263a60573bfd155.js", "static/chunks/29297b02a438a66e.js", "static/chunks/fd7b24483a212e2f.js", - "static/chunks/b62c08cc490fef16.js", - "static/chunks/turbopack-e5b78b2a7c8f1f21.js" + "static/chunks/b6898185462c2fee.js", + "static/chunks/turbopack-721eb9b8c3f79e29.js" ], "pages": {}, "ampFirstPages": [] diff --git a/.next/server/app/[locale]/blog/[slug]/page/react-loadable-manifest.json b/.next/server/app/[locale]/blog/[slug]/page/react-loadable-manifest.json index 313542e4d..a0b34aa9d 100644 --- a/.next/server/app/[locale]/blog/[slug]/page/react-loadable-manifest.json +++ b/.next/server/app/[locale]/blog/[slug]/page/react-loadable-manifest.json @@ -2,30 +2,29 @@ "565071": { "id": 565071, "files": [ - "static/chunks/a6d16f278f687ad0.js", + "static/chunks/d62bf387414e0748.js", "static/chunks/0ff158dd58fe47c8.js" ] }, "248785": { "id": 248785, "files": [ - "static/chunks/1fa1fc1d8df71347.js", + "static/chunks/ff6db6d7946b9f90.js", "static/chunks/0ff158dd58fe47c8.js" ] }, "950648": { "id": 950648, "files": [ - "static/chunks/d578f418b9661eaf.js", + "static/chunks/844db355c06db065.js", "static/chunks/0ff158dd58fe47c8.js" ] }, "566137": { "id": 566137, "files": [ - "static/chunks/0a765fb53d81ccec.js", - "static/chunks/c9e4534297dc4d54.js", - "static/chunks/9c4a690cd48e1298.js" + "static/chunks/9c4a690cd48e1298.js", + "static/chunks/c9e4534297dc4d54.js" ] } } \ No newline at end of file diff --git a/.next/server/app/[locale]/blog/[slug]/page_client-reference-manifest.js b/.next/server/app/[locale]/blog/[slug]/page_client-reference-manifest.js index eddae1855..7fd602ffb 100644 --- a/.next/server/app/[locale]/blog/[slug]/page_client-reference-manifest.js +++ b/.next/server/app/[locale]/blog/[slug]/page_client-reference-manifest.js @@ -1,2 +1,2 @@ globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; -globalThis.__RSC_MANIFEST["/[locale]/blog/[slug]/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":666284,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":666284,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":29584,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":29584,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":30965,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":30965,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":966591,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":966591,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":3420,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3420,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":489266,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":489266,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":67067,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":67067,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/app/global-error.tsx ":{"id":253348,"name":"*","chunks":["/_next/static/chunks/7bc980684698d6e7.js","/_next/static/chunks/5336d64d11e7435f.js"],"async":false},"[project]/app/global-error.tsx":{"id":253348,"name":"*","chunks":["/_next/static/chunks/7bc980684698d6e7.js","/_next/static/chunks/5336d64d11e7435f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/app-dir/link.js ":{"id":184868,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/49a11913baa3bac9.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/app-dir/link.js":{"id":184868,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/49a11913baa3bac9.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/image-component.js ":{"id":702050,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/49a11913baa3bac9.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/image-component.js":{"id":702050,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/49a11913baa3bac9.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/layout/LanguageSwitcher.tsx ":{"id":287564,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/layout/LanguageSwitcher.tsx":{"id":287564,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/layout/Header.tsx ":{"id":993983,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/layout/Header.tsx":{"id":993983,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/SkipLink.tsx ":{"id":814508,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/SkipLink.tsx":{"id":814508,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/analytics/AnalyticsShell.tsx ":{"id":531518,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/analytics/AnalyticsShell.tsx":{"id":531518,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/node_modules/.pnpm/next-intl@4.9.0_@swc+helpers@0.5.20_next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js ":{"id":600023,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/node_modules/.pnpm/next-intl@4.9.0_@swc+helpers@0.5.20_next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js":{"id":600023,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/FeedbackClientWrapper.tsx ":{"id":689647,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/FeedbackClientWrapper.tsx":{"id":689647,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/app/[locale]/error.tsx ":{"id":309974,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/4e4487a1c38504b3.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/app/[locale]/error.tsx":{"id":309974,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/4e4487a1c38504b3.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/Scribble.tsx ":{"id":224038,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/Scribble.tsx":{"id":224038,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/analytics/ClientNotFoundTracker.tsx ":{"id":555331,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/analytics/ClientNotFoundTracker.tsx":{"id":555331,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/blog/TableOfContents.tsx ":{"id":959504,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/49a11913baa3bac9.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/blog/TableOfContents.tsx":{"id":959504,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/49a11913baa3bac9.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/analytics/BlogEngagementTracker.tsx ":{"id":59828,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/49a11913baa3bac9.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/analytics/BlogEngagementTracker.tsx":{"id":59828,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/49a11913baa3bac9.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false}},"ssrModuleMapping":{"666284":{"*":{"id":164732,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"29584":{"*":{"id":743976,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"30965":{"*":{"id":46550,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"966591":{"*":{"id":594180,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"3420":{"*":{"id":585766,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"489266":{"*":{"id":471584,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"67067":{"*":{"id":561162,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"253348":{"*":{"id":303171,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__411530ea._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js"],"async":false}},"184868":{"*":{"id":841757,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__3b46c561._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"702050":{"*":{"id":739969,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__3b46c561._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"287564":{"*":{"id":81870,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"993983":{"*":{"id":581631,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"814508":{"*":{"id":909381,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"531518":{"*":{"id":905651,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"600023":{"*":{"id":650766,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"689647":{"*":{"id":894447,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"309974":{"*":{"id":497627,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__5bbfddd1._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"224038":{"*":{"id":991320,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__28a191f2._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"555331":{"*":{"id":868513,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__28a191f2._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"959504":{"*":{"id":762771,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__3b46c561._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"59828":{"*":{"id":679329,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__3b46c561._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"666284":{"*":{"id":551417,"name":"*","chunks":[],"async":false}},"29584":{"*":{"id":536434,"name":"*","chunks":[],"async":false}},"30965":{"*":{"id":387103,"name":"*","chunks":[],"async":false}},"966591":{"*":{"id":580884,"name":"*","chunks":[],"async":false}},"3420":{"*":{"id":504014,"name":"*","chunks":[],"async":false}},"489266":{"*":{"id":726190,"name":"*","chunks":[],"async":false}},"67067":{"*":{"id":76412,"name":"*","chunks":[],"async":false}},"253348":{"*":{"id":153128,"name":"*","chunks":[],"async":false}},"184868":{"*":{"id":917929,"name":"*","chunks":[],"async":false}},"702050":{"*":{"id":986834,"name":"*","chunks":[],"async":false}},"287564":{"*":{"id":168713,"name":"*","chunks":[],"async":false}},"993983":{"*":{"id":625244,"name":"*","chunks":[],"async":false}},"814508":{"*":{"id":566663,"name":"*","chunks":[],"async":false}},"531518":{"*":{"id":292727,"name":"*","chunks":[],"async":false}},"600023":{"*":{"id":963034,"name":"*","chunks":[],"async":false}},"689647":{"*":{"id":679583,"name":"*","chunks":[],"async":false}},"309974":{"*":{"id":363934,"name":"*","chunks":[],"async":false}},"224038":{"*":{"id":404449,"name":"*","chunks":[],"async":false}},"555331":{"*":{"id":588684,"name":"*","chunks":[],"async":false}},"959504":{"*":{"id":630187,"name":"*","chunks":[],"async":false}},"59828":{"*":{"id":679007,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/app/[locale]/opengraph-image--metadata":[],"[project]/app/global-error":[],"[project]/app/[locale]/layout":[{"path":"static/chunks/928be433d65b40cc.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/error":[{"path":"static/chunks/928be433d65b40cc.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/not-found":[{"path":"static/chunks/928be433d65b40cc.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/blog/[slug]/page":[{"path":"static/chunks/928be433d65b40cc.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}]},"entryJSFiles":{"[project]/app/[locale]/opengraph-image--metadata":["static/chunks/93736546a7cd8cd8.js","static/chunks/870a2c2978ab4440.js"],"[project]/app/global-error":["static/chunks/7bc980684698d6e7.js","static/chunks/5336d64d11e7435f.js"],"[project]/app/[locale]/layout":["static/chunks/76668d2ab61cd4a8.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b786cbc2e9238523.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/eeabc9d46e43f022.js"],"[project]/app/[locale]/error":["static/chunks/76668d2ab61cd4a8.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b786cbc2e9238523.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/eeabc9d46e43f022.js","static/chunks/4e4487a1c38504b3.js","static/chunks/0ff158dd58fe47c8.js","static/chunks/b550ef5d0ebc89bc.js"],"[project]/app/[locale]/not-found":["static/chunks/76668d2ab61cd4a8.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b786cbc2e9238523.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/eeabc9d46e43f022.js","static/chunks/a86ed0e5ea629175.js","static/chunks/0ff158dd58fe47c8.js","static/chunks/b550ef5d0ebc89bc.js"],"[project]/app/[locale]/blog/[slug]/page":["static/chunks/76668d2ab61cd4a8.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b786cbc2e9238523.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/eeabc9d46e43f022.js","static/chunks/49a11913baa3bac9.js","static/chunks/0ff158dd58fe47c8.js","static/chunks/b550ef5d0ebc89bc.js"]}} +globalThis.__RSC_MANIFEST["/[locale]/blog/[slug]/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":666284,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":666284,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":29584,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":29584,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":30965,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":30965,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":966591,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":966591,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":3420,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3420,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":489266,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":489266,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":67067,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":67067,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/app/global-error.tsx ":{"id":253348,"name":"*","chunks":["/_next/static/chunks/7bc980684698d6e7.js","/_next/static/chunks/5336d64d11e7435f.js"],"async":false},"[project]/app/global-error.tsx":{"id":253348,"name":"*","chunks":["/_next/static/chunks/7bc980684698d6e7.js","/_next/static/chunks/5336d64d11e7435f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/app-dir/link.js ":{"id":184868,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/a147e5875d1faa83.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/app-dir/link.js":{"id":184868,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/a147e5875d1faa83.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/image-component.js ":{"id":702050,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/a147e5875d1faa83.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/image-component.js":{"id":702050,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/a147e5875d1faa83.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/layout/LanguageSwitcher.tsx ":{"id":287564,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/layout/LanguageSwitcher.tsx":{"id":287564,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/layout/Header.tsx ":{"id":993983,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/layout/Header.tsx":{"id":993983,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/SkipLink.tsx ":{"id":814508,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/SkipLink.tsx":{"id":814508,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/analytics/AnalyticsShell.tsx ":{"id":531518,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/analytics/AnalyticsShell.tsx":{"id":531518,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/node_modules/.pnpm/next-intl@4.9.0_@swc+helpers@0.5.20_next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js ":{"id":600023,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/node_modules/.pnpm/next-intl@4.9.0_@swc+helpers@0.5.20_next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js":{"id":600023,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/FeedbackClientWrapper.tsx ":{"id":689647,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/FeedbackClientWrapper.tsx":{"id":689647,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/app/[locale]/error.tsx ":{"id":309974,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b02fdfb08ad720b0.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/app/[locale]/error.tsx":{"id":309974,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b02fdfb08ad720b0.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/Scribble.tsx ":{"id":224038,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/Scribble.tsx":{"id":224038,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/analytics/ClientNotFoundTracker.tsx ":{"id":555331,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/analytics/ClientNotFoundTracker.tsx":{"id":555331,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/blog/TableOfContents.tsx ":{"id":959504,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/a147e5875d1faa83.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/blog/TableOfContents.tsx":{"id":959504,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/a147e5875d1faa83.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/analytics/BlogEngagementTracker.tsx ":{"id":59828,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/a147e5875d1faa83.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/analytics/BlogEngagementTracker.tsx":{"id":59828,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/a147e5875d1faa83.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false}},"ssrModuleMapping":{"666284":{"*":{"id":164732,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"29584":{"*":{"id":743976,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"30965":{"*":{"id":46550,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"966591":{"*":{"id":594180,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"3420":{"*":{"id":585766,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"489266":{"*":{"id":471584,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"67067":{"*":{"id":561162,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"253348":{"*":{"id":303171,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__411530ea._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js"],"async":false}},"184868":{"*":{"id":841757,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__4f559f29._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"702050":{"*":{"id":739969,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__4f559f29._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"287564":{"*":{"id":81870,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"993983":{"*":{"id":581631,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"814508":{"*":{"id":909381,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"531518":{"*":{"id":905651,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"600023":{"*":{"id":650766,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"689647":{"*":{"id":894447,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"309974":{"*":{"id":497627,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__34977423._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"224038":{"*":{"id":991320,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__63a582be._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"555331":{"*":{"id":868513,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__63a582be._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"959504":{"*":{"id":762771,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__4f559f29._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"59828":{"*":{"id":679329,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__4f559f29._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"666284":{"*":{"id":551417,"name":"*","chunks":[],"async":false}},"29584":{"*":{"id":536434,"name":"*","chunks":[],"async":false}},"30965":{"*":{"id":387103,"name":"*","chunks":[],"async":false}},"966591":{"*":{"id":580884,"name":"*","chunks":[],"async":false}},"3420":{"*":{"id":504014,"name":"*","chunks":[],"async":false}},"489266":{"*":{"id":726190,"name":"*","chunks":[],"async":false}},"67067":{"*":{"id":76412,"name":"*","chunks":[],"async":false}},"253348":{"*":{"id":153128,"name":"*","chunks":[],"async":false}},"184868":{"*":{"id":917929,"name":"*","chunks":[],"async":false}},"702050":{"*":{"id":986834,"name":"*","chunks":[],"async":false}},"287564":{"*":{"id":168713,"name":"*","chunks":[],"async":false}},"993983":{"*":{"id":625244,"name":"*","chunks":[],"async":false}},"814508":{"*":{"id":566663,"name":"*","chunks":[],"async":false}},"531518":{"*":{"id":292727,"name":"*","chunks":[],"async":false}},"600023":{"*":{"id":963034,"name":"*","chunks":[],"async":false}},"689647":{"*":{"id":679583,"name":"*","chunks":[],"async":false}},"309974":{"*":{"id":363934,"name":"*","chunks":[],"async":false}},"224038":{"*":{"id":404449,"name":"*","chunks":[],"async":false}},"555331":{"*":{"id":588684,"name":"*","chunks":[],"async":false}},"959504":{"*":{"id":630187,"name":"*","chunks":[],"async":false}},"59828":{"*":{"id":679007,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/app/[locale]/opengraph-image--metadata":[],"[project]/app/global-error":[],"[project]/app/[locale]/layout":[{"path":"static/chunks/3f652f1a7128a03a.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/error":[{"path":"static/chunks/3f652f1a7128a03a.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/not-found":[{"path":"static/chunks/3f652f1a7128a03a.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/blog/[slug]/page":[{"path":"static/chunks/3f652f1a7128a03a.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}]},"entryJSFiles":{"[project]/app/[locale]/opengraph-image--metadata":["static/chunks/93736546a7cd8cd8.js","static/chunks/870a2c2978ab4440.js"],"[project]/app/global-error":["static/chunks/7bc980684698d6e7.js","static/chunks/5336d64d11e7435f.js"],"[project]/app/[locale]/layout":["static/chunks/6640bcd504ed2815.js","static/chunks/eeabc9d46e43f022.js","static/chunks/595f4cd305cd0088.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/fac3383571a5e891.js","static/chunks/ad1b4e551db227fe.js"],"[project]/app/[locale]/error":["static/chunks/6640bcd504ed2815.js","static/chunks/eeabc9d46e43f022.js","static/chunks/595f4cd305cd0088.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/fac3383571a5e891.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b02fdfb08ad720b0.js","static/chunks/0ff158dd58fe47c8.js"],"[project]/app/[locale]/not-found":["static/chunks/6640bcd504ed2815.js","static/chunks/eeabc9d46e43f022.js","static/chunks/595f4cd305cd0088.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/fac3383571a5e891.js","static/chunks/ad1b4e551db227fe.js","static/chunks/e91fc49c513620bc.js","static/chunks/0ff158dd58fe47c8.js"],"[project]/app/[locale]/blog/[slug]/page":["static/chunks/6640bcd504ed2815.js","static/chunks/eeabc9d46e43f022.js","static/chunks/595f4cd305cd0088.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/fac3383571a5e891.js","static/chunks/ad1b4e551db227fe.js","static/chunks/a147e5875d1faa83.js","static/chunks/0ff158dd58fe47c8.js"]}} diff --git a/.next/server/app/[locale]/blog/page.js b/.next/server/app/[locale]/blog/page.js index cb81c3827..3fef9089a 100644 --- a/.next/server/app/[locale]/blog/page.js +++ b/.next/server/app/[locale]/blog/page.js @@ -7,7 +7,7 @@ R.c("server/chunks/ssr/[root-of-the-server]__5bd1b04a._.js") R.c("server/chunks/ssr/5e5d0_@opentelemetry_api_build_esm_f7b039e6._.js") R.c("server/chunks/ssr/468ab_next_dist_d9f52090._.js") R.c("server/chunks/ssr/468ab_next_dist_e98c316f._.js") -R.c("server/chunks/ssr/[root-of-the-server]__f153a21f._.js") +R.c("server/chunks/ssr/[root-of-the-server]__2da52317._.js") R.c("server/chunks/ssr/468ab_next_dist_668db2a3._.js") R.c("server/chunks/ssr/node_modules__pnpm_20ad9314._.js") R.c("server/chunks/ssr/3c3e1_next-intl_dist_esm_production_server_react-server_getConfig_8e5b989d.js") @@ -19,13 +19,13 @@ R.c("server/chunks/ssr/app_global-error_tsx_9170b7a0._.js") R.c("server/chunks/ssr/468ab_next_dist_client_components_9ea24689._.js") R.c("server/chunks/ssr/468ab_next_dist_client_components_builtin_forbidden_fcf22647.js") R.c("server/chunks/ssr/468ab_next_dist_client_components_builtin_unauthorized_242673a5.js") -R.c("server/chunks/ssr/_45bb404c._.js") -R.c("server/chunks/ssr/_536bc82a._.js") +R.c("server/chunks/ssr/_7ce8a06e._.js") +R.c("server/chunks/ssr/_6189c8b5._.js") R.c("server/chunks/ssr/[root-of-the-server]__bc75933a._.js") R.c("server/chunks/ssr/_df4aec0b._.js") R.c("server/chunks/ssr/app_[locale]_error_tsx_37c0341f._.js") -R.c("server/chunks/ssr/_49a7ffbe._.js") -R.c("server/chunks/ssr/components_4d1233ab._.js") +R.c("server/chunks/ssr/_d825b83f._.js") +R.c("server/chunks/ssr/components_ui_6a2a3715._.js") R.c("server/chunks/ssr/_next-internal_server_app_[locale]_blog_page_actions_3e6bf887.js") R.m(189261) module.exports=R.m(189261).exports diff --git a/.next/server/app/[locale]/blog/page.js.nft.json b/.next/server/app/[locale]/blog/page.js.nft.json index 625614769..671968881 100644 --- a/.next/server/app/[locale]/blog/page.js.nft.json +++ b/.next/server/app/[locale]/blog/page.js.nft.json @@ -1 +1 @@ -{"version":1,"files":["../../../../../content/de/blog/moderne-verfahren-kabeltiefbau.mdx","../../../../../content/en/blog/modern-methods-civil-engineering.mdx","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/context.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/diag.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/metrics.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/propagation.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/trace.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/context.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/types.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/index.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/global-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/semver.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/Metric.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/context-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/span_kind.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/status.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/version.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/package.json","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/execAsync.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-bsd.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-darwin.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-linux.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-unsupported.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-win.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId.js","../../../../../node_modules/.pnpm/@pinojs+redact@0.4.0/node_modules/@pinojs/redact/index.js","../../../../../node_modules/.pnpm/@pinojs+redact@0.4.0/node_modules/@pinojs/redact/package.json","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/browserTracingIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/clientNormalizationIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/appRouterRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/isrRoutingTracing.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/nextRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/pagesRouterRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/parameterization.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/tunnelRoute.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/captureRequestError.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/debug-build.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/devErrorSymbolicationEventProcessor.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/getVercelEnv.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextNavigationErrorUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextSpanAttributes.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/_error.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentryVercelCrons.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapAppGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapDocumentGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapErrorGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetServerSidePropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetStaticPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapPageComponentWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/span-attributes-with-logic-attached.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/addHeadersAsAttributes.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/dropMiddlewareTunnelRequests.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isBuild.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isUseCacheFunction.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/nextSpan.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/responseEnd.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/setUrlProcessingMetadata.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/tracingUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/urls.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/wrapperUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/withServerActionInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapGenerationFunctionWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapMiddlewareWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapRouteHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapServerComponentWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/getBuildPluginOptions.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/handleRunAfterProductionCompile.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/componentAnnotationLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/moduleMetadataInjectionLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/prefixLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/valueInjectionLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/wrappingLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/manifest/createRouteManifest.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/polyfills/perf_hooks.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/apiWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/middlewareWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/pageWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/requestAsyncStorageShim.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/routeHandlerWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/sentryInitWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/serverComponentWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/constructTurbopackConfig.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/generateValueInjectionRules.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/util.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/webpack.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/buildTime.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/constants.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/deprecatedWebpackOptions.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObject.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectBundlerUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/tunnel.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/distDirRewriteFramesIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/wrapApiHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.client.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.server.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/distDirRewriteFramesIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/handleOnSpanStart.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/prepareSafeIdGeneratorContext.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelCronsMonitoring.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelQueuesMonitoring.js","../../../../../node_modules/.pnpm/atomic-sleep@1.0.0/node_modules/atomic-sleep/index.js","../../../../../node_modules/.pnpm/atomic-sleep@1.0.0/node_modules/atomic-sleep/package.json","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/package.json","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/browser.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/index.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/node.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/ms","../../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js","../../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@1.15.0/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/index.js","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/lib/register.js","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/index.js","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/lib/register.js","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/index.js","../../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/package.json","../../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js","../../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/@opentelemetry/api","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/LICENSE","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/index.edge.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/index.node.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/noto-sans-v27-latin-regular.ttf","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/resvg.wasm","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/satori/LICENSE","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/yoga.wasm","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/constants.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/is-error.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/runtime-reacts.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/package.json","../../../../../node_modules/.pnpm/node_modules/@opentelemetry/api","../../../../../node_modules/.pnpm/node_modules/@pinojs/redact","../../../../../node_modules/.pnpm/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/node_modules/debug","../../../../../node_modules/.pnpm/node_modules/has-flag","../../../../../node_modules/.pnpm/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/node_modules/ms","../../../../../node_modules/.pnpm/node_modules/on-exit-leak-free","../../../../../node_modules/.pnpm/node_modules/pino-std-serializers","../../../../../node_modules/.pnpm/node_modules/quick-format-unescaped","../../../../../node_modules/.pnpm/node_modules/real-require","../../../../../node_modules/.pnpm/node_modules/safe-stable-stringify","../../../../../node_modules/.pnpm/node_modules/sonic-boom","../../../../../node_modules/.pnpm/node_modules/supports-color","../../../../../node_modules/.pnpm/node_modules/thread-stream","../../../../../node_modules/.pnpm/on-exit-leak-free@2.1.2/node_modules/on-exit-leak-free/index.js","../../../../../node_modules/.pnpm/on-exit-leak-free@2.1.2/node_modules/on-exit-leak-free/package.json","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/index.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-helpers.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-proto.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-with-cause.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/req.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/res.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/package.json","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/@pinojs/redact","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/on-exit-leak-free","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino-std-serializers","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/file.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/caller.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/constants.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/deprecations.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/levels.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/meta.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/multistream.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/proto.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/redaction.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/symbols.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/time.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/tools.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/transport-stream.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/transport.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/worker.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/package.json","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/pino.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/quick-format-unescaped","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/safe-stable-stringify","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/sonic-boom","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/thread-stream","../../../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/index.js","../../../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/package.json","../../../../../node_modules/.pnpm/real-require@0.2.0/node_modules/real-require/package.json","../../../../../node_modules/.pnpm/real-require@0.2.0/node_modules/real-require/src/index.js","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/debug","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/index.js","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/package.json","../../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/index.js","../../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/package.json","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/LICENSE","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/README.md","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/bench.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/check.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/example.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/fixtures/firehose.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/index.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/package.json","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/destroy.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/end.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/flush-sync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/flush.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/fsync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/helper.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/minlength.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/mode.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/periodicflush.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/reopen.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/retry.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/sync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/write.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/types/tests/test.ts","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/has-flag","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/package.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/real-require","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/LICENSE","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/bench.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/eslint.config.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/index.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/indexes.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/wait.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/worker.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/package.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/base.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/bench.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/bundlers.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/close-on-gc.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/commonjs-fallback.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/context.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/create-and-exit.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/custom-worker.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/dir with spaces/test-package.zip","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/emit-event.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/end.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/error.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/esm.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/event.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/exit.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/get-context.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/helper.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/indexes.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/multibyte-chars.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/on-message.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/index.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/pkg.config.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/pkg.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/port.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/post-message.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/string-limit-2.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/string-limit.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/syntax-error.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/thread-management.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file-on-destroy.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file-on-final.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-next.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/transpiled.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-commonjs-default-export.zip","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-native.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-node-fallback.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts/to-file.ts","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts/transpile.sh","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/uncaughtException.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/unhandledRejection.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/yarnrc.yml","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/tsconfig.json","../../../../../node_modules/import-in-the-middle","../../../../../node_modules/next","../../../../../node_modules/pino","../../../../../node_modules/require-in-the-middle","../../../../node_modules/import-in-the-middle-138cd032e4b029f3","../../../../node_modules/import-in-the-middle-6ecbfda1283b1532","../../../../node_modules/pino-2e79642258e38174","../../../../node_modules/require-in-the-middle-a99415fa67232f7f","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_5e35a34a.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_f7a67094.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_68baf629.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_e2e05945.js","../../../chunks/ssr/3c3e1_next-intl_dist_esm_production_server_react-server_getConfig_8e5b989d.js","../../../chunks/ssr/468ab_next_b54e3ae0._.js","../../../chunks/ssr/468ab_next_c7821d87._.js","../../../chunks/ssr/468ab_next_dist_668db2a3._.js","../../../chunks/ssr/468ab_next_dist_6d1ec603._.js","../../../chunks/ssr/468ab_next_dist_9c02c43c._.js","../../../chunks/ssr/468ab_next_dist_a9fadb3f._.js","../../../chunks/ssr/468ab_next_dist_bc66fa15._.js","../../../chunks/ssr/468ab_next_dist_client_components_9ea24689._.js","../../../chunks/ssr/468ab_next_dist_client_components_builtin_forbidden_fcf22647.js","../../../chunks/ssr/468ab_next_dist_client_components_builtin_unauthorized_242673a5.js","../../../chunks/ssr/468ab_next_dist_d9f52090._.js","../../../chunks/ssr/468ab_next_dist_e98c316f._.js","../../../chunks/ssr/468ab_next_dist_esm_10bac804._.js","../../../chunks/ssr/5e5d0_@opentelemetry_api_build_esm_f7b039e6._.js","../../../chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_317a5e2b._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_51b27302._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_634cb413._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_88fed31f._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_929773f6._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_f2e70164._.js","../../../chunks/ssr/[externals]_next_dist_compiled_@vercel_og_index_node_055f47ab.js","../../../chunks/ssr/[externals]_node:inspector_7a4283c6._.js","../../../chunks/ssr/[root-of-the-server]__16d71f56._.js","../../../chunks/ssr/[root-of-the-server]__28a191f2._.js","../../../chunks/ssr/[root-of-the-server]__366a9ff8._.js","../../../chunks/ssr/[root-of-the-server]__411530ea._.js","../../../chunks/ssr/[root-of-the-server]__5bbfddd1._.js","../../../chunks/ssr/[root-of-the-server]__5bd1b04a._.js","../../../chunks/ssr/[root-of-the-server]__6bb30663._.js","../../../chunks/ssr/[root-of-the-server]__86ef5a1c._.js","../../../chunks/ssr/[root-of-the-server]__9aa0d618._.js","../../../chunks/ssr/[root-of-the-server]__9bfda315._.js","../../../chunks/ssr/[root-of-the-server]__9eff91eb._.js","../../../chunks/ssr/[root-of-the-server]__a1ab7840._.js","../../../chunks/ssr/[root-of-the-server]__bc75933a._.js","../../../chunks/ssr/[root-of-the-server]__f153a21f._.js","../../../chunks/ssr/[root-of-the-server]__f939d130._.js","../../../chunks/ssr/[root-of-the-server]__fbc63b72._.js","../../../chunks/ssr/[turbopack]_runtime.js","../../../chunks/ssr/_45bb404c._.js","../../../chunks/ssr/_49a7ffbe._.js","../../../chunks/ssr/_536bc82a._.js","../../../chunks/ssr/_6f66913b._.js","../../../chunks/ssr/_b76d0ab2._.js","../../../chunks/ssr/_c3cb4fd0._.js","../../../chunks/ssr/_df4aec0b._.js","../../../chunks/ssr/_f97b256a._.js","../../../chunks/ssr/_next-internal_server_app_[locale]_blog_page_actions_3e6bf887.js","../../../chunks/ssr/app_[locale]_blog_opengraph-image--metadata_6372a955.js","../../../chunks/ssr/app_[locale]_error_tsx_37c0341f._.js","../../../chunks/ssr/app_global-error_tsx_9170b7a0._.js","../../../chunks/ssr/components_1268b55f._.js","../../../chunks/ssr/components_4d1233ab._.js","../../../chunks/ssr/components_ui_utils_ts_f85ae7af._.js","../../../chunks/ssr/messages_de_json_56e8cde5._.js","../../../chunks/ssr/messages_en_json_a7997480._.js","../../../chunks/ssr/node_modules__pnpm_20ad9314._.js","../../../chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","../../../chunks/ssr/node_modules__pnpm_329a8f51._.js","../../../chunks/ssr/node_modules__pnpm_66399b09._.js","../../../chunks/ssr/node_modules__pnpm_8387bcd6._.js","../../../chunks/ssr/node_modules__pnpm_d28cabd9._.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file +{"version":1,"files":["../../../../../content/de/blog/moderne-verfahren-kabeltiefbau.mdx","../../../../../content/en/blog/modern-methods-civil-engineering.mdx","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/context.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/diag.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/metrics.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/propagation.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/trace.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/context.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/types.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/index.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/global-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/semver.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/Metric.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/context-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/span_kind.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/status.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/version.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/package.json","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/execAsync.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-bsd.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-darwin.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-linux.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-unsupported.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-win.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId.js","../../../../../node_modules/.pnpm/@pinojs+redact@0.4.0/node_modules/@pinojs/redact/index.js","../../../../../node_modules/.pnpm/@pinojs+redact@0.4.0/node_modules/@pinojs/redact/package.json","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/browserTracingIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/clientNormalizationIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/appRouterRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/isrRoutingTracing.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/nextRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/pagesRouterRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/parameterization.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/tunnelRoute.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/captureRequestError.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/debug-build.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/devErrorSymbolicationEventProcessor.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/getVercelEnv.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextNavigationErrorUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextSpanAttributes.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/_error.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentryVercelCrons.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapAppGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapDocumentGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapErrorGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetServerSidePropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetStaticPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapPageComponentWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/span-attributes-with-logic-attached.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/addHeadersAsAttributes.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/dropMiddlewareTunnelRequests.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isBuild.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isUseCacheFunction.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/nextSpan.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/responseEnd.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/setUrlProcessingMetadata.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/tracingUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/urls.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/wrapperUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/withServerActionInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapGenerationFunctionWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapMiddlewareWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapRouteHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapServerComponentWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/getBuildPluginOptions.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/handleRunAfterProductionCompile.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/componentAnnotationLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/moduleMetadataInjectionLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/prefixLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/valueInjectionLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/wrappingLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/manifest/createRouteManifest.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/polyfills/perf_hooks.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/apiWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/middlewareWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/pageWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/requestAsyncStorageShim.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/routeHandlerWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/sentryInitWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/serverComponentWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/constructTurbopackConfig.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/generateValueInjectionRules.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/util.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/webpack.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/buildTime.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/constants.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/deprecatedWebpackOptions.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObject.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectBundlerUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/tunnel.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/distDirRewriteFramesIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/wrapApiHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.client.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.server.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/distDirRewriteFramesIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/handleOnSpanStart.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/prepareSafeIdGeneratorContext.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelCronsMonitoring.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelQueuesMonitoring.js","../../../../../node_modules/.pnpm/atomic-sleep@1.0.0/node_modules/atomic-sleep/index.js","../../../../../node_modules/.pnpm/atomic-sleep@1.0.0/node_modules/atomic-sleep/package.json","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/package.json","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/browser.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/index.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/node.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/ms","../../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js","../../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@1.15.0/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/index.js","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/lib/register.js","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/index.js","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/lib/register.js","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/index.js","../../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/package.json","../../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js","../../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/@opentelemetry/api","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/LICENSE","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/index.edge.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/index.node.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/noto-sans-v27-latin-regular.ttf","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/resvg.wasm","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/satori/LICENSE","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/yoga.wasm","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/constants.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/is-error.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/runtime-reacts.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/package.json","../../../../../node_modules/.pnpm/node_modules/@opentelemetry/api","../../../../../node_modules/.pnpm/node_modules/@pinojs/redact","../../../../../node_modules/.pnpm/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/node_modules/debug","../../../../../node_modules/.pnpm/node_modules/has-flag","../../../../../node_modules/.pnpm/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/node_modules/ms","../../../../../node_modules/.pnpm/node_modules/on-exit-leak-free","../../../../../node_modules/.pnpm/node_modules/pino-std-serializers","../../../../../node_modules/.pnpm/node_modules/quick-format-unescaped","../../../../../node_modules/.pnpm/node_modules/real-require","../../../../../node_modules/.pnpm/node_modules/safe-stable-stringify","../../../../../node_modules/.pnpm/node_modules/sonic-boom","../../../../../node_modules/.pnpm/node_modules/supports-color","../../../../../node_modules/.pnpm/node_modules/thread-stream","../../../../../node_modules/.pnpm/on-exit-leak-free@2.1.2/node_modules/on-exit-leak-free/index.js","../../../../../node_modules/.pnpm/on-exit-leak-free@2.1.2/node_modules/on-exit-leak-free/package.json","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/index.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-helpers.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-proto.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-with-cause.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/req.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/res.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/package.json","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/@pinojs/redact","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/on-exit-leak-free","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino-std-serializers","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/file.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/caller.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/constants.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/deprecations.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/levels.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/meta.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/multistream.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/proto.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/redaction.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/symbols.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/time.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/tools.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/transport-stream.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/transport.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/worker.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/package.json","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/pino.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/quick-format-unescaped","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/safe-stable-stringify","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/sonic-boom","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/thread-stream","../../../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/index.js","../../../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/package.json","../../../../../node_modules/.pnpm/real-require@0.2.0/node_modules/real-require/package.json","../../../../../node_modules/.pnpm/real-require@0.2.0/node_modules/real-require/src/index.js","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/debug","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/index.js","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/package.json","../../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/index.js","../../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/package.json","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/LICENSE","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/README.md","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/bench.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/check.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/example.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/fixtures/firehose.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/index.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/package.json","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/destroy.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/end.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/flush-sync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/flush.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/fsync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/helper.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/minlength.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/mode.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/periodicflush.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/reopen.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/retry.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/sync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/write.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/types/tests/test.ts","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/has-flag","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/package.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/real-require","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/LICENSE","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/bench.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/eslint.config.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/index.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/indexes.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/wait.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/worker.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/package.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/base.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/bench.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/bundlers.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/close-on-gc.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/commonjs-fallback.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/context.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/create-and-exit.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/custom-worker.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/dir with spaces/test-package.zip","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/emit-event.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/end.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/error.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/esm.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/event.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/exit.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/get-context.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/helper.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/indexes.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/multibyte-chars.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/on-message.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/index.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/pkg.config.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/pkg.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/port.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/post-message.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/string-limit-2.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/string-limit.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/syntax-error.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/thread-management.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file-on-destroy.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file-on-final.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-next.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/transpiled.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-commonjs-default-export.zip","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-native.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-node-fallback.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts/to-file.ts","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts/transpile.sh","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/uncaughtException.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/unhandledRejection.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/yarnrc.yml","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/tsconfig.json","../../../../../node_modules/import-in-the-middle","../../../../../node_modules/next","../../../../../node_modules/pino","../../../../../node_modules/require-in-the-middle","../../../../node_modules/import-in-the-middle-138cd032e4b029f3","../../../../node_modules/import-in-the-middle-6ecbfda1283b1532","../../../../node_modules/pino-2e79642258e38174","../../../../node_modules/require-in-the-middle-a99415fa67232f7f","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_5e35a34a.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_f7a67094.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_68baf629.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_e2e05945.js","../../../chunks/ssr/3c3e1_next-intl_dist_esm_production_server_react-server_getConfig_8e5b989d.js","../../../chunks/ssr/468ab_next_b54e3ae0._.js","../../../chunks/ssr/468ab_next_c7821d87._.js","../../../chunks/ssr/468ab_next_dist_668db2a3._.js","../../../chunks/ssr/468ab_next_dist_9c02c43c._.js","../../../chunks/ssr/468ab_next_dist_a9fadb3f._.js","../../../chunks/ssr/468ab_next_dist_client_components_9ea24689._.js","../../../chunks/ssr/468ab_next_dist_client_components_builtin_forbidden_fcf22647.js","../../../chunks/ssr/468ab_next_dist_client_components_builtin_unauthorized_242673a5.js","../../../chunks/ssr/468ab_next_dist_d9f52090._.js","../../../chunks/ssr/468ab_next_dist_e98c316f._.js","../../../chunks/ssr/468ab_next_dist_esm_10bac804._.js","../../../chunks/ssr/5e5d0_@opentelemetry_api_build_esm_f7b039e6._.js","../../../chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_317a5e2b._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_51b27302._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_634cb413._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_88fed31f._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_929773f6._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_f2e70164._.js","../../../chunks/ssr/[externals]_next_dist_compiled_@vercel_og_index_node_055f47ab.js","../../../chunks/ssr/[externals]_node:inspector_7a4283c6._.js","../../../chunks/ssr/[root-of-the-server]__047498e4._.js","../../../chunks/ssr/[root-of-the-server]__16d71f56._.js","../../../chunks/ssr/[root-of-the-server]__2da52317._.js","../../../chunks/ssr/[root-of-the-server]__34977423._.js","../../../chunks/ssr/[root-of-the-server]__366a9ff8._.js","../../../chunks/ssr/[root-of-the-server]__411530ea._.js","../../../chunks/ssr/[root-of-the-server]__5bd1b04a._.js","../../../chunks/ssr/[root-of-the-server]__63a582be._.js","../../../chunks/ssr/[root-of-the-server]__7fda9c9f._.js","../../../chunks/ssr/[root-of-the-server]__86ef5a1c._.js","../../../chunks/ssr/[root-of-the-server]__9bfda315._.js","../../../chunks/ssr/[root-of-the-server]__9eff91eb._.js","../../../chunks/ssr/[root-of-the-server]__a1ab7840._.js","../../../chunks/ssr/[root-of-the-server]__bc75933a._.js","../../../chunks/ssr/[root-of-the-server]__d3969a9f._.js","../../../chunks/ssr/[root-of-the-server]__fbc63b72._.js","../../../chunks/ssr/[turbopack]_runtime.js","../../../chunks/ssr/_16003e4d._.js","../../../chunks/ssr/_6189c8b5._.js","../../../chunks/ssr/_6f66913b._.js","../../../chunks/ssr/_7ce8a06e._.js","../../../chunks/ssr/_b76d0ab2._.js","../../../chunks/ssr/_c3cb4fd0._.js","../../../chunks/ssr/_d825b83f._.js","../../../chunks/ssr/_df4aec0b._.js","../../../chunks/ssr/_f97b256a._.js","../../../chunks/ssr/_next-internal_server_app_[locale]_blog_page_actions_3e6bf887.js","../../../chunks/ssr/app_[locale]_blog_opengraph-image--metadata_6372a955.js","../../../chunks/ssr/app_[locale]_error_tsx_37c0341f._.js","../../../chunks/ssr/app_global-error_tsx_9170b7a0._.js","../../../chunks/ssr/components_5d55bae9._.js","../../../chunks/ssr/components_ui_6a2a3715._.js","../../../chunks/ssr/messages_de_json_56e8cde5._.js","../../../chunks/ssr/messages_en_json_a7997480._.js","../../../chunks/ssr/node_modules__pnpm_20ad9314._.js","../../../chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","../../../chunks/ssr/node_modules__pnpm_329a8f51._.js","../../../chunks/ssr/node_modules__pnpm_66399b09._.js","../../../chunks/ssr/node_modules__pnpm_8387bcd6._.js","../../../chunks/ssr/node_modules__pnpm_d28cabd9._.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/.next/server/app/[locale]/blog/page/build-manifest.json b/.next/server/app/[locale]/blog/page/build-manifest.json index 436cd66d8..4482423a4 100644 --- a/.next/server/app/[locale]/blog/page/build-manifest.json +++ b/.next/server/app/[locale]/blog/page/build-manifest.json @@ -7,11 +7,11 @@ "lowPriorityFiles": [], "rootMainFiles": [ "static/chunks/c68fc807b9365f18.js", - "static/chunks/f51290069c969e8a.js", + "static/chunks/b263a60573bfd155.js", "static/chunks/29297b02a438a66e.js", "static/chunks/fd7b24483a212e2f.js", - "static/chunks/b62c08cc490fef16.js", - "static/chunks/turbopack-e5b78b2a7c8f1f21.js" + "static/chunks/b6898185462c2fee.js", + "static/chunks/turbopack-721eb9b8c3f79e29.js" ], "pages": {}, "ampFirstPages": [] diff --git a/.next/server/app/[locale]/blog/page/react-loadable-manifest.json b/.next/server/app/[locale]/blog/page/react-loadable-manifest.json index 313542e4d..a0b34aa9d 100644 --- a/.next/server/app/[locale]/blog/page/react-loadable-manifest.json +++ b/.next/server/app/[locale]/blog/page/react-loadable-manifest.json @@ -2,30 +2,29 @@ "565071": { "id": 565071, "files": [ - "static/chunks/a6d16f278f687ad0.js", + "static/chunks/d62bf387414e0748.js", "static/chunks/0ff158dd58fe47c8.js" ] }, "248785": { "id": 248785, "files": [ - "static/chunks/1fa1fc1d8df71347.js", + "static/chunks/ff6db6d7946b9f90.js", "static/chunks/0ff158dd58fe47c8.js" ] }, "950648": { "id": 950648, "files": [ - "static/chunks/d578f418b9661eaf.js", + "static/chunks/844db355c06db065.js", "static/chunks/0ff158dd58fe47c8.js" ] }, "566137": { "id": 566137, "files": [ - "static/chunks/0a765fb53d81ccec.js", - "static/chunks/c9e4534297dc4d54.js", - "static/chunks/9c4a690cd48e1298.js" + "static/chunks/9c4a690cd48e1298.js", + "static/chunks/c9e4534297dc4d54.js" ] } } \ No newline at end of file diff --git a/.next/server/app/[locale]/blog/page_client-reference-manifest.js b/.next/server/app/[locale]/blog/page_client-reference-manifest.js index c05e7f63c..88e47986d 100644 --- a/.next/server/app/[locale]/blog/page_client-reference-manifest.js +++ b/.next/server/app/[locale]/blog/page_client-reference-manifest.js @@ -1,2 +1,2 @@ globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; -globalThis.__RSC_MANIFEST["/[locale]/blog/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":666284,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":666284,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":29584,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":29584,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":30965,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":30965,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":966591,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":966591,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":3420,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3420,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":489266,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":489266,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":67067,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":67067,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/app/global-error.tsx ":{"id":253348,"name":"*","chunks":["/_next/static/chunks/7bc980684698d6e7.js","/_next/static/chunks/5336d64d11e7435f.js"],"async":false},"[project]/app/global-error.tsx":{"id":253348,"name":"*","chunks":["/_next/static/chunks/7bc980684698d6e7.js","/_next/static/chunks/5336d64d11e7435f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/app-dir/link.js ":{"id":184868,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/1f1682674618b971.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/app-dir/link.js":{"id":184868,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/1f1682674618b971.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/image-component.js ":{"id":702050,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/1f1682674618b971.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/image-component.js":{"id":702050,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/1f1682674618b971.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/layout/LanguageSwitcher.tsx ":{"id":287564,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/layout/LanguageSwitcher.tsx":{"id":287564,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/layout/Header.tsx ":{"id":993983,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/layout/Header.tsx":{"id":993983,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/SkipLink.tsx ":{"id":814508,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/SkipLink.tsx":{"id":814508,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/analytics/AnalyticsShell.tsx ":{"id":531518,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/analytics/AnalyticsShell.tsx":{"id":531518,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/node_modules/.pnpm/next-intl@4.9.0_@swc+helpers@0.5.20_next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js ":{"id":600023,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/node_modules/.pnpm/next-intl@4.9.0_@swc+helpers@0.5.20_next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js":{"id":600023,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/FeedbackClientWrapper.tsx ":{"id":689647,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/FeedbackClientWrapper.tsx":{"id":689647,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/app/[locale]/error.tsx ":{"id":309974,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/4e4487a1c38504b3.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/app/[locale]/error.tsx":{"id":309974,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/4e4487a1c38504b3.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/Scribble.tsx ":{"id":224038,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/Scribble.tsx":{"id":224038,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/analytics/ClientNotFoundTracker.tsx ":{"id":555331,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/analytics/ClientNotFoundTracker.tsx":{"id":555331,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/Reveal.tsx ":{"id":759095,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/1f1682674618b971.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/Reveal.tsx":{"id":759095,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/1f1682674618b971.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/blog/BlogPaginationKeyboardObserver.tsx ":{"id":783488,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/1f1682674618b971.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/blog/BlogPaginationKeyboardObserver.tsx":{"id":783488,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/1f1682674618b971.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false}},"ssrModuleMapping":{"666284":{"*":{"id":164732,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"29584":{"*":{"id":743976,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"30965":{"*":{"id":46550,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"966591":{"*":{"id":594180,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"3420":{"*":{"id":585766,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"489266":{"*":{"id":471584,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"67067":{"*":{"id":561162,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"253348":{"*":{"id":303171,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__411530ea._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js"],"async":false}},"184868":{"*":{"id":841757,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/components_1268b55f._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"702050":{"*":{"id":739969,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/components_1268b55f._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"287564":{"*":{"id":81870,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"993983":{"*":{"id":581631,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"814508":{"*":{"id":909381,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"531518":{"*":{"id":905651,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"600023":{"*":{"id":650766,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"689647":{"*":{"id":894447,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"309974":{"*":{"id":497627,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__5bbfddd1._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"224038":{"*":{"id":991320,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__28a191f2._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"555331":{"*":{"id":868513,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__28a191f2._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"759095":{"*":{"id":188457,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/components_1268b55f._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"783488":{"*":{"id":281104,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/components_1268b55f._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"666284":{"*":{"id":551417,"name":"*","chunks":[],"async":false}},"29584":{"*":{"id":536434,"name":"*","chunks":[],"async":false}},"30965":{"*":{"id":387103,"name":"*","chunks":[],"async":false}},"966591":{"*":{"id":580884,"name":"*","chunks":[],"async":false}},"3420":{"*":{"id":504014,"name":"*","chunks":[],"async":false}},"489266":{"*":{"id":726190,"name":"*","chunks":[],"async":false}},"67067":{"*":{"id":76412,"name":"*","chunks":[],"async":false}},"253348":{"*":{"id":153128,"name":"*","chunks":[],"async":false}},"184868":{"*":{"id":917929,"name":"*","chunks":[],"async":false}},"702050":{"*":{"id":986834,"name":"*","chunks":[],"async":false}},"287564":{"*":{"id":168713,"name":"*","chunks":[],"async":false}},"993983":{"*":{"id":625244,"name":"*","chunks":[],"async":false}},"814508":{"*":{"id":566663,"name":"*","chunks":[],"async":false}},"531518":{"*":{"id":292727,"name":"*","chunks":[],"async":false}},"600023":{"*":{"id":963034,"name":"*","chunks":[],"async":false}},"689647":{"*":{"id":679583,"name":"*","chunks":[],"async":false}},"309974":{"*":{"id":363934,"name":"*","chunks":[],"async":false}},"224038":{"*":{"id":404449,"name":"*","chunks":[],"async":false}},"555331":{"*":{"id":588684,"name":"*","chunks":[],"async":false}},"759095":{"*":{"id":479251,"name":"*","chunks":[],"async":false}},"783488":{"*":{"id":43482,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/app/[locale]/opengraph-image--metadata":[],"[project]/app/global-error":[],"[project]/app/[locale]/layout":[{"path":"static/chunks/928be433d65b40cc.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/error":[{"path":"static/chunks/928be433d65b40cc.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/not-found":[{"path":"static/chunks/928be433d65b40cc.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/blog/page":[{"path":"static/chunks/928be433d65b40cc.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}]},"entryJSFiles":{"[project]/app/[locale]/opengraph-image--metadata":["static/chunks/93736546a7cd8cd8.js","static/chunks/870a2c2978ab4440.js"],"[project]/app/global-error":["static/chunks/7bc980684698d6e7.js","static/chunks/5336d64d11e7435f.js"],"[project]/app/[locale]/layout":["static/chunks/76668d2ab61cd4a8.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b786cbc2e9238523.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/eeabc9d46e43f022.js"],"[project]/app/[locale]/error":["static/chunks/76668d2ab61cd4a8.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b786cbc2e9238523.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/eeabc9d46e43f022.js","static/chunks/4e4487a1c38504b3.js","static/chunks/0ff158dd58fe47c8.js","static/chunks/b550ef5d0ebc89bc.js"],"[project]/app/[locale]/not-found":["static/chunks/76668d2ab61cd4a8.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b786cbc2e9238523.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/eeabc9d46e43f022.js","static/chunks/a86ed0e5ea629175.js","static/chunks/0ff158dd58fe47c8.js","static/chunks/b550ef5d0ebc89bc.js"],"[project]/app/[locale]/blog/page":["static/chunks/76668d2ab61cd4a8.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b786cbc2e9238523.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/eeabc9d46e43f022.js","static/chunks/1f1682674618b971.js","static/chunks/b550ef5d0ebc89bc.js"]}} +globalThis.__RSC_MANIFEST["/[locale]/blog/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":666284,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":666284,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":29584,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":29584,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":30965,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":30965,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":966591,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":966591,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":3420,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3420,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":489266,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":489266,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":67067,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":67067,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/app/global-error.tsx ":{"id":253348,"name":"*","chunks":["/_next/static/chunks/7bc980684698d6e7.js","/_next/static/chunks/5336d64d11e7435f.js"],"async":false},"[project]/app/global-error.tsx":{"id":253348,"name":"*","chunks":["/_next/static/chunks/7bc980684698d6e7.js","/_next/static/chunks/5336d64d11e7435f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/app-dir/link.js ":{"id":184868,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/981b2323ce5143ef.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/app-dir/link.js":{"id":184868,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/981b2323ce5143ef.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/image-component.js ":{"id":702050,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/981b2323ce5143ef.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/image-component.js":{"id":702050,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/981b2323ce5143ef.js"],"async":false},"[project]/components/layout/LanguageSwitcher.tsx ":{"id":287564,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/layout/LanguageSwitcher.tsx":{"id":287564,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/layout/Header.tsx ":{"id":993983,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/layout/Header.tsx":{"id":993983,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/SkipLink.tsx ":{"id":814508,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/SkipLink.tsx":{"id":814508,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/analytics/AnalyticsShell.tsx ":{"id":531518,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/analytics/AnalyticsShell.tsx":{"id":531518,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/node_modules/.pnpm/next-intl@4.9.0_@swc+helpers@0.5.20_next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js ":{"id":600023,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/node_modules/.pnpm/next-intl@4.9.0_@swc+helpers@0.5.20_next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js":{"id":600023,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/FeedbackClientWrapper.tsx ":{"id":689647,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/FeedbackClientWrapper.tsx":{"id":689647,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/app/[locale]/error.tsx ":{"id":309974,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b02fdfb08ad720b0.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/app/[locale]/error.tsx":{"id":309974,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b02fdfb08ad720b0.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/Scribble.tsx ":{"id":224038,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/Scribble.tsx":{"id":224038,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/analytics/ClientNotFoundTracker.tsx ":{"id":555331,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/analytics/ClientNotFoundTracker.tsx":{"id":555331,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/Reveal.tsx ":{"id":759095,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/981b2323ce5143ef.js"],"async":false},"[project]/components/Reveal.tsx":{"id":759095,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/981b2323ce5143ef.js"],"async":false},"[project]/components/blog/BlogPaginationKeyboardObserver.tsx ":{"id":783488,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/981b2323ce5143ef.js"],"async":false},"[project]/components/blog/BlogPaginationKeyboardObserver.tsx":{"id":783488,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/981b2323ce5143ef.js"],"async":false}},"ssrModuleMapping":{"666284":{"*":{"id":164732,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"29584":{"*":{"id":743976,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"30965":{"*":{"id":46550,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"966591":{"*":{"id":594180,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"3420":{"*":{"id":585766,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"489266":{"*":{"id":471584,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"67067":{"*":{"id":561162,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"253348":{"*":{"id":303171,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__411530ea._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js"],"async":false}},"184868":{"*":{"id":841757,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/components_5d55bae9._.js"],"async":false}},"702050":{"*":{"id":739969,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/components_5d55bae9._.js"],"async":false}},"287564":{"*":{"id":81870,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"993983":{"*":{"id":581631,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"814508":{"*":{"id":909381,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"531518":{"*":{"id":905651,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"600023":{"*":{"id":650766,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"689647":{"*":{"id":894447,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"309974":{"*":{"id":497627,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__34977423._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"224038":{"*":{"id":991320,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__63a582be._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"555331":{"*":{"id":868513,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__63a582be._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"759095":{"*":{"id":188457,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/components_5d55bae9._.js"],"async":false}},"783488":{"*":{"id":281104,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/components_5d55bae9._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"666284":{"*":{"id":551417,"name":"*","chunks":[],"async":false}},"29584":{"*":{"id":536434,"name":"*","chunks":[],"async":false}},"30965":{"*":{"id":387103,"name":"*","chunks":[],"async":false}},"966591":{"*":{"id":580884,"name":"*","chunks":[],"async":false}},"3420":{"*":{"id":504014,"name":"*","chunks":[],"async":false}},"489266":{"*":{"id":726190,"name":"*","chunks":[],"async":false}},"67067":{"*":{"id":76412,"name":"*","chunks":[],"async":false}},"253348":{"*":{"id":153128,"name":"*","chunks":[],"async":false}},"184868":{"*":{"id":917929,"name":"*","chunks":[],"async":false}},"702050":{"*":{"id":986834,"name":"*","chunks":[],"async":false}},"287564":{"*":{"id":168713,"name":"*","chunks":[],"async":false}},"993983":{"*":{"id":625244,"name":"*","chunks":[],"async":false}},"814508":{"*":{"id":566663,"name":"*","chunks":[],"async":false}},"531518":{"*":{"id":292727,"name":"*","chunks":[],"async":false}},"600023":{"*":{"id":963034,"name":"*","chunks":[],"async":false}},"689647":{"*":{"id":679583,"name":"*","chunks":[],"async":false}},"309974":{"*":{"id":363934,"name":"*","chunks":[],"async":false}},"224038":{"*":{"id":404449,"name":"*","chunks":[],"async":false}},"555331":{"*":{"id":588684,"name":"*","chunks":[],"async":false}},"759095":{"*":{"id":479251,"name":"*","chunks":[],"async":false}},"783488":{"*":{"id":43482,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/app/[locale]/opengraph-image--metadata":[],"[project]/app/global-error":[],"[project]/app/[locale]/layout":[{"path":"static/chunks/3f652f1a7128a03a.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/error":[{"path":"static/chunks/3f652f1a7128a03a.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/not-found":[{"path":"static/chunks/3f652f1a7128a03a.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/blog/page":[{"path":"static/chunks/3f652f1a7128a03a.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}]},"entryJSFiles":{"[project]/app/[locale]/opengraph-image--metadata":["static/chunks/93736546a7cd8cd8.js","static/chunks/870a2c2978ab4440.js"],"[project]/app/global-error":["static/chunks/7bc980684698d6e7.js","static/chunks/5336d64d11e7435f.js"],"[project]/app/[locale]/layout":["static/chunks/6640bcd504ed2815.js","static/chunks/eeabc9d46e43f022.js","static/chunks/595f4cd305cd0088.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/fac3383571a5e891.js","static/chunks/ad1b4e551db227fe.js"],"[project]/app/[locale]/error":["static/chunks/6640bcd504ed2815.js","static/chunks/eeabc9d46e43f022.js","static/chunks/595f4cd305cd0088.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/fac3383571a5e891.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b02fdfb08ad720b0.js","static/chunks/0ff158dd58fe47c8.js"],"[project]/app/[locale]/not-found":["static/chunks/6640bcd504ed2815.js","static/chunks/eeabc9d46e43f022.js","static/chunks/595f4cd305cd0088.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/fac3383571a5e891.js","static/chunks/ad1b4e551db227fe.js","static/chunks/e91fc49c513620bc.js","static/chunks/0ff158dd58fe47c8.js"],"[project]/app/[locale]/blog/page":["static/chunks/6640bcd504ed2815.js","static/chunks/eeabc9d46e43f022.js","static/chunks/595f4cd305cd0088.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/fac3383571a5e891.js","static/chunks/ad1b4e551db227fe.js","static/chunks/981b2323ce5143ef.js"]}} diff --git a/.next/server/app/[locale]/contact/page.js b/.next/server/app/[locale]/contact/page.js index ff0eb89ff..bb7246ec8 100644 --- a/.next/server/app/[locale]/contact/page.js +++ b/.next/server/app/[locale]/contact/page.js @@ -6,7 +6,7 @@ R.c("server/chunks/ssr/[root-of-the-server]__5bd1b04a._.js") R.c("server/chunks/ssr/5e5d0_@opentelemetry_api_build_esm_f7b039e6._.js") R.c("server/chunks/ssr/468ab_next_dist_d9f52090._.js") R.c("server/chunks/ssr/468ab_next_dist_e98c316f._.js") -R.c("server/chunks/ssr/[root-of-the-server]__f153a21f._.js") +R.c("server/chunks/ssr/[root-of-the-server]__2da52317._.js") R.c("server/chunks/ssr/468ab_next_dist_668db2a3._.js") R.c("server/chunks/ssr/node_modules__pnpm_20ad9314._.js") R.c("server/chunks/ssr/3c3e1_next-intl_dist_esm_production_server_react-server_getConfig_8e5b989d.js") @@ -18,13 +18,13 @@ R.c("server/chunks/ssr/app_global-error_tsx_9170b7a0._.js") R.c("server/chunks/ssr/468ab_next_dist_client_components_9ea24689._.js") R.c("server/chunks/ssr/468ab_next_dist_client_components_builtin_forbidden_fcf22647.js") R.c("server/chunks/ssr/468ab_next_dist_client_components_builtin_unauthorized_242673a5.js") -R.c("server/chunks/ssr/_7a317879._.js") -R.c("server/chunks/ssr/_536bc82a._.js") +R.c("server/chunks/ssr/_c364a7fb._.js") +R.c("server/chunks/ssr/_6189c8b5._.js") R.c("server/chunks/ssr/[root-of-the-server]__bc75933a._.js") R.c("server/chunks/ssr/_df4aec0b._.js") R.c("server/chunks/ssr/app_[locale]_error_tsx_37c0341f._.js") -R.c("server/chunks/ssr/_49a7ffbe._.js") -R.c("server/chunks/ssr/components_4d1233ab._.js") +R.c("server/chunks/ssr/_d825b83f._.js") +R.c("server/chunks/ssr/components_ui_6a2a3715._.js") R.c("server/chunks/ssr/[root-of-the-server]__99789462._.js") R.c("server/chunks/ssr/[root-of-the-server]__3964fc56._.js") R.m(391354) diff --git a/.next/server/app/[locale]/contact/page.js.nft.json b/.next/server/app/[locale]/contact/page.js.nft.json index fdfc290de..7a3383a65 100644 --- a/.next/server/app/[locale]/contact/page.js.nft.json +++ b/.next/server/app/[locale]/contact/page.js.nft.json @@ -1 +1 @@ -{"version":1,"files":["../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/context.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/diag.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/metrics.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/propagation.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/trace.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/context.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/types.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/index.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/global-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/semver.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/Metric.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/context-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/span_kind.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/status.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/version.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/package.json","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/execAsync.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-bsd.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-darwin.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-linux.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-unsupported.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-win.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId.js","../../../../../node_modules/.pnpm/@pinojs+redact@0.4.0/node_modules/@pinojs/redact/index.js","../../../../../node_modules/.pnpm/@pinojs+redact@0.4.0/node_modules/@pinojs/redact/package.json","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/browserTracingIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/clientNormalizationIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/appRouterRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/isrRoutingTracing.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/nextRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/pagesRouterRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/parameterization.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/tunnelRoute.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/captureRequestError.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/debug-build.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/devErrorSymbolicationEventProcessor.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/getVercelEnv.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextNavigationErrorUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextSpanAttributes.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/_error.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentryVercelCrons.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapAppGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapDocumentGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapErrorGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetServerSidePropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetStaticPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapPageComponentWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/span-attributes-with-logic-attached.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/addHeadersAsAttributes.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/dropMiddlewareTunnelRequests.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isBuild.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isUseCacheFunction.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/nextSpan.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/responseEnd.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/setUrlProcessingMetadata.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/tracingUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/urls.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/wrapperUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/withServerActionInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapGenerationFunctionWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapMiddlewareWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapRouteHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapServerComponentWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/getBuildPluginOptions.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/handleRunAfterProductionCompile.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/componentAnnotationLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/moduleMetadataInjectionLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/prefixLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/valueInjectionLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/wrappingLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/manifest/createRouteManifest.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/polyfills/perf_hooks.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/apiWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/middlewareWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/pageWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/requestAsyncStorageShim.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/routeHandlerWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/sentryInitWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/serverComponentWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/constructTurbopackConfig.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/generateValueInjectionRules.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/util.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/webpack.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/buildTime.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/constants.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/deprecatedWebpackOptions.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObject.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectBundlerUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/tunnel.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/distDirRewriteFramesIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/wrapApiHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.client.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.server.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/distDirRewriteFramesIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/handleOnSpanStart.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/prepareSafeIdGeneratorContext.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelCronsMonitoring.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelQueuesMonitoring.js","../../../../../node_modules/.pnpm/atomic-sleep@1.0.0/node_modules/atomic-sleep/index.js","../../../../../node_modules/.pnpm/atomic-sleep@1.0.0/node_modules/atomic-sleep/package.json","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/package.json","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/browser.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/index.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/node.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/ms","../../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js","../../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@1.15.0/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/index.js","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/lib/register.js","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/index.js","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/lib/register.js","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/index.js","../../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/package.json","../../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js","../../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/@opentelemetry/api","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/LICENSE","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/index.edge.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/index.node.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/noto-sans-v27-latin-regular.ttf","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/resvg.wasm","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/satori/LICENSE","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/yoga.wasm","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/constants.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/is-error.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/runtime-reacts.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/package.json","../../../../../node_modules/.pnpm/node_modules/@opentelemetry/api","../../../../../node_modules/.pnpm/node_modules/@pinojs/redact","../../../../../node_modules/.pnpm/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/node_modules/debug","../../../../../node_modules/.pnpm/node_modules/has-flag","../../../../../node_modules/.pnpm/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/node_modules/ms","../../../../../node_modules/.pnpm/node_modules/on-exit-leak-free","../../../../../node_modules/.pnpm/node_modules/pino-std-serializers","../../../../../node_modules/.pnpm/node_modules/quick-format-unescaped","../../../../../node_modules/.pnpm/node_modules/real-require","../../../../../node_modules/.pnpm/node_modules/safe-stable-stringify","../../../../../node_modules/.pnpm/node_modules/sonic-boom","../../../../../node_modules/.pnpm/node_modules/supports-color","../../../../../node_modules/.pnpm/node_modules/thread-stream","../../../../../node_modules/.pnpm/on-exit-leak-free@2.1.2/node_modules/on-exit-leak-free/index.js","../../../../../node_modules/.pnpm/on-exit-leak-free@2.1.2/node_modules/on-exit-leak-free/package.json","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/index.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-helpers.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-proto.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-with-cause.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/req.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/res.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/package.json","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/@pinojs/redact","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/on-exit-leak-free","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino-std-serializers","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/file.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/caller.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/constants.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/deprecations.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/levels.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/meta.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/multistream.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/proto.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/redaction.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/symbols.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/time.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/tools.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/transport-stream.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/transport.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/worker.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/package.json","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/pino.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/quick-format-unescaped","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/safe-stable-stringify","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/sonic-boom","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/thread-stream","../../../../../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/package.json","../../../../../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/html.mjs","../../../../../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/standalone.mjs","../../../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/index.js","../../../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/package.json","../../../../../node_modules/.pnpm/real-require@0.2.0/node_modules/real-require/package.json","../../../../../node_modules/.pnpm/real-require@0.2.0/node_modules/real-require/src/index.js","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/debug","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/index.js","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/package.json","../../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/index.js","../../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/package.json","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/LICENSE","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/README.md","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/bench.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/check.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/example.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/fixtures/firehose.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/index.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/package.json","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/destroy.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/end.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/flush-sync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/flush.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/fsync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/helper.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/minlength.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/mode.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/periodicflush.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/reopen.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/retry.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/sync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/write.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/types/tests/test.ts","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/has-flag","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/package.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/real-require","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/LICENSE","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/bench.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/eslint.config.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/index.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/indexes.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/wait.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/worker.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/package.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/base.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/bench.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/bundlers.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/close-on-gc.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/commonjs-fallback.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/context.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/create-and-exit.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/custom-worker.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/dir with spaces/test-package.zip","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/emit-event.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/end.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/error.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/esm.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/event.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/exit.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/get-context.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/helper.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/indexes.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/multibyte-chars.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/on-message.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/index.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/pkg.config.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/pkg.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/port.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/post-message.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/string-limit-2.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/string-limit.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/syntax-error.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/thread-management.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file-on-destroy.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file-on-final.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-next.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/transpiled.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-commonjs-default-export.zip","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-native.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-node-fallback.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts/to-file.ts","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts/transpile.sh","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/uncaughtException.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/unhandledRejection.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/yarnrc.yml","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/tsconfig.json","../../../../../node_modules/import-in-the-middle","../../../../../node_modules/next","../../../../../node_modules/pino","../../../../../node_modules/require-in-the-middle","../../../../node_modules/import-in-the-middle-138cd032e4b029f3","../../../../node_modules/import-in-the-middle-6ecbfda1283b1532","../../../../node_modules/pino-2e79642258e38174","../../../../node_modules/prettier-6252915918e48d75","../../../../node_modules/require-in-the-middle-a99415fa67232f7f","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_5e35a34a.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_f7a67094.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_68baf629.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_e2e05945.js","../../../chunks/ssr/3c3e1_next-intl_dist_esm_production_server_react-server_getConfig_8e5b989d.js","../../../chunks/ssr/468ab_next_b54e3ae0._.js","../../../chunks/ssr/468ab_next_c7821d87._.js","../../../chunks/ssr/468ab_next_dist_668db2a3._.js","../../../chunks/ssr/468ab_next_dist_6d1ec603._.js","../../../chunks/ssr/468ab_next_dist_9c02c43c._.js","../../../chunks/ssr/468ab_next_dist_a9fadb3f._.js","../../../chunks/ssr/468ab_next_dist_bc66fa15._.js","../../../chunks/ssr/468ab_next_dist_client_components_9ea24689._.js","../../../chunks/ssr/468ab_next_dist_client_components_builtin_forbidden_fcf22647.js","../../../chunks/ssr/468ab_next_dist_client_components_builtin_unauthorized_242673a5.js","../../../chunks/ssr/468ab_next_dist_compiled_b9b2ac32._.js","../../../chunks/ssr/468ab_next_dist_d9f52090._.js","../../../chunks/ssr/468ab_next_dist_e98c316f._.js","../../../chunks/ssr/468ab_next_dist_esm_10bac804._.js","../../../chunks/ssr/5e5d0_@opentelemetry_api_build_esm_f7b039e6._.js","../../../chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_317a5e2b._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_51b27302._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_634cb413._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_88fed31f._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_929773f6._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_f2e70164._.js","../../../chunks/ssr/[externals]_next_dist_compiled_@vercel_og_index_node_055f47ab.js","../../../chunks/ssr/[externals]_node:inspector_7a4283c6._.js","../../../chunks/ssr/[root-of-the-server]__16d71f56._.js","../../../chunks/ssr/[root-of-the-server]__28a191f2._.js","../../../chunks/ssr/[root-of-the-server]__366a9ff8._.js","../../../chunks/ssr/[root-of-the-server]__3964fc56._.js","../../../chunks/ssr/[root-of-the-server]__411530ea._.js","../../../chunks/ssr/[root-of-the-server]__5bbfddd1._.js","../../../chunks/ssr/[root-of-the-server]__5bd1b04a._.js","../../../chunks/ssr/[root-of-the-server]__6bb30663._.js","../../../chunks/ssr/[root-of-the-server]__99789462._.js","../../../chunks/ssr/[root-of-the-server]__9aa0d618._.js","../../../chunks/ssr/[root-of-the-server]__9bfda315._.js","../../../chunks/ssr/[root-of-the-server]__9eff91eb._.js","../../../chunks/ssr/[root-of-the-server]__b17bd572._.js","../../../chunks/ssr/[root-of-the-server]__bc75933a._.js","../../../chunks/ssr/[root-of-the-server]__bc83295f._.js","../../../chunks/ssr/[root-of-the-server]__e31a84e6._.js","../../../chunks/ssr/[root-of-the-server]__eee4ab8a._.js","../../../chunks/ssr/[root-of-the-server]__f153a21f._.js","../../../chunks/ssr/[root-of-the-server]__f939d130._.js","../../../chunks/ssr/[root-of-the-server]__fbc63b72._.js","../../../chunks/ssr/[turbopack]_runtime.js","../../../chunks/ssr/_49a7ffbe._.js","../../../chunks/ssr/_536bc82a._.js","../../../chunks/ssr/_6f66913b._.js","../../../chunks/ssr/_7a317879._.js","../../../chunks/ssr/_9867cab0._.js","../../../chunks/ssr/_b76d0ab2._.js","../../../chunks/ssr/_c3cb4fd0._.js","../../../chunks/ssr/_df4aec0b._.js","../../../chunks/ssr/app_[locale]_contact_opengraph-image--metadata_7a65ad7f.js","../../../chunks/ssr/app_[locale]_error_tsx_37c0341f._.js","../../../chunks/ssr/app_global-error_tsx_9170b7a0._.js","../../../chunks/ssr/components_4d1233ab._.js","../../../chunks/ssr/components_ui_utils_ts_f85ae7af._.js","../../../chunks/ssr/messages_de_json_56e8cde5._.js","../../../chunks/ssr/messages_en_json_a7997480._.js","../../../chunks/ssr/node_modules__pnpm_20ad9314._.js","../../../chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","../../../chunks/ssr/node_modules__pnpm_66399b09._.js","../../../chunks/ssr/node_modules__pnpm_8387bcd6._.js","../../../chunks/ssr/node_modules__pnpm_d28cabd9._.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file +{"version":1,"files":["../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/context.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/diag.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/metrics.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/propagation.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/trace.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/context.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/types.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/index.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/global-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/semver.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/Metric.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/context-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/span_kind.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/status.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/version.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/package.json","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/execAsync.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-bsd.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-darwin.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-linux.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-unsupported.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-win.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId.js","../../../../../node_modules/.pnpm/@pinojs+redact@0.4.0/node_modules/@pinojs/redact/index.js","../../../../../node_modules/.pnpm/@pinojs+redact@0.4.0/node_modules/@pinojs/redact/package.json","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/browserTracingIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/clientNormalizationIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/appRouterRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/isrRoutingTracing.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/nextRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/pagesRouterRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/parameterization.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/tunnelRoute.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/captureRequestError.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/debug-build.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/devErrorSymbolicationEventProcessor.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/getVercelEnv.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextNavigationErrorUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextSpanAttributes.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/_error.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentryVercelCrons.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapAppGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapDocumentGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapErrorGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetServerSidePropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetStaticPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapPageComponentWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/span-attributes-with-logic-attached.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/addHeadersAsAttributes.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/dropMiddlewareTunnelRequests.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isBuild.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isUseCacheFunction.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/nextSpan.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/responseEnd.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/setUrlProcessingMetadata.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/tracingUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/urls.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/wrapperUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/withServerActionInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapGenerationFunctionWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapMiddlewareWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapRouteHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapServerComponentWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/getBuildPluginOptions.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/handleRunAfterProductionCompile.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/componentAnnotationLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/moduleMetadataInjectionLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/prefixLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/valueInjectionLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/wrappingLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/manifest/createRouteManifest.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/polyfills/perf_hooks.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/apiWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/middlewareWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/pageWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/requestAsyncStorageShim.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/routeHandlerWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/sentryInitWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/serverComponentWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/constructTurbopackConfig.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/generateValueInjectionRules.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/util.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/webpack.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/buildTime.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/constants.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/deprecatedWebpackOptions.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObject.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectBundlerUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/tunnel.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/distDirRewriteFramesIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/wrapApiHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.client.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.server.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/distDirRewriteFramesIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/handleOnSpanStart.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/prepareSafeIdGeneratorContext.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelCronsMonitoring.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelQueuesMonitoring.js","../../../../../node_modules/.pnpm/atomic-sleep@1.0.0/node_modules/atomic-sleep/index.js","../../../../../node_modules/.pnpm/atomic-sleep@1.0.0/node_modules/atomic-sleep/package.json","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/package.json","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/browser.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/index.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/node.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/ms","../../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js","../../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@1.15.0/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/index.js","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/lib/register.js","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/index.js","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/lib/register.js","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/index.js","../../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/package.json","../../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js","../../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/@opentelemetry/api","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/LICENSE","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/index.edge.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/index.node.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/noto-sans-v27-latin-regular.ttf","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/resvg.wasm","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/satori/LICENSE","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/yoga.wasm","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/constants.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/is-error.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/runtime-reacts.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/package.json","../../../../../node_modules/.pnpm/node_modules/@opentelemetry/api","../../../../../node_modules/.pnpm/node_modules/@pinojs/redact","../../../../../node_modules/.pnpm/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/node_modules/debug","../../../../../node_modules/.pnpm/node_modules/has-flag","../../../../../node_modules/.pnpm/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/node_modules/ms","../../../../../node_modules/.pnpm/node_modules/on-exit-leak-free","../../../../../node_modules/.pnpm/node_modules/pino-std-serializers","../../../../../node_modules/.pnpm/node_modules/quick-format-unescaped","../../../../../node_modules/.pnpm/node_modules/real-require","../../../../../node_modules/.pnpm/node_modules/safe-stable-stringify","../../../../../node_modules/.pnpm/node_modules/sonic-boom","../../../../../node_modules/.pnpm/node_modules/supports-color","../../../../../node_modules/.pnpm/node_modules/thread-stream","../../../../../node_modules/.pnpm/on-exit-leak-free@2.1.2/node_modules/on-exit-leak-free/index.js","../../../../../node_modules/.pnpm/on-exit-leak-free@2.1.2/node_modules/on-exit-leak-free/package.json","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/index.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-helpers.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-proto.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-with-cause.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/req.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/res.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/package.json","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/@pinojs/redact","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/on-exit-leak-free","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino-std-serializers","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/file.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/caller.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/constants.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/deprecations.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/levels.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/meta.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/multistream.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/proto.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/redaction.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/symbols.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/time.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/tools.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/transport-stream.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/transport.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/worker.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/package.json","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/pino.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/quick-format-unescaped","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/safe-stable-stringify","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/sonic-boom","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/thread-stream","../../../../../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/package.json","../../../../../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/plugins/html.mjs","../../../../../node_modules/.pnpm/prettier@3.4.2/node_modules/prettier/standalone.mjs","../../../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/index.js","../../../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/package.json","../../../../../node_modules/.pnpm/real-require@0.2.0/node_modules/real-require/package.json","../../../../../node_modules/.pnpm/real-require@0.2.0/node_modules/real-require/src/index.js","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/debug","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/index.js","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/package.json","../../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/index.js","../../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/package.json","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/LICENSE","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/README.md","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/bench.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/check.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/example.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/fixtures/firehose.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/index.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/package.json","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/destroy.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/end.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/flush-sync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/flush.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/fsync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/helper.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/minlength.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/mode.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/periodicflush.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/reopen.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/retry.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/sync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/write.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/types/tests/test.ts","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/has-flag","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/package.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/real-require","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/LICENSE","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/bench.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/eslint.config.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/index.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/indexes.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/wait.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/worker.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/package.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/base.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/bench.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/bundlers.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/close-on-gc.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/commonjs-fallback.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/context.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/create-and-exit.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/custom-worker.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/dir with spaces/test-package.zip","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/emit-event.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/end.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/error.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/esm.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/event.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/exit.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/get-context.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/helper.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/indexes.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/multibyte-chars.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/on-message.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/index.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/pkg.config.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/pkg.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/port.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/post-message.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/string-limit-2.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/string-limit.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/syntax-error.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/thread-management.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file-on-destroy.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file-on-final.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-next.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/transpiled.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-commonjs-default-export.zip","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-native.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-node-fallback.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts/to-file.ts","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts/transpile.sh","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/uncaughtException.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/unhandledRejection.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/yarnrc.yml","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/tsconfig.json","../../../../../node_modules/import-in-the-middle","../../../../../node_modules/next","../../../../../node_modules/pino","../../../../../node_modules/require-in-the-middle","../../../../node_modules/import-in-the-middle-138cd032e4b029f3","../../../../node_modules/import-in-the-middle-6ecbfda1283b1532","../../../../node_modules/pino-2e79642258e38174","../../../../node_modules/prettier-6252915918e48d75","../../../../node_modules/require-in-the-middle-a99415fa67232f7f","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_5e35a34a.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_f7a67094.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_68baf629.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_e2e05945.js","../../../chunks/ssr/3c3e1_next-intl_dist_esm_production_server_react-server_getConfig_8e5b989d.js","../../../chunks/ssr/468ab_next_b54e3ae0._.js","../../../chunks/ssr/468ab_next_c7821d87._.js","../../../chunks/ssr/468ab_next_dist_668db2a3._.js","../../../chunks/ssr/468ab_next_dist_9c02c43c._.js","../../../chunks/ssr/468ab_next_dist_a9fadb3f._.js","../../../chunks/ssr/468ab_next_dist_client_components_9ea24689._.js","../../../chunks/ssr/468ab_next_dist_client_components_builtin_forbidden_fcf22647.js","../../../chunks/ssr/468ab_next_dist_client_components_builtin_unauthorized_242673a5.js","../../../chunks/ssr/468ab_next_dist_compiled_b9b2ac32._.js","../../../chunks/ssr/468ab_next_dist_d9f52090._.js","../../../chunks/ssr/468ab_next_dist_e98c316f._.js","../../../chunks/ssr/468ab_next_dist_esm_10bac804._.js","../../../chunks/ssr/5e5d0_@opentelemetry_api_build_esm_f7b039e6._.js","../../../chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_317a5e2b._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_51b27302._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_634cb413._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_88fed31f._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_929773f6._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_f2e70164._.js","../../../chunks/ssr/[externals]_next_dist_compiled_@vercel_og_index_node_055f47ab.js","../../../chunks/ssr/[externals]_node:inspector_7a4283c6._.js","../../../chunks/ssr/[root-of-the-server]__00212f08._.js","../../../chunks/ssr/[root-of-the-server]__047498e4._.js","../../../chunks/ssr/[root-of-the-server]__16d71f56._.js","../../../chunks/ssr/[root-of-the-server]__2da52317._.js","../../../chunks/ssr/[root-of-the-server]__34977423._.js","../../../chunks/ssr/[root-of-the-server]__366a9ff8._.js","../../../chunks/ssr/[root-of-the-server]__3964fc56._.js","../../../chunks/ssr/[root-of-the-server]__411530ea._.js","../../../chunks/ssr/[root-of-the-server]__5bd1b04a._.js","../../../chunks/ssr/[root-of-the-server]__63a582be._.js","../../../chunks/ssr/[root-of-the-server]__7fda9c9f._.js","../../../chunks/ssr/[root-of-the-server]__99789462._.js","../../../chunks/ssr/[root-of-the-server]__9bfda315._.js","../../../chunks/ssr/[root-of-the-server]__9eff91eb._.js","../../../chunks/ssr/[root-of-the-server]__b20a6437._.js","../../../chunks/ssr/[root-of-the-server]__bc75933a._.js","../../../chunks/ssr/[root-of-the-server]__d3969a9f._.js","../../../chunks/ssr/[root-of-the-server]__e31a84e6._.js","../../../chunks/ssr/[root-of-the-server]__eee4ab8a._.js","../../../chunks/ssr/[root-of-the-server]__fbc63b72._.js","../../../chunks/ssr/[turbopack]_runtime.js","../../../chunks/ssr/_16003e4d._.js","../../../chunks/ssr/_6189c8b5._.js","../../../chunks/ssr/_6f66913b._.js","../../../chunks/ssr/_9867cab0._.js","../../../chunks/ssr/_b76d0ab2._.js","../../../chunks/ssr/_c364a7fb._.js","../../../chunks/ssr/_c3cb4fd0._.js","../../../chunks/ssr/_d825b83f._.js","../../../chunks/ssr/_df4aec0b._.js","../../../chunks/ssr/app_[locale]_contact_opengraph-image--metadata_7a65ad7f.js","../../../chunks/ssr/app_[locale]_error_tsx_37c0341f._.js","../../../chunks/ssr/app_global-error_tsx_9170b7a0._.js","../../../chunks/ssr/components_ui_6a2a3715._.js","../../../chunks/ssr/messages_de_json_56e8cde5._.js","../../../chunks/ssr/messages_en_json_a7997480._.js","../../../chunks/ssr/node_modules__pnpm_20ad9314._.js","../../../chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","../../../chunks/ssr/node_modules__pnpm_66399b09._.js","../../../chunks/ssr/node_modules__pnpm_8387bcd6._.js","../../../chunks/ssr/node_modules__pnpm_d28cabd9._.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/.next/server/app/[locale]/contact/page/build-manifest.json b/.next/server/app/[locale]/contact/page/build-manifest.json index 436cd66d8..4482423a4 100644 --- a/.next/server/app/[locale]/contact/page/build-manifest.json +++ b/.next/server/app/[locale]/contact/page/build-manifest.json @@ -7,11 +7,11 @@ "lowPriorityFiles": [], "rootMainFiles": [ "static/chunks/c68fc807b9365f18.js", - "static/chunks/f51290069c969e8a.js", + "static/chunks/b263a60573bfd155.js", "static/chunks/29297b02a438a66e.js", "static/chunks/fd7b24483a212e2f.js", - "static/chunks/b62c08cc490fef16.js", - "static/chunks/turbopack-e5b78b2a7c8f1f21.js" + "static/chunks/b6898185462c2fee.js", + "static/chunks/turbopack-721eb9b8c3f79e29.js" ], "pages": {}, "ampFirstPages": [] diff --git a/.next/server/app/[locale]/contact/page/react-loadable-manifest.json b/.next/server/app/[locale]/contact/page/react-loadable-manifest.json index 9d0bfe5e6..daa9d9841 100644 --- a/.next/server/app/[locale]/contact/page/react-loadable-manifest.json +++ b/.next/server/app/[locale]/contact/page/react-loadable-manifest.json @@ -2,30 +2,29 @@ "565071": { "id": 565071, "files": [ - "static/chunks/a6d16f278f687ad0.js", + "static/chunks/d62bf387414e0748.js", "static/chunks/0ff158dd58fe47c8.js" ] }, "248785": { "id": 248785, "files": [ - "static/chunks/1fa1fc1d8df71347.js", + "static/chunks/ff6db6d7946b9f90.js", "static/chunks/0ff158dd58fe47c8.js" ] }, "950648": { "id": 950648, "files": [ - "static/chunks/d578f418b9661eaf.js", + "static/chunks/844db355c06db065.js", "static/chunks/0ff158dd58fe47c8.js" ] }, "566137": { "id": 566137, "files": [ - "static/chunks/0a765fb53d81ccec.js", - "static/chunks/c9e4534297dc4d54.js", - "static/chunks/9c4a690cd48e1298.js" + "static/chunks/9c4a690cd48e1298.js", + "static/chunks/c9e4534297dc4d54.js" ] }, "408235": { diff --git a/.next/server/app/[locale]/contact/page_client-reference-manifest.js b/.next/server/app/[locale]/contact/page_client-reference-manifest.js index 4783856b9..715c6e1de 100644 --- a/.next/server/app/[locale]/contact/page_client-reference-manifest.js +++ b/.next/server/app/[locale]/contact/page_client-reference-manifest.js @@ -1,2 +1,2 @@ globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; -globalThis.__RSC_MANIFEST["/[locale]/contact/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":666284,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":666284,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":29584,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":29584,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":30965,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":30965,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":966591,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":966591,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":3420,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3420,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":489266,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":489266,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":67067,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":67067,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/app/global-error.tsx ":{"id":253348,"name":"*","chunks":["/_next/static/chunks/7bc980684698d6e7.js","/_next/static/chunks/5336d64d11e7435f.js"],"async":false},"[project]/app/global-error.tsx":{"id":253348,"name":"*","chunks":["/_next/static/chunks/7bc980684698d6e7.js","/_next/static/chunks/5336d64d11e7435f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/app-dir/link.js ":{"id":184868,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/4d4a06e69ee5f0c8.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/app-dir/link.js":{"id":184868,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/4d4a06e69ee5f0c8.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/image-component.js ":{"id":702050,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/image-component.js":{"id":702050,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/layout/LanguageSwitcher.tsx ":{"id":287564,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/layout/LanguageSwitcher.tsx":{"id":287564,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/layout/Header.tsx ":{"id":993983,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/layout/Header.tsx":{"id":993983,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/SkipLink.tsx ":{"id":814508,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/SkipLink.tsx":{"id":814508,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/analytics/AnalyticsShell.tsx ":{"id":531518,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/analytics/AnalyticsShell.tsx":{"id":531518,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/node_modules/.pnpm/next-intl@4.9.0_@swc+helpers@0.5.20_next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js ":{"id":600023,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/node_modules/.pnpm/next-intl@4.9.0_@swc+helpers@0.5.20_next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js":{"id":600023,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/FeedbackClientWrapper.tsx ":{"id":689647,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/FeedbackClientWrapper.tsx":{"id":689647,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/app/[locale]/error.tsx ":{"id":309974,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/4e4487a1c38504b3.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/app/[locale]/error.tsx":{"id":309974,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/4e4487a1c38504b3.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/Scribble.tsx ":{"id":224038,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/Scribble.tsx":{"id":224038,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/analytics/ClientNotFoundTracker.tsx ":{"id":555331,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/analytics/ClientNotFoundTracker.tsx":{"id":555331,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/ContactForm.tsx ":{"id":833128,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/4d4a06e69ee5f0c8.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/ContactForm.tsx":{"id":833128,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/4d4a06e69ee5f0c8.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/Reveal.tsx ":{"id":759095,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/4d4a06e69ee5f0c8.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/Reveal.tsx":{"id":759095,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/4d4a06e69ee5f0c8.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/ContactMap.tsx ":{"id":936744,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/4d4a06e69ee5f0c8.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/ContactMap.tsx":{"id":936744,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/4d4a06e69ee5f0c8.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/ObfuscatedEmail.tsx ":{"id":499139,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/4d4a06e69ee5f0c8.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/ObfuscatedEmail.tsx":{"id":499139,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/4d4a06e69ee5f0c8.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false}},"ssrModuleMapping":{"666284":{"*":{"id":164732,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"29584":{"*":{"id":743976,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"30965":{"*":{"id":46550,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"966591":{"*":{"id":594180,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"3420":{"*":{"id":585766,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"489266":{"*":{"id":471584,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"67067":{"*":{"id":561162,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"253348":{"*":{"id":303171,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__411530ea._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js"],"async":false}},"184868":{"*":{"id":841757,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__b17bd572._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"702050":{"*":{"id":739969,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"287564":{"*":{"id":81870,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"993983":{"*":{"id":581631,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"814508":{"*":{"id":909381,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"531518":{"*":{"id":905651,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"600023":{"*":{"id":650766,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"689647":{"*":{"id":894447,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"309974":{"*":{"id":497627,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__5bbfddd1._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"224038":{"*":{"id":991320,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__28a191f2._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"555331":{"*":{"id":868513,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__28a191f2._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"833128":{"*":{"id":366014,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__b17bd572._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"759095":{"*":{"id":188457,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__b17bd572._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"936744":{"*":{"id":648658,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__b17bd572._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"499139":{"*":{"id":567784,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__b17bd572._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"666284":{"*":{"id":551417,"name":"*","chunks":[],"async":false}},"29584":{"*":{"id":536434,"name":"*","chunks":[],"async":false}},"30965":{"*":{"id":387103,"name":"*","chunks":[],"async":false}},"966591":{"*":{"id":580884,"name":"*","chunks":[],"async":false}},"3420":{"*":{"id":504014,"name":"*","chunks":[],"async":false}},"489266":{"*":{"id":726190,"name":"*","chunks":[],"async":false}},"67067":{"*":{"id":76412,"name":"*","chunks":[],"async":false}},"253348":{"*":{"id":153128,"name":"*","chunks":[],"async":false}},"184868":{"*":{"id":917929,"name":"*","chunks":[],"async":false}},"702050":{"*":{"id":986834,"name":"*","chunks":[],"async":false}},"287564":{"*":{"id":168713,"name":"*","chunks":[],"async":false}},"993983":{"*":{"id":625244,"name":"*","chunks":[],"async":false}},"814508":{"*":{"id":566663,"name":"*","chunks":[],"async":false}},"531518":{"*":{"id":292727,"name":"*","chunks":[],"async":false}},"600023":{"*":{"id":963034,"name":"*","chunks":[],"async":false}},"689647":{"*":{"id":679583,"name":"*","chunks":[],"async":false}},"309974":{"*":{"id":363934,"name":"*","chunks":[],"async":false}},"224038":{"*":{"id":404449,"name":"*","chunks":[],"async":false}},"555331":{"*":{"id":588684,"name":"*","chunks":[],"async":false}},"833128":{"*":{"id":115955,"name":"*","chunks":[],"async":false}},"759095":{"*":{"id":479251,"name":"*","chunks":[],"async":false}},"936744":{"*":{"id":263835,"name":"*","chunks":[],"async":false}},"499139":{"*":{"id":228672,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/app/[locale]/opengraph-image--metadata":[],"[project]/app/global-error":[],"[project]/app/[locale]/layout":[{"path":"static/chunks/928be433d65b40cc.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/error":[{"path":"static/chunks/928be433d65b40cc.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/not-found":[{"path":"static/chunks/928be433d65b40cc.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/contact/page":[{"path":"static/chunks/928be433d65b40cc.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}]},"entryJSFiles":{"[project]/app/[locale]/opengraph-image--metadata":["static/chunks/93736546a7cd8cd8.js","static/chunks/870a2c2978ab4440.js"],"[project]/app/global-error":["static/chunks/7bc980684698d6e7.js","static/chunks/5336d64d11e7435f.js"],"[project]/app/[locale]/layout":["static/chunks/76668d2ab61cd4a8.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b786cbc2e9238523.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/eeabc9d46e43f022.js"],"[project]/app/[locale]/error":["static/chunks/76668d2ab61cd4a8.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b786cbc2e9238523.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/eeabc9d46e43f022.js","static/chunks/4e4487a1c38504b3.js","static/chunks/0ff158dd58fe47c8.js","static/chunks/b550ef5d0ebc89bc.js"],"[project]/app/[locale]/not-found":["static/chunks/76668d2ab61cd4a8.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b786cbc2e9238523.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/eeabc9d46e43f022.js","static/chunks/a86ed0e5ea629175.js","static/chunks/0ff158dd58fe47c8.js","static/chunks/b550ef5d0ebc89bc.js"],"[project]/app/[locale]/contact/page":["static/chunks/76668d2ab61cd4a8.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b786cbc2e9238523.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/eeabc9d46e43f022.js","static/chunks/4d4a06e69ee5f0c8.js","static/chunks/0ff158dd58fe47c8.js","static/chunks/b550ef5d0ebc89bc.js"]}} +globalThis.__RSC_MANIFEST["/[locale]/contact/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":666284,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":666284,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":29584,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":29584,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":30965,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":30965,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":966591,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":966591,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":3420,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3420,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":489266,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":489266,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":67067,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":67067,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/app/global-error.tsx ":{"id":253348,"name":"*","chunks":["/_next/static/chunks/7bc980684698d6e7.js","/_next/static/chunks/5336d64d11e7435f.js"],"async":false},"[project]/app/global-error.tsx":{"id":253348,"name":"*","chunks":["/_next/static/chunks/7bc980684698d6e7.js","/_next/static/chunks/5336d64d11e7435f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/app-dir/link.js ":{"id":184868,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/c1fbbe823a34b6d4.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/app-dir/link.js":{"id":184868,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/c1fbbe823a34b6d4.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/image-component.js ":{"id":702050,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/image-component.js":{"id":702050,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/layout/LanguageSwitcher.tsx ":{"id":287564,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/layout/LanguageSwitcher.tsx":{"id":287564,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/layout/Header.tsx ":{"id":993983,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/layout/Header.tsx":{"id":993983,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/SkipLink.tsx ":{"id":814508,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/SkipLink.tsx":{"id":814508,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/analytics/AnalyticsShell.tsx ":{"id":531518,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/analytics/AnalyticsShell.tsx":{"id":531518,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/node_modules/.pnpm/next-intl@4.9.0_@swc+helpers@0.5.20_next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js ":{"id":600023,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/node_modules/.pnpm/next-intl@4.9.0_@swc+helpers@0.5.20_next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js":{"id":600023,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/FeedbackClientWrapper.tsx ":{"id":689647,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/FeedbackClientWrapper.tsx":{"id":689647,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/app/[locale]/error.tsx ":{"id":309974,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b02fdfb08ad720b0.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/app/[locale]/error.tsx":{"id":309974,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b02fdfb08ad720b0.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/Scribble.tsx ":{"id":224038,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/Scribble.tsx":{"id":224038,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/analytics/ClientNotFoundTracker.tsx ":{"id":555331,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/analytics/ClientNotFoundTracker.tsx":{"id":555331,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/ContactForm.tsx ":{"id":833128,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/c1fbbe823a34b6d4.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/ContactForm.tsx":{"id":833128,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/c1fbbe823a34b6d4.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/Reveal.tsx ":{"id":759095,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/c1fbbe823a34b6d4.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/Reveal.tsx":{"id":759095,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/c1fbbe823a34b6d4.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/ContactMap.tsx ":{"id":936744,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/c1fbbe823a34b6d4.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/ContactMap.tsx":{"id":936744,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/c1fbbe823a34b6d4.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/ObfuscatedEmail.tsx ":{"id":499139,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/c1fbbe823a34b6d4.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/ObfuscatedEmail.tsx":{"id":499139,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/c1fbbe823a34b6d4.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false}},"ssrModuleMapping":{"666284":{"*":{"id":164732,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"29584":{"*":{"id":743976,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"30965":{"*":{"id":46550,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"966591":{"*":{"id":594180,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"3420":{"*":{"id":585766,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"489266":{"*":{"id":471584,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"67067":{"*":{"id":561162,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"253348":{"*":{"id":303171,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__411530ea._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js"],"async":false}},"184868":{"*":{"id":841757,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__b20a6437._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"702050":{"*":{"id":739969,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"287564":{"*":{"id":81870,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"993983":{"*":{"id":581631,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"814508":{"*":{"id":909381,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"531518":{"*":{"id":905651,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"600023":{"*":{"id":650766,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"689647":{"*":{"id":894447,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"309974":{"*":{"id":497627,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__34977423._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"224038":{"*":{"id":991320,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__63a582be._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"555331":{"*":{"id":868513,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__63a582be._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"833128":{"*":{"id":366014,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__b20a6437._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"759095":{"*":{"id":188457,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__b20a6437._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"936744":{"*":{"id":648658,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__b20a6437._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"499139":{"*":{"id":567784,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__b20a6437._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"666284":{"*":{"id":551417,"name":"*","chunks":[],"async":false}},"29584":{"*":{"id":536434,"name":"*","chunks":[],"async":false}},"30965":{"*":{"id":387103,"name":"*","chunks":[],"async":false}},"966591":{"*":{"id":580884,"name":"*","chunks":[],"async":false}},"3420":{"*":{"id":504014,"name":"*","chunks":[],"async":false}},"489266":{"*":{"id":726190,"name":"*","chunks":[],"async":false}},"67067":{"*":{"id":76412,"name":"*","chunks":[],"async":false}},"253348":{"*":{"id":153128,"name":"*","chunks":[],"async":false}},"184868":{"*":{"id":917929,"name":"*","chunks":[],"async":false}},"702050":{"*":{"id":986834,"name":"*","chunks":[],"async":false}},"287564":{"*":{"id":168713,"name":"*","chunks":[],"async":false}},"993983":{"*":{"id":625244,"name":"*","chunks":[],"async":false}},"814508":{"*":{"id":566663,"name":"*","chunks":[],"async":false}},"531518":{"*":{"id":292727,"name":"*","chunks":[],"async":false}},"600023":{"*":{"id":963034,"name":"*","chunks":[],"async":false}},"689647":{"*":{"id":679583,"name":"*","chunks":[],"async":false}},"309974":{"*":{"id":363934,"name":"*","chunks":[],"async":false}},"224038":{"*":{"id":404449,"name":"*","chunks":[],"async":false}},"555331":{"*":{"id":588684,"name":"*","chunks":[],"async":false}},"833128":{"*":{"id":115955,"name":"*","chunks":[],"async":false}},"759095":{"*":{"id":479251,"name":"*","chunks":[],"async":false}},"936744":{"*":{"id":263835,"name":"*","chunks":[],"async":false}},"499139":{"*":{"id":228672,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/app/[locale]/opengraph-image--metadata":[],"[project]/app/global-error":[],"[project]/app/[locale]/layout":[{"path":"static/chunks/3f652f1a7128a03a.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/error":[{"path":"static/chunks/3f652f1a7128a03a.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/not-found":[{"path":"static/chunks/3f652f1a7128a03a.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/contact/page":[{"path":"static/chunks/3f652f1a7128a03a.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}]},"entryJSFiles":{"[project]/app/[locale]/opengraph-image--metadata":["static/chunks/93736546a7cd8cd8.js","static/chunks/870a2c2978ab4440.js"],"[project]/app/global-error":["static/chunks/7bc980684698d6e7.js","static/chunks/5336d64d11e7435f.js"],"[project]/app/[locale]/layout":["static/chunks/6640bcd504ed2815.js","static/chunks/eeabc9d46e43f022.js","static/chunks/595f4cd305cd0088.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/fac3383571a5e891.js","static/chunks/ad1b4e551db227fe.js"],"[project]/app/[locale]/error":["static/chunks/6640bcd504ed2815.js","static/chunks/eeabc9d46e43f022.js","static/chunks/595f4cd305cd0088.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/fac3383571a5e891.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b02fdfb08ad720b0.js","static/chunks/0ff158dd58fe47c8.js"],"[project]/app/[locale]/not-found":["static/chunks/6640bcd504ed2815.js","static/chunks/eeabc9d46e43f022.js","static/chunks/595f4cd305cd0088.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/fac3383571a5e891.js","static/chunks/ad1b4e551db227fe.js","static/chunks/e91fc49c513620bc.js","static/chunks/0ff158dd58fe47c8.js"],"[project]/app/[locale]/contact/page":["static/chunks/6640bcd504ed2815.js","static/chunks/eeabc9d46e43f022.js","static/chunks/595f4cd305cd0088.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/fac3383571a5e891.js","static/chunks/ad1b4e551db227fe.js","static/chunks/c1fbbe823a34b6d4.js","static/chunks/0ff158dd58fe47c8.js"]}} diff --git a/.next/server/app/[locale]/page.js b/.next/server/app/[locale]/page.js index af15442e6..f1a8fa82b 100644 --- a/.next/server/app/[locale]/page.js +++ b/.next/server/app/[locale]/page.js @@ -8,7 +8,7 @@ R.c("server/chunks/ssr/[root-of-the-server]__5bd1b04a._.js") R.c("server/chunks/ssr/5e5d0_@opentelemetry_api_build_esm_f7b039e6._.js") R.c("server/chunks/ssr/468ab_next_dist_d9f52090._.js") R.c("server/chunks/ssr/468ab_next_dist_e98c316f._.js") -R.c("server/chunks/ssr/[root-of-the-server]__f153a21f._.js") +R.c("server/chunks/ssr/[root-of-the-server]__2da52317._.js") R.c("server/chunks/ssr/468ab_next_dist_668db2a3._.js") R.c("server/chunks/ssr/node_modules__pnpm_20ad9314._.js") R.c("server/chunks/ssr/3c3e1_next-intl_dist_esm_production_server_react-server_getConfig_8e5b989d.js") @@ -19,13 +19,13 @@ R.c("server/chunks/ssr/app_global-error_tsx_9170b7a0._.js") R.c("server/chunks/ssr/468ab_next_dist_client_components_9ea24689._.js") R.c("server/chunks/ssr/468ab_next_dist_client_components_builtin_forbidden_fcf22647.js") R.c("server/chunks/ssr/468ab_next_dist_client_components_builtin_unauthorized_242673a5.js") -R.c("server/chunks/ssr/_106014c9._.js") -R.c("server/chunks/ssr/_536bc82a._.js") +R.c("server/chunks/ssr/_f1e03d27._.js") +R.c("server/chunks/ssr/_6189c8b5._.js") R.c("server/chunks/ssr/[root-of-the-server]__bc75933a._.js") R.c("server/chunks/ssr/_df4aec0b._.js") R.c("server/chunks/ssr/app_[locale]_error_tsx_37c0341f._.js") -R.c("server/chunks/ssr/_49a7ffbe._.js") -R.c("server/chunks/ssr/components_4d1233ab._.js") +R.c("server/chunks/ssr/_d825b83f._.js") +R.c("server/chunks/ssr/components_ui_6a2a3715._.js") R.c("server/chunks/ssr/_next-internal_server_app_[locale]_page_actions_53ad19b2.js") R.m(579866) module.exports=R.m(579866).exports diff --git a/.next/server/app/[locale]/page.js.nft.json b/.next/server/app/[locale]/page.js.nft.json index 657b9bfe9..e2c2cadac 100644 --- a/.next/server/app/[locale]/page.js.nft.json +++ b/.next/server/app/[locale]/page.js.nft.json @@ -1 +1 @@ -{"version":1,"files":["../../../../content/de/agb.mdx","../../../../content/de/blog/moderne-verfahren-kabeltiefbau.mdx","../../../../content/de/datenschutz.mdx","../../../../content/de/home.mdx","../../../../content/de/impressum.mdx","../../../../content/de/karriere.mdx","../../../../content/de/kompetenzen.mdx","../../../../content/de/messen.mdx","../../../../content/de/ueber-uns.mdx","../../../../content/en/agb.mdx","../../../../content/en/blog/modern-methods-civil-engineering.mdx","../../../../content/en/datenschutz.mdx","../../../../content/en/home.mdx","../../../../content/en/impressum.mdx","../../../../content/en/karriere.mdx","../../../../content/en/kompetenzen.mdx","../../../../content/en/messen.mdx","../../../../content/en/ueber-uns.mdx","../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/@babel/code-frame/lib/index.js","../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/@babel/code-frame/package.json","../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/@babel/helper-validator-identifier","../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/js-tokens","../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/picocolors","../../../../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/lib/identifier.js","../../../../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/lib/index.js","../../../../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/lib/keyword.js","../../../../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/package.json","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/index.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/compile.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/core.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/evaluate.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/node-types.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/recma-build-jsx-transform.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/recma-document.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/recma-jsx-rewrite.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/rehype-remove-raw.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/remark-mark-and-unravel.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/run.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-create.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-declaration-to-expression.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-is-declaration.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-specifiers-to-declarations.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-to-binary-addition.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-to-id-or-member-expression.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/extnames.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/resolve-evaluate-options.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/resolve-file-and-options.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/package.json","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/collapse-white-space","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/devlop","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/estree-util-is-identifier-name","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/estree-util-scope","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/estree-walker","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/markdown-extensions","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/recma-build-jsx","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/recma-jsx","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/recma-stringify","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/rehype-recma","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/remark-mdx","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/remark-parse","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/remark-rehype","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/unified","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/unist-util-position-from-estree","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/unist-util-stringify-position","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/unist-util-visit","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/vfile","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/context.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/diag.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/metrics.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/propagation.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/trace.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/context.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/types.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/index.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/global-utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/semver.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/Metric.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/context-utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/span_kind.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/status.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/version.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/package.json","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/execAsync.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-bsd.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-darwin.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-linux.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-unsupported.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-win.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId.js","../../../../node_modules/.pnpm/@pinojs+redact@0.4.0/node_modules/@pinojs/redact/index.js","../../../../node_modules/.pnpm/@pinojs+redact@0.4.0/node_modules/@pinojs/redact/package.json","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/browserTracingIntegration.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/clientNormalizationIntegration.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/appRouterRoutingInstrumentation.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/isrRoutingTracing.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/nextRoutingInstrumentation.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/pagesRouterRoutingInstrumentation.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/parameterization.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/tunnelRoute.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/captureRequestError.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/debug-build.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/devErrorSymbolicationEventProcessor.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/getVercelEnv.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextNavigationErrorUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextSpanAttributes.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/_error.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentryVercelCrons.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapAppGetInitialPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapDocumentGetInitialPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapErrorGetInitialPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetInitialPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetServerSidePropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetStaticPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapPageComponentWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/span-attributes-with-logic-attached.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/addHeadersAsAttributes.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/dropMiddlewareTunnelRequests.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isBuild.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isUseCacheFunction.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/nextSpan.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/responseEnd.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/setUrlProcessingMetadata.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/tracingUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/urls.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/wrapperUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/withServerActionInstrumentation.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapGenerationFunctionWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapMiddlewareWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapRouteHandlerWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapServerComponentWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/getBuildPluginOptions.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/handleRunAfterProductionCompile.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/componentAnnotationLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/moduleMetadataInjectionLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/prefixLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/valueInjectionLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/wrappingLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/manifest/createRouteManifest.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/polyfills/perf_hooks.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/apiWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/middlewareWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/pageWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/requestAsyncStorageShim.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/routeHandlerWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/sentryInitWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/serverComponentWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/constructTurbopackConfig.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/generateValueInjectionRules.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/util.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/webpack.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/buildTime.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/constants.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/deprecatedWebpackOptions.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObject.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectBundlerUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/tunnel.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/distDirRewriteFramesIntegration.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/wrapApiHandlerWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.client.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.server.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/distDirRewriteFramesIntegration.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/handleOnSpanStart.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/prepareSafeIdGeneratorContext.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelCronsMonitoring.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelQueuesMonitoring.js","../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/deserialize.js","../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/index.js","../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/serialize.js","../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/types.js","../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/package.json","../../../../node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.16.0/node_modules/acorn","../../../../node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.16.0/node_modules/acorn-jsx/index.js","../../../../node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.16.0/node_modules/acorn-jsx/package.json","../../../../node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.16.0/node_modules/acorn-jsx/xhtml.js","../../../../node_modules/.pnpm/acorn@8.16.0/node_modules/acorn/dist/acorn.js","../../../../node_modules/.pnpm/acorn@8.16.0/node_modules/acorn/dist/acorn.mjs","../../../../node_modules/.pnpm/acorn@8.16.0/node_modules/acorn/package.json","../../../../node_modules/.pnpm/astring@1.9.0/node_modules/astring/dist/astring.mjs","../../../../node_modules/.pnpm/astring@1.9.0/node_modules/astring/package.json","../../../../node_modules/.pnpm/atomic-sleep@1.0.0/node_modules/atomic-sleep/index.js","../../../../node_modules/.pnpm/atomic-sleep@1.0.0/node_modules/atomic-sleep/package.json","../../../../node_modules/.pnpm/bail@2.0.2/node_modules/bail/index.js","../../../../node_modules/.pnpm/bail@2.0.2/node_modules/bail/package.json","../../../../node_modules/.pnpm/ccount@2.0.1/node_modules/ccount/index.js","../../../../node_modules/.pnpm/ccount@2.0.1/node_modules/ccount/package.json","../../../../node_modules/.pnpm/character-entities-html4@2.1.0/node_modules/character-entities-html4/index.js","../../../../node_modules/.pnpm/character-entities-html4@2.1.0/node_modules/character-entities-html4/package.json","../../../../node_modules/.pnpm/character-entities-legacy@3.0.0/node_modules/character-entities-legacy/index.js","../../../../node_modules/.pnpm/character-entities-legacy@3.0.0/node_modules/character-entities-legacy/package.json","../../../../node_modules/.pnpm/character-entities@2.0.2/node_modules/character-entities/index.js","../../../../node_modules/.pnpm/character-entities@2.0.2/node_modules/character-entities/package.json","../../../../node_modules/.pnpm/character-reference-invalid@2.0.1/node_modules/character-reference-invalid/index.js","../../../../node_modules/.pnpm/character-reference-invalid@2.0.1/node_modules/character-reference-invalid/package.json","../../../../node_modules/.pnpm/collapse-white-space@2.1.0/node_modules/collapse-white-space/index.js","../../../../node_modules/.pnpm/collapse-white-space@2.1.0/node_modules/collapse-white-space/package.json","../../../../node_modules/.pnpm/comma-separated-tokens@2.0.3/node_modules/comma-separated-tokens/index.js","../../../../node_modules/.pnpm/comma-separated-tokens@2.0.3/node_modules/comma-separated-tokens/package.json","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/package.json","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/browser.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/index.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/node.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/ms","../../../../node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/character-entities","../../../../node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/decode-named-character-reference/index.js","../../../../node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/decode-named-character-reference/package.json","../../../../node_modules/.pnpm/devlop@1.1.0/node_modules/devlop/lib/default.js","../../../../node_modules/.pnpm/devlop@1.1.0/node_modules/devlop/package.json","../../../../node_modules/.pnpm/estree-util-attach-comments@3.0.0/node_modules/estree-util-attach-comments/index.js","../../../../node_modules/.pnpm/estree-util-attach-comments@3.0.0/node_modules/estree-util-attach-comments/lib/index.js","../../../../node_modules/.pnpm/estree-util-attach-comments@3.0.0/node_modules/estree-util-attach-comments/package.json","../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/devlop","../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-util-build-jsx/index.js","../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-util-build-jsx/lib/index.js","../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-util-build-jsx/package.json","../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-util-is-identifier-name","../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-walker","../../../../node_modules/.pnpm/estree-util-is-identifier-name@3.0.0/node_modules/estree-util-is-identifier-name/index.js","../../../../node_modules/.pnpm/estree-util-is-identifier-name@3.0.0/node_modules/estree-util-is-identifier-name/lib/index.js","../../../../node_modules/.pnpm/estree-util-is-identifier-name@3.0.0/node_modules/estree-util-is-identifier-name/package.json","../../../../node_modules/.pnpm/estree-util-scope@1.0.0/node_modules/devlop","../../../../node_modules/.pnpm/estree-util-scope@1.0.0/node_modules/estree-util-scope/index.js","../../../../node_modules/.pnpm/estree-util-scope@1.0.0/node_modules/estree-util-scope/lib/index.js","../../../../node_modules/.pnpm/estree-util-scope@1.0.0/node_modules/estree-util-scope/package.json","../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/astring","../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/estree-util-to-js/index.js","../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/estree-util-to-js/lib/index.js","../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/estree-util-to-js/lib/jsx.js","../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/estree-util-to-js/package.json","../../../../node_modules/.pnpm/estree-util-visit@2.0.0/node_modules/estree-util-visit/index.js","../../../../node_modules/.pnpm/estree-util-visit@2.0.0/node_modules/estree-util-visit/lib/color.node.js","../../../../node_modules/.pnpm/estree-util-visit@2.0.0/node_modules/estree-util-visit/lib/index.js","../../../../node_modules/.pnpm/estree-util-visit@2.0.0/node_modules/estree-util-visit/package.json","../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/package.json","../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/async.js","../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/index.js","../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/sync.js","../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/walker.js","../../../../node_modules/.pnpm/extend@3.0.2/node_modules/extend/index.js","../../../../node_modules/.pnpm/extend@3.0.2/node_modules/extend/package.json","../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js","../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/package.json","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/comma-separated-tokens","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/devlop","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/estree-util-attach-comments","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/estree-util-is-identifier-name","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/index.js","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/comment.js","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/element.js","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/index.js","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/mdx-expression.js","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/mdx-jsx-element.js","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/mdxjs-esm.js","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/root.js","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/text.js","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/index.js","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/state.js","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/package.json","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-whitespace","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/property-information","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/space-separated-tokens","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/style-to-js","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/unist-util-position","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/zwitch","../../../../node_modules/.pnpm/hast-util-whitespace@3.0.0/node_modules/hast-util-whitespace/index.js","../../../../node_modules/.pnpm/hast-util-whitespace@3.0.0/node_modules/hast-util-whitespace/lib/index.js","../../../../node_modules/.pnpm/hast-util-whitespace@3.0.0/node_modules/hast-util-whitespace/package.json","../../../../node_modules/.pnpm/import-in-the-middle@1.15.0/node_modules/import-in-the-middle/package.json","../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/index.js","../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/lib/register.js","../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/package.json","../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/module-details-from-path","../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/index.js","../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/lib/register.js","../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/package.json","../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/module-details-from-path","../../../../node_modules/.pnpm/inline-style-parser@0.2.7/node_modules/inline-style-parser/cjs/index.js","../../../../node_modules/.pnpm/inline-style-parser@0.2.7/node_modules/inline-style-parser/package.json","../../../../node_modules/.pnpm/is-alphabetical@2.0.1/node_modules/is-alphabetical/index.js","../../../../node_modules/.pnpm/is-alphabetical@2.0.1/node_modules/is-alphabetical/package.json","../../../../node_modules/.pnpm/is-alphanumerical@2.0.1/node_modules/is-alphabetical","../../../../node_modules/.pnpm/is-alphanumerical@2.0.1/node_modules/is-alphanumerical/index.js","../../../../node_modules/.pnpm/is-alphanumerical@2.0.1/node_modules/is-alphanumerical/package.json","../../../../node_modules/.pnpm/is-alphanumerical@2.0.1/node_modules/is-decimal","../../../../node_modules/.pnpm/is-decimal@2.0.1/node_modules/is-decimal/index.js","../../../../node_modules/.pnpm/is-decimal@2.0.1/node_modules/is-decimal/package.json","../../../../node_modules/.pnpm/is-hexadecimal@2.0.1/node_modules/is-hexadecimal/index.js","../../../../node_modules/.pnpm/is-hexadecimal@2.0.1/node_modules/is-hexadecimal/package.json","../../../../node_modules/.pnpm/is-plain-obj@4.1.0/node_modules/is-plain-obj/index.js","../../../../node_modules/.pnpm/is-plain-obj@4.1.0/node_modules/is-plain-obj/package.json","../../../../node_modules/.pnpm/js-tokens@4.0.0/node_modules/js-tokens/index.js","../../../../node_modules/.pnpm/js-tokens@4.0.0/node_modules/js-tokens/package.json","../../../../node_modules/.pnpm/markdown-extensions@2.0.0/node_modules/markdown-extensions/index.js","../../../../node_modules/.pnpm/markdown-extensions@2.0.0/node_modules/markdown-extensions/package.json","../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/decode-named-character-reference","../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/index.js","../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/lib/index.js","../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/package.json","../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-to-string","../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/micromark","../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/micromark-util-decode-numeric-character-reference","../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/micromark-util-decode-string","../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/micromark-util-normalize-identifier","../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/unist-util-stringify-position","../../../../node_modules/.pnpm/mdast-util-mdx-expression@2.0.1/node_modules/devlop","../../../../node_modules/.pnpm/mdast-util-mdx-expression@2.0.1/node_modules/mdast-util-mdx-expression/index.js","../../../../node_modules/.pnpm/mdast-util-mdx-expression@2.0.1/node_modules/mdast-util-mdx-expression/lib/index.js","../../../../node_modules/.pnpm/mdast-util-mdx-expression@2.0.1/node_modules/mdast-util-mdx-expression/package.json","../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/ccount","../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/devlop","../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/mdast-util-mdx-jsx/index.js","../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/mdast-util-mdx-jsx/lib/index.js","../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/mdast-util-mdx-jsx/package.json","../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/parse-entities","../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/stringify-entities","../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/unist-util-stringify-position","../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/vfile-message","../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx-expression","../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx-jsx","../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx/index.js","../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx/lib/index.js","../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx/package.json","../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdxjs-esm","../../../../node_modules/.pnpm/mdast-util-mdxjs-esm@2.0.1/node_modules/devlop","../../../../node_modules/.pnpm/mdast-util-mdxjs-esm@2.0.1/node_modules/mdast-util-mdxjs-esm/index.js","../../../../node_modules/.pnpm/mdast-util-mdxjs-esm@2.0.1/node_modules/mdast-util-mdxjs-esm/lib/index.js","../../../../node_modules/.pnpm/mdast-util-mdxjs-esm@2.0.1/node_modules/mdast-util-mdxjs-esm/package.json","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/@ungap/structured-clone","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/devlop","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/index.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/footer.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/break.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/code.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/delete.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/heading.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/html.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/image.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/index.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/link.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/list.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/root.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/strong.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/text.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/index.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/revert.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/state.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/package.json","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/micromark-util-sanitize-uri","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/trim-lines","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/unist-util-position","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/unist-util-visit","../../../../node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/index.js","../../../../node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/lib/index.js","../../../../node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/package.json","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/decode-named-character-reference","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/index.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/attention.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/autolink.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/blank-line.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/block-quote.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/character-escape.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/character-reference.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-fenced.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-indented.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-text.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/content.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/definition.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/heading-atx.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/html-flow.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/html-text.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-end.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-start-image.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-start-link.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/line-ending.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/list.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/setext-underline.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/thematic-break.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/package.json","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-destination","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-label","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-space","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-title","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-whitespace","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-character","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-chunked","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-classify-character","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-html-tag-name","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-normalize-identifier","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-resolve-all","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-subtokenize","../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-extension-mdx-expression/index.js","../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-extension-mdx-expression/lib/syntax.js","../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-extension-mdx-expression/package.json","../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-factory-mdx-expression","../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-factory-space","../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-util-character","../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/estree-util-is-identifier-name","../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/index.js","../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/lib/factory-tag.js","../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/lib/jsx-flow.js","../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/lib/jsx-text.js","../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/lib/syntax.js","../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/package.json","../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-factory-mdx-expression","../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-factory-space","../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-util-character","../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/vfile-message","../../../../node_modules/.pnpm/micromark-extension-mdx-md@2.0.0/node_modules/micromark-extension-mdx-md/index.js","../../../../node_modules/.pnpm/micromark-extension-mdx-md@2.0.0/node_modules/micromark-extension-mdx-md/package.json","../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-core-commonmark","../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-extension-mdxjs-esm/index.js","../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-extension-mdxjs-esm/lib/syntax.js","../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-extension-mdxjs-esm/package.json","../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-util-character","../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-util-events-to-acorn","../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/unist-util-position-from-estree","../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/vfile-message","../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/acorn","../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/acorn-jsx","../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdx-expression","../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdx-jsx","../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdx-md","../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdxjs-esm","../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdxjs/index.js","../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdxjs/package.json","../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-util-combine-extensions","../../../../node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-factory-destination/index.js","../../../../node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-factory-destination/package.json","../../../../node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-util-character","../../../../node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-factory-label/index.js","../../../../node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-factory-label/package.json","../../../../node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-util-character","../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-factory-mdx-expression/index.js","../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-factory-mdx-expression/package.json","../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-factory-space","../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-util-character","../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-util-events-to-acorn","../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/unist-util-position-from-estree","../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/vfile-message","../../../../node_modules/.pnpm/micromark-factory-space@2.0.1/node_modules/micromark-factory-space/index.js","../../../../node_modules/.pnpm/micromark-factory-space@2.0.1/node_modules/micromark-factory-space/package.json","../../../../node_modules/.pnpm/micromark-factory-space@2.0.1/node_modules/micromark-util-character","../../../../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-space","../../../../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-title/index.js","../../../../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-title/package.json","../../../../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-util-character","../../../../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-space","../../../../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-whitespace/index.js","../../../../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-whitespace/package.json","../../../../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-util-character","../../../../node_modules/.pnpm/micromark-util-character@2.1.1/node_modules/micromark-util-character/index.js","../../../../node_modules/.pnpm/micromark-util-character@2.1.1/node_modules/micromark-util-character/package.json","../../../../node_modules/.pnpm/micromark-util-chunked@2.0.1/node_modules/micromark-util-chunked/index.js","../../../../node_modules/.pnpm/micromark-util-chunked@2.0.1/node_modules/micromark-util-chunked/package.json","../../../../node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-character","../../../../node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-classify-character/index.js","../../../../node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-classify-character/package.json","../../../../node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-chunked","../../../../node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-combine-extensions/index.js","../../../../node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-combine-extensions/package.json","../../../../node_modules/.pnpm/micromark-util-decode-numeric-character-reference@2.0.2/node_modules/micromark-util-decode-numeric-character-reference/index.js","../../../../node_modules/.pnpm/micromark-util-decode-numeric-character-reference@2.0.2/node_modules/micromark-util-decode-numeric-character-reference/package.json","../../../../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/decode-named-character-reference","../../../../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-numeric-character-reference","../../../../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-string/index.js","../../../../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-string/package.json","../../../../node_modules/.pnpm/micromark-util-encode@2.0.1/node_modules/micromark-util-encode/index.js","../../../../node_modules/.pnpm/micromark-util-encode@2.0.1/node_modules/micromark-util-encode/package.json","../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/estree-util-visit","../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/micromark-util-events-to-acorn/index.js","../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/micromark-util-events-to-acorn/lib/index.js","../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/micromark-util-events-to-acorn/package.json","../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/vfile-message","../../../../node_modules/.pnpm/micromark-util-html-tag-name@2.0.1/node_modules/micromark-util-html-tag-name/index.js","../../../../node_modules/.pnpm/micromark-util-html-tag-name@2.0.1/node_modules/micromark-util-html-tag-name/package.json","../../../../node_modules/.pnpm/micromark-util-normalize-identifier@2.0.1/node_modules/micromark-util-normalize-identifier/index.js","../../../../node_modules/.pnpm/micromark-util-normalize-identifier@2.0.1/node_modules/micromark-util-normalize-identifier/package.json","../../../../node_modules/.pnpm/micromark-util-resolve-all@2.0.1/node_modules/micromark-util-resolve-all/index.js","../../../../node_modules/.pnpm/micromark-util-resolve-all@2.0.1/node_modules/micromark-util-resolve-all/package.json","../../../../node_modules/.pnpm/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-character","../../../../node_modules/.pnpm/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-encode","../../../../node_modules/.pnpm/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-sanitize-uri/index.js","../../../../node_modules/.pnpm/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-sanitize-uri/package.json","../../../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-chunked","../../../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/index.js","../../../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/lib/splice-buffer.js","../../../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/package.json","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/decode-named-character-reference","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-core-commonmark","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-factory-space","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-character","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-chunked","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-combine-extensions","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-decode-numeric-character-reference","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-encode","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-normalize-identifier","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-resolve-all","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-sanitize-uri","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-subtokenize","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/index.js","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/compile.js","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/constructs.js","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/create-tokenizer.js","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/content.js","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/document.js","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/flow.js","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/text.js","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/parse.js","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/postprocess.js","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/preprocess.js","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/package.json","../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/index.js","../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/package.json","../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js","../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/package.json","../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/@babel/code-frame","../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/@mdx-js/mdx","../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/format-mdx-error.js","../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/jsx-runtime.cjs","../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/plugins/remove-imports-exports.js","../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/rsc.js","../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/serialize.js","../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/package.json","../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/rsc.js","../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/react","../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/unist-util-remove","../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/vfile","../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/vfile-matter","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/@opentelemetry/api","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/LICENSE","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/index.edge.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/index.node.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/noto-sans-v27-latin-regular.ttf","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/package.json","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/resvg.wasm","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/satori/LICENSE","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/yoga.wasm","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/constants.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/interop-default.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/is-error.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/runtime-reacts.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/package.json","../../../../node_modules/.pnpm/node_modules/@babel/code-frame","../../../../node_modules/.pnpm/node_modules/@babel/helper-validator-identifier","../../../../node_modules/.pnpm/node_modules/@mdx-js/mdx","../../../../node_modules/.pnpm/node_modules/@opentelemetry/api","../../../../node_modules/.pnpm/node_modules/@pinojs/redact","../../../../node_modules/.pnpm/node_modules/@ungap/structured-clone","../../../../node_modules/.pnpm/node_modules/acorn","../../../../node_modules/.pnpm/node_modules/acorn-jsx","../../../../node_modules/.pnpm/node_modules/astring","../../../../node_modules/.pnpm/node_modules/atomic-sleep","../../../../node_modules/.pnpm/node_modules/bail","../../../../node_modules/.pnpm/node_modules/ccount","../../../../node_modules/.pnpm/node_modules/character-entities","../../../../node_modules/.pnpm/node_modules/character-entities-html4","../../../../node_modules/.pnpm/node_modules/character-entities-legacy","../../../../node_modules/.pnpm/node_modules/character-reference-invalid","../../../../node_modules/.pnpm/node_modules/collapse-white-space","../../../../node_modules/.pnpm/node_modules/comma-separated-tokens","../../../../node_modules/.pnpm/node_modules/debug","../../../../node_modules/.pnpm/node_modules/decode-named-character-reference","../../../../node_modules/.pnpm/node_modules/devlop","../../../../node_modules/.pnpm/node_modules/estree-util-attach-comments","../../../../node_modules/.pnpm/node_modules/estree-util-build-jsx","../../../../node_modules/.pnpm/node_modules/estree-util-is-identifier-name","../../../../node_modules/.pnpm/node_modules/estree-util-scope","../../../../node_modules/.pnpm/node_modules/estree-util-to-js","../../../../node_modules/.pnpm/node_modules/estree-util-visit","../../../../node_modules/.pnpm/node_modules/estree-walker","../../../../node_modules/.pnpm/node_modules/extend","../../../../node_modules/.pnpm/node_modules/has-flag","../../../../node_modules/.pnpm/node_modules/hast-util-to-estree","../../../../node_modules/.pnpm/node_modules/hast-util-whitespace","../../../../node_modules/.pnpm/node_modules/inline-style-parser","../../../../node_modules/.pnpm/node_modules/is-alphabetical","../../../../node_modules/.pnpm/node_modules/is-alphanumerical","../../../../node_modules/.pnpm/node_modules/is-decimal","../../../../node_modules/.pnpm/node_modules/is-hexadecimal","../../../../node_modules/.pnpm/node_modules/is-plain-obj","../../../../node_modules/.pnpm/node_modules/js-tokens","../../../../node_modules/.pnpm/node_modules/markdown-extensions","../../../../node_modules/.pnpm/node_modules/mdast-util-from-markdown","../../../../node_modules/.pnpm/node_modules/mdast-util-mdx","../../../../node_modules/.pnpm/node_modules/mdast-util-mdx-expression","../../../../node_modules/.pnpm/node_modules/mdast-util-mdx-jsx","../../../../node_modules/.pnpm/node_modules/mdast-util-mdxjs-esm","../../../../node_modules/.pnpm/node_modules/mdast-util-to-hast","../../../../node_modules/.pnpm/node_modules/mdast-util-to-string","../../../../node_modules/.pnpm/node_modules/micromark","../../../../node_modules/.pnpm/node_modules/micromark-core-commonmark","../../../../node_modules/.pnpm/node_modules/micromark-extension-mdx-expression","../../../../node_modules/.pnpm/node_modules/micromark-extension-mdx-jsx","../../../../node_modules/.pnpm/node_modules/micromark-extension-mdx-md","../../../../node_modules/.pnpm/node_modules/micromark-extension-mdxjs","../../../../node_modules/.pnpm/node_modules/micromark-extension-mdxjs-esm","../../../../node_modules/.pnpm/node_modules/micromark-factory-destination","../../../../node_modules/.pnpm/node_modules/micromark-factory-label","../../../../node_modules/.pnpm/node_modules/micromark-factory-mdx-expression","../../../../node_modules/.pnpm/node_modules/micromark-factory-space","../../../../node_modules/.pnpm/node_modules/micromark-factory-title","../../../../node_modules/.pnpm/node_modules/micromark-factory-whitespace","../../../../node_modules/.pnpm/node_modules/micromark-util-character","../../../../node_modules/.pnpm/node_modules/micromark-util-chunked","../../../../node_modules/.pnpm/node_modules/micromark-util-classify-character","../../../../node_modules/.pnpm/node_modules/micromark-util-combine-extensions","../../../../node_modules/.pnpm/node_modules/micromark-util-decode-numeric-character-reference","../../../../node_modules/.pnpm/node_modules/micromark-util-decode-string","../../../../node_modules/.pnpm/node_modules/micromark-util-encode","../../../../node_modules/.pnpm/node_modules/micromark-util-events-to-acorn","../../../../node_modules/.pnpm/node_modules/micromark-util-html-tag-name","../../../../node_modules/.pnpm/node_modules/micromark-util-normalize-identifier","../../../../node_modules/.pnpm/node_modules/micromark-util-resolve-all","../../../../node_modules/.pnpm/node_modules/micromark-util-sanitize-uri","../../../../node_modules/.pnpm/node_modules/micromark-util-subtokenize","../../../../node_modules/.pnpm/node_modules/module-details-from-path","../../../../node_modules/.pnpm/node_modules/ms","../../../../node_modules/.pnpm/node_modules/on-exit-leak-free","../../../../node_modules/.pnpm/node_modules/parse-entities","../../../../node_modules/.pnpm/node_modules/picocolors","../../../../node_modules/.pnpm/node_modules/pino-std-serializers","../../../../node_modules/.pnpm/node_modules/property-information","../../../../node_modules/.pnpm/node_modules/quick-format-unescaped","../../../../node_modules/.pnpm/node_modules/real-require","../../../../node_modules/.pnpm/node_modules/recma-build-jsx","../../../../node_modules/.pnpm/node_modules/recma-jsx","../../../../node_modules/.pnpm/node_modules/recma-stringify","../../../../node_modules/.pnpm/node_modules/rehype-recma","../../../../node_modules/.pnpm/node_modules/remark-mdx","../../../../node_modules/.pnpm/node_modules/remark-parse","../../../../node_modules/.pnpm/node_modules/remark-rehype","../../../../node_modules/.pnpm/node_modules/safe-stable-stringify","../../../../node_modules/.pnpm/node_modules/sonic-boom","../../../../node_modules/.pnpm/node_modules/space-separated-tokens","../../../../node_modules/.pnpm/node_modules/stringify-entities","../../../../node_modules/.pnpm/node_modules/style-to-js","../../../../node_modules/.pnpm/node_modules/style-to-object","../../../../node_modules/.pnpm/node_modules/supports-color","../../../../node_modules/.pnpm/node_modules/thread-stream","../../../../node_modules/.pnpm/node_modules/trim-lines","../../../../node_modules/.pnpm/node_modules/trough","../../../../node_modules/.pnpm/node_modules/unified","../../../../node_modules/.pnpm/node_modules/unist-util-is","../../../../node_modules/.pnpm/node_modules/unist-util-position","../../../../node_modules/.pnpm/node_modules/unist-util-position-from-estree","../../../../node_modules/.pnpm/node_modules/unist-util-remove","../../../../node_modules/.pnpm/node_modules/unist-util-stringify-position","../../../../node_modules/.pnpm/node_modules/unist-util-visit","../../../../node_modules/.pnpm/node_modules/unist-util-visit-parents","../../../../node_modules/.pnpm/node_modules/vfile","../../../../node_modules/.pnpm/node_modules/vfile-matter","../../../../node_modules/.pnpm/node_modules/vfile-message","../../../../node_modules/.pnpm/node_modules/yaml","../../../../node_modules/.pnpm/node_modules/zwitch","../../../../node_modules/.pnpm/on-exit-leak-free@2.1.2/node_modules/on-exit-leak-free/index.js","../../../../node_modules/.pnpm/on-exit-leak-free@2.1.2/node_modules/on-exit-leak-free/package.json","../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/character-entities-legacy","../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/character-reference-invalid","../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/decode-named-character-reference","../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/is-alphanumerical","../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/is-decimal","../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/is-hexadecimal","../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/parse-entities/index.js","../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/parse-entities/lib/index.js","../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/parse-entities/package.json","../../../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/package.json","../../../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js","../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/index.js","../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-helpers.js","../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-proto.js","../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-with-cause.js","../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err.js","../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/req.js","../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/res.js","../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/package.json","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/@pinojs/redact","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/atomic-sleep","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/on-exit-leak-free","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino-std-serializers","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/file.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/caller.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/constants.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/deprecations.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/levels.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/meta.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/multistream.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/proto.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/redaction.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/symbols.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/time.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/tools.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/transport-stream.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/transport.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/worker.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/package.json","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/pino.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/quick-format-unescaped","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/safe-stable-stringify","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/sonic-boom","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/thread-stream","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/index.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/aria.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/find.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/hast-to-react.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/html.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/normalize.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/svg.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/case-insensitive-transform.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/case-sensitive-transform.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/create.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/defined-info.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/info.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/merge.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/schema.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/types.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/xlink.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/xml.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/xmlns.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/package.json","../../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/index.js","../../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/package.json","../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-jsx-dev-runtime.development.js","../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-jsx-dev-runtime.production.js","../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-jsx-runtime.development.js","../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-jsx-runtime.production.js","../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react.development.js","../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react.production.js","../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/index.js","../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/jsx-dev-runtime.js","../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/jsx-runtime.js","../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/package.json","../../../../node_modules/.pnpm/real-require@0.2.0/node_modules/real-require/package.json","../../../../node_modules/.pnpm/real-require@0.2.0/node_modules/real-require/src/index.js","../../../../node_modules/.pnpm/recma-build-jsx@1.0.0/node_modules/estree-util-build-jsx","../../../../node_modules/.pnpm/recma-build-jsx@1.0.0/node_modules/recma-build-jsx/index.js","../../../../node_modules/.pnpm/recma-build-jsx@1.0.0/node_modules/recma-build-jsx/lib/index.js","../../../../node_modules/.pnpm/recma-build-jsx@1.0.0/node_modules/recma-build-jsx/package.json","../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/acorn-jsx","../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/estree-util-to-js","../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/recma-jsx/index.js","../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/recma-jsx/lib/index.js","../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/recma-jsx/package.json","../../../../node_modules/.pnpm/recma-stringify@1.0.0/node_modules/estree-util-to-js","../../../../node_modules/.pnpm/recma-stringify@1.0.0/node_modules/recma-stringify/index.js","../../../../node_modules/.pnpm/recma-stringify@1.0.0/node_modules/recma-stringify/lib/index.js","../../../../node_modules/.pnpm/recma-stringify@1.0.0/node_modules/recma-stringify/package.json","../../../../node_modules/.pnpm/rehype-recma@1.0.0/node_modules/hast-util-to-estree","../../../../node_modules/.pnpm/rehype-recma@1.0.0/node_modules/rehype-recma/index.js","../../../../node_modules/.pnpm/rehype-recma@1.0.0/node_modules/rehype-recma/lib/index.js","../../../../node_modules/.pnpm/rehype-recma@1.0.0/node_modules/rehype-recma/package.json","../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/mdast-util-mdx","../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/micromark-extension-mdxjs","../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/remark-mdx/index.js","../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/remark-mdx/lib/index.js","../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/remark-mdx/package.json","../../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/mdast-util-from-markdown","../../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/index.js","../../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/lib/index.js","../../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/package.json","../../../../node_modules/.pnpm/remark-rehype@11.1.2/node_modules/mdast-util-to-hast","../../../../node_modules/.pnpm/remark-rehype@11.1.2/node_modules/remark-rehype/index.js","../../../../node_modules/.pnpm/remark-rehype@11.1.2/node_modules/remark-rehype/lib/index.js","../../../../node_modules/.pnpm/remark-rehype@11.1.2/node_modules/remark-rehype/package.json","../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/debug","../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/module-details-from-path","../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/index.js","../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/package.json","../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/index.js","../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/package.json","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/atomic-sleep","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/LICENSE","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/README.md","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/bench.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/check.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/example.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/fixtures/firehose.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/index.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/package.json","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/destroy.test.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/end.test.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/flush-sync.test.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/flush.test.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/fsync.test.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/helper.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/minlength.test.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/mode.test.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/periodicflush.test.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/reopen.test.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/retry.test.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/sync.test.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/write.test.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/types/tests/test.ts","../../../../node_modules/.pnpm/space-separated-tokens@2.0.2/node_modules/space-separated-tokens/index.js","../../../../node_modules/.pnpm/space-separated-tokens@2.0.2/node_modules/space-separated-tokens/package.json","../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/character-entities-html4","../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/character-entities-legacy","../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/index.js","../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/constant/dangerous.js","../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/core.js","../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/index.js","../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/format-basic.js","../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/format-smart.js","../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-decimal.js","../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-hexadecimal.js","../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-named.js","../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/package.json","../../../../node_modules/.pnpm/style-to-js@1.1.21/node_modules/style-to-js/cjs/index.js","../../../../node_modules/.pnpm/style-to-js@1.1.21/node_modules/style-to-js/cjs/utilities.js","../../../../node_modules/.pnpm/style-to-js@1.1.21/node_modules/style-to-js/package.json","../../../../node_modules/.pnpm/style-to-js@1.1.21/node_modules/style-to-object","../../../../node_modules/.pnpm/style-to-object@1.0.14/node_modules/inline-style-parser","../../../../node_modules/.pnpm/style-to-object@1.0.14/node_modules/style-to-object/cjs/index.js","../../../../node_modules/.pnpm/style-to-object@1.0.14/node_modules/style-to-object/package.json","../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/has-flag","../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js","../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/package.json","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/real-require","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/LICENSE","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/bench.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/eslint.config.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/index.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/indexes.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/wait.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/worker.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/package.json","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/base.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/bench.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/bundlers.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/close-on-gc.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/commonjs-fallback.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/context.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/create-and-exit.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/custom-worker.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/dir with spaces/test-package.zip","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/emit-event.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/end.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/error.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/esm.test.mjs","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/event.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/exit.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/get-context.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/helper.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/indexes.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/multibyte-chars.test.mjs","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/on-message.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/index.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/pkg.config.json","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/pkg.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/port.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/post-message.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/string-limit-2.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/string-limit.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/syntax-error.mjs","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/thread-management.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file-on-destroy.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file-on-final.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file.mjs","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-next.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/transpiled.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-commonjs-default-export.zip","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-native.test.mjs","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-node-fallback.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts/to-file.ts","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts/transpile.sh","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/uncaughtException.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/unhandledRejection.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/yarnrc.yml","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/tsconfig.json","../../../../node_modules/.pnpm/trim-lines@3.0.1/node_modules/trim-lines/index.js","../../../../node_modules/.pnpm/trim-lines@3.0.1/node_modules/trim-lines/package.json","../../../../node_modules/.pnpm/trough@2.2.0/node_modules/trough/index.js","../../../../node_modules/.pnpm/trough@2.2.0/node_modules/trough/lib/index.js","../../../../node_modules/.pnpm/trough@2.2.0/node_modules/trough/package.json","../../../../node_modules/.pnpm/unified@11.0.5/node_modules/bail","../../../../node_modules/.pnpm/unified@11.0.5/node_modules/devlop","../../../../node_modules/.pnpm/unified@11.0.5/node_modules/extend","../../../../node_modules/.pnpm/unified@11.0.5/node_modules/is-plain-obj","../../../../node_modules/.pnpm/unified@11.0.5/node_modules/trough","../../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/index.js","../../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/lib/callable-instance.js","../../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/lib/index.js","../../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/package.json","../../../../node_modules/.pnpm/unified@11.0.5/node_modules/vfile","../../../../node_modules/.pnpm/unist-util-is@5.2.1/node_modules/unist-util-is/index.js","../../../../node_modules/.pnpm/unist-util-is@5.2.1/node_modules/unist-util-is/lib/index.js","../../../../node_modules/.pnpm/unist-util-is@5.2.1/node_modules/unist-util-is/package.json","../../../../node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/index.js","../../../../node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/lib/index.js","../../../../node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/package.json","../../../../node_modules/.pnpm/unist-util-position-from-estree@2.0.0/node_modules/unist-util-position-from-estree/index.js","../../../../node_modules/.pnpm/unist-util-position-from-estree@2.0.0/node_modules/unist-util-position-from-estree/lib/index.js","../../../../node_modules/.pnpm/unist-util-position-from-estree@2.0.0/node_modules/unist-util-position-from-estree/package.json","../../../../node_modules/.pnpm/unist-util-position@5.0.0/node_modules/unist-util-position/index.js","../../../../node_modules/.pnpm/unist-util-position@5.0.0/node_modules/unist-util-position/lib/index.js","../../../../node_modules/.pnpm/unist-util-position@5.0.0/node_modules/unist-util-position/package.json","../../../../node_modules/.pnpm/unist-util-remove@3.1.1/node_modules/unist-util-is","../../../../node_modules/.pnpm/unist-util-remove@3.1.1/node_modules/unist-util-remove/index.js","../../../../node_modules/.pnpm/unist-util-remove@3.1.1/node_modules/unist-util-remove/lib/index.js","../../../../node_modules/.pnpm/unist-util-remove@3.1.1/node_modules/unist-util-remove/package.json","../../../../node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/index.js","../../../../node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/lib/index.js","../../../../node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/package.json","../../../../node_modules/.pnpm/unist-util-visit-parents@5.1.3/node_modules/unist-util-visit-parents/package.json","../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-is","../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/index.js","../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/color.node.js","../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/index.js","../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/package.json","../../../../node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit-parents","../../../../node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit/index.js","../../../../node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit/lib/index.js","../../../../node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit/package.json","../../../../node_modules/.pnpm/vfile-matter@5.0.1/node_modules/vfile-matter/index.js","../../../../node_modules/.pnpm/vfile-matter@5.0.1/node_modules/vfile-matter/lib/index.js","../../../../node_modules/.pnpm/vfile-matter@5.0.1/node_modules/vfile-matter/package.json","../../../../node_modules/.pnpm/vfile-matter@5.0.1/node_modules/yaml","../../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/unist-util-stringify-position","../../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/index.js","../../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/lib/index.js","../../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/package.json","../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile-message","../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/index.js","../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/index.js","../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minpath.js","../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minproc.js","../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minurl.js","../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minurl.shared.js","../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/package.json","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/compose-collection.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/compose-doc.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/compose-node.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/compose-scalar.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/composer.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-block-map.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-block-scalar.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-block-seq.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-end.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-flow-collection.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-flow-scalar.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-props.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/util-contains-newline.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/util-empty-scalar-position.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/util-flow-indent-check.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/util-map-includes.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/Document.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/anchors.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/applyReviver.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/createNode.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/directives.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/errors.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/index.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/log.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Alias.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Collection.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Node.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Pair.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Scalar.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/YAMLMap.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/YAMLSeq.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/addPairToJSMap.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/identity.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/toJS.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/cst-scalar.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/cst-stringify.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/cst-visit.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/cst.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/lexer.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/line-counter.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/parser.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/public-api.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/Schema.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/common/map.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/common/null.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/common/seq.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/common/string.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/core/bool.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/core/float.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/core/int.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/core/schema.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/json/schema.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/tags.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/binary.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/bool.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/float.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/int.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/merge.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/omap.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/pairs.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/schema.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/set.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/foldFlowLines.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringify.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyCollection.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyComment.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyDocument.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyNumber.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyPair.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyString.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/visit.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/package.json","../../../../node_modules/.pnpm/zwitch@2.0.4/node_modules/zwitch/index.js","../../../../node_modules/.pnpm/zwitch@2.0.4/node_modules/zwitch/package.json","../../../../node_modules/import-in-the-middle","../../../../node_modules/next","../../../../node_modules/pino","../../../../node_modules/react","../../../../node_modules/require-in-the-middle","../../../node_modules/import-in-the-middle-138cd032e4b029f3","../../../node_modules/import-in-the-middle-6ecbfda1283b1532","../../../node_modules/next-mdx-remote-38ab1b696f56808a","../../../node_modules/pino-2e79642258e38174","../../../node_modules/require-in-the-middle-a99415fa67232f7f","../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_5e35a34a.js","../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_f7a67094.js","../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_68baf629.js","../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_e2e05945.js","../../chunks/ssr/3c3e1_next-intl_dist_esm_production_server_react-server_getConfig_8e5b989d.js","../../chunks/ssr/468ab_next_b54e3ae0._.js","../../chunks/ssr/468ab_next_c7821d87._.js","../../chunks/ssr/468ab_next_dist_668db2a3._.js","../../chunks/ssr/468ab_next_dist_6d1ec603._.js","../../chunks/ssr/468ab_next_dist_9c02c43c._.js","../../chunks/ssr/468ab_next_dist_a9fadb3f._.js","../../chunks/ssr/468ab_next_dist_bc66fa15._.js","../../chunks/ssr/468ab_next_dist_client_components_9ea24689._.js","../../chunks/ssr/468ab_next_dist_client_components_builtin_forbidden_fcf22647.js","../../chunks/ssr/468ab_next_dist_client_components_builtin_unauthorized_242673a5.js","../../chunks/ssr/468ab_next_dist_d9f52090._.js","../../chunks/ssr/468ab_next_dist_e98c316f._.js","../../chunks/ssr/468ab_next_dist_esm_10bac804._.js","../../chunks/ssr/5e5d0_@opentelemetry_api_build_esm_f7b039e6._.js","../../chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_317a5e2b._.js","../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_51b27302._.js","../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_634cb413._.js","../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_88fed31f._.js","../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_929773f6._.js","../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_f2e70164._.js","../../chunks/ssr/[externals]_next_dist_compiled_@vercel_og_index_node_055f47ab.js","../../chunks/ssr/[externals]_node:inspector_7a4283c6._.js","../../chunks/ssr/[root-of-the-server]__03e78303._.js","../../chunks/ssr/[root-of-the-server]__16d71f56._.js","../../chunks/ssr/[root-of-the-server]__26c04c96._.js","../../chunks/ssr/[root-of-the-server]__28a191f2._.js","../../chunks/ssr/[root-of-the-server]__2e5112e6._.js","../../chunks/ssr/[root-of-the-server]__366a9ff8._.js","../../chunks/ssr/[root-of-the-server]__411530ea._.js","../../chunks/ssr/[root-of-the-server]__5bbfddd1._.js","../../chunks/ssr/[root-of-the-server]__5bd1b04a._.js","../../chunks/ssr/[root-of-the-server]__6bb30663._.js","../../chunks/ssr/[root-of-the-server]__9aa0d618._.js","../../chunks/ssr/[root-of-the-server]__9bfda315._.js","../../chunks/ssr/[root-of-the-server]__9eff91eb._.js","../../chunks/ssr/[root-of-the-server]__bc75933a._.js","../../chunks/ssr/[root-of-the-server]__f153a21f._.js","../../chunks/ssr/[root-of-the-server]__f939d130._.js","../../chunks/ssr/[root-of-the-server]__fbc63b72._.js","../../chunks/ssr/[turbopack]_runtime.js","../../chunks/ssr/_106014c9._.js","../../chunks/ssr/_49a7ffbe._.js","../../chunks/ssr/_536bc82a._.js","../../chunks/ssr/_6f66913b._.js","../../chunks/ssr/_b76d0ab2._.js","../../chunks/ssr/_c3cb4fd0._.js","../../chunks/ssr/_df4aec0b._.js","../../chunks/ssr/_feb57b15._.js","../../chunks/ssr/_next-internal_server_app_[locale]_page_actions_53ad19b2.js","../../chunks/ssr/app_[locale]_error_tsx_37c0341f._.js","../../chunks/ssr/app_global-error_tsx_9170b7a0._.js","../../chunks/ssr/components_4d1233ab._.js","../../chunks/ssr/components_64b50741._.js","../../chunks/ssr/components_ui_utils_ts_f85ae7af._.js","../../chunks/ssr/messages_de_json_56e8cde5._.js","../../chunks/ssr/messages_en_json_a7997480._.js","../../chunks/ssr/node_modules__pnpm_20ad9314._.js","../../chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","../../chunks/ssr/node_modules__pnpm_329a8f51._.js","../../chunks/ssr/node_modules__pnpm_66399b09._.js","../../chunks/ssr/node_modules__pnpm_8387bcd6._.js","../../chunks/ssr/node_modules__pnpm_d28cabd9._.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file +{"version":1,"files":["../../../../content/de/agb.mdx","../../../../content/de/blog/moderne-verfahren-kabeltiefbau.mdx","../../../../content/de/datenschutz.mdx","../../../../content/de/home.mdx","../../../../content/de/impressum.mdx","../../../../content/de/karriere.mdx","../../../../content/de/kompetenzen.mdx","../../../../content/de/messen.mdx","../../../../content/de/ueber-uns.mdx","../../../../content/en/agb.mdx","../../../../content/en/blog/modern-methods-civil-engineering.mdx","../../../../content/en/datenschutz.mdx","../../../../content/en/home.mdx","../../../../content/en/impressum.mdx","../../../../content/en/karriere.mdx","../../../../content/en/kompetenzen.mdx","../../../../content/en/messen.mdx","../../../../content/en/ueber-uns.mdx","../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/@babel/code-frame/lib/index.js","../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/@babel/code-frame/package.json","../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/@babel/helper-validator-identifier","../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/js-tokens","../../../../node_modules/.pnpm/@babel+code-frame@7.29.0/node_modules/picocolors","../../../../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/lib/identifier.js","../../../../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/lib/index.js","../../../../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/lib/keyword.js","../../../../node_modules/.pnpm/@babel+helper-validator-identifier@7.28.5/node_modules/@babel/helper-validator-identifier/package.json","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/index.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/compile.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/core.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/evaluate.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/node-types.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/recma-build-jsx-transform.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/recma-document.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/recma-jsx-rewrite.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/rehype-remove-raw.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/plugin/remark-mark-and-unravel.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/run.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-create.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-declaration-to-expression.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-is-declaration.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-specifiers-to-declarations.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-to-binary-addition.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/estree-util-to-id-or-member-expression.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/extnames.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/resolve-evaluate-options.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/lib/util/resolve-file-and-options.js","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/@mdx-js/mdx/package.json","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/collapse-white-space","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/devlop","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/estree-util-is-identifier-name","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/estree-util-scope","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/estree-walker","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/markdown-extensions","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/recma-build-jsx","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/recma-jsx","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/recma-stringify","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/rehype-recma","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/remark-mdx","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/remark-parse","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/remark-rehype","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/unified","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/unist-util-position-from-estree","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/unist-util-stringify-position","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/unist-util-visit","../../../../node_modules/.pnpm/@mdx-js+mdx@3.1.1/node_modules/vfile","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/context.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/diag.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/metrics.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/propagation.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/trace.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/context.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/types.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/index.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/global-utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/semver.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/Metric.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/context-utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/span_kind.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/status.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/version.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/package.json","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/execAsync.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-bsd.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-darwin.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-linux.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-unsupported.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-win.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId.js","../../../../node_modules/.pnpm/@pinojs+redact@0.4.0/node_modules/@pinojs/redact/index.js","../../../../node_modules/.pnpm/@pinojs+redact@0.4.0/node_modules/@pinojs/redact/package.json","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/browserTracingIntegration.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/clientNormalizationIntegration.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/appRouterRoutingInstrumentation.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/isrRoutingTracing.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/nextRoutingInstrumentation.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/pagesRouterRoutingInstrumentation.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/parameterization.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/tunnelRoute.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/captureRequestError.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/debug-build.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/devErrorSymbolicationEventProcessor.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/getVercelEnv.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextNavigationErrorUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextSpanAttributes.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/_error.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentryVercelCrons.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapAppGetInitialPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapDocumentGetInitialPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapErrorGetInitialPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetInitialPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetServerSidePropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetStaticPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapPageComponentWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/span-attributes-with-logic-attached.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/addHeadersAsAttributes.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/dropMiddlewareTunnelRequests.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isBuild.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isUseCacheFunction.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/nextSpan.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/responseEnd.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/setUrlProcessingMetadata.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/tracingUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/urls.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/wrapperUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/withServerActionInstrumentation.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapGenerationFunctionWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapMiddlewareWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapRouteHandlerWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapServerComponentWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/getBuildPluginOptions.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/handleRunAfterProductionCompile.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/componentAnnotationLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/moduleMetadataInjectionLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/prefixLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/valueInjectionLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/wrappingLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/manifest/createRouteManifest.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/polyfills/perf_hooks.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/apiWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/middlewareWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/pageWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/requestAsyncStorageShim.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/routeHandlerWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/sentryInitWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/serverComponentWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/constructTurbopackConfig.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/generateValueInjectionRules.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/util.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/webpack.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/buildTime.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/constants.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/deprecatedWebpackOptions.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObject.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectBundlerUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/tunnel.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/distDirRewriteFramesIntegration.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/wrapApiHandlerWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.client.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.server.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/distDirRewriteFramesIntegration.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/handleOnSpanStart.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/prepareSafeIdGeneratorContext.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelCronsMonitoring.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelQueuesMonitoring.js","../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/deserialize.js","../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/index.js","../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/serialize.js","../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/esm/types.js","../../../../node_modules/.pnpm/@ungap+structured-clone@1.3.0/node_modules/@ungap/structured-clone/package.json","../../../../node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.16.0/node_modules/acorn","../../../../node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.16.0/node_modules/acorn-jsx/index.js","../../../../node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.16.0/node_modules/acorn-jsx/package.json","../../../../node_modules/.pnpm/acorn-jsx@5.3.2_acorn@8.16.0/node_modules/acorn-jsx/xhtml.js","../../../../node_modules/.pnpm/acorn@8.16.0/node_modules/acorn/dist/acorn.js","../../../../node_modules/.pnpm/acorn@8.16.0/node_modules/acorn/dist/acorn.mjs","../../../../node_modules/.pnpm/acorn@8.16.0/node_modules/acorn/package.json","../../../../node_modules/.pnpm/astring@1.9.0/node_modules/astring/dist/astring.mjs","../../../../node_modules/.pnpm/astring@1.9.0/node_modules/astring/package.json","../../../../node_modules/.pnpm/atomic-sleep@1.0.0/node_modules/atomic-sleep/index.js","../../../../node_modules/.pnpm/atomic-sleep@1.0.0/node_modules/atomic-sleep/package.json","../../../../node_modules/.pnpm/bail@2.0.2/node_modules/bail/index.js","../../../../node_modules/.pnpm/bail@2.0.2/node_modules/bail/package.json","../../../../node_modules/.pnpm/ccount@2.0.1/node_modules/ccount/index.js","../../../../node_modules/.pnpm/ccount@2.0.1/node_modules/ccount/package.json","../../../../node_modules/.pnpm/character-entities-html4@2.1.0/node_modules/character-entities-html4/index.js","../../../../node_modules/.pnpm/character-entities-html4@2.1.0/node_modules/character-entities-html4/package.json","../../../../node_modules/.pnpm/character-entities-legacy@3.0.0/node_modules/character-entities-legacy/index.js","../../../../node_modules/.pnpm/character-entities-legacy@3.0.0/node_modules/character-entities-legacy/package.json","../../../../node_modules/.pnpm/character-entities@2.0.2/node_modules/character-entities/index.js","../../../../node_modules/.pnpm/character-entities@2.0.2/node_modules/character-entities/package.json","../../../../node_modules/.pnpm/character-reference-invalid@2.0.1/node_modules/character-reference-invalid/index.js","../../../../node_modules/.pnpm/character-reference-invalid@2.0.1/node_modules/character-reference-invalid/package.json","../../../../node_modules/.pnpm/collapse-white-space@2.1.0/node_modules/collapse-white-space/index.js","../../../../node_modules/.pnpm/collapse-white-space@2.1.0/node_modules/collapse-white-space/package.json","../../../../node_modules/.pnpm/comma-separated-tokens@2.0.3/node_modules/comma-separated-tokens/index.js","../../../../node_modules/.pnpm/comma-separated-tokens@2.0.3/node_modules/comma-separated-tokens/package.json","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/package.json","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/browser.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/index.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/node.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/ms","../../../../node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/character-entities","../../../../node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/decode-named-character-reference/index.js","../../../../node_modules/.pnpm/decode-named-character-reference@1.3.0/node_modules/decode-named-character-reference/package.json","../../../../node_modules/.pnpm/devlop@1.1.0/node_modules/devlop/lib/default.js","../../../../node_modules/.pnpm/devlop@1.1.0/node_modules/devlop/package.json","../../../../node_modules/.pnpm/estree-util-attach-comments@3.0.0/node_modules/estree-util-attach-comments/index.js","../../../../node_modules/.pnpm/estree-util-attach-comments@3.0.0/node_modules/estree-util-attach-comments/lib/index.js","../../../../node_modules/.pnpm/estree-util-attach-comments@3.0.0/node_modules/estree-util-attach-comments/package.json","../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/devlop","../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-util-build-jsx/index.js","../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-util-build-jsx/lib/index.js","../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-util-build-jsx/package.json","../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-util-is-identifier-name","../../../../node_modules/.pnpm/estree-util-build-jsx@3.0.1/node_modules/estree-walker","../../../../node_modules/.pnpm/estree-util-is-identifier-name@3.0.0/node_modules/estree-util-is-identifier-name/index.js","../../../../node_modules/.pnpm/estree-util-is-identifier-name@3.0.0/node_modules/estree-util-is-identifier-name/lib/index.js","../../../../node_modules/.pnpm/estree-util-is-identifier-name@3.0.0/node_modules/estree-util-is-identifier-name/package.json","../../../../node_modules/.pnpm/estree-util-scope@1.0.0/node_modules/devlop","../../../../node_modules/.pnpm/estree-util-scope@1.0.0/node_modules/estree-util-scope/index.js","../../../../node_modules/.pnpm/estree-util-scope@1.0.0/node_modules/estree-util-scope/lib/index.js","../../../../node_modules/.pnpm/estree-util-scope@1.0.0/node_modules/estree-util-scope/package.json","../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/astring","../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/estree-util-to-js/index.js","../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/estree-util-to-js/lib/index.js","../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/estree-util-to-js/lib/jsx.js","../../../../node_modules/.pnpm/estree-util-to-js@2.0.0/node_modules/estree-util-to-js/package.json","../../../../node_modules/.pnpm/estree-util-visit@2.0.0/node_modules/estree-util-visit/index.js","../../../../node_modules/.pnpm/estree-util-visit@2.0.0/node_modules/estree-util-visit/lib/color.node.js","../../../../node_modules/.pnpm/estree-util-visit@2.0.0/node_modules/estree-util-visit/lib/index.js","../../../../node_modules/.pnpm/estree-util-visit@2.0.0/node_modules/estree-util-visit/package.json","../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/package.json","../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/async.js","../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/index.js","../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/sync.js","../../../../node_modules/.pnpm/estree-walker@3.0.3/node_modules/estree-walker/src/walker.js","../../../../node_modules/.pnpm/extend@3.0.2/node_modules/extend/index.js","../../../../node_modules/.pnpm/extend@3.0.2/node_modules/extend/package.json","../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js","../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/package.json","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/comma-separated-tokens","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/devlop","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/estree-util-attach-comments","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/estree-util-is-identifier-name","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/index.js","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/comment.js","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/element.js","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/index.js","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/mdx-expression.js","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/mdx-jsx-element.js","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/mdxjs-esm.js","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/root.js","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/handlers/text.js","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/index.js","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/lib/state.js","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-to-estree/package.json","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/hast-util-whitespace","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/property-information","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/space-separated-tokens","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/style-to-js","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/unist-util-position","../../../../node_modules/.pnpm/hast-util-to-estree@3.1.3/node_modules/zwitch","../../../../node_modules/.pnpm/hast-util-whitespace@3.0.0/node_modules/hast-util-whitespace/index.js","../../../../node_modules/.pnpm/hast-util-whitespace@3.0.0/node_modules/hast-util-whitespace/lib/index.js","../../../../node_modules/.pnpm/hast-util-whitespace@3.0.0/node_modules/hast-util-whitespace/package.json","../../../../node_modules/.pnpm/import-in-the-middle@1.15.0/node_modules/import-in-the-middle/package.json","../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/index.js","../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/lib/register.js","../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/package.json","../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/module-details-from-path","../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/index.js","../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/lib/register.js","../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/package.json","../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/module-details-from-path","../../../../node_modules/.pnpm/inline-style-parser@0.2.7/node_modules/inline-style-parser/cjs/index.js","../../../../node_modules/.pnpm/inline-style-parser@0.2.7/node_modules/inline-style-parser/package.json","../../../../node_modules/.pnpm/is-alphabetical@2.0.1/node_modules/is-alphabetical/index.js","../../../../node_modules/.pnpm/is-alphabetical@2.0.1/node_modules/is-alphabetical/package.json","../../../../node_modules/.pnpm/is-alphanumerical@2.0.1/node_modules/is-alphabetical","../../../../node_modules/.pnpm/is-alphanumerical@2.0.1/node_modules/is-alphanumerical/index.js","../../../../node_modules/.pnpm/is-alphanumerical@2.0.1/node_modules/is-alphanumerical/package.json","../../../../node_modules/.pnpm/is-alphanumerical@2.0.1/node_modules/is-decimal","../../../../node_modules/.pnpm/is-decimal@2.0.1/node_modules/is-decimal/index.js","../../../../node_modules/.pnpm/is-decimal@2.0.1/node_modules/is-decimal/package.json","../../../../node_modules/.pnpm/is-hexadecimal@2.0.1/node_modules/is-hexadecimal/index.js","../../../../node_modules/.pnpm/is-hexadecimal@2.0.1/node_modules/is-hexadecimal/package.json","../../../../node_modules/.pnpm/is-plain-obj@4.1.0/node_modules/is-plain-obj/index.js","../../../../node_modules/.pnpm/is-plain-obj@4.1.0/node_modules/is-plain-obj/package.json","../../../../node_modules/.pnpm/js-tokens@4.0.0/node_modules/js-tokens/index.js","../../../../node_modules/.pnpm/js-tokens@4.0.0/node_modules/js-tokens/package.json","../../../../node_modules/.pnpm/markdown-extensions@2.0.0/node_modules/markdown-extensions/index.js","../../../../node_modules/.pnpm/markdown-extensions@2.0.0/node_modules/markdown-extensions/package.json","../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/decode-named-character-reference","../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/index.js","../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/lib/index.js","../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-from-markdown/package.json","../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/mdast-util-to-string","../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/micromark","../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/micromark-util-decode-numeric-character-reference","../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/micromark-util-decode-string","../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/micromark-util-normalize-identifier","../../../../node_modules/.pnpm/mdast-util-from-markdown@2.0.3/node_modules/unist-util-stringify-position","../../../../node_modules/.pnpm/mdast-util-mdx-expression@2.0.1/node_modules/devlop","../../../../node_modules/.pnpm/mdast-util-mdx-expression@2.0.1/node_modules/mdast-util-mdx-expression/index.js","../../../../node_modules/.pnpm/mdast-util-mdx-expression@2.0.1/node_modules/mdast-util-mdx-expression/lib/index.js","../../../../node_modules/.pnpm/mdast-util-mdx-expression@2.0.1/node_modules/mdast-util-mdx-expression/package.json","../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/ccount","../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/devlop","../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/mdast-util-mdx-jsx/index.js","../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/mdast-util-mdx-jsx/lib/index.js","../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/mdast-util-mdx-jsx/package.json","../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/parse-entities","../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/stringify-entities","../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/unist-util-stringify-position","../../../../node_modules/.pnpm/mdast-util-mdx-jsx@3.2.0/node_modules/vfile-message","../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx-expression","../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx-jsx","../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx/index.js","../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx/lib/index.js","../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdx/package.json","../../../../node_modules/.pnpm/mdast-util-mdx@3.0.0/node_modules/mdast-util-mdxjs-esm","../../../../node_modules/.pnpm/mdast-util-mdxjs-esm@2.0.1/node_modules/devlop","../../../../node_modules/.pnpm/mdast-util-mdxjs-esm@2.0.1/node_modules/mdast-util-mdxjs-esm/index.js","../../../../node_modules/.pnpm/mdast-util-mdxjs-esm@2.0.1/node_modules/mdast-util-mdxjs-esm/lib/index.js","../../../../node_modules/.pnpm/mdast-util-mdxjs-esm@2.0.1/node_modules/mdast-util-mdxjs-esm/package.json","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/@ungap/structured-clone","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/devlop","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/index.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/footer.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/break.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/code.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/delete.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/heading.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/html.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/image.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/index.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/link.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/list.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/root.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/strong.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table-cell.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table-row.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/table.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/text.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/index.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/revert.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/lib/state.js","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/mdast-util-to-hast/package.json","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/micromark-util-sanitize-uri","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/trim-lines","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/unist-util-position","../../../../node_modules/.pnpm/mdast-util-to-hast@13.2.1/node_modules/unist-util-visit","../../../../node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/index.js","../../../../node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/lib/index.js","../../../../node_modules/.pnpm/mdast-util-to-string@4.0.0/node_modules/mdast-util-to-string/package.json","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/decode-named-character-reference","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/index.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/attention.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/autolink.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/blank-line.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/block-quote.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/character-escape.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/character-reference.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-fenced.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-indented.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/code-text.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/content.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/definition.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/heading-atx.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/html-flow.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/html-text.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-end.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-start-image.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/label-start-link.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/line-ending.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/list.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/setext-underline.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/lib/thematic-break.js","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-core-commonmark/package.json","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-destination","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-label","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-space","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-title","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-factory-whitespace","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-character","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-chunked","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-classify-character","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-html-tag-name","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-normalize-identifier","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-resolve-all","../../../../node_modules/.pnpm/micromark-core-commonmark@2.0.3/node_modules/micromark-util-subtokenize","../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-extension-mdx-expression/index.js","../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-extension-mdx-expression/lib/syntax.js","../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-extension-mdx-expression/package.json","../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-factory-mdx-expression","../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-factory-space","../../../../node_modules/.pnpm/micromark-extension-mdx-expression@3.0.1/node_modules/micromark-util-character","../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/estree-util-is-identifier-name","../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/index.js","../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/lib/factory-tag.js","../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/lib/jsx-flow.js","../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/lib/jsx-text.js","../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/lib/syntax.js","../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-extension-mdx-jsx/package.json","../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-factory-mdx-expression","../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-factory-space","../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/micromark-util-character","../../../../node_modules/.pnpm/micromark-extension-mdx-jsx@3.0.1/node_modules/vfile-message","../../../../node_modules/.pnpm/micromark-extension-mdx-md@2.0.0/node_modules/micromark-extension-mdx-md/index.js","../../../../node_modules/.pnpm/micromark-extension-mdx-md@2.0.0/node_modules/micromark-extension-mdx-md/package.json","../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-core-commonmark","../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-extension-mdxjs-esm/index.js","../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-extension-mdxjs-esm/lib/syntax.js","../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-extension-mdxjs-esm/package.json","../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-util-character","../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/micromark-util-events-to-acorn","../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/unist-util-position-from-estree","../../../../node_modules/.pnpm/micromark-extension-mdxjs-esm@3.0.0/node_modules/vfile-message","../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/acorn","../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/acorn-jsx","../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdx-expression","../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdx-jsx","../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdx-md","../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdxjs-esm","../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdxjs/index.js","../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-extension-mdxjs/package.json","../../../../node_modules/.pnpm/micromark-extension-mdxjs@3.0.0/node_modules/micromark-util-combine-extensions","../../../../node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-factory-destination/index.js","../../../../node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-factory-destination/package.json","../../../../node_modules/.pnpm/micromark-factory-destination@2.0.1/node_modules/micromark-util-character","../../../../node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-factory-label/index.js","../../../../node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-factory-label/package.json","../../../../node_modules/.pnpm/micromark-factory-label@2.0.1/node_modules/micromark-util-character","../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-factory-mdx-expression/index.js","../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-factory-mdx-expression/package.json","../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-factory-space","../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-util-character","../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/micromark-util-events-to-acorn","../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/unist-util-position-from-estree","../../../../node_modules/.pnpm/micromark-factory-mdx-expression@2.0.3/node_modules/vfile-message","../../../../node_modules/.pnpm/micromark-factory-space@2.0.1/node_modules/micromark-factory-space/index.js","../../../../node_modules/.pnpm/micromark-factory-space@2.0.1/node_modules/micromark-factory-space/package.json","../../../../node_modules/.pnpm/micromark-factory-space@2.0.1/node_modules/micromark-util-character","../../../../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-space","../../../../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-title/index.js","../../../../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-factory-title/package.json","../../../../node_modules/.pnpm/micromark-factory-title@2.0.1/node_modules/micromark-util-character","../../../../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-space","../../../../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-whitespace/index.js","../../../../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-factory-whitespace/package.json","../../../../node_modules/.pnpm/micromark-factory-whitespace@2.0.1/node_modules/micromark-util-character","../../../../node_modules/.pnpm/micromark-util-character@2.1.1/node_modules/micromark-util-character/index.js","../../../../node_modules/.pnpm/micromark-util-character@2.1.1/node_modules/micromark-util-character/package.json","../../../../node_modules/.pnpm/micromark-util-chunked@2.0.1/node_modules/micromark-util-chunked/index.js","../../../../node_modules/.pnpm/micromark-util-chunked@2.0.1/node_modules/micromark-util-chunked/package.json","../../../../node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-character","../../../../node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-classify-character/index.js","../../../../node_modules/.pnpm/micromark-util-classify-character@2.0.1/node_modules/micromark-util-classify-character/package.json","../../../../node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-chunked","../../../../node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-combine-extensions/index.js","../../../../node_modules/.pnpm/micromark-util-combine-extensions@2.0.1/node_modules/micromark-util-combine-extensions/package.json","../../../../node_modules/.pnpm/micromark-util-decode-numeric-character-reference@2.0.2/node_modules/micromark-util-decode-numeric-character-reference/index.js","../../../../node_modules/.pnpm/micromark-util-decode-numeric-character-reference@2.0.2/node_modules/micromark-util-decode-numeric-character-reference/package.json","../../../../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/decode-named-character-reference","../../../../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-numeric-character-reference","../../../../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-string/index.js","../../../../node_modules/.pnpm/micromark-util-decode-string@2.0.1/node_modules/micromark-util-decode-string/package.json","../../../../node_modules/.pnpm/micromark-util-encode@2.0.1/node_modules/micromark-util-encode/index.js","../../../../node_modules/.pnpm/micromark-util-encode@2.0.1/node_modules/micromark-util-encode/package.json","../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/estree-util-visit","../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/micromark-util-events-to-acorn/index.js","../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/micromark-util-events-to-acorn/lib/index.js","../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/micromark-util-events-to-acorn/package.json","../../../../node_modules/.pnpm/micromark-util-events-to-acorn@2.0.3/node_modules/vfile-message","../../../../node_modules/.pnpm/micromark-util-html-tag-name@2.0.1/node_modules/micromark-util-html-tag-name/index.js","../../../../node_modules/.pnpm/micromark-util-html-tag-name@2.0.1/node_modules/micromark-util-html-tag-name/package.json","../../../../node_modules/.pnpm/micromark-util-normalize-identifier@2.0.1/node_modules/micromark-util-normalize-identifier/index.js","../../../../node_modules/.pnpm/micromark-util-normalize-identifier@2.0.1/node_modules/micromark-util-normalize-identifier/package.json","../../../../node_modules/.pnpm/micromark-util-resolve-all@2.0.1/node_modules/micromark-util-resolve-all/index.js","../../../../node_modules/.pnpm/micromark-util-resolve-all@2.0.1/node_modules/micromark-util-resolve-all/package.json","../../../../node_modules/.pnpm/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-character","../../../../node_modules/.pnpm/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-encode","../../../../node_modules/.pnpm/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-sanitize-uri/index.js","../../../../node_modules/.pnpm/micromark-util-sanitize-uri@2.0.1/node_modules/micromark-util-sanitize-uri/package.json","../../../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-chunked","../../../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/index.js","../../../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/lib/splice-buffer.js","../../../../node_modules/.pnpm/micromark-util-subtokenize@2.1.0/node_modules/micromark-util-subtokenize/package.json","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/decode-named-character-reference","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-core-commonmark","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-factory-space","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-character","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-chunked","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-combine-extensions","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-decode-numeric-character-reference","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-encode","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-normalize-identifier","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-resolve-all","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-sanitize-uri","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark-util-subtokenize","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/index.js","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/compile.js","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/constructs.js","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/create-tokenizer.js","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/content.js","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/document.js","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/flow.js","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/initialize/text.js","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/parse.js","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/postprocess.js","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/lib/preprocess.js","../../../../node_modules/.pnpm/micromark@4.0.2/node_modules/micromark/package.json","../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/index.js","../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/package.json","../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js","../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/package.json","../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/@babel/code-frame","../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/@mdx-js/mdx","../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/format-mdx-error.js","../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/jsx-runtime.cjs","../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/plugins/remove-imports-exports.js","../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/rsc.js","../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/dist/serialize.js","../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/package.json","../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/next-mdx-remote/rsc.js","../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/react","../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/unist-util-remove","../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/vfile","../../../../node_modules/.pnpm/next-mdx-remote@5.0.0_@types+react@19.2.14_react@19.2.4/node_modules/vfile-matter","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/@opentelemetry/api","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/LICENSE","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/index.edge.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/index.node.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/noto-sans-v27-latin-regular.ttf","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/package.json","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/resvg.wasm","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/satori/LICENSE","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/yoga.wasm","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/constants.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/interop-default.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/is-error.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/runtime-reacts.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/package.json","../../../../node_modules/.pnpm/node_modules/@babel/code-frame","../../../../node_modules/.pnpm/node_modules/@babel/helper-validator-identifier","../../../../node_modules/.pnpm/node_modules/@mdx-js/mdx","../../../../node_modules/.pnpm/node_modules/@opentelemetry/api","../../../../node_modules/.pnpm/node_modules/@pinojs/redact","../../../../node_modules/.pnpm/node_modules/@ungap/structured-clone","../../../../node_modules/.pnpm/node_modules/acorn","../../../../node_modules/.pnpm/node_modules/acorn-jsx","../../../../node_modules/.pnpm/node_modules/astring","../../../../node_modules/.pnpm/node_modules/atomic-sleep","../../../../node_modules/.pnpm/node_modules/bail","../../../../node_modules/.pnpm/node_modules/ccount","../../../../node_modules/.pnpm/node_modules/character-entities","../../../../node_modules/.pnpm/node_modules/character-entities-html4","../../../../node_modules/.pnpm/node_modules/character-entities-legacy","../../../../node_modules/.pnpm/node_modules/character-reference-invalid","../../../../node_modules/.pnpm/node_modules/collapse-white-space","../../../../node_modules/.pnpm/node_modules/comma-separated-tokens","../../../../node_modules/.pnpm/node_modules/debug","../../../../node_modules/.pnpm/node_modules/decode-named-character-reference","../../../../node_modules/.pnpm/node_modules/devlop","../../../../node_modules/.pnpm/node_modules/estree-util-attach-comments","../../../../node_modules/.pnpm/node_modules/estree-util-build-jsx","../../../../node_modules/.pnpm/node_modules/estree-util-is-identifier-name","../../../../node_modules/.pnpm/node_modules/estree-util-scope","../../../../node_modules/.pnpm/node_modules/estree-util-to-js","../../../../node_modules/.pnpm/node_modules/estree-util-visit","../../../../node_modules/.pnpm/node_modules/estree-walker","../../../../node_modules/.pnpm/node_modules/extend","../../../../node_modules/.pnpm/node_modules/has-flag","../../../../node_modules/.pnpm/node_modules/hast-util-to-estree","../../../../node_modules/.pnpm/node_modules/hast-util-whitespace","../../../../node_modules/.pnpm/node_modules/inline-style-parser","../../../../node_modules/.pnpm/node_modules/is-alphabetical","../../../../node_modules/.pnpm/node_modules/is-alphanumerical","../../../../node_modules/.pnpm/node_modules/is-decimal","../../../../node_modules/.pnpm/node_modules/is-hexadecimal","../../../../node_modules/.pnpm/node_modules/is-plain-obj","../../../../node_modules/.pnpm/node_modules/js-tokens","../../../../node_modules/.pnpm/node_modules/markdown-extensions","../../../../node_modules/.pnpm/node_modules/mdast-util-from-markdown","../../../../node_modules/.pnpm/node_modules/mdast-util-mdx","../../../../node_modules/.pnpm/node_modules/mdast-util-mdx-expression","../../../../node_modules/.pnpm/node_modules/mdast-util-mdx-jsx","../../../../node_modules/.pnpm/node_modules/mdast-util-mdxjs-esm","../../../../node_modules/.pnpm/node_modules/mdast-util-to-hast","../../../../node_modules/.pnpm/node_modules/mdast-util-to-string","../../../../node_modules/.pnpm/node_modules/micromark","../../../../node_modules/.pnpm/node_modules/micromark-core-commonmark","../../../../node_modules/.pnpm/node_modules/micromark-extension-mdx-expression","../../../../node_modules/.pnpm/node_modules/micromark-extension-mdx-jsx","../../../../node_modules/.pnpm/node_modules/micromark-extension-mdx-md","../../../../node_modules/.pnpm/node_modules/micromark-extension-mdxjs","../../../../node_modules/.pnpm/node_modules/micromark-extension-mdxjs-esm","../../../../node_modules/.pnpm/node_modules/micromark-factory-destination","../../../../node_modules/.pnpm/node_modules/micromark-factory-label","../../../../node_modules/.pnpm/node_modules/micromark-factory-mdx-expression","../../../../node_modules/.pnpm/node_modules/micromark-factory-space","../../../../node_modules/.pnpm/node_modules/micromark-factory-title","../../../../node_modules/.pnpm/node_modules/micromark-factory-whitespace","../../../../node_modules/.pnpm/node_modules/micromark-util-character","../../../../node_modules/.pnpm/node_modules/micromark-util-chunked","../../../../node_modules/.pnpm/node_modules/micromark-util-classify-character","../../../../node_modules/.pnpm/node_modules/micromark-util-combine-extensions","../../../../node_modules/.pnpm/node_modules/micromark-util-decode-numeric-character-reference","../../../../node_modules/.pnpm/node_modules/micromark-util-decode-string","../../../../node_modules/.pnpm/node_modules/micromark-util-encode","../../../../node_modules/.pnpm/node_modules/micromark-util-events-to-acorn","../../../../node_modules/.pnpm/node_modules/micromark-util-html-tag-name","../../../../node_modules/.pnpm/node_modules/micromark-util-normalize-identifier","../../../../node_modules/.pnpm/node_modules/micromark-util-resolve-all","../../../../node_modules/.pnpm/node_modules/micromark-util-sanitize-uri","../../../../node_modules/.pnpm/node_modules/micromark-util-subtokenize","../../../../node_modules/.pnpm/node_modules/module-details-from-path","../../../../node_modules/.pnpm/node_modules/ms","../../../../node_modules/.pnpm/node_modules/on-exit-leak-free","../../../../node_modules/.pnpm/node_modules/parse-entities","../../../../node_modules/.pnpm/node_modules/picocolors","../../../../node_modules/.pnpm/node_modules/pino-std-serializers","../../../../node_modules/.pnpm/node_modules/property-information","../../../../node_modules/.pnpm/node_modules/quick-format-unescaped","../../../../node_modules/.pnpm/node_modules/real-require","../../../../node_modules/.pnpm/node_modules/recma-build-jsx","../../../../node_modules/.pnpm/node_modules/recma-jsx","../../../../node_modules/.pnpm/node_modules/recma-stringify","../../../../node_modules/.pnpm/node_modules/rehype-recma","../../../../node_modules/.pnpm/node_modules/remark-mdx","../../../../node_modules/.pnpm/node_modules/remark-parse","../../../../node_modules/.pnpm/node_modules/remark-rehype","../../../../node_modules/.pnpm/node_modules/safe-stable-stringify","../../../../node_modules/.pnpm/node_modules/sonic-boom","../../../../node_modules/.pnpm/node_modules/space-separated-tokens","../../../../node_modules/.pnpm/node_modules/stringify-entities","../../../../node_modules/.pnpm/node_modules/style-to-js","../../../../node_modules/.pnpm/node_modules/style-to-object","../../../../node_modules/.pnpm/node_modules/supports-color","../../../../node_modules/.pnpm/node_modules/thread-stream","../../../../node_modules/.pnpm/node_modules/trim-lines","../../../../node_modules/.pnpm/node_modules/trough","../../../../node_modules/.pnpm/node_modules/unified","../../../../node_modules/.pnpm/node_modules/unist-util-is","../../../../node_modules/.pnpm/node_modules/unist-util-position","../../../../node_modules/.pnpm/node_modules/unist-util-position-from-estree","../../../../node_modules/.pnpm/node_modules/unist-util-remove","../../../../node_modules/.pnpm/node_modules/unist-util-stringify-position","../../../../node_modules/.pnpm/node_modules/unist-util-visit","../../../../node_modules/.pnpm/node_modules/unist-util-visit-parents","../../../../node_modules/.pnpm/node_modules/vfile","../../../../node_modules/.pnpm/node_modules/vfile-matter","../../../../node_modules/.pnpm/node_modules/vfile-message","../../../../node_modules/.pnpm/node_modules/yaml","../../../../node_modules/.pnpm/node_modules/zwitch","../../../../node_modules/.pnpm/on-exit-leak-free@2.1.2/node_modules/on-exit-leak-free/index.js","../../../../node_modules/.pnpm/on-exit-leak-free@2.1.2/node_modules/on-exit-leak-free/package.json","../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/character-entities-legacy","../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/character-reference-invalid","../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/decode-named-character-reference","../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/is-alphanumerical","../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/is-decimal","../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/is-hexadecimal","../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/parse-entities/index.js","../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/parse-entities/lib/index.js","../../../../node_modules/.pnpm/parse-entities@4.0.2/node_modules/parse-entities/package.json","../../../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/package.json","../../../../node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js","../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/index.js","../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-helpers.js","../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-proto.js","../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-with-cause.js","../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err.js","../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/req.js","../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/res.js","../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/package.json","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/@pinojs/redact","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/atomic-sleep","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/on-exit-leak-free","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino-std-serializers","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/file.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/caller.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/constants.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/deprecations.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/levels.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/meta.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/multistream.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/proto.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/redaction.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/symbols.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/time.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/tools.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/transport-stream.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/transport.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/worker.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/package.json","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/pino.js","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/quick-format-unescaped","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/safe-stable-stringify","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/sonic-boom","../../../../node_modules/.pnpm/pino@10.3.1/node_modules/thread-stream","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/index.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/aria.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/find.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/hast-to-react.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/html.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/normalize.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/svg.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/case-insensitive-transform.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/case-sensitive-transform.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/create.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/defined-info.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/info.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/merge.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/schema.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/util/types.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/xlink.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/xml.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/lib/xmlns.js","../../../../node_modules/.pnpm/property-information@7.1.0/node_modules/property-information/package.json","../../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/index.js","../../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/package.json","../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-jsx-dev-runtime.development.js","../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-jsx-dev-runtime.production.js","../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-jsx-runtime.development.js","../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react-jsx-runtime.production.js","../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react.development.js","../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/cjs/react.production.js","../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/index.js","../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/jsx-dev-runtime.js","../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/jsx-runtime.js","../../../../node_modules/.pnpm/react@19.2.4/node_modules/react/package.json","../../../../node_modules/.pnpm/real-require@0.2.0/node_modules/real-require/package.json","../../../../node_modules/.pnpm/real-require@0.2.0/node_modules/real-require/src/index.js","../../../../node_modules/.pnpm/recma-build-jsx@1.0.0/node_modules/estree-util-build-jsx","../../../../node_modules/.pnpm/recma-build-jsx@1.0.0/node_modules/recma-build-jsx/index.js","../../../../node_modules/.pnpm/recma-build-jsx@1.0.0/node_modules/recma-build-jsx/lib/index.js","../../../../node_modules/.pnpm/recma-build-jsx@1.0.0/node_modules/recma-build-jsx/package.json","../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/acorn-jsx","../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/estree-util-to-js","../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/recma-jsx/index.js","../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/recma-jsx/lib/index.js","../../../../node_modules/.pnpm/recma-jsx@1.0.1_acorn@8.16.0/node_modules/recma-jsx/package.json","../../../../node_modules/.pnpm/recma-stringify@1.0.0/node_modules/estree-util-to-js","../../../../node_modules/.pnpm/recma-stringify@1.0.0/node_modules/recma-stringify/index.js","../../../../node_modules/.pnpm/recma-stringify@1.0.0/node_modules/recma-stringify/lib/index.js","../../../../node_modules/.pnpm/recma-stringify@1.0.0/node_modules/recma-stringify/package.json","../../../../node_modules/.pnpm/rehype-recma@1.0.0/node_modules/hast-util-to-estree","../../../../node_modules/.pnpm/rehype-recma@1.0.0/node_modules/rehype-recma/index.js","../../../../node_modules/.pnpm/rehype-recma@1.0.0/node_modules/rehype-recma/lib/index.js","../../../../node_modules/.pnpm/rehype-recma@1.0.0/node_modules/rehype-recma/package.json","../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/mdast-util-mdx","../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/micromark-extension-mdxjs","../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/remark-mdx/index.js","../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/remark-mdx/lib/index.js","../../../../node_modules/.pnpm/remark-mdx@3.1.1/node_modules/remark-mdx/package.json","../../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/mdast-util-from-markdown","../../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/index.js","../../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/lib/index.js","../../../../node_modules/.pnpm/remark-parse@11.0.0/node_modules/remark-parse/package.json","../../../../node_modules/.pnpm/remark-rehype@11.1.2/node_modules/mdast-util-to-hast","../../../../node_modules/.pnpm/remark-rehype@11.1.2/node_modules/remark-rehype/index.js","../../../../node_modules/.pnpm/remark-rehype@11.1.2/node_modules/remark-rehype/lib/index.js","../../../../node_modules/.pnpm/remark-rehype@11.1.2/node_modules/remark-rehype/package.json","../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/debug","../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/module-details-from-path","../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/index.js","../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/package.json","../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/index.js","../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/package.json","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/atomic-sleep","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/LICENSE","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/README.md","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/bench.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/check.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/example.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/fixtures/firehose.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/index.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/package.json","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/destroy.test.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/end.test.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/flush-sync.test.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/flush.test.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/fsync.test.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/helper.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/minlength.test.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/mode.test.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/periodicflush.test.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/reopen.test.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/retry.test.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/sync.test.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/write.test.js","../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/types/tests/test.ts","../../../../node_modules/.pnpm/space-separated-tokens@2.0.2/node_modules/space-separated-tokens/index.js","../../../../node_modules/.pnpm/space-separated-tokens@2.0.2/node_modules/space-separated-tokens/package.json","../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/character-entities-html4","../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/character-entities-legacy","../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/index.js","../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/constant/dangerous.js","../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/core.js","../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/index.js","../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/format-basic.js","../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/format-smart.js","../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-decimal.js","../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-hexadecimal.js","../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/lib/util/to-named.js","../../../../node_modules/.pnpm/stringify-entities@4.0.4/node_modules/stringify-entities/package.json","../../../../node_modules/.pnpm/style-to-js@1.1.21/node_modules/style-to-js/cjs/index.js","../../../../node_modules/.pnpm/style-to-js@1.1.21/node_modules/style-to-js/cjs/utilities.js","../../../../node_modules/.pnpm/style-to-js@1.1.21/node_modules/style-to-js/package.json","../../../../node_modules/.pnpm/style-to-js@1.1.21/node_modules/style-to-object","../../../../node_modules/.pnpm/style-to-object@1.0.14/node_modules/inline-style-parser","../../../../node_modules/.pnpm/style-to-object@1.0.14/node_modules/style-to-object/cjs/index.js","../../../../node_modules/.pnpm/style-to-object@1.0.14/node_modules/style-to-object/package.json","../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/has-flag","../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js","../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/package.json","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/real-require","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/LICENSE","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/bench.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/eslint.config.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/index.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/indexes.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/wait.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/worker.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/package.json","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/base.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/bench.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/bundlers.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/close-on-gc.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/commonjs-fallback.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/context.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/create-and-exit.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/custom-worker.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/dir with spaces/test-package.zip","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/emit-event.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/end.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/error.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/esm.test.mjs","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/event.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/exit.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/get-context.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/helper.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/indexes.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/multibyte-chars.test.mjs","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/on-message.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/index.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/pkg.config.json","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/pkg.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/port.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/post-message.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/string-limit-2.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/string-limit.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/syntax-error.mjs","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/thread-management.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file-on-destroy.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file-on-final.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file.mjs","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-next.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/transpiled.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-commonjs-default-export.zip","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-native.test.mjs","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-node-fallback.test.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts/to-file.ts","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts/transpile.sh","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/uncaughtException.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/unhandledRejection.js","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/yarnrc.yml","../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/tsconfig.json","../../../../node_modules/.pnpm/trim-lines@3.0.1/node_modules/trim-lines/index.js","../../../../node_modules/.pnpm/trim-lines@3.0.1/node_modules/trim-lines/package.json","../../../../node_modules/.pnpm/trough@2.2.0/node_modules/trough/index.js","../../../../node_modules/.pnpm/trough@2.2.0/node_modules/trough/lib/index.js","../../../../node_modules/.pnpm/trough@2.2.0/node_modules/trough/package.json","../../../../node_modules/.pnpm/unified@11.0.5/node_modules/bail","../../../../node_modules/.pnpm/unified@11.0.5/node_modules/devlop","../../../../node_modules/.pnpm/unified@11.0.5/node_modules/extend","../../../../node_modules/.pnpm/unified@11.0.5/node_modules/is-plain-obj","../../../../node_modules/.pnpm/unified@11.0.5/node_modules/trough","../../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/index.js","../../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/lib/callable-instance.js","../../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/lib/index.js","../../../../node_modules/.pnpm/unified@11.0.5/node_modules/unified/package.json","../../../../node_modules/.pnpm/unified@11.0.5/node_modules/vfile","../../../../node_modules/.pnpm/unist-util-is@5.2.1/node_modules/unist-util-is/index.js","../../../../node_modules/.pnpm/unist-util-is@5.2.1/node_modules/unist-util-is/lib/index.js","../../../../node_modules/.pnpm/unist-util-is@5.2.1/node_modules/unist-util-is/package.json","../../../../node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/index.js","../../../../node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/lib/index.js","../../../../node_modules/.pnpm/unist-util-is@6.0.1/node_modules/unist-util-is/package.json","../../../../node_modules/.pnpm/unist-util-position-from-estree@2.0.0/node_modules/unist-util-position-from-estree/index.js","../../../../node_modules/.pnpm/unist-util-position-from-estree@2.0.0/node_modules/unist-util-position-from-estree/lib/index.js","../../../../node_modules/.pnpm/unist-util-position-from-estree@2.0.0/node_modules/unist-util-position-from-estree/package.json","../../../../node_modules/.pnpm/unist-util-position@5.0.0/node_modules/unist-util-position/index.js","../../../../node_modules/.pnpm/unist-util-position@5.0.0/node_modules/unist-util-position/lib/index.js","../../../../node_modules/.pnpm/unist-util-position@5.0.0/node_modules/unist-util-position/package.json","../../../../node_modules/.pnpm/unist-util-remove@3.1.1/node_modules/unist-util-is","../../../../node_modules/.pnpm/unist-util-remove@3.1.1/node_modules/unist-util-remove/index.js","../../../../node_modules/.pnpm/unist-util-remove@3.1.1/node_modules/unist-util-remove/lib/index.js","../../../../node_modules/.pnpm/unist-util-remove@3.1.1/node_modules/unist-util-remove/package.json","../../../../node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/index.js","../../../../node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/lib/index.js","../../../../node_modules/.pnpm/unist-util-stringify-position@4.0.0/node_modules/unist-util-stringify-position/package.json","../../../../node_modules/.pnpm/unist-util-visit-parents@5.1.3/node_modules/unist-util-visit-parents/package.json","../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-is","../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/index.js","../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/color.node.js","../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/lib/index.js","../../../../node_modules/.pnpm/unist-util-visit-parents@6.0.2/node_modules/unist-util-visit-parents/package.json","../../../../node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit-parents","../../../../node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit/index.js","../../../../node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit/lib/index.js","../../../../node_modules/.pnpm/unist-util-visit@5.1.0/node_modules/unist-util-visit/package.json","../../../../node_modules/.pnpm/vfile-matter@5.0.1/node_modules/vfile-matter/index.js","../../../../node_modules/.pnpm/vfile-matter@5.0.1/node_modules/vfile-matter/lib/index.js","../../../../node_modules/.pnpm/vfile-matter@5.0.1/node_modules/vfile-matter/package.json","../../../../node_modules/.pnpm/vfile-matter@5.0.1/node_modules/yaml","../../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/unist-util-stringify-position","../../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/index.js","../../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/lib/index.js","../../../../node_modules/.pnpm/vfile-message@4.0.3/node_modules/vfile-message/package.json","../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile-message","../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/index.js","../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/index.js","../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minpath.js","../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minproc.js","../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minurl.js","../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/lib/minurl.shared.js","../../../../node_modules/.pnpm/vfile@6.0.3/node_modules/vfile/package.json","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/compose-collection.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/compose-doc.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/compose-node.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/compose-scalar.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/composer.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-block-map.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-block-scalar.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-block-seq.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-end.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-flow-collection.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-flow-scalar.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/resolve-props.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/util-contains-newline.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/util-empty-scalar-position.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/util-flow-indent-check.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/compose/util-map-includes.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/Document.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/anchors.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/applyReviver.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/createNode.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/doc/directives.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/errors.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/index.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/log.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Alias.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Collection.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Node.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Pair.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/Scalar.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/YAMLMap.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/YAMLSeq.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/addPairToJSMap.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/identity.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/nodes/toJS.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/cst-scalar.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/cst-stringify.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/cst-visit.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/cst.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/lexer.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/line-counter.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/parse/parser.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/public-api.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/Schema.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/common/map.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/common/null.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/common/seq.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/common/string.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/core/bool.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/core/float.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/core/int.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/core/schema.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/json/schema.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/tags.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/binary.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/bool.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/float.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/int.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/merge.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/omap.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/pairs.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/schema.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/set.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/foldFlowLines.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringify.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyCollection.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyComment.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyDocument.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyNumber.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyPair.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/stringify/stringifyString.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/dist/visit.js","../../../../node_modules/.pnpm/yaml@2.8.3/node_modules/yaml/package.json","../../../../node_modules/.pnpm/zwitch@2.0.4/node_modules/zwitch/index.js","../../../../node_modules/.pnpm/zwitch@2.0.4/node_modules/zwitch/package.json","../../../../node_modules/import-in-the-middle","../../../../node_modules/next","../../../../node_modules/pino","../../../../node_modules/react","../../../../node_modules/require-in-the-middle","../../../node_modules/import-in-the-middle-138cd032e4b029f3","../../../node_modules/import-in-the-middle-6ecbfda1283b1532","../../../node_modules/next-mdx-remote-38ab1b696f56808a","../../../node_modules/pino-2e79642258e38174","../../../node_modules/require-in-the-middle-a99415fa67232f7f","../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_5e35a34a.js","../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_f7a67094.js","../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_68baf629.js","../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_e2e05945.js","../../chunks/ssr/3c3e1_next-intl_dist_esm_production_server_react-server_getConfig_8e5b989d.js","../../chunks/ssr/468ab_next_b54e3ae0._.js","../../chunks/ssr/468ab_next_c7821d87._.js","../../chunks/ssr/468ab_next_dist_668db2a3._.js","../../chunks/ssr/468ab_next_dist_9c02c43c._.js","../../chunks/ssr/468ab_next_dist_a9fadb3f._.js","../../chunks/ssr/468ab_next_dist_client_components_9ea24689._.js","../../chunks/ssr/468ab_next_dist_client_components_builtin_forbidden_fcf22647.js","../../chunks/ssr/468ab_next_dist_client_components_builtin_unauthorized_242673a5.js","../../chunks/ssr/468ab_next_dist_d9f52090._.js","../../chunks/ssr/468ab_next_dist_e98c316f._.js","../../chunks/ssr/468ab_next_dist_esm_10bac804._.js","../../chunks/ssr/5e5d0_@opentelemetry_api_build_esm_f7b039e6._.js","../../chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_317a5e2b._.js","../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_51b27302._.js","../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_634cb413._.js","../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_88fed31f._.js","../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_929773f6._.js","../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_f2e70164._.js","../../chunks/ssr/[externals]_next_dist_compiled_@vercel_og_index_node_055f47ab.js","../../chunks/ssr/[externals]_node:inspector_7a4283c6._.js","../../chunks/ssr/[root-of-the-server]__03e78303._.js","../../chunks/ssr/[root-of-the-server]__047498e4._.js","../../chunks/ssr/[root-of-the-server]__16d71f56._.js","../../chunks/ssr/[root-of-the-server]__26c04c96._.js","../../chunks/ssr/[root-of-the-server]__2da52317._.js","../../chunks/ssr/[root-of-the-server]__2e5112e6._.js","../../chunks/ssr/[root-of-the-server]__34977423._.js","../../chunks/ssr/[root-of-the-server]__366a9ff8._.js","../../chunks/ssr/[root-of-the-server]__411530ea._.js","../../chunks/ssr/[root-of-the-server]__5bd1b04a._.js","../../chunks/ssr/[root-of-the-server]__63a582be._.js","../../chunks/ssr/[root-of-the-server]__7fda9c9f._.js","../../chunks/ssr/[root-of-the-server]__9bfda315._.js","../../chunks/ssr/[root-of-the-server]__9eff91eb._.js","../../chunks/ssr/[root-of-the-server]__bc75933a._.js","../../chunks/ssr/[root-of-the-server]__d3969a9f._.js","../../chunks/ssr/[root-of-the-server]__fbc63b72._.js","../../chunks/ssr/[turbopack]_runtime.js","../../chunks/ssr/_16003e4d._.js","../../chunks/ssr/_6189c8b5._.js","../../chunks/ssr/_6f66913b._.js","../../chunks/ssr/_b76d0ab2._.js","../../chunks/ssr/_c3cb4fd0._.js","../../chunks/ssr/_d825b83f._.js","../../chunks/ssr/_df4aec0b._.js","../../chunks/ssr/_f1e03d27._.js","../../chunks/ssr/_feb57b15._.js","../../chunks/ssr/_next-internal_server_app_[locale]_page_actions_53ad19b2.js","../../chunks/ssr/app_[locale]_error_tsx_37c0341f._.js","../../chunks/ssr/app_global-error_tsx_9170b7a0._.js","../../chunks/ssr/components_blocks_05eea213._.js","../../chunks/ssr/components_ui_6a2a3715._.js","../../chunks/ssr/messages_de_json_56e8cde5._.js","../../chunks/ssr/messages_en_json_a7997480._.js","../../chunks/ssr/node_modules__pnpm_20ad9314._.js","../../chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","../../chunks/ssr/node_modules__pnpm_329a8f51._.js","../../chunks/ssr/node_modules__pnpm_66399b09._.js","../../chunks/ssr/node_modules__pnpm_8387bcd6._.js","../../chunks/ssr/node_modules__pnpm_d28cabd9._.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/.next/server/app/[locale]/page/build-manifest.json b/.next/server/app/[locale]/page/build-manifest.json index 436cd66d8..4482423a4 100644 --- a/.next/server/app/[locale]/page/build-manifest.json +++ b/.next/server/app/[locale]/page/build-manifest.json @@ -7,11 +7,11 @@ "lowPriorityFiles": [], "rootMainFiles": [ "static/chunks/c68fc807b9365f18.js", - "static/chunks/f51290069c969e8a.js", + "static/chunks/b263a60573bfd155.js", "static/chunks/29297b02a438a66e.js", "static/chunks/fd7b24483a212e2f.js", - "static/chunks/b62c08cc490fef16.js", - "static/chunks/turbopack-e5b78b2a7c8f1f21.js" + "static/chunks/b6898185462c2fee.js", + "static/chunks/turbopack-721eb9b8c3f79e29.js" ], "pages": {}, "ampFirstPages": [] diff --git a/.next/server/app/[locale]/page/react-loadable-manifest.json b/.next/server/app/[locale]/page/react-loadable-manifest.json index 313542e4d..a0b34aa9d 100644 --- a/.next/server/app/[locale]/page/react-loadable-manifest.json +++ b/.next/server/app/[locale]/page/react-loadable-manifest.json @@ -2,30 +2,29 @@ "565071": { "id": 565071, "files": [ - "static/chunks/a6d16f278f687ad0.js", + "static/chunks/d62bf387414e0748.js", "static/chunks/0ff158dd58fe47c8.js" ] }, "248785": { "id": 248785, "files": [ - "static/chunks/1fa1fc1d8df71347.js", + "static/chunks/ff6db6d7946b9f90.js", "static/chunks/0ff158dd58fe47c8.js" ] }, "950648": { "id": 950648, "files": [ - "static/chunks/d578f418b9661eaf.js", + "static/chunks/844db355c06db065.js", "static/chunks/0ff158dd58fe47c8.js" ] }, "566137": { "id": 566137, "files": [ - "static/chunks/0a765fb53d81ccec.js", - "static/chunks/c9e4534297dc4d54.js", - "static/chunks/9c4a690cd48e1298.js" + "static/chunks/9c4a690cd48e1298.js", + "static/chunks/c9e4534297dc4d54.js" ] } } \ No newline at end of file diff --git a/.next/server/app/[locale]/page_client-reference-manifest.js b/.next/server/app/[locale]/page_client-reference-manifest.js index da37917c8..9d602269b 100644 --- a/.next/server/app/[locale]/page_client-reference-manifest.js +++ b/.next/server/app/[locale]/page_client-reference-manifest.js @@ -1,2 +1,2 @@ globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; -globalThis.__RSC_MANIFEST["/[locale]/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":666284,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":666284,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":29584,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":29584,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":30965,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":30965,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":966591,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":966591,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":3420,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3420,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":489266,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":489266,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":67067,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":67067,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/app/global-error.tsx ":{"id":253348,"name":"*","chunks":["/_next/static/chunks/7bc980684698d6e7.js","/_next/static/chunks/5336d64d11e7435f.js"],"async":false},"[project]/app/global-error.tsx":{"id":253348,"name":"*","chunks":["/_next/static/chunks/7bc980684698d6e7.js","/_next/static/chunks/5336d64d11e7435f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/app-dir/link.js ":{"id":184868,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/app-dir/link.js":{"id":184868,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/image-component.js ":{"id":702050,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/image-component.js":{"id":702050,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/layout/LanguageSwitcher.tsx ":{"id":287564,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/layout/LanguageSwitcher.tsx":{"id":287564,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/layout/Header.tsx ":{"id":993983,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/layout/Header.tsx":{"id":993983,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/SkipLink.tsx ":{"id":814508,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/SkipLink.tsx":{"id":814508,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/analytics/AnalyticsShell.tsx ":{"id":531518,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/analytics/AnalyticsShell.tsx":{"id":531518,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/node_modules/.pnpm/next-intl@4.9.0_@swc+helpers@0.5.20_next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js ":{"id":600023,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/node_modules/.pnpm/next-intl@4.9.0_@swc+helpers@0.5.20_next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js":{"id":600023,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/FeedbackClientWrapper.tsx ":{"id":689647,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/FeedbackClientWrapper.tsx":{"id":689647,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/app/[locale]/error.tsx ":{"id":309974,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/4e4487a1c38504b3.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/app/[locale]/error.tsx":{"id":309974,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/4e4487a1c38504b3.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/Scribble.tsx ":{"id":224038,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/Scribble.tsx":{"id":224038,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/analytics/ClientNotFoundTracker.tsx ":{"id":555331,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/analytics/ClientNotFoundTracker.tsx":{"id":555331,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/blocks/HeroVideo.tsx ":{"id":610408,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/fb4360ef78ba79a7.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/blocks/HeroVideo.tsx":{"id":610408,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/fb4360ef78ba79a7.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/blocks/SubCompanyTiles.tsx ":{"id":138557,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/fb4360ef78ba79a7.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/blocks/SubCompanyTiles.tsx":{"id":138557,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/fb4360ef78ba79a7.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/blocks/CompetenceBentoGrid.tsx ":{"id":285997,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/fb4360ef78ba79a7.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/blocks/CompetenceBentoGrid.tsx":{"id":285997,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/fb4360ef78ba79a7.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/blocks/ReferencesSlider.tsx ":{"id":677705,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/fb4360ef78ba79a7.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/blocks/ReferencesSlider.tsx":{"id":677705,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/fb4360ef78ba79a7.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false}},"ssrModuleMapping":{"666284":{"*":{"id":164732,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"29584":{"*":{"id":743976,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"30965":{"*":{"id":46550,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"966591":{"*":{"id":594180,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"3420":{"*":{"id":585766,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"489266":{"*":{"id":471584,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"67067":{"*":{"id":561162,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"253348":{"*":{"id":303171,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__411530ea._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js"],"async":false}},"184868":{"*":{"id":841757,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__28a191f2._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"702050":{"*":{"id":739969,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"287564":{"*":{"id":81870,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"993983":{"*":{"id":581631,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"814508":{"*":{"id":909381,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"531518":{"*":{"id":905651,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"600023":{"*":{"id":650766,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"689647":{"*":{"id":894447,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"309974":{"*":{"id":497627,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__5bbfddd1._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"224038":{"*":{"id":991320,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__28a191f2._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"555331":{"*":{"id":868513,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__28a191f2._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"610408":{"*":{"id":805585,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/components_64b50741._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"138557":{"*":{"id":523290,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/components_64b50741._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"285997":{"*":{"id":649511,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/components_64b50741._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"677705":{"*":{"id":744435,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/components_64b50741._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"666284":{"*":{"id":551417,"name":"*","chunks":[],"async":false}},"29584":{"*":{"id":536434,"name":"*","chunks":[],"async":false}},"30965":{"*":{"id":387103,"name":"*","chunks":[],"async":false}},"966591":{"*":{"id":580884,"name":"*","chunks":[],"async":false}},"3420":{"*":{"id":504014,"name":"*","chunks":[],"async":false}},"489266":{"*":{"id":726190,"name":"*","chunks":[],"async":false}},"67067":{"*":{"id":76412,"name":"*","chunks":[],"async":false}},"253348":{"*":{"id":153128,"name":"*","chunks":[],"async":false}},"184868":{"*":{"id":917929,"name":"*","chunks":[],"async":false}},"702050":{"*":{"id":986834,"name":"*","chunks":[],"async":false}},"287564":{"*":{"id":168713,"name":"*","chunks":[],"async":false}},"993983":{"*":{"id":625244,"name":"*","chunks":[],"async":false}},"814508":{"*":{"id":566663,"name":"*","chunks":[],"async":false}},"531518":{"*":{"id":292727,"name":"*","chunks":[],"async":false}},"600023":{"*":{"id":963034,"name":"*","chunks":[],"async":false}},"689647":{"*":{"id":679583,"name":"*","chunks":[],"async":false}},"309974":{"*":{"id":363934,"name":"*","chunks":[],"async":false}},"224038":{"*":{"id":404449,"name":"*","chunks":[],"async":false}},"555331":{"*":{"id":588684,"name":"*","chunks":[],"async":false}},"610408":{"*":{"id":575076,"name":"*","chunks":[],"async":false}},"138557":{"*":{"id":34183,"name":"*","chunks":[],"async":false}},"285997":{"*":{"id":819160,"name":"*","chunks":[],"async":false}},"677705":{"*":{"id":960688,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/app/[locale]/opengraph-image--metadata":[],"[project]/app/global-error":[],"[project]/app/[locale]/layout":[{"path":"static/chunks/928be433d65b40cc.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/error":[{"path":"static/chunks/928be433d65b40cc.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/not-found":[{"path":"static/chunks/928be433d65b40cc.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/page":[{"path":"static/chunks/928be433d65b40cc.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}]},"entryJSFiles":{"[project]/app/[locale]/opengraph-image--metadata":["static/chunks/93736546a7cd8cd8.js","static/chunks/870a2c2978ab4440.js"],"[project]/app/global-error":["static/chunks/7bc980684698d6e7.js","static/chunks/5336d64d11e7435f.js"],"[project]/app/[locale]/layout":["static/chunks/76668d2ab61cd4a8.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b786cbc2e9238523.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/eeabc9d46e43f022.js"],"[project]/app/[locale]/error":["static/chunks/76668d2ab61cd4a8.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b786cbc2e9238523.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/eeabc9d46e43f022.js","static/chunks/4e4487a1c38504b3.js","static/chunks/0ff158dd58fe47c8.js","static/chunks/b550ef5d0ebc89bc.js"],"[project]/app/[locale]/not-found":["static/chunks/76668d2ab61cd4a8.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b786cbc2e9238523.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/eeabc9d46e43f022.js","static/chunks/a86ed0e5ea629175.js","static/chunks/0ff158dd58fe47c8.js","static/chunks/b550ef5d0ebc89bc.js"],"[project]/app/[locale]/page":["static/chunks/76668d2ab61cd4a8.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b786cbc2e9238523.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/eeabc9d46e43f022.js","static/chunks/fb4360ef78ba79a7.js","static/chunks/b550ef5d0ebc89bc.js"]}} +globalThis.__RSC_MANIFEST["/[locale]/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":666284,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":666284,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":29584,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":29584,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":30965,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":30965,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":966591,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":966591,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":3420,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3420,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":489266,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":489266,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":67067,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":67067,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/app/global-error.tsx ":{"id":253348,"name":"*","chunks":["/_next/static/chunks/7bc980684698d6e7.js","/_next/static/chunks/5336d64d11e7435f.js"],"async":false},"[project]/app/global-error.tsx":{"id":253348,"name":"*","chunks":["/_next/static/chunks/7bc980684698d6e7.js","/_next/static/chunks/5336d64d11e7435f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/app-dir/link.js ":{"id":184868,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/650cc12d707f2be0.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/app-dir/link.js":{"id":184868,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/650cc12d707f2be0.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/image-component.js ":{"id":702050,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/image-component.js":{"id":702050,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/layout/LanguageSwitcher.tsx ":{"id":287564,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/layout/LanguageSwitcher.tsx":{"id":287564,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/layout/Header.tsx ":{"id":993983,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/layout/Header.tsx":{"id":993983,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/SkipLink.tsx ":{"id":814508,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/SkipLink.tsx":{"id":814508,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/analytics/AnalyticsShell.tsx ":{"id":531518,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/analytics/AnalyticsShell.tsx":{"id":531518,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/node_modules/.pnpm/next-intl@4.9.0_@swc+helpers@0.5.20_next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js ":{"id":600023,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/node_modules/.pnpm/next-intl@4.9.0_@swc+helpers@0.5.20_next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js":{"id":600023,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/FeedbackClientWrapper.tsx ":{"id":689647,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/FeedbackClientWrapper.tsx":{"id":689647,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/app/[locale]/error.tsx ":{"id":309974,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b02fdfb08ad720b0.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/app/[locale]/error.tsx":{"id":309974,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b02fdfb08ad720b0.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/Scribble.tsx ":{"id":224038,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/Scribble.tsx":{"id":224038,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/analytics/ClientNotFoundTracker.tsx ":{"id":555331,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/analytics/ClientNotFoundTracker.tsx":{"id":555331,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/blocks/HeroVideo.tsx ":{"id":610408,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/650cc12d707f2be0.js"],"async":false},"[project]/components/blocks/HeroVideo.tsx":{"id":610408,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/650cc12d707f2be0.js"],"async":false},"[project]/components/blocks/SubCompanyTiles.tsx ":{"id":138557,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/650cc12d707f2be0.js"],"async":false},"[project]/components/blocks/SubCompanyTiles.tsx":{"id":138557,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/650cc12d707f2be0.js"],"async":false},"[project]/components/blocks/CompetenceBentoGrid.tsx ":{"id":285997,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/650cc12d707f2be0.js"],"async":false},"[project]/components/blocks/CompetenceBentoGrid.tsx":{"id":285997,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/650cc12d707f2be0.js"],"async":false},"[project]/components/blocks/ReferencesSlider.tsx ":{"id":677705,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/650cc12d707f2be0.js"],"async":false},"[project]/components/blocks/ReferencesSlider.tsx":{"id":677705,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/650cc12d707f2be0.js"],"async":false}},"ssrModuleMapping":{"666284":{"*":{"id":164732,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"29584":{"*":{"id":743976,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"30965":{"*":{"id":46550,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"966591":{"*":{"id":594180,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"3420":{"*":{"id":585766,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"489266":{"*":{"id":471584,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"67067":{"*":{"id":561162,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"253348":{"*":{"id":303171,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__411530ea._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js"],"async":false}},"184868":{"*":{"id":841757,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/components_blocks_05eea213._.js"],"async":false}},"702050":{"*":{"id":739969,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"287564":{"*":{"id":81870,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"993983":{"*":{"id":581631,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"814508":{"*":{"id":909381,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"531518":{"*":{"id":905651,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"600023":{"*":{"id":650766,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"689647":{"*":{"id":894447,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"309974":{"*":{"id":497627,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__34977423._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"224038":{"*":{"id":991320,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__63a582be._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"555331":{"*":{"id":868513,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__63a582be._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"610408":{"*":{"id":805585,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/components_blocks_05eea213._.js"],"async":false}},"138557":{"*":{"id":523290,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/components_blocks_05eea213._.js"],"async":false}},"285997":{"*":{"id":649511,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/components_blocks_05eea213._.js"],"async":false}},"677705":{"*":{"id":744435,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/components_blocks_05eea213._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"666284":{"*":{"id":551417,"name":"*","chunks":[],"async":false}},"29584":{"*":{"id":536434,"name":"*","chunks":[],"async":false}},"30965":{"*":{"id":387103,"name":"*","chunks":[],"async":false}},"966591":{"*":{"id":580884,"name":"*","chunks":[],"async":false}},"3420":{"*":{"id":504014,"name":"*","chunks":[],"async":false}},"489266":{"*":{"id":726190,"name":"*","chunks":[],"async":false}},"67067":{"*":{"id":76412,"name":"*","chunks":[],"async":false}},"253348":{"*":{"id":153128,"name":"*","chunks":[],"async":false}},"184868":{"*":{"id":917929,"name":"*","chunks":[],"async":false}},"702050":{"*":{"id":986834,"name":"*","chunks":[],"async":false}},"287564":{"*":{"id":168713,"name":"*","chunks":[],"async":false}},"993983":{"*":{"id":625244,"name":"*","chunks":[],"async":false}},"814508":{"*":{"id":566663,"name":"*","chunks":[],"async":false}},"531518":{"*":{"id":292727,"name":"*","chunks":[],"async":false}},"600023":{"*":{"id":963034,"name":"*","chunks":[],"async":false}},"689647":{"*":{"id":679583,"name":"*","chunks":[],"async":false}},"309974":{"*":{"id":363934,"name":"*","chunks":[],"async":false}},"224038":{"*":{"id":404449,"name":"*","chunks":[],"async":false}},"555331":{"*":{"id":588684,"name":"*","chunks":[],"async":false}},"610408":{"*":{"id":575076,"name":"*","chunks":[],"async":false}},"138557":{"*":{"id":34183,"name":"*","chunks":[],"async":false}},"285997":{"*":{"id":819160,"name":"*","chunks":[],"async":false}},"677705":{"*":{"id":960688,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/app/[locale]/opengraph-image--metadata":[],"[project]/app/global-error":[],"[project]/app/[locale]/layout":[{"path":"static/chunks/3f652f1a7128a03a.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/error":[{"path":"static/chunks/3f652f1a7128a03a.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/not-found":[{"path":"static/chunks/3f652f1a7128a03a.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/page":[{"path":"static/chunks/3f652f1a7128a03a.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}]},"entryJSFiles":{"[project]/app/[locale]/opengraph-image--metadata":["static/chunks/93736546a7cd8cd8.js","static/chunks/870a2c2978ab4440.js"],"[project]/app/global-error":["static/chunks/7bc980684698d6e7.js","static/chunks/5336d64d11e7435f.js"],"[project]/app/[locale]/layout":["static/chunks/6640bcd504ed2815.js","static/chunks/eeabc9d46e43f022.js","static/chunks/595f4cd305cd0088.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/fac3383571a5e891.js","static/chunks/ad1b4e551db227fe.js"],"[project]/app/[locale]/error":["static/chunks/6640bcd504ed2815.js","static/chunks/eeabc9d46e43f022.js","static/chunks/595f4cd305cd0088.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/fac3383571a5e891.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b02fdfb08ad720b0.js","static/chunks/0ff158dd58fe47c8.js"],"[project]/app/[locale]/not-found":["static/chunks/6640bcd504ed2815.js","static/chunks/eeabc9d46e43f022.js","static/chunks/595f4cd305cd0088.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/fac3383571a5e891.js","static/chunks/ad1b4e551db227fe.js","static/chunks/e91fc49c513620bc.js","static/chunks/0ff158dd58fe47c8.js"],"[project]/app/[locale]/page":["static/chunks/6640bcd504ed2815.js","static/chunks/eeabc9d46e43f022.js","static/chunks/595f4cd305cd0088.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/fac3383571a5e891.js","static/chunks/ad1b4e551db227fe.js","static/chunks/650cc12d707f2be0.js"]}} diff --git a/.next/server/app/[locale]/team/page.js b/.next/server/app/[locale]/team/page.js index 3813fea02..8b780bd6e 100644 --- a/.next/server/app/[locale]/team/page.js +++ b/.next/server/app/[locale]/team/page.js @@ -6,7 +6,7 @@ R.c("server/chunks/ssr/[root-of-the-server]__5bd1b04a._.js") R.c("server/chunks/ssr/5e5d0_@opentelemetry_api_build_esm_f7b039e6._.js") R.c("server/chunks/ssr/468ab_next_dist_d9f52090._.js") R.c("server/chunks/ssr/468ab_next_dist_e98c316f._.js") -R.c("server/chunks/ssr/[root-of-the-server]__f153a21f._.js") +R.c("server/chunks/ssr/[root-of-the-server]__2da52317._.js") R.c("server/chunks/ssr/468ab_next_dist_668db2a3._.js") R.c("server/chunks/ssr/node_modules__pnpm_20ad9314._.js") R.c("server/chunks/ssr/3c3e1_next-intl_dist_esm_production_server_react-server_getConfig_8e5b989d.js") @@ -18,13 +18,13 @@ R.c("server/chunks/ssr/app_global-error_tsx_9170b7a0._.js") R.c("server/chunks/ssr/468ab_next_dist_client_components_9ea24689._.js") R.c("server/chunks/ssr/468ab_next_dist_client_components_builtin_forbidden_fcf22647.js") R.c("server/chunks/ssr/468ab_next_dist_client_components_builtin_unauthorized_242673a5.js") -R.c("server/chunks/ssr/_3cfbee09._.js") -R.c("server/chunks/ssr/_536bc82a._.js") +R.c("server/chunks/ssr/_90fa5b69._.js") +R.c("server/chunks/ssr/_6189c8b5._.js") R.c("server/chunks/ssr/[root-of-the-server]__bc75933a._.js") R.c("server/chunks/ssr/_df4aec0b._.js") R.c("server/chunks/ssr/app_[locale]_error_tsx_37c0341f._.js") -R.c("server/chunks/ssr/_49a7ffbe._.js") -R.c("server/chunks/ssr/components_4d1233ab._.js") +R.c("server/chunks/ssr/_d825b83f._.js") +R.c("server/chunks/ssr/components_ui_6a2a3715._.js") R.c("server/chunks/ssr/_next-internal_server_app_[locale]_team_page_actions_373c0344.js") R.m(471883) module.exports=R.m(471883).exports diff --git a/.next/server/app/[locale]/team/page.js.nft.json b/.next/server/app/[locale]/team/page.js.nft.json index b475f194c..56479fc99 100644 --- a/.next/server/app/[locale]/team/page.js.nft.json +++ b/.next/server/app/[locale]/team/page.js.nft.json @@ -1 +1 @@ -{"version":1,"files":["../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/context.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/diag.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/metrics.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/propagation.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/trace.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/context.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/types.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/index.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/global-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/semver.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/Metric.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/context-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/span_kind.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/status.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/version.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/package.json","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/execAsync.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-bsd.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-darwin.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-linux.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-unsupported.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-win.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId.js","../../../../../node_modules/.pnpm/@pinojs+redact@0.4.0/node_modules/@pinojs/redact/index.js","../../../../../node_modules/.pnpm/@pinojs+redact@0.4.0/node_modules/@pinojs/redact/package.json","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/browserTracingIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/clientNormalizationIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/appRouterRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/isrRoutingTracing.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/nextRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/pagesRouterRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/parameterization.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/tunnelRoute.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/captureRequestError.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/debug-build.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/devErrorSymbolicationEventProcessor.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/getVercelEnv.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextNavigationErrorUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextSpanAttributes.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/_error.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentryVercelCrons.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapAppGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapDocumentGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapErrorGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetServerSidePropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetStaticPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapPageComponentWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/span-attributes-with-logic-attached.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/addHeadersAsAttributes.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/dropMiddlewareTunnelRequests.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isBuild.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isUseCacheFunction.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/nextSpan.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/responseEnd.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/setUrlProcessingMetadata.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/tracingUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/urls.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/wrapperUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/withServerActionInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapGenerationFunctionWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapMiddlewareWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapRouteHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapServerComponentWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/getBuildPluginOptions.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/handleRunAfterProductionCompile.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/componentAnnotationLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/moduleMetadataInjectionLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/prefixLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/valueInjectionLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/wrappingLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/manifest/createRouteManifest.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/polyfills/perf_hooks.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/apiWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/middlewareWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/pageWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/requestAsyncStorageShim.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/routeHandlerWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/sentryInitWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/serverComponentWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/constructTurbopackConfig.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/generateValueInjectionRules.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/util.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/webpack.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/buildTime.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/constants.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/deprecatedWebpackOptions.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObject.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectBundlerUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/tunnel.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/distDirRewriteFramesIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/wrapApiHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.client.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.server.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/distDirRewriteFramesIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/handleOnSpanStart.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/prepareSafeIdGeneratorContext.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelCronsMonitoring.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelQueuesMonitoring.js","../../../../../node_modules/.pnpm/atomic-sleep@1.0.0/node_modules/atomic-sleep/index.js","../../../../../node_modules/.pnpm/atomic-sleep@1.0.0/node_modules/atomic-sleep/package.json","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/package.json","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/browser.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/index.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/node.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/ms","../../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js","../../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@1.15.0/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/index.js","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/lib/register.js","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/index.js","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/lib/register.js","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/index.js","../../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/package.json","../../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js","../../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/@opentelemetry/api","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/LICENSE","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/index.edge.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/index.node.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/noto-sans-v27-latin-regular.ttf","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/resvg.wasm","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/satori/LICENSE","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/yoga.wasm","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/constants.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/is-error.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/runtime-reacts.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/package.json","../../../../../node_modules/.pnpm/node_modules/@opentelemetry/api","../../../../../node_modules/.pnpm/node_modules/@pinojs/redact","../../../../../node_modules/.pnpm/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/node_modules/debug","../../../../../node_modules/.pnpm/node_modules/has-flag","../../../../../node_modules/.pnpm/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/node_modules/ms","../../../../../node_modules/.pnpm/node_modules/on-exit-leak-free","../../../../../node_modules/.pnpm/node_modules/pino-std-serializers","../../../../../node_modules/.pnpm/node_modules/quick-format-unescaped","../../../../../node_modules/.pnpm/node_modules/real-require","../../../../../node_modules/.pnpm/node_modules/safe-stable-stringify","../../../../../node_modules/.pnpm/node_modules/sonic-boom","../../../../../node_modules/.pnpm/node_modules/supports-color","../../../../../node_modules/.pnpm/node_modules/thread-stream","../../../../../node_modules/.pnpm/on-exit-leak-free@2.1.2/node_modules/on-exit-leak-free/index.js","../../../../../node_modules/.pnpm/on-exit-leak-free@2.1.2/node_modules/on-exit-leak-free/package.json","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/index.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-helpers.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-proto.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-with-cause.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/req.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/res.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/package.json","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/@pinojs/redact","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/on-exit-leak-free","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino-std-serializers","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/file.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/caller.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/constants.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/deprecations.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/levels.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/meta.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/multistream.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/proto.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/redaction.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/symbols.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/time.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/tools.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/transport-stream.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/transport.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/worker.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/package.json","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/pino.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/quick-format-unescaped","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/safe-stable-stringify","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/sonic-boom","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/thread-stream","../../../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/index.js","../../../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/package.json","../../../../../node_modules/.pnpm/real-require@0.2.0/node_modules/real-require/package.json","../../../../../node_modules/.pnpm/real-require@0.2.0/node_modules/real-require/src/index.js","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/debug","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/index.js","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/package.json","../../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/index.js","../../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/package.json","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/LICENSE","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/README.md","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/bench.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/check.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/example.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/fixtures/firehose.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/index.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/package.json","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/destroy.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/end.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/flush-sync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/flush.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/fsync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/helper.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/minlength.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/mode.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/periodicflush.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/reopen.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/retry.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/sync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/write.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/types/tests/test.ts","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/has-flag","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/package.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/real-require","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/LICENSE","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/bench.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/eslint.config.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/index.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/indexes.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/wait.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/worker.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/package.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/base.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/bench.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/bundlers.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/close-on-gc.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/commonjs-fallback.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/context.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/create-and-exit.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/custom-worker.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/dir with spaces/test-package.zip","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/emit-event.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/end.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/error.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/esm.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/event.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/exit.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/get-context.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/helper.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/indexes.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/multibyte-chars.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/on-message.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/index.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/pkg.config.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/pkg.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/port.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/post-message.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/string-limit-2.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/string-limit.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/syntax-error.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/thread-management.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file-on-destroy.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file-on-final.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-next.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/transpiled.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-commonjs-default-export.zip","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-native.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-node-fallback.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts/to-file.ts","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts/transpile.sh","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/uncaughtException.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/unhandledRejection.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/yarnrc.yml","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/tsconfig.json","../../../../../node_modules/import-in-the-middle","../../../../../node_modules/next","../../../../../node_modules/pino","../../../../../node_modules/require-in-the-middle","../../../../node_modules/import-in-the-middle-138cd032e4b029f3","../../../../node_modules/import-in-the-middle-6ecbfda1283b1532","../../../../node_modules/pino-2e79642258e38174","../../../../node_modules/require-in-the-middle-a99415fa67232f7f","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_5e35a34a.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_f7a67094.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_68baf629.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_e2e05945.js","../../../chunks/ssr/3c3e1_next-intl_dist_esm_production_server_react-server_getConfig_8e5b989d.js","../../../chunks/ssr/468ab_next_b54e3ae0._.js","../../../chunks/ssr/468ab_next_c7821d87._.js","../../../chunks/ssr/468ab_next_dist_668db2a3._.js","../../../chunks/ssr/468ab_next_dist_6d1ec603._.js","../../../chunks/ssr/468ab_next_dist_9c02c43c._.js","../../../chunks/ssr/468ab_next_dist_a9fadb3f._.js","../../../chunks/ssr/468ab_next_dist_bc66fa15._.js","../../../chunks/ssr/468ab_next_dist_client_components_9ea24689._.js","../../../chunks/ssr/468ab_next_dist_client_components_builtin_forbidden_fcf22647.js","../../../chunks/ssr/468ab_next_dist_client_components_builtin_unauthorized_242673a5.js","../../../chunks/ssr/468ab_next_dist_d9f52090._.js","../../../chunks/ssr/468ab_next_dist_e98c316f._.js","../../../chunks/ssr/468ab_next_dist_esm_10bac804._.js","../../../chunks/ssr/5e5d0_@opentelemetry_api_build_esm_f7b039e6._.js","../../../chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_317a5e2b._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_51b27302._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_634cb413._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_88fed31f._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_929773f6._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_f2e70164._.js","../../../chunks/ssr/[externals]_next_dist_compiled_@vercel_og_index_node_055f47ab.js","../../../chunks/ssr/[externals]_node:inspector_7a4283c6._.js","../../../chunks/ssr/[root-of-the-server]__16d71f56._.js","../../../chunks/ssr/[root-of-the-server]__28a191f2._.js","../../../chunks/ssr/[root-of-the-server]__30e101bb._.js","../../../chunks/ssr/[root-of-the-server]__366a9ff8._.js","../../../chunks/ssr/[root-of-the-server]__411530ea._.js","../../../chunks/ssr/[root-of-the-server]__57266d7f._.js","../../../chunks/ssr/[root-of-the-server]__5bbfddd1._.js","../../../chunks/ssr/[root-of-the-server]__5bd1b04a._.js","../../../chunks/ssr/[root-of-the-server]__6bb30663._.js","../../../chunks/ssr/[root-of-the-server]__7d22e2e2._.js","../../../chunks/ssr/[root-of-the-server]__9aa0d618._.js","../../../chunks/ssr/[root-of-the-server]__9bfda315._.js","../../../chunks/ssr/[root-of-the-server]__9eff91eb._.js","../../../chunks/ssr/[root-of-the-server]__bc75933a._.js","../../../chunks/ssr/[root-of-the-server]__f153a21f._.js","../../../chunks/ssr/[root-of-the-server]__f939d130._.js","../../../chunks/ssr/[root-of-the-server]__fbc63b72._.js","../../../chunks/ssr/[root-of-the-server]__fceaebac._.js","../../../chunks/ssr/[turbopack]_runtime.js","../../../chunks/ssr/_3cfbee09._.js","../../../chunks/ssr/_49a7ffbe._.js","../../../chunks/ssr/_536bc82a._.js","../../../chunks/ssr/_6f66913b._.js","../../../chunks/ssr/_b76d0ab2._.js","../../../chunks/ssr/_c3cb4fd0._.js","../../../chunks/ssr/_dc03b6cb._.js","../../../chunks/ssr/_df4aec0b._.js","../../../chunks/ssr/_next-internal_server_app_[locale]_team_page_actions_373c0344.js","../../../chunks/ssr/app_[locale]_error_tsx_37c0341f._.js","../../../chunks/ssr/app_[locale]_team_opengraph-image--metadata_8c0644a6.js","../../../chunks/ssr/app_global-error_tsx_9170b7a0._.js","../../../chunks/ssr/components_4d1233ab._.js","../../../chunks/ssr/components_ui_utils_ts_f85ae7af._.js","../../../chunks/ssr/messages_de_json_56e8cde5._.js","../../../chunks/ssr/messages_en_json_a7997480._.js","../../../chunks/ssr/node_modules__pnpm_20ad9314._.js","../../../chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","../../../chunks/ssr/node_modules__pnpm_66399b09._.js","../../../chunks/ssr/node_modules__pnpm_8387bcd6._.js","../../../chunks/ssr/node_modules__pnpm_d28cabd9._.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file +{"version":1,"files":["../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/context.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/diag.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/metrics.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/propagation.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/trace.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/context.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/types.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/index.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/global-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/semver.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/Metric.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/context-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/span_kind.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/status.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/version.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/package.json","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/execAsync.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-bsd.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-darwin.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-linux.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-unsupported.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-win.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId.js","../../../../../node_modules/.pnpm/@pinojs+redact@0.4.0/node_modules/@pinojs/redact/index.js","../../../../../node_modules/.pnpm/@pinojs+redact@0.4.0/node_modules/@pinojs/redact/package.json","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/browserTracingIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/clientNormalizationIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/appRouterRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/isrRoutingTracing.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/nextRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/pagesRouterRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/parameterization.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/tunnelRoute.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/captureRequestError.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/debug-build.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/devErrorSymbolicationEventProcessor.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/getVercelEnv.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextNavigationErrorUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextSpanAttributes.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/_error.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentryVercelCrons.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapAppGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapDocumentGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapErrorGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetServerSidePropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetStaticPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapPageComponentWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/span-attributes-with-logic-attached.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/addHeadersAsAttributes.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/dropMiddlewareTunnelRequests.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isBuild.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isUseCacheFunction.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/nextSpan.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/responseEnd.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/setUrlProcessingMetadata.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/tracingUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/urls.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/wrapperUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/withServerActionInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapGenerationFunctionWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapMiddlewareWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapRouteHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapServerComponentWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/getBuildPluginOptions.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/handleRunAfterProductionCompile.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/componentAnnotationLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/moduleMetadataInjectionLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/prefixLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/valueInjectionLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/wrappingLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/manifest/createRouteManifest.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/polyfills/perf_hooks.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/apiWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/middlewareWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/pageWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/requestAsyncStorageShim.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/routeHandlerWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/sentryInitWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/serverComponentWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/constructTurbopackConfig.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/generateValueInjectionRules.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/util.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/webpack.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/buildTime.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/constants.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/deprecatedWebpackOptions.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObject.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectBundlerUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/tunnel.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/distDirRewriteFramesIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/wrapApiHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.client.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.server.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/distDirRewriteFramesIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/handleOnSpanStart.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/prepareSafeIdGeneratorContext.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelCronsMonitoring.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelQueuesMonitoring.js","../../../../../node_modules/.pnpm/atomic-sleep@1.0.0/node_modules/atomic-sleep/index.js","../../../../../node_modules/.pnpm/atomic-sleep@1.0.0/node_modules/atomic-sleep/package.json","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/package.json","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/browser.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/index.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/node.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/ms","../../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js","../../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@1.15.0/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/index.js","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/lib/register.js","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/index.js","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/lib/register.js","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/index.js","../../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/package.json","../../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js","../../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/@opentelemetry/api","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/LICENSE","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/index.edge.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/index.node.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/noto-sans-v27-latin-regular.ttf","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/resvg.wasm","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/satori/LICENSE","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/yoga.wasm","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/constants.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/is-error.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/runtime-reacts.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/package.json","../../../../../node_modules/.pnpm/node_modules/@opentelemetry/api","../../../../../node_modules/.pnpm/node_modules/@pinojs/redact","../../../../../node_modules/.pnpm/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/node_modules/debug","../../../../../node_modules/.pnpm/node_modules/has-flag","../../../../../node_modules/.pnpm/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/node_modules/ms","../../../../../node_modules/.pnpm/node_modules/on-exit-leak-free","../../../../../node_modules/.pnpm/node_modules/pino-std-serializers","../../../../../node_modules/.pnpm/node_modules/quick-format-unescaped","../../../../../node_modules/.pnpm/node_modules/real-require","../../../../../node_modules/.pnpm/node_modules/safe-stable-stringify","../../../../../node_modules/.pnpm/node_modules/sonic-boom","../../../../../node_modules/.pnpm/node_modules/supports-color","../../../../../node_modules/.pnpm/node_modules/thread-stream","../../../../../node_modules/.pnpm/on-exit-leak-free@2.1.2/node_modules/on-exit-leak-free/index.js","../../../../../node_modules/.pnpm/on-exit-leak-free@2.1.2/node_modules/on-exit-leak-free/package.json","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/index.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-helpers.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-proto.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-with-cause.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/req.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/res.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/package.json","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/@pinojs/redact","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/on-exit-leak-free","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino-std-serializers","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/file.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/caller.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/constants.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/deprecations.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/levels.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/meta.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/multistream.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/proto.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/redaction.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/symbols.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/time.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/tools.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/transport-stream.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/transport.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/worker.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/package.json","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/pino.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/quick-format-unescaped","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/safe-stable-stringify","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/sonic-boom","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/thread-stream","../../../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/index.js","../../../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/package.json","../../../../../node_modules/.pnpm/real-require@0.2.0/node_modules/real-require/package.json","../../../../../node_modules/.pnpm/real-require@0.2.0/node_modules/real-require/src/index.js","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/debug","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/index.js","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/package.json","../../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/index.js","../../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/package.json","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/LICENSE","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/README.md","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/bench.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/check.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/example.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/fixtures/firehose.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/index.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/package.json","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/destroy.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/end.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/flush-sync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/flush.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/fsync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/helper.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/minlength.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/mode.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/periodicflush.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/reopen.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/retry.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/sync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/write.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/types/tests/test.ts","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/has-flag","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/package.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/real-require","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/LICENSE","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/bench.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/eslint.config.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/index.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/indexes.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/wait.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/worker.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/package.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/base.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/bench.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/bundlers.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/close-on-gc.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/commonjs-fallback.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/context.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/create-and-exit.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/custom-worker.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/dir with spaces/test-package.zip","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/emit-event.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/end.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/error.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/esm.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/event.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/exit.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/get-context.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/helper.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/indexes.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/multibyte-chars.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/on-message.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/index.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/pkg.config.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/pkg.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/port.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/post-message.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/string-limit-2.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/string-limit.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/syntax-error.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/thread-management.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file-on-destroy.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file-on-final.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-next.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/transpiled.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-commonjs-default-export.zip","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-native.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-node-fallback.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts/to-file.ts","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts/transpile.sh","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/uncaughtException.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/unhandledRejection.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/yarnrc.yml","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/tsconfig.json","../../../../../node_modules/import-in-the-middle","../../../../../node_modules/next","../../../../../node_modules/pino","../../../../../node_modules/require-in-the-middle","../../../../node_modules/import-in-the-middle-138cd032e4b029f3","../../../../node_modules/import-in-the-middle-6ecbfda1283b1532","../../../../node_modules/pino-2e79642258e38174","../../../../node_modules/require-in-the-middle-a99415fa67232f7f","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_5e35a34a.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_f7a67094.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_68baf629.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_e2e05945.js","../../../chunks/ssr/3c3e1_next-intl_dist_esm_production_server_react-server_getConfig_8e5b989d.js","../../../chunks/ssr/468ab_next_b54e3ae0._.js","../../../chunks/ssr/468ab_next_c7821d87._.js","../../../chunks/ssr/468ab_next_dist_668db2a3._.js","../../../chunks/ssr/468ab_next_dist_9c02c43c._.js","../../../chunks/ssr/468ab_next_dist_a9fadb3f._.js","../../../chunks/ssr/468ab_next_dist_client_components_9ea24689._.js","../../../chunks/ssr/468ab_next_dist_client_components_builtin_forbidden_fcf22647.js","../../../chunks/ssr/468ab_next_dist_client_components_builtin_unauthorized_242673a5.js","../../../chunks/ssr/468ab_next_dist_d9f52090._.js","../../../chunks/ssr/468ab_next_dist_e98c316f._.js","../../../chunks/ssr/468ab_next_dist_esm_10bac804._.js","../../../chunks/ssr/5e5d0_@opentelemetry_api_build_esm_f7b039e6._.js","../../../chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_317a5e2b._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_51b27302._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_634cb413._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_88fed31f._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_929773f6._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_f2e70164._.js","../../../chunks/ssr/[externals]_next_dist_compiled_@vercel_og_index_node_055f47ab.js","../../../chunks/ssr/[externals]_node:inspector_7a4283c6._.js","../../../chunks/ssr/[root-of-the-server]__047498e4._.js","../../../chunks/ssr/[root-of-the-server]__0bdab930._.js","../../../chunks/ssr/[root-of-the-server]__16d71f56._.js","../../../chunks/ssr/[root-of-the-server]__2da52317._.js","../../../chunks/ssr/[root-of-the-server]__30e101bb._.js","../../../chunks/ssr/[root-of-the-server]__34977423._.js","../../../chunks/ssr/[root-of-the-server]__366a9ff8._.js","../../../chunks/ssr/[root-of-the-server]__411530ea._.js","../../../chunks/ssr/[root-of-the-server]__5209d0e9._.js","../../../chunks/ssr/[root-of-the-server]__5bd1b04a._.js","../../../chunks/ssr/[root-of-the-server]__63a582be._.js","../../../chunks/ssr/[root-of-the-server]__7d22e2e2._.js","../../../chunks/ssr/[root-of-the-server]__7fda9c9f._.js","../../../chunks/ssr/[root-of-the-server]__9bfda315._.js","../../../chunks/ssr/[root-of-the-server]__9eff91eb._.js","../../../chunks/ssr/[root-of-the-server]__bc75933a._.js","../../../chunks/ssr/[root-of-the-server]__d3969a9f._.js","../../../chunks/ssr/[root-of-the-server]__fbc63b72._.js","../../../chunks/ssr/[turbopack]_runtime.js","../../../chunks/ssr/_16003e4d._.js","../../../chunks/ssr/_6189c8b5._.js","../../../chunks/ssr/_6f66913b._.js","../../../chunks/ssr/_90fa5b69._.js","../../../chunks/ssr/_b76d0ab2._.js","../../../chunks/ssr/_c3cb4fd0._.js","../../../chunks/ssr/_d825b83f._.js","../../../chunks/ssr/_dc03b6cb._.js","../../../chunks/ssr/_df4aec0b._.js","../../../chunks/ssr/_next-internal_server_app_[locale]_team_page_actions_373c0344.js","../../../chunks/ssr/app_[locale]_error_tsx_37c0341f._.js","../../../chunks/ssr/app_[locale]_team_opengraph-image--metadata_8c0644a6.js","../../../chunks/ssr/app_global-error_tsx_9170b7a0._.js","../../../chunks/ssr/components_ui_6a2a3715._.js","../../../chunks/ssr/messages_de_json_56e8cde5._.js","../../../chunks/ssr/messages_en_json_a7997480._.js","../../../chunks/ssr/node_modules__pnpm_20ad9314._.js","../../../chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","../../../chunks/ssr/node_modules__pnpm_66399b09._.js","../../../chunks/ssr/node_modules__pnpm_8387bcd6._.js","../../../chunks/ssr/node_modules__pnpm_d28cabd9._.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/.next/server/app/[locale]/team/page/build-manifest.json b/.next/server/app/[locale]/team/page/build-manifest.json index 436cd66d8..4482423a4 100644 --- a/.next/server/app/[locale]/team/page/build-manifest.json +++ b/.next/server/app/[locale]/team/page/build-manifest.json @@ -7,11 +7,11 @@ "lowPriorityFiles": [], "rootMainFiles": [ "static/chunks/c68fc807b9365f18.js", - "static/chunks/f51290069c969e8a.js", + "static/chunks/b263a60573bfd155.js", "static/chunks/29297b02a438a66e.js", "static/chunks/fd7b24483a212e2f.js", - "static/chunks/b62c08cc490fef16.js", - "static/chunks/turbopack-e5b78b2a7c8f1f21.js" + "static/chunks/b6898185462c2fee.js", + "static/chunks/turbopack-721eb9b8c3f79e29.js" ], "pages": {}, "ampFirstPages": [] diff --git a/.next/server/app/[locale]/team/page/react-loadable-manifest.json b/.next/server/app/[locale]/team/page/react-loadable-manifest.json index 7e45278f5..7562a5186 100644 --- a/.next/server/app/[locale]/team/page/react-loadable-manifest.json +++ b/.next/server/app/[locale]/team/page/react-loadable-manifest.json @@ -2,30 +2,29 @@ "565071": { "id": 565071, "files": [ - "static/chunks/a6d16f278f687ad0.js", + "static/chunks/d62bf387414e0748.js", "static/chunks/0ff158dd58fe47c8.js" ] }, "248785": { "id": 248785, "files": [ - "static/chunks/1fa1fc1d8df71347.js", + "static/chunks/ff6db6d7946b9f90.js", "static/chunks/0ff158dd58fe47c8.js" ] }, "950648": { "id": 950648, "files": [ - "static/chunks/d578f418b9661eaf.js", + "static/chunks/844db355c06db065.js", "static/chunks/0ff158dd58fe47c8.js" ] }, "566137": { "id": 566137, "files": [ - "static/chunks/0a765fb53d81ccec.js", - "static/chunks/c9e4534297dc4d54.js", - "static/chunks/9c4a690cd48e1298.js" + "static/chunks/9c4a690cd48e1298.js", + "static/chunks/c9e4534297dc4d54.js" ] }, "888085": { diff --git a/.next/server/app/[locale]/team/page_client-reference-manifest.js b/.next/server/app/[locale]/team/page_client-reference-manifest.js index 8b04ded0c..b56acb207 100644 --- a/.next/server/app/[locale]/team/page_client-reference-manifest.js +++ b/.next/server/app/[locale]/team/page_client-reference-manifest.js @@ -1,2 +1,2 @@ globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; -globalThis.__RSC_MANIFEST["/[locale]/team/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":666284,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":666284,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":29584,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":29584,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":30965,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":30965,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":966591,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":966591,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":3420,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3420,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":489266,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":489266,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":67067,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":67067,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/app/global-error.tsx ":{"id":253348,"name":"*","chunks":["/_next/static/chunks/7bc980684698d6e7.js","/_next/static/chunks/5336d64d11e7435f.js"],"async":false},"[project]/app/global-error.tsx":{"id":253348,"name":"*","chunks":["/_next/static/chunks/7bc980684698d6e7.js","/_next/static/chunks/5336d64d11e7435f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/app-dir/link.js ":{"id":184868,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/16d825876541b2df.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/app-dir/link.js":{"id":184868,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/16d825876541b2df.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/image-component.js ":{"id":702050,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/16d825876541b2df.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/image-component.js":{"id":702050,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/16d825876541b2df.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/layout/LanguageSwitcher.tsx ":{"id":287564,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/layout/LanguageSwitcher.tsx":{"id":287564,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/layout/Header.tsx ":{"id":993983,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/layout/Header.tsx":{"id":993983,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/SkipLink.tsx ":{"id":814508,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/SkipLink.tsx":{"id":814508,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/analytics/AnalyticsShell.tsx ":{"id":531518,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/analytics/AnalyticsShell.tsx":{"id":531518,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/node_modules/.pnpm/next-intl@4.9.0_@swc+helpers@0.5.20_next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js ":{"id":600023,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/node_modules/.pnpm/next-intl@4.9.0_@swc+helpers@0.5.20_next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js":{"id":600023,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/FeedbackClientWrapper.tsx ":{"id":689647,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/FeedbackClientWrapper.tsx":{"id":689647,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/app/[locale]/error.tsx ":{"id":309974,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/4e4487a1c38504b3.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/app/[locale]/error.tsx":{"id":309974,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/4e4487a1c38504b3.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/Scribble.tsx ":{"id":224038,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/Scribble.tsx":{"id":224038,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/analytics/ClientNotFoundTracker.tsx ":{"id":555331,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/analytics/ClientNotFoundTracker.tsx":{"id":555331,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/Reveal.tsx ":{"id":759095,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/16d825876541b2df.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/Reveal.tsx":{"id":759095,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/16d825876541b2df.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/team/Gallery.tsx ":{"id":7278,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/16d825876541b2df.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/team/Gallery.tsx":{"id":7278,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/16d825876541b2df.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/analytics/TrackedButton.tsx ":{"id":132273,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/16d825876541b2df.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/analytics/TrackedButton.tsx":{"id":132273,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/16d825876541b2df.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false}},"ssrModuleMapping":{"666284":{"*":{"id":164732,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"29584":{"*":{"id":743976,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"30965":{"*":{"id":46550,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"966591":{"*":{"id":594180,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"3420":{"*":{"id":585766,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"489266":{"*":{"id":471584,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"67067":{"*":{"id":561162,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"253348":{"*":{"id":303171,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__411530ea._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js"],"async":false}},"184868":{"*":{"id":841757,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__fceaebac._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"702050":{"*":{"id":739969,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__fceaebac._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"287564":{"*":{"id":81870,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"993983":{"*":{"id":581631,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"814508":{"*":{"id":909381,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"531518":{"*":{"id":905651,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"600023":{"*":{"id":650766,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"689647":{"*":{"id":894447,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"309974":{"*":{"id":497627,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__5bbfddd1._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"224038":{"*":{"id":991320,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__28a191f2._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"555331":{"*":{"id":868513,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__28a191f2._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"759095":{"*":{"id":188457,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__fceaebac._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"7278":{"*":{"id":26701,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__fceaebac._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"132273":{"*":{"id":390265,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__fceaebac._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"666284":{"*":{"id":551417,"name":"*","chunks":[],"async":false}},"29584":{"*":{"id":536434,"name":"*","chunks":[],"async":false}},"30965":{"*":{"id":387103,"name":"*","chunks":[],"async":false}},"966591":{"*":{"id":580884,"name":"*","chunks":[],"async":false}},"3420":{"*":{"id":504014,"name":"*","chunks":[],"async":false}},"489266":{"*":{"id":726190,"name":"*","chunks":[],"async":false}},"67067":{"*":{"id":76412,"name":"*","chunks":[],"async":false}},"253348":{"*":{"id":153128,"name":"*","chunks":[],"async":false}},"184868":{"*":{"id":917929,"name":"*","chunks":[],"async":false}},"702050":{"*":{"id":986834,"name":"*","chunks":[],"async":false}},"287564":{"*":{"id":168713,"name":"*","chunks":[],"async":false}},"993983":{"*":{"id":625244,"name":"*","chunks":[],"async":false}},"814508":{"*":{"id":566663,"name":"*","chunks":[],"async":false}},"531518":{"*":{"id":292727,"name":"*","chunks":[],"async":false}},"600023":{"*":{"id":963034,"name":"*","chunks":[],"async":false}},"689647":{"*":{"id":679583,"name":"*","chunks":[],"async":false}},"309974":{"*":{"id":363934,"name":"*","chunks":[],"async":false}},"224038":{"*":{"id":404449,"name":"*","chunks":[],"async":false}},"555331":{"*":{"id":588684,"name":"*","chunks":[],"async":false}},"759095":{"*":{"id":479251,"name":"*","chunks":[],"async":false}},"7278":{"*":{"id":620578,"name":"*","chunks":[],"async":false}},"132273":{"*":{"id":763547,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/app/[locale]/opengraph-image--metadata":[],"[project]/app/global-error":[],"[project]/app/[locale]/layout":[{"path":"static/chunks/928be433d65b40cc.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/error":[{"path":"static/chunks/928be433d65b40cc.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/not-found":[{"path":"static/chunks/928be433d65b40cc.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/team/page":[{"path":"static/chunks/928be433d65b40cc.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}]},"entryJSFiles":{"[project]/app/[locale]/opengraph-image--metadata":["static/chunks/93736546a7cd8cd8.js","static/chunks/870a2c2978ab4440.js"],"[project]/app/global-error":["static/chunks/7bc980684698d6e7.js","static/chunks/5336d64d11e7435f.js"],"[project]/app/[locale]/layout":["static/chunks/76668d2ab61cd4a8.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b786cbc2e9238523.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/eeabc9d46e43f022.js"],"[project]/app/[locale]/error":["static/chunks/76668d2ab61cd4a8.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b786cbc2e9238523.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/eeabc9d46e43f022.js","static/chunks/4e4487a1c38504b3.js","static/chunks/0ff158dd58fe47c8.js","static/chunks/b550ef5d0ebc89bc.js"],"[project]/app/[locale]/not-found":["static/chunks/76668d2ab61cd4a8.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b786cbc2e9238523.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/eeabc9d46e43f022.js","static/chunks/a86ed0e5ea629175.js","static/chunks/0ff158dd58fe47c8.js","static/chunks/b550ef5d0ebc89bc.js"],"[project]/app/[locale]/team/page":["static/chunks/76668d2ab61cd4a8.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b786cbc2e9238523.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/eeabc9d46e43f022.js","static/chunks/16d825876541b2df.js","static/chunks/0ff158dd58fe47c8.js","static/chunks/b550ef5d0ebc89bc.js"]}} +globalThis.__RSC_MANIFEST["/[locale]/team/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":666284,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":666284,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":29584,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":29584,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":30965,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":30965,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":966591,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":966591,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":3420,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3420,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":489266,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":489266,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":67067,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":67067,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/app/global-error.tsx ":{"id":253348,"name":"*","chunks":["/_next/static/chunks/7bc980684698d6e7.js","/_next/static/chunks/5336d64d11e7435f.js"],"async":false},"[project]/app/global-error.tsx":{"id":253348,"name":"*","chunks":["/_next/static/chunks/7bc980684698d6e7.js","/_next/static/chunks/5336d64d11e7435f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/app-dir/link.js ":{"id":184868,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/1f783c97b273e603.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/app-dir/link.js":{"id":184868,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/1f783c97b273e603.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/image-component.js ":{"id":702050,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/1f783c97b273e603.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/image-component.js":{"id":702050,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/1f783c97b273e603.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/layout/LanguageSwitcher.tsx ":{"id":287564,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/layout/LanguageSwitcher.tsx":{"id":287564,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/layout/Header.tsx ":{"id":993983,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/layout/Header.tsx":{"id":993983,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/SkipLink.tsx ":{"id":814508,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/SkipLink.tsx":{"id":814508,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/analytics/AnalyticsShell.tsx ":{"id":531518,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/analytics/AnalyticsShell.tsx":{"id":531518,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/node_modules/.pnpm/next-intl@4.9.0_@swc+helpers@0.5.20_next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js ":{"id":600023,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/node_modules/.pnpm/next-intl@4.9.0_@swc+helpers@0.5.20_next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js":{"id":600023,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/FeedbackClientWrapper.tsx ":{"id":689647,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/FeedbackClientWrapper.tsx":{"id":689647,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/app/[locale]/error.tsx ":{"id":309974,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b02fdfb08ad720b0.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/app/[locale]/error.tsx":{"id":309974,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b02fdfb08ad720b0.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/Scribble.tsx ":{"id":224038,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/Scribble.tsx":{"id":224038,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/analytics/ClientNotFoundTracker.tsx ":{"id":555331,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/analytics/ClientNotFoundTracker.tsx":{"id":555331,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/Reveal.tsx ":{"id":759095,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/1f783c97b273e603.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/Reveal.tsx":{"id":759095,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/1f783c97b273e603.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/team/Gallery.tsx ":{"id":7278,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/1f783c97b273e603.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/team/Gallery.tsx":{"id":7278,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/1f783c97b273e603.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/analytics/TrackedButton.tsx ":{"id":132273,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/1f783c97b273e603.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/analytics/TrackedButton.tsx":{"id":132273,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/1f783c97b273e603.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false}},"ssrModuleMapping":{"666284":{"*":{"id":164732,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"29584":{"*":{"id":743976,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"30965":{"*":{"id":46550,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"966591":{"*":{"id":594180,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"3420":{"*":{"id":585766,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"489266":{"*":{"id":471584,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"67067":{"*":{"id":561162,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"253348":{"*":{"id":303171,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__411530ea._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js"],"async":false}},"184868":{"*":{"id":841757,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__0bdab930._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"702050":{"*":{"id":739969,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__0bdab930._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"287564":{"*":{"id":81870,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"993983":{"*":{"id":581631,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"814508":{"*":{"id":909381,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"531518":{"*":{"id":905651,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"600023":{"*":{"id":650766,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"689647":{"*":{"id":894447,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"309974":{"*":{"id":497627,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__34977423._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"224038":{"*":{"id":991320,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__63a582be._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"555331":{"*":{"id":868513,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__63a582be._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"759095":{"*":{"id":188457,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__0bdab930._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"7278":{"*":{"id":26701,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__0bdab930._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"132273":{"*":{"id":390265,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__0bdab930._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"666284":{"*":{"id":551417,"name":"*","chunks":[],"async":false}},"29584":{"*":{"id":536434,"name":"*","chunks":[],"async":false}},"30965":{"*":{"id":387103,"name":"*","chunks":[],"async":false}},"966591":{"*":{"id":580884,"name":"*","chunks":[],"async":false}},"3420":{"*":{"id":504014,"name":"*","chunks":[],"async":false}},"489266":{"*":{"id":726190,"name":"*","chunks":[],"async":false}},"67067":{"*":{"id":76412,"name":"*","chunks":[],"async":false}},"253348":{"*":{"id":153128,"name":"*","chunks":[],"async":false}},"184868":{"*":{"id":917929,"name":"*","chunks":[],"async":false}},"702050":{"*":{"id":986834,"name":"*","chunks":[],"async":false}},"287564":{"*":{"id":168713,"name":"*","chunks":[],"async":false}},"993983":{"*":{"id":625244,"name":"*","chunks":[],"async":false}},"814508":{"*":{"id":566663,"name":"*","chunks":[],"async":false}},"531518":{"*":{"id":292727,"name":"*","chunks":[],"async":false}},"600023":{"*":{"id":963034,"name":"*","chunks":[],"async":false}},"689647":{"*":{"id":679583,"name":"*","chunks":[],"async":false}},"309974":{"*":{"id":363934,"name":"*","chunks":[],"async":false}},"224038":{"*":{"id":404449,"name":"*","chunks":[],"async":false}},"555331":{"*":{"id":588684,"name":"*","chunks":[],"async":false}},"759095":{"*":{"id":479251,"name":"*","chunks":[],"async":false}},"7278":{"*":{"id":620578,"name":"*","chunks":[],"async":false}},"132273":{"*":{"id":763547,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/app/[locale]/opengraph-image--metadata":[],"[project]/app/global-error":[],"[project]/app/[locale]/layout":[{"path":"static/chunks/3f652f1a7128a03a.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/error":[{"path":"static/chunks/3f652f1a7128a03a.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/not-found":[{"path":"static/chunks/3f652f1a7128a03a.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/team/page":[{"path":"static/chunks/3f652f1a7128a03a.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}]},"entryJSFiles":{"[project]/app/[locale]/opengraph-image--metadata":["static/chunks/93736546a7cd8cd8.js","static/chunks/870a2c2978ab4440.js"],"[project]/app/global-error":["static/chunks/7bc980684698d6e7.js","static/chunks/5336d64d11e7435f.js"],"[project]/app/[locale]/layout":["static/chunks/6640bcd504ed2815.js","static/chunks/eeabc9d46e43f022.js","static/chunks/595f4cd305cd0088.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/fac3383571a5e891.js","static/chunks/ad1b4e551db227fe.js"],"[project]/app/[locale]/error":["static/chunks/6640bcd504ed2815.js","static/chunks/eeabc9d46e43f022.js","static/chunks/595f4cd305cd0088.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/fac3383571a5e891.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b02fdfb08ad720b0.js","static/chunks/0ff158dd58fe47c8.js"],"[project]/app/[locale]/not-found":["static/chunks/6640bcd504ed2815.js","static/chunks/eeabc9d46e43f022.js","static/chunks/595f4cd305cd0088.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/fac3383571a5e891.js","static/chunks/ad1b4e551db227fe.js","static/chunks/e91fc49c513620bc.js","static/chunks/0ff158dd58fe47c8.js"],"[project]/app/[locale]/team/page":["static/chunks/6640bcd504ed2815.js","static/chunks/eeabc9d46e43f022.js","static/chunks/595f4cd305cd0088.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/fac3383571a5e891.js","static/chunks/ad1b4e551db227fe.js","static/chunks/1f783c97b273e603.js","static/chunks/0ff158dd58fe47c8.js"]}} diff --git a/.next/server/app/[locale]/test/page.js b/.next/server/app/[locale]/test/page.js index b12d22c8a..ad596428c 100644 --- a/.next/server/app/[locale]/test/page.js +++ b/.next/server/app/[locale]/test/page.js @@ -6,7 +6,7 @@ R.c("server/chunks/ssr/[root-of-the-server]__5bd1b04a._.js") R.c("server/chunks/ssr/5e5d0_@opentelemetry_api_build_esm_f7b039e6._.js") R.c("server/chunks/ssr/468ab_next_dist_d9f52090._.js") R.c("server/chunks/ssr/468ab_next_dist_e98c316f._.js") -R.c("server/chunks/ssr/[root-of-the-server]__f153a21f._.js") +R.c("server/chunks/ssr/[root-of-the-server]__2da52317._.js") R.c("server/chunks/ssr/468ab_next_dist_668db2a3._.js") R.c("server/chunks/ssr/node_modules__pnpm_20ad9314._.js") R.c("server/chunks/ssr/3c3e1_next-intl_dist_esm_production_server_react-server_getConfig_8e5b989d.js") @@ -17,13 +17,13 @@ R.c("server/chunks/ssr/app_global-error_tsx_9170b7a0._.js") R.c("server/chunks/ssr/468ab_next_dist_client_components_9ea24689._.js") R.c("server/chunks/ssr/468ab_next_dist_client_components_builtin_forbidden_fcf22647.js") R.c("server/chunks/ssr/468ab_next_dist_client_components_builtin_unauthorized_242673a5.js") -R.c("server/chunks/ssr/_106014c9._.js") -R.c("server/chunks/ssr/_536bc82a._.js") +R.c("server/chunks/ssr/_f1e03d27._.js") +R.c("server/chunks/ssr/_6189c8b5._.js") R.c("server/chunks/ssr/[root-of-the-server]__bc75933a._.js") R.c("server/chunks/ssr/_df4aec0b._.js") R.c("server/chunks/ssr/app_[locale]_error_tsx_37c0341f._.js") -R.c("server/chunks/ssr/_49a7ffbe._.js") -R.c("server/chunks/ssr/components_4d1233ab._.js") +R.c("server/chunks/ssr/_d825b83f._.js") +R.c("server/chunks/ssr/components_ui_6a2a3715._.js") R.c("server/chunks/ssr/_next-internal_server_app_[locale]_test_page_actions_4ca3345b.js") R.m(41124) module.exports=R.m(41124).exports diff --git a/.next/server/app/[locale]/test/page.js.nft.json b/.next/server/app/[locale]/test/page.js.nft.json index 8b46b5dec..47069ec18 100644 --- a/.next/server/app/[locale]/test/page.js.nft.json +++ b/.next/server/app/[locale]/test/page.js.nft.json @@ -1 +1 @@ -{"version":1,"files":["../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/context.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/diag.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/metrics.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/propagation.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/trace.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/context.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/types.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/index.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/global-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/semver.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/Metric.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/context-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/span_kind.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/status.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/version.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/package.json","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/execAsync.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-bsd.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-darwin.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-linux.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-unsupported.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-win.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId.js","../../../../../node_modules/.pnpm/@pinojs+redact@0.4.0/node_modules/@pinojs/redact/index.js","../../../../../node_modules/.pnpm/@pinojs+redact@0.4.0/node_modules/@pinojs/redact/package.json","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/browserTracingIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/clientNormalizationIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/appRouterRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/isrRoutingTracing.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/nextRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/pagesRouterRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/parameterization.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/tunnelRoute.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/captureRequestError.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/debug-build.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/devErrorSymbolicationEventProcessor.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/getVercelEnv.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextNavigationErrorUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextSpanAttributes.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/_error.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentryVercelCrons.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapAppGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapDocumentGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapErrorGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetServerSidePropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetStaticPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapPageComponentWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/span-attributes-with-logic-attached.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/addHeadersAsAttributes.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/dropMiddlewareTunnelRequests.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isBuild.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isUseCacheFunction.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/nextSpan.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/responseEnd.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/setUrlProcessingMetadata.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/tracingUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/urls.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/wrapperUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/withServerActionInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapGenerationFunctionWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapMiddlewareWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapRouteHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapServerComponentWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/getBuildPluginOptions.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/handleRunAfterProductionCompile.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/componentAnnotationLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/moduleMetadataInjectionLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/prefixLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/valueInjectionLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/wrappingLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/manifest/createRouteManifest.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/polyfills/perf_hooks.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/apiWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/middlewareWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/pageWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/requestAsyncStorageShim.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/routeHandlerWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/sentryInitWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/serverComponentWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/constructTurbopackConfig.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/generateValueInjectionRules.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/util.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/webpack.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/buildTime.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/constants.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/deprecatedWebpackOptions.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObject.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectBundlerUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/tunnel.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/distDirRewriteFramesIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/wrapApiHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.client.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.server.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/distDirRewriteFramesIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/handleOnSpanStart.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/prepareSafeIdGeneratorContext.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelCronsMonitoring.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelQueuesMonitoring.js","../../../../../node_modules/.pnpm/atomic-sleep@1.0.0/node_modules/atomic-sleep/index.js","../../../../../node_modules/.pnpm/atomic-sleep@1.0.0/node_modules/atomic-sleep/package.json","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/package.json","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/browser.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/index.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/node.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/ms","../../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js","../../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@1.15.0/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/index.js","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/lib/register.js","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/index.js","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/lib/register.js","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/index.js","../../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/package.json","../../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js","../../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/@opentelemetry/api","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/LICENSE","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/index.edge.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/index.node.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/noto-sans-v27-latin-regular.ttf","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/resvg.wasm","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/satori/LICENSE","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/yoga.wasm","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/constants.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/is-error.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/runtime-reacts.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/package.json","../../../../../node_modules/.pnpm/node_modules/@opentelemetry/api","../../../../../node_modules/.pnpm/node_modules/@pinojs/redact","../../../../../node_modules/.pnpm/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/node_modules/debug","../../../../../node_modules/.pnpm/node_modules/has-flag","../../../../../node_modules/.pnpm/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/node_modules/ms","../../../../../node_modules/.pnpm/node_modules/on-exit-leak-free","../../../../../node_modules/.pnpm/node_modules/pino-std-serializers","../../../../../node_modules/.pnpm/node_modules/quick-format-unescaped","../../../../../node_modules/.pnpm/node_modules/real-require","../../../../../node_modules/.pnpm/node_modules/safe-stable-stringify","../../../../../node_modules/.pnpm/node_modules/sonic-boom","../../../../../node_modules/.pnpm/node_modules/supports-color","../../../../../node_modules/.pnpm/node_modules/thread-stream","../../../../../node_modules/.pnpm/on-exit-leak-free@2.1.2/node_modules/on-exit-leak-free/index.js","../../../../../node_modules/.pnpm/on-exit-leak-free@2.1.2/node_modules/on-exit-leak-free/package.json","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/index.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-helpers.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-proto.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-with-cause.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/req.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/res.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/package.json","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/@pinojs/redact","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/on-exit-leak-free","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino-std-serializers","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/file.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/caller.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/constants.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/deprecations.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/levels.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/meta.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/multistream.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/proto.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/redaction.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/symbols.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/time.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/tools.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/transport-stream.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/transport.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/worker.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/package.json","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/pino.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/quick-format-unescaped","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/safe-stable-stringify","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/sonic-boom","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/thread-stream","../../../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/index.js","../../../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/package.json","../../../../../node_modules/.pnpm/real-require@0.2.0/node_modules/real-require/package.json","../../../../../node_modules/.pnpm/real-require@0.2.0/node_modules/real-require/src/index.js","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/debug","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/index.js","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/package.json","../../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/index.js","../../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/package.json","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/LICENSE","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/README.md","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/bench.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/check.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/example.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/fixtures/firehose.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/index.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/package.json","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/destroy.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/end.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/flush-sync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/flush.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/fsync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/helper.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/minlength.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/mode.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/periodicflush.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/reopen.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/retry.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/sync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/write.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/types/tests/test.ts","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/has-flag","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/package.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/real-require","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/LICENSE","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/bench.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/eslint.config.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/index.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/indexes.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/wait.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/worker.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/package.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/base.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/bench.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/bundlers.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/close-on-gc.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/commonjs-fallback.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/context.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/create-and-exit.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/custom-worker.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/dir with spaces/test-package.zip","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/emit-event.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/end.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/error.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/esm.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/event.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/exit.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/get-context.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/helper.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/indexes.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/multibyte-chars.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/on-message.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/index.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/pkg.config.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/pkg.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/port.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/post-message.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/string-limit-2.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/string-limit.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/syntax-error.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/thread-management.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file-on-destroy.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file-on-final.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-next.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/transpiled.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-commonjs-default-export.zip","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-native.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-node-fallback.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts/to-file.ts","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts/transpile.sh","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/uncaughtException.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/unhandledRejection.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/yarnrc.yml","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/tsconfig.json","../../../../../node_modules/import-in-the-middle","../../../../../node_modules/next","../../../../../node_modules/pino","../../../../../node_modules/require-in-the-middle","../../../../node_modules/import-in-the-middle-138cd032e4b029f3","../../../../node_modules/import-in-the-middle-6ecbfda1283b1532","../../../../node_modules/pino-2e79642258e38174","../../../../node_modules/require-in-the-middle-a99415fa67232f7f","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_5e35a34a.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_f7a67094.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_68baf629.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_e2e05945.js","../../../chunks/ssr/3c3e1_next-intl_dist_esm_production_server_react-server_getConfig_8e5b989d.js","../../../chunks/ssr/468ab_next_b54e3ae0._.js","../../../chunks/ssr/468ab_next_c7821d87._.js","../../../chunks/ssr/468ab_next_dist_668db2a3._.js","../../../chunks/ssr/468ab_next_dist_6d1ec603._.js","../../../chunks/ssr/468ab_next_dist_9c02c43c._.js","../../../chunks/ssr/468ab_next_dist_a9fadb3f._.js","../../../chunks/ssr/468ab_next_dist_bc66fa15._.js","../../../chunks/ssr/468ab_next_dist_client_components_9ea24689._.js","../../../chunks/ssr/468ab_next_dist_client_components_builtin_forbidden_fcf22647.js","../../../chunks/ssr/468ab_next_dist_client_components_builtin_unauthorized_242673a5.js","../../../chunks/ssr/468ab_next_dist_d9f52090._.js","../../../chunks/ssr/468ab_next_dist_e98c316f._.js","../../../chunks/ssr/468ab_next_dist_esm_10bac804._.js","../../../chunks/ssr/5e5d0_@opentelemetry_api_build_esm_f7b039e6._.js","../../../chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_317a5e2b._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_51b27302._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_634cb413._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_88fed31f._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_929773f6._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_f2e70164._.js","../../../chunks/ssr/[externals]_next_dist_compiled_@vercel_og_index_node_055f47ab.js","../../../chunks/ssr/[externals]_node:inspector_7a4283c6._.js","../../../chunks/ssr/[root-of-the-server]__16d71f56._.js","../../../chunks/ssr/[root-of-the-server]__26c04c96._.js","../../../chunks/ssr/[root-of-the-server]__28a191f2._.js","../../../chunks/ssr/[root-of-the-server]__366a9ff8._.js","../../../chunks/ssr/[root-of-the-server]__411530ea._.js","../../../chunks/ssr/[root-of-the-server]__5bbfddd1._.js","../../../chunks/ssr/[root-of-the-server]__5bd1b04a._.js","../../../chunks/ssr/[root-of-the-server]__6bb30663._.js","../../../chunks/ssr/[root-of-the-server]__9aa0d618._.js","../../../chunks/ssr/[root-of-the-server]__9bfda315._.js","../../../chunks/ssr/[root-of-the-server]__9eff91eb._.js","../../../chunks/ssr/[root-of-the-server]__bc75933a._.js","../../../chunks/ssr/[root-of-the-server]__ed22f6ee._.js","../../../chunks/ssr/[root-of-the-server]__f153a21f._.js","../../../chunks/ssr/[root-of-the-server]__f939d130._.js","../../../chunks/ssr/[root-of-the-server]__fbc63b72._.js","../../../chunks/ssr/[turbopack]_runtime.js","../../../chunks/ssr/_106014c9._.js","../../../chunks/ssr/_49a7ffbe._.js","../../../chunks/ssr/_536bc82a._.js","../../../chunks/ssr/_6f66913b._.js","../../../chunks/ssr/_b33af55a._.js","../../../chunks/ssr/_b76d0ab2._.js","../../../chunks/ssr/_c3cb4fd0._.js","../../../chunks/ssr/_df4aec0b._.js","../../../chunks/ssr/_next-internal_server_app_[locale]_test_page_actions_4ca3345b.js","../../../chunks/ssr/app_[locale]_error_tsx_37c0341f._.js","../../../chunks/ssr/app_global-error_tsx_9170b7a0._.js","../../../chunks/ssr/components_4d1233ab._.js","../../../chunks/ssr/components_ui_utils_ts_f85ae7af._.js","../../../chunks/ssr/messages_de_json_56e8cde5._.js","../../../chunks/ssr/messages_en_json_a7997480._.js","../../../chunks/ssr/node_modules__pnpm_20ad9314._.js","../../../chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","../../../chunks/ssr/node_modules__pnpm_66399b09._.js","../../../chunks/ssr/node_modules__pnpm_8387bcd6._.js","../../../chunks/ssr/node_modules__pnpm_d28cabd9._.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file +{"version":1,"files":["../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/context.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/diag.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/metrics.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/propagation.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/trace.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/context.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/types.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/index.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/global-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/semver.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/Metric.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace-api.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/context-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/span_kind.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/status.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/version.js","../../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/package.json","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/execAsync.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-bsd.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-darwin.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-linux.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-unsupported.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-win.js","../../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId.js","../../../../../node_modules/.pnpm/@pinojs+redact@0.4.0/node_modules/@pinojs/redact/index.js","../../../../../node_modules/.pnpm/@pinojs+redact@0.4.0/node_modules/@pinojs/redact/package.json","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/browserTracingIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/clientNormalizationIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/appRouterRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/isrRoutingTracing.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/nextRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/pagesRouterRoutingInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/parameterization.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/tunnelRoute.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/captureRequestError.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/debug-build.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/devErrorSymbolicationEventProcessor.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/getVercelEnv.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextNavigationErrorUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextSpanAttributes.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/_error.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentryVercelCrons.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapAppGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapDocumentGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapErrorGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetInitialPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetServerSidePropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetStaticPropsWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapPageComponentWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/span-attributes-with-logic-attached.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/addHeadersAsAttributes.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/dropMiddlewareTunnelRequests.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isBuild.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isUseCacheFunction.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/nextSpan.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/responseEnd.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/setUrlProcessingMetadata.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/tracingUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/urls.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/wrapperUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/withServerActionInstrumentation.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapGenerationFunctionWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapMiddlewareWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapRouteHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapServerComponentWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/getBuildPluginOptions.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/handleRunAfterProductionCompile.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/componentAnnotationLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/moduleMetadataInjectionLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/prefixLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/valueInjectionLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/wrappingLoader.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/manifest/createRouteManifest.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/polyfills/perf_hooks.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/apiWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/middlewareWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/pageWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/requestAsyncStorageShim.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/routeHandlerWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/sentryInitWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/serverComponentWrapperTemplate.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/constructTurbopackConfig.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/generateValueInjectionRules.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/util.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/webpack.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/buildTime.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/constants.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/deprecatedWebpackOptions.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObject.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectBundlerUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectUtils.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/tunnel.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/distDirRewriteFramesIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/wrapApiHandlerWithSentry.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.client.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.server.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/distDirRewriteFramesIntegration.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/handleOnSpanStart.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/index.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/prepareSafeIdGeneratorContext.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelCronsMonitoring.js","../../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelQueuesMonitoring.js","../../../../../node_modules/.pnpm/atomic-sleep@1.0.0/node_modules/atomic-sleep/index.js","../../../../../node_modules/.pnpm/atomic-sleep@1.0.0/node_modules/atomic-sleep/package.json","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/package.json","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/browser.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/index.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/node.js","../../../../../node_modules/.pnpm/debug@4.4.3/node_modules/ms","../../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js","../../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@1.15.0/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/index.js","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/lib/register.js","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/index.js","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/lib/register.js","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/package.json","../../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/index.js","../../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/package.json","../../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js","../../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/@opentelemetry/api","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/LICENSE","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/index.edge.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/index.node.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/noto-sans-v27-latin-regular.ttf","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/resvg.wasm","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/satori/LICENSE","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@vercel/og/yoga.wasm","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/constants.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/is-error.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/runtime-reacts.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/package.json","../../../../../node_modules/.pnpm/node_modules/@opentelemetry/api","../../../../../node_modules/.pnpm/node_modules/@pinojs/redact","../../../../../node_modules/.pnpm/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/node_modules/debug","../../../../../node_modules/.pnpm/node_modules/has-flag","../../../../../node_modules/.pnpm/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/node_modules/ms","../../../../../node_modules/.pnpm/node_modules/on-exit-leak-free","../../../../../node_modules/.pnpm/node_modules/pino-std-serializers","../../../../../node_modules/.pnpm/node_modules/quick-format-unescaped","../../../../../node_modules/.pnpm/node_modules/real-require","../../../../../node_modules/.pnpm/node_modules/safe-stable-stringify","../../../../../node_modules/.pnpm/node_modules/sonic-boom","../../../../../node_modules/.pnpm/node_modules/supports-color","../../../../../node_modules/.pnpm/node_modules/thread-stream","../../../../../node_modules/.pnpm/on-exit-leak-free@2.1.2/node_modules/on-exit-leak-free/index.js","../../../../../node_modules/.pnpm/on-exit-leak-free@2.1.2/node_modules/on-exit-leak-free/package.json","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/index.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-helpers.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-proto.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err-with-cause.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/err.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/req.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/lib/res.js","../../../../../node_modules/.pnpm/pino-std-serializers@7.1.0/node_modules/pino-std-serializers/package.json","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/@pinojs/redact","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/on-exit-leak-free","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino-std-serializers","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/file.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/caller.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/constants.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/deprecations.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/levels.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/meta.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/multistream.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/proto.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/redaction.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/symbols.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/time.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/tools.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/transport-stream.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/transport.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/lib/worker.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/package.json","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/pino/pino.js","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/quick-format-unescaped","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/safe-stable-stringify","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/sonic-boom","../../../../../node_modules/.pnpm/pino@10.3.1/node_modules/thread-stream","../../../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/index.js","../../../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/package.json","../../../../../node_modules/.pnpm/real-require@0.2.0/node_modules/real-require/package.json","../../../../../node_modules/.pnpm/real-require@0.2.0/node_modules/real-require/src/index.js","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/debug","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/module-details-from-path","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/index.js","../../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/package.json","../../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/index.js","../../../../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/package.json","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/atomic-sleep","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/LICENSE","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/README.md","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/bench.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/check.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/example.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/fixtures/firehose.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/index.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/package.json","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/destroy.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/end.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/flush-sync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/flush.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/fsync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/helper.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/minlength.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/mode.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/periodicflush.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/reopen.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/retry.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/sync.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/test/write.test.js","../../../../../node_modules/.pnpm/sonic-boom@4.2.1/node_modules/sonic-boom/types/tests/test.ts","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/has-flag","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js","../../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/package.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/real-require","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/LICENSE","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/bench.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/eslint.config.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/index.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/indexes.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/wait.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/lib/worker.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/package.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/base.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/bench.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/bundlers.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/close-on-gc.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/commonjs-fallback.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/context.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/create-and-exit.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/custom-worker.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/dir with spaces/test-package.zip","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/emit-event.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/end.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/error.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/esm.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/event.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/exit.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/get-context.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/helper.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/indexes.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/multibyte-chars.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/on-message.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/index.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/pkg.config.json","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/pkg/pkg.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/port.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/post-message.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/string-limit-2.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/string-limit.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/syntax-error.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/thread-management.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file-on-destroy.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file-on-final.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-file.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/to-next.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/transpiled.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-commonjs-default-export.zip","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-native.test.mjs","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts-node-fallback.test.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts/to-file.ts","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/ts/transpile.sh","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/uncaughtException.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/unhandledRejection.js","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/test/yarnrc.yml","../../../../../node_modules/.pnpm/thread-stream@4.0.0/node_modules/thread-stream/tsconfig.json","../../../../../node_modules/import-in-the-middle","../../../../../node_modules/next","../../../../../node_modules/pino","../../../../../node_modules/require-in-the-middle","../../../../node_modules/import-in-the-middle-138cd032e4b029f3","../../../../node_modules/import-in-the-middle-6ecbfda1283b1532","../../../../node_modules/pino-2e79642258e38174","../../../../node_modules/require-in-the-middle-a99415fa67232f7f","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_5e35a34a.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_f7a67094.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_68baf629.js","../../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_e2e05945.js","../../../chunks/ssr/3c3e1_next-intl_dist_esm_production_server_react-server_getConfig_8e5b989d.js","../../../chunks/ssr/468ab_next_b54e3ae0._.js","../../../chunks/ssr/468ab_next_c7821d87._.js","../../../chunks/ssr/468ab_next_dist_668db2a3._.js","../../../chunks/ssr/468ab_next_dist_9c02c43c._.js","../../../chunks/ssr/468ab_next_dist_a9fadb3f._.js","../../../chunks/ssr/468ab_next_dist_client_components_9ea24689._.js","../../../chunks/ssr/468ab_next_dist_client_components_builtin_forbidden_fcf22647.js","../../../chunks/ssr/468ab_next_dist_client_components_builtin_unauthorized_242673a5.js","../../../chunks/ssr/468ab_next_dist_d9f52090._.js","../../../chunks/ssr/468ab_next_dist_e98c316f._.js","../../../chunks/ssr/468ab_next_dist_esm_10bac804._.js","../../../chunks/ssr/5e5d0_@opentelemetry_api_build_esm_f7b039e6._.js","../../../chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_317a5e2b._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_51b27302._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_634cb413._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_88fed31f._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_929773f6._.js","../../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_f2e70164._.js","../../../chunks/ssr/[externals]_next_dist_compiled_@vercel_og_index_node_055f47ab.js","../../../chunks/ssr/[externals]_node:inspector_7a4283c6._.js","../../../chunks/ssr/[root-of-the-server]__047498e4._.js","../../../chunks/ssr/[root-of-the-server]__16d71f56._.js","../../../chunks/ssr/[root-of-the-server]__26c04c96._.js","../../../chunks/ssr/[root-of-the-server]__2da52317._.js","../../../chunks/ssr/[root-of-the-server]__34977423._.js","../../../chunks/ssr/[root-of-the-server]__366a9ff8._.js","../../../chunks/ssr/[root-of-the-server]__411530ea._.js","../../../chunks/ssr/[root-of-the-server]__5bd1b04a._.js","../../../chunks/ssr/[root-of-the-server]__63a582be._.js","../../../chunks/ssr/[root-of-the-server]__7fda9c9f._.js","../../../chunks/ssr/[root-of-the-server]__9bfda315._.js","../../../chunks/ssr/[root-of-the-server]__9eff91eb._.js","../../../chunks/ssr/[root-of-the-server]__bc75933a._.js","../../../chunks/ssr/[root-of-the-server]__d3969a9f._.js","../../../chunks/ssr/[root-of-the-server]__ed22f6ee._.js","../../../chunks/ssr/[root-of-the-server]__fbc63b72._.js","../../../chunks/ssr/[turbopack]_runtime.js","../../../chunks/ssr/_16003e4d._.js","../../../chunks/ssr/_6189c8b5._.js","../../../chunks/ssr/_6f66913b._.js","../../../chunks/ssr/_b33af55a._.js","../../../chunks/ssr/_b76d0ab2._.js","../../../chunks/ssr/_c3cb4fd0._.js","../../../chunks/ssr/_d825b83f._.js","../../../chunks/ssr/_df4aec0b._.js","../../../chunks/ssr/_f1e03d27._.js","../../../chunks/ssr/_next-internal_server_app_[locale]_test_page_actions_4ca3345b.js","../../../chunks/ssr/app_[locale]_error_tsx_37c0341f._.js","../../../chunks/ssr/app_global-error_tsx_9170b7a0._.js","../../../chunks/ssr/components_ui_6a2a3715._.js","../../../chunks/ssr/messages_de_json_56e8cde5._.js","../../../chunks/ssr/messages_en_json_a7997480._.js","../../../chunks/ssr/node_modules__pnpm_20ad9314._.js","../../../chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","../../../chunks/ssr/node_modules__pnpm_66399b09._.js","../../../chunks/ssr/node_modules__pnpm_8387bcd6._.js","../../../chunks/ssr/node_modules__pnpm_d28cabd9._.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/.next/server/app/[locale]/test/page/build-manifest.json b/.next/server/app/[locale]/test/page/build-manifest.json index 436cd66d8..4482423a4 100644 --- a/.next/server/app/[locale]/test/page/build-manifest.json +++ b/.next/server/app/[locale]/test/page/build-manifest.json @@ -7,11 +7,11 @@ "lowPriorityFiles": [], "rootMainFiles": [ "static/chunks/c68fc807b9365f18.js", - "static/chunks/f51290069c969e8a.js", + "static/chunks/b263a60573bfd155.js", "static/chunks/29297b02a438a66e.js", "static/chunks/fd7b24483a212e2f.js", - "static/chunks/b62c08cc490fef16.js", - "static/chunks/turbopack-e5b78b2a7c8f1f21.js" + "static/chunks/b6898185462c2fee.js", + "static/chunks/turbopack-721eb9b8c3f79e29.js" ], "pages": {}, "ampFirstPages": [] diff --git a/.next/server/app/[locale]/test/page/react-loadable-manifest.json b/.next/server/app/[locale]/test/page/react-loadable-manifest.json index 313542e4d..a0b34aa9d 100644 --- a/.next/server/app/[locale]/test/page/react-loadable-manifest.json +++ b/.next/server/app/[locale]/test/page/react-loadable-manifest.json @@ -2,30 +2,29 @@ "565071": { "id": 565071, "files": [ - "static/chunks/a6d16f278f687ad0.js", + "static/chunks/d62bf387414e0748.js", "static/chunks/0ff158dd58fe47c8.js" ] }, "248785": { "id": 248785, "files": [ - "static/chunks/1fa1fc1d8df71347.js", + "static/chunks/ff6db6d7946b9f90.js", "static/chunks/0ff158dd58fe47c8.js" ] }, "950648": { "id": 950648, "files": [ - "static/chunks/d578f418b9661eaf.js", + "static/chunks/844db355c06db065.js", "static/chunks/0ff158dd58fe47c8.js" ] }, "566137": { "id": 566137, "files": [ - "static/chunks/0a765fb53d81ccec.js", - "static/chunks/c9e4534297dc4d54.js", - "static/chunks/9c4a690cd48e1298.js" + "static/chunks/9c4a690cd48e1298.js", + "static/chunks/c9e4534297dc4d54.js" ] } } \ No newline at end of file diff --git a/.next/server/app/[locale]/test/page_client-reference-manifest.js b/.next/server/app/[locale]/test/page_client-reference-manifest.js index bc33fd135..f12896ebf 100644 --- a/.next/server/app/[locale]/test/page_client-reference-manifest.js +++ b/.next/server/app/[locale]/test/page_client-reference-manifest.js @@ -1,2 +1,2 @@ globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; -globalThis.__RSC_MANIFEST["/[locale]/test/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":666284,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":666284,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":29584,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":29584,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":30965,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":30965,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":966591,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":966591,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":3420,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3420,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":489266,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":489266,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":67067,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":67067,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/app/global-error.tsx ":{"id":253348,"name":"*","chunks":["/_next/static/chunks/7bc980684698d6e7.js","/_next/static/chunks/5336d64d11e7435f.js"],"async":false},"[project]/app/global-error.tsx":{"id":253348,"name":"*","chunks":["/_next/static/chunks/7bc980684698d6e7.js","/_next/static/chunks/5336d64d11e7435f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/app-dir/link.js ":{"id":184868,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/app-dir/link.js":{"id":184868,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/image-component.js ":{"id":702050,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/image-component.js":{"id":702050,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/layout/LanguageSwitcher.tsx ":{"id":287564,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/layout/LanguageSwitcher.tsx":{"id":287564,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/layout/Header.tsx ":{"id":993983,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/layout/Header.tsx":{"id":993983,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/SkipLink.tsx ":{"id":814508,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/SkipLink.tsx":{"id":814508,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/analytics/AnalyticsShell.tsx ":{"id":531518,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/analytics/AnalyticsShell.tsx":{"id":531518,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/node_modules/.pnpm/next-intl@4.9.0_@swc+helpers@0.5.20_next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js ":{"id":600023,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/node_modules/.pnpm/next-intl@4.9.0_@swc+helpers@0.5.20_next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js":{"id":600023,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/FeedbackClientWrapper.tsx ":{"id":689647,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/components/FeedbackClientWrapper.tsx":{"id":689647,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js"],"async":false},"[project]/app/[locale]/error.tsx ":{"id":309974,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/4e4487a1c38504b3.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/app/[locale]/error.tsx":{"id":309974,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/4e4487a1c38504b3.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/Scribble.tsx ":{"id":224038,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/Scribble.tsx":{"id":224038,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/analytics/ClientNotFoundTracker.tsx ":{"id":555331,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false},"[project]/components/analytics/ClientNotFoundTracker.tsx":{"id":555331,"name":"*","chunks":["/_next/static/chunks/76668d2ab61cd4a8.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b786cbc2e9238523.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/a86ed0e5ea629175.js","/_next/static/chunks/0ff158dd58fe47c8.js","/_next/static/chunks/b550ef5d0ebc89bc.js"],"async":false}},"ssrModuleMapping":{"666284":{"*":{"id":164732,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"29584":{"*":{"id":743976,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"30965":{"*":{"id":46550,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"966591":{"*":{"id":594180,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"3420":{"*":{"id":585766,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"489266":{"*":{"id":471584,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"67067":{"*":{"id":561162,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"253348":{"*":{"id":303171,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__411530ea._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js"],"async":false}},"184868":{"*":{"id":841757,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__28a191f2._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"702050":{"*":{"id":739969,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"287564":{"*":{"id":81870,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"993983":{"*":{"id":581631,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"814508":{"*":{"id":909381,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"531518":{"*":{"id":905651,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"600023":{"*":{"id":650766,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"689647":{"*":{"id":894447,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js"],"async":false}},"309974":{"*":{"id":497627,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__5bbfddd1._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"224038":{"*":{"id":991320,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__28a191f2._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}},"555331":{"*":{"id":868513,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__f939d130._.js","server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/468ab_next_dist_6d1ec603._.js","server/chunks/ssr/468ab_next_dist_bc66fa15._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__28a191f2._.js","server/chunks/ssr/_6f66913b._.js","server/chunks/ssr/components_ui_utils_ts_f85ae7af._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"666284":{"*":{"id":551417,"name":"*","chunks":[],"async":false}},"29584":{"*":{"id":536434,"name":"*","chunks":[],"async":false}},"30965":{"*":{"id":387103,"name":"*","chunks":[],"async":false}},"966591":{"*":{"id":580884,"name":"*","chunks":[],"async":false}},"3420":{"*":{"id":504014,"name":"*","chunks":[],"async":false}},"489266":{"*":{"id":726190,"name":"*","chunks":[],"async":false}},"67067":{"*":{"id":76412,"name":"*","chunks":[],"async":false}},"253348":{"*":{"id":153128,"name":"*","chunks":[],"async":false}},"184868":{"*":{"id":917929,"name":"*","chunks":[],"async":false}},"702050":{"*":{"id":986834,"name":"*","chunks":[],"async":false}},"287564":{"*":{"id":168713,"name":"*","chunks":[],"async":false}},"993983":{"*":{"id":625244,"name":"*","chunks":[],"async":false}},"814508":{"*":{"id":566663,"name":"*","chunks":[],"async":false}},"531518":{"*":{"id":292727,"name":"*","chunks":[],"async":false}},"600023":{"*":{"id":963034,"name":"*","chunks":[],"async":false}},"689647":{"*":{"id":679583,"name":"*","chunks":[],"async":false}},"309974":{"*":{"id":363934,"name":"*","chunks":[],"async":false}},"224038":{"*":{"id":404449,"name":"*","chunks":[],"async":false}},"555331":{"*":{"id":588684,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/app/[locale]/opengraph-image--metadata":[],"[project]/app/global-error":[],"[project]/app/[locale]/layout":[{"path":"static/chunks/928be433d65b40cc.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/error":[{"path":"static/chunks/928be433d65b40cc.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/not-found":[{"path":"static/chunks/928be433d65b40cc.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}]},"entryJSFiles":{"[project]/app/[locale]/opengraph-image--metadata":["static/chunks/93736546a7cd8cd8.js","static/chunks/870a2c2978ab4440.js"],"[project]/app/global-error":["static/chunks/7bc980684698d6e7.js","static/chunks/5336d64d11e7435f.js"],"[project]/app/[locale]/layout":["static/chunks/76668d2ab61cd4a8.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b786cbc2e9238523.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/eeabc9d46e43f022.js"],"[project]/app/[locale]/error":["static/chunks/76668d2ab61cd4a8.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b786cbc2e9238523.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/eeabc9d46e43f022.js","static/chunks/4e4487a1c38504b3.js","static/chunks/0ff158dd58fe47c8.js","static/chunks/b550ef5d0ebc89bc.js"],"[project]/app/[locale]/not-found":["static/chunks/76668d2ab61cd4a8.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b786cbc2e9238523.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/eeabc9d46e43f022.js","static/chunks/a86ed0e5ea629175.js","static/chunks/0ff158dd58fe47c8.js","static/chunks/b550ef5d0ebc89bc.js"]}} +globalThis.__RSC_MANIFEST["/[locale]/test/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":666284,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":666284,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":29584,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":29584,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":30965,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":30965,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":966591,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":966591,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":3420,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3420,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":489266,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":489266,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":67067,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":67067,"name":"*","chunks":["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/app/global-error.tsx ":{"id":253348,"name":"*","chunks":["/_next/static/chunks/7bc980684698d6e7.js","/_next/static/chunks/5336d64d11e7435f.js"],"async":false},"[project]/app/global-error.tsx":{"id":253348,"name":"*","chunks":["/_next/static/chunks/7bc980684698d6e7.js","/_next/static/chunks/5336d64d11e7435f.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/app-dir/link.js ":{"id":184868,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/app-dir/link.js":{"id":184868,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/image-component.js ":{"id":702050,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/image-component.js":{"id":702050,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/layout/LanguageSwitcher.tsx ":{"id":287564,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/layout/LanguageSwitcher.tsx":{"id":287564,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/layout/Header.tsx ":{"id":993983,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/layout/Header.tsx":{"id":993983,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/SkipLink.tsx ":{"id":814508,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/SkipLink.tsx":{"id":814508,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/analytics/AnalyticsShell.tsx ":{"id":531518,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/analytics/AnalyticsShell.tsx":{"id":531518,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/node_modules/.pnpm/next-intl@4.9.0_@swc+helpers@0.5.20_next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js ":{"id":600023,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/node_modules/.pnpm/next-intl@4.9.0_@swc+helpers@0.5.20_next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/shared/NextIntlClientProvider.js":{"id":600023,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/FeedbackClientWrapper.tsx ":{"id":689647,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/components/FeedbackClientWrapper.tsx":{"id":689647,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js"],"async":false},"[project]/app/[locale]/error.tsx ":{"id":309974,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b02fdfb08ad720b0.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/app/[locale]/error.tsx":{"id":309974,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/b02fdfb08ad720b0.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/Scribble.tsx ":{"id":224038,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/Scribble.tsx":{"id":224038,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/analytics/ClientNotFoundTracker.tsx ":{"id":555331,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false},"[project]/components/analytics/ClientNotFoundTracker.tsx":{"id":555331,"name":"*","chunks":["/_next/static/chunks/6640bcd504ed2815.js","/_next/static/chunks/eeabc9d46e43f022.js","/_next/static/chunks/595f4cd305cd0088.js","/_next/static/chunks/638730c9f4207dea.js","/_next/static/chunks/2d7630a45ddc2e56.js","/_next/static/chunks/fac3383571a5e891.js","/_next/static/chunks/ad1b4e551db227fe.js","/_next/static/chunks/e91fc49c513620bc.js","/_next/static/chunks/0ff158dd58fe47c8.js"],"async":false}},"ssrModuleMapping":{"666284":{"*":{"id":164732,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"29584":{"*":{"id":743976,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"30965":{"*":{"id":46550,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"966591":{"*":{"id":594180,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"3420":{"*":{"id":585766,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"489266":{"*":{"id":471584,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"67067":{"*":{"id":561162,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__366a9ff8._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"253348":{"*":{"id":303171,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__411530ea._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js"],"async":false}},"184868":{"*":{"id":841757,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__63a582be._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"702050":{"*":{"id":739969,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"287564":{"*":{"id":81870,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"993983":{"*":{"id":581631,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"814508":{"*":{"id":909381,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"531518":{"*":{"id":905651,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"600023":{"*":{"id":650766,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"689647":{"*":{"id":894447,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js"],"async":false}},"309974":{"*":{"id":497627,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__34977423._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"224038":{"*":{"id":991320,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__63a582be._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}},"555331":{"*":{"id":868513,"name":"*","chunks":["server/chunks/ssr/468ab_next_dist_a9fadb3f._.js","server/chunks/ssr/node_modules__pnpm_d28cabd9._.js","server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js","server/chunks/ssr/876ae_framer-motion_dist_es_render_components_motion_proxy_mjs_b5db6a2f._.js","server/chunks/ssr/_16003e4d._.js","server/chunks/ssr/468ab_next_c7821d87._.js","server/chunks/ssr/_c3cb4fd0._.js","server/chunks/ssr/[root-of-the-server]__63a582be._.js","server/chunks/ssr/_6f66913b._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"666284":{"*":{"id":551417,"name":"*","chunks":[],"async":false}},"29584":{"*":{"id":536434,"name":"*","chunks":[],"async":false}},"30965":{"*":{"id":387103,"name":"*","chunks":[],"async":false}},"966591":{"*":{"id":580884,"name":"*","chunks":[],"async":false}},"3420":{"*":{"id":504014,"name":"*","chunks":[],"async":false}},"489266":{"*":{"id":726190,"name":"*","chunks":[],"async":false}},"67067":{"*":{"id":76412,"name":"*","chunks":[],"async":false}},"253348":{"*":{"id":153128,"name":"*","chunks":[],"async":false}},"184868":{"*":{"id":917929,"name":"*","chunks":[],"async":false}},"702050":{"*":{"id":986834,"name":"*","chunks":[],"async":false}},"287564":{"*":{"id":168713,"name":"*","chunks":[],"async":false}},"993983":{"*":{"id":625244,"name":"*","chunks":[],"async":false}},"814508":{"*":{"id":566663,"name":"*","chunks":[],"async":false}},"531518":{"*":{"id":292727,"name":"*","chunks":[],"async":false}},"600023":{"*":{"id":963034,"name":"*","chunks":[],"async":false}},"689647":{"*":{"id":679583,"name":"*","chunks":[],"async":false}},"309974":{"*":{"id":363934,"name":"*","chunks":[],"async":false}},"224038":{"*":{"id":404449,"name":"*","chunks":[],"async":false}},"555331":{"*":{"id":588684,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/app/[locale]/opengraph-image--metadata":[],"[project]/app/global-error":[],"[project]/app/[locale]/layout":[{"path":"static/chunks/3f652f1a7128a03a.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/error":[{"path":"static/chunks/3f652f1a7128a03a.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}],"[project]/app/[locale]/not-found":[{"path":"static/chunks/3f652f1a7128a03a.css","inlined":false},{"path":"static/chunks/7b987e8f60b282b6.css","inlined":false}]},"entryJSFiles":{"[project]/app/[locale]/opengraph-image--metadata":["static/chunks/93736546a7cd8cd8.js","static/chunks/870a2c2978ab4440.js"],"[project]/app/global-error":["static/chunks/7bc980684698d6e7.js","static/chunks/5336d64d11e7435f.js"],"[project]/app/[locale]/layout":["static/chunks/6640bcd504ed2815.js","static/chunks/eeabc9d46e43f022.js","static/chunks/595f4cd305cd0088.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/fac3383571a5e891.js","static/chunks/ad1b4e551db227fe.js"],"[project]/app/[locale]/error":["static/chunks/6640bcd504ed2815.js","static/chunks/eeabc9d46e43f022.js","static/chunks/595f4cd305cd0088.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/fac3383571a5e891.js","static/chunks/ad1b4e551db227fe.js","static/chunks/b02fdfb08ad720b0.js","static/chunks/0ff158dd58fe47c8.js"],"[project]/app/[locale]/not-found":["static/chunks/6640bcd504ed2815.js","static/chunks/eeabc9d46e43f022.js","static/chunks/595f4cd305cd0088.js","static/chunks/638730c9f4207dea.js","static/chunks/2d7630a45ddc2e56.js","static/chunks/fac3383571a5e891.js","static/chunks/ad1b4e551db227fe.js","static/chunks/e91fc49c513620bc.js","static/chunks/0ff158dd58fe47c8.js"]}} diff --git a/.next/server/app/_global-error.html b/.next/server/app/_global-error.html index 4a5ca950e..ea5739449 100644 --- a/.next/server/app/_global-error.html +++ b/.next/server/app/_global-error.html @@ -1,2 +1,2 @@ -500: Internal Server Error.

500

Internal Server Error.

\ No newline at end of file +500: Internal Server Error.

500

Internal Server Error.

\ No newline at end of file diff --git a/.next/server/app/_global-error.rsc b/.next/server/app/_global-error.rsc index 6801a3877..0e66a859f 100644 --- a/.next/server/app/_global-error.rsc +++ b/.next/server/app/_global-error.rsc @@ -6,7 +6,7 @@ 7:I[67067,["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"ViewportBoundary"] 9:I[67067,["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"MetadataBoundary"] b:I[267866,["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"default"] -0:{"P":null,"b":"Wkpp63uvO0BZHP6YvXq4O","c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":["$","title",null,{"children":"500: Internal Server Error."}]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"lineHeight":"48px"},"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","paddingRight":23,"fontSize":24,"fontWeight":500,"verticalAlign":"top"},"children":"500"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"28px"},"children":"Internal Server Error."}]}]]}]}]}]]}],[["$","script","script-0",{"src":"/_next/static/chunks/93736546a7cd8cd8.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/870a2c2978ab4440.js","async":true,"nonce":"$undefined"}]],["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$L7",null,{"children":"$L8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$La"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} +0:{"P":null,"b":"RNpp86I_Wwm4reXmuvbzY","c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":["$","title",null,{"children":"500: Internal Server Error."}]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"lineHeight":"48px"},"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","paddingRight":23,"fontSize":24,"fontWeight":500,"verticalAlign":"top"},"children":"500"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"28px"},"children":"Internal Server Error."}]}]]}]}]}]]}],[["$","script","script-0",{"src":"/_next/static/chunks/93736546a7cd8cd8.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/870a2c2978ab4440.js","async":true,"nonce":"$undefined"}]],["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$L7",null,{"children":"$L8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$La"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} 8:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] 6:null a:[["$","link","0",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}]] diff --git a/.next/server/app/_global-error.segments/__PAGE__.segment.rsc b/.next/server/app/_global-error.segments/__PAGE__.segment.rsc index b22769a94..a51e117e2 100644 --- a/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +++ b/.next/server/app/_global-error.segments/__PAGE__.segment.rsc @@ -1,5 +1,5 @@ 1:"$Sreact.fragment" 2:I[67067,["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"OutletBoundary"] 3:"$Sreact.suspense" -0:{"buildId":"Wkpp63uvO0BZHP6YvXq4O","rsc":["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":["$","title",null,{"children":"500: Internal Server Error."}]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"lineHeight":"48px"},"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","paddingRight":23,"fontSize":24,"fontWeight":500,"verticalAlign":"top"},"children":"500"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"28px"},"children":"Internal Server Error."}]}]]}]}]}]]}],[["$","script","script-0",{"src":"/_next/static/chunks/93736546a7cd8cd8.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/870a2c2978ab4440.js","async":true}]],["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"RNpp86I_Wwm4reXmuvbzY","rsc":["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":["$","title",null,{"children":"500: Internal Server Error."}]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"lineHeight":"48px"},"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","paddingRight":23,"fontSize":24,"fontWeight":500,"verticalAlign":"top"},"children":"500"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"28px"},"children":"Internal Server Error."}]}]]}]}]}]]}],[["$","script","script-0",{"src":"/_next/static/chunks/93736546a7cd8cd8.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/870a2c2978ab4440.js","async":true}]],["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"loading":null,"isPartial":false} 4:null diff --git a/.next/server/app/_global-error.segments/_full.segment.rsc b/.next/server/app/_global-error.segments/_full.segment.rsc index 6801a3877..0e66a859f 100644 --- a/.next/server/app/_global-error.segments/_full.segment.rsc +++ b/.next/server/app/_global-error.segments/_full.segment.rsc @@ -6,7 +6,7 @@ 7:I[67067,["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"ViewportBoundary"] 9:I[67067,["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"MetadataBoundary"] b:I[267866,["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"default"] -0:{"P":null,"b":"Wkpp63uvO0BZHP6YvXq4O","c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":["$","title",null,{"children":"500: Internal Server Error."}]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"lineHeight":"48px"},"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","paddingRight":23,"fontSize":24,"fontWeight":500,"verticalAlign":"top"},"children":"500"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"28px"},"children":"Internal Server Error."}]}]]}]}]}]]}],[["$","script","script-0",{"src":"/_next/static/chunks/93736546a7cd8cd8.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/870a2c2978ab4440.js","async":true,"nonce":"$undefined"}]],["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$L7",null,{"children":"$L8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$La"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} +0:{"P":null,"b":"RNpp86I_Wwm4reXmuvbzY","c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":["$","title",null,{"children":"500: Internal Server Error."}]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"lineHeight":"48px"},"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","paddingRight":23,"fontSize":24,"fontWeight":500,"verticalAlign":"top"},"children":"500"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"28px"},"children":"Internal Server Error."}]}]]}]}]}]]}],[["$","script","script-0",{"src":"/_next/static/chunks/93736546a7cd8cd8.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/870a2c2978ab4440.js","async":true,"nonce":"$undefined"}]],["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$L7",null,{"children":"$L8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$La"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$b","$undefined"],"S":true} 8:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] 6:null a:[["$","link","0",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}]] diff --git a/.next/server/app/_global-error.segments/_head.segment.rsc b/.next/server/app/_global-error.segments/_head.segment.rsc index b4df16c32..178fb1024 100644 --- a/.next/server/app/_global-error.segments/_head.segment.rsc +++ b/.next/server/app/_global-error.segments/_head.segment.rsc @@ -2,4 +2,4 @@ 2:I[67067,["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"ViewportBoundary"] 3:I[67067,["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"MetadataBoundary"] 4:"$Sreact.suspense" -0:{"buildId":"Wkpp63uvO0BZHP6YvXq4O","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","link","0",{"rel":"manifest","href":"/manifest.webmanifest"}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"loading":null,"isPartial":false} +0:{"buildId":"RNpp86I_Wwm4reXmuvbzY","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","link","0",{"rel":"manifest","href":"/manifest.webmanifest"}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"loading":null,"isPartial":false} diff --git a/.next/server/app/_global-error.segments/_index.segment.rsc b/.next/server/app/_global-error.segments/_index.segment.rsc index 1f69eda07..e2c5b5edc 100644 --- a/.next/server/app/_global-error.segments/_index.segment.rsc +++ b/.next/server/app/_global-error.segments/_index.segment.rsc @@ -1,4 +1,4 @@ 1:"$Sreact.fragment" 2:I[666284,["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"default"] 3:I[29584,["/_next/static/chunks/93736546a7cd8cd8.js","/_next/static/chunks/870a2c2978ab4440.js"],"default"] -0:{"buildId":"Wkpp63uvO0BZHP6YvXq4O","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"RNpp86I_Wwm4reXmuvbzY","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false} diff --git a/.next/server/app/_global-error.segments/_tree.segment.rsc b/.next/server/app/_global-error.segments/_tree.segment.rsc index e8d2f97fd..bd76e43ff 100644 --- a/.next/server/app/_global-error.segments/_tree.segment.rsc +++ b/.next/server/app/_global-error.segments/_tree.segment.rsc @@ -1 +1 @@ -0:{"buildId":"Wkpp63uvO0BZHP6YvXq4O","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false},"staleTime":300} +0:{"buildId":"RNpp86I_Wwm4reXmuvbzY","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false},"staleTime":300} diff --git a/.next/server/app/_global-error/page/build-manifest.json b/.next/server/app/_global-error/page/build-manifest.json index 436cd66d8..4482423a4 100644 --- a/.next/server/app/_global-error/page/build-manifest.json +++ b/.next/server/app/_global-error/page/build-manifest.json @@ -7,11 +7,11 @@ "lowPriorityFiles": [], "rootMainFiles": [ "static/chunks/c68fc807b9365f18.js", - "static/chunks/f51290069c969e8a.js", + "static/chunks/b263a60573bfd155.js", "static/chunks/29297b02a438a66e.js", "static/chunks/fd7b24483a212e2f.js", - "static/chunks/b62c08cc490fef16.js", - "static/chunks/turbopack-e5b78b2a7c8f1f21.js" + "static/chunks/b6898185462c2fee.js", + "static/chunks/turbopack-721eb9b8c3f79e29.js" ], "pages": {}, "ampFirstPages": [] diff --git a/.next/server/app/_not-found.html b/.next/server/app/_not-found.html index 519b35f2e..5aff55337 100644 --- a/.next/server/app/_not-found.html +++ b/.next/server/app/_not-found.html @@ -1 +1 @@ -404: This page could not be found.

404

This page could not be found.

\ No newline at end of file +404: This page could not be found.

404

This page could not be found.

\ No newline at end of file diff --git a/.next/server/app/_not-found.rsc b/.next/server/app/_not-found.rsc index dd4795673..22f9738b7 100644 --- a/.next/server/app/_not-found.rsc +++ b/.next/server/app/_not-found.rsc @@ -6,7 +6,7 @@ 7:I[67067,["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"ViewportBoundary"] 9:I[67067,["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"MetadataBoundary"] b:I[253348,["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"default"] -0:{"P":null,"b":"Wkpp63uvO0BZHP6YvXq4O","c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[null,["$","html",null,{"children":["$","body",null,{"children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$L8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$La"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$b",[]],"S":true} +0:{"P":null,"b":"RNpp86I_Wwm4reXmuvbzY","c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[null,["$","html",null,{"children":["$","body",null,{"children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$L8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$La"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$b",[]],"S":true} 8:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] 6:null a:[["$","link","0",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}]] diff --git a/.next/server/app/_not-found.segments/_full.segment.rsc b/.next/server/app/_not-found.segments/_full.segment.rsc index dd4795673..22f9738b7 100644 --- a/.next/server/app/_not-found.segments/_full.segment.rsc +++ b/.next/server/app/_not-found.segments/_full.segment.rsc @@ -6,7 +6,7 @@ 7:I[67067,["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"ViewportBoundary"] 9:I[67067,["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"MetadataBoundary"] b:I[253348,["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"default"] -0:{"P":null,"b":"Wkpp63uvO0BZHP6YvXq4O","c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[null,["$","html",null,{"children":["$","body",null,{"children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$L8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$La"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$b",[]],"S":true} +0:{"P":null,"b":"RNpp86I_Wwm4reXmuvbzY","c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[null,["$","html",null,{"children":["$","body",null,{"children":["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L7",null,{"children":"$L8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$La"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$b",[]],"S":true} 8:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] 6:null a:[["$","link","0",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}]] diff --git a/.next/server/app/_not-found.segments/_head.segment.rsc b/.next/server/app/_not-found.segments/_head.segment.rsc index 599d4aad0..8a3ad1c4d 100644 --- a/.next/server/app/_not-found.segments/_head.segment.rsc +++ b/.next/server/app/_not-found.segments/_head.segment.rsc @@ -2,4 +2,4 @@ 2:I[67067,["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"ViewportBoundary"] 3:I[67067,["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"MetadataBoundary"] 4:"$Sreact.suspense" -0:{"buildId":"Wkpp63uvO0BZHP6YvXq4O","rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","link","0",{"rel":"manifest","href":"/manifest.webmanifest"}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"loading":null,"isPartial":false} +0:{"buildId":"RNpp86I_Wwm4reXmuvbzY","rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","link","0",{"rel":"manifest","href":"/manifest.webmanifest"}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"loading":null,"isPartial":false} diff --git a/.next/server/app/_not-found.segments/_index.segment.rsc b/.next/server/app/_not-found.segments/_index.segment.rsc index 98a8a0763..0f3c5ede6 100644 --- a/.next/server/app/_not-found.segments/_index.segment.rsc +++ b/.next/server/app/_not-found.segments/_index.segment.rsc @@ -1,4 +1,4 @@ 1:"$Sreact.fragment" 2:I[666284,["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"default"] 3:I[29584,["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"default"] -0:{"buildId":"Wkpp63uvO0BZHP6YvXq4O","rsc":["$","$1","c",{"children":[null,["$","html",null,{"children":["$","body",null,{"children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"RNpp86I_Wwm4reXmuvbzY","rsc":["$","$1","c",{"children":[null,["$","html",null,{"children":["$","body",null,{"children":["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}],"loading":null,"isPartial":false} diff --git a/.next/server/app/_not-found.segments/_not-found.segment.rsc b/.next/server/app/_not-found.segments/_not-found.segment.rsc index 1bbf48786..f6cbe7a7b 100644 --- a/.next/server/app/_not-found.segments/_not-found.segment.rsc +++ b/.next/server/app/_not-found.segments/_not-found.segment.rsc @@ -1,4 +1,4 @@ 1:"$Sreact.fragment" 2:I[666284,["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"default"] 3:I[29584,["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"default"] -0:{"buildId":"Wkpp63uvO0BZHP6YvXq4O","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"RNpp86I_Wwm4reXmuvbzY","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false} diff --git a/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc b/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc index c311d04a4..975b47305 100644 --- a/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +++ b/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc @@ -1,5 +1,5 @@ 1:"$Sreact.fragment" 2:I[67067,["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"OutletBoundary"] 3:"$Sreact.suspense" -0:{"buildId":"Wkpp63uvO0BZHP6YvXq4O","rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"RNpp86I_Wwm4reXmuvbzY","rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"loading":null,"isPartial":false} 4:null diff --git a/.next/server/app/_not-found.segments/_tree.segment.rsc b/.next/server/app/_not-found.segments/_tree.segment.rsc index 346d1d698..1d8c19c80 100644 --- a/.next/server/app/_not-found.segments/_tree.segment.rsc +++ b/.next/server/app/_not-found.segments/_tree.segment.rsc @@ -1 +1 @@ -0:{"buildId":"Wkpp63uvO0BZHP6YvXq4O","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"/_not-found","paramType":null,"paramKey":"/_not-found","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300} +0:{"buildId":"RNpp86I_Wwm4reXmuvbzY","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"/_not-found","paramType":null,"paramKey":"/_not-found","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300} diff --git a/.next/server/app/_not-found/page.js.nft.json b/.next/server/app/_not-found/page.js.nft.json index e6c7ad270..3bdd5c948 100644 --- a/.next/server/app/_not-found/page.js.nft.json +++ b/.next/server/app/_not-found/page.js.nft.json @@ -1 +1 @@ -{"version":1,"files":["../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/context.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/diag.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/metrics.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/propagation.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/trace.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/context.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/types.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/index.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/global-utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/semver.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/Metric.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/context-utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/span_kind.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/status.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/version.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/package.json","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/execAsync.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-bsd.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-darwin.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-linux.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-unsupported.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-win.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/browserTracingIntegration.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/clientNormalizationIntegration.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/appRouterRoutingInstrumentation.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/isrRoutingTracing.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/nextRoutingInstrumentation.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/pagesRouterRoutingInstrumentation.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/parameterization.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/tunnelRoute.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/captureRequestError.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/debug-build.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/devErrorSymbolicationEventProcessor.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/getVercelEnv.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextNavigationErrorUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextSpanAttributes.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/_error.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentryVercelCrons.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapAppGetInitialPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapDocumentGetInitialPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapErrorGetInitialPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetInitialPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetServerSidePropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetStaticPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapPageComponentWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/span-attributes-with-logic-attached.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/addHeadersAsAttributes.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/dropMiddlewareTunnelRequests.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isBuild.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isUseCacheFunction.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/nextSpan.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/responseEnd.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/setUrlProcessingMetadata.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/tracingUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/urls.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/wrapperUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/withServerActionInstrumentation.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapGenerationFunctionWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapMiddlewareWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapRouteHandlerWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapServerComponentWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/getBuildPluginOptions.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/handleRunAfterProductionCompile.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/componentAnnotationLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/moduleMetadataInjectionLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/prefixLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/valueInjectionLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/wrappingLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/manifest/createRouteManifest.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/polyfills/perf_hooks.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/apiWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/middlewareWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/pageWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/requestAsyncStorageShim.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/routeHandlerWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/sentryInitWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/serverComponentWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/constructTurbopackConfig.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/generateValueInjectionRules.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/util.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/webpack.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/buildTime.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/constants.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/deprecatedWebpackOptions.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObject.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectBundlerUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/tunnel.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/distDirRewriteFramesIntegration.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/wrapApiHandlerWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.client.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.server.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/distDirRewriteFramesIntegration.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/handleOnSpanStart.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/prepareSafeIdGeneratorContext.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelCronsMonitoring.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelQueuesMonitoring.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/package.json","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/browser.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/index.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/node.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/ms","../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js","../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/package.json","../../../../node_modules/.pnpm/import-in-the-middle@1.15.0/node_modules/import-in-the-middle/package.json","../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/index.js","../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/lib/register.js","../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/package.json","../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/module-details-from-path","../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/index.js","../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/lib/register.js","../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/package.json","../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/module-details-from-path","../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/index.js","../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/package.json","../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js","../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/package.json","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/@opentelemetry/api","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/constants.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/interop-default.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/is-error.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/runtime-reacts.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/package.json","../../../../node_modules/.pnpm/node_modules/@opentelemetry/api","../../../../node_modules/.pnpm/node_modules/debug","../../../../node_modules/.pnpm/node_modules/has-flag","../../../../node_modules/.pnpm/node_modules/module-details-from-path","../../../../node_modules/.pnpm/node_modules/ms","../../../../node_modules/.pnpm/node_modules/supports-color","../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/debug","../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/module-details-from-path","../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/index.js","../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/package.json","../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/has-flag","../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js","../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/package.json","../../../../node_modules/import-in-the-middle","../../../../node_modules/next","../../../../node_modules/require-in-the-middle","../../../node_modules/import-in-the-middle-138cd032e4b029f3","../../../node_modules/import-in-the-middle-6ecbfda1283b1532","../../../node_modules/require-in-the-middle-a99415fa67232f7f","../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_5e35a34a.js","../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_68baf629.js","../../chunks/ssr/468ab_next_dist_9c02c43c._.js","../../chunks/ssr/468ab_next_dist_client_components_9ea24689._.js","../../chunks/ssr/468ab_next_dist_client_components_builtin_forbidden_fcf22647.js","../../chunks/ssr/468ab_next_dist_d9a22642._.js","../../chunks/ssr/468ab_next_dist_d9f52090._.js","../../chunks/ssr/468ab_next_dist_e98c316f._.js","../../chunks/ssr/468ab_next_dist_esm_10bac804._.js","../../chunks/ssr/5e5d0_@opentelemetry_api_build_esm_f7b039e6._.js","../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_317a5e2b._.js","../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_51b27302._.js","../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_f2e70164._.js","../../chunks/ssr/[externals]_node:inspector_7a4283c6._.js","../../chunks/ssr/[root-of-the-server]__1fc7332e._.js","../../chunks/ssr/[root-of-the-server]__5bd1b04a._.js","../../chunks/ssr/[root-of-the-server]__79744fab._.js","../../chunks/ssr/[turbopack]_runtime.js","../../chunks/ssr/_next-internal_server_app__not-found_page_actions_554ec2bf.js","../../chunks/ssr/app_global-error_tsx_9170b7a0._.js","../../chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","../../chunks/ssr/node_modules__pnpm_6b156618._.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file +{"version":1,"files":["../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/context.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/diag.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/metrics.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/propagation.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/trace.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/context.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/types.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/index.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/global-utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/semver.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/Metric.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/context-utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/span_kind.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/status.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/version.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/package.json","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/execAsync.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-bsd.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-darwin.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-linux.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-unsupported.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-win.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/browserTracingIntegration.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/clientNormalizationIntegration.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/appRouterRoutingInstrumentation.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/isrRoutingTracing.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/nextRoutingInstrumentation.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/pagesRouterRoutingInstrumentation.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/parameterization.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/tunnelRoute.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/captureRequestError.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/debug-build.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/devErrorSymbolicationEventProcessor.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/getVercelEnv.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextNavigationErrorUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextSpanAttributes.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/_error.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentryVercelCrons.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapAppGetInitialPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapDocumentGetInitialPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapErrorGetInitialPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetInitialPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetServerSidePropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetStaticPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapPageComponentWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/span-attributes-with-logic-attached.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/addHeadersAsAttributes.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/dropMiddlewareTunnelRequests.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isBuild.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isUseCacheFunction.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/nextSpan.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/responseEnd.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/setUrlProcessingMetadata.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/tracingUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/urls.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/wrapperUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/withServerActionInstrumentation.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapGenerationFunctionWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapMiddlewareWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapRouteHandlerWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapServerComponentWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/getBuildPluginOptions.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/handleRunAfterProductionCompile.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/componentAnnotationLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/moduleMetadataInjectionLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/prefixLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/valueInjectionLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/wrappingLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/manifest/createRouteManifest.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/polyfills/perf_hooks.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/apiWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/middlewareWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/pageWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/requestAsyncStorageShim.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/routeHandlerWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/sentryInitWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/serverComponentWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/constructTurbopackConfig.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/generateValueInjectionRules.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/util.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/webpack.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/buildTime.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/constants.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/deprecatedWebpackOptions.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObject.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectBundlerUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/tunnel.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/distDirRewriteFramesIntegration.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/wrapApiHandlerWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.client.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.server.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/distDirRewriteFramesIntegration.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/handleOnSpanStart.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/prepareSafeIdGeneratorContext.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelCronsMonitoring.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelQueuesMonitoring.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/package.json","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/browser.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/index.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/node.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/ms","../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js","../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/package.json","../../../../node_modules/.pnpm/import-in-the-middle@1.15.0/node_modules/import-in-the-middle/package.json","../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/index.js","../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/lib/register.js","../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/package.json","../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/module-details-from-path","../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/index.js","../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/lib/register.js","../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/package.json","../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/module-details-from-path","../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/index.js","../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/package.json","../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js","../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/package.json","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/@opentelemetry/api","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/constants.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/interop-default.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/is-error.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/runtime-reacts.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/package.json","../../../../node_modules/.pnpm/node_modules/@opentelemetry/api","../../../../node_modules/.pnpm/node_modules/debug","../../../../node_modules/.pnpm/node_modules/has-flag","../../../../node_modules/.pnpm/node_modules/module-details-from-path","../../../../node_modules/.pnpm/node_modules/ms","../../../../node_modules/.pnpm/node_modules/supports-color","../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/debug","../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/module-details-from-path","../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/index.js","../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/package.json","../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/has-flag","../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js","../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/package.json","../../../../node_modules/import-in-the-middle","../../../../node_modules/next","../../../../node_modules/require-in-the-middle","../../../node_modules/import-in-the-middle-138cd032e4b029f3","../../../node_modules/import-in-the-middle-6ecbfda1283b1532","../../../node_modules/require-in-the-middle-a99415fa67232f7f","../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_5e35a34a.js","../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_68baf629.js","../../chunks/ssr/468ab_next_dist_9c02c43c._.js","../../chunks/ssr/468ab_next_dist_client_components_9ea24689._.js","../../chunks/ssr/468ab_next_dist_client_components_builtin_forbidden_fcf22647.js","../../chunks/ssr/468ab_next_dist_d9a22642._.js","../../chunks/ssr/468ab_next_dist_d9f52090._.js","../../chunks/ssr/468ab_next_dist_e98c316f._.js","../../chunks/ssr/468ab_next_dist_esm_10bac804._.js","../../chunks/ssr/5e5d0_@opentelemetry_api_build_esm_f7b039e6._.js","../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_317a5e2b._.js","../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_51b27302._.js","../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_f2e70164._.js","../../chunks/ssr/[externals]_node:inspector_7a4283c6._.js","../../chunks/ssr/[root-of-the-server]__5bd1b04a._.js","../../chunks/ssr/[root-of-the-server]__79744fab._.js","../../chunks/ssr/[root-of-the-server]__fb2ceaaf._.js","../../chunks/ssr/[turbopack]_runtime.js","../../chunks/ssr/_next-internal_server_app__not-found_page_actions_554ec2bf.js","../../chunks/ssr/app_global-error_tsx_9170b7a0._.js","../../chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","../../chunks/ssr/node_modules__pnpm_6b156618._.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/.next/server/app/_not-found/page/build-manifest.json b/.next/server/app/_not-found/page/build-manifest.json index 436cd66d8..4482423a4 100644 --- a/.next/server/app/_not-found/page/build-manifest.json +++ b/.next/server/app/_not-found/page/build-manifest.json @@ -7,11 +7,11 @@ "lowPriorityFiles": [], "rootMainFiles": [ "static/chunks/c68fc807b9365f18.js", - "static/chunks/f51290069c969e8a.js", + "static/chunks/b263a60573bfd155.js", "static/chunks/29297b02a438a66e.js", "static/chunks/fd7b24483a212e2f.js", - "static/chunks/b62c08cc490fef16.js", - "static/chunks/turbopack-e5b78b2a7c8f1f21.js" + "static/chunks/b6898185462c2fee.js", + "static/chunks/turbopack-721eb9b8c3f79e29.js" ], "pages": {}, "ampFirstPages": [] diff --git a/.next/server/app/_not-found/page_client-reference-manifest.js b/.next/server/app/_not-found/page_client-reference-manifest.js index b2a8346a9..67137d0aa 100644 --- a/.next/server/app/_not-found/page_client-reference-manifest.js +++ b/.next/server/app/_not-found/page_client-reference-manifest.js @@ -1,2 +1,2 @@ globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; -globalThis.__RSC_MANIFEST["/_not-found/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":666284,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":666284,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":29584,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":29584,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":30965,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":30965,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":966591,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":966591,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":3420,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3420,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":489266,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":489266,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":67067,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":67067,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/app/global-error.tsx ":{"id":253348,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/app/global-error.tsx":{"id":253348,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false}},"ssrModuleMapping":{"666284":{"*":{"id":164732,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1fc7332e._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"29584":{"*":{"id":743976,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1fc7332e._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"30965":{"*":{"id":46550,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1fc7332e._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"966591":{"*":{"id":594180,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1fc7332e._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"3420":{"*":{"id":585766,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1fc7332e._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"489266":{"*":{"id":471584,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1fc7332e._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"67067":{"*":{"id":561162,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1fc7332e._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"253348":{"*":{"id":303171,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1fc7332e._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"666284":{"*":{"id":551417,"name":"*","chunks":[],"async":false}},"29584":{"*":{"id":536434,"name":"*","chunks":[],"async":false}},"30965":{"*":{"id":387103,"name":"*","chunks":[],"async":false}},"966591":{"*":{"id":580884,"name":"*","chunks":[],"async":false}},"3420":{"*":{"id":504014,"name":"*","chunks":[],"async":false}},"489266":{"*":{"id":726190,"name":"*","chunks":[],"async":false}},"67067":{"*":{"id":76412,"name":"*","chunks":[],"async":false}},"253348":{"*":{"id":153128,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/app/global-error":[]},"entryJSFiles":{"[project]/app/global-error":["static/chunks/113c8c54faea44a4.js","static/chunks/5336d64d11e7435f.js","static/chunks/870a2c2978ab4440.js"]}} +globalThis.__RSC_MANIFEST["/_not-found/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":666284,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":666284,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":29584,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":29584,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":30965,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":30965,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":966591,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":966591,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":3420,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3420,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":489266,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":489266,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":67067,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":67067,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/app/global-error.tsx ":{"id":253348,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/app/global-error.tsx":{"id":253348,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false}},"ssrModuleMapping":{"666284":{"*":{"id":164732,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__fb2ceaaf._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"29584":{"*":{"id":743976,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__fb2ceaaf._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"30965":{"*":{"id":46550,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__fb2ceaaf._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"966591":{"*":{"id":594180,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__fb2ceaaf._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"3420":{"*":{"id":585766,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__fb2ceaaf._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"489266":{"*":{"id":471584,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__fb2ceaaf._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"67067":{"*":{"id":561162,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__fb2ceaaf._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"253348":{"*":{"id":303171,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__fb2ceaaf._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"666284":{"*":{"id":551417,"name":"*","chunks":[],"async":false}},"29584":{"*":{"id":536434,"name":"*","chunks":[],"async":false}},"30965":{"*":{"id":387103,"name":"*","chunks":[],"async":false}},"966591":{"*":{"id":580884,"name":"*","chunks":[],"async":false}},"3420":{"*":{"id":504014,"name":"*","chunks":[],"async":false}},"489266":{"*":{"id":726190,"name":"*","chunks":[],"async":false}},"67067":{"*":{"id":76412,"name":"*","chunks":[],"async":false}},"253348":{"*":{"id":153128,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/app/global-error":[]},"entryJSFiles":{"[project]/app/global-error":["static/chunks/113c8c54faea44a4.js","static/chunks/5336d64d11e7435f.js","static/chunks/870a2c2978ab4440.js"]}} diff --git a/.next/server/app/test.html b/.next/server/app/test.html index fc363fa08..d6305506f 100644 --- a/.next/server/app/test.html +++ b/.next/server/app/test.html @@ -1 +1 @@ -

TEST PAGE WORKS

\ No newline at end of file +

TEST PAGE WORKS

\ No newline at end of file diff --git a/.next/server/app/test.rsc b/.next/server/app/test.rsc index b450edb43..820de8db2 100644 --- a/.next/server/app/test.rsc +++ b/.next/server/app/test.rsc @@ -6,7 +6,7 @@ 7:I[67067,["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"ViewportBoundary"] 9:I[67067,["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"MetadataBoundary"] b:I[253348,["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"default"] -0:{"P":null,"b":"Wkpp63uvO0BZHP6YvXq4O","c":["","test"],"q":"","i":false,"f":[[["",{"children":["test",{"children":["__PAGE__",{}]}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"children":["$","h1",null,{"children":"TEST PAGE WORKS"}]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$L7",null,{"children":"$L8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$La"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$b",[]],"S":true} +0:{"P":null,"b":"RNpp86I_Wwm4reXmuvbzY","c":["","test"],"q":"","i":false,"f":[[["",{"children":["test",{"children":["__PAGE__",{}]}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"children":["$","h1",null,{"children":"TEST PAGE WORKS"}]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$L7",null,{"children":"$L8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$La"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$b",[]],"S":true} 8:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] 6:null a:[["$","link","0",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}]] diff --git a/.next/server/app/test.segments/_full.segment.rsc b/.next/server/app/test.segments/_full.segment.rsc index b450edb43..820de8db2 100644 --- a/.next/server/app/test.segments/_full.segment.rsc +++ b/.next/server/app/test.segments/_full.segment.rsc @@ -6,7 +6,7 @@ 7:I[67067,["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"ViewportBoundary"] 9:I[67067,["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"MetadataBoundary"] b:I[253348,["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"default"] -0:{"P":null,"b":"Wkpp63uvO0BZHP6YvXq4O","c":["","test"],"q":"","i":false,"f":[[["",{"children":["test",{"children":["__PAGE__",{}]}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"children":["$","h1",null,{"children":"TEST PAGE WORKS"}]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$L7",null,{"children":"$L8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$La"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$b",[]],"S":true} +0:{"P":null,"b":"RNpp86I_Wwm4reXmuvbzY","c":["","test"],"q":"","i":false,"f":[[["",{"children":["test",{"children":["__PAGE__",{}]}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","div",null,{"children":["$","h1",null,{"children":"TEST PAGE WORKS"}]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$L7",null,{"children":"$L8"}],["$","div",null,{"hidden":true,"children":["$","$L9",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$La"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$b",[]],"S":true} 8:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] 6:null a:[["$","link","0",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}]] diff --git a/.next/server/app/test.segments/_head.segment.rsc b/.next/server/app/test.segments/_head.segment.rsc index 7ed592ec8..957439fc2 100644 --- a/.next/server/app/test.segments/_head.segment.rsc +++ b/.next/server/app/test.segments/_head.segment.rsc @@ -2,4 +2,4 @@ 2:I[67067,["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"ViewportBoundary"] 3:I[67067,["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"MetadataBoundary"] 4:"$Sreact.suspense" -0:{"buildId":"Wkpp63uvO0BZHP6YvXq4O","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","link","0",{"rel":"manifest","href":"/manifest.webmanifest"}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"loading":null,"isPartial":false} +0:{"buildId":"RNpp86I_Wwm4reXmuvbzY","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","link","0",{"rel":"manifest","href":"/manifest.webmanifest"}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"loading":null,"isPartial":false} diff --git a/.next/server/app/test.segments/_index.segment.rsc b/.next/server/app/test.segments/_index.segment.rsc index 457304143..5017e6783 100644 --- a/.next/server/app/test.segments/_index.segment.rsc +++ b/.next/server/app/test.segments/_index.segment.rsc @@ -1,4 +1,4 @@ 1:"$Sreact.fragment" 2:I[666284,["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"default"] 3:I[29584,["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"default"] -0:{"buildId":"Wkpp63uvO0BZHP6YvXq4O","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"RNpp86I_Wwm4reXmuvbzY","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]]}],"loading":null,"isPartial":false} diff --git a/.next/server/app/test.segments/_tree.segment.rsc b/.next/server/app/test.segments/_tree.segment.rsc index cbb01174b..ad823424c 100644 --- a/.next/server/app/test.segments/_tree.segment.rsc +++ b/.next/server/app/test.segments/_tree.segment.rsc @@ -1 +1 @@ -0:{"buildId":"Wkpp63uvO0BZHP6YvXq4O","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"test","paramType":null,"paramKey":"test","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":false},"staleTime":300} +0:{"buildId":"RNpp86I_Wwm4reXmuvbzY","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"test","paramType":null,"paramKey":"test","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":false},"staleTime":300} diff --git a/.next/server/app/test.segments/test.segment.rsc b/.next/server/app/test.segments/test.segment.rsc index 1bbf48786..f6cbe7a7b 100644 --- a/.next/server/app/test.segments/test.segment.rsc +++ b/.next/server/app/test.segments/test.segment.rsc @@ -1,4 +1,4 @@ 1:"$Sreact.fragment" 2:I[666284,["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"default"] 3:I[29584,["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"default"] -0:{"buildId":"Wkpp63uvO0BZHP6YvXq4O","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"RNpp86I_Wwm4reXmuvbzY","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false} diff --git a/.next/server/app/test.segments/test/__PAGE__.segment.rsc b/.next/server/app/test.segments/test/__PAGE__.segment.rsc index e3701cfde..b72bec5a9 100644 --- a/.next/server/app/test.segments/test/__PAGE__.segment.rsc +++ b/.next/server/app/test.segments/test/__PAGE__.segment.rsc @@ -1,5 +1,5 @@ 1:"$Sreact.fragment" 2:I[67067,["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"OutletBoundary"] 3:"$Sreact.suspense" -0:{"buildId":"Wkpp63uvO0BZHP6YvXq4O","rsc":["$","$1","c",{"children":[["$","div",null,{"children":["$","h1",null,{"children":"TEST PAGE WORKS"}]}],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"RNpp86I_Wwm4reXmuvbzY","rsc":["$","$1","c",{"children":[["$","div",null,{"children":["$","h1",null,{"children":"TEST PAGE WORKS"}]}],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"loading":null,"isPartial":false} 4:null diff --git a/.next/server/app/test/page.js.nft.json b/.next/server/app/test/page.js.nft.json index c5c681354..851936540 100644 --- a/.next/server/app/test/page.js.nft.json +++ b/.next/server/app/test/page.js.nft.json @@ -1 +1 @@ -{"version":1,"files":["../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/context.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/diag.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/metrics.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/propagation.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/trace.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/context.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/types.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/index.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/global-utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/semver.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/Metric.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/context-utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/span_kind.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/status.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/version.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/package.json","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/execAsync.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-bsd.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-darwin.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-linux.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-unsupported.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-win.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/browserTracingIntegration.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/clientNormalizationIntegration.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/appRouterRoutingInstrumentation.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/isrRoutingTracing.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/nextRoutingInstrumentation.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/pagesRouterRoutingInstrumentation.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/parameterization.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/tunnelRoute.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/captureRequestError.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/debug-build.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/devErrorSymbolicationEventProcessor.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/getVercelEnv.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextNavigationErrorUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextSpanAttributes.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/_error.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentryVercelCrons.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapAppGetInitialPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapDocumentGetInitialPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapErrorGetInitialPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetInitialPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetServerSidePropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetStaticPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapPageComponentWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/span-attributes-with-logic-attached.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/addHeadersAsAttributes.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/dropMiddlewareTunnelRequests.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isBuild.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isUseCacheFunction.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/nextSpan.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/responseEnd.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/setUrlProcessingMetadata.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/tracingUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/urls.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/wrapperUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/withServerActionInstrumentation.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapGenerationFunctionWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapMiddlewareWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapRouteHandlerWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapServerComponentWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/getBuildPluginOptions.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/handleRunAfterProductionCompile.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/componentAnnotationLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/moduleMetadataInjectionLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/prefixLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/valueInjectionLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/wrappingLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/manifest/createRouteManifest.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/polyfills/perf_hooks.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/apiWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/middlewareWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/pageWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/requestAsyncStorageShim.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/routeHandlerWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/sentryInitWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/serverComponentWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/constructTurbopackConfig.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/generateValueInjectionRules.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/util.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/webpack.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/buildTime.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/constants.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/deprecatedWebpackOptions.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObject.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectBundlerUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/tunnel.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/distDirRewriteFramesIntegration.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/wrapApiHandlerWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.client.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.server.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/distDirRewriteFramesIntegration.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/handleOnSpanStart.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/prepareSafeIdGeneratorContext.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelCronsMonitoring.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelQueuesMonitoring.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/package.json","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/browser.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/index.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/node.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/ms","../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js","../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/package.json","../../../../node_modules/.pnpm/import-in-the-middle@1.15.0/node_modules/import-in-the-middle/package.json","../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/index.js","../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/lib/register.js","../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/package.json","../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/module-details-from-path","../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/index.js","../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/lib/register.js","../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/package.json","../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/module-details-from-path","../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/index.js","../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/package.json","../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js","../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/package.json","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/@opentelemetry/api","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/constants.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/interop-default.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/is-error.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/runtime-reacts.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/package.json","../../../../node_modules/.pnpm/node_modules/@opentelemetry/api","../../../../node_modules/.pnpm/node_modules/debug","../../../../node_modules/.pnpm/node_modules/has-flag","../../../../node_modules/.pnpm/node_modules/module-details-from-path","../../../../node_modules/.pnpm/node_modules/ms","../../../../node_modules/.pnpm/node_modules/supports-color","../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/debug","../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/module-details-from-path","../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/index.js","../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/package.json","../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/has-flag","../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js","../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/package.json","../../../../node_modules/import-in-the-middle","../../../../node_modules/next","../../../../node_modules/require-in-the-middle","../../../node_modules/import-in-the-middle-138cd032e4b029f3","../../../node_modules/import-in-the-middle-6ecbfda1283b1532","../../../node_modules/require-in-the-middle-a99415fa67232f7f","../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_5e35a34a.js","../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_68baf629.js","../../chunks/ssr/468ab_next_dist_9c02c43c._.js","../../chunks/ssr/468ab_next_dist_client_components_9ea24689._.js","../../chunks/ssr/468ab_next_dist_client_components_builtin_forbidden_fcf22647.js","../../chunks/ssr/468ab_next_dist_client_components_builtin_unauthorized_242673a5.js","../../chunks/ssr/468ab_next_dist_d9f52090._.js","../../chunks/ssr/468ab_next_dist_e98c316f._.js","../../chunks/ssr/468ab_next_dist_esm_10bac804._.js","../../chunks/ssr/5e5d0_@opentelemetry_api_build_esm_f7b039e6._.js","../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_317a5e2b._.js","../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_51b27302._.js","../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_f2e70164._.js","../../chunks/ssr/[externals]_node:inspector_7a4283c6._.js","../../chunks/ssr/[root-of-the-server]__1fc7332e._.js","../../chunks/ssr/[root-of-the-server]__5bd1b04a._.js","../../chunks/ssr/[root-of-the-server]__fc427e71._.js","../../chunks/ssr/[turbopack]_runtime.js","../../chunks/ssr/_cb443ac8._.js","../../chunks/ssr/_next-internal_server_app_test_page_actions_0477bf5a.js","../../chunks/ssr/app_global-error_tsx_9170b7a0._.js","../../chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file +{"version":1,"files":["../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/context.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/diag.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/metrics.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/propagation.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/api/trace.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/baggage/utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/context/context.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/diag/types.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/index.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/global-utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/internal/semver.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/Metric.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace-api.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/context-utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/span_kind.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/status.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/build/src/version.js","../../../../node_modules/.pnpm/@opentelemetry+api@1.9.1/node_modules/@opentelemetry/api/package.json","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/execAsync.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-bsd.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-darwin.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-linux.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-unsupported.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-win.js","../../../../node_modules/.pnpm/@opentelemetry+resources@2.6.1_@opentelemetry+api@1.9.1/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/browserTracingIntegration.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/clientNormalizationIntegration.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/appRouterRoutingInstrumentation.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/isrRoutingTracing.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/nextRoutingInstrumentation.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/pagesRouterRoutingInstrumentation.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/routing/parameterization.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/client/tunnelRoute.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/captureRequestError.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/debug-build.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/devErrorSymbolicationEventProcessor.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/getVercelEnv.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextNavigationErrorUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/nextSpanAttributes.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/_error.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapApiHandlerWithSentryVercelCrons.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapAppGetInitialPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapDocumentGetInitialPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapErrorGetInitialPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetInitialPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetServerSidePropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapGetStaticPropsWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/pages-router-instrumentation/wrapPageComponentWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/span-attributes-with-logic-attached.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/addHeadersAsAttributes.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/dropMiddlewareTunnelRequests.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isBuild.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/isUseCacheFunction.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/nextSpan.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/responseEnd.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/setUrlProcessingMetadata.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/tracingUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/urls.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/utils/wrapperUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/withServerActionInstrumentation.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapGenerationFunctionWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapMiddlewareWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapRouteHandlerWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/common/wrapServerComponentWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/getBuildPluginOptions.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/handleRunAfterProductionCompile.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/componentAnnotationLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/moduleMetadataInjectionLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/prefixLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/valueInjectionLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/wrappingLoader.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/manifest/createRouteManifest.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/polyfills/perf_hooks.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/apiWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/middlewareWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/pageWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/requestAsyncStorageShim.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/routeHandlerWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/sentryInitWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/templates/serverComponentWrapperTemplate.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/constructTurbopackConfig.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/turbopack/generateValueInjectionRules.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/util.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/webpack.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/buildTime.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/constants.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/deprecatedWebpackOptions.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObject.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectBundlerUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/getFinalConfigObjectUtils.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/withSentryConfig/tunnel.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/distDirRewriteFramesIntegration.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/edge/wrapApiHandlerWithSentry.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.client.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/index.server.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/distDirRewriteFramesIntegration.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/handleOnSpanStart.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/index.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/prepareSafeIdGeneratorContext.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelCronsMonitoring.js","../../../../node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/server/vercelQueuesMonitoring.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/package.json","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/browser.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/common.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/index.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/debug/src/node.js","../../../../node_modules/.pnpm/debug@4.4.3/node_modules/ms","../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/index.js","../../../../node_modules/.pnpm/has-flag@4.0.0/node_modules/has-flag/package.json","../../../../node_modules/.pnpm/import-in-the-middle@1.15.0/node_modules/import-in-the-middle/package.json","../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/index.js","../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/lib/register.js","../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/import-in-the-middle/package.json","../../../../node_modules/.pnpm/import-in-the-middle@2.0.6/node_modules/module-details-from-path","../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/index.js","../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/lib/register.js","../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/import-in-the-middle/package.json","../../../../node_modules/.pnpm/import-in-the-middle@3.0.0/node_modules/module-details-from-path","../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/index.js","../../../../node_modules/.pnpm/module-details-from-path@1.0.4/node_modules/module-details-from-path/package.json","../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/index.js","../../../../node_modules/.pnpm/ms@2.1.3/node_modules/ms/package.json","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/@opentelemetry/api","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/constants.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/interop-default.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/is-error.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/server/runtime-reacts.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/package.json","../../../../node_modules/.pnpm/node_modules/@opentelemetry/api","../../../../node_modules/.pnpm/node_modules/debug","../../../../node_modules/.pnpm/node_modules/has-flag","../../../../node_modules/.pnpm/node_modules/module-details-from-path","../../../../node_modules/.pnpm/node_modules/ms","../../../../node_modules/.pnpm/node_modules/supports-color","../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/debug","../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/module-details-from-path","../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/index.js","../../../../node_modules/.pnpm/require-in-the-middle@8.0.1/node_modules/require-in-the-middle/package.json","../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/has-flag","../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/index.js","../../../../node_modules/.pnpm/supports-color@7.2.0/node_modules/supports-color/package.json","../../../../node_modules/import-in-the-middle","../../../../node_modules/next","../../../../node_modules/require-in-the-middle","../../../node_modules/import-in-the-middle-138cd032e4b029f3","../../../node_modules/import-in-the-middle-6ecbfda1283b1532","../../../node_modules/require-in-the-middle-a99415fa67232f7f","../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_5e35a34a.js","../../chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_68baf629.js","../../chunks/ssr/468ab_next_dist_9c02c43c._.js","../../chunks/ssr/468ab_next_dist_client_components_9ea24689._.js","../../chunks/ssr/468ab_next_dist_client_components_builtin_forbidden_fcf22647.js","../../chunks/ssr/468ab_next_dist_client_components_builtin_unauthorized_242673a5.js","../../chunks/ssr/468ab_next_dist_d9f52090._.js","../../chunks/ssr/468ab_next_dist_e98c316f._.js","../../chunks/ssr/468ab_next_dist_esm_10bac804._.js","../../chunks/ssr/5e5d0_@opentelemetry_api_build_esm_f7b039e6._.js","../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_317a5e2b._.js","../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_51b27302._.js","../../chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_f2e70164._.js","../../chunks/ssr/[externals]_node:inspector_7a4283c6._.js","../../chunks/ssr/[root-of-the-server]__5bd1b04a._.js","../../chunks/ssr/[root-of-the-server]__fb2ceaaf._.js","../../chunks/ssr/[root-of-the-server]__fc427e71._.js","../../chunks/ssr/[turbopack]_runtime.js","../../chunks/ssr/_cb443ac8._.js","../../chunks/ssr/_next-internal_server_app_test_page_actions_0477bf5a.js","../../chunks/ssr/app_global-error_tsx_9170b7a0._.js","../../chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","./page/react-loadable-manifest.json","./page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/.next/server/app/test/page/build-manifest.json b/.next/server/app/test/page/build-manifest.json index 436cd66d8..4482423a4 100644 --- a/.next/server/app/test/page/build-manifest.json +++ b/.next/server/app/test/page/build-manifest.json @@ -7,11 +7,11 @@ "lowPriorityFiles": [], "rootMainFiles": [ "static/chunks/c68fc807b9365f18.js", - "static/chunks/f51290069c969e8a.js", + "static/chunks/b263a60573bfd155.js", "static/chunks/29297b02a438a66e.js", "static/chunks/fd7b24483a212e2f.js", - "static/chunks/b62c08cc490fef16.js", - "static/chunks/turbopack-e5b78b2a7c8f1f21.js" + "static/chunks/b6898185462c2fee.js", + "static/chunks/turbopack-721eb9b8c3f79e29.js" ], "pages": {}, "ampFirstPages": [] diff --git a/.next/server/app/test/page_client-reference-manifest.js b/.next/server/app/test/page_client-reference-manifest.js index fc24d7b3c..5801f787f 100644 --- a/.next/server/app/test/page_client-reference-manifest.js +++ b/.next/server/app/test/page_client-reference-manifest.js @@ -1,2 +1,2 @@ globalThis.__RSC_MANIFEST = globalThis.__RSC_MANIFEST || {}; -globalThis.__RSC_MANIFEST["/test/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":666284,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":666284,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":29584,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":29584,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":30965,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":30965,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":966591,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":966591,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":3420,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3420,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":489266,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":489266,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":67067,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":67067,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/app/global-error.tsx ":{"id":253348,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/app/global-error.tsx":{"id":253348,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false}},"ssrModuleMapping":{"666284":{"*":{"id":164732,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1fc7332e._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"29584":{"*":{"id":743976,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1fc7332e._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"30965":{"*":{"id":46550,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1fc7332e._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"966591":{"*":{"id":594180,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1fc7332e._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"3420":{"*":{"id":585766,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1fc7332e._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"489266":{"*":{"id":471584,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1fc7332e._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"67067":{"*":{"id":561162,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1fc7332e._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"253348":{"*":{"id":303171,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__1fc7332e._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"666284":{"*":{"id":551417,"name":"*","chunks":[],"async":false}},"29584":{"*":{"id":536434,"name":"*","chunks":[],"async":false}},"30965":{"*":{"id":387103,"name":"*","chunks":[],"async":false}},"966591":{"*":{"id":580884,"name":"*","chunks":[],"async":false}},"3420":{"*":{"id":504014,"name":"*","chunks":[],"async":false}},"489266":{"*":{"id":726190,"name":"*","chunks":[],"async":false}},"67067":{"*":{"id":76412,"name":"*","chunks":[],"async":false}},"253348":{"*":{"id":153128,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/app/global-error":[]},"entryJSFiles":{"[project]/app/global-error":["static/chunks/113c8c54faea44a4.js","static/chunks/5336d64d11e7435f.js","static/chunks/870a2c2978ab4440.js"]}} +globalThis.__RSC_MANIFEST["/test/page"] = {"moduleLoading":{"prefix":"","crossOrigin":null},"clientModules":{"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js ":{"id":666284,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/layout-router.js":{"id":666284,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js ":{"id":29584,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":29584,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js ":{"id":30965,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-page.js":{"id":30965,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js ":{"id":966591,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/client-segment.js":{"id":966591,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js ":{"id":3420,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":3420,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js ":{"id":489266,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":489266,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js ":{"id":67067,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":67067,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/app/global-error.tsx ":{"id":253348,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false},"[project]/app/global-error.tsx":{"id":253348,"name":"*","chunks":["/_next/static/chunks/113c8c54faea44a4.js","/_next/static/chunks/5336d64d11e7435f.js","/_next/static/chunks/870a2c2978ab4440.js"],"async":false}},"ssrModuleMapping":{"666284":{"*":{"id":164732,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__fb2ceaaf._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"29584":{"*":{"id":743976,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__fb2ceaaf._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"30965":{"*":{"id":46550,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__fb2ceaaf._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"966591":{"*":{"id":594180,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__fb2ceaaf._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"3420":{"*":{"id":585766,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__fb2ceaaf._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"489266":{"*":{"id":471584,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__fb2ceaaf._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"67067":{"*":{"id":561162,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__fb2ceaaf._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}},"253348":{"*":{"id":303171,"name":"*","chunks":["server/chunks/ssr/[root-of-the-server]__fb2ceaaf._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js","server/chunks/ssr/468ab_next_dist_esm_10bac804._.js"],"async":false}}},"edgeSSRModuleMapping":{},"rscModuleMapping":{"666284":{"*":{"id":551417,"name":"*","chunks":[],"async":false}},"29584":{"*":{"id":536434,"name":"*","chunks":[],"async":false}},"30965":{"*":{"id":387103,"name":"*","chunks":[],"async":false}},"966591":{"*":{"id":580884,"name":"*","chunks":[],"async":false}},"3420":{"*":{"id":504014,"name":"*","chunks":[],"async":false}},"489266":{"*":{"id":726190,"name":"*","chunks":[],"async":false}},"67067":{"*":{"id":76412,"name":"*","chunks":[],"async":false}},"253348":{"*":{"id":153128,"name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{},"entryCSSFiles":{"[project]/app/global-error":[]},"entryJSFiles":{"[project]/app/global-error":["static/chunks/113c8c54faea44a4.js","static/chunks/5336d64d11e7435f.js","static/chunks/870a2c2978ab4440.js"]}} diff --git a/.next/server/chunks/node_modules__pnpm_b4ece637._.js b/.next/server/chunks/node_modules__pnpm_b4ece637._.js index 6a16bb14b..2bb3b1667 100644 --- a/.next/server/chunks/node_modules__pnpm_b4ece637._.js +++ b/.next/server/chunks/node_modules__pnpm_b4ece637._.js @@ -1,4 +1,4 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="db753a8a-e688-c25f-a45c-825c483db3ff")}catch(e){}}(); +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="e4f5f853-b33a-aa62-398c-659d48abcf57")}catch(e){}}(); module.exports=[421756,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),n.DEBUG_BUILD="u"{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),n.GLOBAL_OBJ=globalThis},786339,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),n.SDK_VERSION="10.47.0"},673729,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(786339),o=e.r(56212);function i(e){let t=e.__SENTRY__=e.__SENTRY__||{};return t.version=t.version||r.SDK_VERSION,t[r.SDK_VERSION]=t[r.SDK_VERSION]||{}}n.getGlobalSingleton=function(e,t,n=o.GLOBAL_OBJ){let i=n.__SENTRY__=n.__SENTRY__||{},a=i[r.SDK_VERSION]=i[r.SDK_VERSION]||{};return a[e]||(a[e]=t())},n.getMainCarrier=function(){return i(o.GLOBAL_OBJ),o.GLOBAL_OBJ},n.getSentryCarrier=i},385177,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(673729),o=e.r(421756),i=e.r(56212),a={};function s(e){if(!("console"in i.GLOBAL_OBJ))return e();let t=i.GLOBAL_OBJ.console,n={},r=Object.keys(a);r.forEach(e=>{let r=a[e];n[e]=t[e],t[e]=r});try{return e()}finally{r.forEach(e=>{t[e]=n[e]})}}function l(){return c().enabled}function u(e,...t){o.DEBUG_BUILD&&l()&&s(()=>{i.GLOBAL_OBJ.console[e](`Sentry Logger [${e}]:`,...t)})}function c(){return o.DEBUG_BUILD?r.getGlobalSingleton("loggerSettings",()=>({enabled:!1})):{enabled:!1}}n.CONSOLE_LEVELS=["debug","info","warn","error","log","assert","trace"],n.consoleSandbox=s,n.debug={enable:function(){c().enabled=!0},disable:function(){c().enabled=!1},isEnabled:l,log:function(...e){u("log",...e)},warn:function(...e){u("warn",...e)},error:function(...e){u("error",...e)}},n.originalConsoleMethods=a},5497,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=/\(error: (.*)\)/,o=/captureMessage|captureException/;function i(...e){let t=e.sort((e,t)=>e[0]-t[0]).map(e=>e[1]);return(e,n=0,o=0)=>{let i=[],s=e.split("\n");for(let e=n;e1024&&(n=n.slice(0,1024));let a=r.test(n)?n.replace(r,"$1"):n;if(!a.match(/\S*Error: /)){for(let e of t){let t=e(a);if(t){i.push(t);break}}if(i.length>=50+o)break}}return a(i.slice(o))}}function a(e){if(!e.length)return[];let t=Array.from(e);return/sentryWrapped/.test(s(t).function||"")&&t.pop(),t.reverse(),o.test(s(t).function||"")&&(t.pop(),o.test(s(t).function||"")&&t.pop()),t.slice(0,50).map(e=>({...e,filename:e.filename||s(t).filename,function:e.function||"?"}))}function s(e){return e[e.length-1]||{}}let l="";n.UNKNOWN_FUNCTION="?",n.createStackParser=i,n.getFramesFromEvent=function(e){let t=e.exception;if(t){let e=[];try{return t.values.forEach(t=>{t.stacktrace.frames&&e.push(...t.stacktrace.frames)}),e}catch{}}},n.getFunctionName=function(e){try{if(!e||"function"!=typeof e)return l;return e.name||l}catch{return l}},n.getVueInternalName=function(e){return"__v_isVNode"in e&&e.__v_isVNode?"[VueVNode]":"[VueViewModel]"},n.normalizeStackTracePath=function(e){let t=e?.startsWith("file://")?e.slice(7):e;return t?.match(/\/[A-Z]:/)&&(t=t.slice(1)),t},n.stackParserFromStackParserOptions=function(e){return Array.isArray(e)?i(...e):e},n.stripSentryFramesAndReverse=a},628345,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(421756),o=e.r(385177),i=e.r(5497),a={},s={};n.addHandler=function(e,t){a[e]=a[e]||[],a[e].push(t)},n.maybeInstrument=function(e,t){if(!s[e]){s[e]=!0;try{t()}catch(t){r.DEBUG_BUILD&&o.debug.error(`Error while instrumenting ${e}`,t)}}},n.resetInstrumentationHandlers=function(){Object.keys(a).forEach(e=>{a[e]=void 0})},n.triggerHandlers=function(e,t){let n=e&&a[e];if(n)for(let a of n)try{a(t)}catch(t){r.DEBUG_BUILD&&o.debug.error(`Error while triggering instrumentation handler. Type: ${e} Name: ${i.getFunctionName(a)} @@ -20,7 +20,7 @@ ${e.stack}`:"unknown"}}}}}let c=r.defineIntegration((e={})=>{let t=e.limit??10;r `;let T=s.parseProxyResponse(n);n.write(`${_}\r `);let{connect:d,buffered:E}=await T;if(e.emit("proxyConnect",d),this.emit("proxyConnect",d,e),200===d.statusCode){if(e.once("socket",c),t.secureEndpoint){l("Upgrading socket connection to TLS");let e=t.servername||t.host;return o.connect({...p(t,"host","path","port"),socket:n,servername:r.isIP(e)?void 0:e})}return n}n.destroy();let S=new r.Socket({writable:!1});return S.readable=!0,e.once("socket",e=>{l("Replaying proxy buffer for failed request"),e.push(E),e.push(null)}),S}}function c(e){e.resume()}function p(e,...t){let n,r={};for(n in e)t.includes(n)||(r[n]=e[n]);return r}u.__initStatic(),n.HttpsProxyAgent=u},136001,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(347299),o=e.r(743698),i=e.r(81111),a=e.r(727028),s=e.r(976285),l=e.r(358652);n.makeNodeTransport=function(e){let t;try{t=new URL(e.url)}catch(t){return s.consoleSandbox(()=>{console.warn("[@sentry/node]: Invalid dsn or tunnel option, will not send any events. The tunnel option must be a full URL when used.")}),s.createTransport(e,()=>Promise.resolve({}))}let n="https:"===t.protocol,u=function(e,t){let{no_proxy:n}=process.env;if(!n?.split(",").some(t=>e.host.endsWith(t)||e.hostname.endsWith(t)))return t}(t,e.proxy||(n?process.env.https_proxy:void 0)||process.env.http_proxy),c=n?o:r,p=void 0!==e.keepAlive&&e.keepAlive,_=u?new l.HttpsProxyAgent(u):new c.Agent({keepAlive:p,maxSockets:30,timeout:2e3}),T=function(e,t,n){let{hostname:r,pathname:o,port:l,protocol:u,search:c}=new URL(e.url);return function(p){return new Promise((_,T)=>{s.suppressTracing(()=>{var s;let d=(s=p.body,new i.Readable({read(){this.push(s),this.push(null)}})),E={...e.headers};p.body.length>32768&&(E["content-encoding"]="gzip",d=d.pipe(a.createGzip()));let S=r.startsWith("["),A=t.request({method:"POST",agent:n,headers:E,hostname:S?r.slice(1,-1):r,path:`${o}${c}`,port:l,protocol:u,ca:e.caCerts},e=>{e.on("data",()=>{}),e.on("end",()=>{}),e.setEncoding("utf8");let t=e.headers["retry-after"]??null,n=e.headers["x-sentry-rate-limits"]??null;_({statusCode:e.statusCode,headers:{"retry-after":t,"x-sentry-rate-limits":Array.isArray(n)?n[0]||null:n}})});A.on("error",T),d.pipe(A)})})}}(e,e.httpModule??c,_);return s.createTransport(e,T)}},148131,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285);n.getSpotlightConfig=function(e){if(!1===e)return!1;if("string"==typeof e)return e;let t=r.envToBool(process.env.SENTRY_SPOTLIGHT,{strict:!0}),n=null===t&&process.env.SENTRY_SPOTLIGHT?process.env.SENTRY_SPOTLIGHT:void 0;return!0===e?n??!0:t??n}},941438,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(750227),o=e.r(976285);function i(e){return e.replace(/^[A-Z]:/,"").replace(/\\/g,"/")}n.createGetModuleFromFilename=function(e=process.argv[1]?o.dirname(process.argv[1]):process.cwd(),t="\\"===r.sep){let n=t?i(e):e;return e=>{if(!e)return;let o=t?i(e):e,{dir:a,base:s,ext:l}=r.posix.parse(o);(".js"===l||".mjs"===l||".cjs"===l)&&(s=s.slice(0,-1*l.length));let u=decodeURIComponent(s);a||(a=".");let c=a.lastIndexOf("/node_modules");if(c>-1)return`${a.slice(c+14).replace(/\//g,".")}:${u}`;if(a.startsWith(n)){let e=a.slice(n.length+1).replace(/\//g,".");return e?`${e}:${u}`:u}return u}}},315564,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(941438);n.defaultStackParser=r.createStackParser(r.nodeStackLineParser(o.createGetModuleFromFilename())),n.getSentryRelease=function(e){if(process.env.SENTRY_RELEASE)return process.env.SENTRY_RELEASE;if(r.GLOBAL_OBJ.SENTRY_RELEASE?.id)return r.GLOBAL_OBJ.SENTRY_RELEASE.id;let t=process.env.GITHUB_SHA||process.env.CI_MERGE_REQUEST_SOURCE_BRANCH_SHA||process.env.CI_BUILD_REF||process.env.CI_COMMIT_SHA||process.env.BITBUCKET_COMMIT,n=process.env.APPVEYOR_PULL_REQUEST_HEAD_COMMIT||process.env.APPVEYOR_REPO_COMMIT||process.env.CODEBUILD_RESOLVED_SOURCE_VERSION||process.env.AWS_COMMIT_ID||process.env.BUILD_SOURCEVERSION||process.env.GIT_CLONE_COMMIT_HASH||process.env.BUDDY_EXECUTION_REVISION||process.env.BUILDKITE_COMMIT||process.env.CIRCLE_SHA1||process.env.CIRRUS_CHANGE_IN_REPO||process.env.CF_REVISION||process.env.CM_COMMIT||process.env.CF_PAGES_COMMIT_SHA||process.env.DRONE_COMMIT_SHA||process.env.FC_GIT_COMMIT_SHA||process.env.HEROKU_TEST_RUN_COMMIT_VERSION||process.env.HEROKU_BUILD_COMMIT||process.env.HEROKU_SLUG_COMMIT||process.env.RAILWAY_GIT_COMMIT_SHA||process.env.RENDER_GIT_COMMIT||process.env.SEMAPHORE_GIT_SHA||process.env.TRAVIS_PULL_REQUEST_SHA||process.env.VERCEL_GIT_COMMIT_SHA||process.env.VERCEL_GITHUB_COMMIT_SHA||process.env.VERCEL_GITLAB_COMMIT_SHA||process.env.VERCEL_BITBUCKET_COMMIT_SHA||process.env.ZEIT_GITHUB_COMMIT_SHA||process.env.ZEIT_GITLAB_COMMIT_SHA||process.env.ZEIT_BITBUCKET_COMMIT_SHA,o=process.env.CI_COMMIT_ID||process.env.SOURCE_COMMIT||process.env.SOURCE_VERSION||process.env.GIT_COMMIT||process.env.COMMIT_REF||process.env.BUILD_VCS_NUMBER||process.env.CI_COMMIT_SHA;return t||n||o||e}},367920,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(660526),o=e.r(357762),i=e.r(204780),a=e.r(976285),s=e.r(779607),l=e.r(37702),u=e.r(747535);class c extends a.ServerRuntimeClient{constructor(t){const n=!1===t.includeServerName?void 0:t.serverName||e.g.process.env.SENTRY_NAME||r.hostname(),o={...t,platform:"node",runtime:t.runtime||{name:"node",version:e.g.process.version},serverName:n};t.openTelemetryInstrumentations&&i.registerInstrumentations({instrumentations:t.openTelemetryInstrumentations}),a.applySdkMetadata(o,"node"),a.debug.log(`Initializing Sentry: process: ${process.pid}, thread: ${l.isMainThread?"main":`worker-${l.threadId}`}.`),super(o),this.getOptions().enableLogs&&(this._logOnExitFlushListener=()=>{a._INTERNAL_flushLogsBuffer(this)},n&&this.on("beforeCaptureLog",e=>{e.attributes={...e.attributes,"server.address":n}}),process.on("beforeExit",this._logOnExitFlushListener))}get tracer(){if(this._tracer)return this._tracer;let e=a.SDK_VERSION,t=o.trace.getTracer("@sentry/node",e);return this._tracer=t,t}async flush(e){return await this.traceProvider?.forceFlush(),this.getOptions().sendClientReports&&this._flushOutcomes(),super.flush(e)}async close(e){this._clientReportInterval&&clearInterval(this._clientReportInterval),this._clientReportOnExitFlushListener&&process.off("beforeExit",this._clientReportOnExitFlushListener),this._logOnExitFlushListener&&process.off("beforeExit",this._logOnExitFlushListener);let t=await super.close(e);return this.traceProvider&&await this.traceProvider.shutdown(),t}startClientReportTracking(){let e=this.getOptions();e.sendClientReports&&(this._clientReportOnExitFlushListener=()=>{this._flushOutcomes()},this._clientReportInterval=setInterval(()=>{u.DEBUG_BUILD&&a.debug.log("Flushing client reports based on interval."),this._flushOutcomes()},e.clientReportFlushInterval??6e4).unref(),process.on("beforeExit",this._clientReportOnExitFlushListener))}_setupIntegrations(){a._INTERNAL_clearAiProviderSkips(),super._setupIntegrations()}_getTraceInfoFromScope(e){return e?s.getTraceContextForScope(this,e):[void 0,void 0]}}n.NodeClient=c},652203,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(285512),i=e.r(362562),a=e.r(234848);var s="u">typeof document?document.currentScript:null;n.initializeEsmLoader=function(){if(a.supportsEsmLoaderHooks()&&!r.GLOBAL_OBJ._sentryEsmLoaderHookRegistered){r.GLOBAL_OBJ._sentryEsmLoaderHookRegistered=!0;try{let{addHookMessagePort:t}=o.createAddHookMessageChannel();i.register("import-in-the-middle/hook.mjs","u"{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(779607),i=e.r(747535),a=e.r(475008),s=e.r(356044),l=e.r(179334),u=e.r(780200),c=e.r(179508),p=e.r(950051),_=e.r(642089),T=e.r(621353),d=e.r(438647),E=e.r(687123),S=e.r(254565),A=e.r(439390),g=e.r(136001),m=e.r(234848),h=e.r(148131),R=e.r(315564),f=e.r(367920),N=e.r(652203);function I(){return[r.inboundFiltersIntegration(),r.functionToStringIntegration(),r.linkedErrorsIntegration(),r.requestDataIntegration(),A.systemErrorIntegration(),r.conversationIdIntegration(),r.consoleIntegration(),u.httpIntegration(),_.nativeNodeFetchIntegration(),T.onUncaughtExceptionIntegration(),d.onUnhandledRejectionIntegration(),l.contextLinesIntegration(),c.localVariablesIntegration(),s.nodeContextIntegration(),a.childProcessIntegration(),E.processSessionIntegration(),p.modulesIntegration()]}function O(e={},t){var n,a;let s,l,u,c,p,_,T=(n=e,a=t,s=function(e){if(void 0!==e)return e;let t=R.getSentryRelease();if(void 0!==t)return t}(n.release),l=h.getSpotlightConfig(n.spotlight),u=function(e){if(void 0!==e)return e;let t=process.env.SENTRY_TRACES_SAMPLE_RATE;if(!t)return;let n=parseFloat(t);return isFinite(n)?n:void 0}(n.tracesSampleRate),c={...n,dsn:n.dsn??process.env.SENTRY_DSN,environment:n.environment??process.env.SENTRY_ENVIRONMENT,sendClientReports:n.sendClientReports??!0,transport:n.transport??g.makeNodeTransport,stackParser:r.stackParserFromStackParserOptions(n.stackParser||R.defaultStackParser),release:s,tracesSampleRate:u,spotlight:l,debug:r.envToBool(n.debug??process.env.SENTRY_DEBUG)},p=n.integrations,_=n.defaultIntegrations??a(c),{...c,integrations:r.getIntegrationsToSetup({defaultIntegrations:_,integrations:p})});!0===T.debug&&(i.DEBUG_BUILD?r.debug.enable():r.consoleSandbox(()=>{console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.")})),!1!==T.registerEsmLoaderHooks&&N.initializeEsmLoader(),o.setOpenTelemetryContextAsyncContextStrategy(),r.getCurrentScope().update(T.initialScope),T.spotlight&&!T.integrations.some(({name:e})=>e===S.INTEGRATION_NAME)&&T.integrations.push(S.spotlightIntegration({sidecarUrl:"string"==typeof T.spotlight?T.spotlight:void 0})),r.applySdkMetadata(T,"node-core");let d=new f.NodeClient(T);return r.getCurrentScope().setClient(d),d.init(),r.debug.log(`SDK initialized from ${m.isCjs()?"CommonJS":"ESM"}`),d.startClientReportTracking(),function(){if(!1!==r.envToBool(process.env.SENTRY_USE_ENVIRONMENT)){let e=process.env.SENTRY_TRACE,t=process.env.SENTRY_BAGGAGE,n=r.propagationContextFromHeaders(e,t);r.getCurrentScope().setPropagationContext(n)}}(),o.enhanceDscWithOpenTelemetryRootSpanName(d),o.setupEventContextTrace(d),process.env.VERCEL&&process.on("SIGTERM",async()=>{await d.flush(200)}),d}n.getDefaultIntegrations=I,n.init=function(e={}){return O(e,I)},n.initWithoutDefaultIntegrations=function(e={}){return O(e,()=>[])},n.validateOpenTelemetrySetup=function(){if(!i.DEBUG_BUILD)return;let e=o.openTelemetrySetupCheck(),t=["SentryContextManager","SentryPropagator"];for(let n of(r.hasSpansEnabled()&&t.push("SentrySpanProcessor"),t))e.includes(n)||r.debug.error(`You have to set up the ${n}. Without this, the OpenTelemetry & Sentry integration will not work properly.`);e.includes("SentrySampler")||r.debug.warn("You have to set up the SentrySampler. Without this, the OpenTelemetry & Sentry integration may still work, but sample rates set for the Sentry SDK will not be respected. If you use a custom sampler, make sure to use `wrapSamplingDecision`.")}},211587,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(357762),o=e.r(779607);n.setIsolationScope=function(e){let t=o.getScopesFromContext(r.context.active());t&&(t.isolationScope=e)}},709895,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(234848);n.createMissingInstrumentationContext=e=>({package:e,"javascript.is_cjs":r.isCjs()})},145844,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(204780),o=e.r(976285),i=e.r(709895),a=e.r(234848);n.ensureIsWrapped=function(e,t){let n=o.getClient()?.getOptions();!n?.disableInstrumentationWarnings&&!r.isWrapped(e)&&o.isEnabled()&&o.hasSpansEnabled(n)&&(o.consoleSandbox(()=>{a.isCjs()?console.warn(`[Sentry] ${t} is not instrumented. This is likely because you required/imported ${t} before calling \`Sentry.init()\`.`):console.warn(`[Sentry] ${t} is not instrumented. Please make sure to initialize Sentry in a separate file that you \`--import\` when running node, see: https://docs.sentry.io/platforms/javascript/guides/${t}/install/esm/.`)}),o.getGlobalScope().setContext("missing_instrumentation",i.createMissingInstrumentationContext(t)))}},498721,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(812057),o=e.r(925127),i=e.r(976285),a=e.r(860015),s=e.r(552237),{isPromise:l}=r.types,u="LyohIEBzZW50cnkvbm9kZS1jb3JlIDEwLjQ3LjAgKGE1YTRlNzMpIHwgaHR0cHM6Ly9naXRodWIuY29tL2dldHNlbnRyeS9zZW50cnktamF2YXNjcmlwdCAqLwppbXBvcnR7U2Vzc2lvbiBhcyB0fWZyb20ibm9kZTppbnNwZWN0b3IiO2ltcG9ydHt3b3JrZXJEYXRhIGFzIG4scGFyZW50UG9ydCBhcyBlfWZyb20ibm9kZTp3b3JrZXJfdGhyZWFkcyI7aW1wb3J0e3Bvc2l4IGFzIHIsc2VwIGFzIG99ZnJvbSJub2RlOnBhdGgiO2ltcG9ydCphcyBpIGZyb20ibm9kZTpodHRwIjtpbXBvcnQqYXMgcyBmcm9tIm5vZGU6aHR0cHMiO2ltcG9ydHtSZWFkYWJsZSBhcyBjfWZyb20ibm9kZTpzdHJlYW0iO2ltcG9ydHtjcmVhdGVHemlwIGFzIHV9ZnJvbSJub2RlOnpsaWIiO2ltcG9ydCphcyBhIGZyb20ibm9kZTpuZXQiO2ltcG9ydCphcyBmIGZyb20ibm9kZTp0bHMiO2NvbnN0IGg9InVuZGVmaW5lZCI9PXR5cGVvZiBfX1NFTlRSWV9ERUJVR19ffHxfX1NFTlRSWV9ERUJVR19fLHA9Z2xvYmFsVGhpcyxkPSIxMC40Ny4wIjtmdW5jdGlvbiBsKCl7cmV0dXJuIG0ocCkscH1mdW5jdGlvbiBtKHQpe2NvbnN0IG49dC5fX1NFTlRSWV9fPXQuX19TRU5UUllfX3x8e307cmV0dXJuIG4udmVyc2lvbj1uLnZlcnNpb258fGQsbltkXT1uW2RdfHx7fX1mdW5jdGlvbiBnKHQsbixlPXApe2NvbnN0IHI9ZS5fX1NFTlRSWV9fPWUuX19TRU5UUllfX3x8e30sbz1yW2RdPXJbZF18fHt9O3JldHVybiBvW3RdfHwob1t0XT1uKCkpfWNvbnN0IHk9e307ZnVuY3Rpb24gYih0KXtpZighKCJjb25zb2xlImluIHApKXJldHVybiB0KCk7Y29uc3Qgbj1wLmNvbnNvbGUsZT17fSxyPU9iamVjdC5rZXlzKHkpO3IuZm9yRWFjaCh0PT57Y29uc3Qgcj15W3RdO2VbdF09blt0XSxuW3RdPXJ9KTt0cnl7cmV0dXJuIHQoKX1maW5hbGx5e3IuZm9yRWFjaCh0PT57blt0XT1lW3RdfSl9fWZ1bmN0aW9uIHYoKXtyZXR1cm4gdygpLmVuYWJsZWR9ZnVuY3Rpb24gXyh0LC4uLm4pe2gmJnYoKSYmYigoKT0+e3AuY29uc29sZVt0XShgU2VudHJ5IExvZ2dlciBbJHt0fV06YCwuLi5uKX0pfWZ1bmN0aW9uIHcoKXtyZXR1cm4gaD9nKCJsb2dnZXJTZXR0aW5ncyIsKCk9Pih7ZW5hYmxlZDohMX0pKTp7ZW5hYmxlZDohMX19Y29uc3QgUz17ZW5hYmxlOmZ1bmN0aW9uKCl7dygpLmVuYWJsZWQ9ITB9LGRpc2FibGU6ZnVuY3Rpb24oKXt3KCkuZW5hYmxlZD0hMX0saXNFbmFibGVkOnYsbG9nOmZ1bmN0aW9uKC4uLnQpe18oImxvZyIsLi4udCl9LHdhcm46ZnVuY3Rpb24oLi4udCl7Xygid2FybiIsLi4udCl9LGVycm9yOmZ1bmN0aW9uKC4uLnQpe18oImVycm9yIiwuLi50KX19LCQ9L2NhcHR1cmVNZXNzYWdlfGNhcHR1cmVFeGNlcHRpb24vO2Z1bmN0aW9uIEUodCl7cmV0dXJuIHRbdC5sZW5ndGgtMV18fHt9fWNvbnN0IHg9Ijxhbm9ueW1vdXM+Ijtjb25zdCBOPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7ZnVuY3Rpb24gaih0LG4pe3JldHVybiBOLmNhbGwodCk9PT1gW29iamVjdCAke259XWB9ZnVuY3Rpb24gQyh0KXtyZXR1cm4gaih0LCJTdHJpbmciKX1mdW5jdGlvbiBBKHQpe3JldHVybiBqKHQsIk9iamVjdCIpfWZ1bmN0aW9uIFQodCl7cmV0dXJuIEJvb2xlYW4odD8udGhlbiYmImZ1bmN0aW9uIj09dHlwZW9mIHQudGhlbil9ZnVuY3Rpb24gayh0LG4pe3RyeXtyZXR1cm4gdCBpbnN0YW5jZW9mIG59Y2F0Y2h7cmV0dXJuITF9fWNvbnN0IEk9cDtmdW5jdGlvbiBPKHQsbil7Y29uc3QgZT10LHI9W107aWYoIWU/LnRhZ05hbWUpcmV0dXJuIiI7aWYoSS5IVE1MRWxlbWVudCYmZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiZlLmRhdGFzZXQpe2lmKGUuZGF0YXNldC5zZW50cnlDb21wb25lbnQpcmV0dXJuIGUuZGF0YXNldC5zZW50cnlDb21wb25lbnQ7aWYoZS5kYXRhc2V0LnNlbnRyeUVsZW1lbnQpcmV0dXJuIGUuZGF0YXNldC5zZW50cnlFbGVtZW50fXIucHVzaChlLnRhZ05hbWUudG9Mb3dlckNhc2UoKSk7Y29uc3Qgbz1uPy5sZW5ndGg/bi5maWx0ZXIodD0+ZS5nZXRBdHRyaWJ1dGUodCkpLm1hcCh0PT5bdCxlLmdldEF0dHJpYnV0ZSh0KV0pOm51bGw7aWYobz8ubGVuZ3RoKW8uZm9yRWFjaCh0PT57ci5wdXNoKGBbJHt0WzBdfT0iJHt0WzFdfSJdYCl9KTtlbHNle2UuaWQmJnIucHVzaChgIyR7ZS5pZH1gKTtjb25zdCB0PWUuY2xhc3NOYW1lO2lmKHQmJkModCkpe2NvbnN0IG49dC5zcGxpdCgvXHMrLyk7Zm9yKGNvbnN0IHQgb2YgbilyLnB1c2goYC4ke3R9YCl9fWZvcihjb25zdCB0IG9mWyJhcmlhLWxhYmVsIiwidHlwZSIsIm5hbWUiLCJ0aXRsZSIsImFsdCJdKXtjb25zdCBuPWUuZ2V0QXR0cmlidXRlKHQpO24mJnIucHVzaChgWyR7dH09IiR7bn0iXWApfXJldHVybiByLmpvaW4oIiIpfWZ1bmN0aW9uIFIodCl7aWYoZnVuY3Rpb24odCl7c3dpdGNoKE4uY2FsbCh0KSl7Y2FzZSJbb2JqZWN0IEVycm9yXSI6Y2FzZSJbb2JqZWN0IEV4Y2VwdGlvbl0iOmNhc2UiW29iamVjdCBET01FeGNlcHRpb25dIjpjYXNlIltvYmplY3QgV2ViQXNzZW1ibHkuRXhjZXB0aW9uXSI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4gayh0LEVycm9yKX19KHQpKXJldHVybnttZXNzYWdlOnQubWVzc2FnZSxuYW1lOnQubmFtZSxzdGFjazp0LnN0YWNrLC4uLkQodCl9O2lmKG49dCwidW5kZWZpbmVkIiE9dHlwZW9mIEV2ZW50JiZrKG4sRXZlbnQpKXtjb25zdCBuPXt0eXBlOnQudHlwZSx0YXJnZXQ6UCh0LnRhcmdldCksY3VycmVudFRhcmdldDpQKHQuY3VycmVudFRhcmdldCksLi4uRCh0KX07cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBDdXN0b21FdmVudCYmayh0LEN1c3RvbUV2ZW50KSYmKG4uZGV0YWlsPXQuZGV0YWlsKSxufXJldHVybiB0O3ZhciBufWZ1bmN0aW9uIFAodCl7dHJ5e3JldHVybiBuPXQsInVuZGVmaW5lZCIhPXR5cGVvZiBFbGVtZW50JiZrKG4sRWxlbWVudCk/ZnVuY3Rpb24odCxuPXt9KXtpZighdClyZXR1cm4iPHVua25vd24+Ijt0cnl7bGV0IGU9dDtjb25zdCByPTUsbz1bXTtsZXQgaT0wLHM9MDtjb25zdCBjPSIgPiAiLHU9Yy5sZW5ndGg7bGV0IGE7Y29uc3QgZj1BcnJheS5pc0FycmF5KG4pP246bi5rZXlBdHRycyxoPSFBcnJheS5pc0FycmF5KG4pJiZuLm1heFN0cmluZ0xlbmd0aHx8ODA7Zm9yKDtlJiZpKys8ciYmKGE9TyhlLGYpLCEoImh0bWwiPT09YXx8aT4xJiZzK28ubGVuZ3RoKnUrYS5sZW5ndGg+PWgpKTspby5wdXNoKGEpLHMrPWEubGVuZ3RoLGU9ZS5wYXJlbnROb2RlO3JldHVybiBvLnJldmVyc2UoKS5qb2luKGMpfWNhdGNoe3JldHVybiI8dW5rbm93bj4ifX0odCk6T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWNhdGNoe3JldHVybiI8dW5rbm93bj4ifXZhciBufWZ1bmN0aW9uIEQodCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT09dD9PYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXModCkpOnt9fWxldCBVLEw7ZnVuY3Rpb24gTSh0KXtpZih2b2lkIDAhPT1VKXJldHVybiBVP1UodCk6dCgpO2NvbnN0IG49U3ltYm9sLmZvcigiX19TRU5UUllfU0FGRV9SQU5ET01fSURfV1JBUFBFUl9fIiksZT1wO3JldHVybiBuIGluIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBlW25dPyhVPWVbbl0sVSh0KSk6KFU9bnVsbCx0KCkpfWZ1bmN0aW9uIEIoKXtyZXR1cm4gTSgoKT0+TWF0aC5yYW5kb20oKSl9ZnVuY3Rpb24gVygpe3JldHVybiBNKCgpPT5EYXRlLm5vdygpKX1mdW5jdGlvbiB6KHQsbj0wKXtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHR8fDA9PT1ufHx0Lmxlbmd0aDw9bj90OmAke3Quc2xpY2UoMCxuKX0uLi5gfWZ1bmN0aW9uIEYodD1mdW5jdGlvbigpe2NvbnN0IHQ9cDtyZXR1cm4gdC5jcnlwdG98fHQubXNDcnlwdG99KCkpe3RyeXtpZih0Py5yYW5kb21VVUlEKXJldHVybiBNKCgpPT50LnJhbmRvbVVVSUQoKSkucmVwbGFjZSgvLS9nLCIiKX1jYXRjaHt9cmV0dXJuIEx8fChMPVsxZTddKzFlMys0ZTMrOGUzKzFlMTEpLEwucmVwbGFjZSgvWzAxOF0vZyx0PT4odF4oMTYqQigpJjE1KT4+dC80KS50b1N0cmluZygxNikpfWZ1bmN0aW9uIEcoKXtyZXR1cm4gVygpLzFlM31sZXQgSDtmdW5jdGlvbiBKKCl7cmV0dXJuKEg/PyhIPWZ1bmN0aW9uKCl7Y29uc3R7cGVyZm9ybWFuY2U6dH09cDtpZighdD8ubm93fHwhdC50aW1lT3JpZ2luKXJldHVybiBHO2NvbnN0IG49dC50aW1lT3JpZ2luO3JldHVybigpPT4obitNKCgpPT50Lm5vdygpKSkvMWUzfSgpKSkoKX1mdW5jdGlvbiBZKHQpe2NvbnN0IG49SigpLGU9e3NpZDpGKCksaW5pdDohMCx0aW1lc3RhbXA6bixzdGFydGVkOm4sZHVyYXRpb246MCxzdGF0dXM6Im9rIixlcnJvcnM6MCxpZ25vcmVEdXJhdGlvbjohMSx0b0pTT046KCk9PmZ1bmN0aW9uKHQpe3JldHVybntzaWQ6YCR7dC5zaWR9YCxpbml0OnQuaW5pdCxzdGFydGVkOm5ldyBEYXRlKDFlMyp0LnN0YXJ0ZWQpLnRvSVNPU3RyaW5nKCksdGltZXN0YW1wOm5ldyBEYXRlKDFlMyp0LnRpbWVzdGFtcCkudG9JU09TdHJpbmcoKSxzdGF0dXM6dC5zdGF0dXMsZXJyb3JzOnQuZXJyb3JzLGRpZDoibnVtYmVyIj09dHlwZW9mIHQuZGlkfHwic3RyaW5nIj09dHlwZW9mIHQuZGlkP2Ake3QuZGlkfWA6dm9pZCAwLGR1cmF0aW9uOnQuZHVyYXRpb24sYWJub3JtYWxfbWVjaGFuaXNtOnQuYWJub3JtYWxfbWVjaGFuaXNtLGF0dHJzOntyZWxlYXNlOnQucmVsZWFzZSxlbnZpcm9ubWVudDp0LmVudmlyb25tZW50LGlwX2FkZHJlc3M6dC5pcEFkZHJlc3MsdXNlcl9hZ2VudDp0LnVzZXJBZ2VudH19fShlKX07cmV0dXJuIHQmJlYoZSx0KSxlfWZ1bmN0aW9uIFYodCxuPXt9KXtpZihuLnVzZXImJighdC5pcEFkZHJlc3MmJm4udXNlci5pcF9hZGRyZXNzJiYodC5pcEFkZHJlc3M9bi51c2VyLmlwX2FkZHJlc3MpLHQuZGlkfHxuLmRpZHx8KHQuZGlkPW4udXNlci5pZHx8bi51c2VyLmVtYWlsfHxuLnVzZXIudXNlcm5hbWUpKSx0LnRpbWVzdGFtcD1uLnRpbWVzdGFtcHx8SigpLG4uYWJub3JtYWxfbWVjaGFuaXNtJiYodC5hYm5vcm1hbF9tZWNoYW5pc209bi5hYm5vcm1hbF9tZWNoYW5pc20pLG4uaWdub3JlRHVyYXRpb24mJih0Lmlnbm9yZUR1cmF0aW9uPW4uaWdub3JlRHVyYXRpb24pLG4uc2lkJiYodC5zaWQ9MzI9PT1uLnNpZC5sZW5ndGg/bi5zaWQ6RigpKSx2b2lkIDAhPT1uLmluaXQmJih0LmluaXQ9bi5pbml0KSwhdC5kaWQmJm4uZGlkJiYodC5kaWQ9YCR7bi5kaWR9YCksIm51bWJlciI9PXR5cGVvZiBuLnN0YXJ0ZWQmJih0LnN0YXJ0ZWQ9bi5zdGFydGVkKSx0Lmlnbm9yZUR1cmF0aW9uKXQuZHVyYXRpb249dm9pZCAwO2Vsc2UgaWYoIm51bWJlciI9PXR5cGVvZiBuLmR1cmF0aW9uKXQuZHVyYXRpb249bi5kdXJhdGlvbjtlbHNle2NvbnN0IG49dC50aW1lc3RhbXAtdC5zdGFydGVkO3QuZHVyYXRpb249bj49MD9uOjB9bi5yZWxlYXNlJiYodC5yZWxlYXNlPW4ucmVsZWFzZSksbi5lbnZpcm9ubWVudCYmKHQuZW52aXJvbm1lbnQ9bi5lbnZpcm9ubWVudCksIXQuaXBBZGRyZXNzJiZuLmlwQWRkcmVzcyYmKHQuaXBBZGRyZXNzPW4uaXBBZGRyZXNzKSwhdC51c2VyQWdlbnQmJm4udXNlckFnZW50JiYodC51c2VyQWdlbnQ9bi51c2VyQWdlbnQpLCJudW1iZXIiPT10eXBlb2Ygbi5lcnJvcnMmJih0LmVycm9ycz1uLmVycm9ycyksbi5zdGF0dXMmJih0LnN0YXR1cz1uLnN0YXR1cyl9ZnVuY3Rpb24gSyh0LG4sZT0yKXtpZighbnx8Im9iamVjdCIhPXR5cGVvZiBufHxlPD0wKXJldHVybiBuO2lmKHQmJjA9PT1PYmplY3Qua2V5cyhuKS5sZW5ndGgpcmV0dXJuIHQ7Y29uc3Qgcj17Li4udH07Zm9yKGNvbnN0IHQgaW4gbilPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobix0KSYmKHJbdF09SyhyW3RdLG5bdF0sZS0xKSk7cmV0dXJuIHJ9ZnVuY3Rpb24gWigpe3JldHVybiBGKCl9ZnVuY3Rpb24gcSgpe3JldHVybiBGKCkuc3Vic3RyaW5nKDE2KX1jb25zdCBRPSJfc2VudHJ5U3BhbiI7ZnVuY3Rpb24gWCh0LG4pe24/ZnVuY3Rpb24odCxuLGUpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxuLHt2YWx1ZTplLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pfWNhdGNoe2gmJlMubG9nKGBGYWlsZWQgdG8gYWRkIG5vbi1lbnVtZXJhYmxlIHByb3BlcnR5ICIke259IiB0byBvYmplY3RgLHQpfX0odCxRLG4pOmRlbGV0ZSB0W1FdfWZ1bmN0aW9uIHR0KHQpe3JldHVybiB0W1FdfWNsYXNzIG50e2NvbnN0cnVjdG9yKCl7dGhpcy50PSExLHRoaXMubz1bXSx0aGlzLmk9W10sdGhpcy51PVtdLHRoaXMuaD1bXSx0aGlzLnA9e30sdGhpcy5sPXt9LHRoaXMubT17fSx0aGlzLnY9e30sdGhpcy5fPXt9LHRoaXMuUz17fSx0aGlzLk49e3RyYWNlSWQ6WigpLHNhbXBsZVJhbmQ6QigpfX1jbG9uZSgpe2NvbnN0IHQ9bmV3IG50O3JldHVybiB0LnU9Wy4uLnRoaXMudV0sdC5sPXsuLi50aGlzLmx9LHQubT17Li4udGhpcy5tfSx0LnY9ey4uLnRoaXMudn0sdC5fPXsuLi50aGlzLl99LHRoaXMuXy5mbGFncyYmKHQuXy5mbGFncz17dmFsdWVzOlsuLi50aGlzLl8uZmxhZ3MudmFsdWVzXX0pLHQucD10aGlzLnAsdC5qPXRoaXMuaix0LkM9dGhpcy5DLHQuQT10aGlzLkEsdC5UPXRoaXMuVCx0Lmk9Wy4uLnRoaXMuaV0sdC5oPVsuLi50aGlzLmhdLHQuUz17Li4udGhpcy5TfSx0Lk49ey4uLnRoaXMuTn0sdC5rPXRoaXMuayx0Lkk9dGhpcy5JLHQuTz10aGlzLk8sWCh0LHR0KHRoaXMpKSx0fXNldENsaWVudCh0KXt0aGlzLms9dH1zZXRMYXN0RXZlbnRJZCh0KXt0aGlzLkk9dH1nZXRDbGllbnQoKXtyZXR1cm4gdGhpcy5rfWxhc3RFdmVudElkKCl7cmV0dXJuIHRoaXMuSX1hZGRTY29wZUxpc3RlbmVyKHQpe3RoaXMuby5wdXNoKHQpfWFkZEV2ZW50UHJvY2Vzc29yKHQpe3JldHVybiB0aGlzLmkucHVzaCh0KSx0aGlzfXNldFVzZXIodCl7cmV0dXJuIHRoaXMucD10fHx7ZW1haWw6dm9pZCAwLGlkOnZvaWQgMCxpcF9hZGRyZXNzOnZvaWQgMCx1c2VybmFtZTp2b2lkIDB9LHRoaXMuQyYmVih0aGlzLkMse3VzZXI6dH0pLHRoaXMuUigpLHRoaXN9Z2V0VXNlcigpe3JldHVybiB0aGlzLnB9c2V0Q29udmVyc2F0aW9uSWQodCl7cmV0dXJuIHRoaXMuTz10fHx2b2lkIDAsdGhpcy5SKCksdGhpc31zZXRUYWdzKHQpe3JldHVybiB0aGlzLmw9ey4uLnRoaXMubCwuLi50fSx0aGlzLlIoKSx0aGlzfXNldFRhZyh0LG4pe3JldHVybiB0aGlzLnNldFRhZ3Moe1t0XTpufSl9c2V0QXR0cmlidXRlcyh0KXtyZXR1cm4gdGhpcy5tPXsuLi50aGlzLm0sLi4udH0sdGhpcy5SKCksdGhpc31zZXRBdHRyaWJ1dGUodCxuKXtyZXR1cm4gdGhpcy5zZXRBdHRyaWJ1dGVzKHtbdF06bn0pfXJlbW92ZUF0dHJpYnV0ZSh0KXtyZXR1cm4gdCBpbiB0aGlzLm0mJihkZWxldGUgdGhpcy5tW3RdLHRoaXMuUigpKSx0aGlzfXNldEV4dHJhcyh0KXtyZXR1cm4gdGhpcy52PXsuLi50aGlzLnYsLi4udH0sdGhpcy5SKCksdGhpc31zZXRFeHRyYSh0LG4pe3JldHVybiB0aGlzLnY9ey4uLnRoaXMudixbdF06bn0sdGhpcy5SKCksdGhpc31zZXRGaW5nZXJwcmludCh0KXtyZXR1cm4gdGhpcy5UPXQsdGhpcy5SKCksdGhpc31zZXRMZXZlbCh0KXtyZXR1cm4gdGhpcy5qPXQsdGhpcy5SKCksdGhpc31zZXRUcmFuc2FjdGlvbk5hbWUodCl7cmV0dXJuIHRoaXMuQT10LHRoaXMuUigpLHRoaXN9c2V0Q29udGV4dCh0LG4pe3JldHVybiBudWxsPT09bj9kZWxldGUgdGhpcy5fW3RdOnRoaXMuX1t0XT1uLHRoaXMuUigpLHRoaXN9c2V0U2Vzc2lvbih0KXtyZXR1cm4gdD90aGlzLkM9dDpkZWxldGUgdGhpcy5DLHRoaXMuUigpLHRoaXN9Z2V0U2Vzc2lvbigpe3JldHVybiB0aGlzLkN9dXBkYXRlKHQpe2lmKCF0KXJldHVybiB0aGlzO2NvbnN0IG49ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dCh0aGlzKTp0LGU9biBpbnN0YW5jZW9mIG50P24uZ2V0U2NvcGVEYXRhKCk6QShuKT90OnZvaWQgMCx7dGFnczpyLGF0dHJpYnV0ZXM6byxleHRyYTppLHVzZXI6cyxjb250ZXh0czpjLGxldmVsOnUsZmluZ2VycHJpbnQ6YT1bXSxwcm9wYWdhdGlvbkNvbnRleHQ6Zixjb252ZXJzYXRpb25JZDpofT1lfHx7fTtyZXR1cm4gdGhpcy5sPXsuLi50aGlzLmwsLi4ucn0sdGhpcy5tPXsuLi50aGlzLm0sLi4ub30sdGhpcy52PXsuLi50aGlzLnYsLi4uaX0sdGhpcy5fPXsuLi50aGlzLl8sLi4uY30scyYmT2JqZWN0LmtleXMocykubGVuZ3RoJiYodGhpcy5wPXMpLHUmJih0aGlzLmo9dSksYS5sZW5ndGgmJih0aGlzLlQ9YSksZiYmKHRoaXMuTj1mKSxoJiYodGhpcy5PPWgpLHRoaXN9Y2xlYXIoKXtyZXR1cm4gdGhpcy51PVtdLHRoaXMubD17fSx0aGlzLm09e30sdGhpcy52PXt9LHRoaXMucD17fSx0aGlzLl89e30sdGhpcy5qPXZvaWQgMCx0aGlzLkE9dm9pZCAwLHRoaXMuVD12b2lkIDAsdGhpcy5DPXZvaWQgMCx0aGlzLk89dm9pZCAwLFgodGhpcyx2b2lkIDApLHRoaXMuaD1bXSx0aGlzLnNldFByb3BhZ2F0aW9uQ29udGV4dCh7dHJhY2VJZDpaKCksc2FtcGxlUmFuZDpCKCl9KSx0aGlzLlIoKSx0aGlzfWFkZEJyZWFkY3J1bWIodCxuKXtjb25zdCBlPSJudW1iZXIiPT10eXBlb2Ygbj9uOjEwMDtpZihlPD0wKXJldHVybiB0aGlzO2NvbnN0IHI9e3RpbWVzdGFtcDpHKCksLi4udCxtZXNzYWdlOnQubWVzc2FnZT96KHQubWVzc2FnZSwyMDQ4KTp0Lm1lc3NhZ2V9O3JldHVybiB0aGlzLnUucHVzaChyKSx0aGlzLnUubGVuZ3RoPmUmJih0aGlzLnU9dGhpcy51LnNsaWNlKC1lKSx0aGlzLms/LnJlY29yZERyb3BwZWRFdmVudCgiYnVmZmVyX292ZXJmbG93IiwibG9nX2l0ZW0iKSksdGhpcy5SKCksdGhpc31nZXRMYXN0QnJlYWRjcnVtYigpe3JldHVybiB0aGlzLnVbdGhpcy51Lmxlbmd0aC0xXX1jbGVhckJyZWFkY3J1bWJzKCl7cmV0dXJuIHRoaXMudT1bXSx0aGlzLlIoKSx0aGlzfWFkZEF0dGFjaG1lbnQodCl7cmV0dXJuIHRoaXMuaC5wdXNoKHQpLHRoaXN9Y2xlYXJBdHRhY2htZW50cygpe3JldHVybiB0aGlzLmg9W10sdGhpc31nZXRTY29wZURhdGEoKXtyZXR1cm57YnJlYWRjcnVtYnM6dGhpcy51LGF0dGFjaG1lbnRzOnRoaXMuaCxjb250ZXh0czp0aGlzLl8sdGFnczp0aGlzLmwsYXR0cmlidXRlczp0aGlzLm0sZXh0cmE6dGhpcy52LHVzZXI6dGhpcy5wLGxldmVsOnRoaXMuaixmaW5nZXJwcmludDp0aGlzLlR8fFtdLGV2ZW50UHJvY2Vzc29yczp0aGlzLmkscHJvcGFnYXRpb25Db250ZXh0OnRoaXMuTixzZGtQcm9jZXNzaW5nTWV0YWRhdGE6dGhpcy5TLHRyYW5zYWN0aW9uTmFtZTp0aGlzLkEsc3Bhbjp0dCh0aGlzKSxjb252ZXJzYXRpb25JZDp0aGlzLk99fXNldFNES1Byb2Nlc3NpbmdNZXRhZGF0YSh0KXtyZXR1cm4gdGhpcy5TPUsodGhpcy5TLHQsMiksdGhpc31zZXRQcm9wYWdhdGlvbkNvbnRleHQodCl7cmV0dXJuIHRoaXMuTj10LHRoaXN9Z2V0UHJvcGFnYXRpb25Db250ZXh0KCl7cmV0dXJuIHRoaXMuTn1jYXB0dXJlRXhjZXB0aW9uKHQsbil7Y29uc3QgZT1uPy5ldmVudF9pZHx8RigpO2lmKCF0aGlzLmspcmV0dXJuIGgmJlMud2FybigiTm8gY2xpZW50IGNvbmZpZ3VyZWQgb24gc2NvcGUgLSB3aWxsIG5vdCBjYXB0dXJlIGV4Y2VwdGlvbiEiKSxlO2NvbnN0IHI9bmV3IEVycm9yKCJTZW50cnkgc3ludGhldGljRXhjZXB0aW9uIik7cmV0dXJuIHRoaXMuay5jYXB0dXJlRXhjZXB0aW9uKHQse29yaWdpbmFsRXhjZXB0aW9uOnQsc3ludGhldGljRXhjZXB0aW9uOnIsLi4ubixldmVudF9pZDplfSx0aGlzKSxlfWNhcHR1cmVNZXNzYWdlKHQsbixlKXtjb25zdCByPWU/LmV2ZW50X2lkfHxGKCk7aWYoIXRoaXMuaylyZXR1cm4gaCYmUy53YXJuKCJObyBjbGllbnQgY29uZmlndXJlZCBvbiBzY29wZSAtIHdpbGwgbm90IGNhcHR1cmUgbWVzc2FnZSEiKSxyO2NvbnN0IG89ZT8uc3ludGhldGljRXhjZXB0aW9uPz9uZXcgRXJyb3IodCk7cmV0dXJuIHRoaXMuay5jYXB0dXJlTWVzc2FnZSh0LG4se29yaWdpbmFsRXhjZXB0aW9uOnQsc3ludGhldGljRXhjZXB0aW9uOm8sLi4uZSxldmVudF9pZDpyfSx0aGlzKSxyfWNhcHR1cmVFdmVudCh0LG4pe2NvbnN0IGU9dC5ldmVudF9pZHx8bj8uZXZlbnRfaWR8fEYoKTtyZXR1cm4gdGhpcy5rPyh0aGlzLmsuY2FwdHVyZUV2ZW50KHQsey4uLm4sZXZlbnRfaWQ6ZX0sdGhpcyksZSk6KGgmJlMud2FybigiTm8gY2xpZW50IGNvbmZpZ3VyZWQgb24gc2NvcGUgLSB3aWxsIG5vdCBjYXB0dXJlIGV2ZW50ISIpLGUpfVIoKXt0aGlzLnR8fCh0aGlzLnQ9ITAsdGhpcy5vLmZvckVhY2godD0+e3QodGhpcyl9KSx0aGlzLnQ9ITEpfX1jb25zdCBldD10PT50IGluc3RhbmNlb2YgUHJvbWlzZSYmIXRbcnRdLHJ0PVN5bWJvbCgiY2hhaW5lZCBQcm9taXNlTGlrZSIpLG90PSh0LG4pPT57bGV0IGU9ITE7Zm9yKGNvbnN0IHIgaW4gdCl7aWYociBpbiBuKWNvbnRpbnVlO2U9ITA7Y29uc3Qgbz10W3JdOyJmdW5jdGlvbiI9PXR5cGVvZiBvP09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLHIse3ZhbHVlOiguLi5uKT0+by5hcHBseSh0LG4pLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6bltyXT1vfXJldHVybiBlJiZPYmplY3QuYXNzaWduKG4se1tydF06ITB9KSxufTtjbGFzcyBpdHtjb25zdHJ1Y3Rvcih0LG4pe2xldCBlLHI7ZT10fHxuZXcgbnQscj1ufHxuZXcgbnQsdGhpcy5QPVt7c2NvcGU6ZX1dLHRoaXMuRD1yfXdpdGhTY29wZSh0KXtjb25zdCBuPXRoaXMuVSgpO2xldCBlO3RyeXtlPXQobil9Y2F0Y2godCl7dGhyb3cgdGhpcy5MKCksdH1yZXR1cm4gVChlKT8oKHQsbixlKT0+e2NvbnN0IHI9dC50aGVuKHQ9PihuKHQpLHQpLHQ9Pnt0aHJvdyBlKHQpLHR9KTtyZXR1cm4gZXQocikmJmV0KHQpP3I6b3QodCxyKX0pKGUsKCk9PnRoaXMuTCgpLCgpPT50aGlzLkwoKSk6KHRoaXMuTCgpLGUpfWdldENsaWVudCgpe3JldHVybiB0aGlzLmdldFN0YWNrVG9wKCkuY2xpZW50fWdldFNjb3BlKCl7cmV0dXJuIHRoaXMuZ2V0U3RhY2tUb3AoKS5zY29wZX1nZXRJc29sYXRpb25TY29wZSgpe3JldHVybiB0aGlzLkR9Z2V0U3RhY2tUb3AoKXtyZXR1cm4gdGhpcy5QW3RoaXMuUC5sZW5ndGgtMV19VSgpe2NvbnN0IHQ9dGhpcy5nZXRTY29wZSgpLmNsb25lKCk7cmV0dXJuIHRoaXMuUC5wdXNoKHtjbGllbnQ6dGhpcy5nZXRDbGllbnQoKSxzY29wZTp0fSksdH1MKCl7cmV0dXJuISh0aGlzLlAubGVuZ3RoPD0xKSYmISF0aGlzLlAucG9wKCl9fWZ1bmN0aW9uIHN0KCl7Y29uc3QgdD1tKGwoKSk7cmV0dXJuIHQuc3RhY2s9dC5zdGFja3x8bmV3IGl0KGcoImRlZmF1bHRDdXJyZW50U2NvcGUiLCgpPT5uZXcgbnQpLGcoImRlZmF1bHRJc29sYXRpb25TY29wZSIsKCk9Pm5ldyBudCkpfWZ1bmN0aW9uIGN0KHQpe3JldHVybiBzdCgpLndpdGhTY29wZSh0KX1mdW5jdGlvbiB1dCh0LG4pe2NvbnN0IGU9c3QoKTtyZXR1cm4gZS53aXRoU2NvcGUoKCk9PihlLmdldFN0YWNrVG9wKCkuc2NvcGU9dCxuKHQpKSl9ZnVuY3Rpb24gYXQodCl7cmV0dXJuIHN0KCkud2l0aFNjb3BlKCgpPT50KHN0KCkuZ2V0SXNvbGF0aW9uU2NvcGUoKSkpfWZ1bmN0aW9uIGZ0KHQpe2NvbnN0IG49bSh0KTtyZXR1cm4gbi5hY3M/bi5hY3M6e3dpdGhJc29sYXRpb25TY29wZTphdCx3aXRoU2NvcGU6Y3Qsd2l0aFNldFNjb3BlOnV0LHdpdGhTZXRJc29sYXRpb25TY29wZToodCxuKT0+YXQobiksZ2V0Q3VycmVudFNjb3BlOigpPT5zdCgpLmdldFNjb3BlKCksZ2V0SXNvbGF0aW9uU2NvcGU6KCk9PnN0KCkuZ2V0SXNvbGF0aW9uU2NvcGUoKX19ZnVuY3Rpb24gaHQoKXtyZXR1cm4gZnQobCgpKS5nZXRDdXJyZW50U2NvcGUoKS5nZXRDbGllbnQoKX1mdW5jdGlvbiBwdCh0KXtpZih0KXtpZigib2JqZWN0Ij09dHlwZW9mIHQmJiJkZXJlZiJpbiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgdC5kZXJlZil0cnl7cmV0dXJuIHQuZGVyZWYoKX1jYXRjaHtyZXR1cm59cmV0dXJuIHR9fWZ1bmN0aW9uIGR0KHQpe2NvbnN0IG49dDtyZXR1cm57c2NvcGU6bi5fc2VudHJ5U2NvcGUsaXNvbGF0aW9uU2NvcGU6cHQobi5fc2VudHJ5SXNvbGF0aW9uU2NvcGUpfX1jb25zdCBsdD0ic2VudHJ5LSI7ZnVuY3Rpb24gbXQodCl7Y29uc3Qgbj1mdW5jdGlvbih0KXtpZighdHx8IUModCkmJiFBcnJheS5pc0FycmF5KHQpKXJldHVybjtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB0LnJlZHVjZSgodCxuKT0+e2NvbnN0IGU9Z3Qobik7cmV0dXJuIE9iamVjdC5lbnRyaWVzKGUpLmZvckVhY2goKFtuLGVdKT0+e3Rbbl09ZX0pLHR9LHt9KTtyZXR1cm4gZ3QodCl9KHQpO2lmKCFuKXJldHVybjtjb25zdCBlPU9iamVjdC5lbnRyaWVzKG4pLnJlZHVjZSgodCxbbixlXSk9PntpZihuLnN0YXJ0c1dpdGgobHQpKXt0W24uc2xpY2UoNyldPWV9cmV0dXJuIHR9LHt9KTtyZXR1cm4gT2JqZWN0LmtleXMoZSkubGVuZ3RoPjA/ZTp2b2lkIDB9ZnVuY3Rpb24gZ3QodCl7cmV0dXJuIHQuc3BsaXQoIiwiKS5tYXAodD0+e2NvbnN0IG49dC5pbmRleE9mKCI9Iik7aWYoLTE9PT1uKXJldHVybltdO3JldHVyblt0LnNsaWNlKDAsbiksdC5zbGljZShuKzEpXS5tYXAodD0+e3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHQudHJpbSgpKX1jYXRjaHtyZXR1cm59fSl9KS5yZWR1Y2UoKHQsW24sZV0pPT4obiYmZSYmKHRbbl09ZSksdCkse30pfWNvbnN0IHl0PS9ebyhcZCspXC4vO2Z1bmN0aW9uIGJ0KHQsbj0hMSl7Y29uc3R7aG9zdDplLHBhdGg6cixwYXNzOm8scG9ydDppLHByb2plY3RJZDpzLHByb3RvY29sOmMscHVibGljS2V5OnV9PXQ7cmV0dXJuYCR7Y306Ly8ke3V9JHtuJiZvP2A6JHtvfWA6IiJ9QCR7ZX0ke2k/YDoke2l9YDoiIn0vJHtyP2Ake3J9L2A6cn0ke3N9YH1mdW5jdGlvbiB2dCh0KXtjb25zdCBuPXQuZ2V0T3B0aW9ucygpLHtob3N0OmV9PXQuZ2V0RHNuKCl8fHt9O2xldCByO3JldHVybiBuLm9yZ0lkP3I9U3RyaW5nKG4ub3JnSWQpOmUmJihyPWZ1bmN0aW9uKHQpe2NvbnN0IG49dC5tYXRjaCh5dCk7cmV0dXJuIG4/LlsxXX0oZSkpLHJ9ZnVuY3Rpb24gX3QodCl7Y29uc3R7c3BhbklkOm4sdHJhY2VJZDplLGlzUmVtb3RlOnJ9PXQuc3BhbkNvbnRleHQoKSxvPXI/bjpFdCh0KS5wYXJlbnRfc3Bhbl9pZCxpPWR0KHQpLnNjb3BlO3JldHVybntwYXJlbnRfc3Bhbl9pZDpvLHNwYW5faWQ6cj9pPy5nZXRQcm9wYWdhdGlvbkNvbnRleHQoKS5wcm9wYWdhdGlvblNwYW5JZHx8cSgpOm4sdHJhY2VfaWQ6ZX19ZnVuY3Rpb24gd3QodCl7cmV0dXJuIHQmJnQubGVuZ3RoPjA/dC5tYXAoKHtjb250ZXh0OntzcGFuSWQ6dCx0cmFjZUlkOm4sdHJhY2VGbGFnczplLC4uLnJ9LGF0dHJpYnV0ZXM6b30pPT4oe3NwYW5faWQ6dCx0cmFjZV9pZDpuLHNhbXBsZWQ6MT09PWUsYXR0cmlidXRlczpvLC4uLnJ9KSk6dm9pZCAwfWZ1bmN0aW9uIFN0KHQpe3JldHVybiJudW1iZXIiPT10eXBlb2YgdD8kdCh0KTpBcnJheS5pc0FycmF5KHQpP3RbMF0rdFsxXS8xZTk6dCBpbnN0YW5jZW9mIERhdGU/JHQodC5nZXRUaW1lKCkpOkooKX1mdW5jdGlvbiAkdCh0KXtyZXR1cm4gdD45OTk5OTk5OTk5P3QvMWUzOnR9ZnVuY3Rpb24gRXQodCl7aWYoZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQuZ2V0U3BhbkpTT059KHQpKXJldHVybiB0LmdldFNwYW5KU09OKCk7Y29uc3R7c3BhbklkOm4sdHJhY2VJZDplfT10LnNwYW5Db250ZXh0KCk7aWYoZnVuY3Rpb24odCl7Y29uc3Qgbj10O3JldHVybiEhKG4uYXR0cmlidXRlcyYmbi5zdGFydFRpbWUmJm4ubmFtZSYmbi5lbmRUaW1lJiZuLnN0YXR1cyl9KHQpKXtjb25zdHthdHRyaWJ1dGVzOnIsc3RhcnRUaW1lOm8sbmFtZTppLGVuZFRpbWU6cyxzdGF0dXM6YyxsaW5rczp1fT10O3JldHVybntzcGFuX2lkOm4sdHJhY2VfaWQ6ZSxkYXRhOnIsZGVzY3JpcHRpb246aSxwYXJlbnRfc3Bhbl9pZDoicGFyZW50U3BhbklkImluIHQ/dC5wYXJlbnRTcGFuSWQ6InBhcmVudFNwYW5Db250ZXh0ImluIHQ/dC5wYXJlbnRTcGFuQ29udGV4dD8uc3BhbklkOnZvaWQgMCxzdGFydF90aW1lc3RhbXA6U3QobyksdGltZXN0YW1wOlN0KHMpfHx2b2lkIDAsc3RhdHVzOnh0KGMpLG9wOnJbInNlbnRyeS5vcCJdLG9yaWdpbjpyWyJzZW50cnkub3JpZ2luIl0sbGlua3M6d3QodSl9fXJldHVybntzcGFuX2lkOm4sdHJhY2VfaWQ6ZSxzdGFydF90aW1lc3RhbXA6MCxkYXRhOnt9fX1mdW5jdGlvbiB4dCh0KXtpZih0JiYwIT09dC5jb2RlKXJldHVybiAxPT09dC5jb2RlPyJvayI6dC5tZXNzYWdlfHwiaW50ZXJuYWxfZXJyb3IifWZ1bmN0aW9uIE50KHQpe3JldHVybiB0Ll9zZW50cnlSb290U3Bhbnx8dH1mdW5jdGlvbiBqdCh0KXtjb25zdCBuPWh0KCk7aWYoIW4pcmV0dXJue307Y29uc3QgZT1OdCh0KSxyPUV0KGUpLG89ci5kYXRhLGk9ZS5zcGFuQ29udGV4dCgpLnRyYWNlU3RhdGUscz1pPy5nZXQoInNlbnRyeS5zYW1wbGVfcmF0ZSIpPz9vWyJzZW50cnkuc2FtcGxlX3JhdGUiXT8/b1sic2VudHJ5LnByZXZpb3VzX3RyYWNlX3NhbXBsZV9yYXRlIl07ZnVuY3Rpb24gYyh0KXtyZXR1cm4ibnVtYmVyIiE9dHlwZW9mIHMmJiJzdHJpbmciIT10eXBlb2Ygc3x8KHQuc2FtcGxlX3JhdGU9YCR7c31gKSx0fWNvbnN0IHU9ZS5fZnJvemVuRHNjO2lmKHUpcmV0dXJuIGModSk7Y29uc3QgYT1pPy5nZXQoInNlbnRyeS5kc2MiKSxmPWEmJm10KGEpO2lmKGYpcmV0dXJuIGMoZik7Y29uc3QgaD1mdW5jdGlvbih0LG4pe2NvbnN0IGU9bi5nZXRPcHRpb25zKCkse3B1YmxpY0tleTpyfT1uLmdldERzbigpfHx7fSxvPXtlbnZpcm9ubWVudDplLmVudmlyb25tZW50fHwicHJvZHVjdGlvbiIscmVsZWFzZTplLnJlbGVhc2UscHVibGljX2tleTpyLHRyYWNlX2lkOnQsb3JnX2lkOnZ0KG4pfTtyZXR1cm4gbi5lbWl0KCJjcmVhdGVEc2MiLG8pLG99KHQuc3BhbkNvbnRleHQoKS50cmFjZUlkLG4pLHA9b1sic2VudHJ5LnNvdXJjZSJdLGQ9ci5kZXNjcmlwdGlvbjtyZXR1cm4idXJsIiE9PXAmJmQmJihoLnRyYW5zYWN0aW9uPWQpLGZ1bmN0aW9uKCl7aWYoImJvb2xlYW4iPT10eXBlb2YgX19TRU5UUllfVFJBQ0lOR19fJiYhX19TRU5UUllfVFJBQ0lOR19fKXJldHVybiExO2NvbnN0IHQ9aHQoKT8uZ2V0T3B0aW9ucygpO3JldHVybiEoIXR8fG51bGw9PXQudHJhY2VzU2FtcGxlUmF0ZSYmIXQudHJhY2VzU2FtcGxlcil9KCkmJihoLnNhbXBsZWQ9U3RyaW5nKGZ1bmN0aW9uKHQpe2NvbnN0e3RyYWNlRmxhZ3M6bn09dC5zcGFuQ29udGV4dCgpO3JldHVybiAxPT09bn0oZSkpLGguc2FtcGxlX3JhbmQ9aT8uZ2V0KCJzZW50cnkuc2FtcGxlX3JhbmQiKT8/ZHQoZSkuc2NvcGU/LmdldFByb3BhZ2F0aW9uQ29udGV4dCgpLnNhbXBsZVJhbmQudG9TdHJpbmcoKSksYyhoKSxuLmVtaXQoImNyZWF0ZURzYyIsaCxlKSxofWZ1bmN0aW9uIEN0KHQsbj0xMDAsZT0xLzApe3RyeXtyZXR1cm4gQXQoIiIsdCxuLGUpfWNhdGNoKHQpe3JldHVybntFUlJPUjpgKipub24tc2VyaWFsaXphYmxlKiogKCR7dH0pYH19fWZ1bmN0aW9uIEF0KHQsbixlPTEvMCxyPTEvMCxvPWZ1bmN0aW9uKCl7Y29uc3QgdD1uZXcgV2Vha1NldDtmdW5jdGlvbiBuKG4pe3JldHVybiEhdC5oYXMobil8fCh0LmFkZChuKSwhMSl9ZnVuY3Rpb24gZShuKXt0LmRlbGV0ZShuKX1yZXR1cm5bbixlXX0oKSl7Y29uc3RbaSxzXT1vO2lmKG51bGw9PW58fFsiYm9vbGVhbiIsInN0cmluZyJdLmluY2x1ZGVzKHR5cGVvZiBuKXx8Im51bWJlciI9PXR5cGVvZiBuJiZOdW1iZXIuaXNGaW5pdGUobikpcmV0dXJuIG47Y29uc3QgYz1mdW5jdGlvbih0LG4pe3RyeXtpZigiZG9tYWluIj09PXQmJm4mJiJvYmplY3QiPT10eXBlb2YgbiYmbi5NKXJldHVybiJbRG9tYWluXSI7aWYoImRvbWFpbkVtaXR0ZXIiPT09dClyZXR1cm4iW0RvbWFpbkVtaXR0ZXJdIjtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbCYmbj09PWdsb2JhbClyZXR1cm4iW0dsb2JhbF0iO2lmKCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZuPT09d2luZG93KXJldHVybiJbV2luZG93XSI7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudCYmbj09PWRvY3VtZW50KXJldHVybiJbRG9jdW1lbnRdIjtpZigib2JqZWN0Ij09dHlwZW9mKGU9bikmJm51bGwhPT1lJiYoZS5fX2lzVnVlfHxlLkJ8fGUuX192X2lzVk5vZGUpKXJldHVybiBmdW5jdGlvbih0KXtyZXR1cm4iX192X2lzVk5vZGUiaW4gdCYmdC5fX3ZfaXNWTm9kZT8iW1Z1ZVZOb2RlXSI6IltWdWVWaWV3TW9kZWxdIn0obik7aWYoZnVuY3Rpb24odCl7cmV0dXJuIEEodCkmJiJuYXRpdmVFdmVudCJpbiB0JiYicHJldmVudERlZmF1bHQiaW4gdCYmInN0b3BQcm9wYWdhdGlvbiJpbiB0fShuKSlyZXR1cm4iW1N5bnRoZXRpY0V2ZW50XSI7aWYoIm51bWJlciI9PXR5cGVvZiBuJiYhTnVtYmVyLmlzRmluaXRlKG4pKXJldHVybmBbJHtufV1gO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBuKXJldHVybmBbRnVuY3Rpb246ICR7ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0JiYiZnVuY3Rpb24iPT10eXBlb2YgdCYmdC5uYW1lfHx4fWNhdGNoe3JldHVybiB4fX0obil9XWA7aWYoInN5bWJvbCI9PXR5cGVvZiBuKXJldHVybmBbJHtTdHJpbmcobil9XWA7aWYoImJpZ2ludCI9PXR5cGVvZiBuKXJldHVybmBbQmlnSW50OiAke1N0cmluZyhuKX1dYDtjb25zdCByPWZ1bmN0aW9uKHQpe2NvbnN0IG49T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpO3JldHVybiBuPy5jb25zdHJ1Y3Rvcj9uLmNvbnN0cnVjdG9yLm5hbWU6Im51bGwgcHJvdG90eXBlIn0obik7cmV0dXJuL15IVE1MKFx3KilFbGVtZW50JC8udGVzdChyKT9gW0hUTUxFbGVtZW50OiAke3J9XWA6YFtvYmplY3QgJHtyfV1gfWNhdGNoKHQpe3JldHVybmAqKm5vbi1zZXJpYWxpemFibGUqKiAoJHt0fSlgfXZhciBlfSh0LG4pO2lmKCFjLnN0YXJ0c1dpdGgoIltvYmplY3QgIikpcmV0dXJuIGM7aWYobi5fX3NlbnRyeV9za2lwX25vcm1hbGl6YXRpb25fXylyZXR1cm4gbjtjb25zdCB1PSJudW1iZXIiPT10eXBlb2Ygbi5fX3NlbnRyeV9vdmVycmlkZV9ub3JtYWxpemF0aW9uX2RlcHRoX18/bi5fX3NlbnRyeV9vdmVycmlkZV9ub3JtYWxpemF0aW9uX2RlcHRoX186ZTtpZigwPT09dSlyZXR1cm4gYy5yZXBsYWNlKCJvYmplY3QgIiwiIik7aWYoaShuKSlyZXR1cm4iW0NpcmN1bGFyIH5dIjtjb25zdCBhPW47aWYoYSYmImZ1bmN0aW9uIj09dHlwZW9mIGEudG9KU09OKXRyeXtyZXR1cm4gQXQoIiIsYS50b0pTT04oKSx1LTEscixvKX1jYXRjaHt9Y29uc3QgZj1BcnJheS5pc0FycmF5KG4pP1tdOnt9O2xldCBoPTA7Y29uc3QgcD1SKG4pO2Zvcihjb25zdCB0IGluIHApe2lmKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocCx0KSljb250aW51ZTtpZihoPj1yKXtmW3RdPSJbTWF4UHJvcGVydGllcyB+XSI7YnJlYWt9Y29uc3Qgbj1wW3RdO2ZbdF09QXQodCxuLHUtMSxyLG8pLGgrK31yZXR1cm4gcyhuKSxmfWZ1bmN0aW9uIFR0KHQsbil7Y29uc3QgZT1uLnJlcGxhY2UoL1xcL2csIi8iKS5yZXBsYWNlKC9bfFxce30oKVtcXV4kKyo/Ll0vZywiXFwkJiIpO2xldCByPXQ7dHJ5e3I9ZGVjb2RlVVJJKHQpfWNhdGNoe31yZXR1cm4gci5yZXBsYWNlKC9cXC9nLCIvIikucmVwbGFjZSgvd2VicGFjazpcLz8vZywiIikucmVwbGFjZShuZXcgUmVnRXhwKGAoZmlsZTovLyk/Lyoke2V9LypgLCJpZyIpLCJhcHA6Ly8vIil9ZnVuY3Rpb24ga3QodCxuPVtdKXtyZXR1cm5bdCxuXX1mdW5jdGlvbiBJdCh0LG4pe2NvbnN0IGU9dFsxXTtmb3IoY29uc3QgdCBvZiBlKXtpZihuKHQsdFswXS50eXBlKSlyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBPdCh0KXtjb25zdCBuPW0ocCk7cmV0dXJuIG4uZW5jb2RlUG9seWZpbGw/bi5lbmNvZGVQb2x5ZmlsbCh0KToobmV3IFRleHRFbmNvZGVyKS5lbmNvZGUodCl9ZnVuY3Rpb24gUnQodCl7Y29uc3RbbixlXT10O2xldCByPUpTT04uc3RyaW5naWZ5KG4pO2Z1bmN0aW9uIG8odCl7InN0cmluZyI9PXR5cGVvZiByP3I9InN0cmluZyI9PXR5cGVvZiB0P3IrdDpbT3QociksdF06ci5wdXNoKCJzdHJpbmciPT10eXBlb2YgdD9PdCh0KTp0KX1mb3IoY29uc3QgdCBvZiBlKXtjb25zdFtuLGVdPXQ7aWYobyhgXG4ke0pTT04uc3RyaW5naWZ5KG4pfVxuYCksInN0cmluZyI9PXR5cGVvZiBlfHxlIGluc3RhbmNlb2YgVWludDhBcnJheSlvKGUpO2Vsc2V7bGV0IHQ7dHJ5e3Q9SlNPTi5zdHJpbmdpZnkoZSl9Y2F0Y2h7dD1KU09OLnN0cmluZ2lmeShDdChlKSl9byh0KX19cmV0dXJuInN0cmluZyI9PXR5cGVvZiByP3I6ZnVuY3Rpb24odCl7Y29uc3Qgbj10LnJlZHVjZSgodCxuKT0+dCtuLmxlbmd0aCwwKSxlPW5ldyBVaW50OEFycmF5KG4pO2xldCByPTA7Zm9yKGNvbnN0IG4gb2YgdCllLnNldChuLHIpLHIrPW4ubGVuZ3RoO3JldHVybiBlfShyKX1jb25zdCBQdD17c2Vzc2lvbnM6InNlc3Npb24iLGV2ZW50OiJlcnJvciIsY2xpZW50X3JlcG9ydDoiaW50ZXJuYWwiLHVzZXJfcmVwb3J0OiJkZWZhdWx0Iixwcm9maWxlX2NodW5rOiJwcm9maWxlIixyZXBsYXlfZXZlbnQ6InJlcGxheSIscmVwbGF5X3JlY29yZGluZzoicmVwbGF5IixjaGVja19pbjoibW9uaXRvciIscmF3X3NlY3VyaXR5OiJzZWN1cml0eSIsbG9nOiJsb2dfaXRlbSIsdHJhY2VfbWV0cmljOiJtZXRyaWMifTtmdW5jdGlvbiBEdCh0KXtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHQgaW4gUHR9KHQpP1B0W3RdOnR9ZnVuY3Rpb24gVXQodCl7aWYoIXQ/LnNkaylyZXR1cm47Y29uc3R7bmFtZTpuLHZlcnNpb246ZX09dC5zZGs7cmV0dXJue25hbWU6bix2ZXJzaW9uOmV9fWZ1bmN0aW9uIEx0KHQsbixlLHIpe2NvbnN0IG89VXQoZSksaT10LnR5cGUmJiJyZXBsYXlfZXZlbnQiIT09dC50eXBlP3QudHlwZToiZXZlbnQiOyFmdW5jdGlvbih0LG4pe2lmKCFuKXJldHVybiB0O2NvbnN0IGU9dC5zZGt8fHt9O3Quc2RrPXsuLi5lLG5hbWU6ZS5uYW1lfHxuLm5hbWUsdmVyc2lvbjplLnZlcnNpb258fG4udmVyc2lvbixpbnRlZ3JhdGlvbnM6Wy4uLnQuc2RrPy5pbnRlZ3JhdGlvbnN8fFtdLC4uLm4uaW50ZWdyYXRpb25zfHxbXV0scGFja2FnZXM6Wy4uLnQuc2RrPy5wYWNrYWdlc3x8W10sLi4ubi5wYWNrYWdlc3x8W11dLHNldHRpbmdzOnQuc2RrPy5zZXR0aW5nc3x8bi5zZXR0aW5ncz97Li4udC5zZGs/LnNldHRpbmdzLC4uLm4uc2V0dGluZ3N9OnZvaWQgMH19KHQsZT8uc2RrKTtjb25zdCBzPWZ1bmN0aW9uKHQsbixlLHIpe2NvbnN0IG89dC5zZGtQcm9jZXNzaW5nTWV0YWRhdGE/LmR5bmFtaWNTYW1wbGluZ0NvbnRleHQ7cmV0dXJue2V2ZW50X2lkOnQuZXZlbnRfaWQsc2VudF9hdDoobmV3IERhdGUpLnRvSVNPU3RyaW5nKCksLi4ubiYme3NkazpufSwuLi4hIWUmJnImJntkc246YnQocil9LC4uLm8mJnt0cmFjZTpvfX19KHQsbyxyLG4pO2RlbGV0ZSB0LnNka1Byb2Nlc3NpbmdNZXRhZGF0YTtyZXR1cm4ga3QocyxbW3t0eXBlOml9LHRdXSl9Y29uc3QgTXQ9Il9fU0VOVFJZX1NVUFBSRVNTX1RSQUNJTkdfXyI7ZnVuY3Rpb24gQnQodCl7Y29uc3Qgbj1mdChsKCkpO3JldHVybiBuLnN1cHByZXNzVHJhY2luZz9uLnN1cHByZXNzVHJhY2luZyh0KTpmdW5jdGlvbiguLi50KXtjb25zdCBuPWZ0KGwoKSk7aWYoMj09PXQubGVuZ3RoKXtjb25zdFtlLHJdPXQ7cmV0dXJuIGU/bi53aXRoU2V0U2NvcGUoZSxyKTpuLndpdGhTY29wZShyKX1yZXR1cm4gbi53aXRoU2NvcGUodFswXSl9KG49PntuLnNldFNES1Byb2Nlc3NpbmdNZXRhZGF0YSh7W010XTohMH0pO2NvbnN0IGU9dCgpO3JldHVybiBuLnNldFNES1Byb2Nlc3NpbmdNZXRhZGF0YSh7W010XTp2b2lkIDB9KSxlfSl9Y2xhc3MgV3R7Y29uc3RydWN0b3IodCl7dGhpcy5XPTAsdGhpcy5GPVtdLHRoaXMuRyh0KX10aGVuKHQsbil7cmV0dXJuIG5ldyBXdCgoZSxyKT0+e3RoaXMuRi5wdXNoKFshMSxuPT57aWYodCl0cnl7ZSh0KG4pKX1jYXRjaCh0KXtyKHQpfWVsc2UgZShuKX0sdD0+e2lmKG4pdHJ5e2Uobih0KSl9Y2F0Y2godCl7cih0KX1lbHNlIHIodCl9XSksdGhpcy5IKCl9KX1jYXRjaCh0KXtyZXR1cm4gdGhpcy50aGVuKHQ9PnQsdCl9ZmluYWxseSh0KXtyZXR1cm4gbmV3IFd0KChuLGUpPT57bGV0IHIsbztyZXR1cm4gdGhpcy50aGVuKG49PntvPSExLHI9bix0JiZ0KCl9LG49PntvPSEwLHI9bix0JiZ0KCl9KS50aGVuKCgpPT57bz9lKHIpOm4ocil9KX0pfUgoKXtpZigwPT09dGhpcy5XKXJldHVybjtjb25zdCB0PXRoaXMuRi5zbGljZSgpO3RoaXMuRj1bXSx0LmZvckVhY2godD0+e3RbMF18fCgxPT09dGhpcy5XJiZ0WzFdKHRoaXMuSiksMj09PXRoaXMuVyYmdFsyXSh0aGlzLkopLHRbMF09ITApfSl9Ryh0KXtjb25zdCBuPSh0LG4pPT57MD09PXRoaXMuVyYmKFQobik/bi50aGVuKGUscik6KHRoaXMuVz10LHRoaXMuSj1uLHRoaXMuSCgpKSl9LGU9dD0+e24oMSx0KX0scj10PT57bigyLHQpfTt0cnl7dChlLHIpfWNhdGNoKHQpe3IodCl9fX1mdW5jdGlvbiB6dCh0LG4pe2NvbnN0e2ZpbmdlcnByaW50OmUsc3BhbjpyLGJyZWFkY3J1bWJzOm8sc2RrUHJvY2Vzc2luZ01ldGFkYXRhOml9PW47IWZ1bmN0aW9uKHQsbil7Y29uc3R7ZXh0cmE6ZSx0YWdzOnIsdXNlcjpvLGNvbnRleHRzOmksbGV2ZWw6cyx0cmFuc2FjdGlvbk5hbWU6Y309bjtPYmplY3Qua2V5cyhlKS5sZW5ndGgmJih0LmV4dHJhPXsuLi5lLC4uLnQuZXh0cmF9KTtPYmplY3Qua2V5cyhyKS5sZW5ndGgmJih0LnRhZ3M9ey4uLnIsLi4udC50YWdzfSk7T2JqZWN0LmtleXMobykubGVuZ3RoJiYodC51c2VyPXsuLi5vLC4uLnQudXNlcn0pO09iamVjdC5rZXlzKGkpLmxlbmd0aCYmKHQuY29udGV4dHM9ey4uLmksLi4udC5jb250ZXh0c30pO3MmJih0LmxldmVsPXMpO2MmJiJ0cmFuc2FjdGlvbiIhPT10LnR5cGUmJih0LnRyYW5zYWN0aW9uPWMpfSh0LG4pLHImJmZ1bmN0aW9uKHQsbil7dC5jb250ZXh0cz17dHJhY2U6X3QobiksLi4udC5jb250ZXh0c30sdC5zZGtQcm9jZXNzaW5nTWV0YWRhdGE9e2R5bmFtaWNTYW1wbGluZ0NvbnRleHQ6anQobiksLi4udC5zZGtQcm9jZXNzaW5nTWV0YWRhdGF9O2NvbnN0IGU9TnQobikscj1FdChlKS5kZXNjcmlwdGlvbjtyJiYhdC50cmFuc2FjdGlvbiYmInRyYW5zYWN0aW9uIj09PXQudHlwZSYmKHQudHJhbnNhY3Rpb249cil9KHQsciksZnVuY3Rpb24odCxuKXt0LmZpbmdlcnByaW50PXQuZmluZ2VycHJpbnQ/QXJyYXkuaXNBcnJheSh0LmZpbmdlcnByaW50KT90LmZpbmdlcnByaW50Olt0LmZpbmdlcnByaW50XTpbXSxuJiYodC5maW5nZXJwcmludD10LmZpbmdlcnByaW50LmNvbmNhdChuKSk7dC5maW5nZXJwcmludC5sZW5ndGh8fGRlbGV0ZSB0LmZpbmdlcnByaW50fSh0LGUpLGZ1bmN0aW9uKHQsbil7Y29uc3QgZT1bLi4udC5icmVhZGNydW1ic3x8W10sLi4ubl07dC5icmVhZGNydW1icz1lLmxlbmd0aD9lOnZvaWQgMH0odCxvKSxmdW5jdGlvbih0LG4pe3Quc2RrUHJvY2Vzc2luZ01ldGFkYXRhPXsuLi50LnNka1Byb2Nlc3NpbmdNZXRhZGF0YSwuLi5ufX0odCxpKX1jb25zdCBGdD1TeW1ib2wuZm9yKCJTZW50cnlCdWZmZXJGdWxsRXJyb3IiKTtmdW5jdGlvbiBHdCh0PTEwMCl7Y29uc3Qgbj1uZXcgU2V0O2Z1bmN0aW9uIGUodCl7bi5kZWxldGUodCl9cmV0dXJue2dldCAkKCl7cmV0dXJuIEFycmF5LmZyb20obil9LGFkZDpmdW5jdGlvbihyKXtpZighKG4uc2l6ZTx0KSlyZXR1cm4gbz1GdCxuZXcgV3QoKHQsbik9PntuKG8pfSk7dmFyIG87Y29uc3QgaT1yKCk7cmV0dXJuIG4uYWRkKGkpLGkudGhlbigoKT0+ZShpKSwoKT0+ZShpKSksaX0sZHJhaW46ZnVuY3Rpb24odCl7aWYoIW4uc2l6ZSlyZXR1cm4gZT0hMCxuZXcgV3QodD0+e3QoZSl9KTt2YXIgZTtjb25zdCByPVByb21pc2UuYWxsU2V0dGxlZChBcnJheS5mcm9tKG4pKS50aGVuKCgpPT4hMCk7aWYoIXQpcmV0dXJuIHI7Y29uc3Qgbz1bcixuZXcgUHJvbWlzZShuPT57cmV0dXJuIm9iamVjdCI9PXR5cGVvZihlPXNldFRpbWVvdXQoKCk9Pm4oITEpLHQpKSYmImZ1bmN0aW9uIj09dHlwZW9mIGUudW5yZWYmJmUudW5yZWYoKSxlO3ZhciBlfSldO3JldHVybiBQcm9taXNlLnJhY2Uobyl9fX1mdW5jdGlvbiBIdCh0LHtzdGF0dXNDb2RlOm4saGVhZGVyczplfSxyPVcoKSl7Y29uc3Qgbz17Li4udH0saT1lPy5bIngtc2VudHJ5LXJhdGUtbGltaXRzIl0scz1lPy5bInJldHJ5LWFmdGVyIl07aWYoaSlmb3IoY29uc3QgdCBvZiBpLnRyaW0oKS5zcGxpdCgiLCIpKXtjb25zdFtuLGUsLCxpXT10LnNwbGl0KCI6Iiw1KSxzPXBhcnNlSW50KG4sMTApLGM9MWUzKihpc05hTihzKT82MDpzKTtpZihlKWZvcihjb25zdCB0IG9mIGUuc3BsaXQoIjsiKSkibWV0cmljX2J1Y2tldCI9PT10JiZpJiYhaS5zcGxpdCgiOyIpLmluY2x1ZGVzKCJjdXN0b20iKXx8KG9bdF09citjKTtlbHNlIG8uYWxsPXIrY31lbHNlIHM/by5hbGw9citmdW5jdGlvbih0LG49VygpKXtjb25zdCBlPXBhcnNlSW50KGAke3R9YCwxMCk7aWYoIWlzTmFOKGUpKXJldHVybiAxZTMqZTtjb25zdCByPURhdGUucGFyc2UoYCR7dH1gKTtyZXR1cm4gaXNOYU4ocik/NmU0OnItbn0ocyxyKTo0Mjk9PT1uJiYoby5hbGw9cis2ZTQpO3JldHVybiBvfWZ1bmN0aW9uIEp0KHQsbixlPUd0KHQuYnVmZmVyU2l6ZXx8NjQpKXtsZXQgcj17fTtyZXR1cm57c2VuZDpmdW5jdGlvbih0KXtjb25zdCBvPVtdO2lmKEl0KHQsKHQsbik9Pntjb25zdCBlPUR0KG4pOyhmdW5jdGlvbih0LG4sZT1XKCkpe3JldHVybiBmdW5jdGlvbih0LG4pe3JldHVybiB0W25dfHx0LmFsbHx8MH0odCxuKT5lfSkocixlKXx8by5wdXNoKHQpfSksMD09PW8ubGVuZ3RoKXJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO2NvbnN0IGk9a3QodFswXSxvKSxzPXQ9PnshZnVuY3Rpb24odCxuKXtyZXR1cm4gSXQodCwodCxlKT0+bi5pbmNsdWRlcyhlKSl9KGksWyJjbGllbnRfcmVwb3J0Il0pP0l0KGksKHQsbik9Pnt9KTpoJiZTLndhcm4oYERyb3BwaW5nIGNsaWVudCByZXBvcnQuIFdpbGwgbm90IHNlbmQgb3V0Y29tZXMgKHJlYXNvbjogJHt0fSkuYCl9O3JldHVybiBlLmFkZCgoKT0+bih7Ym9keTpSdChpKX0pLnRoZW4odD0+NDEzPT09dC5zdGF0dXNDb2RlPyhoJiZTLmVycm9yKCJTZW50cnkgcmVzcG9uZGVkIHdpdGggc3RhdHVzIGNvZGUgNDEzLiBFbnZlbG9wZSB3YXMgZGlzY2FyZGVkIGR1ZSB0byBleGNlZWRpbmcgc2l6ZSBsaW1pdHMuIikscygic2VuZF9lcnJvciIpLHQpOihoJiZ2b2lkIDAhPT10LnN0YXR1c0NvZGUmJih0LnN0YXR1c0NvZGU8MjAwfHx0LnN0YXR1c0NvZGU+PTMwMCkmJlMud2FybihgU2VudHJ5IHJlc3BvbmRlZCB3aXRoIHN0YXR1cyBjb2RlICR7dC5zdGF0dXNDb2RlfSB0byBzZW50IGV2ZW50LmApLHI9SHQocix0KSx0KSx0PT57dGhyb3cgcygibmV0d29ya19lcnJvciIpLGgmJlMuZXJyb3IoIkVuY291bnRlcmVkIGVycm9yIHJ1bm5pbmcgdHJhbnNwb3J0IHJlcXVlc3Q6Iix0KSx0fSkpLnRoZW4odD0+dCx0PT57aWYodD09PUZ0KXJldHVybiBoJiZTLmVycm9yKCJTa2lwcGVkIHNlbmRpbmcgZXZlbnQgYmVjYXVzZSBidWZmZXIgaXMgZnVsbC4iKSxzKCJxdWV1ZV9vdmVyZmxvdyIpLFByb21pc2UucmVzb2x2ZSh7fSk7dGhyb3cgdH0pfSxmbHVzaDp0PT5lLmRyYWluKHQpfX1jb25zdCBZdD0vXihcUys6XFx8XC8/KShbXHNcU10qPykoKD86XC57MSwyfXxbXi9cXF0rP3wpKFwuW14uL1xcXSp8KSkoPzpbL1xcXSopJC87ZnVuY3Rpb24gVnQodCl7Y29uc3Qgbj1mdW5jdGlvbih0KXtjb25zdCBuPXQubGVuZ3RoPjEwMjQ/YDx0cnVuY2F0ZWQ+JHt0LnNsaWNlKC0xMDI0KX1gOnQsZT1ZdC5leGVjKG4pO3JldHVybiBlP2Uuc2xpY2UoMSk6W119KHQpLGU9blswXXx8IiI7bGV0IHI9blsxXTtyZXR1cm4gZXx8cj8ociYmKHI9ci5zbGljZSgwLHIubGVuZ3RoLTEpKSxlK3IpOiIuIn1mdW5jdGlvbiBLdCh0LG49ITEpe3JldHVybiEobnx8dCYmIXQuc3RhcnRzV2l0aCgiLyIpJiYhdC5tYXRjaCgvXltBLVpdOi8pJiYhdC5zdGFydHNXaXRoKCIuIikmJiF0Lm1hdGNoKC9eW2EtekEtWl0oW2EtekEtWjAtOS5cLStdKSo6XC9cLy8pKSYmdm9pZCAwIT09dCYmIXQuaW5jbHVkZXMoIm5vZGVfbW9kdWxlcy8iKX1jb25zdCBadD1TeW1ib2woIkFnZW50QmFzZUludGVybmFsU3RhdGUiKTtjbGFzcyBxdCBleHRlbmRzIGkuQWdlbnR7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpc1tadF09e319aXNTZWN1cmVFbmRwb2ludCh0KXtpZih0KXtpZigiYm9vbGVhbiI9PXR5cGVvZiB0LnNlY3VyZUVuZHBvaW50KXJldHVybiB0LnNlY3VyZUVuZHBvaW50O2lmKCJzdHJpbmciPT10eXBlb2YgdC5wcm90b2NvbClyZXR1cm4iaHR0cHM6Ij09PXQucHJvdG9jb2x9Y29uc3R7c3RhY2s6bn09bmV3IEVycm9yO3JldHVybiJzdHJpbmciPT10eXBlb2YgbiYmbi5zcGxpdCgiXG4iKS5zb21lKHQ9Pi0xIT09dC5pbmRleE9mKCIoaHR0cHMuanM6Iil8fC0xIT09dC5pbmRleE9mKCJub2RlOmh0dHBzOiIpKX1jcmVhdGVTb2NrZXQodCxuLGUpe2NvbnN0IHI9ey4uLm4sc2VjdXJlRW5kcG9pbnQ6dGhpcy5pc1NlY3VyZUVuZHBvaW50KG4pfTtQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT50aGlzLmNvbm5lY3QodCxyKSkudGhlbihvPT57aWYobyBpbnN0YW5jZW9mIGkuQWdlbnQpcmV0dXJuIG8uYWRkUmVxdWVzdCh0LHIpO3RoaXNbWnRdLmN1cnJlbnRTb2NrZXQ9byxzdXBlci5jcmVhdGVTb2NrZXQodCxuLGUpfSxlKX1jcmVhdGVDb25uZWN0aW9uKCl7Y29uc3QgdD10aGlzW1p0XS5jdXJyZW50U29ja2V0O2lmKHRoaXNbWnRdLmN1cnJlbnRTb2NrZXQ9dm9pZCAwLCF0KXRocm93IG5ldyBFcnJvcigiTm8gc29ja2V0IHdhcyByZXR1cm5lZCBpbiB0aGUgYGNvbm5lY3QoKWAgZnVuY3Rpb24iKTtyZXR1cm4gdH1nZXQgZGVmYXVsdFBvcnQoKXtyZXR1cm4gdGhpc1tadF0uZGVmYXVsdFBvcnQ/PygiaHR0cHM6Ij09PXRoaXMucHJvdG9jb2w/NDQzOjgwKX1zZXQgZGVmYXVsdFBvcnQodCl7dGhpc1tadF0mJih0aGlzW1p0XS5kZWZhdWx0UG9ydD10KX1nZXQgcHJvdG9jb2woKXtyZXR1cm4gdGhpc1tadF0ucHJvdG9jb2w/Pyh0aGlzLmlzU2VjdXJlRW5kcG9pbnQoKT8iaHR0cHM6IjoiaHR0cDoiKX1zZXQgcHJvdG9jb2wodCl7dGhpc1tadF0mJih0aGlzW1p0XS5wcm90b2NvbD10KX19ZnVuY3Rpb24gUXQoLi4udCl7Uy5sb2coIltodHRwcy1wcm94eS1hZ2VudDpwYXJzZS1wcm94eS1yZXNwb25zZV0iLC4uLnQpfWZ1bmN0aW9uIFh0KHQpe3JldHVybiBuZXcgUHJvbWlzZSgobixlKT0+e2xldCByPTA7Y29uc3Qgbz1bXTtmdW5jdGlvbiBpKCl7Y29uc3QgYz10LnJlYWQoKTtjP2Z1bmN0aW9uKGMpe28ucHVzaChjKSxyKz1jLmxlbmd0aDtjb25zdCB1PUJ1ZmZlci5jb25jYXQobyxyKSxhPXUuaW5kZXhPZigiXHJcblxyXG4iKTtpZigtMT09PWEpcmV0dXJuIFF0KCJoYXZlIG5vdCByZWNlaXZlZCBlbmQgb2YgSFRUUCBoZWFkZXJzIHlldC4uLiIpLHZvaWQgaSgpO2NvbnN0IGY9dS5zdWJhcnJheSgwLGEpLnRvU3RyaW5nKCJhc2NpaSIpLnNwbGl0KCJcclxuIiksaD1mLnNoaWZ0KCk7aWYoIWgpcmV0dXJuIHQuZGVzdHJveSgpLGUobmV3IEVycm9yKCJObyBoZWFkZXIgcmVjZWl2ZWQgZnJvbSBwcm94eSBDT05ORUNUIHJlc3BvbnNlIikpO2NvbnN0IHA9aC5zcGxpdCgiICIpLGQ9KyhwWzFdfHwwKSxsPXAuc2xpY2UoMikuam9pbigiICIpLG09e307Zm9yKGNvbnN0IG4gb2YgZil7aWYoIW4pY29udGludWU7Y29uc3Qgcj1uLmluZGV4T2YoIjoiKTtpZigtMT09PXIpcmV0dXJuIHQuZGVzdHJveSgpLGUobmV3IEVycm9yKGBJbnZhbGlkIGhlYWRlciBmcm9tIHByb3h5IENPTk5FQ1QgcmVzcG9uc2U6ICIke259ImApKTtjb25zdCBvPW4uc2xpY2UoMCxyKS50b0xvd2VyQ2FzZSgpLGk9bi5zbGljZShyKzEpLnRyaW1TdGFydCgpLHM9bVtvXTsic3RyaW5nIj09dHlwZW9mIHM/bVtvXT1bcyxpXTpBcnJheS5pc0FycmF5KHMpP3MucHVzaChpKTptW29dPWl9UXQoImdvdCBwcm94eSBzZXJ2ZXIgcmVzcG9uc2U6ICVvICVvIixoLG0pLHMoKSxuKHtjb25uZWN0OntzdGF0dXNDb2RlOmQsc3RhdHVzVGV4dDpsLGhlYWRlcnM6bX0sYnVmZmVyZWQ6dX0pfShjKTp0Lm9uY2UoInJlYWRhYmxlIixpKX1mdW5jdGlvbiBzKCl7dC5yZW1vdmVMaXN0ZW5lcigiZW5kIixjKSx0LnJlbW92ZUxpc3RlbmVyKCJlcnJvciIsdSksdC5yZW1vdmVMaXN0ZW5lcigicmVhZGFibGUiLGkpfWZ1bmN0aW9uIGMoKXtzKCksUXQoIm9uZW5kIiksZShuZXcgRXJyb3IoIlByb3h5IGNvbm5lY3Rpb24gZW5kZWQgYmVmb3JlIHJlY2VpdmluZyBDT05ORUNUIHJlc3BvbnNlIikpfWZ1bmN0aW9uIHUodCl7cygpLFF0KCJvbmVycm9yICVvIix0KSxlKHQpfXQub24oImVycm9yIix1KSx0Lm9uKCJlbmQiLGMpLGkoKX0pfWZ1bmN0aW9uIHRuKC4uLnQpe1MubG9nKCJbaHR0cHMtcHJveHktYWdlbnRdIiwuLi50KX1jbGFzcyBubiBleHRlbmRzIHF0e3N0YXRpYyBfX2luaXRTdGF0aWMoKXt0aGlzLnByb3RvY29scz1bImh0dHAiLCJodHRwcyJdfWNvbnN0cnVjdG9yKHQsbil7c3VwZXIobiksdGhpcy5vcHRpb25zPXt9LHRoaXMucHJveHk9InN0cmluZyI9PXR5cGVvZiB0P25ldyBVUkwodCk6dCx0aGlzLnByb3h5SGVhZGVycz1uPy5oZWFkZXJzPz97fSx0bigiQ3JlYXRpbmcgbmV3IEh0dHBzUHJveHlBZ2VudCBpbnN0YW5jZTogJW8iLHRoaXMucHJveHkuaHJlZik7Y29uc3QgZT0odGhpcy5wcm94eS5ob3N0bmFtZXx8dGhpcy5wcm94eS5ob3N0KS5yZXBsYWNlKC9eXFt8XF0kL2csIiIpLHI9dGhpcy5wcm94eS5wb3J0P3BhcnNlSW50KHRoaXMucHJveHkucG9ydCwxMCk6Imh0dHBzOiI9PT10aGlzLnByb3h5LnByb3RvY29sPzQ0Mzo4MDt0aGlzLmNvbm5lY3RPcHRzPXtBTFBOUHJvdG9jb2xzOlsiaHR0cC8xLjEiXSwuLi5uP3JuKG4sImhlYWRlcnMiKTpudWxsLGhvc3Q6ZSxwb3J0OnJ9fWFzeW5jIGNvbm5lY3QodCxuKXtjb25zdHtwcm94eTplfT10aGlzO2lmKCFuLmhvc3QpdGhyb3cgbmV3IFR5cGVFcnJvcignTm8gImhvc3QiIHByb3ZpZGVkJyk7bGV0IHI7aWYoImh0dHBzOiI9PT1lLnByb3RvY29sKXt0bigiQ3JlYXRpbmcgYHRscy5Tb2NrZXRgOiAlbyIsdGhpcy5jb25uZWN0T3B0cyk7Y29uc3QgdD10aGlzLmNvbm5lY3RPcHRzLnNlcnZlcm5hbWV8fHRoaXMuY29ubmVjdE9wdHMuaG9zdDtyPWYuY29ubmVjdCh7Li4udGhpcy5jb25uZWN0T3B0cyxzZXJ2ZXJuYW1lOnQmJmEuaXNJUCh0KT92b2lkIDA6dH0pfWVsc2UgdG4oIkNyZWF0aW5nIGBuZXQuU29ja2V0YDogJW8iLHRoaXMuY29ubmVjdE9wdHMpLHI9YS5jb25uZWN0KHRoaXMuY29ubmVjdE9wdHMpO2NvbnN0IG89ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMucHJveHlIZWFkZXJzP3RoaXMucHJveHlIZWFkZXJzKCk6ey4uLnRoaXMucHJveHlIZWFkZXJzfSxpPWEuaXNJUHY2KG4uaG9zdCk/YFske24uaG9zdH1dYDpuLmhvc3Q7bGV0IHM9YENPTk5FQ1QgJHtpfToke24ucG9ydH0gSFRUUC8xLjFcclxuYDtpZihlLnVzZXJuYW1lfHxlLnBhc3N3b3JkKXtjb25zdCB0PWAke2RlY29kZVVSSUNvbXBvbmVudChlLnVzZXJuYW1lKX06JHtkZWNvZGVVUklDb21wb25lbnQoZS5wYXNzd29yZCl9YDtvWyJQcm94eS1BdXRob3JpemF0aW9uIl09YEJhc2ljICR7QnVmZmVyLmZyb20odCkudG9TdHJpbmcoImJhc2U2NCIpfWB9by5Ib3N0PWAke2l9OiR7bi5wb3J0fWAsb1siUHJveHktQ29ubmVjdGlvbiJdfHwob1siUHJveHktQ29ubmVjdGlvbiJdPXRoaXMua2VlcEFsaXZlPyJLZWVwLUFsaXZlIjoiY2xvc2UiKTtmb3IoY29uc3QgdCBvZiBPYmplY3Qua2V5cyhvKSlzKz1gJHt0fTogJHtvW3RdfVxyXG5gO2NvbnN0IGM9WHQocik7ci53cml0ZShgJHtzfVxyXG5gKTtjb25zdHtjb25uZWN0OnUsYnVmZmVyZWQ6aH09YXdhaXQgYztpZih0LmVtaXQoInByb3h5Q29ubmVjdCIsdSksdGhpcy5lbWl0KCJwcm94eUNvbm5lY3QiLHUsdCksMjAwPT09dS5zdGF0dXNDb2RlKXtpZih0Lm9uY2UoInNvY2tldCIsZW4pLG4uc2VjdXJlRW5kcG9pbnQpe3RuKCJVcGdyYWRpbmcgc29ja2V0IGNvbm5lY3Rpb24gdG8gVExTIik7Y29uc3QgdD1uLnNlcnZlcm5hbWV8fG4uaG9zdDtyZXR1cm4gZi5jb25uZWN0KHsuLi5ybihuLCJob3N0IiwicGF0aCIsInBvcnQiKSxzb2NrZXQ6cixzZXJ2ZXJuYW1lOmEuaXNJUCh0KT92b2lkIDA6dH0pfXJldHVybiByfXIuZGVzdHJveSgpO2NvbnN0IHA9bmV3IGEuU29ja2V0KHt3cml0YWJsZTohMX0pO3JldHVybiBwLnJlYWRhYmxlPSEwLHQub25jZSgic29ja2V0Iix0PT57dG4oIlJlcGxheWluZyBwcm94eSBidWZmZXIgZm9yIGZhaWxlZCByZXF1ZXN0IiksdC5wdXNoKGgpLHQucHVzaChudWxsKX0pLHB9fWZ1bmN0aW9uIGVuKHQpe3QucmVzdW1lKCl9ZnVuY3Rpb24gcm4odCwuLi5uKXtjb25zdCBlPXt9O2xldCByO2ZvcihyIGluIHQpbi5pbmNsdWRlcyhyKXx8KGVbcl09dFtyXSk7cmV0dXJuIGV9bm4uX19pbml0U3RhdGljKCk7ZnVuY3Rpb24gb24odCl7cmV0dXJuIHQucmVwbGFjZSgvXltBLVpdOi8sIiIpLnJlcGxhY2UoL1xcL2csIi8iKX1jb25zdCBzbj1uO2xldCBjbix1bj0wLGFuPXt9O2Z1bmN0aW9uIGZuKHQpe3NuLmRlYnVnJiZjb25zb2xlLmxvZyhgW0FOUiBXb3JrZXJdICR7dH1gKX12YXIgaG4scG4sZG47Y29uc3QgbG49ZnVuY3Rpb24odCl7bGV0IG47dHJ5e249bmV3IFVSTCh0LnVybCl9Y2F0Y2gobil7cmV0dXJuIGIoKCk9Pntjb25zb2xlLndhcm4oIltAc2VudHJ5L25vZGVdOiBJbnZhbGlkIGRzbiBvciB0dW5uZWwgb3B0aW9uLCB3aWxsIG5vdCBzZW5kIGFueSBldmVudHMuIFRoZSB0dW5uZWwgb3B0aW9uIG11c3QgYmUgYSBmdWxsIFVSTCB3aGVuIHVzZWQuIil9KSxKdCh0LCgpPT5Qcm9taXNlLnJlc29sdmUoe30pKX1jb25zdCBlPSJodHRwczoiPT09bi5wcm90b2NvbCxyPWZ1bmN0aW9uKHQsbil7Y29uc3R7bm9fcHJveHk6ZX09cHJvY2Vzcy5lbnYscj1lPy5zcGxpdCgiLCIpLnNvbWUobj0+dC5ob3N0LmVuZHNXaXRoKG4pfHx0Lmhvc3RuYW1lLmVuZHNXaXRoKG4pKTtyZXR1cm4gcj92b2lkIDA6bn0obix0LnByb3h5fHwoZT9wcm9jZXNzLmVudi5odHRwc19wcm94eTp2b2lkIDApfHxwcm9jZXNzLmVudi5odHRwX3Byb3h5KSxvPWU/czppLGE9dm9pZCAwIT09dC5rZWVwQWxpdmUmJnQua2VlcEFsaXZlLGY9cj9uZXcgbm4ocik6bmV3IG8uQWdlbnQoe2tlZXBBbGl2ZTphLG1heFNvY2tldHM6MzAsdGltZW91dDoyZTN9KSxoPWZ1bmN0aW9uKHQsbixlKXtjb25zdHtob3N0bmFtZTpyLHBhdGhuYW1lOm8scG9ydDppLHByb3RvY29sOnMsc2VhcmNoOmF9PW5ldyBVUkwodC51cmwpO3JldHVybiBmdW5jdGlvbihmKXtyZXR1cm4gbmV3IFByb21pc2UoKGgscCk9PntCdCgoKT0+e2xldCBkPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgYyh7cmVhZCgpe3RoaXMucHVzaCh0KSx0aGlzLnB1c2gobnVsbCl9fSl9KGYuYm9keSk7Y29uc3QgbD17Li4udC5oZWFkZXJzfTtmLmJvZHkubGVuZ3RoPjMyNzY4JiYobFsiY29udGVudC1lbmNvZGluZyJdPSJnemlwIixkPWQucGlwZSh1KCkpKTtjb25zdCBtPXIuc3RhcnRzV2l0aCgiWyIpLGc9bi5yZXF1ZXN0KHttZXRob2Q6IlBPU1QiLGFnZW50OmUsaGVhZGVyczpsLGhvc3RuYW1lOm0/ci5zbGljZSgxLC0xKTpyLHBhdGg6YCR7b30ke2F9YCxwb3J0OmkscHJvdG9jb2w6cyxjYTp0LmNhQ2VydHN9LHQ9Pnt0Lm9uKCJkYXRhIiwoKT0+e30pLHQub24oImVuZCIsKCk9Pnt9KSx0LnNldEVuY29kaW5nKCJ1dGY4Iik7Y29uc3Qgbj10LmhlYWRlcnNbInJldHJ5LWFmdGVyIl0/P251bGwsZT10LmhlYWRlcnNbIngtc2VudHJ5LXJhdGUtbGltaXRzIl0/P251bGw7aCh7c3RhdHVzQ29kZTp0LnN0YXR1c0NvZGUsaGVhZGVyczp7InJldHJ5LWFmdGVyIjpuLCJ4LXNlbnRyeS1yYXRlLWxpbWl0cyI6QXJyYXkuaXNBcnJheShlKT9lWzBdfHxudWxsOmV9fSl9KTtnLm9uKCJlcnJvciIscCksZC5waXBlKGcpfSl9KX19KHQsdC5odHRwTW9kdWxlPz9vLGYpO3JldHVybiBKdCh0LGgpfSh7dXJsOihobj1zbi5kc24scG49c24udHVubmVsLGRuPXNuLnNka01ldGFkYXRhLnNkayxwbnx8YCR7ZnVuY3Rpb24odCl7cmV0dXJuYCR7ZnVuY3Rpb24odCl7Y29uc3Qgbj10LnByb3RvY29sP2Ake3QucHJvdG9jb2x9OmA6IiIsZT10LnBvcnQ/YDoke3QucG9ydH1gOiIiO3JldHVybmAke259Ly8ke3QuaG9zdH0ke2V9JHt0LnBhdGg/YC8ke3QucGF0aH1gOiIifS9hcGkvYH0odCl9JHt0LnByb2plY3RJZH0vZW52ZWxvcGUvYH0oaG4pfT8ke2Z1bmN0aW9uKHQsbil7Y29uc3QgZT17c2VudHJ5X3ZlcnNpb246IjcifTtyZXR1cm4gdC5wdWJsaWNLZXkmJihlLnNlbnRyeV9rZXk9dC5wdWJsaWNLZXkpLG4mJihlLnNlbnRyeV9jbGllbnQ9YCR7bi5uYW1lfS8ke24udmVyc2lvbn1gKSxuZXcgVVJMU2VhcmNoUGFyYW1zKGUpLnRvU3RyaW5nKCl9KGhuLGRuKX1gKX0pO2FzeW5jIGZ1bmN0aW9uIG1uKCl7aWYoY24pe2ZuKCJTZW5kaW5nIGFibm9ybWFsIHNlc3Npb24iKSxWKGNuLHtzdGF0dXM6ImFibm9ybWFsIixhYm5vcm1hbF9tZWNoYW5pc206ImFucl9mb3JlZ3JvdW5kIixyZWxlYXNlOnNuLnJlbGVhc2UsZW52aXJvbm1lbnQ6c24uZW52aXJvbm1lbnR9KTtjb25zdCB0PWZ1bmN0aW9uKHQsbixlLHIpe2NvbnN0IG89VXQoZSk7cmV0dXJuIGt0KHtzZW50X2F0OihuZXcgRGF0ZSkudG9JU09TdHJpbmcoKSwuLi5vJiZ7c2RrOm99LC4uLiEhciYmbiYme2RzbjpidChuKX19LFsiYWdncmVnYXRlcyJpbiB0P1t7dHlwZToic2Vzc2lvbnMifSx0XTpbe3R5cGU6InNlc3Npb24ifSx0LnRvSlNPTigpXV0pfShjbixzbi5kc24sc24uc2RrTWV0YWRhdGEsc24udHVubmVsKTtmbihKU09OLnN0cmluZ2lmeSh0KSksYXdhaXQgbG4uc2VuZCh0KTt0cnl7ZT8ucG9zdE1lc3NhZ2UoInNlc3Npb24tZW5kZWQiKX1jYXRjaHt9fX1mdW5jdGlvbiBnbih0KXtpZighdClyZXR1cm47Y29uc3Qgbj1mdW5jdGlvbih0KXtpZighdC5sZW5ndGgpcmV0dXJuW107Y29uc3Qgbj1BcnJheS5mcm9tKHQpO3JldHVybi9zZW50cnlXcmFwcGVkLy50ZXN0KEUobikuZnVuY3Rpb258fCIiKSYmbi5wb3AoKSxuLnJldmVyc2UoKSwkLnRlc3QoRShuKS5mdW5jdGlvbnx8IiIpJiYobi5wb3AoKSwkLnRlc3QoRShuKS5mdW5jdGlvbnx8IiIpJiZuLnBvcCgpKSxuLnNsaWNlKDAsNTApLm1hcCh0PT4oey4uLnQsZmlsZW5hbWU6dC5maWxlbmFtZXx8RShuKS5maWxlbmFtZSxmdW5jdGlvbjp0LmZ1bmN0aW9ufHwiPyJ9KSl9KHQpO2lmKHNuLmFwcFJvb3RQYXRoKWZvcihjb25zdCB0IG9mIG4pdC5maWxlbmFtZSYmKHQuZmlsZW5hbWU9VHQodC5maWxlbmFtZSxzbi5hcHBSb290UGF0aCkpO3JldHVybiBufWFzeW5jIGZ1bmN0aW9uIHluKHQsbil7aWYodW4+PXNuLm1heEFuckV2ZW50cylyZXR1cm47dW4rPTEsYXdhaXQgbW4oKSxmbigiU2VuZGluZyBldmVudCIpO2NvbnN0IGU9e2V2ZW50X2lkOkYoKSxjb250ZXh0czpzbi5jb250ZXh0cyxyZWxlYXNlOnNuLnJlbGVhc2UsZW52aXJvbm1lbnQ6c24uZW52aXJvbm1lbnQsZGlzdDpzbi5kaXN0LHBsYXRmb3JtOiJub2RlIixsZXZlbDoiZXJyb3IiLGV4Y2VwdGlvbjp7dmFsdWVzOlt7dHlwZToiQXBwbGljYXRpb25Ob3RSZXNwb25kaW5nIix2YWx1ZTpgQXBwbGljYXRpb24gTm90IFJlc3BvbmRpbmcgZm9yIGF0IGxlYXN0ICR7c24uYW5yVGhyZXNob2xkfSBtc2Asc3RhY2t0cmFjZTp7ZnJhbWVzOmduKHQpfSxtZWNoYW5pc206e3R5cGU6IkFOUiJ9fV19LHRhZ3M6c24uc3RhdGljVGFnc307biYmZnVuY3Rpb24odCxuKXtpZih6dCh0LG4pLCF0LmNvbnRleHRzPy50cmFjZSl7Y29uc3R7dHJhY2VJZDplLHBhcmVudFNwYW5JZDpyLHByb3BhZ2F0aW9uU3BhbklkOm99PW4ucHJvcGFnYXRpb25Db250ZXh0O3QuY29udGV4dHM9e3RyYWNlOnt0cmFjZV9pZDplLHNwYW5faWQ6b3x8cSgpLHBhcmVudF9zcGFuX2lkOnJ9LC4uLnQuY29udGV4dHN9fX0oZSxuKSxmdW5jdGlvbih0KXtpZigwPT09T2JqZWN0LmtleXMoYW4pLmxlbmd0aClyZXR1cm47Y29uc3Qgbj1zbi5hcHBSb290UGF0aD97fTphbjtpZihzbi5hcHBSb290UGF0aClmb3IoY29uc3RbdCxlXW9mIE9iamVjdC5lbnRyaWVzKGFuKSluW1R0KHQsc24uYXBwUm9vdFBhdGgpXT1lO2NvbnN0IGU9bmV3IE1hcDtmb3IoY29uc3QgciBvZiB0LmV4Y2VwdGlvbj8udmFsdWVzfHxbXSlmb3IoY29uc3QgdCBvZiByLnN0YWNrdHJhY2U/LmZyYW1lc3x8W10pe2NvbnN0IHI9dC5hYnNfcGF0aHx8dC5maWxlbmFtZTtyJiZuW3JdJiZlLnNldChyLG5bcl0pfWlmKGUuc2l6ZT4wKXtjb25zdCBuPVtdO2Zvcihjb25zdFt0LHJdb2YgZS5lbnRyaWVzKCkpbi5wdXNoKHt0eXBlOiJzb3VyY2VtYXAiLGNvZGVfZmlsZTp0LGRlYnVnX2lkOnJ9KTt0LmRlYnVnX21ldGE9e2ltYWdlczpufX19KGUpO2NvbnN0IHI9THQoZSxzbi5kc24sc24uc2RrTWV0YWRhdGEsc24udHVubmVsKTtmbihKU09OLnN0cmluZ2lmeShyKSksYXdhaXQgbG4uc2VuZChyKSxhd2FpdCBsbi5mbHVzaCgyZTMpLHVuPj1zbi5tYXhBbnJFdmVudHMmJnNldFRpbWVvdXQoKCk9Pntwcm9jZXNzLmV4aXQoMCl9LDVlMyl9bGV0IGJuO2lmKGZuKCJTdGFydGVkIiksc24uY2FwdHVyZVN0YWNrVHJhY2Upe2ZuKCJDb25uZWN0aW5nIHRvIGRlYnVnZ2VyIik7Y29uc3Qgbj1uZXcgdDtuLmNvbm5lY3RUb01haW5UaHJlYWQoKSxmbigiQ29ubmVjdGVkIHRvIGRlYnVnZ2VyIik7Y29uc3QgZT1uZXcgTWFwO24ub24oIkRlYnVnZ2VyLnNjcmlwdFBhcnNlZCIsdD0+e2Uuc2V0KHQucGFyYW1zLnNjcmlwdElkLHQucGFyYW1zLnVybCl9KSxuLm9uKCJEZWJ1Z2dlci5wYXVzZWQiLHQ9PntpZigib3RoZXIiPT09dC5wYXJhbXMucmVhc29uKXRyeXtmbigiRGVidWdnZXIgcGF1c2VkIik7Y29uc3QgaT1bLi4udC5wYXJhbXMuY2FsbEZyYW1lc10scz1zbi5hcHBSb290UGF0aD9mdW5jdGlvbih0PShwcm9jZXNzLmFyZ3ZbMV0/VnQocHJvY2Vzcy5hcmd2WzFdKTpwcm9jZXNzLmN3ZCgpKSxuPSJcXCI9PT1vKXtjb25zdCBlPW4/b24odCk6dDtyZXR1cm4gdD0+e2lmKCF0KXJldHVybjtjb25zdCBvPW4/b24odCk6dDtsZXR7ZGlyOmksYmFzZTpzLGV4dDpjfT1yLnBhcnNlKG8pOyIuanMiIT09YyYmIi5tanMiIT09YyYmIi5janMiIT09Y3x8KHM9cy5zbGljZSgwLC0xKmMubGVuZ3RoKSk7Y29uc3QgdT1kZWNvZGVVUklDb21wb25lbnQocyk7aXx8KGk9Ii4iKTtjb25zdCBhPWkubGFzdEluZGV4T2YoIi9ub2RlX21vZHVsZXMiKTtpZihhPi0xKXJldHVybmAke2kuc2xpY2UoYSsxNCkucmVwbGFjZSgvXC8vZywiLiIpfToke3V9YDtpZihpLnN0YXJ0c1dpdGgoZSkpe2NvbnN0IHQ9aS5zbGljZShlLmxlbmd0aCsxKS5yZXBsYWNlKC9cLy9nLCIuIik7cmV0dXJuIHQ/YCR7dH06JHt1fWA6dX1yZXR1cm4gdX19KHNuLmFwcFJvb3RQYXRoKTooKT0+e30sYz1pLm1hcCh0PT5mdW5jdGlvbih0LG4sZSl7Y29uc3Qgcj1uP24ucmVwbGFjZSgvXmZpbGU6XC9cLy8sIiIpOnZvaWQgMCxvPXQubG9jYXRpb24uY29sdW1uTnVtYmVyP3QubG9jYXRpb24uY29sdW1uTnVtYmVyKzE6dm9pZCAwLGk9dC5sb2NhdGlvbi5saW5lTnVtYmVyP3QubG9jYXRpb24ubGluZU51bWJlcisxOnZvaWQgMDtyZXR1cm57ZmlsZW5hbWU6cixtb2R1bGU6ZShyKSxmdW5jdGlvbjp0LmZ1bmN0aW9uTmFtZXx8Ij8iLGNvbG5vOm8sbGluZW5vOmksaW5fYXBwOnI/S3Qocik6dm9pZCAwfX0odCxlLmdldCh0LmxvY2F0aW9uLnNjcmlwdElkKSxzKSksdT1zZXRUaW1lb3V0KCgpPT57eW4oYykudGhlbihudWxsLCgpPT57Zm4oIlNlbmRpbmcgQU5SIGV2ZW50IGZhaWxlZC4iKX0pfSw1ZTMpO24ucG9zdCgiUnVudGltZS5ldmFsdWF0ZSIse2V4cHJlc3Npb246Imdsb2JhbC5fX1NFTlRSWV9HRVRfU0NPUEVTX18oKTsiLHNpbGVudDohMCxyZXR1cm5CeVZhbHVlOiEwfSwodCxlKT0+e3QmJmZuKGBFcnJvciBleGVjdXRpbmcgc2NyaXB0OiAnJHt0Lm1lc3NhZ2V9J2ApLGNsZWFyVGltZW91dCh1KTtjb25zdCByPWU/LnJlc3VsdD9lLnJlc3VsdC52YWx1ZTp2b2lkIDA7bi5wb3N0KCJEZWJ1Z2dlci5yZXN1bWUiKSxuLnBvc3QoIkRlYnVnZ2VyLmRpc2FibGUiKSx5bihjLHIpLnRoZW4obnVsbCwoKT0+e2ZuKCJTZW5kaW5nIEFOUiBldmVudCBmYWlsZWQuIil9KX0pfWNhdGNoKHQpe3Rocm93IG4ucG9zdCgiRGVidWdnZXIucmVzdW1lIiksbi5wb3N0KCJEZWJ1Z2dlci5kaXNhYmxlIiksdH19KSxibj0oKT0+e3RyeXtuLnBvc3QoIkRlYnVnZ2VyLmVuYWJsZSIsKCk9PntuLnBvc3QoIkRlYnVnZ2VyLnBhdXNlIil9KX1jYXRjaHt9fX1jb25zdHtwb2xsOnZufT1mdW5jdGlvbih0LG4sZSxyKXtjb25zdCBvPXQoKTtsZXQgaT0hMSxzPSEwO3JldHVybiBzZXRJbnRlcnZhbCgoKT0+e2NvbnN0IHQ9by5nZXRUaW1lTXMoKTshMT09PWkmJnQ+bitlJiYoaT0hMCxzJiZyKCkpLHQ8bitlJiYoaT0hMSl9LDIwKSx7cG9sbDooKT0+e28ucmVzZXQoKX0sZW5hYmxlZDp0PT57cz10fX19KGZ1bmN0aW9uKCl7bGV0IHQ9cHJvY2Vzcy5ocnRpbWUoKTtyZXR1cm57Z2V0VGltZU1zOigpPT57Y29uc3RbbixlXT1wcm9jZXNzLmhydGltZSh0KTtyZXR1cm4gTWF0aC5mbG9vcigxZTMqbitlLzFlNil9LHJlc2V0OigpPT57dD1wcm9jZXNzLmhydGltZSgpfX19LHNuLnBvbGxJbnRlcnZhbCxzbi5hbnJUaHJlc2hvbGQsZnVuY3Rpb24oKXtmbigiV2F0Y2hkb2cgdGltZW91dCIpLGJuPyhmbigiUGF1c2luZyBkZWJ1Z2dlciB0byBjYXB0dXJlIHN0YWNrIHRyYWNlIiksYm4oKSk6KGZuKCJDYXB0dXJpbmcgZXZlbnQgd2l0aG91dCBhIHN0YWNrIHRyYWNlIikseW4oKS50aGVuKG51bGwsKCk9PntmbigiU2VuZGluZyBBTlIgZXZlbnQgZmFpbGVkIG9uIHdhdGNoZG9nIHRpbWVvdXQuIil9KSl9KTtlPy5vbigibWVzc2FnZSIsdD0+e3Quc2Vzc2lvbiYmKGNuPVkodC5zZXNzaW9uKSksdC5kZWJ1Z0ltYWdlcyYmKGFuPXQuZGVidWdJbWFnZXMpLHZuKCl9KTs=";function c(e,...t){i.debug.log(`[ANR] ${e}`,...t)}function p(){let e=i.getCombinedScopeData(i.getIsolationScope(),i.getCurrentScope());return e.attachments=[],e.eventProcessors=[],e}async function _(e){let t={message:"ANR"},n={};for(let r of e.getEventProcessors()){if(null===t)break;t=await r(t,n)}return t?.contexts||{}}async function T(t,n){let r=t.getDsn();if(!r)return()=>{};let a=await _(t);delete a.app?.app_memory,delete a.device?.free_memory;let s=t.getOptions(),l=t.getSdkMetadata()||{};l.sdk&&(l.sdk.integrations=s.integrations.map(e=>e.name));let p={debug:i.debug.isEnabled(),dsn:r,tunnel:s.tunnel,environment:s.environment||"production",release:s.release,dist:s.dist,sdkMetadata:l,appRootPath:n.appRootPath,pollInterval:n.pollInterval||50,anrThreshold:n.anrThreshold||5e3,captureStackTrace:!!n.captureStackTrace,maxAnrEvents:n.maxAnrEvents||1,staticTags:n.staticTags||{},contexts:a};if(p.captureStackTrace){let t=await e.A(234177);t.url()||t.open(0)}let T=new o.Worker(new URL(`data:application/javascript;base64,${u}`),{workerData:p,execArgv:[],env:{...process.env,NODE_OPTIONS:void 0}});process.on("exit",()=>{T.terminate()});let d=setInterval(()=>{try{let e=i.getIsolationScope().getSession(),t=e?{...e,toJSON:void 0}:void 0;T.postMessage({session:t,debugImages:i.getFilenameToDebugIdMap(s.stackParser)})}catch{}},p.pollInterval);return d.unref(),T.on("message",e=>{"session-ended"===e&&(c("ANR event sent from ANR worker. Clearing session in this thread."),i.getIsolationScope().setSession(void 0))}),T.once("error",e=>{clearInterval(d),c("ANR worker error",e)}),T.once("exit",e=>{clearInterval(d),c("ANR worker exit",e)}),T.unref(),()=>{T.terminate(),clearInterval(d)}}n.anrIntegration=i.defineIntegration((e={})=>{let t,n;if(a.NODE_VERSION.major<16||16===a.NODE_VERSION.major&&a.NODE_VERSION.minor<17)throw Error("ANR detection requires Node 16.17.0 or later");return i.GLOBAL_OBJ.__SENTRY_GET_SCOPES__=p,{name:"Anr",startWorker:()=>{!t&&n&&(t=T(n,e))},stopWorker:()=>{t&&t.then(e=>{e(),t=void 0})},async setup(t){n=t,e.captureStackTrace&&await s.isDebuggerEnabled()&&(i.debug.warn("ANR captureStackTrace has been disabled because the debugger was already enabled"),e.captureStackTrace=!1),setImmediate(()=>this.startWorker())}}}),n.base64WorkerScript=u,n.disableAnrDetectionForCallback=function(e){let t=i.getClient()?.getIntegrationByName("Anr");if(!t)return e();t.stopWorker();let n=e();return l(n)?n.finally(()=>t.startWorker()):(t.startWorker(),n)}},770905,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(812057),o=e.r(976285);n.captureLog=function(e,...t){let[n,i,a,s]=t;if(Array.isArray(i)){let t={...a};t["sentry.message.template"]=n,i.forEach((e,n)=>{t[`sentry.message.parameter.${n}`]=e});let l=r.format(n,...i);o._INTERNAL_captureLog({level:e,message:l,attributes:t},s?.scope)}else o._INTERNAL_captureLog({level:e,message:n,attributes:i},a?.scope??s?.scope)}},664181,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(770905);n.fmt=e.r(976285).fmt,n.debug=function(...e){r.captureLog("debug",...e)},n.error=function(...e){r.captureLog("error",...e)},n.fatal=function(...e){r.captureLog("fatal",...e)},n.info=function(...e){r.captureLog("info",...e)},n.trace=function(...e){r.captureLog("trace",...e)},n.warn=function(...e){r.captureLog("warn",...e)}},140469,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(60438),o=e.r(976285);n.nodeRuntimeMetricsIntegration=o.defineIntegration((e={})=>{let t,n,i,a,s=e.collectionIntervalMs??3e4,l={cpuUtilization:!0,memHeapUsed:!0,memHeapTotal:!0,memRss:!0,eventLoopDelayP50:!0,eventLoopDelayP99:!0,eventLoopUtilization:!0,uptime:!0,cpuTime:!1,memExternal:!1,eventLoopDelayMin:!1,eventLoopDelayMax:!1,eventLoopDelayMean:!1,eventLoopDelayP90:!1,...e.collect},u=l.eventLoopDelayP99||l.eventLoopDelayMin||l.eventLoopDelayMax||l.eventLoopDelayMean||l.eventLoopDelayP50||l.eventLoopDelayP90,c=l.cpuUtilization||l.cpuTime,p=0,_=e=>Math.max(0,(e-1e7)/1e9),T={attributes:{"sentry.origin":"auto.node.runtime_metrics"}},d={unit:"byte",attributes:{"sentry.origin":"auto.node.runtime_metrics"}},E={unit:"second",attributes:{"sentry.origin":"auto.node.runtime_metrics"}};function S(){let e=o._INTERNAL_safeDateNow(),t=e-p;if(c&&void 0!==n){let e=process.cpuUsage(n);l.cpuTime&&(o.metrics.gauge("node.runtime.cpu.user",e.user/1e6,E),o.metrics.gauge("node.runtime.cpu.system",e.system/1e6,E)),l.cpuUtilization&&t>0&&o.metrics.gauge("node.runtime.cpu.utilization",(e.user+e.system)/(1e3*t),T),n=process.cpuUsage()}if(l.memRss||l.memHeapUsed||l.memHeapTotal||l.memExternal){let e=process.memoryUsage();l.memRss&&o.metrics.gauge("node.runtime.mem.rss",e.rss,d),l.memHeapUsed&&o.metrics.gauge("node.runtime.mem.heap_used",e.heapUsed,d),l.memHeapTotal&&o.metrics.gauge("node.runtime.mem.heap_total",e.heapTotal,d),l.memExternal&&(o.metrics.gauge("node.runtime.mem.external",e.external,d),o.metrics.gauge("node.runtime.mem.array_buffers",e.arrayBuffers,d))}if(u&&a&&(l.eventLoopDelayMin&&o.metrics.gauge("node.runtime.event_loop.delay.min",_(a.min),E),l.eventLoopDelayMax&&o.metrics.gauge("node.runtime.event_loop.delay.max",_(a.max),E),l.eventLoopDelayMean&&o.metrics.gauge("node.runtime.event_loop.delay.mean",_(a.mean),E),l.eventLoopDelayP50&&o.metrics.gauge("node.runtime.event_loop.delay.p50",_(a.percentile(50)),E),l.eventLoopDelayP90&&o.metrics.gauge("node.runtime.event_loop.delay.p90",_(a.percentile(90)),E),l.eventLoopDelayP99&&o.metrics.gauge("node.runtime.event_loop.delay.p99",_(a.percentile(99)),E),a.reset()),l.eventLoopUtilization&&void 0!==i){let e=r.performance.eventLoopUtilization(),t=r.performance.eventLoopUtilization(e,i);o.metrics.gauge("node.runtime.event_loop.utilization",t.utilization,T),i=e}l.uptime&&t>0&&o.metrics.count("node.runtime.process.uptime",t/1e3,E),p=e}return{name:"NodeRuntimeMetrics",setup(){if(u){a?.disable();try{(a=r.monitorEventLoopDelay({resolution:10})).enable()}catch{a=void 0}}c&&(n=process.cpuUsage()),l.eventLoopUtilization&&(i=r.performance.eventLoopUtilization()),p=o._INTERNAL_safeDateNow(),t&&clearInterval(t),t=o._INTERNAL_safeUnref(setInterval(S,s))}}})},573841,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(747535),i=e.r(770905),a=["trace","debug","info","warn","error","fatal"],s=Symbol.for("level"),l=Symbol.for("message"),u=Symbol.for("splat"),c={silly:"trace",debug:"debug",verbose:"debug",http:"debug",info:"info",notice:"info",warn:"warn",warning:"warn",error:"error",emerg:"fatal",alert:"fatal",crit:"fatal"};n.createSentryWinstonTransport=function(e,t){return class extends e{constructor(e){super(e),this._levels=new Set(t?.levels??a)}log(e,n){try{var a;if(setImmediate(()=>{this.emit("logged",e)}),a=e,"object"!=typeof a||null==a)return;let n=e[s],{level:p,message:_,timestamp:T,...d}=e;d[s]=void 0,d[l]=void 0,d[u]=void 0;let E=t?.customLevelMap?.[n],S=c[n],A=E??S??"info";this._levels.has(A)?i.captureLog(A,_,{...d,"sentry.origin":"auto.log.winston"}):E||S||!o.DEBUG_BUILD||r.debug.log(`Winston log level ${n} is not captured by Sentry. Please add ${n} to the "customLevelMap" option of the Sentry Winston transport.`)}catch{}n&&n()}}}},535302,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(677652),o=e.r(976285),i=Symbol("sentry-track-pino-logger");function a(e,t,n){let r=Object.getOwnPropertySymbols(e),o=`Symbol(${t})`;for(let t of r)if(t.toString()===o){let r=e[t];return"string"==typeof r?r:n}return n}let s={levels:[],handled:!0},l={levels:["trace","debug","info","warn","error","fatal"]};n.pinoIntegration=Object.assign(o.defineIntegration((e={})=>{let t={autoInstrument:!1!==e.autoInstrument,error:{...s,...e.error},log:{...l,...e.log}};return{name:"Pino",setup:e=>{let n=!!e.getOptions().enableLogs;r.tracingChannel("pino_asJson").end.subscribe(e=>{let{instance:r,arguments:s,result:l}=e;!function(e,r,s){let l;if("track"!==(l=e[i])&&("ignore"===l||!t.autoInstrument))return;let u=function(e){let{level:t,time:n,pid:r,hostname:o,...i}=e;return i}(s),[c,p,_]=r,T=e?.levels?.labels?.[_]||"info",d=a(e,"pino.messageKey","msg"),E=p||u?.[d]||"";if(n&&t.log.levels.includes(T)){let e={...u,"sentry.origin":"auto.log.pino","pino.logger.level":_};o._INTERNAL_captureLog({level:T,message:E,attributes:e})}if(t.error.levels.includes(T)){let n={level:o.severityLevelFromString(T)};o.withScope(r=>{r.addEventProcessor(e=>(e.logger="pino",o.addExceptionMechanism(e,{handled:t.error.handled,type:"auto.log.pino"}),e));let i=c[a(e,"pino.errorKey","err")];i?o.captureException(i,n):o.captureMessage(E,n)})}}(r,s,JSON.parse(l))})}}}),{trackLogger(e){e&&"object"==typeof e&&"levels"in e&&(e[i]="track")},untrackLogger(e){e&&"object"==typeof e&&"levels"in e&&(e[i]="ignore")}})},167983,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285);n.addOriginToSpan=function(e,t){e.setAttribute(r.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,t)}},997624,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),n.getRequestUrl=function(e){let t=e.protocol||"",n=e.hostname||e.host||"",r=!e.port||80===e.port||443===e.port||/^(.*):(\d+)$/.test(n)?"":`:${e.port}`,o=e.path?e.path:"/";return`${t}//${n}${r}${o}`}},880191,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=[["january","1"],["february","2"],["march","3"],["april","4"],["may","5"],["june","6"],["july","7"],["august","8"],["september","9"],["october","10"],["november","11"],["december","12"],["jan","1"],["feb","2"],["mar","3"],["apr","4"],["may","5"],["jun","6"],["jul","7"],["aug","8"],["sep","9"],["oct","10"],["nov","11"],["dec","12"],["sunday","0"],["monday","1"],["tuesday","2"],["wednesday","3"],["thursday","4"],["friday","5"],["saturday","6"],["sun","0"],["mon","1"],["tue","2"],["wed","3"],["thu","4"],["fri","5"],["sat","6"]];n.replaceCronNames=function(e){return r.reduce((e,[t,n])=>e.replace(RegExp(t,"gi"),n),e)}},990611,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(880191),i="Automatic instrumentation of CronJob only supports crontab string";n.instrumentCron=function(e,t){let n=!1;return new Proxy(e,{construct(e,a){let[s,l,u,c,p,..._]=a;if("string"!=typeof s)throw Error(i);if(n)throw Error(`A job named '${t}' has already been scheduled`);n=!0;let T=o.replaceCronNames(s);return new e(s,async function(e,n){return r.withMonitor(t,async()=>{try{await l(e,n)}catch(e){throw r.captureException(e,{mechanism:{handled:!1,type:"auto.function.cron.instrumentCron"}}),e}},{schedule:{type:"crontab",value:T},timezone:p||void 0})},u,c,p,..._)},get:(e,a)=>"from"===a?a=>{let{cronTime:s,onTick:l,timeZone:u}=a;if("string"!=typeof s)throw Error(i);if(n)throw Error(`A job named '${t}' has already been scheduled`);n=!0;let c=o.replaceCronNames(s);return a.onTick=async(e,n)=>r.withMonitor(t,async()=>{try{await l(e,n)}catch(e){throw r.captureException(e,{mechanism:{handled:!1,type:"auto.function.cron.instrumentCron"}}),e}},{schedule:{type:"crontab",value:c},timezone:u||void 0}),e.from(a)}:e[a]})}},21175,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(880191);n.instrumentNodeCron=function(e,t={}){return new Proxy(e,{get:(e,n)=>"schedule"===n&&e.schedule?new Proxy(e.schedule,{apply(e,n,i){let[a,s,l]=i,u=l?.name,c=l?.timezone;if(!u)throw Error('Missing "name" for scheduled job. A name is required for Sentry check-in monitoring.');let p=async(...e)=>r.withMonitor(u,async()=>{try{return await s(...e)}catch(e){throw r.captureException(e,{mechanism:{handled:!1,type:"auto.function.node-cron.instrumentNodeCron"}}),e}},{schedule:{type:"crontab",value:o.replaceCronNames(a)},timezone:c,...t});return e.apply(n,[a,p,l])}}):e[n]})}},429710,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(880191);n.instrumentNodeSchedule=function(e){return new Proxy(e,{get:(e,t)=>"scheduleJob"===t?new Proxy(e.scheduleJob,{apply(e,t,n){let[i,a,s]=n;if("string"!=typeof i||"string"!=typeof a||"function"!=typeof s)throw Error("Automatic instrumentation of 'node-schedule' requires the first parameter of 'scheduleJob' to be a job name string and the second parameter to be a crontab string");async function l(){return r.withMonitor(i,async()=>{await s?.()},{schedule:{type:"crontab",value:o.replaceCronNames(a)}})}return e.apply(t,[i,a,l])}}):e[t]})}},206871,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(990611),o=e.r(21175),i=e.r(429710);n.cron={instrumentCron:r.instrumentCron,instrumentNodeCron:o.instrumentNodeCron,instrumentNodeSchedule:i.instrumentNodeSchedule}},625331,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(780200),o=e.r(391499),i=e.r(773766),a=e.r(866240),s=e.r(642089),l=e.r(725875),u=e.r(252436),c=e.r(313416),p=e.r(553838),_=e.r(576071),T=e.r(211587),d=e.r(367920),E=e.r(145844),S=e.r(687123),A=e.r(779607),g=e.r(498721),m=e.r(976285),h=e.r(664181),R=e.r(356044),f=e.r(140469),N=e.r(179334),I=e.r(179508),O=e.r(950051),y=e.r(621353),b=e.r(438647),C=e.r(254565),M=e.r(439390),P=e.r(475008),L=e.r(573841),v=e.r(535302),U=e.r(315564),D=e.r(941438),G=e.r(167983),B=e.r(997624),x=e.r(652203),V=e.r(234848),w=e.r(709895),H=e.r(136001),k=e.r(206871),Y=e.r(860015);n.httpIntegration=r.httpIntegration,n.httpServerSpansIntegration=o.httpServerSpansIntegration,n.httpServerIntegration=i.httpServerIntegration,n.SentryHttpInstrumentation=a.SentryHttpInstrumentation,n.nativeNodeFetchIntegration=s.nativeNodeFetchIntegration,n.SentryNodeFetchInstrumentation=l.SentryNodeFetchInstrumentation,n.SentryContextManager=u.SentryContextManager,n.setupOpenTelemetryLogger=c.setupOpenTelemetryLogger,n.INSTRUMENTED=p.INSTRUMENTED,n.generateInstrumentOnce=p.generateInstrumentOnce,n.instrumentWhenWrapped=p.instrumentWhenWrapped,n.getDefaultIntegrations=_.getDefaultIntegrations,n.init=_.init,n.initWithoutDefaultIntegrations=_.initWithoutDefaultIntegrations,n.validateOpenTelemetrySetup=_.validateOpenTelemetrySetup,n.setIsolationScope=T.setIsolationScope,n.NodeClient=d.NodeClient,n.ensureIsWrapped=E.ensureIsWrapped,n.processSessionIntegration=S.processSessionIntegration,n.setNodeAsyncContextStrategy=A.setOpenTelemetryContextAsyncContextStrategy,n.anrIntegration=g.anrIntegration,n.disableAnrDetectionForCallback=g.disableAnrDetectionForCallback,n.SDK_VERSION=m.SDK_VERSION,n.SEMANTIC_ATTRIBUTE_SENTRY_OP=m.SEMANTIC_ATTRIBUTE_SENTRY_OP,n.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN=m.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,n.SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE=m.SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE,n.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE=m.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,n.Scope=m.Scope,n.addBreadcrumb=m.addBreadcrumb,n.addEventProcessor=m.addEventProcessor,n.addIntegration=m.addIntegration,n.captureCheckIn=m.captureCheckIn,n.captureConsoleIntegration=m.captureConsoleIntegration,n.captureEvent=m.captureEvent,n.captureException=m.captureException,n.captureFeedback=m.captureFeedback,n.captureMessage=m.captureMessage,n.captureSession=m.captureSession,n.close=m.close,n.consoleIntegration=m.consoleIntegration,n.consoleLoggingIntegration=m.consoleLoggingIntegration,n.continueTrace=m.continueTrace,n.createConsolaReporter=m.createConsolaReporter,n.createTransport=m.createTransport,n.dedupeIntegration=m.dedupeIntegration,n.endSession=m.endSession,n.envToBool=m.envToBool,n.eventFiltersIntegration=m.eventFiltersIntegration,n.extraErrorDataIntegration=m.extraErrorDataIntegration,n.featureFlagsIntegration=m.featureFlagsIntegration,n.flush=m.flush,n.functionToStringIntegration=m.functionToStringIntegration,n.getActiveSpan=m.getActiveSpan,n.getClient=m.getClient,n.getCurrentScope=m.getCurrentScope,n.getGlobalScope=m.getGlobalScope,n.getIsolationScope=m.getIsolationScope,n.getRootSpan=m.getRootSpan,n.getSpanDescendants=m.getSpanDescendants,n.getSpanStatusFromHttpCode=m.getSpanStatusFromHttpCode,n.getTraceData=m.getTraceData,n.getTraceMetaTags=m.getTraceMetaTags,n.inboundFiltersIntegration=m.inboundFiltersIntegration,n.instrumentSupabaseClient=m.instrumentSupabaseClient,n.isEnabled=m.isEnabled,n.isInitialized=m.isInitialized,n.lastEventId=m.lastEventId,n.linkedErrorsIntegration=m.linkedErrorsIntegration,n.metrics=m.metrics,n.parameterize=m.parameterize,n.profiler=m.profiler,n.requestDataIntegration=m.requestDataIntegration,n.rewriteFramesIntegration=m.rewriteFramesIntegration,n.setContext=m.setContext,n.setCurrentClient=m.setCurrentClient,n.setExtra=m.setExtra,n.setExtras=m.setExtras,n.setHttpStatus=m.setHttpStatus,n.setMeasurement=m.setMeasurement,n.setTag=m.setTag,n.setTags=m.setTags,n.setUser=m.setUser,n.spanToBaggageHeader=m.spanToBaggageHeader,n.spanToJSON=m.spanToJSON,n.spanToTraceHeader=m.spanToTraceHeader,n.startInactiveSpan=m.startInactiveSpan,n.startNewTrace=m.startNewTrace,n.startSession=m.startSession,n.startSpan=m.startSpan,n.startSpanManual=m.startSpanManual,n.supabaseIntegration=m.supabaseIntegration,n.suppressTracing=m.suppressTracing,n.trpcMiddleware=m.trpcMiddleware,n.updateSpanName=m.updateSpanName,n.withActiveSpan=m.withActiveSpan,n.withIsolationScope=m.withIsolationScope,n.withMonitor=m.withMonitor,n.withScope=m.withScope,n.wrapMcpServerWithSentry=m.wrapMcpServerWithSentry,n.zodErrorsIntegration=m.zodErrorsIntegration,n.logger=h,n.nodeContextIntegration=R.nodeContextIntegration,n.nodeRuntimeMetricsIntegration=f.nodeRuntimeMetricsIntegration,n.contextLinesIntegration=N.contextLinesIntegration,n.localVariablesIntegration=I.localVariablesIntegration,n.modulesIntegration=O.modulesIntegration,n.onUncaughtExceptionIntegration=y.onUncaughtExceptionIntegration,n.onUnhandledRejectionIntegration=b.onUnhandledRejectionIntegration,n.spotlightIntegration=C.spotlightIntegration,n.systemErrorIntegration=M.systemErrorIntegration,n.childProcessIntegration=P.childProcessIntegration,n.createSentryWinstonTransport=L.createSentryWinstonTransport,n.pinoIntegration=v.pinoIntegration,n.defaultStackParser=U.defaultStackParser,n.getSentryRelease=U.getSentryRelease,n.createGetModuleFromFilename=D.createGetModuleFromFilename,n.addOriginToSpan=G.addOriginToSpan,n.getRequestUrl=B.getRequestUrl,n.initializeEsmLoader=x.initializeEsmLoader,n.isCjs=V.isCjs,n.createMissingInstrumentationContext=w.createMissingInstrumentationContext,n.makeNodeTransport=H.makeNodeTransport,n.cron=k.cron,n.NODE_VERSION=Y.NODE_VERSION},738190,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(357762),o=e.r(693949),i=e.r(976285),a=e.r(625331),s="Http",l="@opentelemetry_sentry-patched/instrumentation-http",u=22===a.NODE_VERSION.major&&a.NODE_VERSION.minor>=12||23===a.NODE_VERSION.major&&a.NODE_VERSION.minor>=2||a.NODE_VERSION.major>=24,c=a.generateInstrumentOnce(`${s}.sentry`,e=>new a.SentryHttpInstrumentation(e)),p=a.generateInstrumentOnce(s,e=>{let t=new o.HttpInstrumentation({...e,disableIncomingRequestInstrumentation:!0});try{t._diag=r.diag.createComponentLogger({namespace:l}),t.instrumentationName=l}catch{}try{let e={get:()=>!1,set:()=>{}};Object.defineProperty(t,"_httpPatched",e),Object.defineProperty(t,"_httpsPatched",e)}catch{}return t});function _(e,t={}){return"boolean"==typeof e.spans?e.spans:!t.skipOpenTelemetrySetup&&(!!i.hasSpansEnabled(t)||!u)}let T=i.defineIntegration((e={})=>{let t=e.spans??!0,n=e.disableIncomingRequestSpans,r={sessions:e.trackIncomingRequestsAsSessions,sessionFlushingDelayMS:e.sessionFlushingDelayMS,ignoreRequestBody:e.ignoreIncomingRequestBody,maxRequestBodySize:e.maxIncomingRequestBodySize},o={ignoreIncomingRequests:e.ignoreIncomingRequests,ignoreStaticAssets:e.ignoreStaticAssets,ignoreStatusCodes:e.dropSpansForIncomingRequestStatusCodes,instrumentation:e.instrumentation,onSpanCreated:e.incomingRequestSpanHook},l=a.httpServerIntegration(r),T=a.httpServerSpansIntegration(o),d=t&&!n;return{name:s,setup(e){let t=e.getOptions();d&&i.hasSpansEnabled(t)&&T.setup(e)},setupOnce(){let t=_(e,i.getClient()?.getOptions()||{});l.setupOnce(),c({breadcrumbs:e.breadcrumbs,propagateTraceInOutgoingRequests:"boolean"==typeof e.tracePropagation?e.tracePropagation:u||!t,createSpansForOutgoingRequests:u,spans:e.spans,ignoreOutgoingRequests:e.ignoreOutgoingRequests,outgoingRequestHook:(t,n)=>{let r=a.getRequestUrl(n);if(r.startsWith("data:")){let e=i.stripDataUrlContent(r);t.setAttribute("http.url",e),t.setAttribute(i.SEMANTIC_ATTRIBUTE_URL_FULL,e),t.updateName(`${n.method||"GET"} ${e}`)}e.instrumentation?.requestHook?.(t,n)},outgoingResponseHook:e.instrumentation?.responseHook,outgoingRequestApplyCustomAttributes:e.instrumentation?.applyCustomAttributesOnSpan}),t&&p(function(e={}){return{disableOutgoingRequestInstrumentation:u,ignoreOutgoingRequestHook:t=>{let n=a.getRequestUrl(t);if(!n)return!1;let r=e.ignoreOutgoingRequests;return!!r?.(n,t)},requireParentforOutgoingSpans:!1,requestHook:(t,n)=>{a.addOriginToSpan(t,"auto.http.otel.http");let r=a.getRequestUrl(n);if(r.startsWith("data:")){let e=i.stripDataUrlContent(r);t.setAttribute("http.url",e),t.setAttribute(i.SEMANTIC_ATTRIBUTE_URL_FULL,e),t.updateName(`${n.method||"GET"} ${e}`)}e.instrumentation?.requestHook?.(t,n)},responseHook:(t,n)=>{e.instrumentation?.responseHook?.(t,n)},applyCustomAttributesOnSpan:(t,n,r)=>{e.instrumentation?.applyCustomAttributesOnSpan?.(t,n,r)}}}(e))},processEvent:e=>T.processEvent(e)}});n._shouldUseOtelHttpInstrumentation=_,n.httpIntegration=T,n.instrumentOtelHttp=p,n.instrumentSentryHttp=c},105458,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.24.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-undici"},383757,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.UndiciInstrumentation=void 0;let r=e.r(154993),o=e.r(792509),i=e.r(204780),a=e.r(357762),s=e.r(385692),l=e.r(808119),u=e.r(105458);class c extends i.InstrumentationBase{_recordFromReq=new WeakMap;constructor(e={}){super(u.PACKAGE_NAME,u.PACKAGE_VERSION,e)}init(){}disable(){super.disable(),this._channelSubs.forEach(e=>e.unsubscribe()),this._channelSubs.length=0}enable(){super.enable(),this._channelSubs=this._channelSubs||[],this._channelSubs.length>0||(this.subscribeToChannel("undici:request:create",this.onRequestCreated.bind(this)),this.subscribeToChannel("undici:client:sendHeaders",this.onRequestHeaders.bind(this)),this.subscribeToChannel("undici:request:headers",this.onResponseHeaders.bind(this)),this.subscribeToChannel("undici:request:trailers",this.onDone.bind(this)),this.subscribeToChannel("undici:request:error",this.onError.bind(this)))}_updateMetricInstruments(){this._httpClientDurationHistogram=this.meter.createHistogram(l.METRIC_HTTP_CLIENT_REQUEST_DURATION,{description:"Measures the duration of outbound HTTP requests.",unit:"s",valueType:a.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[.005,.01,.025,.05,.075,.1,.25,.5,.75,1,2.5,5,7.5,10]}})}subscribeToChannel(e,t){let n,[o,i]=process.version.replace("v","").split(".").map(e=>Number(e));if(o>18||18===o&&i>=19)r.subscribe?.(e,t),n=()=>r.unsubscribe?.(e,t);else{let o=r.channel(e);o.subscribe(t),n=()=>o.unsubscribe(t)}this._channelSubs.push({name:e,unsubscribe:n})}parseRequestHeaders(e){let t=new Map;if(Array.isArray(e.headers))for(let n=0;n!u||"CONNECT"===e.method||r.ignoreRequestHook?.(e),e=>e&&this._diag.error("caught ignoreRequestHook error: ",e),!0))return;let c=(0,s.hrTime)();try{t=new o.URL(e.path,e.origin)}catch(e){this._diag.warn("could not determine url.full:",e);return}let p=t.protocol.replace(":",""),_=this.getRequestMethod(e.method),T={[l.ATTR_HTTP_REQUEST_METHOD]:_,[l.ATTR_HTTP_REQUEST_METHOD_ORIGINAL]:e.method,[l.ATTR_URL_FULL]:t.toString(),[l.ATTR_URL_PATH]:t.pathname,[l.ATTR_URL_QUERY]:t.search,[l.ATTR_URL_SCHEME]:p},d=t.hostname,E=t.port||({https:"443",http:"80"})[p];T[l.ATTR_SERVER_ADDRESS]=d,E&&!isNaN(Number(E))&&(T[l.ATTR_SERVER_PORT]=Number(E));let S=this.parseRequestHeaders(e).get("user-agent");if(S){let e=Array.isArray(S)?S[S.length-1]:S;T[l.ATTR_USER_AGENT_ORIGINAL]=e}let A=(0,i.safeExecuteInTheMiddle)(()=>r.startSpanHook?.(e),e=>e&&this._diag.error("caught startSpanHook error: ",e),!0);A&&Object.entries(A).forEach(([e,t])=>{T[e]=t});let g=a.context.active(),m=a.trace.getSpan(g);n=!r.requireParentforSpans||m&&a.trace.isSpanContextValid(m.spanContext())?this.tracer.startSpan("_OTHER"===_?"HTTP":_,{kind:a.SpanKind.CLIENT,attributes:T},g):a.trace.wrapSpanContext(a.INVALID_SPAN_CONTEXT),(0,i.safeExecuteInTheMiddle)(()=>r.requestHook?.(n,e),e=>e&&this._diag.error("caught requestHook error: ",e),!0);let h=a.trace.setSpan(a.context.active(),n),R={};a.propagation.inject(h,R);let f=Object.entries(R);for(let t=0;te.toLowerCase()));for(let[n,r]of this.parseRequestHeaders(e).entries())if(t.has(n)){let e=Array.isArray(r)?r:[r];s[`http.request.header.${n}`]=e}}o.setAttributes(s)}onResponseHeaders({request:e,response:t}){let n=this._recordFromReq.get(e);if(!n)return;let{span:r,attributes:o}=n,s={[l.ATTR_HTTP_RESPONSE_STATUS_CODE]:t.statusCode},u=this.getConfig();if((0,i.safeExecuteInTheMiddle)(()=>u.responseHook?.(r,{request:e,response:t}),e=>e&&this._diag.error("caught responseHook error: ",e),!0),u.headersToSpanAttributes?.responseHeaders){let e=new Set;u.headersToSpanAttributes?.responseHeaders.forEach(t=>e.add(t.toLowerCase()));for(let n=0;n=400?a.SpanStatusCode.ERROR:a.SpanStatusCode.UNSET}),n.attributes=Object.assign(o,s)}onDone({request:e}){let t=this._recordFromReq.get(e);if(!t)return;let{span:n,attributes:r,startTime:o}=t;n.end(),this._recordFromReq.delete(e),this.recordRequestDuration(r,o)}onError({request:e,error:t}){let n=this._recordFromReq.get(e);if(!n)return;let{span:r,attributes:o,startTime:i}=n;r.recordException(t),r.setStatus({code:a.SpanStatusCode.ERROR,message:t.message}),r.end(),this._recordFromReq.delete(e),o[l.ATTR_ERROR_TYPE]=t.message,this.recordRequestDuration(o,i)}recordRequestDuration(e,t){let n={};[l.ATTR_HTTP_RESPONSE_STATUS_CODE,l.ATTR_HTTP_REQUEST_METHOD,l.ATTR_SERVER_ADDRESS,l.ATTR_SERVER_PORT,l.ATTR_URL_SCHEME,l.ATTR_ERROR_TYPE].forEach(t=>{t in e&&(n[t]=e[t])});let r=(0,s.hrTimeToMilliseconds)((0,s.hrTimeDuration)(t,(0,s.hrTime)()))/1e3;this._httpClientDurationHistogram.record(r,n)}getRequestMethod(e){return e.toUpperCase()in{CONNECT:!0,OPTIONS:!0,HEAD:!0,GET:!0,POST:!0,PUT:!0,PATCH:!0,DELETE:!0,TRACE:!0,QUERY:!0}?e.toUpperCase():"_OTHER"}}n.UndiciInstrumentation=c},919221,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.UndiciInstrumentation=void 0;var r=e.r(383757);Object.defineProperty(n,"UndiciInstrumentation",{enumerable:!0,get:function(){return r.UndiciInstrumentation}})},354258,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(919221),o=e.r(976285),i=e.r(625331),a="NodeFetch",s=i.generateInstrumentOnce(a,r.UndiciInstrumentation,e=>p(e)),l=i.generateInstrumentOnce(`${a}.sentry`,i.SentryNodeFetchInstrumentation,e=>e),u=o.defineIntegration((e={})=>({name:"NodeFetch",setupOnce(){(function(e,t={}){return"boolean"==typeof e.spans?e.spans:!t.skipOpenTelemetrySetup&&o.hasSpansEnabled(t)})(e,o.getClient()?.getOptions())&&s(e),l(e)}}));function c(e,t="/"){let n=`${e}`;return n.endsWith("/")&&t.startsWith("/")?`${n}${t.slice(1)}`:n.endsWith("/")||t.startsWith("/")?`${n}${t}`:`${n}/${t}`}function p(e={}){return{requireParentforSpans:!1,ignoreRequestHook:t=>{let n=c(t.origin,t.path),r=e.ignoreOutgoingRequests;return!!(r&&n&&r(n))},startSpanHook:e=>{let t=c(e.origin,e.path);if(t.startsWith("data:")){let n=o.stripDataUrlContent(t);return{[o.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.http.otel.node_fetch","http.url":n,[o.SEMANTIC_ATTRIBUTE_URL_FULL]:n,[o.SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME]:`${e.method||"GET"} ${n}`}}return{[o.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.http.otel.node_fetch"}},requestHook:e.requestHook,responseHook:e.responseHook,headersToSpanAttributes:e.headersToSpanAttributes}}n._getConfigWithDefaults=p,n.nativeNodeFetchIntegration=u},866744,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.33.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-fs"},109429,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.SYNC_FUNCTIONS=n.CALLBACK_FUNCTIONS=n.PROMISE_FUNCTIONS=void 0,n.PROMISE_FUNCTIONS=["access","appendFile","chmod","chown","copyFile","cp","lchown","link","lstat","lutimes","mkdir","mkdtemp","open","opendir","readdir","readFile","readlink","realpath","rename","rm","rmdir","stat","symlink","truncate","unlink","utimes","writeFile"],n.CALLBACK_FUNCTIONS=["access","appendFile","chmod","chown","copyFile","cp","exists","lchown","link","lstat","lutimes","mkdir","mkdtemp","open","opendir","readdir","readFile","readlink","realpath","realpath.native","rename","rm","rmdir","stat","symlink","truncate","unlink","utimes","writeFile"],n.SYNC_FUNCTIONS=["accessSync","appendFileSync","chmodSync","chownSync","copyFileSync","cpSync","existsSync","lchownSync","linkSync","lstatSync","lutimesSync","mkdirSync","mkdtempSync","opendirSync","openSync","readdirSync","readFileSync","readlinkSync","realpathSync","realpathSync.native","renameSync","rmdirSync","rmSync","statSync","symlinkSync","truncateSync","unlinkSync","utimesSync","writeFileSync"]},349982,(e,t,n)=>{"use strict";function r(e){let t=e.split(".");if(!(t.length>1))return[e];if(2!==t.length)throw Error(`Invalid member function name ${e}`);return t}Object.defineProperty(n,"__esModule",{value:!0}),n.indexFs=n.splitTwoLevels=void 0,n.splitTwoLevels=r,n.indexFs=function(e,t){if(!t)throw Error(JSON.stringify({member:t}));let[n,o]=r(t);return o?{objectToPatch:e[n],functionNameToPatch:o}:{objectToPatch:e,functionNameToPatch:n}}},982860,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.FsInstrumentation=void 0;let r=e.r(357762),o=e.r(385692),i=e.r(204780),a=e.r(866744),s=e.r(109429),l=e.r(224361),u=e.r(349982);function c(e,t){return Object.assign(e,t)}class p extends i.InstrumentationBase{constructor(e={}){super(a.PACKAGE_NAME,a.PACKAGE_VERSION,e)}init(){return[new i.InstrumentationNodeModuleDefinition("fs",["*"],e=>{for(let t of s.SYNC_FUNCTIONS){let{objectToPatch:n,functionNameToPatch:r}=(0,u.indexFs)(e,t);(0,i.isWrapped)(n[r])&&this._unwrap(n,r),this._wrap(n,r,this._patchSyncFunction.bind(this,t))}for(let t of s.CALLBACK_FUNCTIONS){let{objectToPatch:n,functionNameToPatch:r}=(0,u.indexFs)(e,t);if((0,i.isWrapped)(n[r])&&this._unwrap(n,r),"exists"===t){this._wrap(n,r,this._patchExistsCallbackFunction.bind(this,t));continue}this._wrap(n,r,this._patchCallbackFunction.bind(this,t))}for(let t of s.PROMISE_FUNCTIONS)(0,i.isWrapped)(e.promises[t])&&this._unwrap(e.promises,t),this._wrap(e.promises,t,this._patchPromiseFunction.bind(this,t));return e},e=>{if(void 0!==e){for(let t of s.SYNC_FUNCTIONS){let{objectToPatch:n,functionNameToPatch:r}=(0,u.indexFs)(e,t);(0,i.isWrapped)(n[r])&&this._unwrap(n,r)}for(let t of s.CALLBACK_FUNCTIONS){let{objectToPatch:n,functionNameToPatch:r}=(0,u.indexFs)(e,t);(0,i.isWrapped)(n[r])&&this._unwrap(n,r)}for(let t of s.PROMISE_FUNCTIONS)(0,i.isWrapped)(e.promises[t])&&this._unwrap(e.promises,t)}}),new i.InstrumentationNodeModuleDefinition("fs/promises",["*"],e=>{for(let t of s.PROMISE_FUNCTIONS)(0,i.isWrapped)(e[t])&&this._unwrap(e,t),this._wrap(e,t,this._patchPromiseFunction.bind(this,t));return e},e=>{if(void 0!==e)for(let t of s.PROMISE_FUNCTIONS)(0,i.isWrapped)(e[t])&&this._unwrap(e,t)})]}_patchSyncFunction(e,t){let n=this;return c(function(...i){let a=r.context.active();if(!n._shouldTrace(a))return t.apply(this,i);if(!1===n._runCreateHook(e,{args:i}))return r.context.with((0,o.suppressTracing)(a),t,this,...i);let s=n.tracer.startSpan(`fs ${e}`);try{let l=r.context.with((0,o.suppressTracing)(r.trace.setSpan(a,s)),t,this,...i);return n._runEndHook(e,{args:i,span:s}),l}catch(t){throw s.recordException(t),s.setStatus({message:t.message,code:r.SpanStatusCode.ERROR}),n._runEndHook(e,{args:i,span:s,error:t}),t}finally{s.end()}},t)}_patchCallbackFunction(e,t){let n=this;return c(function(...i){let a=r.context.active();if(!n._shouldTrace(a))return t.apply(this,i);if(!1===n._runCreateHook(e,{args:i}))return r.context.with((0,o.suppressTracing)(a),t,this,...i);let s=i.length-1,l=i[s];if("function"!=typeof l)return t.apply(this,i);{let u=n.tracer.startSpan(`fs ${e}`);i[s]=r.context.bind(a,function(t){return t&&(u.recordException(t),u.setStatus({message:t.message,code:r.SpanStatusCode.ERROR})),n._runEndHook(e,{args:i,span:u,error:t}),u.end(),l.apply(this,arguments)});try{return r.context.with((0,o.suppressTracing)(r.trace.setSpan(a,u)),t,this,...i)}catch(t){throw u.recordException(t),u.setStatus({message:t.message,code:r.SpanStatusCode.ERROR}),n._runEndHook(e,{args:i,span:u,error:t}),u.end(),t}}},t)}_patchExistsCallbackFunction(e,t){let n=this,i=c(function(...i){let a=r.context.active();if(!n._shouldTrace(a))return t.apply(this,i);if(!1===n._runCreateHook(e,{args:i}))return r.context.with((0,o.suppressTracing)(a),t,this,...i);let s=i.length-1,l=i[s];if("function"!=typeof l)return t.apply(this,i);{let u=n.tracer.startSpan(`fs ${e}`);i[s]=r.context.bind(a,function(){return n._runEndHook(e,{args:i,span:u}),u.end(),l.apply(this,arguments)});try{return r.context.with((0,o.suppressTracing)(r.trace.setSpan(a,u)),t,this,...i)}catch(t){throw u.recordException(t),u.setStatus({message:t.message,code:r.SpanStatusCode.ERROR}),n._runEndHook(e,{args:i,span:u,error:t}),u.end(),t}}},t),a=function(e){return new Promise(t=>i(e,t))};return Object.defineProperty(a,"name",{value:e}),Object.defineProperty(i,l.promisify.custom,{value:a}),i}_patchPromiseFunction(e,t){let n=this;return c(async function(...i){let a=r.context.active();if(!n._shouldTrace(a))return t.apply(this,i);if(!1===n._runCreateHook(e,{args:i}))return r.context.with((0,o.suppressTracing)(a),t,this,...i);let s=n.tracer.startSpan(`fs ${e}`);try{let l=await r.context.with((0,o.suppressTracing)(r.trace.setSpan(a,s)),t,this,...i);return n._runEndHook(e,{args:i,span:s}),l}catch(t){throw s.recordException(t),s.setStatus({message:t.message,code:r.SpanStatusCode.ERROR}),n._runEndHook(e,{args:i,span:s,error:t}),t}finally{s.end()}},t)}_runCreateHook(...e){let{createHook:t}=this.getConfig();if("function"==typeof t)try{return t(...e)}catch(e){this._diag.error("caught createHook error",e)}return!0}_runEndHook(...e){let{endHook:t}=this.getConfig();if("function"==typeof t)try{t(...e)}catch(e){this._diag.error("caught endHook error",e)}}_shouldTrace(e){if((0,o.isTracingSuppressed)(e))return!1;let{requireParentSpan:t}=this.getConfig();return(!t||null!=r.trace.getSpan(e))&&!0}}n.FsInstrumentation=p},850653,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.FsInstrumentation=void 0;var r=e.r(982860);Object.defineProperty(n,"FsInstrumentation",{enumerable:!0,get:function(){return r.FsInstrumentation}})},174710,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(850653),o=e.r(976285),i=e.r(625331),a="FileSystem",s=o.defineIntegration((e={})=>({name:a,setupOnce(){i.generateInstrumentOnce(a,()=>new r.FsInstrumentation({requireParentSpan:!0,endHook(t,{args:n,span:r,error:i}){r.updateName(`fs.${t}`),r.setAttributes({[o.SEMANTIC_ATTRIBUTE_SENTRY_OP]:"file",[o.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.file.fs"}),e.recordErrorMessagesAsSpanAttributes&&("string"==typeof n[0]&&T.includes(t)?r.setAttribute("path_argument",n[0]):"string"==typeof n[0]&&"string"==typeof n[1]&&_.includes(t)?(r.setAttribute("target_argument",n[0]),r.setAttribute("path_argument",n[1])):"string"==typeof n[0]&&p.includes(t)?r.setAttribute("prefix_argument",n[0]):"string"==typeof n[0]&&"string"==typeof n[1]&&c.includes(t)?(r.setAttribute("existing_path_argument",n[0]),r.setAttribute("new_path_argument",n[1])):"string"==typeof n[0]&&"string"==typeof n[1]&&u.includes(t)?(r.setAttribute("src_argument",n[0]),r.setAttribute("dest_argument",n[1])):"string"==typeof n[0]&&"string"==typeof n[1]&&l.includes(t)&&(r.setAttribute("old_path_argument",n[0]),r.setAttribute("new_path_argument",n[1]))),i&&e.recordErrorMessagesAsSpanAttributes&&r.setAttribute("fs_error",i.message)}}))()}})),l=["rename","renameSync"],u=["copyFile","cp","copyFileSync","cpSync"],c=["link","linkSync"],p=["mkdtemp","mkdtempSync"],_=["symlink","symlinkSync"],T=["access","appendFile","chmod","chown","exists","mkdir","lchown","lstat","lutimes","open","opendir","readdir","readFile","readlink","realpath","realpath.native","rm","rmdir","stat","truncate","unlink","utimes","writeFile","accessSync","appendFileSync","chmodSync","chownSync","existsSync","lchownSync","lstatSync","lutimesSync","opendirSync","mkdirSync","openSync","readdirSync","readFileSync","readlinkSync","realpathSync","realpathSync.native","rmdirSync","rmSync","statSync","truncateSync","unlinkSync","utimesSync","writeFileSync"];n.fsIntegration=s},418871,(e,t,n)=>{"use strict";var r;Object.defineProperty(n,"__esModule",{value:!0}),n.ExpressLayerType=void 0,(r=n.ExpressLayerType||(n.ExpressLayerType={})).ROUTER="router",r.MIDDLEWARE="middleware",r.REQUEST_HANDLER="request_handler"},2458,(e,t,n)=>{"use strict";var r;Object.defineProperty(n,"__esModule",{value:!0}),n.AttributeNames=void 0,(r=n.AttributeNames||(n.AttributeNames={})).EXPRESS_TYPE="express.type",r.EXPRESS_NAME="express.name"},947389,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n._LAYERS_STORE_PROPERTY=n.kLayerPatched=void 0,n.kLayerPatched=Symbol("express-layer-patched"),n._LAYERS_STORE_PROPERTY="__ot_middlewares"},169560,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getActualMatchedRoute=n.getConstructedRoute=n.getLayerPath=n.asErrorAndMessage=n.isLayerIgnored=n.getLayerMetadata=n.getRouterPath=n.storeLayerPath=void 0;let r=e.r(418871),o=e.r(2458),i=e.r(947389);n.storeLayerPath=(e,t)=>(!1===Array.isArray(e[i._LAYERS_STORE_PROPERTY])&&Object.defineProperty(e,i._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]}),void 0===t)?{isLayerPathStored:!1}:(e[i._LAYERS_STORE_PROPERTY].push(t),{isLayerPathStored:!0}),n.getRouterPath=(e,t)=>{let r=t.handle?.stack?.[0];return r?.route?.path?`${e}${r.route.path}`:r?.handle?.stack?(0,n.getRouterPath)(e,r):e},n.getLayerMetadata=(e,t,i)=>{if("router"===t.name){let a=(0,n.getRouterPath)("",t)||i||e||"/";return{attributes:{[o.AttributeNames.EXPRESS_NAME]:a,[o.AttributeNames.EXPRESS_TYPE]:r.ExpressLayerType.ROUTER},name:`router - ${a}`}}return"bound dispatch"===t.name||"handle"===t.name?{attributes:{[o.AttributeNames.EXPRESS_NAME]:(e||i)??"request handler",[o.AttributeNames.EXPRESS_TYPE]:r.ExpressLayerType.REQUEST_HANDLER},name:`request handler${t.path?` - ${e||i}`:""}`}:{attributes:{[o.AttributeNames.EXPRESS_NAME]:t.name,[o.AttributeNames.EXPRESS_TYPE]:r.ExpressLayerType.MIDDLEWARE},name:`middleware - ${t.name}`}};let a=(e,t)=>{if("string"==typeof t)return t===e;if(t instanceof RegExp)return t.test(e);if("function"==typeof t)return t(e);throw TypeError("Pattern is in unsupported datatype")};n.isLayerIgnored=(e,t,n)=>{if(Array.isArray(n?.ignoreLayersType)&&n?.ignoreLayersType?.includes(t))return!0;if(!1===Array.isArray(n?.ignoreLayers))return!1;try{for(let t of n.ignoreLayers)if(a(e,t))return!0}catch(e){}return!1},n.asErrorAndMessage=e=>e instanceof Error?[e,e.message]:[String(e),String(e)],n.getLayerPath=e=>{let t=e[0];return Array.isArray(t)?t.map(e=>s(e)||"").join(","):s(t)};let s=e=>"string"==typeof e?e:e instanceof RegExp||"number"==typeof e?e.toString():void 0;function l(e){let t=(Array.isArray(e[i._LAYERS_STORE_PROPERTY])?e[i._LAYERS_STORE_PROPERTY]:[]).filter(e=>"/"!==e&&"/*"!==e);return 1===t.length&&"*"===t[0]?"*":t.join("").replace(/\/{2,}/g,"/")}n.getConstructedRoute=l,n.getActualMatchedRoute=function(e){var t;let n=Array.isArray(e[i._LAYERS_STORE_PROPERTY])?e[i._LAYERS_STORE_PROPERTY]:[];if(0===n.length)return;if(n.every(e=>"/"===e))return"/"===e.originalUrl?"/":void 0;let r=l(e);if("*"===r||r.includes("/")&&(r.includes(",")||r.includes("\\")||r.includes("*")||r.includes("[")))return r;let o=r.startsWith("/")?r:`/${r}`;return o.length>0&&(e.originalUrl===o||e.originalUrl.startsWith(o)||(t=o).includes(":")||t.includes("*"))?o:void 0}},913652,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.62.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-express"},473222,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.ExpressInstrumentation=void 0;let r=e.r(385692),o=e.r(357762),i=e.r(418871),a=e.r(2458),s=e.r(169560),l=e.r(913652),u=e.r(204780),c=e.r(808119),p=e.r(947389);class _ extends u.InstrumentationBase{constructor(e={}){super(l.PACKAGE_NAME,l.PACKAGE_VERSION,e)}init(){return[new u.InstrumentationNodeModuleDefinition("express",[">=4.0.0 <6"],e=>{let t="function"==typeof e?.Router?.prototype?.route,n=t?e.Router.prototype:e.Router;return(0,u.isWrapped)(n.route)&&this._unwrap(n,"route"),this._wrap(n,"route",this._getRoutePatch()),(0,u.isWrapped)(n.use)&&this._unwrap(n,"use"),this._wrap(n,"use",this._getRouterUsePatch()),(0,u.isWrapped)(e.application.use)&&this._unwrap(e.application,"use"),this._wrap(e.application,"use",this._getAppUsePatch(t)),e},e=>{if(void 0===e)return;let t="function"==typeof e?.Router?.prototype?.route?e.Router.prototype:e.Router;this._unwrap(t,"route"),this._unwrap(t,"use"),this._unwrap(e.application,"use")})]}_getRoutePatch(){let e=this;return function(t){return function(...n){let r=t.apply(this,n),o=this.stack[this.stack.length-1];return e._applyPatch(o,(0,s.getLayerPath)(n)),r}}}_getRouterUsePatch(){let e=this;return function(t){return function(...n){let r=t.apply(this,n),o=this.stack[this.stack.length-1];return e._applyPatch(o,(0,s.getLayerPath)(n)),r}}}_getAppUsePatch(e){let t=this;return function(n){return function(...r){let o=e?this.router:this._router,i=n.apply(this,r);if(o){let e=o.stack[o.stack.length-1];t._applyPatch(e,(0,s.getLayerPath)(r))}return i}}}_applyPatch(e,t){let n=this;!0!==e[p.kLayerPatched]&&(e[p.kLayerPatched]=!0,this._wrap(e,"handle",l=>{if(4===l.length)return l;let _=function(_,T){let{isLayerPathStored:d}=(0,s.storeLayerPath)(_,t),E=(0,s.getConstructedRoute)(_),S=(0,s.getActualMatchedRoute)(_),A={[c.ATTR_HTTP_ROUTE]:S},g=(0,s.getLayerMetadata)(E,e,t),m=g.attributes[a.AttributeNames.EXPRESS_TYPE],h=(0,r.getRPCMetadata)(o.context.active());if(h?.type===r.RPCType.HTTP&&(h.route=S),(0,s.isLayerIgnored)(g.name,m,n.getConfig()))return m===i.ExpressLayerType.MIDDLEWARE&&_[p._LAYERS_STORE_PROPERTY].pop(),l.apply(this,arguments);if(void 0===o.trace.getSpan(o.context.active()))return l.apply(this,arguments);let R=n._getSpanName({request:_,layerType:m,route:E},g.name),f=n.tracer.startSpan(R,{attributes:Object.assign(A,g.attributes)}),N=o.context.active(),I=o.trace.setSpan(N,f),{requestHook:O}=n.getConfig();O&&(0,u.safeExecuteInTheMiddle)(()=>O(f,{request:_,layerType:m,route:E}),e=>{e&&o.diag.error("express instrumentation: request hook failed",e)},!0);let y=!1;g.attributes[a.AttributeNames.EXPRESS_TYPE]===i.ExpressLayerType.ROUTER&&(f.end(),y=!0,I=N);let b=()=>{!1===y&&(y=!0,f.end())},C=Array.from(arguments),M=C.findIndex(e=>"function"==typeof e);M>=0&&(arguments[M]=function(){let e=arguments[0],t=![void 0,null,"route","router"].includes(e);if(!y&&t){let[t,n]=(0,s.asErrorAndMessage)(e);f.recordException(t),f.setStatus({code:o.SpanStatusCode.ERROR,message:n})}!1===y&&(y=!0,_.res?.removeListener("finish",b),f.end()),!(_.route&&t)&&d&&_[p._LAYERS_STORE_PROPERTY].pop();let n=C[M],r=o.context.active(),i=o.trace.getSpan(N),a=i?o.trace.setSpan(r,i):r;return o.context.bind(a,n).apply(this,arguments)});try{return o.context.bind(I,l).apply(this,arguments)}catch(n){let[e,t]=(0,s.asErrorAndMessage)(n);throw f.recordException(e),f.setStatus({code:o.SpanStatusCode.ERROR,message:t}),n}finally{y||T.once("finish",b)}};for(let e in l)Object.defineProperty(_,e,{get:()=>l[e],set(t){l[e]=t}});return _}))}_getSpanName(e,t){let{spanNameHook:n}=this.getConfig();if(!(n instanceof Function))return t;try{return n(e,t)??t}catch(e){return o.diag.error("express instrumentation: error calling span name rewrite hook",e),t}}}n.ExpressInstrumentation=_},873311,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.AttributeNames=n.ExpressLayerType=n.ExpressInstrumentation=void 0;var r=e.r(473222);Object.defineProperty(n,"ExpressInstrumentation",{enumerable:!0,get:function(){return r.ExpressInstrumentation}});var o=e.r(418871);Object.defineProperty(n,"ExpressLayerType",{enumerable:!0,get:function(){return o.ExpressLayerType}});var i=e.r(2458);Object.defineProperty(n,"AttributeNames",{enumerable:!0,get:function(){return i.AttributeNames}})},866779,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),n.DEBUG_BUILD="u"{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(873311),o=e.r(976285),i=e.r(625331),a=e.r(866779),s="Express",l=i.generateInstrumentOnce(s,()=>new r.ExpressInstrumentation({requestHook:e=>{let t,n,r;return i.addOriginToSpan(e,"auto.http.otel.express"),(n=(t=o.spanToJSON(e).data)["express.type"])&&e.setAttribute(o.SEMANTIC_ATTRIBUTE_SENTRY_OP,`${n}.express`),void("string"==typeof(r=t["express.name"])&&e.updateName(r))},spanNameHook:(e,t)=>(function(e,t){if(o.getIsolationScope()===o.getDefaultIsolationScope())return a.DEBUG_BUILD&&o.debug.warn("Isolation scope is still default isolation scope - skipping setting transactionName"),t;if("request_handler"===e.layerType){let t=e.request,n=t.method?t.method.toUpperCase():"GET";o.getIsolationScope().setTransactionName(`${n} ${e.route}`)}return t})(e,t)})),u=o.defineIntegration(()=>({name:s,setupOnce(){l()}}));function c(e){return function(t,n,r,i){let a=o.httpRequestToRequestData(n);o.getIsolationScope().setSDKProcessingMetadata({normalizedRequest:a}),(e?.shouldHandleError||function(e){let t;return((t=e.status||e.statusCode||e.status_code||e.output?.statusCode)?parseInt(t,10):500)>=500})(t)&&(r.sentry=o.captureException(t,{mechanism:{type:"auto.middleware.express",handled:!1}})),i(t)}}n.expressErrorHandler=c,n.expressIntegration=u,n.instrumentExpress=l,n.setupExpressErrorHandler=function(e,t){e.use(function(e,t,n){let r=o.httpRequestToRequestData(e);o.getIsolationScope().setSDKProcessingMetadata({normalizedRequest:r}),n()}),e.use(c(t)),i.ensureIsWrapped(e.use,"express")}},682342,e=>{"use strict";e.s([],577208),e.i(577208);var t,n,r=e.i(545364),o=e.i(605809);let i=Symbol.for("io.opentelemetry.js.api.logs"),a=globalThis;class s{emit(e){}}let l=new s,u=new class{getLogger(e,t,n){return new s}};class c{constructor(e,t,n,r){this._provider=e,this.name=t,this.version=n,this.options=r}emit(e){this._getLogger().emit(e)}_getLogger(){if(this._delegate)return this._delegate;let e=this._provider._getDelegateLogger(this.name,this.version,this.options);return e?(this._delegate=e,this._delegate):l}}class p{getLogger(e,t,n){var r;return null!=(r=this._getDelegateLogger(e,t,n))?r:new c(this,e,t,n)}_getDelegate(){var e;return null!=(e=this._delegate)?e:u}_setDelegate(e){this._delegate=e}_getDelegateLogger(e,t,n){var r;return null==(r=this._delegate)?void 0:r.getLogger(e,t,n)}}class _{constructor(){this._proxyLoggerProvider=new p}static getInstance(){return this._instance||(this._instance=new _),this._instance}setGlobalLoggerProvider(e){return a[i]?this.getLoggerProvider():(a[i]=t=>1===t?e:u,this._proxyLoggerProvider._setDelegate(e),e)}getLoggerProvider(){var e,t;return null!=(t=null==(e=a[i])?void 0:e.call(a,1))?t:this._proxyLoggerProvider}getLogger(e,t,n){return this.getLoggerProvider().getLogger(e,t,n)}disable(){delete a[i],this._proxyLoggerProvider=new p}}let T=_.getInstance();function d(e){let t=e.tracerProvider||r.trace.getTracerProvider(),n=e.meterProvider||o.metrics.getMeterProvider(),i=e.loggerProvider||T.getLoggerProvider(),a=e.instrumentations?.flat()??[];for(let e=0,r=a.length;e{a.forEach(e=>e.disable())}}var E=e.i(814747),S=e.i(224361),A=e.i(978116);let g=/^(?:v)?(?(?0|[1-9]\d*)\.(?0|[1-9]\d*)\.(?0|[1-9]\d*))(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,m=/^(?<|>|=|==|<=|>=|~|\^|~>)?\s*(?:v)?(?(?x|X|\*|0|[1-9]\d*)(?:\.(?x|X|\*|0|[1-9]\d*))?(?:\.(?x|X|\*|0|[1-9]\d*))?)(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,h={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function R(e,t,n,r){if(t.includes("||")){for(let o of t.trim().split("||"))if(f(e,o,n,r))return!0;return!1}if(t.includes(" - ")){var o,i;o=t,i=r,t=o.replace(x,(e,t,n,r,o,a,s,l,u,c,p,_)=>(t=N(n)?"":N(r)?`>=${n}.0.0${i?.includePrerelease?"-0":""}`:N(o)?`>=${n}.${r}.0${i?.includePrerelease?"-0":""}`:a?`>=${t}`:`>=${t}${i?.includePrerelease?"-0":""}`,l=N(u)?"":N(c)?`<${+u+1}.0.0-0`:N(p)?`<${u}.${+c+1}.0-0`:_?`<=${u}.${c}.${p}-${_}`:i?.includePrerelease?`<${u}.${c}.${+p+1}-0`:`<=${l}`,`${t} ${l}`.trim()))}else if(t.includes(" ")){for(let o of t.trim().replace(/\s{2,}/g," ").split(" "))if(!f(e,o,n,r))return!1;return!0}return f(e,t,n,r)}function f(e,t,n,r){var o,i,a,s,l,u;let c;if((o=t,i=r,t=(l=o=(a=o=o.trim(),s=i,c=s?.includePrerelease?"-0":"",o=a.replace(w,(e,t,n,r,o)=>N(t)?"":N(n)?`>=${t}.0.0${c} <${+t+1}.0.0-0`:N(r)?"0"===t?`>=${t}.${n}.0${c} <${t}.${+n+1}.0-0`:`>=${t}.${n}.0${c} <${+t+1}.0.0-0`:o?"0"===t?"0"===n?`>=${t}.${n}.${r}-${o} <${t}.${n}.${+r+1}-0`:`>=${t}.${n}.${r}-${o} <${t}.${+n+1}.0-0`:`>=${t}.${n}.${r}-${o} <${+t+1}.0.0-0`:"0"===t?"0"===n?`>=${t}.${n}.${r}${c} <${t}.${n}.${+r+1}-0`:`>=${t}.${n}.${r}${c} <${t}.${+n+1}.0-0`:`>=${t}.${n}.${r} <${+t+1}.0.0-0`)).replace(V,(e,t,n,r,o)=>N(t)?"":N(n)?`>=${t}.0.0 <${+t+1}.0.0-0`:N(r)?`>=${t}.${n}.0 <${t}.${+n+1}.0-0`:o?`>=${t}.${n}.${r}-${o} <${t}.${+n+1}.0-0`:`>=${t}.${n}.${r} <${t}.${+n+1}.0-0`),u=i,o=l.replace(B,(e,t,n,r,o,i)=>{let a=N(n),s=a||N(r),l=s||N(o);return"="===t&&l&&(t=""),i=u?.includePrerelease?"-0":"",a?e=">"===t||"<"===t?"<0.0.0-0":"*":t&&l?(s&&(r=0),o=0,">"===t?(t=">=",s?(n=+n+1,r=0):r=+r+1,o=0):"<="===t&&(t="<",s?n=+n+1:r=+r+1),"<"===t&&(i="-0"),e=`${t+n}.${r}.${o}${i}`):s?e=`>=${n}.0.0${i} <${+n+1}.0.0-0`:l&&(e=`>=${n}.${r}.0${i} <${n}.${+r+1}.0-0`),e})).trim()).includes(" "))return R(e,t,n,r);{let r=function(e){if(!e)return{};let t=e.match(m);if(!t)return A.diag.error(`Invalid range: ${e}`),{invalid:!0};let n=t.groups.op,r=t.groups.version,o=t.groups.prerelease,i=t.groups.build,a=r.split("."),s=o?.split(".");return"=="===n&&(n="="),{op:n||"=",version:r,versionSegments:a,versionSegmentCount:a.length,prerelease:o,prereleaseSegments:s,prereleaseSegmentCount:s?s.length:0,build:i}}(t);return n.push(r),function(e,t){if(t.invalid)return!1;if(!t.version||I(t.version))return!0;let n=y(e.versionSegments||[],t.versionSegments||[]);if(0===n){let r=e.prereleaseSegments||[],o=t.prereleaseSegments||[];n=r.length||o.length?!r.length&&o.length?1:r.length&&!o.length?-1:y(r,o):0}return h[t.op]?.includes(n)}(e,r)}}function N(e){return!e||"x"===e.toLowerCase()||"*"===e}function I(e){return"*"===e||"x"===e||"X"===e}function O(e){let t=parseInt(e,10);return isNaN(t)?e:t}function y(e,t){for(let n=0;nr?1:n)?=?)\\s*${G}$`),x=RegExp(`^\\s*(${G})\\s+-\\s+(${G})\\s*$`),V=RegExp(`^(?:~>?)${G}$`),w=RegExp(`^(?:\\^)${G}$`),H=console.error.bind(console);function k(e,t,n){let r=!!e[t]&&Object.prototype.propertyIsEnumerable.call(e,t);Object.defineProperty(e,t,{configurable:!0,enumerable:r,writable:!0,value:n})}let Y=(e,t,n)=>{if(!e||!e[t])return void H("no original function "+String(t)+" to wrap");if(!n){H("no wrapper function"),H(Error().stack);return}let r=e[t];if("function"!=typeof r||"function"!=typeof n)return void H("original object and wrapper must be functions");let o=n(r,t);return k(o,"__original",r),k(o,"__unwrap",()=>{e[t]===o&&k(e,t,r)}),k(o,"__wrapped",!0),k(e,t,o),o},j=(e,t,n)=>{if(e)Array.isArray(e)||(e=[e]);else{H("must provide one or more modules to patch"),H(Error().stack);return}t&&Array.isArray(t)?e.forEach(e=>{t.forEach(t=>{Y(e,t,n)})}):H("must provide one or more functions to wrap on modules")},F=(e,t)=>{if(!e||!e[t]){H("no function to unwrap."),H(Error().stack);return}let n=e[t];n.__unwrap?n.__unwrap():H("no original to unwrap to -- has "+String(t)+" already been unwrapped?")},W=(e,t)=>{if(e)Array.isArray(e)||(e=[e]);else{H("must provide one or more modules to patch"),H(Error().stack);return}t&&Array.isArray(t)?e.forEach(e=>{t.forEach(t=>{F(e,t)})}):H("must provide one or more functions to unwrap on modules")};function K(e){e&&e.logger&&("function"!=typeof e.logger?H("new logger isn't a function, not replacing"):H=e.logger)}K.wrap=Y,K.massWrap=j,K.unwrap=F,K.massUnwrap=W;class X{_config={};_tracer;_meter;_logger;_diag;instrumentationName;instrumentationVersion;constructor(e,t,n){this.instrumentationName=e,this.instrumentationVersion=t,this.setConfig(n),this._diag=A.diag.createComponentLogger({namespace:e}),this._tracer=r.trace.getTracer(e,t),this._meter=o.metrics.getMeter(e,t),this._logger=T.getLogger(e,t),this._updateMetricInstruments()}_wrap=Y;_unwrap=F;_massWrap=j;_massUnwrap=W;get meter(){return this._meter}setMeterProvider(e){this._meter=e.getMeter(this.instrumentationName,this.instrumentationVersion),this._updateMetricInstruments()}get logger(){return this._logger}setLoggerProvider(e){this._logger=e.getLogger(this.instrumentationName,this.instrumentationVersion)}getModuleDefinitions(){let e=this.init()??[];return Array.isArray(e)?e:[e]}_updateMetricInstruments(){}getConfig(){return this._config}setConfig(e){this._config={enabled:!0,...e}}setTracerProvider(e){this._tracer=e.getTracer(this.instrumentationName,this.instrumentationVersion)}get tracer(){return this._tracer}_runSpanCustomizationHook(e,t,n,r){if(e)try{e(n,r)}catch(e){this._diag.error("Error running span customization hook due to exception in handler",{triggerName:t},e)}}}var Z=e.i(156823);class J{hooks=[];children=new Map}class ${_trie=new J;_counter=0;insert(e){let t=this._trie;for(let n of e.moduleName.split("/")){let e=t.children.get(n);e||(e=new J,t.children.set(n,e)),t=e}t.hooks.push({hook:e,insertedId:this._counter++})}search(e,{maintainInsertionOrder:t,fullOnly:n}={}){let r=this._trie,o=[],i=!0;for(let t of e.split("/")){let e=r.children.get(t);if(!e){i=!1;break}n||o.push(...e.hooks),r=e}return(n&&i&&o.push(...r.hooks),0===o.length)?[]:1===o.length?[o[0].hook]:(t&&o.sort((e,t)=>e.insertedId-t.insertedId),o.map(({hook:e})=>e))}}let Q=["afterEach","after","beforeEach","before","describe","it"].every(t=>"function"==typeof e.g[t]);class z{_moduleNameTrie=new $;static _instance;constructor(){this._initialize()}_initialize(){new Z.Hook(null,{internals:!0},(e,t,n)=>{var r;let o=(r=t,"/"!==E.sep?r.split(E.sep).join("/"):r);for(let{onRequire:r}of this._moduleNameTrie.search(o,{maintainInsertionOrder:!0,fullOnly:void 0===n}))e=r(e,t,n);return e})}register(e,t){let n={moduleName:e,onRequire:t};return this._moduleNameTrie.insert(n),n}static getInstance(){return Q?new z:this._instance=this._instance??new z}}var q=e.i(74667),ee=e.i(522734);function et(e,t,n){let r,o;try{o=e()}catch(e){r=e}finally{if(t(r,o),r&&!n)throw r;return o}}async function en(e,t,n){let r,o;try{o=await e()}catch(e){r=e}finally{if(await t(r,o),r&&!n)throw r;return o}}function er(e){return"function"==typeof e&&"function"==typeof e.__original&&"function"==typeof e.__unwrap&&!0===e.__wrapped}class eo extends X{_modules;_hooks=[];_requireInTheMiddleSingleton=z.getInstance();_enabled=!1;constructor(e,t,n){super(e,t,n);let r=this.init();r&&!Array.isArray(r)&&(r=[r]),this._modules=r||[],this._config.enabled&&this.enable()}_wrap=(e,t,n)=>{if(er(e[t])&&this._unwrap(e,t),!S.types.isProxy(e))return Y(e,t,n);{let r=Y(Object.assign({},e),t,n);return Object.defineProperty(e,t,{value:r}),r}};_unwrap=(e,t)=>S.types.isProxy(e)?Object.defineProperty(e,t,{value:e[t]}):F(e,t);_massWrap=(e,t,n)=>{e?(Array.isArray(e)||(e=[e]),t&&Array.isArray(t))?e.forEach(e=>{t.forEach(t=>{this._wrap(e,t,n)})}):A.diag.error("must provide one or more functions to wrap on modules"):A.diag.error("must provide one or more modules to patch")};_massUnwrap=(e,t)=>{e?(Array.isArray(e)||(e=[e]),t&&Array.isArray(t))?e.forEach(e=>{t.forEach(t=>{this._unwrap(e,t)})}):A.diag.error("must provide one or more functions to wrap on modules"):A.diag.error("must provide one or more modules to patch")};_warnOnPreloadedModules(){this._modules.forEach(t=>{let{name:n}=t;try{let t=(()=>{let e=Error("Cannot find module as expression is too dynamic");throw e.code="MODULE_NOT_FOUND",e})();e.c[t]&&this._diag.warn(`Module ${n} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${n}`)}catch{}})}_extractPackageVersion(e){try{let t=(0,ee.readFileSync)(E.join(e,"package.json"),{encoding:"utf8"}),n=JSON.parse(t).version;return"string"==typeof n?n:void 0}catch{A.diag.warn("Failed extracting version",e)}}_onRequire(e,t,n,r){if(!r)return"function"==typeof e.patch&&(e.moduleExports=t,this._enabled)?(this._diag.debug("Applying instrumentation patch for nodejs core module on require hook",{module:e.name}),e.patch(t)):t;let o=this._extractPackageVersion(r);if(e.moduleVersion=o,e.name===n)return ei(e.supportedVersions,o,e.includePrerelease)&&"function"==typeof e.patch&&(e.moduleExports=t,this._enabled)?(this._diag.debug("Applying instrumentation patch for module on require hook",{module:e.name,version:e.moduleVersion,baseDir:r}),e.patch(t,e.moduleVersion)):t;let i=e.files??[],a=E.normalize(n);return i.filter(t=>t.name===a&&ei(t.supportedVersions,o,e.includePrerelease)).reduce((t,n)=>(n.moduleExports=t,this._enabled)?(this._diag.debug("Applying instrumentation patch for nodejs module file on require hook",{module:e.name,version:e.moduleVersion,fileName:n.name,baseDir:r}),n.patch(t,e.moduleVersion)):t,t)}enable(){if(!this._enabled){if(this._enabled=!0,this._hooks.length>0){for(let e of this._modules)for(let t of("function"==typeof e.patch&&e.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module on instrumentation enabled",{module:e.name,version:e.moduleVersion}),e.patch(e.moduleExports,e.moduleVersion)),e.files))t.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module file on instrumentation enabled",{module:e.name,version:e.moduleVersion,fileName:t.name}),t.patch(t.moduleExports,e.moduleVersion));return}for(let e of(this._warnOnPreloadedModules(),this._modules)){let t=(t,n,r)=>{if(!r&&E.isAbsolute(n)){let e=E.parse(n);n=e.name,r=e.dir}return this._onRequire(e,t,n,r)},n=(t,n,r)=>this._onRequire(e,t,n,r),r=E.isAbsolute(e.name)?new Z.Hook([e.name],{internals:!0},n):this._requireInTheMiddleSingleton.register(e.name,n);this._hooks.push(r);let o=new q.Hook([e.name],{internals:!0},t);this._hooks.push(o)}}}disable(){if(this._enabled)for(let e of(this._enabled=!1,this._modules))for(let t of("function"==typeof e.unpatch&&e.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module on instrumentation disabled",{module:e.name,version:e.moduleVersion}),e.unpatch(e.moduleExports,e.moduleVersion)),e.files))t.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module file on instrumentation disabled",{module:e.name,version:e.moduleVersion,fileName:t.name}),t.unpatch(t.moduleExports,e.moduleVersion))}isEnabled(){return this._enabled}}function ei(e,t,n){return void 0===t?e.includes("*"):e.some(e=>(function(e,t,n){var r,o,i;if(!("string"==typeof(r=e)&&g.test(r)))return A.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let a=function(e){let t=e.match(g);if(!t)return void A.diag.error(`Invalid version: ${e}`);let n=t.groups.version,r=t.groups.prerelease,o=t.groups.build,i=n.split("."),a=r?.split(".");return{op:void 0,version:n,versionSegments:i,versionSegmentCount:i.length,prerelease:r,prereleaseSegments:a,prereleaseSegmentCount:a?a.length:0,build:o}}(e);if(!a)return!1;let s=[],l=R(a,t,s,n);return l&&!n?.includePrerelease?(o=a,i=s,!o.prerelease||i.some(e=>e.prerelease&&e.version===o.version)):l})(t,e,{includePrerelease:n}))}class ea{files;name;supportedVersions;patch;unpatch;constructor(e,t,n,r,o){this.files=o||[],this.name=e,this.supportedVersions=t,this.patch=n,this.unpatch=r}}class es{name;supportedVersions;patch;unpatch;constructor(e,t,n,r){this.name=(0,E.normalize)(e),this.supportedVersions=t,this.patch=n,this.unpatch=r}}function el(e,t){let r=n.OLD;for(let o of t?.split(",").map(e=>e.trim()).filter(e=>""!==e)??[])if(o.toLowerCase()===e+"/dup"){r=n.DUPLICATE;break}else o.toLowerCase()===e&&(r=n.STABLE);return r}(t=n||(n={}))[t.STABLE=1]="STABLE",t[t.OLD=2]="OLD",t[t.DUPLICATE=3]="DUPLICATE",e.s(["InstrumentationBase",()=>eo,"InstrumentationNodeModuleDefinition",()=>ea,"InstrumentationNodeModuleFile",()=>es,"SemconvStability",()=>n,"isWrapped",()=>er,"registerInstrumentations",()=>d,"safeExecuteInTheMiddle",()=>et,"safeExecuteInTheMiddleAsync",()=>en,"semconvStabilityFromStr",()=>el],682342)},62701,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.range=n.balanced=void 0,n.balanced=(e,t,o)=>{let i=e instanceof RegExp?r(e,o):e,a=t instanceof RegExp?r(t,o):t,s=null!==i&&null!=a&&(0,n.range)(i,a,o);return s&&{start:s[0],end:s[1],pre:o.slice(0,s[0]),body:o.slice(s[0]+i.length,s[1]),post:o.slice(s[1]+a.length)}};let r=(e,t)=>{let n=t.match(e);return n?n[0]:null};n.range=(e,t,n)=>{let r,o,i,a,s,l=n.indexOf(e),u=n.indexOf(t,l+1),c=l;if(l>=0&&u>0){if(e===t)return[l,u];for(r=[],i=n.length;c>=0&&!s;){if(c===l)r.push(c),l=n.indexOf(e,c+1);else if(1===r.length){let e=r.pop();void 0!==e&&(s=[e,u])}else void 0!==(o=r.pop())&&o=0?l:u}r.length&&void 0!==a&&(s=[i,a])}return s}},872050,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.EXPANSION_MAX=void 0,n.expand=function(e,t={}){if(!e)return[];let{max:u=n.EXPANSION_MAX}=t;return"{}"===e.slice(0,2)&&(e="\\{\\}"+e.slice(2)),(function e(t,n,o){let i=[],s=(0,r.balanced)("{","}",t);if(!s)return[t];let l=s.pre,u=s.post.length?e(s.post,n,!1):[""];if(/\$$/.test(s.pre))for(let e=0;e=0;if(!d&&!E)return s.post.match(/,(?!,).*\}/)?e(t=s.pre+"{"+s.body+a+s.post,n,!0):[t];if(d)c=s.body.split(/\.\./);else if(1===(c=function e(t){if(!t)return[""];let n=[],o=(0,r.balanced)("{","}",t);if(!o)return t.split(",");let{pre:i,body:a,post:s}=o,l=i.split(",");l[l.length-1]+="{"+a+"}";let u=e(s);return s.length&&(l[l.length-1]+=u.shift(),l.push.apply(l,u)),n.push.apply(n,l),n}(s.body)).length&&void 0!==c[0]&&1===(c=e(c[0],n,!1).map(R)).length)return u.map(e=>s.pre+c[0]+e);if(d&&void 0!==c[0]&&void 0!==c[1]){let e=m(c[0]),t=m(c[1]),n=Math.max(c[0].length,c[1].length),r=3===c.length&&void 0!==c[2]?Math.max(Math.abs(m(c[2])),1):1,o=N;t0){let n=Array(t+1).join("0");e=a<0?"-"+n+e.slice(1):n+e}}p.push(e)}}else{p=[];for(let t=0;t=t}n.EXPANSION_MAX=1e5},707441,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.assertValidPattern=void 0,n.assertValidPattern=e=>{if("string"!=typeof e)throw TypeError("invalid pattern");if(e.length>65536)throw TypeError("pattern is too long")}},523132,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.parseClass=void 0;let r={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},o=e=>e.replace(/[[\]\\-]/g,"\\$&");n.parseClass=(e,t)=>{if("["!==e.charAt(t))throw Error("not in a brace expression");let n=[],i=[],a=t+1,s=!1,l=!1,u=!1,c=!1,p=t,_="";e:for(;a_?n.push(o(_)+"-"+o(T)):T===_&&n.push(o(T)),_="",a++;continue}if(e.startsWith("-]",a+1)){n.push(o(T+"-")),a+=2;continue}if(e.startsWith("-",a+1)){_=T,a+=2;continue}n.push(o(T)),a++}if(p{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.unescape=void 0,n.unescape=(e,{windowsPathsNoEscape:t=!1,magicalBraces:n=!0}={})=>n?t?e.replace(/\[([^/\\])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^/\\])\]/g,"$1$2").replace(/\\([^/])/g,"$1"):t?e.replace(/\[([^/\\{}])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^/\\{}])\]/g,"$1$2").replace(/\\([^/{}])/g,"$1")},965128,(e,t,n)=>{"use strict";var r;Object.defineProperty(n,"__esModule",{value:!0}),n.AST=void 0;let o=e.r(523132),i=e.r(106952),a=new Set(["!","?","+","*","@"]),s=e=>a.has(e),l=new Map([["!",["@"]],["?",["?","@"]],["@",["@"]],["*",["*","+","?","@"]],["+",["+","@"]]]),u=new Map([["!",["?"]],["@",["?"]],["+",["?","*"]]]),c=new Map([["!",["?","@"]],["?",["?","@"]],["@",["?","@"]],["*",["*","+","?","@"]],["+",["+","@","?","*"]]]),p=new Map([["!",new Map([["!","@"]])],["?",new Map([["*","*"],["+","*"]])],["@",new Map([["!","!"],["?","?"],["@","@"],["*","*"],["+","+"]])],["+",new Map([["?","*"],["*","*"]])]]),_="(?!\\.)",T=new Set(["[","."]),d=new Set(["..","."]),E=new Set("().*{}+?[]^$\\!"),S=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),A="[^/]",g=A+"*?",m=A+"+?",h=0;class R{type;#e;#t;#n=!1;#r=[];#o;#i;#a;#s=!1;#l;#u;#c=!1;id=++h;get depth(){return(this.#o?.depth??-1)+1}[Symbol.for("nodejs.util.inspect.custom")](){return{"@@type":"AST",id:this.id,type:this.type,root:this.#e.id,parent:this.#o?.id,depth:this.depth,partsLength:this.#r.length,parts:this.#r}}constructor(e,t,n={}){this.type=e,e&&(this.#t=!0),this.#o=t,this.#e=this.#o?this.#o.#e:this,this.#l=this.#e===this?n:this.#e.#l,this.#a=this.#e===this?[]:this.#e.#a,"!"!==e||this.#e.#s||this.#a.push(this),this.#i=this.#o?this.#o.#r.length:0}get hasMagic(){if(void 0!==this.#t)return this.#t;for(let e of this.#r)if("string"!=typeof e&&(e.type||e.hasMagic))return this.#t=!0;return this.#t}toString(){return void 0!==this.#u?this.#u:this.type?this.#u=this.type+"("+this.#r.map(e=>String(e)).join("|")+")":this.#u=this.#r.map(e=>String(e)).join("")}#p(){let e;if(this!==this.#e)throw Error("should only call on root");if(this.#s)return this;for(this.toString(),this.#s=!0;e=this.#a.pop();){if("!"!==e.type)continue;let t=e,n=t.#o;for(;n;){for(let r=t.#i+1;!n.type&&r"string"==typeof e?e:e.toJSON()):[this.type,...this.#r.map(e=>e.toJSON())];return this.isStart()&&!this.type&&e.unshift([]),this.isEnd()&&(this===this.#e||this.#e.#s&&this.#o?.type==="!")&&e.push({}),e}isStart(){if(this.#e===this)return!0;if(!this.#o?.isStart())return!1;if(0===this.#i)return!0;let e=this.#o;for(let t=0;t"string"!=typeof e),o=this.#r.map(t=>{let[o,i,a,s]="string"==typeof t?r.#f(t,this.#t,n):t.toRegExpSource(e);return this.#t=this.#t||a,this.#n=this.#n||s,o}).join(""),a="";if(this.isStart()&&"string"==typeof this.#r[0]&&!(1===this.#r.length&&d.has(this.#r[0]))){let n=t&&T.has(o.charAt(0))||o.startsWith("\\.")&&T.has(o.charAt(2))||o.startsWith("\\.\\.")&&T.has(o.charAt(4)),r=!t&&!e&&T.has(o.charAt(0));a=n?"(?!(?:^|/)\\.\\.?(?:$|/))":r?_:""}let s="";return this.isEnd()&&this.#e.#s&&this.#o?.type==="!"&&(s="(?:$|\\/)"),[a+o+s,(0,i.unescape)(o),this.#t=!!this.#t,this.#n]}let n="*"===this.type||"+"===this.type,o="!"===this.type?"(?:(?!(?:":"(?:",a=this.#N(t);if(this.isStart()&&this.isEnd()&&!a&&"!"!==this.type){let e=this.toString();return this.#r=[e],this.type=null,this.#t=void 0,[e,(0,i.unescape)(this.toString()),!1,!1]}let l=!n||e||t||!_?"":this.#N(!0);l===a&&(l=""),l&&(a=`(?:${a})(?:${l})*?`);return["!"===this.type&&this.#c?(this.isStart()&&!t?_:"")+m:o+a+("!"===this.type?"))"+(!this.isStart()||t||e?"":_)+g+")":"@"===this.type?")":"?"===this.type?")?":"+"===this.type&&l?")":"*"===this.type&&l?")?":`)${this.type}`),(0,i.unescape)(a),this.#t=!!this.#t,this.#n]}#R(){if(s(this.type)){let e=0,t=!1;do{t=!0;for(let e=0;e{if("string"==typeof t)throw Error("string type in extglob ast??");let[n,r,o,i]=t.toRegExpSource(e);return this.#n=this.#n||i,n}).filter(e=>!(this.isStart()&&this.isEnd())||!!e).join("|")}static #f(e,t,n=!1){let r=!1,a="",s=!1,l=!1;for(let i=0;i{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.escape=void 0,n.escape=(e,{windowsPathsNoEscape:t=!1,magicalBraces:n=!1}={})=>n?t?e.replace(/[?*()[\]{}]/g,"[$&]"):e.replace(/[?*()[\]\\{}]/g,"\\$&"):t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&")},843860,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.unescape=n.escape=n.AST=n.Minimatch=n.match=n.makeRe=n.braceExpand=n.defaults=n.filter=n.GLOBSTAR=n.sep=n.minimatch=void 0;let r=e.r(872050),o=e.r(707441),i=e.r(965128),a=e.r(686006),s=e.r(106952);n.minimatch=(e,t,n={})=>((0,o.assertValidPattern)(t),(!!n.nocomment||"#"!==t.charAt(0))&&new N(t,n).match(e));let l=/^\*+([^+@!?*[(]*)$/,u=/^\*+\.\*+$/,c=e=>!e.startsWith(".")&&e.includes("."),p=e=>"."!==e&&".."!==e&&e.includes("."),_=/^\.\*+$/,T=e=>"."!==e&&".."!==e&&e.startsWith("."),d=/^\*+$/,E=e=>0!==e.length&&!e.startsWith("."),S=e=>0!==e.length&&"."!==e&&".."!==e,A=/^\?+([^+@!?*[(]*)?$/,g=([e])=>{let t=e.length;return e=>e.length===t&&!e.startsWith(".")},m=([e])=>{let t=e.length;return e=>e.length===t&&"."!==e&&".."!==e},h="object"==typeof process&&process?"object"==typeof process.env&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix";n.sep="win32"===h?"\\":"/",n.minimatch.sep=n.sep,n.GLOBSTAR=Symbol("globstar **"),n.minimatch.GLOBSTAR=n.GLOBSTAR;n.filter=(e,t={})=>r=>(0,n.minimatch)(r,e,t),n.minimatch.filter=n.filter;let R=(e,t={})=>Object.assign({},e,t);n.defaults=e=>{if(!e||"object"!=typeof e||!Object.keys(e).length)return n.minimatch;let t=n.minimatch;return Object.assign((n,r,o={})=>t(n,r,R(e,o)),{Minimatch:class extends t.Minimatch{constructor(t,n={}){super(t,R(e,n))}static defaults(n){return t.defaults(R(e,n)).Minimatch}},AST:class extends t.AST{constructor(t,n,r={}){super(t,n,R(e,r))}static fromGlob(n,r={}){return t.AST.fromGlob(n,R(e,r))}},unescape:(n,r={})=>t.unescape(n,R(e,r)),escape:(n,r={})=>t.escape(n,R(e,r)),filter:(n,r={})=>t.filter(n,R(e,r)),defaults:n=>t.defaults(R(e,n)),makeRe:(n,r={})=>t.makeRe(n,R(e,r)),braceExpand:(n,r={})=>t.braceExpand(n,R(e,r)),match:(n,r,o={})=>t.match(n,r,R(e,o)),sep:t.sep,GLOBSTAR:n.GLOBSTAR})},n.minimatch.defaults=n.defaults,n.braceExpand=(e,t={})=>((0,o.assertValidPattern)(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e))?[e]:(0,r.expand)(e,{max:t.braceExpandMax}),n.minimatch.braceExpand=n.braceExpand,n.makeRe=(e,t={})=>new N(e,t).makeRe(),n.minimatch.makeRe=n.makeRe,n.match=(e,t,n={})=>{let r=new N(t,n);return e=e.filter(e=>r.match(e)),r.options.nonull&&!e.length&&e.push(t),e},n.minimatch.match=n.match;let f=/[?*]|[+@!]\(.*?\)|\[|\]/;class N{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;maxGlobstarRecursion;regexp;constructor(e,t={}){(0,o.assertValidPattern)(e),t=t||{},this.options=t,this.maxGlobstarRecursion=t.maxGlobstarRecursion??200,this.pattern=e,this.platform=t.platform||h,this.isWindows="win32"===this.platform,this.windowsPathsNoEscape=!!t.windowsPathsNoEscape||!1===t.allowWindowsEscape,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!t.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!t.nonegate,this.comment=!1,this.empty=!1,this.partial=!!t.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=void 0!==t.windowsNoMagicRoot?t.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let e of this.set)for(let t of e)if("string"!=typeof t)return!0;return!1}debug(){}make(){let e=this.pattern,t=this.options;if(!t.nocomment&&"#"===e.charAt(0)){this.comment=!0;return}if(!e){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],t.debug&&(this.debug=(...e)=>console.error(...e)),this.debug(this.pattern,this.globSet);let n=this.globSet.map(e=>this.slashSplit(e));this.globParts=this.preprocess(n),this.debug(this.pattern,this.globParts);let r=this.globParts.map((e,t,n)=>{if(this.isWindows&&this.windowsNoMagicRoot){let t=""===e[0]&&""===e[1]&&("?"===e[2]||!f.test(e[2]))&&!f.test(e[3]),n=/^[a-z]:/i.test(e[0]);if(t)return[...e.slice(0,4),...e.slice(4).map(e=>this.parse(e))];if(n)return[e[0],...e.slice(1).map(e=>this.parse(e))]}return e.map(e=>this.parse(e))});if(this.debug(this.pattern,r),this.set=r.filter(e=>-1===e.indexOf(!1)),this.isWindows)for(let e=0;e=2?(e=this.firstPhasePreProcess(e),e=this.secondPhasePreProcess(e)):e=t>=1?this.levelOneOptimize(e):this.adjascentGlobstarOptimize(e),e}adjascentGlobstarOptimize(e){return e.map(e=>{let t=-1;for(;-1!==(t=e.indexOf("**",t+1));){let n=t;for(;"**"===e[n+1];)n++;n!==t&&e.splice(t,n-t)}return e})}levelOneOptimize(e){return e.map(e=>0===(e=e.reduce((e,t)=>{let n=e[e.length-1];return"**"===t&&"**"===n||(".."===t&&n&&".."!==n&&"."!==n&&"**"!==n?e.pop():e.push(t)),e},[])).length?[""]:e)}levelTwoFileOptimize(e){Array.isArray(e)||(e=this.slashSplit(e));let t=!1;do{if(t=!1,!this.preserveMultipleSlashes){for(let n=1;nr&&n.splice(r+1,o-r);let i=n[r+1],a=n[r+2],s=n[r+3];if(".."!==i||!a||"."===a||".."===a||!s||"."===s||".."===s)continue;t=!0,n.splice(r,1);let l=n.slice(0);l[r]="**",e.push(l),r--}if(!this.preserveMultipleSlashes){for(let e=1;ee.length)}partsMatch(e,t,n=!1){let r=0,o=0,i=[],a="";for(;r=2&&(e=this.levelTwoFileOptimize(e)),t.includes(n.GLOBSTAR))?this.#I(e,t,r,o,i):this.#O(e,t,r,o,i)}#I(e,t,r,o,i){let a=t.indexOf(n.GLOBSTAR,i),s=t.lastIndexOf(n.GLOBSTAR),[l,u,c]=r?[t.slice(i,a),t.slice(a+1),[]]:[t.slice(i,a),t.slice(a+1,s),t.slice(s+1)];if(l.length){let t=e.slice(o,o+l.length);if(!this.#O(t,l,r,0,0))return!1;o+=l.length,i+=l.length}let p=0;if(c.length){if(c.length+o>e.length)return!1;let t=e.length-c.length;if(this.#O(e,c,r,t,0))p=c.length;else{if(""!==e[e.length-1]||o+c.length===e.length||(t--,!this.#O(e,c,r,t,0)))return!1;p=c.length+1}}if(!u.length){let t=!!p;for(let n=o;n(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)):e=>(e=e.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(e)):r.dot?e=>t=>t.endsWith(e):e=>t=>!t.startsWith(".")&&t.endsWith(e))(t[1]):(t=e.match(A))?a=(r.nocase?r.dot?([e,t=""])=>{let n=m([e]);return t?(t=t.toLowerCase(),e=>n(e)&&e.toLowerCase().endsWith(t)):n}:([e,t=""])=>{let n=g([e]);return t?(t=t.toLowerCase(),e=>n(e)&&e.toLowerCase().endsWith(t)):n}:r.dot?([e,t=""])=>{let n=m([e]);return t?e=>n(e)&&e.endsWith(t):n}:([e,t=""])=>{let n=g([e]);return t?e=>n(e)&&e.endsWith(t):n})(t):(t=e.match(u))?a=r.dot?p:c:(t=e.match(_))&&(a=T);let s=i.AST.fromGlob(e,this.options).toMMPattern();return a&&"object"==typeof s&&Reflect.defineProperty(s,"test",{value:a}),s}makeRe(){if(this.regexp||!1===this.regexp)return this.regexp;let e=this.set;if(!e.length)return this.regexp=!1,this.regexp;let t=this.options,r=t.noglobstar?"[^/]*?":t.dot?"(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?":"(?:(?!(?:\\/|^)\\.).)*?",o=new Set(t.nocase?["i"]:[]),i=e.map(e=>{let t=e.map(e=>{if(e instanceof RegExp)for(let t of e.flags.split(""))o.add(t);return"string"==typeof e?e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"):e===n.GLOBSTAR?n.GLOBSTAR:e._src});t.forEach((e,o)=>{let i=t[o+1],a=t[o-1];e===n.GLOBSTAR&&a!==n.GLOBSTAR&&(void 0===a?void 0!==i&&i!==n.GLOBSTAR?t[o+1]="(?:\\/|"+r+"\\/)?"+i:t[o]=r:void 0===i?t[o-1]=a+"(?:\\/|\\/"+r+")?":i!==n.GLOBSTAR&&(t[o-1]=a+"(?:\\/|\\/"+r+"\\/)"+i,t[o+1]=n.GLOBSTAR))});let i=t.filter(e=>e!==n.GLOBSTAR);if(this.partial&&i.length>=1){let e=[];for(let t=1;t<=i.length;t++)e.push(i.slice(0,t).join("/"));return"(?:"+e.join("|")+")"}return i.join("/")}).join("|"),[a,s]=e.length>1?["(?:",")"]:["",""];i="^"+a+i+s+"$",this.partial&&(i="^(?:\\/|"+a+i.slice(1,-1)+s+")$"),this.negate&&(i="^(?!"+i+").+$");try{this.regexp=new RegExp(i,[...o].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(e){return this.preserveMultipleSlashes?e.split("/"):this.isWindows&&/^\/\/[^/]+/.test(e)?["",...e.split(/\/+/)]:e.split(/\/+/)}match(e,t=this.partial){if(this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return""===e;if("/"===e&&t)return!0;let n=this.options;this.isWindows&&(e=e.split("\\").join("/"));let r=this.slashSplit(e);this.debug(this.pattern,"split",r);let o=this.set;this.debug(this.pattern,"set",o);let i=r[r.length-1];if(!i)for(let e=r.length-2;!i&&e>=0;e--)i=r[e];for(let e of o){let o=r;if(n.matchBase&&1===e.length&&(o=[i]),this.matchOne(o,e,t)){if(n.flipNegate)return!0;return!this.negate}}return!n.flipNegate&&this.negate}static defaults(e){return n.minimatch.defaults(e).Minimatch}}n.Minimatch=N;var I=e.r(965128);Object.defineProperty(n,"AST",{enumerable:!0,get:function(){return I.AST}});var O=e.r(686006);Object.defineProperty(n,"escape",{enumerable:!0,get:function(){return O.escape}});var y=e.r(106952);Object.defineProperty(n,"unescape",{enumerable:!0,get:function(){return y.unescape}}),n.minimatch.AST=i.AST,n.minimatch.Minimatch=N,n.minimatch.escape=a.escape,n.minimatch.unescape=s.unescape},740071,(e,t,n)=>{"use strict";let r=e.r(677652),{context:o,trace:i,SpanStatusCode:a,propagation:s,diag:l}=e.r(357762),{getRPCMetadata:u,RPCType:c}=e.r(385692),{ATTR_HTTP_ROUTE:p,ATTR_HTTP_RESPONSE_STATUS_CODE:_,ATTR_HTTP_REQUEST_METHOD:T,ATTR_URL_PATH:d}=e.r(808119),{InstrumentationBase:E}=e.r(682342),{version:S,name:A}=e.r(989801),g=["onRequest","preParsing","preValidation","preHandler","preSerialization","onSend","onResponse","onError"],m="hook.name",h="fastify.type",R="hook.callback.name",f="route-hook",N="hook",I="anonymous",O=Symbol("fastify otel instance"),y=Symbol("fastify otel request spans"),b=Symbol("fastify otel request context"),C=Symbol("fastify otel addhook original"),M=Symbol("fastify otel setnotfound original"),P=Symbol("fastify otel ignore path"),L=Symbol("fastify otel record exceptions");class v extends E{logger=null;_requestHook=null;_lifecycleHook=null;constructor(t){if(super(A,S,t),this.logger=l.createComponentLogger({namespace:A}),this[P]=null,this[L]=!0,t?.recordExceptions!=null){if("boolean"!=typeof t.recordExceptions)throw TypeError("recordExceptions must be a boolean");this[L]=t.recordExceptions}if("function"==typeof t?.requestHook&&(this._requestHook=t.requestHook),"function"==typeof t?.lifecycleHook&&(this._lifecycleHook=t.lifecycleHook),t?.ignorePaths!=null||null!=process.env.OTEL_FASTIFY_IGNORE_PATHS){const n=t?.ignorePaths??process.env.OTEL_FASTIFY_IGNORE_PATHS;if(("string"!=typeof n||0===n.length)&&"function"!=typeof n)throw TypeError("ignorePaths must be a string or a function");let r=null;this[P]=t=>"function"==typeof n?n(t):(null==r&&(r=e.r(843860).minimatch),r(t.url,n))}}enable(){return void 0===this._handleInitialization&&this.getConfig().registerOnInitialization&&(this._handleInitialization=e=>{this.plugin()(e.fastify,void 0,()=>{});let t=(e,t,n)=>{n()};t[Symbol.for("skip-override")]=!0,t[Symbol.for("fastify.display-name")]="@fastify/otel",e.fastify.register(t)},r.subscribe("fastify.initialization",this._handleInitialization)),super.enable()}disable(){return this._handleInitialization&&(r.unsubscribe("fastify.initialization",this._handleInitialization),this._handleInitialization=void 0),super.disable()}init(){return[]}plugin(){let e=this;return t[Symbol.for("skip-override")]=!0,t[Symbol.for("fastify.display-name")]="@fastify/otel",t[Symbol.for("plugin-meta")]={fastify:">=4.0.0 <6",name:"@fastify/otel"},t;function t(t,n,r){function l(e,t,n,r){let o=e[y];null!=o&&(t.statusCode>=500&&o.setStatus({code:a.ERROR}),o.setAttributes({[_]:t.statusCode}),o.end()),e[y]=null,r(null,n)}function E(t,n,r,o){let i=t[y];null!=i&&(i.setStatus({code:a.ERROR,message:r.message}),!1!==e[L]&&i.recordException(r)),o()}function S(e,t,n={}){return function(...r){let s=this[O],l=function(e){for(let t of e)if(t?.routeOptions&&t.url&&t.method)return t;return null}(r);if(null===l)return s.logger.debug(`Ignoring route instrumentation because ${t} was called without a Fastify request argument`),e.call(this,...r);if(!1===s.isEnabled()||l.routeOptions.config?.otel===!1)return s.logger.debug(`Ignoring route instrumentation ${l.routeOptions.method} ${l.routeOptions.url} because it is disabled`),e.call(this,...r);if(s[P]?.({url:l.url,method:l.method})===!0)return s.logger.debug(`Ignoring route instrumentation ${l.routeOptions.method} ${l.routeOptions.url} because it matches the ignore path`),e.call(this,...r);let u=l[b]??o.active(),c=e.name?.length>0?e.name:this.pluginName??I,p=s.tracer.startSpan(`${t} - ${c}`,{attributes:n},u);if(null!=s._lifecycleHook)try{s._lifecycleHook(p,{hookName:t,request:l,handler:c})}catch(e){s.logger.error({err:e},"Execution of lifecycleHook failed")}return o.with(i.setSpan(u,p),function(){try{let t=e.call(this,...r);if("function"==typeof t?.then)return t.then(e=>(p.end(),e),e=>(p.setStatus({code:a.ERROR,message:e.message}),!1!==s[L]&&p.recordException(e),p.end(),Promise.reject(e)));return p.end(),t}catch(e){throw p.setStatus({code:a.ERROR,message:e.message}),!1!==s[L]&&p.recordException(e),p.end(),e}},this)}}t.decorate(O,e),t.decorate(C,t.addHook),t.decorate(M,t.setNotFoundHandler),t.decorateRequest("opentelemetry",function(){let t=this[b],n=this[y];return{enabled:this.routeOptions.config?.otel!==!1,span:n,tracer:e.tracer,context:t,inject:(e,n)=>s.inject(t,e,n),extract:(e,n)=>s.extract(t,e,n)}}),t.decorateRequest(y,null),t.decorateRequest(b,null),t.addHook("onRoute",function(t){if(e[P]?.(t)===!0)return void e.logger.debug(`Ignoring route instrumentation ${t.method} ${t.url} because it matches the ignore path`);if(t.config?.otel===!1)return void e.logger.debug(`Ignoring route instrumentation ${t.method} ${t.url} because it is disabled`);for(let e of g)if(null!=t[e]){let n=t[e];if("function"==typeof n)t[e]=S(n,e,{[m]:`${this.pluginName} - route -> ${e}`,[h]:f,[p]:t.url,[R]:n.name?.length>0?n.name:I});else if(Array.isArray(n)){let r=[];for(let o of n)r.push(S(o,e,{[m]:`${this.pluginName} - route -> ${e}`,[h]:f,[p]:t.url,[R]:o.name?.length>0?o.name:I}));t[e]=r}}null!=t.onSend?t.onSend=Array.isArray(t.onSend)?[...t.onSend,l]:[t.onSend,l]:t.onSend=l,null!=t.onError?t.onError=Array.isArray(t.onError)?[...t.onError,E]:[t.onError,E]:t.onError=E,t.handler=S(t.handler,"handler",{[m]:`${this.pluginName} - route-handler`,[h]:"request-handler",[p]:t.url,[R]:t.handler.name.length>0?t.handler.name:I})}),t.addHook("onRequest",function(e,t,n){if(!1===this[O].isEnabled()||e.routeOptions.config?.otel===!1)return n();if(this[O][P]?.({url:e.url,method:e.method})===!0)return this[O].logger.debug(`Ignoring request ${e.method} ${e.url} because it matches the ignore path`),n();let r=o.active();null==i.getSpan(r)&&(r=s.extract(r,e.headers));let a=u(r);null!=e.routeOptions.url&&a?.type===c.HTTP&&(a.route=e.routeOptions.url);let l={"fastify.root":"@fastify/otel",[T]:e.method,[d]:e.url};null!=e.routeOptions.url&&(l[p]=e.routeOptions.url);let _=this[O].tracer.startSpan("request",{attributes:l},r);try{this[O]._requestHook?.(_,e)}catch(e){this[O].logger.error({err:e},"requestHook threw")}e[b]=i.setSpan(r,_),e[y]=_,o.with(e[b],()=>{n()})}),t.addHook("onResponse",function(e,t,n){let r=e[y];null!=r&&(r.setAttributes({[_]:t.statusCode}),r.end()),e[y]=null,n()}),t.addHook=function(e,t){let n=this[C];return g.includes(e)?n.call(this,e,S(t,e,{[m]:`${this.pluginName} - ${e}`,[h]:N,[R]:t.name?.length>0?t.name:I})):n.call(this,e,t)},t.setNotFoundHandler=function(e,t){let n=this[M];"function"==typeof e?(t=S(e,"notFoundHandler",{[m]:`${this.pluginName} - not-found-handler`,[h]:N,[R]:e.name?.length>0?e.name:I}),n.call(this,t)):(null!=e.preValidation&&(e.preValidation=S(e.preValidation,"notFoundHandler - preValidation",{[m]:`${this.pluginName} - not-found-handler - preValidation`,[h]:N,[R]:e.preValidation.name?.length>0?e.preValidation.name:I})),null!=e.preHandler&&(e.preHandler=S(e.preHandler,"notFoundHandler - preHandler",{[m]:`${this.pluginName} - not-found-handler - preHandler`,[h]:N,[R]:e.preHandler.name?.length>0?e.preHandler.name:I})),t=S(t,"notFoundHandler",{[m]:`${this.pluginName} - not-found-handler`,[h]:N,[R]:t.name?.length>0?t.name:I}),n.call(this,e,t))},r()}}}t.exports=v,t.exports.FastifyOtelInstrumentation=v},399239,(e,t,n)=>{var r,o,i;Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),n.AttributeNames=void 0,(r=n.AttributeNames||(n.AttributeNames={})).FASTIFY_NAME="fastify.name",r.FASTIFY_TYPE="fastify.type",r.HOOK_NAME="hook.name",r.PLUGIN_NAME="plugin.name",n.FastifyTypes=void 0,(o=n.FastifyTypes||(n.FastifyTypes={})).MIDDLEWARE="middleware",o.REQUEST_HANDLER="request_handler",n.FastifyNames=void 0,(i=n.FastifyNames||(n.FastifyNames={})).MIDDLEWARE="middleware",i.REQUEST_HANDLER="request handler"},512069,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),n.spanRequestSymbol=Symbol("opentelemetry.instrumentation.fastify.request_active_span")},714820,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(357762),o=e.r(512069);function i(e){return"object"==typeof e&&e&&"function"==typeof Object.getOwnPropertyDescriptor(e,"then")?.value||!1}n.endSpan=function(e,t){let n=e[o.spanRequestSymbol]||[];n.length&&(n.forEach(e=>{t&&(e.setStatus({code:r.SpanStatusCode.ERROR,message:t.message}),e.recordException(t)),e.end()}),delete e[o.spanRequestSymbol])},n.safeExecuteInTheMiddleMaybePromise=function(e,t,n){let r,o;try{o=e(),i(o)&&o.then(e=>t(void 0,e),e=>t(e))}catch(e){r=e}finally{if(!i(o)&&(t(r,o),r&&1))throw r;return o}},n.startSpan=function(e,t,n,r={}){let i=t.startSpan(n,{attributes:r}),a=e[o.spanRequestSymbol]||[];return a.push(i),Object.defineProperty(e,o.spanRequestSymbol,{enumerable:!1,configurable:!0,value:a}),i}},35288,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(357762),o=e.r(385692),i=e.r(204780),a=e.r(808119),s=e.r(976285),l=e.r(399239),u=e.r(714820),c="anonymous",p=new Set(["onTimeout","onRequest","preParsing","preValidation","preSerialization","preHandler","onSend","onResponse","onError"]);class _ extends i.InstrumentationBase{constructor(e={}){super("@sentry/instrumentation-fastify-v3","0.1.0",e)}init(){return[new i.InstrumentationNodeModuleDefinition("fastify",[">=3.0.0 <4"],e=>this._patchConstructor(e))]}_hookOnRequest(){let e=this;return function(t,n,i){if(!e.isEnabled())return i();e._wrap(n,"send",e._patchSend());let a=o.getRPCMetadata(r.context.active()),l=t.routeOptions?t.routeOptions.url:t.routerPath;l&&a?.type===o.RPCType.HTTP&&(a.route=l);let u=t.method||"GET";s.getIsolationScope().setTransactionName(`${u} ${l}`),i()}}_wrapHandler(e,t,n,o){let i=this;return this._diag.debug("Patching fastify route.handler function"),function(...a){if(!i.isEnabled())return n.apply(this,a);let s=n.name||e||c,p=`${l.FastifyNames.MIDDLEWARE} - ${s}`,_=a[1],T=u.startSpan(_,i.tracer,p,{[l.AttributeNames.FASTIFY_TYPE]:l.FastifyTypes.MIDDLEWARE,[l.AttributeNames.PLUGIN_NAME]:e,[l.AttributeNames.HOOK_NAME]:t}),d=o&&a[a.length-1];return d&&(a[a.length-1]=function(...e){u.endSpan(_),d.apply(this,e)}),r.context.with(r.trace.setSpan(r.context.active(),T),()=>u.safeExecuteInTheMiddleMaybePromise(()=>n.apply(this,a),e=>{e instanceof Error&&(T.setStatus({code:r.SpanStatusCode.ERROR,message:e.message}),T.recordException(e)),o||u.endSpan(_)}))}}_wrapAddHook(){let e=this;return this._diag.debug("Patching fastify server.addHook function"),function(t){return function(...n){let r=n[0],o=n[1],i=this.pluginName;if(!p.has(r))return t.apply(this,n);let a="function"==typeof n[n.length-1]&&"AsyncFunction"!==o.constructor.name;return t.apply(this,[r,e._wrapHandler(i,r,o,a)])}}}_patchConstructor(e){let t=this;function n(...r){let o,i=e.fastify.apply(this,r);return i.addHook("onRequest",t._hookOnRequest()),i.addHook("preHandler",t._hookPreHandler()),(o=s.getClient())&&o.on("spanStart",e=>{T(e)}),t._wrap(i,"addHook",t._wrapAddHook()),i}return void 0!==e.errorCodes&&(n.errorCodes=e.errorCodes),n.fastify=n,n.default=n,n}_patchSend(){let e=this;return this._diag.debug("Patching fastify reply.send function"),function(t){return function(...n){let r=n[0];return e.isEnabled()?i.safeExecuteInTheMiddle(()=>t.apply(this,n),e=>{!e&&r instanceof Error&&(e=r),u.endSpan(this,e)}):t.apply(this,n)}}}_hookPreHandler(){let e=this;return this._diag.debug("Patching fastify preHandler function"),function(t,n,o){if(!e.isEnabled())return o();let s=t.routeOptions?.handler||t.context?.handler,p=s?.name.startsWith("bound ")?s.name.substring(6):s?.name,_=`${l.FastifyNames.REQUEST_HANDLER} - ${p||this.pluginName||c}`,d={[l.AttributeNames.PLUGIN_NAME]:this.pluginName,[l.AttributeNames.FASTIFY_TYPE]:l.FastifyTypes.REQUEST_HANDLER,[a.SEMATTRS_HTTP_ROUTE]:t.routeOptions?t.routeOptions.url:t.routerPath};p&&(d[l.AttributeNames.FASTIFY_NAME]=p);let E=u.startSpan(n,e.tracer,_,d);T(E);let{requestHook:S}=e.getConfig();return S&&i.safeExecuteInTheMiddle(()=>S(E,{request:t}),t=>{t&&e._diag.error("request hook failed",t)},!0),r.context.with(r.trace.setSpan(r.context.active(),E),()=>{o()})}}}function T(e){let t=s.spanToJSON(e).data,n=t["fastify.type"];if(t[s.SEMANTIC_ATTRIBUTE_SENTRY_OP]||!n)return;e.setAttributes({[s.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.http.otel.fastify",[s.SEMANTIC_ATTRIBUTE_SENTRY_OP]:`${n}.fastify`});let r=t["fastify.name"]||t["plugin.name"]||t["hook.name"];if("string"==typeof r){let t=r.replace(/^fastify -> /,"").replace(/^@fastify\/otel -> /,"");e.updateName(t)}}n.FastifyInstrumentationV3=_},602878,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(677652),o=e.r(740071),i=e.r(976285),a=e.r(625331),s=e.r(866779),l=e.r(35288),u="Fastify",c=a.generateInstrumentOnce(`${u}.v3`,()=>new l.FastifyInstrumentationV3);function p(){let e=i.getClient();if(e)return e.getIntegrationByName(u)}function _(e,t,n,r){let o=p()?.getShouldHandleError()||d;if("diagnostics-channel"===r&&(this.diagnosticsChannelExists=!0),this.diagnosticsChannelExists&&"onError-hook"===r){s.DEBUG_BUILD&&i.debug.warn("Fastify error handler was already registered via diagnostics channel.","You can safely remove `setupFastifyErrorHandler` call and set `shouldHandleError` on the integration options.");return}o(e,t,n)&&i.captureException(e,{mechanism:{handled:!1,type:"auto.function.fastify"}})}let T=a.generateInstrumentOnce(`${u}.v5`,()=>{let e=new o.FastifyOtelInstrumentation,t=e.plugin();return r.subscribe("fastify.initialization",e=>{let n=e.fastify;n?.register(t).after(e=>{let t;e?s.DEBUG_BUILD&&i.debug.error("Failed to setup Fastify instrumentation",e):((t=i.getClient())&&t.on("spanStart",e=>{E(e)}),n&&n.addHook("onRequest",async(e,t)=>{if(e.opentelemetry){let{span:t}=e.opentelemetry();t&&E(t)}let n=e.routeOptions?.url,r=e.method||"GET";i.getIsolationScope().setTransactionName(`${r} ${n}`)}))})}),r.subscribe("tracing:fastify.request.handler:error",e=>{let{error:t,request:n,reply:r}=e;_.call(_,t,n,r,"diagnostics-channel")}),e});function d(e,t,n){let r=n.statusCode;return r>=500||r<=299}function E(e){let t=i.spanToJSON(e),n=t.description,r=t.data,o=r["fastify.type"],a="hook"===o,s=o===n?.startsWith("handler -"),l="request"===n||"request-handler"===o;if(r[i.SEMANTIC_ATTRIBUTE_SENTRY_OP]||!s&&!l&&!a)return;e.setAttributes({[i.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.http.otel.fastify",[i.SEMANTIC_ATTRIBUTE_SENTRY_OP]:`${a?"hook":s?"middleware":l?"request_handler":""}.fastify`});let u=r["fastify.name"]||r["plugin.name"]||r["hook.name"];if("string"==typeof u){let t=u.replace(/^fastify -> /,"").replace(/^@fastify\/otel -> /,"");e.updateName(t)}}n.fastifyIntegration=i.defineIntegration((e={})=>(({shouldHandleError:e})=>{let t;return{name:u,setupOnce(){t=e||d,c(),T()},getShouldHandleError:()=>t,setShouldHandleError(e){t=e}}})(e)),n.instrumentFastify=T,n.instrumentFastifyV3=c,n.setupFastifyErrorHandler=function(e,t){t?.shouldHandleError&&p()?.setShouldHandleError(t.shouldHandleError);let n=Object.assign(function(e,t,n){e.addHook("onError",async(e,t,n)=>{_.call(_,n,e,t,"onError-hook")}),n()},{[Symbol.for("skip-override")]:!0,[Symbol.for("fastify.display-name")]:"sentry-fastify-error-handler"});e.register(n)}},187477,(e,t,n)=>{"use strict";var r,o,i;Object.defineProperty(n,"__esModule",{value:!0}),n.SpanNames=n.TokenKind=n.AllowedOperationTypes=void 0,(r=n.AllowedOperationTypes||(n.AllowedOperationTypes={})).QUERY="query",r.MUTATION="mutation",r.SUBSCRIPTION="subscription",(o=n.TokenKind||(n.TokenKind={})).SOF="",o.EOF="",o.BANG="!",o.DOLLAR="$",o.AMP="&",o.PAREN_L="(",o.PAREN_R=")",o.SPREAD="...",o.COLON=":",o.EQUALS="=",o.AT="@",o.BRACKET_L="[",o.BRACKET_R="]",o.BRACE_L="{",o.PIPE="|",o.BRACE_R="}",o.NAME="Name",o.INT="Int",o.FLOAT="Float",o.STRING="String",o.BLOCK_STRING="BlockString",o.COMMENT="Comment",(i=n.SpanNames||(n.SpanNames={})).EXECUTE="graphql.execute",i.PARSE="graphql.parse",i.RESOLVE="graphql.resolve",i.VALIDATE="graphql.validate",i.SCHEMA_VALIDATE="graphql.validateSchema",i.SCHEMA_PARSE="graphql.parseSchema"},476424,(e,t,n)=>{"use strict";var r;Object.defineProperty(n,"__esModule",{value:!0}),n.AttributeNames=void 0,(r=n.AttributeNames||(n.AttributeNames={})).SOURCE="graphql.source",r.FIELD_NAME="graphql.field.name",r.FIELD_PATH="graphql.field.path",r.FIELD_TYPE="graphql.field.type",r.PARENT_NAME="graphql.parent.name",r.OPERATION_TYPE="graphql.operation.type",r.OPERATION_NAME="graphql.operation.name",r.VARIABLES="graphql.variables.",r.ERROR_VALIDATION_NAME="graphql.validation.error"},46931,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.OTEL_GRAPHQL_DATA_SYMBOL=n.OTEL_PATCHED_SYMBOL=void 0,n.OTEL_PATCHED_SYMBOL=Symbol.for("opentelemetry.patched"),n.OTEL_GRAPHQL_DATA_SYMBOL=Symbol.for("opentelemetry.graphql_data")},718496,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.OPERATION_NOT_SUPPORTED=void 0,e.r(46931),n.OPERATION_NOT_SUPPORTED="Operation$operationName$not supported"},931418,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.wrapFieldResolver=n.wrapFields=n.getSourceFromLocation=n.getOperation=n.endSpan=n.addSpanSource=n.addInputVariableAttributes=n.isPromise=void 0;let r=e.r(357762),o=e.r(187477),i=e.r(476424),a=e.r(46931),s=Object.values(o.AllowedOperationTypes);function l(e,t,n,r,o){let a=d(t,n,r,o);e.setAttribute(i.AttributeNames.SOURCE,a)}function u(e,t){return e[a.OTEL_GRAPHQL_DATA_SYMBOL].fields[t.join(".")]}function c(e,t){for(let n=t.length-1;n>0;n--){let r=u(e,t.slice(0,n));if(r)return r.span}return p(e)}function p(e){return e[a.OTEL_GRAPHQL_DATA_SYMBOL].span}n.isPromise=e=>"function"==typeof e?.then,n.addInputVariableAttributes=function(e,t){Object.entries(t).forEach(([t,n])=>{!function e(t,n,r){Array.isArray(r)?r.forEach((r,o)=>{e(t,`${n}.${o}`,r)}):r instanceof Object?Object.entries(r).forEach(([r,o])=>{e(t,`${n}.${r}`,o)}):t.setAttribute(`${i.AttributeNames.VARIABLES}${String(n)}`,r)}(e,t,n)})},n.addSpanSource=l,n.endSpan=function(e,t){t&&e.recordException(t),e.end()},n.getOperation=function(e,t){if(e&&Array.isArray(e.definitions))if(t)return e.definitions.filter(e=>-1!==s.indexOf(e?.operation)).find(e=>t===e?.name?.value);else return e.definitions.find(e=>-1!==s.indexOf(e?.operation))};function _(e,t){let n="";for(let r=0;rs){l=l.next,u=l?.line;continue}let e=l.value||l.kind,n="";(!t&&T.indexOf(l.kind)>=0&&(e="*"),l.kind===o.TokenKind.STRING&&(e=`"${e}"`),l.kind===o.TokenKind.EOF&&(e=""),l.line>u)?(i+=_("\n",l.line-u),u=l.line,n=_(" ",l.column-1)):l.line===l.prev?.line&&(n=_(" ",l.start-(l.prev?.end||0))),i+=n+e,l&&(l=l.next)}}return i}n.getSourceFromLocation=d,n.wrapFields=function e(t,n,r){if(!t||t[a.OTEL_PATCHED_SYMBOL])return;let o=t.getFields();t[a.OTEL_PATCHED_SYMBOL]=!0,Object.keys(o).forEach(t=>{let i=o[t];if(i&&(i.resolve&&(i.resolve=A(n,r,i.resolve)),i.type))for(let t of function e(t){var n,r;return"ofType"in t?e(t.ofType):"getTypes"in(n=t)&&"function"==typeof n.getTypes?t.getTypes():"getFields"in(r=t)&&"function"==typeof r.getFields?[t]:[]}(i.type))e(t,n,r)})};let E=(e,t,n)=>{n&&(e.recordException(t),e.setStatus({code:r.SpanStatusCode.ERROR,message:t.message}),e.end())},S=(e,t)=>{t&&e.end()};function A(e,t,s,_=!1){if(T[a.OTEL_PATCHED_SYMBOL]||"function"!=typeof s)return s;function T(T,d,A,g){let m;if(!s)return;let h=t();if(h.ignoreTrivialResolveSpans&&_&&("object"==typeof T&&null!==T||"function"==typeof T)&&"function"!=typeof T[g.fieldName]||!A[a.OTEL_GRAPHQL_DATA_SYMBOL])return s.call(this,T,d,A,g);let R=function(e,t){let n=[],r=t;for(;r;){let t=r.key;e&&"number"==typeof t&&(t="*"),n.push(String(t)),r=r.prev}return n.reverse()}(h.mergeItems,g&&g.path),f=R.filter(e=>"string"==typeof e).length,N=!1;if(h.depth>=0&&h.depth"Field"===e.kind))&&l(N,I.loc,d().allowValues,O.loc?.start,O.loc?.end),N)},m=n,h=_,R=y,m[a.OTEL_GRAPHQL_DATA_SYMBOL].fields[h.join(".")]=R,{field:y,spanAdded:!0}}(e,t,A,g,R);m=n.span,N=s}return r.context.with(r.trace.setSpan(r.context.active(),m),()=>{try{let e=s.call(this,T,d,A,g);if((0,n.isPromise)(e))return e.then(e=>(S(m,N),e),e=>{throw E(m,e,N),e});return S(m,N),e}catch(e){throw E(m,e,N),e}})}return T[a.OTEL_PATCHED_SYMBOL]=!0,T}n.wrapFieldResolver=A},98582,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.62.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-graphql"},400932,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.GraphQLInstrumentation=void 0;let r=e.r(357762),o=e.r(204780),i=e.r(187477),a=e.r(476424),s=e.r(46931),l=e.r(718496),u=e.r(931418),c=e.r(98582),p={mergeItems:!1,depth:-1,allowValues:!1,ignoreResolveSpans:!1},_=[">=14.0.0 <17"];class T extends o.InstrumentationBase{constructor(e={}){super(c.PACKAGE_NAME,c.PACKAGE_VERSION,{...p,...e})}setConfig(e={}){super.setConfig({...p,...e})}init(){let e=new o.InstrumentationNodeModuleDefinition("graphql",_);return e.files.push(this._addPatchingExecute()),e.files.push(this._addPatchingParser()),e.files.push(this._addPatchingValidate()),e}_addPatchingExecute(){return new o.InstrumentationNodeModuleFile("graphql/execution/execute.js",_,e=>((0,o.isWrapped)(e.execute)&&this._unwrap(e,"execute"),this._wrap(e,"execute",this._patchExecute(e.defaultFieldResolver)),e),e=>{e&&this._unwrap(e,"execute")})}_addPatchingParser(){return new o.InstrumentationNodeModuleFile("graphql/language/parser.js",_,e=>((0,o.isWrapped)(e.parse)&&this._unwrap(e,"parse"),this._wrap(e,"parse",this._patchParse()),e),e=>{e&&this._unwrap(e,"parse")})}_addPatchingValidate(){return new o.InstrumentationNodeModuleFile("graphql/validation/validate.js",_,e=>((0,o.isWrapped)(e.validate)&&this._unwrap(e,"validate"),this._wrap(e,"validate",this._patchValidate()),e),e=>{e&&this._unwrap(e,"validate")})}_patchExecute(e){let t=this;return function(n){return function(){let i;if(arguments.length>=2){let n=arguments;i=t._wrapExecuteArgs(n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7],e)}else{let n=arguments[0];i=t._wrapExecuteArgs(n.schema,n.document,n.rootValue,n.contextValue,n.variableValues,n.operationName,n.fieldResolver,n.typeResolver,e)}let a=(0,u.getOperation)(i.document,i.operationName),l=t._createExecuteSpan(a,i);return i.contextValue[s.OTEL_GRAPHQL_DATA_SYMBOL]={source:i.document?i.document||i.document[s.OTEL_GRAPHQL_DATA_SYMBOL]:void 0,span:l,fields:{}},r.context.with(r.trace.setSpan(r.context.active(),l),()=>(0,o.safeExecuteInTheMiddle)(()=>n.apply(this,[i]),(e,n)=>{t._handleExecutionResult(l,e,n)}))}}}_handleExecutionResult(e,t,n){let r=this.getConfig();if(void 0===n||t)return void(0,u.endSpan)(e,t);if((0,u.isPromise)(n))n.then(t=>{"function"!=typeof r.responseHook?(0,u.endSpan)(e):this._executeResponseHook(e,t)},t=>{(0,u.endSpan)(e,t)});else{if("function"!=typeof r.responseHook)return void(0,u.endSpan)(e);this._executeResponseHook(e,n)}}_executeResponseHook(e,t){let{responseHook:n}=this.getConfig();n&&(0,o.safeExecuteInTheMiddle)(()=>{n(e,t)},t=>{t&&this._diag.error("Error running response hook",t),(0,u.endSpan)(e,void 0)},!0)}_patchParse(){let e=this;return function(t){return function(n,r){return e._parse(this,t,n,r)}}}_patchValidate(){let e=this;return function(t){return function(n,r,o,i,a){return e._validate(this,t,n,r,o,a,i)}}}_parse(e,t,n,a){let s=this.getConfig(),l=this.tracer.startSpan(i.SpanNames.PARSE);return r.context.with(r.trace.setSpan(r.context.active(),l),()=>(0,o.safeExecuteInTheMiddle)(()=>t.call(e,n,a),(e,t)=>{t&&((0,u.getOperation)(t)?t.loc&&(0,u.addSpanSource)(l,t.loc,s.allowValues):l.updateName(i.SpanNames.SCHEMA_PARSE)),(0,u.endSpan)(l,e)}))}_validate(e,t,n,s,l,c,p){let _=this.tracer.startSpan(i.SpanNames.VALIDATE,{});return r.context.with(r.trace.setSpan(r.context.active(),_),()=>(0,o.safeExecuteInTheMiddle)(()=>t.call(e,n,s,l,p,c),(e,t)=>{s.loc||_.updateName(i.SpanNames.SCHEMA_VALIDATE),t&&t.length&&_.recordException({name:a.AttributeNames.ERROR_VALIDATION_NAME,message:JSON.stringify(t)}),(0,u.endSpan)(_,e)}))}_createExecuteSpan(e,t){let n=this.getConfig(),r=this.tracer.startSpan(i.SpanNames.EXECUTE,{});if(e){let{operation:t,name:n}=e;r.setAttribute(a.AttributeNames.OPERATION_TYPE,t);let o=n?.value;o?(r.setAttribute(a.AttributeNames.OPERATION_NAME,o),r.updateName(`${t} ${o}`)):r.updateName(t)}else{let e=" ";t.operationName&&(e=` "${t.operationName}" `),e=l.OPERATION_NOT_SUPPORTED.replace("$operationName$",e),r.setAttribute(a.AttributeNames.OPERATION_NAME,e)}return t.document?.loc&&(0,u.addSpanSource)(r,t.document.loc,n.allowValues),t.variableValues&&n.allowValues&&(0,u.addInputVariableAttributes)(r,t.variableValues),r}_wrapExecuteArgs(e,t,n,r,o,i,a,l,c){if(r||(r={}),r[s.OTEL_GRAPHQL_DATA_SYMBOL]||this.getConfig().ignoreResolveSpans)return{schema:e,document:t,rootValue:n,contextValue:r,variableValues:o,operationName:i,fieldResolver:a,typeResolver:l};let p=null==a,_=a??c;return a=(0,u.wrapFieldResolver)(this.tracer,()=>this.getConfig(),_,p),e&&((0,u.wrapFields)(e.getQueryType(),this.tracer,()=>this.getConfig()),(0,u.wrapFields)(e.getMutationType(),this.tracer,()=>this.getConfig())),{schema:e,document:t,rootValue:n,contextValue:r,variableValues:o,operationName:i,fieldResolver:a,typeResolver:l}}}n.GraphQLInstrumentation=T},928683,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.GraphQLInstrumentation=void 0;var r=e.r(400932);Object.defineProperty(n,"GraphQLInstrumentation",{enumerable:!0,get:function(){return r.GraphQLInstrumentation}})},176571,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(357762),o=e.r(928683),i=e.r(976285),a=e.r(625331),s=e.r(779607),l="Graphql",u=a.generateInstrumentOnce(l,o.GraphQLInstrumentation,e=>{let t=c(e);return{...t,responseHook(e,n){a.addOriginToSpan(e,"auto.graphql.otel.graphql"),n.errors?.length&&!i.spanToJSON(e).status&&e.setStatus({code:r.SpanStatusCode.ERROR});let o=i.spanToJSON(e).data,l=o["graphql.operation.type"],u=o["graphql.operation.name"];if(t.useOperationNameForRootSpan&&l){let t=i.getRootSpan(e),n=i.spanToJSON(t).data[s.SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION]||[],r=u?`${l} ${u}`:`${l}`;Array.isArray(n)?(n.push(r),t.setAttribute(s.SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION,n)):"string"==typeof n?t.setAttribute(s.SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION,[n,r]):t.setAttribute(s.SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION,r),i.spanToJSON(t).data["original-description"]||t.setAttribute("original-description",i.spanToJSON(t).description),t.updateName(`${i.spanToJSON(t).data["original-description"]} (${function(e){if(Array.isArray(e)){let t=e.slice().sort();return t.length<=5?t.join(", "):`${t.slice(0,5).join(", ")}, +${t.length-5}`}return`${e}`}(n)})`)}}}});function c(e){return{ignoreResolveSpans:!0,ignoreTrivialResolveSpans:!0,useOperationNameForRootSpan:!0,...e}}n.graphqlIntegration=i.defineIntegration((e={})=>({name:l,setupOnce(){u(c(e))}})),n.instrumentGraphql=u},233787,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.EVENT_LISTENERS_SET=void 0,n.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.kafkajs.eventListenersSet")},513616,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.bufferTextMapGetter=void 0,n.bufferTextMapGetter={get(e,t){if(e){for(let n of Object.keys(e))if(n===t||n.toLowerCase()===t)return e[n]?.toString()}},keys:e=>e?Object.keys(e):[]}},996292,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.METRIC_MESSAGING_PROCESS_DURATION=n.METRIC_MESSAGING_CLIENT_SENT_MESSAGES=n.METRIC_MESSAGING_CLIENT_OPERATION_DURATION=n.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES=n.MESSAGING_SYSTEM_VALUE_KAFKA=n.MESSAGING_OPERATION_TYPE_VALUE_SEND=n.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE=n.MESSAGING_OPERATION_TYPE_VALUE_PROCESS=n.ATTR_MESSAGING_SYSTEM=n.ATTR_MESSAGING_OPERATION_TYPE=n.ATTR_MESSAGING_OPERATION_NAME=n.ATTR_MESSAGING_KAFKA_OFFSET=n.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE=n.ATTR_MESSAGING_KAFKA_MESSAGE_KEY=n.ATTR_MESSAGING_DESTINATION_PARTITION_ID=n.ATTR_MESSAGING_DESTINATION_NAME=n.ATTR_MESSAGING_BATCH_MESSAGE_COUNT=void 0,n.ATTR_MESSAGING_BATCH_MESSAGE_COUNT="messaging.batch.message_count",n.ATTR_MESSAGING_DESTINATION_NAME="messaging.destination.name",n.ATTR_MESSAGING_DESTINATION_PARTITION_ID="messaging.destination.partition.id",n.ATTR_MESSAGING_KAFKA_MESSAGE_KEY="messaging.kafka.message.key",n.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE="messaging.kafka.message.tombstone",n.ATTR_MESSAGING_KAFKA_OFFSET="messaging.kafka.offset",n.ATTR_MESSAGING_OPERATION_NAME="messaging.operation.name",n.ATTR_MESSAGING_OPERATION_TYPE="messaging.operation.type",n.ATTR_MESSAGING_SYSTEM="messaging.system",n.MESSAGING_OPERATION_TYPE_VALUE_PROCESS="process",n.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE="receive",n.MESSAGING_OPERATION_TYPE_VALUE_SEND="send",n.MESSAGING_SYSTEM_VALUE_KAFKA="kafka",n.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES="messaging.client.consumed.messages",n.METRIC_MESSAGING_CLIENT_OPERATION_DURATION="messaging.client.operation.duration",n.METRIC_MESSAGING_CLIENT_SENT_MESSAGES="messaging.client.sent.messages",n.METRIC_MESSAGING_PROCESS_DURATION="messaging.process.duration"},419585,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.23.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-kafkajs"},803515,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.KafkaJsInstrumentation=void 0;let r=e.r(357762),o=e.r(204780),i=e.r(808119),a=e.r(233787),s=e.r(513616),l=e.r(996292),u=e.r(419585);function c(e,t,n){return r=>{e.add(t,{...n,...r?{[i.ATTR_ERROR_TYPE]:r}:{}})}}function p(e,t,n){return r=>{e.record((Date.now()-t)/1e3,{...n,...r?{[i.ATTR_ERROR_TYPE]:r}:{}})}}let _=[.005,.01,.025,.05,.075,.1,.25,.5,.75,1,2.5,5,7.5,10];class T extends o.InstrumentationBase{constructor(e={}){super(u.PACKAGE_NAME,u.PACKAGE_VERSION,e)}_updateMetricInstruments(){this._clientDuration=this.meter.createHistogram(l.METRIC_MESSAGING_CLIENT_OPERATION_DURATION,{advice:{explicitBucketBoundaries:_}}),this._sentMessages=this.meter.createCounter(l.METRIC_MESSAGING_CLIENT_SENT_MESSAGES),this._consumedMessages=this.meter.createCounter(l.METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES),this._processDuration=this.meter.createHistogram(l.METRIC_MESSAGING_PROCESS_DURATION,{advice:{explicitBucketBoundaries:_}})}init(){let e=e=>{(0,o.isWrapped)(e?.Kafka?.prototype.producer)&&this._unwrap(e.Kafka.prototype,"producer"),(0,o.isWrapped)(e?.Kafka?.prototype.consumer)&&this._unwrap(e.Kafka.prototype,"consumer")};return new o.InstrumentationNodeModuleDefinition("kafkajs",[">=0.3.0 <3"],t=>(e(t),this._wrap(t?.Kafka?.prototype,"producer",this._getProducerPatch()),this._wrap(t?.Kafka?.prototype,"consumer",this._getConsumerPatch()),t),e)}_getConsumerPatch(){let e=this;return t=>function(...n){let r=t.apply(this,n);return(0,o.isWrapped)(r.run)&&e._unwrap(r,"run"),e._wrap(r,"run",e._getConsumerRunPatch()),e._setKafkaEventListeners(r),r}}_setKafkaEventListeners(e){e[a.EVENT_LISTENERS_SET]||(e.events?.REQUEST&&e.on(e.events.REQUEST,this._recordClientDurationMetric.bind(this)),e[a.EVENT_LISTENERS_SET]=!0)}_recordClientDurationMetric(e){let[t,n]=e.payload.broker.split(":");this._clientDuration.record(e.payload.duration/1e3,{[l.ATTR_MESSAGING_SYSTEM]:l.MESSAGING_SYSTEM_VALUE_KAFKA,[l.ATTR_MESSAGING_OPERATION_NAME]:`${e.payload.apiName}`,[i.ATTR_SERVER_ADDRESS]:t,[i.ATTR_SERVER_PORT]:Number.parseInt(n,10)})}_getProducerPatch(){let e=this;return t=>function(...n){let r=t.apply(this,n);return(0,o.isWrapped)(r.sendBatch)&&e._unwrap(r,"sendBatch"),e._wrap(r,"sendBatch",e._getSendBatchPatch()),(0,o.isWrapped)(r.send)&&e._unwrap(r,"send"),e._wrap(r,"send",e._getSendPatch()),(0,o.isWrapped)(r.transaction)&&e._unwrap(r,"transaction"),e._wrap(r,"transaction",e._getProducerTransactionPatch()),e._setKafkaEventListeners(r),r}}_getConsumerRunPatch(){let e=this;return t=>function(...n){let r=n[0];return r?.eachMessage&&((0,o.isWrapped)(r.eachMessage)&&e._unwrap(r,"eachMessage"),e._wrap(r,"eachMessage",e._getConsumerEachMessagePatch())),r?.eachBatch&&((0,o.isWrapped)(r.eachBatch)&&e._unwrap(r,"eachBatch"),e._wrap(r,"eachBatch",e._getConsumerEachBatchPatch())),t.call(this,r)}}_getConsumerEachMessagePatch(){let e=this;return t=>function(...n){let o=n[0],i=r.propagation.extract(r.ROOT_CONTEXT,o.message.headers,s.bufferTextMapGetter),a=e._startConsumerSpan({topic:o.topic,message:o.message,operationType:l.MESSAGING_OPERATION_TYPE_VALUE_PROCESS,ctx:i,attributes:{[l.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(o.partition)}}),u=[p(e._processDuration,Date.now(),{[l.ATTR_MESSAGING_SYSTEM]:l.MESSAGING_SYSTEM_VALUE_KAFKA,[l.ATTR_MESSAGING_OPERATION_NAME]:"process",[l.ATTR_MESSAGING_DESTINATION_NAME]:o.topic,[l.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(o.partition)}),c(e._consumedMessages,1,{[l.ATTR_MESSAGING_SYSTEM]:l.MESSAGING_SYSTEM_VALUE_KAFKA,[l.ATTR_MESSAGING_OPERATION_NAME]:"process",[l.ATTR_MESSAGING_DESTINATION_NAME]:o.topic,[l.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(o.partition)})],_=r.context.with(r.trace.setSpan(i,a),()=>t.apply(this,n));return e._endSpansOnPromise([a],u,_)}}_getConsumerEachBatchPatch(){return e=>{let t=this;return function(...n){let o=n[0],i=t._startConsumerSpan({topic:o.batch.topic,message:void 0,operationType:l.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE,ctx:r.ROOT_CONTEXT,attributes:{[l.ATTR_MESSAGING_BATCH_MESSAGE_COUNT]:o.batch.messages.length,[l.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(o.batch.partition)}});return r.context.with(r.trace.setSpan(r.context.active(),i),()=>{let a=Date.now(),u=[],_=[c(t._consumedMessages,o.batch.messages.length,{[l.ATTR_MESSAGING_SYSTEM]:l.MESSAGING_SYSTEM_VALUE_KAFKA,[l.ATTR_MESSAGING_OPERATION_NAME]:"process",[l.ATTR_MESSAGING_DESTINATION_NAME]:o.batch.topic,[l.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(o.batch.partition)})];o.batch.messages.forEach(e=>{let n,i=r.propagation.extract(r.ROOT_CONTEXT,e.headers,s.bufferTextMapGetter),c=r.trace.getSpan(i)?.spanContext();c&&(n={context:c}),u.push(t._startConsumerSpan({topic:o.batch.topic,message:e,operationType:l.MESSAGING_OPERATION_TYPE_VALUE_PROCESS,link:n,attributes:{[l.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(o.batch.partition)}})),_.push(p(t._processDuration,a,{[l.ATTR_MESSAGING_SYSTEM]:l.MESSAGING_SYSTEM_VALUE_KAFKA,[l.ATTR_MESSAGING_OPERATION_NAME]:"process",[l.ATTR_MESSAGING_DESTINATION_NAME]:o.batch.topic,[l.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(o.batch.partition)}))});let T=e.apply(this,n);return u.unshift(i),t._endSpansOnPromise(u,_,T)})}}}_getProducerTransactionPatch(){let e=this;return t=>function(...n){let o=e.tracer.startSpan("transaction"),i=t.apply(this,n);return i.then(t=>{let n=t.send;t.send=function(...t){return r.context.with(r.trace.setSpan(r.context.active(),o),()=>e._getSendPatch()(n).apply(this,t).catch(e=>{throw o.setStatus({code:r.SpanStatusCode.ERROR,message:e?.message}),o.recordException(e),e}))};let i=t.sendBatch;t.sendBatch=function(...t){return r.context.with(r.trace.setSpan(r.context.active(),o),()=>e._getSendBatchPatch()(i).apply(this,t).catch(e=>{throw o.setStatus({code:r.SpanStatusCode.ERROR,message:e?.message}),o.recordException(e),e}))};let a=t.commit;t.commit=function(...t){let n=a.apply(this,t).then(()=>{o.setStatus({code:r.SpanStatusCode.OK})});return e._endSpansOnPromise([o],[],n)};let s=t.abort;t.abort=function(...t){let n=s.apply(this,t);return e._endSpansOnPromise([o],[],n)}}).catch(e=>{o.setStatus({code:r.SpanStatusCode.ERROR,message:e?.message}),o.recordException(e),o.end()}),i}}_getSendBatchPatch(){let e=this;return t=>function(...n){let r=n[0].topicMessages||[],o=[],i=[];r.forEach(t=>{t.messages.forEach(n=>{o.push(e._startProducerSpan(t.topic,n)),i.push(c(e._sentMessages,1,{[l.ATTR_MESSAGING_SYSTEM]:l.MESSAGING_SYSTEM_VALUE_KAFKA,[l.ATTR_MESSAGING_OPERATION_NAME]:"send",[l.ATTR_MESSAGING_DESTINATION_NAME]:t.topic,...void 0!==n.partition?{[l.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(n.partition)}:{}}))})});let a=t.apply(this,n);return e._endSpansOnPromise(o,i,a)}}_getSendPatch(){let e=this;return t=>function(...n){let r=n[0],o=r.messages.map(t=>e._startProducerSpan(r.topic,t)),i=r.messages.map(t=>c(e._sentMessages,1,{[l.ATTR_MESSAGING_SYSTEM]:l.MESSAGING_SYSTEM_VALUE_KAFKA,[l.ATTR_MESSAGING_OPERATION_NAME]:"send",[l.ATTR_MESSAGING_DESTINATION_NAME]:r.topic,...void 0!==t.partition?{[l.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:String(t.partition)}:{}})),a=t.apply(this,n);return e._endSpansOnPromise(o,i,a)}}_endSpansOnPromise(e,t,n){return Promise.resolve(n).then(e=>(t.forEach(e=>e()),e)).catch(n=>{let o,a=i.ERROR_TYPE_VALUE_OTHER;throw"string"==typeof n||void 0===n?o=n:"object"==typeof n&&Object.prototype.hasOwnProperty.call(n,"message")&&(o=n.message,a=n.constructor.name),t.forEach(e=>e(a)),e.forEach(e=>{e.setAttribute(i.ATTR_ERROR_TYPE,a),e.setStatus({code:r.SpanStatusCode.ERROR,message:o})}),n}).finally(()=>{e.forEach(e=>e.end())})}_startConsumerSpan({topic:e,message:t,operationType:n,ctx:i,link:a,attributes:s}){let u=n===l.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE?"poll":n,c=this.tracer.startSpan(`${u} ${e}`,{kind:n===l.MESSAGING_OPERATION_TYPE_VALUE_RECEIVE?r.SpanKind.CLIENT:r.SpanKind.CONSUMER,attributes:{...s,[l.ATTR_MESSAGING_SYSTEM]:l.MESSAGING_SYSTEM_VALUE_KAFKA,[l.ATTR_MESSAGING_DESTINATION_NAME]:e,[l.ATTR_MESSAGING_OPERATION_TYPE]:n,[l.ATTR_MESSAGING_OPERATION_NAME]:u,[l.ATTR_MESSAGING_KAFKA_MESSAGE_KEY]:t?.key?String(t.key):void 0,[l.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE]:!!t?.key&&null===t.value||void 0,[l.ATTR_MESSAGING_KAFKA_OFFSET]:t?.offset},links:a?[a]:[]},i),{consumerHook:p}=this.getConfig();return p&&t&&(0,o.safeExecuteInTheMiddle)(()=>p(c,{topic:e,message:t}),e=>{e&&this._diag.error("consumerHook error",e)},!0),c}_startProducerSpan(e,t){let n=this.tracer.startSpan(`send ${e}`,{kind:r.SpanKind.PRODUCER,attributes:{[l.ATTR_MESSAGING_SYSTEM]:l.MESSAGING_SYSTEM_VALUE_KAFKA,[l.ATTR_MESSAGING_DESTINATION_NAME]:e,[l.ATTR_MESSAGING_KAFKA_MESSAGE_KEY]:t.key?String(t.key):void 0,[l.ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE]:!!t.key&&null===t.value||void 0,[l.ATTR_MESSAGING_DESTINATION_PARTITION_ID]:void 0!==t.partition?String(t.partition):void 0,[l.ATTR_MESSAGING_OPERATION_NAME]:"send",[l.ATTR_MESSAGING_OPERATION_TYPE]:l.MESSAGING_OPERATION_TYPE_VALUE_SEND}});t.headers=t.headers??{},r.propagation.inject(r.trace.setSpan(r.context.active(),n),t.headers);let{producerHook:i}=this.getConfig();return i&&(0,o.safeExecuteInTheMiddle)(()=>i(n,{topic:e,message:t}),e=>{e&&this._diag.error("producerHook error",e)},!0),n}}n.KafkaJsInstrumentation=T},5468,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.KafkaJsInstrumentation=void 0;var r=e.r(803515);Object.defineProperty(n,"KafkaJsInstrumentation",{enumerable:!0,get:function(){return r.KafkaJsInstrumentation}})},934925,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(5468),o=e.r(976285),i=e.r(625331),a="Kafka",s=i.generateInstrumentOnce(a,()=>new r.KafkaJsInstrumentation({consumerHook(e){i.addOriginToSpan(e,"auto.kafkajs.otel.consumer")},producerHook(e){i.addOriginToSpan(e,"auto.kafkajs.otel.producer")}})),l=o.defineIntegration(()=>({name:a,setupOnce(){s()}}));n.instrumentKafka=s,n.kafkaIntegration=l},959616,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.58.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-lru-memoizer"},726974,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.LruMemoizerInstrumentation=void 0;let r=e.r(357762),o=e.r(204780),i=e.r(959616);class a extends o.InstrumentationBase{constructor(e={}){super(i.PACKAGE_NAME,i.PACKAGE_VERSION,e)}init(){return[new o.InstrumentationNodeModuleDefinition("lru-memoizer",[">=1.3 <4"],e=>{let t=function(){let t=e.apply(this,arguments);return function(){let e=[...arguments],n=e.pop(),o="function"==typeof n?r.context.bind(r.context.active(),n):n;return e.push(o),t.apply(this,e)}};return t.sync=e.sync,t},void 0)]}}n.LruMemoizerInstrumentation=a},97630,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.LruMemoizerInstrumentation=void 0;var r=e.r(726974);Object.defineProperty(n,"LruMemoizerInstrumentation",{enumerable:!0,get:function(){return r.LruMemoizerInstrumentation}})},888804,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(97630),o=e.r(976285),i=e.r(625331),a="LruMemoizer",s=i.generateInstrumentOnce(a,()=>new r.LruMemoizerInstrumentation),l=o.defineIntegration(()=>({name:a,setupOnce(){s()}}));n.instrumentLruMemoizer=s,n.lruMemoizerIntegration=l},301506,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.METRIC_DB_CLIENT_CONNECTIONS_USAGE=n.DB_SYSTEM_VALUE_MONGODB=n.DB_SYSTEM_NAME_VALUE_MONGODB=n.ATTR_NET_PEER_PORT=n.ATTR_NET_PEER_NAME=n.ATTR_DB_SYSTEM=n.ATTR_DB_STATEMENT=n.ATTR_DB_OPERATION=n.ATTR_DB_NAME=n.ATTR_DB_MONGODB_COLLECTION=n.ATTR_DB_CONNECTION_STRING=void 0,n.ATTR_DB_CONNECTION_STRING="db.connection_string",n.ATTR_DB_MONGODB_COLLECTION="db.mongodb.collection",n.ATTR_DB_NAME="db.name",n.ATTR_DB_OPERATION="db.operation",n.ATTR_DB_STATEMENT="db.statement",n.ATTR_DB_SYSTEM="db.system",n.ATTR_NET_PEER_NAME="net.peer.name",n.ATTR_NET_PEER_PORT="net.peer.port",n.DB_SYSTEM_NAME_VALUE_MONGODB="mongodb",n.DB_SYSTEM_VALUE_MONGODB="mongodb",n.METRIC_DB_CLIENT_CONNECTIONS_USAGE="db.client.connections.usage"},488067,(e,t,n)=>{"use strict";var r;Object.defineProperty(n,"__esModule",{value:!0}),n.MongodbCommandType=void 0,(r=n.MongodbCommandType||(n.MongodbCommandType={})).CREATE_INDEXES="createIndexes",r.FIND_AND_MODIFY="findAndModify",r.IS_MASTER="isMaster",r.COUNT="count",r.AGGREGATE="aggregate",r.UNKNOWN="unknown"},409179,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.67.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-mongodb"},121806,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.MongoDBInstrumentation=void 0;let r=e.r(357762),o=e.r(204780),i=e.r(808119),a=e.r(301506),s=e.r(488067),l=e.r(409179),u={requireParentSpan:!0};class c extends o.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(e={}){super(l.PACKAGE_NAME,l.PACKAGE_VERSION,{...u,...e}),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,o.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,o.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(e={}){super.setConfig({...u,...e})}_updateMetricInstruments(){this._connectionsUsage=this.meter.createUpDownCounter(a.METRIC_DB_CLIENT_CONNECTIONS_USAGE,{description:"The number of connections that are currently in state described by the state attribute.",unit:"{connection}"})}_connCountAdd(e,t,n){this._connectionsUsage?.add(e,{"pool.name":t,state:n})}init(){let{v3PatchConnection:e,v3UnpatchConnection:t}=this._getV3ConnectionPatches(),{v4PatchConnect:n,v4UnpatchConnect:r}=this._getV4ConnectPatches(),{v4PatchConnectionCallback:i,v4PatchConnectionPromise:a,v4UnpatchConnection:s}=this._getV4ConnectionPatches(),{v4PatchConnectionPool:l,v4UnpatchConnectionPool:u}=this._getV4ConnectionPoolPatches(),{v4PatchSessions:c,v4UnpatchSessions:p}=this._getV4SessionsPatches();return[new o.InstrumentationNodeModuleDefinition("mongodb",[">=3.3.0 <4"],void 0,void 0,[new o.InstrumentationNodeModuleFile("mongodb/lib/core/wireprotocol/index.js",[">=3.3.0 <4"],e,t)]),new o.InstrumentationNodeModuleDefinition("mongodb",[">=4.0.0 <8"],void 0,void 0,[new o.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection.js",[">=4.0.0 <6.4"],i,s),new o.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection.js",[">=6.4.0 <8"],a,s),new o.InstrumentationNodeModuleFile("mongodb/lib/cmap/connection_pool.js",[">=4.0.0 <6.4"],l,u),new o.InstrumentationNodeModuleFile("mongodb/lib/cmap/connect.js",[">=4.0.0 <8"],n,r),new o.InstrumentationNodeModuleFile("mongodb/lib/sessions.js",[">=4.0.0 <8"],c,p)])]}_getV3ConnectionPatches(){return{v3PatchConnection:e=>((0,o.isWrapped)(e.insert)&&this._unwrap(e,"insert"),this._wrap(e,"insert",this._getV3PatchOperation("insert")),(0,o.isWrapped)(e.remove)&&this._unwrap(e,"remove"),this._wrap(e,"remove",this._getV3PatchOperation("remove")),(0,o.isWrapped)(e.update)&&this._unwrap(e,"update"),this._wrap(e,"update",this._getV3PatchOperation("update")),(0,o.isWrapped)(e.command)&&this._unwrap(e,"command"),this._wrap(e,"command",this._getV3PatchCommand()),(0,o.isWrapped)(e.query)&&this._unwrap(e,"query"),this._wrap(e,"query",this._getV3PatchFind()),(0,o.isWrapped)(e.getMore)&&this._unwrap(e,"getMore"),this._wrap(e,"getMore",this._getV3PatchCursor()),e),v3UnpatchConnection:e=>{void 0!==e&&(this._unwrap(e,"insert"),this._unwrap(e,"remove"),this._unwrap(e,"update"),this._unwrap(e,"command"),this._unwrap(e,"query"),this._unwrap(e,"getMore"))}}}_getV4SessionsPatches(){return{v4PatchSessions:e=>((0,o.isWrapped)(e.acquire)&&this._unwrap(e,"acquire"),this._wrap(e.ServerSessionPool.prototype,"acquire",this._getV4AcquireCommand()),(0,o.isWrapped)(e.release)&&this._unwrap(e,"release"),this._wrap(e.ServerSessionPool.prototype,"release",this._getV4ReleaseCommand()),e),v4UnpatchSessions:e=>{void 0!==e&&((0,o.isWrapped)(e.acquire)&&this._unwrap(e,"acquire"),(0,o.isWrapped)(e.release)&&this._unwrap(e,"release"))}}}_getV4AcquireCommand(){let e=this;return t=>function(){let n=this.sessions.length,r=t.call(this),o=this.sessions.length;return n===o?e._connCountAdd(1,e._poolName,"used"):n-1===o&&(e._connCountAdd(-1,e._poolName,"idle"),e._connCountAdd(1,e._poolName,"used")),r}}_getV4ReleaseCommand(){let e=this;return t=>function(n){let r=t.call(this,n);return e._connCountAdd(-1,e._poolName,"used"),e._connCountAdd(1,e._poolName,"idle"),r}}_getV4ConnectionPoolPatches(){return{v4PatchConnectionPool:e=>{let t=e.ConnectionPool.prototype;return(0,o.isWrapped)(t.checkOut)&&this._unwrap(t,"checkOut"),this._wrap(t,"checkOut",this._getV4ConnectionPoolCheckOut()),e},v4UnpatchConnectionPool:e=>{void 0!==e&&this._unwrap(e.ConnectionPool.prototype,"checkOut")}}}_getV4ConnectPatches(){return{v4PatchConnect:e=>((0,o.isWrapped)(e.connect)&&this._unwrap(e,"connect"),this._wrap(e,"connect",this._getV4ConnectCommand()),e),v4UnpatchConnect:e=>{void 0!==e&&this._unwrap(e,"connect")}}}_getV4ConnectionPoolCheckOut(){return e=>function(t){let n=r.context.bind(r.context.active(),t);return e.call(this,n)}}_getV4ConnectCommand(){let e=this;return t=>function(n,r){if(1===t.length){let r=t.call(this,n);return r&&"function"==typeof r.then&&r.then(()=>e.setPoolName(n),()=>void 0),r}return t.call(this,n,function(t,o){t||!o||e.setPoolName(n),r(t,o)})}}_getV4ConnectionPatches(){return{v4PatchConnectionCallback:e=>((0,o.isWrapped)(e.Connection.prototype.command)&&this._unwrap(e.Connection.prototype,"command"),this._wrap(e.Connection.prototype,"command",this._getV4PatchCommandCallback()),e),v4PatchConnectionPromise:e=>((0,o.isWrapped)(e.Connection.prototype.command)&&this._unwrap(e.Connection.prototype,"command"),this._wrap(e.Connection.prototype,"command",this._getV4PatchCommandPromise()),e),v4UnpatchConnection:e=>{void 0!==e&&this._unwrap(e.Connection.prototype,"command")}}}_getV3PatchOperation(e){let t=this;return n=>function(o,i,a,s,l){let u=r.trace.getSpan(r.context.active()),c=t._checkSkipInstrumentation(u),p="function"==typeof s?s:l;if(c||"function"!=typeof p||"object"!=typeof a)if("function"==typeof s)return n.call(this,o,i,a,s);else return n.call(this,o,i,a,s,l);let _=t._getV3SpanAttributes(i,o,a[0],e),T=t._spanNameFromAttrs(_),d=t.tracer.startSpan(T,{kind:r.SpanKind.CLIENT,attributes:_}),E=t._patchEnd(d,p);return"function"==typeof s?n.call(this,o,i,a,E):n.call(this,o,i,a,s,E)}}_getV3PatchCommand(){let e=this;return t=>function(n,o,i,a,l){let u=r.trace.getSpan(r.context.active()),p=e._checkSkipInstrumentation(u),_="function"==typeof a?a:l;if(p||"function"!=typeof _||"object"!=typeof i)if("function"==typeof a)return t.call(this,n,o,i,a);else return t.call(this,n,o,i,a,l);let T=c._getCommandType(i),d=T===s.MongodbCommandType.UNKNOWN?void 0:T,E=e._getV3SpanAttributes(o,n,i,d),S=e._spanNameFromAttrs(E),A=e.tracer.startSpan(S,{kind:r.SpanKind.CLIENT,attributes:E}),g=e._patchEnd(A,_);return"function"==typeof a?t.call(this,n,o,i,g):t.call(this,n,o,i,a,g)}}_getV4PatchCommandCallback(){let e=this;return t=>function(n,o,i,a){let s,l=r.trace.getSpan(r.context.active()),u=e._checkSkipInstrumentation(l),c=Object.keys(o)[0];if("object"!=typeof o||o.ismaster||o.hello)return t.call(this,n,o,i,a);if(!u){let t=e._getV4SpanAttributes(this,n,o,c),i=e._spanNameFromAttrs(t);s=e.tracer.startSpan(i,{kind:r.SpanKind.CLIENT,attributes:t})}let p=e._patchEnd(s,a,this.id,c);return t.call(this,n,o,i,p)}}_getV4PatchCommandPromise(){let e=this;return t=>function(...n){let o,[i,a]=n,s=r.trace.getSpan(r.context.active()),l=e._checkSkipInstrumentation(s),u=Object.keys(a)[0];if("object"!=typeof a||a.ismaster||a.hello)return t.apply(this,n);if(!l){let t=e._getV4SpanAttributes(this,i,a,u),n=e._spanNameFromAttrs(t);o=e.tracer.startSpan(n,{kind:r.SpanKind.CLIENT,attributes:t})}let c=e._patchEnd(o,()=>void 0,this.id,u),p=t.apply(this,n);return p.then(e=>c(null,e),e=>c(e)),p}}_getV3PatchFind(){let e=this;return t=>function(n,o,i,a,s,l){let u=r.trace.getSpan(r.context.active()),c=e._checkSkipInstrumentation(u),p="function"==typeof s?s:l;if(c||"function"!=typeof p||"object"!=typeof i)if("function"==typeof s)return t.call(this,n,o,i,a,s);else return t.call(this,n,o,i,a,s,l);let _=e._getV3SpanAttributes(o,n,i,"find"),T=e._spanNameFromAttrs(_),d=e.tracer.startSpan(T,{kind:r.SpanKind.CLIENT,attributes:_}),E=e._patchEnd(d,p);return"function"==typeof s?t.call(this,n,o,i,a,E):t.call(this,n,o,i,a,s,E)}}_getV3PatchCursor(){let e=this;return t=>function(n,o,i,a,s,l){let u=r.trace.getSpan(r.context.active()),c=e._checkSkipInstrumentation(u),p="function"==typeof s?s:l;if(c||"function"!=typeof p)if("function"==typeof s)return t.call(this,n,o,i,a,s);else return t.call(this,n,o,i,a,s,l);let _=e._getV3SpanAttributes(o,n,i.cmd,"getMore"),T=e._spanNameFromAttrs(_),d=e.tracer.startSpan(T,{kind:r.SpanKind.CLIENT,attributes:_}),E=e._patchEnd(d,p);return"function"==typeof s?t.call(this,n,o,i,a,E):t.call(this,n,o,i,a,s,E)}}static _getCommandType(e){if(void 0!==e.createIndexes)return s.MongodbCommandType.CREATE_INDEXES;if(void 0!==e.findandmodify)return s.MongodbCommandType.FIND_AND_MODIFY;if(void 0!==e.ismaster)return s.MongodbCommandType.IS_MASTER;if(void 0!==e.count)return s.MongodbCommandType.COUNT;if(void 0!==e.aggregate)return s.MongodbCommandType.AGGREGATE;else return s.MongodbCommandType.UNKNOWN}_getV4SpanAttributes(e,t,n,r){let o,i,a;if(e){let t="string"==typeof e.address?e.address.split(":"):"";2===t.length&&(o=t[0],i=t[1])}return a=n?.documents&&n.documents[0]?n.documents[0]:n?.cursors?n.cursors:n,this._getSpanAttributes(t.db,t.collection,o,i,a,r)}_getV3SpanAttributes(e,t,n,r){let o,i;if(t&&t.s&&(o=t.s.options?.host??t.s.host,i=(t.s.options?.port??t.s.port)?.toString(),null==o||null==i)){let e=t.description?.address;if(e){let t=e.split(":");o=t[0],i=t[1]}}let[a,s]=e.toString().split("."),l=n?.query??n?.q??n;return this._getSpanAttributes(a,s,o,i,l,r)}_getSpanAttributes(e,t,n,r,s,l){let u={};if(this._dbSemconvStability&o.SemconvStability.OLD&&(u[a.ATTR_DB_SYSTEM]=a.DB_SYSTEM_VALUE_MONGODB,u[a.ATTR_DB_NAME]=e,u[a.ATTR_DB_MONGODB_COLLECTION]=t,u[a.ATTR_DB_OPERATION]=l,u[a.ATTR_DB_CONNECTION_STRING]=`mongodb://${n}:${r}/${e}`),this._dbSemconvStability&o.SemconvStability.STABLE&&(u[i.ATTR_DB_SYSTEM_NAME]=a.DB_SYSTEM_NAME_VALUE_MONGODB,u[i.ATTR_DB_NAMESPACE]=e,u[i.ATTR_DB_OPERATION_NAME]=l,u[i.ATTR_DB_COLLECTION_NAME]=t),n&&r){this._netSemconvStability&o.SemconvStability.OLD&&(u[a.ATTR_NET_PEER_NAME]=n),this._netSemconvStability&o.SemconvStability.STABLE&&(u[i.ATTR_SERVER_ADDRESS]=n);let e=parseInt(r,10);!isNaN(e)&&(this._netSemconvStability&o.SemconvStability.OLD&&(u[a.ATTR_NET_PEER_PORT]=e),this._netSemconvStability&o.SemconvStability.STABLE&&(u[i.ATTR_SERVER_PORT]=e))}if(s){let{dbStatementSerializer:e}=this.getConfig(),t="function"==typeof e?e:this._defaultDbStatementSerializer.bind(this);(0,o.safeExecuteInTheMiddle)(()=>{let e=t(s);this._dbSemconvStability&o.SemconvStability.OLD&&(u[a.ATTR_DB_STATEMENT]=e),this._dbSemconvStability&o.SemconvStability.STABLE&&(u[i.ATTR_DB_QUERY_TEXT]=e)},e=>{e&&this._diag.error("Error running dbStatementSerializer hook",e)},!0)}return u}_spanNameFromAttrs(e){return this._dbSemconvStability&o.SemconvStability.STABLE?[e[i.ATTR_DB_OPERATION_NAME],e[i.ATTR_DB_COLLECTION_NAME]].filter(e=>e).join(" ")||a.DB_SYSTEM_NAME_VALUE_MONGODB:`mongodb.${e[a.ATTR_DB_OPERATION]||"command"}`}_getDefaultDbStatementReplacer(){let e=new WeakSet;return(t,n)=>"object"==typeof n&&n?e.has(n)?"[Circular]":(e.add(n),n):"?"}_defaultDbStatementSerializer(e){let{enhancedDatabaseReporting:t}=this.getConfig();return t?JSON.stringify(e):JSON.stringify(e,this._getDefaultDbStatementReplacer())}_handleExecutionResult(e,t){let{responseHook:n}=this.getConfig();"function"==typeof n&&(0,o.safeExecuteInTheMiddle)(()=>{n(e,{data:t})},e=>{e&&this._diag.error("Error running response hook",e)},!0)}_patchEnd(e,t,n,o){let i=r.context.active(),a=this,s=!1;return function(...n){if(!s){s=!0;let t=n[0];if(e){if(t instanceof Error)e.setStatus({code:r.SpanStatusCode.ERROR,message:t.message});else{let t=n[1];a._handleExecutionResult(e,t)}e.end()}"endSessions"===o&&a._connCountAdd(-1,a._poolName,"idle")}return r.context.with(i,()=>t.apply(this,n))}}setPoolName(e){let t=e.hostAddress?.host,n=e.hostAddress?.port,r=e.dbName,o=`mongodb://${t}:${n}/${r}`;this._poolName=o}_checkSkipInstrumentation(e){return!0===this.getConfig().requireParentSpan&&void 0===e}}n.MongoDBInstrumentation=c},818,(e,t,n)=>{"use strict";var r;Object.defineProperty(n,"__esModule",{value:!0}),n.MongodbCommandType=void 0,(r=n.MongodbCommandType||(n.MongodbCommandType={})).CREATE_INDEXES="createIndexes",r.FIND_AND_MODIFY="findAndModify",r.IS_MASTER="isMaster",r.COUNT="count",r.UNKNOWN="unknown"},101229,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.MongodbCommandType=n.MongoDBInstrumentation=void 0;var r=e.r(121806);Object.defineProperty(n,"MongoDBInstrumentation",{enumerable:!0,get:function(){return r.MongoDBInstrumentation}});var o=e.r(818);Object.defineProperty(n,"MongodbCommandType",{enumerable:!0,get:function(){return o.MongodbCommandType}})},143655,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(101229),o=e.r(976285),i=e.r(625331),a="Mongo",s=i.generateInstrumentOnce(a,()=>new r.MongoDBInstrumentation({dbStatementSerializer:l,responseHook(e){i.addOriginToSpan(e,"auto.db.otel.mongo")}}));function l(e){return JSON.stringify(function e(t){var n,r;let o;return Array.isArray(t)?t.map(t=>e(t)):"object"!=typeof(n=t)||null===n||(r=n,o=!1,"u">typeof Buffer&&(o=Buffer.isBuffer(r)),o)?"?":Object.entries(t).map(([t,n])=>[t,e(n)]).reduce((e,t)=>(Array.isArray(t)&&(e[t[0]]=t[1]),e),{})}(e))}let u=o.defineIntegration(()=>({name:a,setupOnce(){s()}}));n._defaultDbStatementSerializer=l,n.instrumentMongo=s,n.mongoIntegration=u},214787,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.DB_SYSTEM_NAME_VALUE_MONGODB=n.ATTR_NET_PEER_PORT=n.ATTR_NET_PEER_NAME=n.ATTR_DB_USER=n.ATTR_DB_SYSTEM=n.ATTR_DB_STATEMENT=n.ATTR_DB_OPERATION=n.ATTR_DB_NAME=n.ATTR_DB_MONGODB_COLLECTION=void 0,n.ATTR_DB_MONGODB_COLLECTION="db.mongodb.collection",n.ATTR_DB_NAME="db.name",n.ATTR_DB_OPERATION="db.operation",n.ATTR_DB_STATEMENT="db.statement",n.ATTR_DB_SYSTEM="db.system",n.ATTR_DB_USER="db.user",n.ATTR_NET_PEER_NAME="net.peer.name",n.ATTR_NET_PEER_PORT="net.peer.port",n.DB_SYSTEM_NAME_VALUE_MONGODB="mongodb"},388687,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.handleCallbackResponse=n.handlePromiseResponse=n.getAttributesFromCollection=void 0;let r=e.r(357762),o=e.r(204780),i=e.r(214787),a=e.r(808119);function s(e,t={}){e.recordException(t),e.setStatus({code:r.SpanStatusCode.ERROR,message:`${t.message} ${t.code?` -Mongoose Error Code: ${t.code}`:""}`})}function l(e,t,n,i){n&&(0,o.safeExecuteInTheMiddle)(()=>n(e,{moduleVersion:i,response:t}),e=>{e&&r.diag.error("mongoose instrumentation: responseHook error",e)},!0)}n.getAttributesFromCollection=function(e,t,n){let r={};return t&o.SemconvStability.OLD&&(r[i.ATTR_DB_MONGODB_COLLECTION]=e.name,r[i.ATTR_DB_NAME]=e.conn.name,r[i.ATTR_DB_USER]=e.conn.user),t&o.SemconvStability.STABLE&&(r[a.ATTR_DB_COLLECTION_NAME]=e.name,r[a.ATTR_DB_NAMESPACE]=e.conn.name),n&o.SemconvStability.OLD&&(r[i.ATTR_NET_PEER_NAME]=e.conn.host,r[i.ATTR_NET_PEER_PORT]=e.conn.port),n&o.SemconvStability.STABLE&&(r[a.ATTR_SERVER_ADDRESS]=e.conn.host,r[a.ATTR_SERVER_PORT]=e.conn.port),r},n.handlePromiseResponse=function(e,t,n,r){return e instanceof Promise?e.then(e=>(l(t,e,n,r),e)).catch(e=>{throw s(t,e),e}).finally(()=>t.end()):(l(t,e,n,r),t.end(),e)},n.handleCallbackResponse=function(e,t,n,r,o,i,a){let u=0;return 2===o.length?u=1:3===o.length&&(u=2),o[u]=(t,n)=>(t?s(r,t):l(r,n,i,a),r.end(),e(t,n)),t.apply(n,o)}},661395,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.60.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-mongoose"},152852,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.MongooseInstrumentation=n._ALREADY_INSTRUMENTED=n._STORED_PARENT_SPAN=void 0;let r=e.r(357762),o=e.r(385692),i=e.r(388687),a=e.r(204780),s=e.r(661395),l=e.r(214787),u=e.r(808119),c=["deleteOne","deleteMany","find","findOne","estimatedDocumentCount","countDocuments","distinct","where","$where","findOneAndUpdate","findOneAndDelete","findOneAndReplace"],p=["remove","count","findOneAndRemove",...c],_=["count","findOneAndRemove",...c],T=[...c];function d(e){return e?e.startsWith("6.")||e.startsWith("5.")?p:e.startsWith("7.")?_:T:c}function E(e){return e&&(e.startsWith("5.")||e.startsWith("6."))||!1}function S(e){return!!e&&!!e.startsWith("8.")&&parseInt(e.split(".")[1],10)>=21}n._STORED_PARENT_SPAN=Symbol("stored-parent-span"),n._ALREADY_INSTRUMENTED=Symbol("already-instrumented");class A extends a.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(e={}){super(s.PACKAGE_NAME,s.PACKAGE_VERSION,e),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,a.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,a.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return new a.InstrumentationNodeModuleDefinition("mongoose",[">=5.9.7 <10"],this.patch.bind(this),this.unpatch.bind(this))}patch(e,t){let n="Module"===e[Symbol.toStringTag]?e.default:e;return this._wrap(n.Model.prototype,"save",this.patchOnModelMethods("save",t)),n.Model.prototype.$save=n.Model.prototype.save,E(t)&&this._wrap(n.Model.prototype,"remove",this.patchOnModelMethods("remove",t)),S(t)&&(this._wrap(n.Model.prototype,"updateOne",this._patchDocumentUpdateMethods("updateOne",t)),this._wrap(n.Model.prototype,"deleteOne",this._patchDocumentUpdateMethods("deleteOne",t))),this._wrap(n.Query.prototype,"exec",this.patchQueryExec(t)),this._wrap(n.Aggregate.prototype,"exec",this.patchAggregateExec(t)),d(t).forEach(e=>{this._wrap(n.Query.prototype,e,this.patchAndCaptureSpanContext(e))}),this._wrap(n.Model,"aggregate",this.patchModelAggregate()),this._wrap(n.Model,"insertMany",this.patchModelStatic("insertMany",t)),this._wrap(n.Model,"bulkWrite",this.patchModelStatic("bulkWrite",t)),n}unpatch(e,t){let n="Module"===e[Symbol.toStringTag]?e.default:e,r=d(t);this._unwrap(n.Model.prototype,"save"),n.Model.prototype.$save=n.Model.prototype.save,E(t)&&this._unwrap(n.Model.prototype,"remove"),S(t)&&(this._unwrap(n.Model.prototype,"updateOne"),this._unwrap(n.Model.prototype,"deleteOne")),this._unwrap(n.Query.prototype,"exec"),this._unwrap(n.Aggregate.prototype,"exec"),r.forEach(e=>{this._unwrap(n.Query.prototype,e)}),this._unwrap(n.Model,"aggregate"),this._unwrap(n.Model,"insertMany"),this._unwrap(n.Model,"bulkWrite")}patchAggregateExec(e){let t=this;return o=>function(i){if(t.getConfig().requireParentSpan&&void 0===r.trace.getSpan(r.context.active()))return o.apply(this,arguments);let s=this[n._STORED_PARENT_SPAN],c={},{dbStatementSerializer:p}=t.getConfig();if(p){let e=p("aggregate",{options:this.options,aggregatePipeline:this._pipeline});t._dbSemconvStability&a.SemconvStability.OLD&&(c[l.ATTR_DB_STATEMENT]=e),t._dbSemconvStability&a.SemconvStability.STABLE&&(c[u.ATTR_DB_QUERY_TEXT]=e)}let _=t._startSpan(this._model.collection,this._model?.modelName,"aggregate",c,s);return t._handleResponse(_,o,this,arguments,i,e)}}patchQueryExec(e){let t=this;return o=>function(i){if(this[n._ALREADY_INSTRUMENTED]||t.getConfig().requireParentSpan&&void 0===r.trace.getSpan(r.context.active()))return o.apply(this,arguments);let s=this[n._STORED_PARENT_SPAN],c={},{dbStatementSerializer:p}=t.getConfig();if(p){let e=p(this.op,{condition:this.getFilter?.()??this._conditions,updates:this._update,options:this.getOptions?.()??this.options,fields:this._fields});t._dbSemconvStability&a.SemconvStability.OLD&&(c[l.ATTR_DB_STATEMENT]=e),t._dbSemconvStability&a.SemconvStability.STABLE&&(c[u.ATTR_DB_QUERY_TEXT]=e)}let _=t._startSpan(this.mongooseCollection,this.model.modelName,this.op,c,s);return t._handleResponse(_,o,this,arguments,i,e)}}patchOnModelMethods(e,t){let n=this;return o=>function(i,s){if(n.getConfig().requireParentSpan&&void 0===r.trace.getSpan(r.context.active()))return o.apply(this,arguments);let c={document:this};!i||i instanceof Function||(c.options=i);let p={},{dbStatementSerializer:_}=n.getConfig();if(_){let t=_(e,c);n._dbSemconvStability&a.SemconvStability.OLD&&(p[l.ATTR_DB_STATEMENT]=t),n._dbSemconvStability&a.SemconvStability.STABLE&&(p[u.ATTR_DB_QUERY_TEXT]=t)}let T=n._startSpan(this.constructor.collection,this.constructor.modelName,e,p);return i instanceof Function&&(s=i,i=void 0),n._handleResponse(T,o,this,arguments,s,t)}}_patchDocumentUpdateMethods(e,t){let o=this;return i=>function(s,c,p){if(o.getConfig().requireParentSpan&&void 0===r.trace.getSpan(r.context.active()))return i.apply(this,arguments);let _=p,T=s,d=c;"function"==typeof s?(_=s,T=void 0,d=void 0):"function"==typeof c&&(_=c,d=void 0);let E={},S=o.getConfig().dbStatementSerializer;if(S){let t=S(e,{condition:{_id:this._id},updates:T,options:d});o._dbSemconvStability&a.SemconvStability.OLD&&(E[l.ATTR_DB_STATEMENT]=t),o._dbSemconvStability&a.SemconvStability.STABLE&&(E[u.ATTR_DB_QUERY_TEXT]=t)}let A=o._startSpan(this.constructor.collection,this.constructor.modelName,e,E),g=o._handleResponse(A,i,this,arguments,_,t);return g&&"object"==typeof g&&(g[n._ALREADY_INSTRUMENTED]=!0),g}}patchModelStatic(e,t){let n=this;return o=>function(i,s,c){if(n.getConfig().requireParentSpan&&void 0===r.trace.getSpan(r.context.active()))return o.apply(this,arguments);"function"==typeof s&&(c=s,s=void 0);let p={};switch(e){case"insertMany":p.documents=i;break;case"bulkWrite":p.operations=i;break;default:p.document=i}void 0!==s&&(p.options=s);let _={},{dbStatementSerializer:T}=n.getConfig();if(T){let t=T(e,p);n._dbSemconvStability&a.SemconvStability.OLD&&(_[l.ATTR_DB_STATEMENT]=t),n._dbSemconvStability&a.SemconvStability.STABLE&&(_[u.ATTR_DB_QUERY_TEXT]=t)}let d=n._startSpan(this.collection,this.modelName,e,_);return n._handleResponse(d,o,this,arguments,c,t)}}patchModelAggregate(){let e=this;return t=>function(){let o=r.trace.getSpan(r.context.active()),i=e._callOriginalFunction(()=>t.apply(this,arguments));return i&&(i[n._STORED_PARENT_SPAN]=o),i}}patchAndCaptureSpanContext(e){let t=this;return e=>function(){return this[n._STORED_PARENT_SPAN]=r.trace.getSpan(r.context.active()),t._callOriginalFunction(()=>e.apply(this,arguments))}}_startSpan(e,t,n,o,s){let c={...o,...(0,i.getAttributesFromCollection)(e,this._dbSemconvStability,this._netSemconvStability)};this._dbSemconvStability&a.SemconvStability.OLD&&(c[l.ATTR_DB_OPERATION]=n,c[l.ATTR_DB_SYSTEM]="mongoose"),this._dbSemconvStability&a.SemconvStability.STABLE&&(c[u.ATTR_DB_OPERATION_NAME]=n,c[u.ATTR_DB_SYSTEM_NAME]=l.DB_SYSTEM_NAME_VALUE_MONGODB);let p=this._dbSemconvStability&a.SemconvStability.STABLE?`${n} ${e.name}`:`mongoose.${t}.${n}`;return this.tracer.startSpan(p,{kind:r.SpanKind.CLIENT,attributes:c},s?r.trace.setSpan(r.context.active(),s):void 0)}_handleResponse(e,t,n,r,o,a){let s=this;if(o instanceof Function)return s._callOriginalFunction(()=>(0,i.handleCallbackResponse)(o,t,n,e,r,s.getConfig().responseHook,a));{let o=s._callOriginalFunction(()=>t.apply(n,r));return(0,i.handlePromiseResponse)(o,e,s.getConfig().responseHook,a)}}_callOriginalFunction(e){return this.getConfig().suppressInternalInstrumentation?r.context.with((0,o.suppressTracing)(r.context.active()),e):e()}}n.MongooseInstrumentation=A},583049,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.MongooseInstrumentation=void 0;var r=e.r(152852);Object.defineProperty(n,"MongooseInstrumentation",{enumerable:!0,get:function(){return r.MongooseInstrumentation}})},780216,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(583049),o=e.r(976285),i=e.r(625331),a="Mongoose",s=i.generateInstrumentOnce(a,()=>new r.MongooseInstrumentation({responseHook(e){i.addOriginToSpan(e,"auto.db.otel.mongoose")}})),l=o.defineIntegration(()=>({name:a,setupOnce(){s()}}));n.instrumentMongoose=s,n.mongooseIntegration=l},286950,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.METRIC_DB_CLIENT_CONNECTIONS_USAGE=n.DB_SYSTEM_VALUE_MYSQL=n.ATTR_NET_PEER_PORT=n.ATTR_NET_PEER_NAME=n.ATTR_DB_USER=n.ATTR_DB_SYSTEM=n.ATTR_DB_STATEMENT=n.ATTR_DB_NAME=n.ATTR_DB_CONNECTION_STRING=void 0,n.ATTR_DB_CONNECTION_STRING="db.connection_string",n.ATTR_DB_NAME="db.name",n.ATTR_DB_STATEMENT="db.statement",n.ATTR_DB_SYSTEM="db.system",n.ATTR_DB_USER="db.user",n.ATTR_NET_PEER_NAME="net.peer.name",n.ATTR_NET_PEER_PORT="net.peer.port",n.DB_SYSTEM_VALUE_MYSQL="mysql",n.METRIC_DB_CLIENT_CONNECTIONS_USAGE="db.client.connections.usage"},424590,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.AttributeNames=void 0,(n.AttributeNames||(n.AttributeNames={})).MYSQL_VALUES="db.mysql.values"},952519,(e,t,n)=>{"use strict";function r(e){return e?`[${e.toString()}]`:""}Object.defineProperty(n,"__esModule",{value:!0}),n.getPoolNameOld=n.arrayStringifyHelper=n.getSpanName=n.getDbValues=n.getDbQueryText=n.getJDBCString=n.getConfig=void 0,n.getConfig=function(e){let{host:t,port:n,database:r,user:o}=e&&e.connectionConfig||e||{};return{host:t,port:n,database:r,user:o}},n.getJDBCString=function(e,t,n){let r=`jdbc:mysql://${e||"localhost"}`;return"number"==typeof t&&(r+=`:${t}`),"string"==typeof n&&(r+=`/${n}`),r},n.getDbQueryText=function(e){return"string"==typeof e?e:e.sql},n.getDbValues=function(e,t){return"string"==typeof e?r(t):r(t||e.values)},n.getSpanName=function(e){let t="object"==typeof e?e.sql:e,n=t?.indexOf(" ");return"number"==typeof n&&-1!==n?t?.substring(0,n):t},n.arrayStringifyHelper=r,n.getPoolNameOld=function(e){let t=e.config.connectionConfig,n="";return n+=t.host?`host: '${t.host}', `:"",n+=t.port?`port: ${t.port}, `:"",n+=t.database?`database: '${t.database}', `:"",n+=t.user?`user: '${t.user}'`:"",t.user||(n=n.substring(0,n.length-2)),n.trim()}},819437,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.60.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-mysql"},937494,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.MySQLInstrumentation=void 0;let r=e.r(357762),o=e.r(204780),i=e.r(808119),a=e.r(286950),s=e.r(424590),l=e.r(952519),u=e.r(819437);class c extends o.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(e={}){super(u.PACKAGE_NAME,u.PACKAGE_VERSION,e),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,o.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,o.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}_updateMetricInstruments(){this._connectionsUsageOld=this.meter.createUpDownCounter(a.METRIC_DB_CLIENT_CONNECTIONS_USAGE,{description:"The number of connections that are currently in state described by the state attribute.",unit:"{connection}"})}_connCountAdd(e,t,n){this._connectionsUsageOld?.add(e,{state:n,name:t})}init(){return[new o.InstrumentationNodeModuleDefinition("mysql",[">=2.0.0 <3"],e=>((0,o.isWrapped)(e.createConnection)&&this._unwrap(e,"createConnection"),this._wrap(e,"createConnection",this._patchCreateConnection()),(0,o.isWrapped)(e.createPool)&&this._unwrap(e,"createPool"),this._wrap(e,"createPool",this._patchCreatePool()),(0,o.isWrapped)(e.createPoolCluster)&&this._unwrap(e,"createPoolCluster"),this._wrap(e,"createPoolCluster",this._patchCreatePoolCluster()),e),e=>{void 0!==e&&(this._unwrap(e,"createConnection"),this._unwrap(e,"createPool"),this._unwrap(e,"createPoolCluster"))})]}_patchCreateConnection(){return e=>{let t=this;return function(n){let r=e(...arguments);return t._wrap(r,"query",t._patchQuery(r)),r}}}_patchCreatePool(){return e=>{let t=this;return function(n){let r=e(...arguments);return t._wrap(r,"query",t._patchQuery(r)),t._wrap(r,"getConnection",t._patchGetConnection(r)),t._wrap(r,"end",t._patchPoolEnd(r)),t._setPoolCallbacks(r,""),r}}}_patchPoolEnd(e){return t=>{let n=this;return function(r){let o=e._allConnections.length,i=e._freeConnections.length,a=(0,l.getPoolNameOld)(e);n._connCountAdd(-(o-i),a,"used"),n._connCountAdd(-i,a,"idle"),t.apply(e,arguments)}}}_patchCreatePoolCluster(){return e=>{let t=this;return function(n){let r=e(...arguments);return t._wrap(r,"getConnection",t._patchGetConnection(r)),t._wrap(r,"add",t._patchAdd(r)),r}}}_patchAdd(e){return t=>{let n=this;return function(r,o){if(!n._enabled)return n._unwrap(e,"add"),t.apply(e,arguments);t.apply(e,arguments);let i=e._nodes;if(i){let t=i["object"==typeof r?"CLUSTER::"+e._lastId:String(r)].pool;n._setPoolCallbacks(t,r)}}}}_patchGetConnection(e){return t=>{let n=this;return function(r,o,i){if(!n._enabled)return n._unwrap(e,"getConnection"),t.apply(e,arguments);if(1==arguments.length&&"function"==typeof r){let o=n._getConnectionCallbackPatchFn(r);return t.call(e,o)}if(2==arguments.length&&"function"==typeof o){let i=n._getConnectionCallbackPatchFn(o);return t.call(e,r,i)}if(3==arguments.length&&"function"==typeof i){let a=n._getConnectionCallbackPatchFn(i);return t.call(e,r,o,a)}return t.apply(e,arguments)}}}_getConnectionCallbackPatchFn(e){let t=this,n=r.context.active();return function(i,a){a&&!(0,o.isWrapped)(a.query)&&t._wrap(a,"query",t._patchQuery(a)),"function"==typeof e&&r.context.with(n,e,this,i,a)}}_patchQuery(e){return t=>{let n=this;return function(u,c,p){if(!n._enabled)return n._unwrap(e,"query"),t.apply(e,arguments);let _={},{host:T,port:d,database:E,user:S}=(0,l.getConfig)(e.config),A=parseInt(d,10),g=(0,l.getDbQueryText)(u);n._dbSemconvStability&o.SemconvStability.OLD&&(_[a.ATTR_DB_SYSTEM]=a.DB_SYSTEM_VALUE_MYSQL,_[a.ATTR_DB_CONNECTION_STRING]=(0,l.getJDBCString)(T,d,E),_[a.ATTR_DB_NAME]=E,_[a.ATTR_DB_USER]=S,_[a.ATTR_DB_STATEMENT]=g),n._dbSemconvStability&o.SemconvStability.STABLE&&(_[i.ATTR_DB_SYSTEM_NAME]=i.DB_SYSTEM_NAME_VALUE_MYSQL,_[i.ATTR_DB_NAMESPACE]=E,_[i.ATTR_DB_QUERY_TEXT]=g),n._netSemconvStability&o.SemconvStability.OLD&&(_[a.ATTR_NET_PEER_NAME]=T,isNaN(A)||(_[a.ATTR_NET_PEER_PORT]=A)),n._netSemconvStability&o.SemconvStability.STABLE&&(_[i.ATTR_SERVER_ADDRESS]=T,isNaN(A)||(_[i.ATTR_SERVER_PORT]=A));let m=n.tracer.startSpan((0,l.getSpanName)(u),{kind:r.SpanKind.CLIENT,attributes:_});if(n.getConfig().enhancedDatabaseReporting){let e;Array.isArray(c)?e=c:arguments[2]&&(e=[c]),m.setAttribute(s.AttributeNames.MYSQL_VALUES,(0,l.getDbValues)(u,e))}let h=Array.from(arguments).findIndex(e=>"function"==typeof e),R=r.context.active();if(-1!==h)return n._wrap(arguments,h,n._patchCallbackQuery(m,R)),r.context.with(r.trace.setSpan(r.context.active(),m),()=>t.apply(e,arguments));{let n=r.context.with(r.trace.setSpan(r.context.active(),m),()=>t.apply(e,arguments));return r.context.bind(R,n),n.on("error",e=>m.setStatus({code:r.SpanStatusCode.ERROR,message:e.message})).on("end",()=>{m.end()})}}}}_patchCallbackQuery(e,t){return n=>function(o,i,a){return o&&e.setStatus({code:r.SpanStatusCode.ERROR,message:o.message}),e.end(),r.context.with(t,()=>n(...arguments))}}_setPoolCallbacks(e,t){let n=t||(0,l.getPoolNameOld)(e);e.on("connection",e=>{this._connCountAdd(1,n,"idle")}),e.on("acquire",e=>{this._connCountAdd(-1,n,"idle"),this._connCountAdd(1,n,"used")}),e.on("release",e=>{this._connCountAdd(1,n,"idle"),this._connCountAdd(-1,n,"used")})}}n.MySQLInstrumentation=c},510039,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.MySQLInstrumentation=void 0;var r=e.r(937494);Object.defineProperty(n,"MySQLInstrumentation",{enumerable:!0,get:function(){return r.MySQLInstrumentation}})},473485,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(510039),o=e.r(976285),i=e.r(625331),a="Mysql",s=i.generateInstrumentOnce(a,()=>new r.MySQLInstrumentation({})),l=o.defineIntegration(()=>({name:a,setupOnce(){s()}}));n.instrumentMysql=s,n.mysqlIntegration=l},366020,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.DB_SYSTEM_VALUE_MYSQL=n.ATTR_NET_PEER_PORT=n.ATTR_NET_PEER_NAME=n.ATTR_DB_USER=n.ATTR_DB_SYSTEM=n.ATTR_DB_STATEMENT=n.ATTR_DB_NAME=n.ATTR_DB_CONNECTION_STRING=void 0,n.ATTR_DB_CONNECTION_STRING="db.connection_string",n.ATTR_DB_NAME="db.name",n.ATTR_DB_STATEMENT="db.statement",n.ATTR_DB_SYSTEM="db.system",n.ATTR_DB_USER="db.user",n.ATTR_NET_PEER_NAME="net.peer.name",n.ATTR_NET_PEER_PORT="net.peer.port",n.DB_SYSTEM_VALUE_MYSQL="mysql"},386127,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.addSqlCommenterComment=void 0;let r=e.r(357762),o=e.r(385692);n.addSqlCommenterComment=function(e,t){let n;if("string"!=typeof t||0===t.length||(n=t.indexOf("--"))>=0||!(0>t.indexOf("/*"))&&n{let t=encodeURIComponent(a[e]).replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`);return`${e}='${t}'`}).join(",");return`${t} /*${l}*/`}},739749,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getConnectionPrototypeToInstrument=n.once=n.getSpanName=n.getQueryText=n.getConnectionAttributes=void 0;let r=e.r(366020),o=e.r(204780),i=e.r(808119);function a(e){return e.replace(/\b\d+\b/g,"?").replace(/(["'])(?:(?=(\\?))\2.)*?\1/g,"?")}n.getConnectionAttributes=function(e,t,n){var a,s,l;let u,{host:c,port:p,database:_,user:T}=function(e){let{host:t,port:n,database:r,user:o}=e&&e.connectionConfig||e||{};return{host:t,port:n,database:r,user:o}}(e),d={};t&o.SemconvStability.OLD&&(d[r.ATTR_DB_CONNECTION_STRING]=(a=c,s=p,l=_,u=`jdbc:mysql://${a||"localhost"}`,"number"==typeof s&&(u+=`:${s}`),"string"==typeof l&&(u+=`/${l}`),u),d[r.ATTR_DB_NAME]=_,d[r.ATTR_DB_USER]=T),t&o.SemconvStability.STABLE&&(d[i.ATTR_DB_NAMESPACE]=_);let E=parseInt(p,10);return n&o.SemconvStability.OLD&&(d[r.ATTR_NET_PEER_NAME]=c,isNaN(E)||(d[r.ATTR_NET_PEER_PORT]=E)),n&o.SemconvStability.STABLE&&(d[i.ATTR_SERVER_ADDRESS]=c,isNaN(E)||(d[i.ATTR_SERVER_PORT]=E)),d},n.getQueryText=function(e,t,n,r=!1,o=a){let[i,s]="string"==typeof e?[e,n]:[e.sql,"values"in e?n||e.values:n];try{if(r)return o(i);if(t&&s)return t(i,s);return i}catch(e){return"Could not determine the query due to an error in masking or formatting"}},n.getSpanName=function(e){let t="object"==typeof e?e.sql:e,n=t?.indexOf(" ");return"number"==typeof n&&-1!==n?t?.substring(0,n):t},n.once=e=>{let t=!1;return(...n)=>{if(!t)return t=!0,e(...n)}},n.getConnectionPrototypeToInstrument=function(e){let t=e.prototype,n=Object.getPrototypeOf(t);return"function"==typeof n?.query&&"function"==typeof n?.execute?n:t}},184863,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.60.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-mysql2"},742188,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.MySQL2Instrumentation=void 0;let r=e.r(357762),o=e.r(204780),i=e.r(366020),a=e.r(386127),s=e.r(739749),l=e.r(184863),u=e.r(808119),c=[">=1.4.2 <4"];class p extends o.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(e={}){super(l.PACKAGE_NAME,l.PACKAGE_VERSION,e),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,o.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,o.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){let e;function t(t){!e&&t.format&&(e=t.format)}let n=t=>{(0,o.isWrapped)(t.query)&&this._unwrap(t,"query"),this._wrap(t,"query",this._patchQuery(e,!1)),(0,o.isWrapped)(t.execute)&&this._unwrap(t,"execute"),this._wrap(t,"execute",this._patchQuery(e,!0))},r=e=>{this._unwrap(e,"query"),this._unwrap(e,"execute")};return[new o.InstrumentationNodeModuleDefinition("mysql2",c,e=>(t(e),e),()=>{},[new o.InstrumentationNodeModuleFile("mysql2/promise.js",c,e=>(t(e),e),()=>{}),new o.InstrumentationNodeModuleFile("mysql2/lib/connection.js",c,e=>(n((0,s.getConnectionPrototypeToInstrument)(e)),e),e=>{void 0===e||r((0,s.getConnectionPrototypeToInstrument)(e))})])]}_patchQuery(e,t){return n=>{let l=this;return function(c,p,_){let T;Array.isArray(p)?T=p:arguments[2]&&(T=[p]);let{maskStatement:d,maskStatementHook:E,responseHook:S}=l.getConfig(),A=(0,s.getConnectionAttributes)(this.config,l._dbSemconvStability,l._netSemconvStability),g=(0,s.getQueryText)(c,e,T,d,E);l._dbSemconvStability&o.SemconvStability.OLD&&(A[i.ATTR_DB_SYSTEM]=i.DB_SYSTEM_VALUE_MYSQL,A[i.ATTR_DB_STATEMENT]=g),l._dbSemconvStability&o.SemconvStability.STABLE&&(A[u.ATTR_DB_SYSTEM_NAME]=u.DB_SYSTEM_NAME_VALUE_MYSQL,A[u.ATTR_DB_QUERY_TEXT]=g);let m=l.tracer.startSpan((0,s.getSpanName)(c),{kind:r.SpanKind.CLIENT,attributes:A});!t&&l.getConfig().addSqlCommenterCommentToQueries&&(arguments[0]=c="string"==typeof c?(0,a.addSqlCommenterComment)(m,c):Object.assign(c,{sql:(0,a.addSqlCommenterComment)(m,c.sql)}));let h=(0,s.once)((e,t)=>{e?m.setStatus({code:r.SpanStatusCode.ERROR,message:e.message}):"function"==typeof S&&(0,o.safeExecuteInTheMiddle)(()=>{S(m,{queryResults:t})},e=>{e&&l._diag.warn("Failed executing responseHook",e)},!0),m.end()});if(1==arguments.length){"function"==typeof c.onResult&&l._wrap(c,"onResult",l._patchCallbackQuery(h));let e=n.apply(this,arguments);return e.once("error",e=>{h(e)}).once("result",e=>{h(void 0,e)}),e}return"function"==typeof arguments[1]?l._wrap(arguments,1,l._patchCallbackQuery(h)):"function"==typeof arguments[2]&&l._wrap(arguments,2,l._patchCallbackQuery(h)),n.apply(this,arguments)}}}_patchCallbackQuery(e){return t=>function(n,r,o){return e(n,r),t(...arguments)}}}n.MySQL2Instrumentation=p},623318,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.MySQL2Instrumentation=void 0;var r=e.r(742188);Object.defineProperty(n,"MySQL2Instrumentation",{enumerable:!0,get:function(){return r.MySQL2Instrumentation}})},625680,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(623318),o=e.r(976285),i=e.r(625331),a="Mysql2",s=i.generateInstrumentOnce(a,()=>new r.MySQL2Instrumentation({responseHook(e){i.addOriginToSpan(e,"auto.db.otel.mysql2")}})),l=o.defineIntegration(()=>({name:a,setupOnce(){s()}}));n.instrumentMysql2=s,n.mysql2Integration=l},458792,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.DB_SYSTEM_VALUE_REDIS=n.DB_SYSTEM_NAME_VALUE_REDIS=n.ATTR_NET_PEER_PORT=n.ATTR_NET_PEER_NAME=n.ATTR_DB_SYSTEM=n.ATTR_DB_STATEMENT=n.ATTR_DB_CONNECTION_STRING=void 0,n.ATTR_DB_CONNECTION_STRING="db.connection_string",n.ATTR_DB_STATEMENT="db.statement",n.ATTR_DB_SYSTEM="db.system",n.ATTR_NET_PEER_NAME="net.peer.name",n.ATTR_NET_PEER_PORT="net.peer.port",n.DB_SYSTEM_NAME_VALUE_REDIS="redis",n.DB_SYSTEM_VALUE_REDIS="redis"},678116,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.endSpan=void 0;let r=e.r(357762);n.endSpan=(e,t)=>{t&&(e.recordException(t),e.setStatus({code:r.SpanStatusCode.ERROR,message:t.message})),e.end()}},744606,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.defaultDbStatementSerializer=void 0;let r=[{regex:/^ECHO/i,args:0},{regex:/^(LPUSH|MSET|PFA|PUBLISH|RPUSH|SADD|SET|SPUBLISH|XADD|ZADD)/i,args:1},{regex:/^(HSET|HMSET|LSET|LINSERT)/i,args:2},{regex:/^(ACL|BIT|B[LRZ]|CLIENT|CLUSTER|CONFIG|COMMAND|DECR|DEL|EVAL|EX|FUNCTION|GEO|GET|HINCR|HMGET|HSCAN|INCR|L[TRLM]|MEMORY|P[EFISTU]|RPOP|S[CDIMORSU]|XACK|X[CDGILPRT]|Z[CDILMPRS])/i,args:-1}];n.defaultDbStatementSerializer=(e,t)=>{if(Array.isArray(t)&&t.length){let n=r.find(({regex:t})=>t.test(e))?.args??0,o=n>=0?t.slice(0,n):t;return t.length>o.length&&o.push(`[${t.length-n} other arguments]`),`${e} ${o.join(" ")}`}return e}},983181,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.62.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-ioredis"},943579,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.IORedisInstrumentation=void 0;let r=e.r(357762),o=e.r(204780),i=e.r(808119),a=e.r(458792),s=e.r(204780),l=e.r(678116),u=e.r(744606),c=e.r(983181),p={requireParentSpan:!0};class _ extends o.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(e={}){super(c.PACKAGE_NAME,c.PACKAGE_VERSION,{...p,...e}),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,o.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,o.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(e={}){super.setConfig({...p,...e})}init(){return[new o.InstrumentationNodeModuleDefinition("ioredis",[">=2.0.0 <6"],(e,t)=>{let n="Module"===e[Symbol.toStringTag]?e.default:e;return(0,o.isWrapped)(n.prototype.sendCommand)&&this._unwrap(n.prototype,"sendCommand"),this._wrap(n.prototype,"sendCommand",this._patchSendCommand(t)),(0,o.isWrapped)(n.prototype.connect)&&this._unwrap(n.prototype,"connect"),this._wrap(n.prototype,"connect",this._patchConnection()),e},e=>{if(void 0===e)return;let t="Module"===e[Symbol.toStringTag]?e.default:e;this._unwrap(t.prototype,"sendCommand"),this._unwrap(t.prototype,"connect")})]}_patchSendCommand(e){return t=>this._traceSendCommand(t,e)}_patchConnection(){return e=>this._traceConnection(e)}_traceSendCommand(e,t){let n=this;return function(c){if(arguments.length<1||"object"!=typeof c)return e.apply(this,arguments);let p=n.getConfig(),_=p.dbStatementSerializer||u.defaultDbStatementSerializer,T=void 0===r.trace.getSpan(r.context.active());if(!0===p.requireParentSpan&&T)return e.apply(this,arguments);let d={},{host:E,port:S}=this.options,A=_(c.name,c.args);n._dbSemconvStability&o.SemconvStability.OLD&&(d[a.ATTR_DB_SYSTEM]=a.DB_SYSTEM_VALUE_REDIS,d[a.ATTR_DB_STATEMENT]=A,d[a.ATTR_DB_CONNECTION_STRING]=`redis://${E}:${S}`),n._dbSemconvStability&o.SemconvStability.STABLE&&(d[i.ATTR_DB_SYSTEM_NAME]=a.DB_SYSTEM_NAME_VALUE_REDIS,d[i.ATTR_DB_QUERY_TEXT]=A),n._netSemconvStability&o.SemconvStability.OLD&&(d[a.ATTR_NET_PEER_NAME]=E,d[a.ATTR_NET_PEER_PORT]=S),n._netSemconvStability&o.SemconvStability.STABLE&&(d[i.ATTR_SERVER_ADDRESS]=E,d[i.ATTR_SERVER_PORT]=S);let g=n.tracer.startSpan(c.name,{kind:r.SpanKind.CLIENT,attributes:d}),{requestHook:m}=p;m&&(0,s.safeExecuteInTheMiddle)(()=>m(g,{moduleVersion:t,cmdName:c.name,cmdArgs:c.args}),e=>{e&&r.diag.error("ioredis instrumentation: request hook failed",e)},!0);try{let t=e.apply(this,arguments),n=c.resolve;c.resolve=function(e){(0,s.safeExecuteInTheMiddle)(()=>p.responseHook?.(g,c.name,c.args,e),e=>{e&&r.diag.error("ioredis instrumentation: response hook failed",e)},!0),(0,l.endSpan)(g,null),n(e)};let o=c.reject;return c.reject=function(e){(0,l.endSpan)(g,e),o(e)},t}catch(e){throw(0,l.endSpan)(g,e),e}}}_traceConnection(e){let t=this;return function(){let n=void 0===r.trace.getSpan(r.context.active());if(!0===t.getConfig().requireParentSpan&&n)return e.apply(this,arguments);let s={},{host:u,port:c}=this.options;t._dbSemconvStability&o.SemconvStability.OLD&&(s[a.ATTR_DB_SYSTEM]=a.DB_SYSTEM_VALUE_REDIS,s[a.ATTR_DB_STATEMENT]="connect",s[a.ATTR_DB_CONNECTION_STRING]=`redis://${u}:${c}`),t._dbSemconvStability&o.SemconvStability.STABLE&&(s[i.ATTR_DB_SYSTEM_NAME]=a.DB_SYSTEM_NAME_VALUE_REDIS,s[i.ATTR_DB_QUERY_TEXT]="connect"),t._netSemconvStability&o.SemconvStability.OLD&&(s[a.ATTR_NET_PEER_NAME]=u,s[a.ATTR_NET_PEER_PORT]=c),t._netSemconvStability&o.SemconvStability.STABLE&&(s[i.ATTR_SERVER_ADDRESS]=u,s[i.ATTR_SERVER_PORT]=c);let p=t.tracer.startSpan("connect",{kind:r.SpanKind.CLIENT,attributes:s});try{let t=e.apply(this,arguments);return(0,l.endSpan)(p,null),t}catch(e){throw(0,l.endSpan)(p,e),e}}}}n.IORedisInstrumentation=_},788406,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.IORedisInstrumentation=void 0;var r=e.r(943579);Object.defineProperty(n,"IORedisInstrumentation",{enumerable:!0,get:function(){return r.IORedisInstrumentation}})},680749,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.62.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-redis"},324932,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getTracedCreateStreamTrace=n.getTracedCreateClient=n.endSpan=void 0;let r=e.r(357762);n.endSpan=(e,t)=>{t&&e.setStatus({code:r.SpanStatusCode.ERROR,message:t.message}),e.end()},n.getTracedCreateClient=e=>function(){let t=e.apply(this,arguments);return r.context.bind(r.context.active(),t)},n.getTracedCreateStreamTrace=e=>function(){return Object.prototype.hasOwnProperty.call(this,"stream")||Object.defineProperty(this,"stream",{get(){return this._patched_redis_stream},set(e){r.context.bind(r.context.active(),e),this._patched_redis_stream=e}}),e.apply(this,arguments)}},985163,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.DB_SYSTEM_VALUE_REDIS=n.DB_SYSTEM_NAME_VALUE_REDIS=n.ATTR_NET_PEER_PORT=n.ATTR_NET_PEER_NAME=n.ATTR_DB_SYSTEM=n.ATTR_DB_STATEMENT=n.ATTR_DB_CONNECTION_STRING=void 0,n.ATTR_DB_CONNECTION_STRING="db.connection_string",n.ATTR_DB_STATEMENT="db.statement",n.ATTR_DB_SYSTEM="db.system",n.ATTR_NET_PEER_NAME="net.peer.name",n.ATTR_NET_PEER_PORT="net.peer.port",n.DB_SYSTEM_NAME_VALUE_REDIS="redis",n.DB_SYSTEM_VALUE_REDIS="redis"},868434,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.RedisInstrumentationV2_V3=void 0;let r=e.r(204780),o=e.r(324932),i=e.r(680749),a=e.r(357762),s=e.r(808119),l=e.r(985163),u=e.r(744606);class c extends r.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(e={}){super(i.PACKAGE_NAME,i.PACKAGE_VERSION,e),this._semconvStability=e.semconvStability?e.semconvStability:(0,r.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(e={}){super.setConfig(e),this._semconvStability=e.semconvStability?e.semconvStability:(0,r.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return[new r.InstrumentationNodeModuleDefinition("redis",[">=2.6.0 <4"],e=>((0,r.isWrapped)(e.RedisClient.prototype.internal_send_command)&&this._unwrap(e.RedisClient.prototype,"internal_send_command"),this._wrap(e.RedisClient.prototype,"internal_send_command",this._getPatchInternalSendCommand()),(0,r.isWrapped)(e.RedisClient.prototype.create_stream)&&this._unwrap(e.RedisClient.prototype,"create_stream"),this._wrap(e.RedisClient.prototype,"create_stream",this._getPatchCreateStream()),(0,r.isWrapped)(e.createClient)&&this._unwrap(e,"createClient"),this._wrap(e,"createClient",this._getPatchCreateClient()),e),e=>{void 0!==e&&(this._unwrap(e.RedisClient.prototype,"internal_send_command"),this._unwrap(e.RedisClient.prototype,"create_stream"),this._unwrap(e,"createClient"))})]}_getPatchInternalSendCommand(){let e=this;return function(t){return function(n){if(1!=arguments.length||"object"!=typeof n)return t.apply(this,arguments);let i=e.getConfig(),p=void 0===a.trace.getSpan(a.context.active());if(!0===i.requireParentSpan&&p)return t.apply(this,arguments);let _=i?.dbStatementSerializer||u.defaultDbStatementSerializer,T={};e._semconvStability&r.SemconvStability.OLD&&Object.assign(T,{[l.ATTR_DB_SYSTEM]:l.DB_SYSTEM_VALUE_REDIS,[l.ATTR_DB_STATEMENT]:_(n.command,n.args)}),e._semconvStability&r.SemconvStability.STABLE&&Object.assign(T,{[s.ATTR_DB_SYSTEM_NAME]:l.DB_SYSTEM_NAME_VALUE_REDIS,[s.ATTR_DB_OPERATION_NAME]:n.command,[s.ATTR_DB_QUERY_TEXT]:_(n.command,n.args)});let d=e.tracer.startSpan(`${c.COMPONENT}-${n.command}`,{kind:a.SpanKind.CLIENT,attributes:T});if(this.connection_options){let t={};e._semconvStability&r.SemconvStability.OLD&&Object.assign(t,{[l.ATTR_NET_PEER_NAME]:this.connection_options.host,[l.ATTR_NET_PEER_PORT]:this.connection_options.port}),e._semconvStability&r.SemconvStability.STABLE&&Object.assign(t,{[s.ATTR_SERVER_ADDRESS]:this.connection_options.host,[s.ATTR_SERVER_PORT]:this.connection_options.port}),d.setAttributes(t)}this.address&&e._semconvStability&r.SemconvStability.OLD&&d.setAttribute(l.ATTR_DB_CONNECTION_STRING,`redis://${this.address}`);let E=arguments[0].callback;if(E){let t=a.context.active();arguments[0].callback=function(s,l){if(i?.responseHook){let t=i.responseHook;(0,r.safeExecuteInTheMiddle)(()=>{t(d,n.command,n.args,l)},t=>{t&&e._diag.error("Error executing responseHook",t)},!0)}return(0,o.endSpan)(d,s),a.context.with(t,E,this,...arguments)}}try{return t.apply(this,arguments)}catch(e){throw(0,o.endSpan)(d,e),e}}}}_getPatchCreateClient(){return function(e){return(0,o.getTracedCreateClient)(e)}}_getPatchCreateStream(){return function(e){return(0,o.getTracedCreateStreamTrace)(e)}}}n.RedisInstrumentationV2_V3=c},33280,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getClientAttributes=void 0;let r=e.r(808119),o=e.r(985163),i=e.r(204780);n.getClientAttributes=function(e,t,n){let a={};return n&i.SemconvStability.OLD&&Object.assign(a,{[o.ATTR_DB_SYSTEM]:o.DB_SYSTEM_VALUE_REDIS,[o.ATTR_NET_PEER_NAME]:t?.socket?.host,[o.ATTR_NET_PEER_PORT]:t?.socket?.port,[o.ATTR_DB_CONNECTION_STRING]:function(e,t){if("string"==typeof t&&t)try{let e=new URL(t);return e.searchParams.delete("user_pwd"),e.username="",e.password="",e.href}catch(t){e.error("failed to sanitize redis connection url",t)}}(e,t?.url)}),n&i.SemconvStability.STABLE&&Object.assign(a,{[r.ATTR_DB_SYSTEM_NAME]:o.DB_SYSTEM_NAME_VALUE_REDIS,[r.ATTR_SERVER_ADDRESS]:t?.socket?.host,[r.ATTR_SERVER_PORT]:t?.socket?.port}),a}},130932,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.RedisInstrumentationV4_V5=void 0;let r=e.r(357762),o=e.r(204780),i=e.r(33280),a=e.r(744606),s=e.r(680749),l=e.r(808119),u=e.r(985163),c=Symbol("opentelemetry.instrumentation.redis.open_spans"),p=Symbol("opentelemetry.instrumentation.redis.multi_command_options");class _ extends o.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(e={}){super(s.PACKAGE_NAME,s.PACKAGE_VERSION,e),this._semconvStability=e.semconvStability?e.semconvStability:(0,o.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(e={}){super.setConfig(e),this._semconvStability=e.semconvStability?e.semconvStability:(0,o.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return[this._getInstrumentationNodeModuleDefinition("@redis/client"),this._getInstrumentationNodeModuleDefinition("@node-redis/client")]}_getInstrumentationNodeModuleDefinition(e){let t=new o.InstrumentationNodeModuleFile(`${e}/dist/lib/commander.js`,["^1.0.0"],(e,t)=>{let n=e.transformCommandArguments;if(!n)return this._diag.error("internal instrumentation error, missing transformCommandArguments function"),e;let r=t?.startsWith("1.0.")?"extendWithCommands":"attachCommands";return(0,o.isWrapped)(e?.[r])&&this._unwrap(e,r),this._wrap(e,r,this._getPatchExtendWithCommands(n)),e},e=>{(0,o.isWrapped)(e?.extendWithCommands)&&this._unwrap(e,"extendWithCommands"),(0,o.isWrapped)(e?.attachCommands)&&this._unwrap(e,"attachCommands")}),n=new o.InstrumentationNodeModuleFile(`${e}/dist/lib/client/multi-command.js`,["^1.0.0","^5.0.0"],e=>{let t=e?.default?.prototype;return(0,o.isWrapped)(t?.exec)&&this._unwrap(t,"exec"),this._wrap(t,"exec",this._getPatchMultiCommandsExec(!1)),(0,o.isWrapped)(t?.execAsPipeline)&&this._unwrap(t,"execAsPipeline"),this._wrap(t,"execAsPipeline",this._getPatchMultiCommandsExec(!0)),(0,o.isWrapped)(t?.addCommand)&&this._unwrap(t,"addCommand"),this._wrap(t,"addCommand",this._getPatchMultiCommandsAddCommand()),e},e=>{let t=e?.default?.prototype;(0,o.isWrapped)(t?.exec)&&this._unwrap(t,"exec"),(0,o.isWrapped)(t?.addCommand)&&this._unwrap(t,"addCommand")}),r=new o.InstrumentationNodeModuleFile(`${e}/dist/lib/client/index.js`,["^1.0.0","^5.0.0"],e=>{let t=e?.default?.prototype;return t?.multi&&((0,o.isWrapped)(t?.multi)&&this._unwrap(t,"multi"),this._wrap(t,"multi",this._getPatchRedisClientMulti())),t?.MULTI&&((0,o.isWrapped)(t?.MULTI)&&this._unwrap(t,"MULTI"),this._wrap(t,"MULTI",this._getPatchRedisClientMulti())),(0,o.isWrapped)(t?.sendCommand)&&this._unwrap(t,"sendCommand"),this._wrap(t,"sendCommand",this._getPatchRedisClientSendCommand()),this._wrap(t,"connect",this._getPatchedClientConnect()),e},e=>{let t=e?.default?.prototype;(0,o.isWrapped)(t?.multi)&&this._unwrap(t,"multi"),(0,o.isWrapped)(t?.MULTI)&&this._unwrap(t,"MULTI"),(0,o.isWrapped)(t?.sendCommand)&&this._unwrap(t,"sendCommand")});return new o.InstrumentationNodeModuleDefinition(e,["^1.0.0","^5.0.0"],e=>e,()=>{},[t,n,r])}_getPatchExtendWithCommands(e){let t=this;return function(n){return function(r){if(r?.BaseClass?.name!=="RedisClient")return n.apply(this,arguments);let o=r.executor;return r.executor=function(n,r){let i=e(n,r).args;return t._traceClientCommand(o,this,arguments,i)},n.apply(this,arguments)}}}_getPatchMultiCommandsExec(e){let t=this;return function(n){return function(){let r=n.apply(this,arguments);return"function"!=typeof r?.then?(t._diag.error("non-promise result when patching exec/execAsPipeline"),r):r.then(n=>{let r=this[c];return t._endSpansWithRedisReplies(r,n,e),n}).catch(n=>{let r=this[c];if(r){let o="MultiErrorReply"===n.constructor.name?n.replies:Array(r.length).fill(n);t._endSpansWithRedisReplies(r,o,e)}else t._diag.error("cannot find open spans to end for multi/pipeline");return Promise.reject(n)})}}}_getPatchMultiCommandsAddCommand(){let e=this;return function(t){return function(n){return e._traceClientCommand(t,this,arguments,n)}}}_getPatchRedisClientMulti(){return function(e){return function(){let t=e.apply(this,arguments);return t[p]=this.options,t}}}_getPatchRedisClientSendCommand(){let e=this;return function(t){return function(n){return e._traceClientCommand(t,this,arguments,n)}}}_getPatchedClientConnect(){let e=this;return function(t){return function(){let n=this.options,o=(0,i.getClientAttributes)(e._diag,n,e._semconvStability),a=e.tracer.startSpan(`${_.COMPONENT}-connect`,{kind:r.SpanKind.CLIENT,attributes:o});return r.context.with(r.trace.setSpan(r.context.active(),a),()=>t.apply(this)).then(e=>(a.end(),e)).catch(e=>(a.recordException(e),a.setStatus({code:r.SpanStatusCode.ERROR,message:e.message}),a.end(),Promise.reject(e)))}}}_traceClientCommand(e,t,n,s){if(void 0===r.trace.getSpan(r.context.active())&&this.getConfig().requireParentSpan)return e.apply(t,n);let T=t.options||t[p],d=s[0],E=s.slice(1),S=this.getConfig().dbStatementSerializer||a.defaultDbStatementSerializer,A=(0,i.getClientAttributes)(this._diag,T,this._semconvStability);this._semconvStability&o.SemconvStability.STABLE&&(A[l.ATTR_DB_OPERATION_NAME]=d);try{let e=S(d,E);null!=e&&(this._semconvStability&o.SemconvStability.OLD&&(A[u.ATTR_DB_STATEMENT]=e),this._semconvStability&o.SemconvStability.STABLE&&(A[l.ATTR_DB_QUERY_TEXT]=e))}catch(e){this._diag.error("dbStatementSerializer throw an exception",e,{commandName:d})}let g=this.tracer.startSpan(`${_.COMPONENT}-${d}`,{kind:r.SpanKind.CLIENT,attributes:A}),m=r.context.with(r.trace.setSpan(r.context.active(),g),()=>e.apply(t,n));return"function"==typeof m?.then?m.then(e=>{this._endSpanWithResponse(g,d,E,e,void 0)},e=>{this._endSpanWithResponse(g,d,E,null,e)}):(m[c]=m[c]||[],m[c].push({span:g,commandName:d,commandArgs:E})),m}_endSpansWithRedisReplies(e,t,n=!1){if(!e)return this._diag.error("cannot find open spans to end for redis multi/pipeline");if(t.length!==e.length)return this._diag.error("number of multi command spans does not match response from redis");let r=e.map(e=>e.commandName),i=r.every(e=>e===r[0])?(n?"PIPELINE ":"MULTI ")+r[0]:n?"PIPELINE":"MULTI";for(let n=0;n{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.RedisInstrumentation=void 0;let r=e.r(204780),o=e.r(680749),i=e.r(868434),a=e.r(130932),s={requireParentSpan:!1};class l extends r.InstrumentationBase{instrumentationV2_V3;instrumentationV4_V5;initialized=!1;constructor(e={}){const t={...s,...e};super(o.PACKAGE_NAME,o.PACKAGE_VERSION,t),this.instrumentationV2_V3=new i.RedisInstrumentationV2_V3(this.getConfig()),this.instrumentationV4_V5=new a.RedisInstrumentationV4_V5(this.getConfig()),this.initialized=!0}setConfig(e={}){let t={...s,...e};super.setConfig(t),this.initialized&&(this.instrumentationV2_V3.setConfig(t),this.instrumentationV4_V5.setConfig(t))}init(){}getModuleDefinitions(){return[...this.instrumentationV2_V3.getModuleDefinitions(),...this.instrumentationV4_V5.getModuleDefinitions()]}setTracerProvider(e){super.setTracerProvider(e),this.initialized&&(this.instrumentationV2_V3.setTracerProvider(e),this.instrumentationV4_V5.setTracerProvider(e))}enable(){super.enable(),this.initialized&&(this.instrumentationV2_V3.enable(),this.instrumentationV4_V5.enable())}disable(){super.disable(),this.initialized&&(this.instrumentationV2_V3.disable(),this.instrumentationV4_V5.disable())}}n.RedisInstrumentation=l},339097,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.RedisInstrumentation=void 0;var r=e.r(276221);Object.defineProperty(n,"RedisInstrumentation",{enumerable:!0,get:function(){return r.RedisInstrumentation}})},688662,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=["get","set","setex"],o=["get","mget"],i=["set","setex"];function a(e,t){return e.includes(t.toLowerCase())}function s(e){return a(o,e)?"cache.get":a(i,e)?"cache.put":void 0}function l(e){let t=[],n=e=>{e.forEach(e=>{Array.isArray(e)?n(e):t.push(e)})};return n(e),t}n.GET_COMMANDS=o,n.SET_COMMANDS=i,n.calculateCacheItemSize=function(e){let t=e=>{try{if(Buffer.isBuffer(e))return e.byteLength;if("string"==typeof e)return e.length;if("number"==typeof e)return e.toString().length;else if(null==e)return 0;return JSON.stringify(e).length}catch{return}};return Array.isArray(e)?e.reduce((e,n)=>{let r=t(n);return"number"==typeof r?void 0!==e?e+r:r:e},0):t(e)},n.getCacheKeySafely=function(e,t){try{if(0===t.length)return;let n=e=>"string"==typeof e||"number"==typeof e||Buffer.isBuffer(e)?[e.toString()]:Array.isArray(e)?l(e.map(e=>n(e))):[""],o=t[0];if(a(r,e)&&null!=o)return n(o);return l(t.map(e=>n(e)))}catch{return}},n.getCacheOperation=s,n.isInCommands=a,n.shouldConsiderForCache=function(e,t,n){if(!s(e))return!1;for(let e of t)if(function(e,t){return t.some(t=>e.startsWith(t))}(e,n))return!0;return!1}},978486,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(788406),o=e.r(339097),i=e.r(976285),a=e.r(625331),s=e.r(688662),l="Redis";n._redisOptions={};let u=(e,t,r,o)=>{e.setAttribute(i.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,"auto.db.otel.redis");let a=s.getCacheKeySafely(t,r),l=s.getCacheOperation(t);if(!a||!l||!n._redisOptions.cachePrefixes||!s.shouldConsiderForCache(t,a,n._redisOptions.cachePrefixes))return;let u=i.spanToJSON(e).data["net.peer.name"],c=i.spanToJSON(e).data["net.peer.port"];c&&u&&e.setAttributes({"network.peer.address":u,"network.peer.port":c});let p=s.calculateCacheItemSize(o);p&&e.setAttribute(i.SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE,p),s.isInCommands(s.GET_COMMANDS,t)&&void 0!==p&&e.setAttribute(i.SEMANTIC_ATTRIBUTE_CACHE_HIT,p>0),e.setAttributes({[i.SEMANTIC_ATTRIBUTE_SENTRY_OP]:l,[i.SEMANTIC_ATTRIBUTE_CACHE_KEY]:a});let _=a.join(", ");e.updateName(n._redisOptions.maxCacheKeyLength?i.truncate(_,n._redisOptions.maxCacheKeyLength):_)},c=a.generateInstrumentOnce(`${l}.IORedis`,()=>new r.IORedisInstrumentation({responseHook:u})),p=a.generateInstrumentOnce(`${l}.Redis`,()=>new o.RedisInstrumentation({responseHook:u})),_=Object.assign(()=>{c(),p()},{id:l}),T=i.defineIntegration((e={})=>({name:l,setupOnce(){n._redisOptions=e,_()}}));n.cacheResponseHook=u,n.instrumentRedis=_,n.redisIntegration=T},400893,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.EVENT_LISTENERS_SET=void 0,n.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.pg.eventListenersSet")},894105,(e,t,n)=>{"use strict";var r;Object.defineProperty(n,"__esModule",{value:!0}),n.AttributeNames=void 0,(r=n.AttributeNames||(n.AttributeNames={})).PG_VALUES="db.postgresql.values",r.PG_PLAN="db.postgresql.plan",r.IDLE_TIMEOUT_MILLIS="db.postgresql.idle.timeout.millis",r.MAX_CLIENT="db.postgresql.max.client"},184319,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS=n.METRIC_DB_CLIENT_CONNECTION_COUNT=n.DB_SYSTEM_VALUE_POSTGRESQL=n.DB_CLIENT_CONNECTION_STATE_VALUE_USED=n.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE=n.ATTR_NET_PEER_PORT=n.ATTR_NET_PEER_NAME=n.ATTR_DB_USER=n.ATTR_DB_SYSTEM=n.ATTR_DB_STATEMENT=n.ATTR_DB_NAME=n.ATTR_DB_CONNECTION_STRING=n.ATTR_DB_CLIENT_CONNECTION_STATE=n.ATTR_DB_CLIENT_CONNECTION_POOL_NAME=void 0,n.ATTR_DB_CLIENT_CONNECTION_POOL_NAME="db.client.connection.pool.name",n.ATTR_DB_CLIENT_CONNECTION_STATE="db.client.connection.state",n.ATTR_DB_CONNECTION_STRING="db.connection_string",n.ATTR_DB_NAME="db.name",n.ATTR_DB_STATEMENT="db.statement",n.ATTR_DB_SYSTEM="db.system",n.ATTR_DB_USER="db.user",n.ATTR_NET_PEER_NAME="net.peer.name",n.ATTR_NET_PEER_PORT="net.peer.port",n.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE="idle",n.DB_CLIENT_CONNECTION_STATE_VALUE_USED="used",n.DB_SYSTEM_VALUE_POSTGRESQL="postgresql",n.METRIC_DB_CLIENT_CONNECTION_COUNT="db.client.connection.count",n.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS="db.client.connection.pending_requests"},465522,(e,t,n)=>{"use strict";var r;Object.defineProperty(n,"__esModule",{value:!0}),n.SpanNames=void 0,(r=n.SpanNames||(n.SpanNames={})).QUERY_PREFIX="pg.query",r.CONNECT="pg.connect",r.POOL_CONNECT="pg-pool.connect"},482101,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.sanitizedErrorMessage=n.isObjectWithTextString=n.getErrorMessage=n.patchClientConnectCallback=n.patchCallbackPGPool=n.updateCounter=n.getPoolName=n.patchCallback=n.handleExecutionResult=n.handleConfigQuery=n.shouldSkipInstrumentation=n.getSemanticAttributesFromPoolConnection=n.getSemanticAttributesFromConnection=n.getConnectionString=n.parseAndMaskConnectionString=n.parseNormalizedOperationName=n.getQuerySpanName=void 0;let r=e.r(357762),o=e.r(894105),i=e.r(808119),a=e.r(184319),s=e.r(204780),l=e.r(465522);function u(e,t){if(!t)return l.SpanNames.QUERY_PREFIX;let n="string"==typeof t.name&&t.name?t.name:c(t.text);return`${l.SpanNames.QUERY_PREFIX}:${n}${e?` ${e}`:""}`}function c(e){let t=e.trim(),n=t.indexOf(" "),r=-1===n?t:t.slice(0,n);return(r=r.toUpperCase()).endsWith(";")?r.slice(0,-1):r}function p(e){try{let t=new URL(e);return t.username="",t.password="",t.toString()}catch(e){return"postgresql://localhost:5432/"}}function _(e){if("connectionString"in e&&e.connectionString)return p(e.connectionString);let t=e.host||"localhost",n=e.port||5432,r=e.database||"";return`postgresql://${t}:${n}/${r}`}function T(e){if(Number.isInteger(e))return e}function d(e,t){let n={};return t&s.SemconvStability.OLD&&(n={...n,[a.ATTR_DB_SYSTEM]:a.DB_SYSTEM_VALUE_POSTGRESQL,[a.ATTR_DB_NAME]:e.database,[a.ATTR_DB_CONNECTION_STRING]:_(e),[a.ATTR_DB_USER]:e.user,[a.ATTR_NET_PEER_NAME]:e.host,[a.ATTR_NET_PEER_PORT]:T(e.port)}),t&s.SemconvStability.STABLE&&(n={...n,[i.ATTR_DB_SYSTEM_NAME]:i.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[i.ATTR_DB_NAMESPACE]:e.namespace,[i.ATTR_SERVER_ADDRESS]:e.host,[i.ATTR_SERVER_PORT]:T(e.port)}),n}function E(e,t,n){"function"==typeof e.responseHook&&(0,s.safeExecuteInTheMiddle)(()=>{e.responseHook(t,{data:n})},e=>{e&&r.diag.error("Error running response hook",e)},!0)}function S(e){let t=e?.name??"PostgreSQLError",n=e?.code??"UNKNOWN";return`PostgreSQL error of type '${t}' occurred (code: ${n})`}n.getQuerySpanName=u,n.parseNormalizedOperationName=c,n.parseAndMaskConnectionString=p,n.getConnectionString=_,n.getSemanticAttributesFromConnection=d,n.getSemanticAttributesFromPoolConnection=function(e,t){let n;try{n=e.connectionString?new URL(e.connectionString):void 0}catch(e){n=void 0}let r={[o.AttributeNames.IDLE_TIMEOUT_MILLIS]:e.idleTimeoutMillis,[o.AttributeNames.MAX_CLIENT]:e.maxClient};return t&s.SemconvStability.OLD&&(r={...r,[a.ATTR_DB_SYSTEM]:a.DB_SYSTEM_VALUE_POSTGRESQL,[a.ATTR_DB_NAME]:n?.pathname.slice(1)??e.database,[a.ATTR_DB_CONNECTION_STRING]:_(e),[a.ATTR_NET_PEER_NAME]:n?.hostname??e.host,[a.ATTR_NET_PEER_PORT]:Number(n?.port)||T(e.port),[a.ATTR_DB_USER]:n?.username??e.user}),t&s.SemconvStability.STABLE&&(r={...r,[i.ATTR_DB_SYSTEM_NAME]:i.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[i.ATTR_DB_NAMESPACE]:e.namespace,[i.ATTR_SERVER_ADDRESS]:n?.hostname??e.host,[i.ATTR_SERVER_PORT]:Number(n?.port)||T(e.port)}),r},n.shouldSkipInstrumentation=function(e){return!0===e.requireParentSpan&&void 0===r.trace.getSpan(r.context.active())},n.handleConfigQuery=function(e,t,n,l){let{connectionParameters:c}=this,p=u(c.database,l),_=e.startSpan(p,{kind:r.SpanKind.CLIENT,attributes:d(c,n)});if(!l)return _;if(l.text&&(n&s.SemconvStability.OLD&&_.setAttribute(a.ATTR_DB_STATEMENT,l.text),n&s.SemconvStability.STABLE&&_.setAttribute(i.ATTR_DB_QUERY_TEXT,l.text)),t.enhancedDatabaseReporting&&Array.isArray(l.values))try{let e=l.values.map(e=>null==e?"null":e instanceof Buffer?e.toString():"object"!=typeof e?e.toString():"function"==typeof e.toPostgres?e.toPostgres():JSON.stringify(e));_.setAttribute(o.AttributeNames.PG_VALUES,e)}catch(e){r.diag.error("failed to stringify ",l.values,e)}return"string"==typeof l.name&&_.setAttribute(o.AttributeNames.PG_PLAN,l.name),_},n.handleExecutionResult=E,n.patchCallback=function(e,t,n,o,a){return function(s,l){s?(Object.prototype.hasOwnProperty.call(s,"code")&&(o[i.ATTR_ERROR_TYPE]=s.code),s instanceof Error&&t.recordException(S(s)),t.setStatus({code:r.SpanStatusCode.ERROR,message:s.message})):E(e,t,l),a(),t.end(),n.call(this,s,l)}},n.getPoolName=function(e){let t="";return(t+=(e?.host?`${e.host}`:"unknown_host")+":"+(e?.port?`${e.port}`:"unknown_port")+"/"+(e?.database?`${e.database}`:"unknown_database")).trim()},n.updateCounter=function(e,t,n,r,o){let i=t.totalCount,s=t.waitingCount,l=t.idleCount,u=i-l;return n.add(u-o.used,{[a.ATTR_DB_CLIENT_CONNECTION_STATE]:a.DB_CLIENT_CONNECTION_STATE_VALUE_USED,[a.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:e}),n.add(l-o.idle,{[a.ATTR_DB_CLIENT_CONNECTION_STATE]:a.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE,[a.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:e}),r.add(s-o.pending,{[a.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:e}),{used:u,idle:l,pending:s}},n.patchCallbackPGPool=function(e,t){return function(n,o,i){n&&(n instanceof Error&&e.recordException(S(n)),e.setStatus({code:r.SpanStatusCode.ERROR,message:n.message})),e.end(),t.call(this,n,o,i)}},n.patchClientConnectCallback=function(e,t){return function(n){n&&(n instanceof Error&&e.recordException(S(n)),e.setStatus({code:r.SpanStatusCode.ERROR,message:n.message})),e.end(),t.apply(this,arguments)}},n.getErrorMessage=function(e){return"object"==typeof e&&null!==e&&"message"in e?String(e.message):void 0},n.isObjectWithTextString=function(e){return"object"==typeof e&&"string"==typeof e?.text},n.sanitizedErrorMessage=S},324552,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.66.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-pg"},451598,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PgInstrumentation=void 0;let r=e.r(204780),o=e.r(357762),i=e.r(400893),a=e.r(482101),s=e.r(386127),l=e.r(324552),u=e.r(465522),c=e.r(385692),p=e.r(808119),_=e.r(184319);function T(e){return"Module"===e[Symbol.toStringTag]?e.default:e}class d extends r.InstrumentationBase{_connectionsCounter={used:0,idle:0,pending:0};_semconvStability;constructor(e={}){super(l.PACKAGE_NAME,l.PACKAGE_VERSION,e),this._semconvStability=(0,r.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}_updateMetricInstruments(){this._operationDuration=this.meter.createHistogram(p.METRIC_DB_CLIENT_OPERATION_DURATION,{description:"Duration of database client operations.",unit:"s",valueType:o.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[.001,.005,.01,.05,.1,.5,1,5,10]}}),this._connectionsCounter={idle:0,pending:0,used:0},this._connectionsCount=this.meter.createUpDownCounter(_.METRIC_DB_CLIENT_CONNECTION_COUNT,{description:"The number of connections that are currently in state described by the state attribute.",unit:"{connection}"}),this._connectionPendingRequests=this.meter.createUpDownCounter(_.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS,{description:"The number of current pending requests for an open connection.",unit:"{connection}"})}init(){let e=[">=8.0.3 <9"],t=new r.InstrumentationNodeModuleFile("pg/lib/native/client.js",e,this._patchPgClient.bind(this),this._unpatchPgClient.bind(this)),n=new r.InstrumentationNodeModuleFile("pg/lib/client.js",e,this._patchPgClient.bind(this),this._unpatchPgClient.bind(this));return[new r.InstrumentationNodeModuleDefinition("pg",e,e=>{let t=T(e);return this._patchPgClient(t.Client),e},e=>{let t=T(e);return this._unpatchPgClient(t.Client),e},[n,t]),new r.InstrumentationNodeModuleDefinition("pg-pool",[">=2.0.0 <4"],e=>{let t=T(e);return(0,r.isWrapped)(t.prototype.connect)&&this._unwrap(t.prototype,"connect"),this._wrap(t.prototype,"connect",this._getPoolConnectPatch()),t},e=>{let t=T(e);(0,r.isWrapped)(t.prototype.connect)&&this._unwrap(t.prototype,"connect")})]}_patchPgClient(e){if(!e)return;let t=T(e);return(0,r.isWrapped)(t.prototype.query)&&this._unwrap(t.prototype,"query"),(0,r.isWrapped)(t.prototype.connect)&&this._unwrap(t.prototype,"connect"),this._wrap(t.prototype,"query",this._getClientQueryPatch()),this._wrap(t.prototype,"connect",this._getClientConnectPatch()),e}_unpatchPgClient(e){let t=T(e);return(0,r.isWrapped)(t.prototype.query)&&this._unwrap(t.prototype,"query"),(0,r.isWrapped)(t.prototype.connect)&&this._unwrap(t.prototype,"connect"),e}_getClientConnectPatch(){let e=this;return t=>function(n){let r=e.getConfig();if(a.shouldSkipInstrumentation(r)||r.ignoreConnectSpans)return t.call(this,n);let i=e.tracer.startSpan(u.SpanNames.CONNECT,{kind:o.SpanKind.CLIENT,attributes:a.getSemanticAttributesFromConnection(this,e._semconvStability)});if(n){let e=o.trace.getSpan(o.context.active());n=a.patchClientConnectCallback(i,n),e&&(n=o.context.bind(o.context.active(),n))}let s=o.context.with(o.trace.setSpan(o.context.active(),i),()=>t.call(this,n));return E(i,s)}}recordOperationDuration(e,t){let n={},o=[p.ATTR_DB_NAMESPACE,p.ATTR_ERROR_TYPE,p.ATTR_SERVER_PORT,p.ATTR_SERVER_ADDRESS,p.ATTR_DB_OPERATION_NAME];this._semconvStability&r.SemconvStability.OLD&&o.push(_.ATTR_DB_SYSTEM),this._semconvStability&r.SemconvStability.STABLE&&o.push(p.ATTR_DB_SYSTEM_NAME),o.forEach(t=>{t in e&&(n[t]=e[t])});let i=(0,c.hrTimeToMilliseconds)((0,c.hrTimeDuration)(t,(0,c.hrTime)()))/1e3;this._operationDuration.record(i,n)}_getClientQueryPatch(){let e=this;return t=>(this._diag.debug("Patching pg.Client.prototype.query"),function(...n){let i;if(a.shouldSkipInstrumentation(e.getConfig()))return t.apply(this,n);let l=(0,c.hrTime)(),u=n[0],T="string"==typeof u,d=a.isObjectWithTextString(u),E=T?{text:u,values:Array.isArray(n[1])?n[1]:void 0}:d?{...u,name:u.name,text:u.text,values:u.values??(Array.isArray(n[1])?n[1]:void 0)}:void 0,S={[_.ATTR_DB_SYSTEM]:_.DB_SYSTEM_VALUE_POSTGRESQL,[p.ATTR_DB_NAMESPACE]:this.database,[p.ATTR_SERVER_PORT]:this.connectionParameters.port,[p.ATTR_SERVER_ADDRESS]:this.connectionParameters.host};E?.text&&(S[p.ATTR_DB_OPERATION_NAME]=a.parseNormalizedOperationName(E?.text));let A=()=>{e.recordOperationDuration(S,l)},g=e.getConfig(),m=a.handleConfigQuery.call(this,e.tracer,g,e._semconvStability,E);if(g.addSqlCommenterCommentToQueries&&(T?n[0]=(0,s.addSqlCommenterComment)(m,u):!d||"name"in u||(n[0]={...u,text:(0,s.addSqlCommenterComment)(m,u.text)})),n.length>0){let t=o.trace.getSpan(o.context.active());if("function"==typeof n[n.length-1])n[n.length-1]=a.patchCallback(g,m,n[n.length-1],S,A),t&&(n[n.length-1]=o.context.bind(o.context.active(),n[n.length-1]));else if("function"==typeof E?.callback){let r=a.patchCallback(e.getConfig(),m,E.callback,S,A);t&&(r=o.context.bind(o.context.active(),r)),n[0].callback=r}}let{requestHook:h}=g;"function"==typeof h&&E&&(0,r.safeExecuteInTheMiddle)(()=>{let{database:e,host:t,port:n,user:r}=this.connectionParameters;h(m,{connection:{database:e,host:t,port:n,user:r},query:{text:E.text,values:E.values,name:E.name}})},t=>{t&&e._diag.error("Error running query hook",t)},!0);try{i=t.apply(this,n)}catch(e){throw e instanceof Error&&m.recordException(a.sanitizedErrorMessage(e)),m.setStatus({code:o.SpanStatusCode.ERROR,message:a.getErrorMessage(e)}),m.end(),e}return i instanceof Promise?i.then(t=>new Promise(n=>{a.handleExecutionResult(e.getConfig(),m,t),A(),m.end(),n(t)})).catch(e=>new Promise((t,n)=>{e instanceof Error&&m.recordException(a.sanitizedErrorMessage(e)),m.setStatus({code:o.SpanStatusCode.ERROR,message:e.message}),A(),m.end(),n(e)})):i})}_setPoolConnectEventListeners(e){if(e[i.EVENT_LISTENERS_SET])return;let t=a.getPoolName(e.options);e.on("connect",()=>{this._connectionsCounter=a.updateCounter(t,e,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),e.on("acquire",()=>{this._connectionsCounter=a.updateCounter(t,e,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),e.on("remove",()=>{this._connectionsCounter=a.updateCounter(t,e,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),e.on("release",()=>{this._connectionsCounter=a.updateCounter(t,e,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),e[i.EVENT_LISTENERS_SET]=!0}_getPoolConnectPatch(){let e=this;return t=>function(n){let r=e.getConfig();if(a.shouldSkipInstrumentation(r)||(e._setPoolConnectEventListeners(this),r.ignoreConnectSpans))return t.call(this,n);let i=e.tracer.startSpan(u.SpanNames.POOL_CONNECT,{kind:o.SpanKind.CLIENT,attributes:a.getSemanticAttributesFromPoolConnection(this.options,e._semconvStability)});if(n){let e=o.trace.getSpan(o.context.active());n=a.patchCallbackPGPool(i,n),e&&(n=o.context.bind(o.context.active(),n))}let s=o.context.with(o.trace.setSpan(o.context.active(),i),()=>t.call(this,n));return E(i,s)}}}function E(e,t){return t instanceof Promise?o.context.bind(o.context.active(),t.then(t=>(e.end(),t)).catch(t=>(t instanceof Error&&e.recordException(a.sanitizedErrorMessage(t)),e.setStatus({code:o.SpanStatusCode.ERROR,message:a.getErrorMessage(t)}),e.end(),Promise.reject(t)))):t}n.PgInstrumentation=d},840167,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.AttributeNames=n.PgInstrumentation=void 0;var r=e.r(451598);Object.defineProperty(n,"PgInstrumentation",{enumerable:!0,get:function(){return r.PgInstrumentation}});var o=e.r(894105);Object.defineProperty(n,"AttributeNames",{enumerable:!0,get:function(){return o.AttributeNames}})},832719,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(840167),o=e.r(976285),i=e.r(625331),a="Postgres",s=i.generateInstrumentOnce(a,r.PgInstrumentation,e=>({requireParentSpan:!0,requestHook(e){i.addOriginToSpan(e,"auto.db.otel.postgres")},ignoreConnectSpans:e?.ignoreConnectSpans??!1})),l=o.defineIntegration(e=>({name:a,setupOnce(){s(e)}}));n.instrumentPostgres=s,n.postgresIntegration=l},19194,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(357762),o=e.r(204780),i=e.r(808119),a=e.r(976285),s=e.r(625331),l=e.r(866779),u="PostgresJs",c=[">=3.0.0 <4"],p=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,_=Symbol.for("sentry.query.from.instrumented.sql"),T=s.generateInstrumentOnce(u,e=>new d({requireParentSpan:e?.requireParentSpan??!0,requestHook:e?.requestHook}));class d extends o.InstrumentationBase{constructor(e){super("sentry-postgres-js",a.SDK_VERSION,e)}init(){let e=new o.InstrumentationNodeModuleDefinition("postgres",c,e=>{try{return this._patchPostgres(e)}catch(t){return l.DEBUG_BUILD&&a.debug.error("Failed to patch postgres module:",t),e}},e=>e);return["src","cf/src","cjs/src"].forEach(t=>{e.files.push(new o.InstrumentationNodeModuleFile(`postgres/${t}/query.js`,c,this._patchQueryPrototype.bind(this),this._unpatchQueryPrototype.bind(this)))}),e}_patchPostgres(e){let t="function"==typeof e,n=t?e:e.default;if("function"!=typeof n)return l.DEBUG_BUILD&&a.debug.warn("postgres module does not export a function. Skipping instrumentation."),e;let r=this,o=function(...e){let t=Reflect.construct(n,e);if(!t||"function"!=typeof t)return l.DEBUG_BUILD&&a.debug.warn("postgres() did not return a valid instance"),t;let o=r.getConfig();return a.instrumentPostgresJsSql(t,{requireParentSpan:o.requireParentSpan,requestHook:o.requestHook})};for(let e of(Object.setPrototypeOf(o,n),Object.setPrototypeOf(o.prototype,n.prototype),Object.getOwnPropertyNames(n)))if(!["length","name","prototype"].includes(e)){let t=Object.getOwnPropertyDescriptor(n,e);t&&Object.defineProperty(o,e,t)}return t?o:(a.replaceExports(e,"default",o),e)}_shouldCreateSpans(){let e=this.getConfig();return void 0!==r.trace.getSpan(r.context.active())||!e.requireParentSpan}_setOperationName(e,t,n){if(n)return void e.setAttribute(i.ATTR_DB_OPERATION_NAME,n);let r=t?.match(p);r?.[1]&&e.setAttribute(i.ATTR_DB_OPERATION_NAME,r[1].toUpperCase())}_reconstructQuery(e){if(e?.length)return 1===e.length?e[0]||void 0:e.reduce((e,t,n)=>0===n?t:`${e}$${n}${t}`,"")}_sanitizeSqlQuery(e){return e?e.replace(/--.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").replace(/;\s*$/,"").replace(/\s+/g," ").trim().replace(/\bX'[0-9A-Fa-f]*'/gi,"?").replace(/\bB'[01]*'/gi,"?").replace(/'(?:[^']|'')*'/g,"?").replace(/\b0x[0-9A-Fa-f]+/gi,"?").replace(/\b(?:TRUE|FALSE)\b/gi,"?").replace(/-?\b\d+\.?\d*[eE][+-]?\d+\b/g,"?").replace(/-?\b\d+\.\d+\b/g,"?").replace(/-?\.\d+\b/g,"?").replace(/(?{s.addOriginToSpan(r,"auto.db.postgresjs"),r.setAttributes({[i.ATTR_DB_SYSTEM_NAME]:"postgres",[i.ATTR_DB_QUERY_TEXT]:c});let{requestHook:p}=t.getConfig();p&&o.safeExecuteInTheMiddle(()=>p(r,c,void 0),e=>{e&&(r.setAttribute("sentry.hook.error","requestHook failed"),l.DEBUG_BUILD&&a.debug.error(`Error in requestHook for ${u} integration:`,e))},!0);let _=this.resolve;this.resolve=new Proxy(_,{apply:(e,n,o)=>{try{t._setOperationName(r,c,o?.[0]?.command),r.end()}catch(e){l.DEBUG_BUILD&&a.debug.error("Error ending span in resolve callback:",e)}return Reflect.apply(e,n,o)}});let T=this.reject;this.reject=new Proxy(T,{apply:(e,n,o)=>{try{r.setStatus({code:a.SPAN_STATUS_ERROR,message:o?.[0]?.message||"unknown_error"}),r.setAttribute(i.ATTR_DB_RESPONSE_STATUS_CODE,o?.[0]?.code||"unknown"),r.setAttribute(i.ATTR_ERROR_TYPE,o?.[0]?.name||"unknown"),t._setOperationName(r,c),r.end()}catch(e){l.DEBUG_BUILD&&a.debug.error("Error ending span in reject callback:",e)}return Reflect.apply(e,n,o)}});try{return n.apply(this,e)}catch(e){throw r.setStatus({code:a.SPAN_STATUS_ERROR,message:e instanceof Error?e.message:"unknown_error"}),r.end(),e}})},e.Query.prototype.handle.__sentry_original__=n,e}_unpatchQueryPrototype(e){return e.Query.prototype.handle.__sentry_original__&&(e.Query.prototype.handle=e.Query.prototype.handle.__sentry_original__),e}}let E=a.defineIntegration(e=>({name:u,setupOnce(){T(e)}}));n.PostgresJsInstrumentation=d,n.instrumentPostgresJs=T,n.postgresJsIntegration=E},816879,e=>{"use strict";e.s([],712748),e.i(712748);var t,n,r=e.i(545364),o=e.i(605809);let i="object"==typeof globalThis?globalThis:e.g,a=Symbol.for("io.opentelemetry.js.api.logs");class s{emit(e){}}let l=new s,u=new class{getLogger(e,t,n){return new s}};class c{constructor(e,t,n,r){this._provider=e,this.name=t,this.version=n,this.options=r}emit(e){this._getLogger().emit(e)}_getLogger(){if(this._delegate)return this._delegate;let e=this._provider._getDelegateLogger(this.name,this.version,this.options);return e?(this._delegate=e,this._delegate):l}}class p{getLogger(e,t,n){var r;return null!=(r=this._getDelegateLogger(e,t,n))?r:new c(this,e,t,n)}_getDelegate(){var e;return null!=(e=this._delegate)?e:u}_setDelegate(e){this._delegate=e}_getDelegateLogger(e,t,n){var r;return null==(r=this._delegate)?void 0:r.getLogger(e,t,n)}}class _{constructor(){this._proxyLoggerProvider=new p}static getInstance(){return this._instance||(this._instance=new _),this._instance}setGlobalLoggerProvider(e){return i[a]?this.getLoggerProvider():(i[a]=t=>1===t?e:u,this._proxyLoggerProvider._setDelegate(e),e)}getLoggerProvider(){var e,t;return null!=(t=null==(e=i[a])?void 0:e.call(i,1))?t:this._proxyLoggerProvider}getLogger(e,t,n){return this.getLoggerProvider().getLogger(e,t,n)}disable(){delete i[a],this._proxyLoggerProvider=new p}}let T=_.getInstance();function d(e){let t=e.tracerProvider||r.trace.getTracerProvider(),n=e.meterProvider||o.metrics.getMeterProvider(),i=e.loggerProvider||T.getLoggerProvider(),a=e.instrumentations?.flat()??[];for(let e=0,r=a.length;e{a.forEach(e=>e.disable())}}var E=e.i(814747),S=e.i(224361),A=e.i(978116);let g=/^(?:v)?(?(?0|[1-9]\d*)\.(?0|[1-9]\d*)\.(?0|[1-9]\d*))(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,m=/^(?<|>|=|==|<=|>=|~|\^|~>)?\s*(?:v)?(?(?x|X|\*|0|[1-9]\d*)(?:\.(?x|X|\*|0|[1-9]\d*))?(?:\.(?x|X|\*|0|[1-9]\d*))?)(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,h={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function R(e,t,n,r){if(t.includes("||")){for(let o of t.trim().split("||"))if(f(e,o,n,r))return!0;return!1}if(t.includes(" - ")){var o,i;o=t,i=r,t=o.replace(x,(e,t,n,r,o,a,s,l,u,c,p,_)=>(t=N(n)?"":N(r)?`>=${n}.0.0${i?.includePrerelease?"-0":""}`:N(o)?`>=${n}.${r}.0${i?.includePrerelease?"-0":""}`:a?`>=${t}`:`>=${t}${i?.includePrerelease?"-0":""}`,l=N(u)?"":N(c)?`<${+u+1}.0.0-0`:N(p)?`<${u}.${+c+1}.0-0`:_?`<=${u}.${c}.${p}-${_}`:i?.includePrerelease?`<${u}.${c}.${+p+1}-0`:`<=${l}`,`${t} ${l}`.trim()))}else if(t.includes(" ")){for(let o of t.trim().replace(/\s{2,}/g," ").split(" "))if(!f(e,o,n,r))return!1;return!0}return f(e,t,n,r)}function f(e,t,n,r){var o,i,a,s,l,u;let c;if((o=t,i=r,t=(l=o=(a=o=o.trim(),s=i,c=s?.includePrerelease?"-0":"",o=a.replace(w,(e,t,n,r,o)=>N(t)?"":N(n)?`>=${t}.0.0${c} <${+t+1}.0.0-0`:N(r)?"0"===t?`>=${t}.${n}.0${c} <${t}.${+n+1}.0-0`:`>=${t}.${n}.0${c} <${+t+1}.0.0-0`:o?"0"===t?"0"===n?`>=${t}.${n}.${r}-${o} <${t}.${n}.${+r+1}-0`:`>=${t}.${n}.${r}-${o} <${t}.${+n+1}.0-0`:`>=${t}.${n}.${r}-${o} <${+t+1}.0.0-0`:"0"===t?"0"===n?`>=${t}.${n}.${r}${c} <${t}.${n}.${+r+1}-0`:`>=${t}.${n}.${r}${c} <${t}.${+n+1}.0-0`:`>=${t}.${n}.${r} <${+t+1}.0.0-0`)).replace(V,(e,t,n,r,o)=>N(t)?"":N(n)?`>=${t}.0.0 <${+t+1}.0.0-0`:N(r)?`>=${t}.${n}.0 <${t}.${+n+1}.0-0`:o?`>=${t}.${n}.${r}-${o} <${t}.${+n+1}.0-0`:`>=${t}.${n}.${r} <${t}.${+n+1}.0-0`),u=i,o=l.replace(B,(e,t,n,r,o,i)=>{let a=N(n),s=a||N(r),l=s||N(o);return"="===t&&l&&(t=""),i=u?.includePrerelease?"-0":"",a?e=">"===t||"<"===t?"<0.0.0-0":"*":t&&l?(s&&(r=0),o=0,">"===t?(t=">=",s?(n=+n+1,r=0):r=+r+1,o=0):"<="===t&&(t="<",s?n=+n+1:r=+r+1),"<"===t&&(i="-0"),e=`${t+n}.${r}.${o}${i}`):s?e=`>=${n}.0.0${i} <${+n+1}.0.0-0`:l&&(e=`>=${n}.${r}.0${i} <${n}.${+r+1}.0-0`),e})).trim()).includes(" "))return R(e,t,n,r);{let r=function(e){if(!e)return{};let t=e.match(m);if(!t)return A.diag.error(`Invalid range: ${e}`),{invalid:!0};let n=t.groups.op,r=t.groups.version,o=t.groups.prerelease,i=t.groups.build,a=r.split("."),s=o?.split(".");return"=="===n&&(n="="),{op:n||"=",version:r,versionSegments:a,versionSegmentCount:a.length,prerelease:o,prereleaseSegments:s,prereleaseSegmentCount:s?s.length:0,build:i}}(t);return n.push(r),function(e,t){if(t.invalid)return!1;if(!t.version||I(t.version))return!0;let n=y(e.versionSegments||[],t.versionSegments||[]);if(0===n){let r=e.prereleaseSegments||[],o=t.prereleaseSegments||[];n=r.length||o.length?!r.length&&o.length?1:r.length&&!o.length?-1:y(r,o):0}return h[t.op]?.includes(n)}(e,r)}}function N(e){return!e||"x"===e.toLowerCase()||"*"===e}function I(e){return"*"===e||"x"===e||"X"===e}function O(e){let t=parseInt(e,10);return isNaN(t)?e:t}function y(e,t){for(let n=0;nr?1:n)?=?)\\s*${G}$`),x=RegExp(`^\\s*(${G})\\s+-\\s+(${G})\\s*$`),V=RegExp(`^(?:~>?)${G}$`),w=RegExp(`^(?:\\^)${G}$`),H=console.error.bind(console);function k(e,t,n){let r=!!e[t]&&Object.prototype.propertyIsEnumerable.call(e,t);Object.defineProperty(e,t,{configurable:!0,enumerable:r,writable:!0,value:n})}let Y=(e,t,n)=>{if(!e||!e[t])return void H("no original function "+String(t)+" to wrap");if(!n){H("no wrapper function"),H(Error().stack);return}let r=e[t];if("function"!=typeof r||"function"!=typeof n)return void H("original object and wrapper must be functions");let o=n(r,t);return k(o,"__original",r),k(o,"__unwrap",()=>{e[t]===o&&k(e,t,r)}),k(o,"__wrapped",!0),k(e,t,o),o},j=(e,t,n)=>{if(e)Array.isArray(e)||(e=[e]);else{H("must provide one or more modules to patch"),H(Error().stack);return}t&&Array.isArray(t)?e.forEach(e=>{t.forEach(t=>{Y(e,t,n)})}):H("must provide one or more functions to wrap on modules")},F=(e,t)=>{if(!e||!e[t]){H("no function to unwrap."),H(Error().stack);return}let n=e[t];n.__unwrap?n.__unwrap():H("no original to unwrap to -- has "+String(t)+" already been unwrapped?")},W=(e,t)=>{if(e)Array.isArray(e)||(e=[e]);else{H("must provide one or more modules to patch"),H(Error().stack);return}t&&Array.isArray(t)?e.forEach(e=>{t.forEach(t=>{F(e,t)})}):H("must provide one or more functions to unwrap on modules")};function K(e){e&&e.logger&&("function"!=typeof e.logger?H("new logger isn't a function, not replacing"):H=e.logger)}K.wrap=Y,K.massWrap=j,K.unwrap=F,K.massUnwrap=W;class X{instrumentationName;instrumentationVersion;_config={};_tracer;_meter;_logger;_diag;constructor(e,t,n){this.instrumentationName=e,this.instrumentationVersion=t,this.setConfig(n),this._diag=A.diag.createComponentLogger({namespace:e}),this._tracer=r.trace.getTracer(e,t),this._meter=o.metrics.getMeter(e,t),this._logger=T.getLogger(e,t),this._updateMetricInstruments()}_wrap=Y;_unwrap=F;_massWrap=j;_massUnwrap=W;get meter(){return this._meter}setMeterProvider(e){this._meter=e.getMeter(this.instrumentationName,this.instrumentationVersion),this._updateMetricInstruments()}get logger(){return this._logger}setLoggerProvider(e){this._logger=e.getLogger(this.instrumentationName,this.instrumentationVersion)}getModuleDefinitions(){let e=this.init()??[];return Array.isArray(e)?e:[e]}_updateMetricInstruments(){}getConfig(){return this._config}setConfig(e){this._config={enabled:!0,...e}}setTracerProvider(e){this._tracer=e.getTracer(this.instrumentationName,this.instrumentationVersion)}get tracer(){return this._tracer}_runSpanCustomizationHook(e,t,n,r){if(e)try{e(n,r)}catch(e){this._diag.error("Error running span customization hook due to exception in handler",{triggerName:t},e)}}}var Z=e.i(156823);class J{hooks=[];children=new Map}class ${_trie=new J;_counter=0;insert(e){let t=this._trie;for(let n of e.moduleName.split("/")){let e=t.children.get(n);e||(e=new J,t.children.set(n,e)),t=e}t.hooks.push({hook:e,insertedId:this._counter++})}search(e,{maintainInsertionOrder:t,fullOnly:n}={}){let r=this._trie,o=[],i=!0;for(let t of e.split("/")){let e=r.children.get(t);if(!e){i=!1;break}n||o.push(...e.hooks),r=e}return(n&&i&&o.push(...r.hooks),0===o.length)?[]:1===o.length?[o[0].hook]:(t&&o.sort((e,t)=>e.insertedId-t.insertedId),o.map(({hook:e})=>e))}}let Q=["afterEach","after","beforeEach","before","describe","it"].every(t=>"function"==typeof e.g[t]);class z{_moduleNameTrie=new $;static _instance;constructor(){this._initialize()}_initialize(){new Z.Hook(null,{internals:!0},(e,t,n)=>{var r;let o=(r=t,"/"!==E.sep?r.split(E.sep).join("/"):r);for(let{onRequire:r}of this._moduleNameTrie.search(o,{maintainInsertionOrder:!0,fullOnly:void 0===n}))e=r(e,t,n);return e})}register(e,t){let n={moduleName:e,onRequire:t};return this._moduleNameTrie.insert(n),n}static getInstance(){return Q?new z:this._instance=this._instance??new z}}var q=e.i(74667),ee=e.i(522734);function et(e,t,n){let r,o;try{o=e()}catch(e){r=e}finally{if(t(r,o),r&&!n)throw r;return o}}async function en(e,t,n){let r,o;try{o=await e()}catch(e){r=e}finally{if(t(r,o),r&&!n)throw r;return o}}function er(e){return"function"==typeof e&&"function"==typeof e.__original&&"function"==typeof e.__unwrap&&!0===e.__wrapped}class eo extends X{_modules;_hooks=[];_requireInTheMiddleSingleton=z.getInstance();_enabled=!1;constructor(e,t,n){super(e,t,n);let r=this.init();r&&!Array.isArray(r)&&(r=[r]),this._modules=r||[],this._config.enabled&&this.enable()}_wrap=(e,t,n)=>{if(er(e[t])&&this._unwrap(e,t),!S.types.isProxy(e))return Y(e,t,n);{let r=Y(Object.assign({},e),t,n);return Object.defineProperty(e,t,{value:r}),r}};_unwrap=(e,t)=>S.types.isProxy(e)?Object.defineProperty(e,t,{value:e[t]}):F(e,t);_massWrap=(e,t,n)=>{e?(Array.isArray(e)||(e=[e]),t&&Array.isArray(t))?e.forEach(e=>{t.forEach(t=>{this._wrap(e,t,n)})}):A.diag.error("must provide one or more functions to wrap on modules"):A.diag.error("must provide one or more modules to patch")};_massUnwrap=(e,t)=>{e?(Array.isArray(e)||(e=[e]),t&&Array.isArray(t))?e.forEach(e=>{t.forEach(t=>{this._unwrap(e,t)})}):A.diag.error("must provide one or more functions to wrap on modules"):A.diag.error("must provide one or more modules to patch")};_warnOnPreloadedModules(){this._modules.forEach(t=>{let{name:n}=t;try{let t=(()=>{let e=Error("Cannot find module as expression is too dynamic");throw e.code="MODULE_NOT_FOUND",e})();e.c[t]&&this._diag.warn(`Module ${n} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${n}`)}catch{}})}_extractPackageVersion(e){try{let t=(0,ee.readFileSync)(E.join(e,"package.json"),{encoding:"utf8"}),n=JSON.parse(t).version;return"string"==typeof n?n:void 0}catch{A.diag.warn("Failed extracting version",e)}}_onRequire(e,t,n,r){if(!r)return"function"==typeof e.patch&&(e.moduleExports=t,this._enabled)?(this._diag.debug("Applying instrumentation patch for nodejs core module on require hook",{module:e.name}),e.patch(t)):t;let o=this._extractPackageVersion(r);if(e.moduleVersion=o,e.name===n)return ei(e.supportedVersions,o,e.includePrerelease)&&"function"==typeof e.patch&&(e.moduleExports=t,this._enabled)?(this._diag.debug("Applying instrumentation patch for module on require hook",{module:e.name,version:e.moduleVersion,baseDir:r}),e.patch(t,e.moduleVersion)):t;let i=e.files??[],a=E.normalize(n);return i.filter(e=>e.name===a).filter(t=>ei(t.supportedVersions,o,e.includePrerelease)).reduce((t,n)=>(n.moduleExports=t,this._enabled)?(this._diag.debug("Applying instrumentation patch for nodejs module file on require hook",{module:e.name,version:e.moduleVersion,fileName:n.name,baseDir:r}),n.patch(t,e.moduleVersion)):t,t)}enable(){if(!this._enabled){if(this._enabled=!0,this._hooks.length>0){for(let e of this._modules)for(let t of("function"==typeof e.patch&&e.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module on instrumentation enabled",{module:e.name,version:e.moduleVersion}),e.patch(e.moduleExports,e.moduleVersion)),e.files))t.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module file on instrumentation enabled",{module:e.name,version:e.moduleVersion,fileName:t.name}),t.patch(t.moduleExports,e.moduleVersion));return}for(let e of(this._warnOnPreloadedModules(),this._modules)){let t=(t,n,r)=>{if(!r&&E.isAbsolute(n)){let e=E.parse(n);n=e.name,r=e.dir}return this._onRequire(e,t,n,r)},n=(t,n,r)=>this._onRequire(e,t,n,r),r=E.isAbsolute(e.name)?new Z.Hook([e.name],{internals:!0},n):this._requireInTheMiddleSingleton.register(e.name,n);this._hooks.push(r);let o=new q.Hook([e.name],{internals:!1},t);this._hooks.push(o)}}}disable(){if(this._enabled)for(let e of(this._enabled=!1,this._modules))for(let t of("function"==typeof e.unpatch&&e.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module on instrumentation disabled",{module:e.name,version:e.moduleVersion}),e.unpatch(e.moduleExports,e.moduleVersion)),e.files))t.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module file on instrumentation disabled",{module:e.name,version:e.moduleVersion,fileName:t.name}),t.unpatch(t.moduleExports,e.moduleVersion))}isEnabled(){return this._enabled}}function ei(e,t,n){return void 0===t?e.includes("*"):e.some(e=>(function(e,t,n){var r,o,i;if(!("string"==typeof(r=e)&&g.test(r)))return A.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let a=function(e){let t=e.match(g);if(!t)return void A.diag.error(`Invalid version: ${e}`);let n=t.groups.version,r=t.groups.prerelease,o=t.groups.build,i=n.split("."),a=r?.split(".");return{op:void 0,version:n,versionSegments:i,versionSegmentCount:i.length,prerelease:r,prereleaseSegments:a,prereleaseSegmentCount:a?a.length:0,build:o}}(e);if(!a)return!1;let s=[],l=R(a,t,s,n);return l&&!n?.includePrerelease?(o=a,i=s,!o.prerelease||i.some(e=>e.prerelease&&e.version===o.version)):l})(t,e,{includePrerelease:n}))}class ea{name;supportedVersions;patch;unpatch;files;constructor(e,t,n,r,o){this.name=e,this.supportedVersions=t,this.patch=n,this.unpatch=r,this.files=o||[]}}class es{supportedVersions;patch;unpatch;name;constructor(e,t,n,r){this.supportedVersions=t,this.patch=n,this.unpatch=r,this.name=(0,E.normalize)(e)}}function el(e,t){let r=n.OLD;for(let o of t?.split(",").map(e=>e.trim()).filter(e=>""!==e)??[])if(o.toLowerCase()===e+"/dup"){r=n.DUPLICATE;break}else o.toLowerCase()===e&&(r=n.STABLE);return r}(t=n||(n={}))[t.STABLE=1]="STABLE",t[t.OLD=2]="OLD",t[t.DUPLICATE=3]="DUPLICATE",e.s(["InstrumentationBase",()=>eo,"InstrumentationNodeModuleDefinition",()=>ea,"InstrumentationNodeModuleFile",()=>es,"SemconvStability",()=>n,"isWrapped",()=>er,"registerInstrumentations",()=>d,"safeExecuteInTheMiddle",()=>et,"safeExecuteInTheMiddleAsync",()=>en,"semconvStabilityFromStr",()=>el],816879)},823876,(e,t,n)=>{"use strict";var r=Object.defineProperty,o=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,s={},l={PrismaInstrumentation:()=>f,registerInstrumentations:()=>N.registerInstrumentations};for(var u in l)r(s,u,{get:l[u],enumerable:!0});t.exports=((e,t,n,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let l of i(t))a.call(e,l)||l===n||r(e,l,{get:()=>t[l],enumerable:!(s=o(t,l))||s.enumerable});return e})(r({},"__esModule",{value:!0}),s);var c=e.r(357762),p=e.r(816879),_="7.6.0".split(".")[0],T="PRISMA_INSTRUMENTATION",d=`V${_}_PRISMA_INSTRUMENTATION`,E=globalThis,S=e.r(357762),A="true"===process.env.PRISMA_SHOW_ALL_TRACES,g=class{tracerProvider;ignoreSpanTypes;constructor({tracerProvider:e,ignoreSpanTypes:t}){this.tracerProvider=e,this.ignoreSpanTypes=t}isEnabled(){return!0}getTraceParent(e){let t=S.trace.getSpanContext(e??S.context.active());return t?`00-${t.traceId}-${t.spanId}-0${t.traceFlags}`:"00-10-10-00"}dispatchEngineSpans(e){let t=this.tracerProvider.getTracer("prisma"),n=new Map;for(let r of e.filter(e=>null===e.parentId))!function e(t,n,r,o,i){if(h(n.name,i))return;let a={attributes:n.attributes,kind:"client"===n.kind?S.SpanKind.CLIENT:S.SpanKind.INTERNAL,startTime:n.startTime};t.startActiveSpan(n.name,a,a=>{for(let s of(o.set(n.id,a.spanContext().spanId),n.links&&a.addLinks(n.links.flatMap(e=>{let t=o.get(e);return t?{context:{spanId:t,traceId:a.spanContext().traceId,traceFlags:a.spanContext().traceFlags}}:[]})),r.filter(e=>e.parentId===n.id)))e(t,s,r,o,i);a.end(n.endTime)})}(t,r,e,n,this.ignoreSpanTypes)}getActiveContext(){return S.context.active()}runInChildSpan(e,t){if("string"==typeof e&&(e={name:e}),e.internal&&!A)return t();let n=this.tracerProvider.getTracer("prisma"),r=e.context??this.getActiveContext(),o=`prisma:client:${e.name}`;if(h(o,this.ignoreSpanTypes))return t();if(!1===e.active){let i=n.startSpan(o,e,r);return m(i,t(i,r))}return n.startActiveSpan(o,e,e=>m(e,t(e,r)))}};function m(e,t){var n;return null!=(n=t)&&"function"==typeof n.then?t.then(t=>(e.end(),t),t=>{throw e.end(),t}):(e.end(),t)}function h(e,t){return t.some(t=>"string"==typeof t?t===e:t.test(e))}var R="7.6.0",f=class extends p.InstrumentationBase{tracerProvider;constructor(e={}){super("@prisma/instrumentation",R,e)}setTracerProvider(e){this.tracerProvider=e}init(){return[new p.InstrumentationNodeModuleDefinition("@prisma/client",[R])]}enable(){let e,t=this._config;e={helper:new g({tracerProvider:this.tracerProvider??c.trace.getTracerProvider(),ignoreSpanTypes:t.ignoreSpanTypes??[]})},E[d]=e,E[T]=e}disable(){delete E[d],delete E[T]}isEnabled(){return void 0!==function(){let e=E[d];if(e?.helper)return e.helper;let t=E[T];return t?.helper}()}},N=e.r(816879)},547683,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(357762),o=e.r(823876),i=e.r(976285),a=e.r(625331),s="Prisma";function l(){let e=globalThis.PRISMA_INSTRUMENTATION;return e&&"object"==typeof e&&"helper"in e?e.helper:void 0}class u extends o.PrismaInstrumentation{constructor(e){super(e?.instrumentationConfig)}enable(){super.enable();let e=l();e&&"object"==typeof e&&"dispatchEngineSpans"in e&&(e.createEngineSpan=e=>{let t=r.trace.getTracer("prismaV5Compatibility"),n=t._idGenerator;if(!n)return void i.consoleSandbox(()=>{console.warn("[Sentry] Could not find _idGenerator on tracer, skipping Prisma v5 compatibility - some Prisma spans may be missing!")});try{e.spans.forEach(e=>{var o;let i=(o=e.kind,"client"===o?r.SpanKind.CLIENT:r.SpanKind.INTERNAL),a=e.parent_span_id,s=e.span_id,l=e.trace_id,u=e.links?.map(e=>({context:{traceId:e.trace_id,spanId:e.span_id,traceFlags:r.TraceFlags.SAMPLED}})),c=r.trace.setSpanContext(r.context.active(),{traceId:l,spanId:a,traceFlags:r.TraceFlags.SAMPLED});r.context.with(c,()=>{t._idGenerator={generateTraceId:()=>l,generateSpanId:()=>s},t.startSpan(e.name,{kind:i,links:u,startTime:e.start_time,attributes:e.attributes}).end(e.end_time),t._idGenerator=n})})}finally{t._idGenerator=n}})}}let c=a.generateInstrumentOnce(s,e=>new u(e)),p=i.defineIntegration(e=>({name:s,setupOnce(){c(e)},setup(e){l()&&e.on("spanStart",e=>{let t=i.spanToJSON(e);t.description?.startsWith("prisma:")&&e.setAttribute(i.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,"auto.db.otel.prisma"),"prisma:engine:db_query"===t.description&&t.data["db.query.text"]&&e.updateName(t.data["db.query.text"]),"prisma:engine:db_query"!==t.description||t.data["db.system"]||e.setAttribute("db.system","prisma")})}}));n.instrumentPrisma=c,n.prismaIntegration=p},399189,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.60.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-hapi"},318837,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.HapiLifecycleMethodNames=n.HapiLayerType=n.handlerPatched=n.HapiComponentName=void 0,n.HapiComponentName="@hapi/hapi",n.handlerPatched=Symbol("hapi-handler-patched"),n.HapiLayerType={ROUTER:"router",PLUGIN:"plugin",EXT:"server.ext"},n.HapiLifecycleMethodNames=new Set(["onPreAuth","onCredentials","onPostAuth","onPreHandler","onPostHandler","onPreResponse","onRequest"])},808139,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.ATTR_HTTP_METHOD=void 0,n.ATTR_HTTP_METHOD="http.method"},180434,(e,t,n)=>{"use strict";var r;Object.defineProperty(n,"__esModule",{value:!0}),n.AttributeNames=void 0,(r=n.AttributeNames||(n.AttributeNames={})).HAPI_TYPE="hapi.type",r.PLUGIN_NAME="hapi.plugin.name",r.EXT_TYPE="server.ext.type"},346711,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getPluginFromInput=n.getExtMetadata=n.getRouteMetadata=n.isPatchableExtMethod=n.isDirectExtInput=n.isLifecycleExtEventObj=n.isLifecycleExtType=n.getPluginName=void 0;let r=e.r(808119),o=e.r(808139),i=e.r(318837),a=e.r(180434),s=e.r(204780);n.getPluginName=function(e){return e.name?e.name:e.pkg.name},n.isLifecycleExtType=e=>"string"==typeof e&&i.HapiLifecycleMethodNames.has(e),n.isLifecycleExtEventObj=e=>{let t=e?.type;return void 0!==t&&(0,n.isLifecycleExtType)(t)},n.isDirectExtInput=e=>Array.isArray(e)&&e.length<=3&&(0,n.isLifecycleExtType)(e[0])&&"function"==typeof e[1],n.isPatchableExtMethod=e=>!Array.isArray(e),n.getRouteMetadata=(e,t,n)=>{let l,u={[r.ATTR_HTTP_ROUTE]:e.path};return t&s.SemconvStability.OLD&&(u[o.ATTR_HTTP_METHOD]=e.method),t&s.SemconvStability.STABLE&&(u[r.ATTR_HTTP_REQUEST_METHOD]=e.method),n?(u[a.AttributeNames.HAPI_TYPE]=i.HapiLayerType.PLUGIN,u[a.AttributeNames.PLUGIN_NAME]=n,l=`${n}: route - ${e.path}`):(u[a.AttributeNames.HAPI_TYPE]=i.HapiLayerType.ROUTER,l=`route - ${e.path}`),{attributes:u,name:l}},n.getExtMetadata=(e,t,n)=>{let r=`ext - ${e}`;return(n&&"method"!==n&&(r=`ext - ${e} - ${n}`),t)?{attributes:{[a.AttributeNames.EXT_TYPE]:e,[a.AttributeNames.HAPI_TYPE]:i.HapiLayerType.EXT,[a.AttributeNames.PLUGIN_NAME]:t},name:`${t}: ${r}`}:{attributes:{[a.AttributeNames.EXT_TYPE]:e,[a.AttributeNames.HAPI_TYPE]:i.HapiLayerType.EXT},name:r}},n.getPluginFromInput=e=>"plugin"in e?"plugin"in e.plugin?e.plugin.plugin:e.plugin:e},345301,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.HapiInstrumentation=void 0;let r=e.r(357762),o=e.r(385692),i=e.r(204780),a=e.r(399189),s=e.r(318837),l=e.r(346711);class u extends i.InstrumentationBase{_semconvStability;constructor(e={}){super(a.PACKAGE_NAME,a.PACKAGE_VERSION,e),this._semconvStability=(0,i.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return new i.InstrumentationNodeModuleDefinition(s.HapiComponentName,[">=17.0.0 <22"],e=>{let t="Module"===e[Symbol.toStringTag]?e.default:e;return(0,i.isWrapped)(t.server)||this._wrap(t,"server",this._getServerPatch.bind(this)),(0,i.isWrapped)(t.Server)||this._wrap(t,"Server",this._getServerPatch.bind(this)),t},e=>{let t="Module"===e[Symbol.toStringTag]?e.default:e;this._massUnwrap([t],["server","Server"])})}_getServerPatch(e){let t=this,n=this;return function(r){let o=e.apply(this,[r]);return n._wrap(o,"route",e=>t._getServerRoutePatch.bind(t)(e)),n._wrap(o,"ext",e=>t._getServerExtPatch.bind(t)(e)),n._wrap(o,"register",t._getServerRegisterPatch.bind(t)),o}}_getServerRegisterPatch(e){let t=this;return function(n,r){if(Array.isArray(n))for(let e of n){let n=(0,l.getPluginFromInput)(e);t._wrapRegisterHandler(n)}else{let e=(0,l.getPluginFromInput)(n);t._wrapRegisterHandler(e)}return e.apply(this,[n,r])}}_getServerExtPatch(e,t){let n=this;return function(...r){if(Array.isArray(r[0])){let e=r[0];for(let r=0;rt._getServerRoutePatch.bind(t)(e,n)),o._wrap(e,"ext",e=>t._getServerExtPatch.bind(t)(e,n)),r.call(this,e,i)}}_wrapExtMethods(e,t,n){let o=this;if(e instanceof Array)for(let n=0;nasync function(...a){if(void 0===r.trace.getSpan(r.context.active()))return await i.call(this,...a);let s=(0,o.getRPCMetadata)(r.context.active());s?.type===o.RPCType.HTTP&&(s.route=e.path);let u=(0,l.getRouteMetadata)(e,n._semconvStability,t),c=n.tracer.startSpan(u.name,{attributes:u.attributes});try{return await r.context.with(r.trace.setSpan(r.context.active(),c),()=>i.call(this,...a))}catch(e){throw c.recordException(e),c.setStatus({code:r.SpanStatusCode.ERROR,message:e.message}),e}finally{c.end()}};if("function"==typeof e.handler)e.handler=i(e.handler);else if("function"==typeof e.options){let t=e.options;e.options=function(e){let n=t(e);return"function"==typeof n.handler&&(n.handler=i(n.handler)),n}}else"function"==typeof e.options?.handler&&(e.options.handler=i(e.options.handler));return e}}n.HapiInstrumentation=u},144297,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.AttributeNames=n.HapiInstrumentation=void 0;var r=e.r(345301);Object.defineProperty(n,"HapiInstrumentation",{enumerable:!0,get:function(){return r.HapiInstrumentation}});var o=e.r(180434);Object.defineProperty(n,"AttributeNames",{enumerable:!0,get:function(){return o.AttributeNames}})},376169,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(144297),o=e.r(976285),i=e.r(625331),a=e.r(866779),s="Hapi",l=i.generateInstrumentOnce(s,()=>new r.HapiInstrumentation),u=o.defineIntegration(()=>({name:s,setupOnce(){l()}})),c={name:"SentryHapiErrorPlugin",version:o.SDK_VERSION,register:async function(e){e.events.on({name:"request",channels:["error"]},(e,t)=>{var n;if(o.getIsolationScope()!==o.getDefaultIsolationScope()){let t=e.route;t.path&&o.getIsolationScope().setTransactionName(`${t.method.toUpperCase()} ${t.path}`)}else a.DEBUG_BUILD&&o.debug.warn("Isolation scope is still the default isolation scope - skipping setting transactionName");t&&"object"==typeof t&&"error"in t&&t.error&&(n=t.error,o.captureException(n,{mechanism:{type:"auto.function.hapi",handled:!1}}))})}};async function p(e){await e.register(c);let t=o.getClient();t&&t.on("spanStart",e=>{var t;let n,r;t=e,r=(n=o.spanToJSON(t).data)["hapi.type"],!n[o.SEMANTIC_ATTRIBUTE_SENTRY_OP]&&r&&t.setAttributes({[o.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.http.otel.hapi",[o.SEMANTIC_ATTRIBUTE_SENTRY_OP]:`${r}.hapi`})}),i.ensureIsWrapped(e.register,"hapi")}n.hapiErrorPlugin=c,n.hapiIntegration=u,n.instrumentHapi=l,n.setupHapiErrorHandler=p},212994,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),n.AttributeNames={HONO_TYPE:"hono.type",HONO_NAME:"hono.name"},n.HonoTypes={MIDDLEWARE:"middleware",REQUEST_HANDLER:"request_handler"}},29288,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(357762),o=e.r(204780),i=e.r(976285),a=e.r(212994);class s extends o.InstrumentationBase{constructor(e={}){super("@sentry/instrumentation-hono","0.0.1",e)}init(){return[new o.InstrumentationNodeModuleDefinition("hono",[">=4.0.0 <5"],e=>this._patch(e))]}_patch(e){let t=this;class n extends e.Hono{constructor(...e){super(...e),t._wrap(this,"get",t._patchHandler()),t._wrap(this,"post",t._patchHandler()),t._wrap(this,"put",t._patchHandler()),t._wrap(this,"delete",t._patchHandler()),t._wrap(this,"options",t._patchHandler()),t._wrap(this,"patch",t._patchHandler()),t._wrap(this,"all",t._patchHandler()),t._wrap(this,"on",t._patchOnHandler()),t._wrap(this,"use",t._patchMiddlewareHandler())}}try{e.Hono=n}catch{return{...e,Hono:n}}return e}_patchHandler(){let e=this;return function(t){return function(...n){if("string"==typeof n[0]){let r=n[0];if(1===n.length)return t.apply(this,[r]);let o=n.slice(1);return t.apply(this,[r,...o.map(t=>e._wrapHandler(t))])}return t.apply(this,n.map(t=>e._wrapHandler(t)))}}}_patchOnHandler(){let e=this;return function(t){return function(...n){let r=n.slice(2);return t.apply(this,[...n.slice(0,2),...r.map(t=>e._wrapHandler(t))])}}}_patchMiddlewareHandler(){let e=this;return function(t){return function(...n){if("string"==typeof n[0]){let r=n[0];if(1===n.length)return t.apply(this,[r]);let o=n.slice(1);return t.apply(this,[r,...o.map(t=>e._wrapHandler(t))])}return t.apply(this,n.map(t=>e._wrapHandler(t)))}}}_wrapHandler(e){let t=this;return function(n,o){if(!t.isEnabled())return e.apply(this,[n,o]);let s=n.req.path,l=t.tracer.startSpan(s);return r.context.with(r.trace.setSpan(r.context.active(),l),()=>t._safeExecute(()=>{let r=e.apply(this,[n,o]);if(i.isThenable(r))return r.then(n=>{let r=t._determineHandlerType(n);return l.setAttributes({[a.AttributeNames.HONO_TYPE]:r,[a.AttributeNames.HONO_NAME]:r===a.HonoTypes.REQUEST_HANDLER?s:e.name||"anonymous"}),t.getConfig().responseHook?.(l),n});{let n=t._determineHandlerType(r);return l.setAttributes({[a.AttributeNames.HONO_TYPE]:n,[a.AttributeNames.HONO_NAME]:n===a.HonoTypes.REQUEST_HANDLER?s:e.name||"anonymous"}),t.getConfig().responseHook?.(l),r}},()=>l.end(),e=>{t._handleError(l,e),l.end()}))}}_safeExecute(e,t,n){try{let r=e();return i.isThenable(r)?r.then(()=>t(),e=>n(e)):t(),r}catch(e){throw n(e),e}}_determineHandlerType(e){return void 0===e?a.HonoTypes.MIDDLEWARE:a.HonoTypes.REQUEST_HANDLER}_handleError(e,t){t instanceof Error&&(e.setStatus({code:r.SpanStatusCode.ERROR,message:t.message}),e.recordException(t))}}n.HonoInstrumentation=s},688750,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(808119),o=e.r(976285),i=e.r(625331),a=e.r(866779),s=e.r(212994),l=e.r(29288),u="Hono",c=i.generateInstrumentOnce(u,()=>new l.HonoInstrumentation({responseHook:e=>{!function(e){let t=o.spanToJSON(e).data,n=t[s.AttributeNames.HONO_TYPE];if(t[o.SEMANTIC_ATTRIBUTE_SENTRY_OP]||!n)return;e.setAttributes({[o.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.http.otel.hono",[o.SEMANTIC_ATTRIBUTE_SENTRY_OP]:`${n}.hono`});let i=t[s.AttributeNames.HONO_NAME];if("string"==typeof i&&e.updateName(i),o.getIsolationScope()===o.getDefaultIsolationScope()){a.DEBUG_BUILD&&o.debug.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let l=t[r.ATTR_HTTP_ROUTE],u=t[r.ATTR_HTTP_REQUEST_METHOD];"string"==typeof l&&"string"==typeof u&&o.getIsolationScope().setTransactionName(`${u} ${l}`)}(e)}})),p=o.defineIntegration(()=>({name:u,setupOnce(){c()}}));n.honoIntegration=p,n.instrumentHono=c,n.setupHonoErrorHandler=function(e,t){e.use(async function(e,t){let n=o.httpRequestToRequestData(e.req);o.getIsolationScope().setSDKProcessingMetadata({normalizedRequest:n}),await t()}),e.use(async function(e,n){await n(),(t?.shouldHandleError||function(e){return e.res.status>=500})(e)&&(e.res.sentry=o.captureException(e.error,{mechanism:{type:"auto.middleware.hono",handled:!1}}))}),i.ensureIsWrapped(e.use,"hono")}},476528,(e,t,n)=>{"use strict";var r;Object.defineProperty(n,"__esModule",{value:!0}),n.KoaLayerType=void 0,(r=n.KoaLayerType||(n.KoaLayerType={})).ROUTER="router",r.MIDDLEWARE="middleware"},61353,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.62.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-koa"},259134,(e,t,n)=>{"use strict";var r;Object.defineProperty(n,"__esModule",{value:!0}),n.AttributeNames=void 0,(r=n.AttributeNames||(n.AttributeNames={})).KOA_TYPE="koa.type",r.KOA_NAME="koa.name"},327028,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.isLayerIgnored=n.getMiddlewareMetadata=void 0;let r=e.r(476528),o=e.r(259134),i=e.r(808119);n.getMiddlewareMetadata=(e,t,n,a)=>n?{attributes:{[o.AttributeNames.KOA_NAME]:a?.toString(),[o.AttributeNames.KOA_TYPE]:r.KoaLayerType.ROUTER,[i.ATTR_HTTP_ROUTE]:a?.toString()},name:e._matchedRouteName||`router - ${a}`}:{attributes:{[o.AttributeNames.KOA_NAME]:t.name??"middleware",[o.AttributeNames.KOA_TYPE]:r.KoaLayerType.MIDDLEWARE},name:`middleware - ${t.name}`},n.isLayerIgnored=(e,t)=>!!(Array.isArray(t?.ignoreLayersType)&&t?.ignoreLayersType?.includes(e))},780039,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.kLayerPatched=void 0,n.kLayerPatched=Symbol("koa-layer-patched")},166165,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.KoaInstrumentation=void 0;let r=e.r(357762),o=e.r(204780),i=e.r(476528),a=e.r(61353),s=e.r(327028),l=e.r(385692),u=e.r(780039);class c extends o.InstrumentationBase{constructor(e={}){super(a.PACKAGE_NAME,a.PACKAGE_VERSION,e)}init(){return new o.InstrumentationNodeModuleDefinition("koa",[">=2.0.0 <4"],e=>{let t="Module"===e[Symbol.toStringTag]?e.default:e;return null==t?t:((0,o.isWrapped)(t.prototype.use)&&this._unwrap(t.prototype,"use"),this._wrap(t.prototype,"use",this._getKoaUsePatch.bind(this)),e)},e=>{let t="Module"===e[Symbol.toStringTag]?e.default:e;(0,o.isWrapped)(t.prototype.use)&&this._unwrap(t.prototype,"use")})}_getKoaUsePatch(e){let t=this;return function(n){let r;return r=n.router?t._patchRouterDispatch(n):t._patchLayer(n,!1),e.apply(this,[r])}}_patchRouterDispatch(e){r.diag.debug("Patching @koa/router dispatch");let t=e.router;for(let e of t?.stack??[]){let t=e.path,n=e.stack;for(let e=0;e{if(void 0===r.trace.getSpan(r.context.active()))return e(i,u);let c=(0,s.getMiddlewareMetadata)(i,e,t,n),p=this.tracer.startSpan(c.name,{attributes:c.attributes}),_=(0,l.getRPCMetadata)(r.context.active());_?.type===l.RPCType.HTTP&&i._matchedRoute&&(_.route=i._matchedRoute.toString());let{requestHook:T}=this.getConfig();T&&(0,o.safeExecuteInTheMiddle)(()=>T(p,{context:i,middlewareLayer:e,layerType:a}),e=>{e&&r.diag.error("koa instrumentation: request hook failed",e)},!0);let d=r.trace.setSpan(r.context.active(),p);return r.context.with(d,async()=>{try{return await e(i,u)}catch(e){throw p.recordException(e),e}finally{p.end()}})})}}n.KoaInstrumentation=c},891732,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.KoaLayerType=n.AttributeNames=n.KoaInstrumentation=void 0;var r=e.r(166165);Object.defineProperty(n,"KoaInstrumentation",{enumerable:!0,get:function(){return r.KoaInstrumentation}});var o=e.r(259134);Object.defineProperty(n,"AttributeNames",{enumerable:!0,get:function(){return o.AttributeNames}});var i=e.r(476528);Object.defineProperty(n,"KoaLayerType",{enumerable:!0,get:function(){return i.KoaLayerType}})},86294,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(891732),o=e.r(808119),i=e.r(976285),a=e.r(625331),s=e.r(866779),l=a.generateInstrumentOnce("Koa",r.KoaInstrumentation,(e={})=>({ignoreLayersType:e.ignoreLayersType,requestHook(e,t){a.addOriginToSpan(e,"auto.http.otel.koa");let n=i.spanToJSON(e).data,r=n["koa.type"];r&&e.setAttribute(i.SEMANTIC_ATTRIBUTE_SENTRY_OP,`${r}.koa`);let l=n["koa.name"];if("string"==typeof l&&e.updateName(l||"< unknown >"),i.getIsolationScope()===i.getDefaultIsolationScope()){s.DEBUG_BUILD&&i.debug.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let u=n[o.ATTR_HTTP_ROUTE],c=t.context?.request?.method?.toUpperCase()||"GET";u&&i.getIsolationScope().setTransactionName(`${c} ${u}`)}})),u=i.defineIntegration((e={})=>({name:"Koa",setupOnce(){l(e)}}));n.instrumentKoa=l,n.koaIntegration=u,n.setupKoaErrorHandler=e=>{e.use(async(e,t)=>{try{await t()}catch(e){throw i.captureException(e,{mechanism:{handled:!1,type:"auto.middleware.koa"}}),e}}),a.ensureIsWrapped(e.use,"koa")}},737439,(e,t,n)=>{"use strict";var r,o,i;Object.defineProperty(n,"__esModule",{value:!0}),n.ConnectNames=n.ConnectTypes=n.AttributeNames=void 0,(r=n.AttributeNames||(n.AttributeNames={})).CONNECT_TYPE="connect.type",r.CONNECT_NAME="connect.name",(o=n.ConnectTypes||(n.ConnectTypes={})).MIDDLEWARE="middleware",o.REQUEST_HANDLER="request_handler",(i=n.ConnectNames||(n.ConnectNames={})).MIDDLEWARE="middleware",i.REQUEST_HANDLER="request handler"},927690,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.57.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-connect"},783486,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n._LAYERS_STORE_PROPERTY=void 0,n._LAYERS_STORE_PROPERTY=Symbol("opentelemetry.instrumentation-connect.request-route-stack")},674147,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.generateRoute=n.replaceCurrentStackRoute=n.addNewStackLayer=void 0;let r=e.r(357762),o=e.r(783486);n.addNewStackLayer=e=>{!1===Array.isArray(e[o._LAYERS_STORE_PROPERTY])&&Object.defineProperty(e,o._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]}),e[o._LAYERS_STORE_PROPERTY].push("/");let t=e[o._LAYERS_STORE_PROPERTY].length;return()=>{t===e[o._LAYERS_STORE_PROPERTY].length?e[o._LAYERS_STORE_PROPERTY].pop():r.diag.warn("Connect: Trying to pop the stack multiple time")}},n.replaceCurrentStackRoute=(e,t)=>{t&&e[o._LAYERS_STORE_PROPERTY].splice(-1,1,t)},n.generateRoute=e=>e[o._LAYERS_STORE_PROPERTY].reduce((e,t)=>e.replace(/\/+$/,"")+t)},683741,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.ConnectInstrumentation=n.ANONYMOUS_NAME=void 0;let r=e.r(357762),o=e.r(385692),i=e.r(737439),a=e.r(927690),s=e.r(204780),l=e.r(808119),u=e.r(674147);n.ANONYMOUS_NAME="anonymous";class c extends s.InstrumentationBase{constructor(e={}){super(a.PACKAGE_NAME,a.PACKAGE_VERSION,e)}init(){return[new s.InstrumentationNodeModuleDefinition("connect",[">=3.0.0 <4"],e=>this._patchConstructor(e))]}_patchApp(e){(0,s.isWrapped)(e.use)||this._wrap(e,"use",this._patchUse.bind(this)),(0,s.isWrapped)(e.handle)||this._wrap(e,"handle",this._patchHandle.bind(this))}_patchConstructor(e){let t=this;return function(...n){let r=e.apply(this,n);return t._patchApp(r),r}}_patchNext(e,t){return function(n){let r=e.apply(this,[n]);return t(),r}}_startSpan(e,t){let r,o,a;e?(r=i.ConnectTypes.REQUEST_HANDLER,a=i.ConnectNames.REQUEST_HANDLER,o=e):(r=i.ConnectTypes.MIDDLEWARE,a=i.ConnectNames.MIDDLEWARE,o=t.name||n.ANONYMOUS_NAME);let s=`${a} - ${o}`,u={attributes:{[l.ATTR_HTTP_ROUTE]:e.length>0?e:"/",[i.AttributeNames.CONNECT_TYPE]:r,[i.AttributeNames.CONNECT_NAME]:o}};return this.tracer.startSpan(s,u)}_patchMiddleware(e,t){let i=this,a=4===t.length;function s(){if(!i.isEnabled())return t.apply(this,arguments);let[s,l,c]=a?[1,2,3]:[0,1,2],p=arguments[s],_=arguments[l],T=arguments[c];(0,u.replaceCurrentStackRoute)(p,e);let d=(0,o.getRPCMetadata)(r.context.active());e&&d?.type===o.RPCType.HTTP&&(d.route=(0,u.generateRoute)(p));let E="";E=e?`request handler - ${e}`:`middleware - ${t.name||n.ANONYMOUS_NAME}`;let S=i._startSpan(e,t);i._diag.debug("start span",E);let A=!1;function g(){A?i._diag.debug(`span ${S.name} - already finished`):(A=!0,i._diag.debug(`finishing span ${S.name}`),S.end()),_.removeListener("close",g)}return _.addListener("close",g),arguments[c]=i._patchNext(T,g),t.apply(this,arguments)}return Object.defineProperty(s,"length",{value:t.length,writable:!1,configurable:!0}),s}_patchUse(e){let t=this;return function(...n){let r=n[n.length-1],o=n[n.length-2]||"";return n[n.length-1]=t._patchMiddleware(o,r),e.apply(this,n)}}_patchHandle(e){let t=this;return function(){let[n,r]=[0,2],o=arguments[n],i=arguments[r],a=(0,u.addNewStackLayer)(o);return"function"==typeof i&&(arguments[r]=t._patchOut(i,a)),e.apply(this,arguments)}}_patchOut(e,t){return function(...n){return t(),Reflect.apply(e,this,n)}}}n.ConnectInstrumentation=c},13613,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.ConnectTypes=n.ConnectNames=n.AttributeNames=n.ANONYMOUS_NAME=n.ConnectInstrumentation=void 0;var r=e.r(683741);Object.defineProperty(n,"ConnectInstrumentation",{enumerable:!0,get:function(){return r.ConnectInstrumentation}}),Object.defineProperty(n,"ANONYMOUS_NAME",{enumerable:!0,get:function(){return r.ANONYMOUS_NAME}});var o=e.r(737439);Object.defineProperty(n,"AttributeNames",{enumerable:!0,get:function(){return o.AttributeNames}}),Object.defineProperty(n,"ConnectNames",{enumerable:!0,get:function(){return o.ConnectNames}}),Object.defineProperty(n,"ConnectTypes",{enumerable:!0,get:function(){return o.ConnectTypes}})},953027,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(13613),o=e.r(976285),i=e.r(625331),a="Connect",s=i.generateInstrumentOnce(a,()=>new r.ConnectInstrumentation);function l(e,t,n,r){o.captureException(e,{mechanism:{handled:!1,type:"auto.middleware.connect"}}),r(e)}n.connectIntegration=o.defineIntegration(()=>({name:a,setupOnce(){s()}})),n.instrumentConnect=s,n.setupConnectErrorHandler=e=>{e.use(l);let t=o.getClient();t&&t.on("spanStart",e=>{!function(e){let t=o.spanToJSON(e).data,n=t["connect.type"];if(t[o.SEMANTIC_ATTRIBUTE_SENTRY_OP]||!n)return;e.setAttributes({[o.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.http.otel.connect",[o.SEMANTIC_ATTRIBUTE_SENTRY_OP]:`${n}.connect`});let r=t["connect.name"];"string"==typeof r&&e.updateName(r)}(e)}),i.ensureIsWrapped(e.use,"connect")}},210033,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.58.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-knex"},312058,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.SUPPORTED_VERSIONS=n.MODULE_NAME=void 0,n.MODULE_NAME="knex",n.SUPPORTED_VERSIONS=[">=0.22.0 <4",">=0.10.0 <0.18.0",">=0.19.0 <0.22.0",">=0.18.0 <0.19.0"]},77979,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.DB_SYSTEM_NAME_VALUE_SQLITE=n.ATTR_NET_TRANSPORT=n.ATTR_NET_PEER_PORT=n.ATTR_NET_PEER_NAME=n.ATTR_DB_USER=n.ATTR_DB_SYSTEM=n.ATTR_DB_STATEMENT=n.ATTR_DB_SQL_TABLE=n.ATTR_DB_OPERATION=n.ATTR_DB_NAME=void 0,n.ATTR_DB_NAME="db.name",n.ATTR_DB_OPERATION="db.operation",n.ATTR_DB_SQL_TABLE="db.sql.table",n.ATTR_DB_STATEMENT="db.statement",n.ATTR_DB_SYSTEM="db.system",n.ATTR_DB_USER="db.user",n.ATTR_NET_PEER_NAME="net.peer.name",n.ATTR_NET_PEER_PORT="net.peer.port",n.ATTR_NET_TRANSPORT="net.transport",n.DB_SYSTEM_NAME_VALUE_SQLITE="sqlite"},113622,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.extractTableName=n.extractPortFromConnectionString=n.extractHostFromConnectionString=n.extractDatabaseFromConnectionString=n.limitLength=n.getName=n.mapSystem=n.otelExceptionFromKnexError=n.getFormatter=void 0;let r=e.r(808119),o=e.r(77979);n.getFormatter=e=>{if(e){if(e.client){if(e.client._formatQuery)return e.client._formatQuery.bind(e.client);else if(e.client.SqlString)return e.client.SqlString.format.bind(e.client.SqlString)}if(e.builder)return e.builder.toString.bind(e.builder)}return()=>""},n.otelExceptionFromKnexError=function(e,t){return e&&e instanceof Error?{message:t,code:e.code,stack:e.stack,name:e.name}:e};let i=new Map([["sqlite3",o.DB_SYSTEM_NAME_VALUE_SQLITE],["pg",r.DB_SYSTEM_NAME_VALUE_POSTGRESQL]]);n.mapSystem=e=>i.get(e)||e,n.getName=(e,t,n)=>t?n?`${t} ${e}.${n}`:`${t} ${e}`:e,n.limitLength=(e,t)=>"string"==typeof e&&"number"==typeof t&&0{if(e)try{return new URL(e).pathname?.replace(/^\//,"")||void 0}catch{return}},n.extractHostFromConnectionString=e=>{if(e)try{return new URL(e).hostname||void 0}catch{return}},n.extractPortFromConnectionString=e=>{if(e)try{let t=new URL(e).port;return t?parseInt(t,10):void 0}catch{return}},n.extractTableName=e=>{let t=e?._single?.table;return"object"==typeof t?(0,n.extractTableName)(t):t}},730413,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.KnexInstrumentation=void 0;let r=e.r(357762),o=e.r(210033),i=e.r(312058),a=e.r(204780),s=e.r(113622),l=e.r(808119),u=e.r(77979),c=Symbol("opentelemetry.instrumentation-knex.context"),p={maxQueryLength:1022,requireParentSpan:!1};class _ extends a.InstrumentationBase{_semconvStability;constructor(e={}){super(o.PACKAGE_NAME,o.PACKAGE_VERSION,{...p,...e}),this._semconvStability=(0,a.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(e={}){super.setConfig({...p,...e})}init(){let e=new a.InstrumentationNodeModuleDefinition(i.MODULE_NAME,i.SUPPORTED_VERSIONS);return e.files.push(this.getClientNodeModuleFileInstrumentation("src"),this.getClientNodeModuleFileInstrumentation("lib"),this.getRunnerNodeModuleFileInstrumentation("src"),this.getRunnerNodeModuleFileInstrumentation("lib"),this.getRunnerNodeModuleFileInstrumentation("lib/execution")),e}getRunnerNodeModuleFileInstrumentation(e){return new a.InstrumentationNodeModuleFile(`knex/${e}/runner.js`,i.SUPPORTED_VERSIONS,(e,t)=>(this.ensureWrapped(e.prototype,"query",this.createQueryWrapper(t)),e),(e,t)=>(this._unwrap(e.prototype,"query"),e))}getClientNodeModuleFileInstrumentation(e){return new a.InstrumentationNodeModuleFile(`knex/${e}/client.js`,i.SUPPORTED_VERSIONS,e=>(this.ensureWrapped(e.prototype,"queryBuilder",this.storeContext.bind(this)),this.ensureWrapped(e.prototype,"schemaBuilder",this.storeContext.bind(this)),this.ensureWrapped(e.prototype,"raw",this.storeContext.bind(this)),e),e=>(this._unwrap(e.prototype,"queryBuilder"),this._unwrap(e.prototype,"schemaBuilder"),this._unwrap(e.prototype,"raw"),e))}createQueryWrapper(e){let t=this;return function(n){return function(o){let i=this.client.config,p=s.extractTableName(this.builder),_=o?.method,T=i?.connection?.connectionString,d=i?.connection?.filename||i?.connection?.database||s.extractDatabaseFromConnectionString(T),{maxQueryLength:E}=t.getConfig(),S={"knex.version":e},A=i?.connection?.filename===":memory:"?"inproc":void 0;if(t._semconvStability&a.SemconvStability.OLD&&Object.assign(S,{[u.ATTR_DB_SYSTEM]:s.mapSystem(this.client.driverName),[u.ATTR_DB_SQL_TABLE]:p,[u.ATTR_DB_OPERATION]:_,[u.ATTR_DB_USER]:i?.connection?.user,[u.ATTR_DB_NAME]:d,[u.ATTR_NET_PEER_NAME]:i?.connection?.host??s.extractHostFromConnectionString(T),[u.ATTR_NET_PEER_PORT]:i?.connection?.port??s.extractPortFromConnectionString(T),[u.ATTR_NET_TRANSPORT]:A}),t._semconvStability&a.SemconvStability.STABLE&&Object.assign(S,{[l.ATTR_DB_SYSTEM_NAME]:s.mapSystem(this.client.driverName),[l.ATTR_DB_COLLECTION_NAME]:p,[l.ATTR_DB_OPERATION_NAME]:_,[l.ATTR_DB_NAMESPACE]:d,[l.ATTR_SERVER_ADDRESS]:i?.connection?.host??s.extractHostFromConnectionString(T),[l.ATTR_SERVER_PORT]:i?.connection?.port??s.extractPortFromConnectionString(T)}),E){let e=s.limitLength(o?.sql,E);t._semconvStability&a.SemconvStability.STABLE&&(S[l.ATTR_DB_QUERY_TEXT]=e),t._semconvStability&a.SemconvStability.OLD&&(S[u.ATTR_DB_STATEMENT]=e)}let g=this.builder[c]||r.context.active(),m=r.trace.getSpan(g),h=m&&r.trace.isSpanContextValid(m.spanContext());if(t._config.requireParentSpan&&!h)return n.bind(this)(...arguments);let R=t.tracer.startSpan(s.getName(d,_,p),{kind:r.SpanKind.CLIENT,attributes:S},g),f=r.trace.setSpan(r.context.active(),R);return r.context.with(f,n,this,...arguments).then(e=>(R.end(),e)).catch(e=>{let t=s.getFormatter(this)(o.sql,o.bindings||[]),n=e.message.replace(t+" - ",""),i=s.otelExceptionFromKnexError(e,n);throw R.recordException(i),R.setStatus({code:r.SpanStatusCode.ERROR,message:n}),R.end(),e})}}}storeContext(e){return function(){let t=e.apply(this,arguments);return Object.defineProperty(t,c,{value:r.context.active()}),t}}ensureWrapped(e,t,n){(0,a.isWrapped)(e[t])&&this._unwrap(e,t),this._wrap(e,t,n)}}n.KnexInstrumentation=_},618728,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.KnexInstrumentation=void 0;var r=e.r(730413);Object.defineProperty(n,"KnexInstrumentation",{enumerable:!0,get:function(){return r.KnexInstrumentation}})},823099,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(618728),o=e.r(976285),i=e.r(625331),a="Knex",s=i.generateInstrumentOnce(a,()=>new r.KnexInstrumentation({requireParentSpan:!0})),l=o.defineIntegration(()=>{let e;return{name:a,setupOnce(){let t=s();e=i.instrumentWhenWrapped(t)},setup(t){e?.(()=>t.on("spanStart",e=>{let{data:t}=o.spanToJSON(e);"knex.version"in t&&e.setAttribute(o.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,"auto.db.otel.knex")}))}}});n.instrumentKnex=s,n.knexIntegration=l},749620,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.DB_SYSTEM_VALUE_MSSQL=n.ATTR_NET_PEER_PORT=n.ATTR_NET_PEER_NAME=n.ATTR_DB_USER=n.ATTR_DB_SYSTEM=n.ATTR_DB_STATEMENT=n.ATTR_DB_SQL_TABLE=n.ATTR_DB_NAME=void 0,n.ATTR_DB_NAME="db.name",n.ATTR_DB_SQL_TABLE="db.sql.table",n.ATTR_DB_STATEMENT="db.statement",n.ATTR_DB_SYSTEM="db.system",n.ATTR_DB_USER="db.user",n.ATTR_NET_PEER_NAME="net.peer.name",n.ATTR_NET_PEER_PORT="net.peer.port",n.DB_SYSTEM_VALUE_MSSQL="mssql"},224620,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.once=n.getSpanName=void 0,n.getSpanName=function(e,t,n,r){return"execBulkLoad"===e&&r&&t?`${e} ${r} ${t}`:"callProcedure"===e?t?`${e} ${n} ${t}`:`${e} ${n}`:t?`${e} ${t}`:`${e}`},n.once=e=>{let t=!1;return(...n)=>{if(!t)return t=!0,e(...n)}}},104038,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.33.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-tedious"},189155,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.TediousInstrumentation=n.INJECTED_CTX=void 0;let r=e.r(357762),o=e.r(427699),i=e.r(204780),a=e.r(808119),s=e.r(749620),l=e.r(224620),u=e.r(104038),c=Symbol("opentelemetry.instrumentation-tedious.current-database");n.INJECTED_CTX=Symbol("opentelemetry.instrumentation-tedious.context-info-injected");let p=["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"];function _(e){Object.defineProperty(this,c,{value:e,writable:!0})}class T extends i.InstrumentationBase{static COMPONENT="tedious";_netSemconvStability;_dbSemconvStability;constructor(e={}){super(u.PACKAGE_NAME,u.PACKAGE_VERSION,e),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,i.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,i.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return[new i.InstrumentationNodeModuleDefinition(T.COMPONENT,[">=1.11.0 <20"],e=>{let t=e.Connection.prototype;for(let n of p)(0,i.isWrapped)(t[n])&&this._unwrap(t,n),this._wrap(t,n,this._patchQuery(n,e));return(0,i.isWrapped)(t.connect)&&this._unwrap(t,"connect"),this._wrap(t,"connect",this._patchConnect),e},e=>{if(void 0===e)return;let t=e.Connection.prototype;for(let e of p)this._unwrap(t,e);this._unwrap(t,"connect")})]}_patchConnect(e){return function(){return _.call(this,this.config?.options?.database),this.removeListener("databaseChange",_),this.on("databaseChange",_),this.once("end",()=>{this.removeListener("databaseChange",_)}),e.apply(this,arguments)}}_buildTraceparent(e){let t=e.spanContext();return`00-${t.traceId}-${t.spanId}-0${Number(t.traceFlags||r.TraceFlags.NONE).toString(16)}`}_injectContextInfo(e,t,r){return new Promise(o=>{try{let i=new t.Request("set context_info @opentelemetry_traceparent",e=>{o()});Object.defineProperty(i,n.INJECTED_CTX,{value:!0});let a=Buffer.from(r,"utf8");i.addParameter("opentelemetry_traceparent",t.TYPES.VarBinary,a,{length:a.length}),e.execSql(i)}catch{o()}})}_shouldInjectFor(e){return"execSql"===e||"execSqlBatch"===e||"callProcedure"===e||"execute"===e}_patchQuery(e,t){return u=>{let p=this;function _(_){if(_?.[n.INJECTED_CTX])return u.apply(this,arguments);if(!(_ instanceof o.EventEmitter))return p._diag.warn(`Unexpected invocation of patched ${e} method. Span not recorded`),u.apply(this,arguments);let T=0,d=0,E=()=>d++,S=()=>T++,A=this[c],g="sp_prepare"===_.sqlTextOrProcedure&&_.parametersByName?.stmt?.value?_.parametersByName.stmt.value:_.sqlTextOrProcedure,m={};p._dbSemconvStability&i.SemconvStability.OLD&&(m[s.ATTR_DB_SYSTEM]=s.DB_SYSTEM_VALUE_MSSQL,m[s.ATTR_DB_NAME]=A,m[s.ATTR_DB_USER]=this.config?.userName??this.config?.authentication?.options?.userName,m[s.ATTR_DB_STATEMENT]=g,m[s.ATTR_DB_SQL_TABLE]=_.table),p._dbSemconvStability&i.SemconvStability.STABLE&&(m[a.ATTR_DB_NAMESPACE]=A,m[a.ATTR_DB_SYSTEM_NAME]=a.DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER,m[a.ATTR_DB_QUERY_TEXT]=g,m[a.ATTR_DB_COLLECTION_NAME]=_.table),p._netSemconvStability&i.SemconvStability.OLD&&(m[s.ATTR_NET_PEER_NAME]=this.config?.server,m[s.ATTR_NET_PEER_PORT]=this.config?.options?.port),p._netSemconvStability&i.SemconvStability.STABLE&&(m[a.ATTR_SERVER_ADDRESS]=this.config?.server,m[a.ATTR_SERVER_PORT]=this.config?.options?.port);let h=p.tracer.startSpan((0,l.getSpanName)(e,A,g,_.table),{kind:r.SpanKind.CLIENT,attributes:m}),R=(0,l.once)(e=>{_.removeListener("done",E),_.removeListener("doneInProc",E),_.removeListener("doneProc",S),_.removeListener("error",R),this.removeListener("end",R),h.setAttribute("tedious.procedure_count",T),h.setAttribute("tedious.statement_count",d),e&&h.setStatus({code:r.SpanStatusCode.ERROR,message:e.message}),h.end()});_.on("done",E),_.on("doneInProc",E),_.on("doneProc",S),_.once("error",R),this.on("end",R),"function"==typeof _.callback?p._wrap(_,"callback",p._patchCallbackQuery(R)):p._diag.error("Expected request.callback to be a function");let f=()=>r.context.with(r.trace.setSpan(r.context.active(),h),u,this,...arguments);if(!(p.getConfig().enableTraceContextPropagation&&p._shouldInjectFor(e)))return f();let N=p._buildTraceparent(h);p._injectContextInfo(this,t,N).finally(f)}return Object.defineProperty(_,"length",{value:u.length,writable:!1}),_}}_patchCallbackQuery(e){return t=>function(n,r,o){return e(n),t.apply(this,arguments)}}}n.TediousInstrumentation=T},537920,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.TediousInstrumentation=void 0;var r=e.r(189155);Object.defineProperty(n,"TediousInstrumentation",{enumerable:!0,get:function(){return r.TediousInstrumentation}})},946603,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(537920),o=e.r(976285),i=e.r(625331),a=new Set(["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"]),s="Tedious",l=i.generateInstrumentOnce(s,()=>new r.TediousInstrumentation({})),u=o.defineIntegration(()=>{let e;return{name:s,setupOnce(){let t=l();e=i.instrumentWhenWrapped(t)},setup(t){e?.(()=>t.on("spanStart",e=>{let{description:t,data:n}=o.spanToJSON(e);if(!t||"mssql"!==n["db.system"])return;let r=t.split(" ")[0]||"";a.has(r)&&e.setAttribute(o.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,"auto.db.otel.tedious")}))}}});n.instrumentTedious=l,n.tediousIntegration=u},171476,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.57.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-generic-pool"},936981,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.GenericPoolInstrumentation=void 0;let r=e.r(357762),o=e.r(204780),i=e.r(171476),a="generic-pool";class s extends o.InstrumentationBase{_isDisabled=!1;constructor(e={}){super(i.PACKAGE_NAME,i.PACKAGE_VERSION,e)}init(){return[new o.InstrumentationNodeModuleDefinition(a,[">=3.0.0 <4"],e=>{let t=e.Pool;return(0,o.isWrapped)(t.prototype.acquire)&&this._unwrap(t.prototype,"acquire"),this._wrap(t.prototype,"acquire",this._acquirePatcher.bind(this)),e},e=>{let t=e.Pool;return this._unwrap(t.prototype,"acquire"),e}),new o.InstrumentationNodeModuleDefinition(a,[">=2.4.0 <3"],e=>{let t=e.Pool;return(0,o.isWrapped)(t.prototype.acquire)&&this._unwrap(t.prototype,"acquire"),this._wrap(t.prototype,"acquire",this._acquireWithCallbacksPatcher.bind(this)),e},e=>{let t=e.Pool;return this._unwrap(t.prototype,"acquire"),e}),new o.InstrumentationNodeModuleDefinition(a,[">=2.0.0 <2.4"],e=>(this._isDisabled=!1,(0,o.isWrapped)(e.Pool)&&this._unwrap(e,"Pool"),this._wrap(e,"Pool",this._poolWrapper.bind(this)),e),e=>(this._isDisabled=!0,e))]}_acquirePatcher(e){let t=this;return function(...n){let o=r.context.active(),i=t.tracer.startSpan("generic-pool.acquire",{},o);return r.context.with(r.trace.setSpan(o,i),()=>e.call(this,...n).then(e=>(i.end(),e),e=>{throw i.recordException(e),i.end(),e}))}}_poolWrapper(e){let t=this;return function(){let n=e.apply(this,arguments);return t._wrap(n,"acquire",t._acquireWithCallbacksPatcher.bind(t)),n}}_acquireWithCallbacksPatcher(e){let t=this;return function(n,o){if(t._isDisabled)return e.call(this,n,o);let i=r.context.active(),a=t.tracer.startSpan("generic-pool.acquire",{},i);return r.context.with(r.trace.setSpan(i,a),()=>{e.call(this,(e,t)=>{if(a.end(),n)return n(e,t)},o)})}}}n.GenericPoolInstrumentation=s},802638,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.GenericPoolInstrumentation=void 0;var r=e.r(936981);Object.defineProperty(n,"GenericPoolInstrumentation",{enumerable:!0,get:function(){return r.GenericPoolInstrumentation}})},979396,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(802638),o=e.r(976285),i=e.r(625331),a="GenericPool",s=i.generateInstrumentOnce(a,()=>new r.GenericPoolInstrumentation({}));n.genericPoolIntegration=o.defineIntegration(()=>{let e;return{name:a,setupOnce(){let t=s();e=i.instrumentWhenWrapped(t)},setup(t){e?.(()=>t.on("spanStart",e=>{let t=o.spanToJSON(e).description;("generic-pool.aquire"===t||"generic-pool.acquire"===t)&&e.setAttribute(o.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,"auto.db.otel.generic_pool")}))}}}),n.instrumentGenericPool=s},624905,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.31.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-dataloader"},56741,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.DataloaderInstrumentation=void 0;let r=e.r(204780),o=e.r(357762),i=e.r(624905),a="dataloader";function s(e){return"Module"===e[Symbol.toStringTag]?e.default:e}class l extends r.InstrumentationBase{constructor(e={}){super(i.PACKAGE_NAME,i.PACKAGE_VERSION,e)}init(){return[new r.InstrumentationNodeModuleDefinition(a,[">=2.0.0 <3"],e=>{let t=s(e);return this._patchLoad(t.prototype),this._patchLoadMany(t.prototype),this._patchPrime(t.prototype),this._patchClear(t.prototype),this._patchClearAll(t.prototype),this._getPatchedConstructor(t)},e=>{let t=s(e);["load","loadMany","prime","clear","clearAll"].forEach(e=>{(0,r.isWrapped)(t.prototype[e])&&this._unwrap(t.prototype,e)})})]}shouldCreateSpans(){let e=this.getConfig();return void 0!==o.trace.getSpan(o.context.active())||!e.requireParentSpan}getSpanName(e,t){let n=e.name;return null==n?`${a}.${t}`:`${a}.${t} ${n}`}_wrapBatchLoadFn(e){let t=this;return function(...n){if(!t.isEnabled()||!t.shouldCreateSpans())return e.call(this,...n);let r=o.context.active(),i=t.tracer.startSpan(t.getSpanName(this,"batch"),{links:this._batch?.spanLinks},r);return o.context.with(o.trace.setSpan(r,i),()=>e.apply(this,n).then(e=>(i.end(),e)).catch(e=>{throw i.recordException(e),i.setStatus({code:o.SpanStatusCode.ERROR,message:e.message}),i.end(),e}))}}_getPatchedConstructor(e){let t=this,n=e.prototype;if(!t.isEnabled())return e;function o(...n){return"function"==typeof n[0]&&((0,r.isWrapped)(n[0])&&t._unwrap(n,0),n[0]=t._wrapBatchLoadFn(n[0])),e.apply(this,n)}return o.prototype=n,o}_patchLoad(e){(0,r.isWrapped)(e.load)&&this._unwrap(e,"load"),this._wrap(e,"load",this._getPatchedLoad.bind(this))}_getPatchedLoad(e){let t=this;return function(...n){if(!t.shouldCreateSpans())return e.call(this,...n);let r=o.context.active(),i=t.tracer.startSpan(t.getSpanName(this,"load"),{kind:o.SpanKind.CLIENT},r);return o.context.with(o.trace.setSpan(r,i),()=>{let t=e.call(this,...n).then(e=>(i.end(),e)).catch(e=>{throw i.recordException(e),i.setStatus({code:o.SpanStatusCode.ERROR,message:e.message}),i.end(),e});return this._batch&&(this._batch.spanLinks||(this._batch.spanLinks=[]),this._batch.spanLinks.push({context:i.spanContext()})),t})}}_patchLoadMany(e){(0,r.isWrapped)(e.loadMany)&&this._unwrap(e,"loadMany"),this._wrap(e,"loadMany",this._getPatchedLoadMany.bind(this))}_getPatchedLoadMany(e){let t=this;return function(...n){if(!t.shouldCreateSpans())return e.call(this,...n);let r=o.context.active(),i=t.tracer.startSpan(t.getSpanName(this,"loadMany"),{kind:o.SpanKind.CLIENT},r);return o.context.with(o.trace.setSpan(r,i),()=>e.call(this,...n).then(e=>(i.end(),e)))}}_patchPrime(e){(0,r.isWrapped)(e.prime)&&this._unwrap(e,"prime"),this._wrap(e,"prime",this._getPatchedPrime.bind(this))}_getPatchedPrime(e){let t=this;return function(...n){if(!t.shouldCreateSpans())return e.call(this,...n);let r=o.context.active(),i=t.tracer.startSpan(t.getSpanName(this,"prime"),{kind:o.SpanKind.CLIENT},r),a=o.context.with(o.trace.setSpan(r,i),()=>e.call(this,...n));return i.end(),a}}_patchClear(e){(0,r.isWrapped)(e.clear)&&this._unwrap(e,"clear"),this._wrap(e,"clear",this._getPatchedClear.bind(this))}_getPatchedClear(e){let t=this;return function(...n){if(!t.shouldCreateSpans())return e.call(this,...n);let r=o.context.active(),i=t.tracer.startSpan(t.getSpanName(this,"clear"),{kind:o.SpanKind.CLIENT},r),a=o.context.with(o.trace.setSpan(r,i),()=>e.call(this,...n));return i.end(),a}}_patchClearAll(e){(0,r.isWrapped)(e.clearAll)&&this._unwrap(e,"clearAll"),this._wrap(e,"clearAll",this._getPatchedClearAll.bind(this))}_getPatchedClearAll(e){let t=this;return function(...n){if(!t.shouldCreateSpans())return e.call(this,...n);let r=o.context.active(),i=t.tracer.startSpan(t.getSpanName(this,"clearAll"),{kind:o.SpanKind.CLIENT},r),a=o.context.with(o.trace.setSpan(r,i),()=>e.call(this,...n));return i.end(),a}}}n.DataloaderInstrumentation=l},228251,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.DataloaderInstrumentation=void 0;var r=e.r(56741);Object.defineProperty(n,"DataloaderInstrumentation",{enumerable:!0,get:function(){return r.DataloaderInstrumentation}})},363082,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(228251),o=e.r(976285),i=e.r(625331),a="Dataloader",s=i.generateInstrumentOnce(a,()=>new r.DataloaderInstrumentation({requireParentSpan:!0}));n.dataloaderIntegration=o.defineIntegration(()=>{let e;return{name:a,setupOnce(){let t=s();e=i.instrumentWhenWrapped(t)},setup(t){e?.(()=>{t.on("spanStart",e=>{let t=o.spanToJSON(e);t.description?.startsWith("dataloader")&&e.setAttribute(o.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,"auto.db.otel.dataloader"),("dataloader.load"===t.description||"dataloader.loadMany"===t.description||"dataloader.batch"===t.description)&&e.setAttribute(o.SEMANTIC_ATTRIBUTE_SENTRY_OP,"cache.get")})})}}}),n.instrumentDataloader=s},58684,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.ATTR_NET_PEER_PORT=n.ATTR_NET_PEER_NAME=n.ATTR_MESSAGING_SYSTEM=n.ATTR_MESSAGING_OPERATION=void 0,n.ATTR_MESSAGING_OPERATION="messaging.operation",n.ATTR_MESSAGING_SYSTEM="messaging.system",n.ATTR_NET_PEER_NAME="net.peer.name",n.ATTR_NET_PEER_PORT="net.peer.port"},980159,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.ATTR_MESSAGING_CONVERSATION_ID=n.OLD_ATTR_MESSAGING_MESSAGE_ID=n.MESSAGING_DESTINATION_KIND_VALUE_TOPIC=n.ATTR_MESSAGING_URL=n.ATTR_MESSAGING_PROTOCOL_VERSION=n.ATTR_MESSAGING_PROTOCOL=n.MESSAGING_OPERATION_VALUE_PROCESS=n.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY=n.ATTR_MESSAGING_DESTINATION_KIND=n.ATTR_MESSAGING_DESTINATION=void 0,n.ATTR_MESSAGING_DESTINATION="messaging.destination",n.ATTR_MESSAGING_DESTINATION_KIND="messaging.destination_kind",n.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY="messaging.rabbitmq.routing_key",n.MESSAGING_OPERATION_VALUE_PROCESS="process",n.ATTR_MESSAGING_PROTOCOL="messaging.protocol",n.ATTR_MESSAGING_PROTOCOL_VERSION="messaging.protocol_version",n.ATTR_MESSAGING_URL="messaging.url",n.MESSAGING_DESTINATION_KIND_VALUE_TOPIC="topic",n.OLD_ATTR_MESSAGING_MESSAGE_ID="messaging.message_id",n.ATTR_MESSAGING_CONVERSATION_ID="messaging.conversation_id"},650834,(e,t,n)=>{"use strict";var r;Object.defineProperty(n,"__esModule",{value:!0}),n.DEFAULT_CONFIG=n.EndOperation=void 0,(r=n.EndOperation||(n.EndOperation={})).AutoAck="auto ack",r.Ack="ack",r.AckAll="ackAll",r.Reject="reject",r.Nack="nack",r.NackAll="nackAll",r.ChannelClosed="channel closed",r.ChannelError="channel error",r.InstrumentationTimeout="instrumentation timeout",n.DEFAULT_CONFIG={consumeTimeoutMs:6e4,useLinksForConsume:!1}},959801,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.isConfirmChannelTracing=n.unmarkConfirmChannelTracing=n.markConfirmChannelTracing=n.getConnectionAttributesFromUrl=n.getConnectionAttributesFromServer=n.normalizeExchange=n.CONNECTION_ATTRIBUTES=n.CHANNEL_CONSUME_TIMEOUT_TIMER=n.CHANNEL_SPANS_NOT_ENDED=n.MESSAGE_STORED_SPAN=void 0;let r=e.r(357762),o=e.r(204780),i=e.r(808119),a=e.r(58684),s=e.r(980159);n.MESSAGE_STORED_SPAN=Symbol("opentelemetry.amqplib.message.stored-span"),n.CHANNEL_SPANS_NOT_ENDED=Symbol("opentelemetry.amqplib.channel.spans-not-ended"),n.CHANNEL_CONSUME_TIMEOUT_TIMER=Symbol("opentelemetry.amqplib.channel.consumer-timeout-timer"),n.CONNECTION_ATTRIBUTES=Symbol("opentelemetry.amqplib.connection.attributes");let l=(0,r.createContextKey)("opentelemetry.amqplib.channel.is-confirm-channel");n.normalizeExchange=e=>""!==e?e:"";let u=(e,t)=>e||("AMQP"===t?5672:5671),c=e=>{let t=e||"amqp";return(t.endsWith(":")?t.substring(0,t.length-1):t).toUpperCase()},p=(e,t,n,o)=>n?{[t]:n}:(r.diag.error(`amqplib instrumentation: could not extract connection attribute ${o} from user supplied url`,{url:e}),{});n.getConnectionAttributesFromServer=e=>{let t=e.serverProperties.product?.toLowerCase?.();return t?{[a.ATTR_MESSAGING_SYSTEM]:t}:{}},n.getConnectionAttributesFromUrl=(e,t)=>{let n={[s.ATTR_MESSAGING_PROTOCOL_VERSION]:"0.9.1"};if("object"==typeof(e=e||"amqp://localhost")){let r=e,l=c(r?.protocol);Object.assign(n,{...p(e,s.ATTR_MESSAGING_PROTOCOL,l,"protocol")});let _=r?.hostname||"localhost";t&o.SemconvStability.OLD&&Object.assign(n,{...p(e,a.ATTR_NET_PEER_NAME,_,"hostname")}),t&o.SemconvStability.STABLE&&Object.assign(n,{...p(e,i.ATTR_SERVER_ADDRESS,_,"hostname")});let T=u(r.port,l);t&o.SemconvStability.OLD&&Object.assign(n,p(e,a.ATTR_NET_PEER_PORT,T,"port")),t&o.SemconvStability.STABLE&&Object.assign(n,p(e,i.ATTR_SERVER_PORT,T,"port"))}else{let l=e.replace(/:[^:@/]*@/,":***@");n[s.ATTR_MESSAGING_URL]=l;try{let e=new URL(l),r=c(e.protocol);Object.assign(n,{...p(l,s.ATTR_MESSAGING_PROTOCOL,r,"protocol")});let _=e.hostname||"localhost";t&o.SemconvStability.OLD&&Object.assign(n,{...p(l,a.ATTR_NET_PEER_NAME,_,"hostname")}),t&o.SemconvStability.STABLE&&Object.assign(n,{...p(l,i.ATTR_SERVER_ADDRESS,_,"hostname")});let T=u(e.port?parseInt(e.port):void 0,r);t&o.SemconvStability.OLD&&Object.assign(n,p(l,a.ATTR_NET_PEER_PORT,T,"port")),t&o.SemconvStability.STABLE&&Object.assign(n,p(l,i.ATTR_SERVER_PORT,T,"port"))}catch(e){r.diag.error("amqplib instrumentation: error while extracting connection details from connection url",{censoredUrl:l,err:e})}}return n},n.markConfirmChannelTracing=e=>e.setValue(l,!0),n.unmarkConfirmChannelTracing=e=>e.deleteValue(l),n.isConfirmChannelTracing=e=>!0===e.getValue(l)},36349,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.61.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-amqplib"},826845,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.AmqplibInstrumentation=void 0;let r=e.r(357762),o=e.r(385692),i=e.r(204780),a=e.r(58684),s=e.r(980159),l=e.r(650834),u=e.r(959801),c=e.r(36349),p=[">=0.5.5 <1"];class _ extends i.InstrumentationBase{_netSemconvStability;constructor(e={}){super(c.PACKAGE_NAME,c.PACKAGE_VERSION,{...l.DEFAULT_CONFIG,...e}),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,i.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(e={}){super.setConfig({...l.DEFAULT_CONFIG,...e})}init(){let e=new i.InstrumentationNodeModuleFile("amqplib/lib/channel_model.js",p,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),t=new i.InstrumentationNodeModuleFile("amqplib/lib/callback_model.js",p,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),n=new i.InstrumentationNodeModuleFile("amqplib/lib/connect.js",p,this.patchConnect.bind(this),this.unpatchConnect.bind(this));return new i.InstrumentationNodeModuleDefinition("amqplib",p,void 0,void 0,[e,n,t])}patchConnect(e){return e=this.unpatchConnect(e),(0,i.isWrapped)(e.connect)||this._wrap(e,"connect",this.getConnectPatch.bind(this)),e}unpatchConnect(e){return(0,i.isWrapped)(e.connect)&&this._unwrap(e,"connect"),e}patchChannelModel(e,t){return(0,i.isWrapped)(e.Channel.prototype.publish)||this._wrap(e.Channel.prototype,"publish",this.getPublishPatch.bind(this,t)),(0,i.isWrapped)(e.Channel.prototype.consume)||this._wrap(e.Channel.prototype,"consume",this.getConsumePatch.bind(this,t)),(0,i.isWrapped)(e.Channel.prototype.ack)||this._wrap(e.Channel.prototype,"ack",this.getAckPatch.bind(this,!1,l.EndOperation.Ack)),(0,i.isWrapped)(e.Channel.prototype.nack)||this._wrap(e.Channel.prototype,"nack",this.getAckPatch.bind(this,!0,l.EndOperation.Nack)),(0,i.isWrapped)(e.Channel.prototype.reject)||this._wrap(e.Channel.prototype,"reject",this.getAckPatch.bind(this,!0,l.EndOperation.Reject)),(0,i.isWrapped)(e.Channel.prototype.ackAll)||this._wrap(e.Channel.prototype,"ackAll",this.getAckAllPatch.bind(this,!1,l.EndOperation.AckAll)),(0,i.isWrapped)(e.Channel.prototype.nackAll)||this._wrap(e.Channel.prototype,"nackAll",this.getAckAllPatch.bind(this,!0,l.EndOperation.NackAll)),(0,i.isWrapped)(e.Channel.prototype.emit)||this._wrap(e.Channel.prototype,"emit",this.getChannelEmitPatch.bind(this)),(0,i.isWrapped)(e.ConfirmChannel.prototype.publish)||this._wrap(e.ConfirmChannel.prototype,"publish",this.getConfirmedPublishPatch.bind(this,t)),e}unpatchChannelModel(e){return(0,i.isWrapped)(e.Channel.prototype.publish)&&this._unwrap(e.Channel.prototype,"publish"),(0,i.isWrapped)(e.Channel.prototype.consume)&&this._unwrap(e.Channel.prototype,"consume"),(0,i.isWrapped)(e.Channel.prototype.ack)&&this._unwrap(e.Channel.prototype,"ack"),(0,i.isWrapped)(e.Channel.prototype.nack)&&this._unwrap(e.Channel.prototype,"nack"),(0,i.isWrapped)(e.Channel.prototype.reject)&&this._unwrap(e.Channel.prototype,"reject"),(0,i.isWrapped)(e.Channel.prototype.ackAll)&&this._unwrap(e.Channel.prototype,"ackAll"),(0,i.isWrapped)(e.Channel.prototype.nackAll)&&this._unwrap(e.Channel.prototype,"nackAll"),(0,i.isWrapped)(e.Channel.prototype.emit)&&this._unwrap(e.Channel.prototype,"emit"),(0,i.isWrapped)(e.ConfirmChannel.prototype.publish)&&this._unwrap(e.ConfirmChannel.prototype,"publish"),e}getConnectPatch(e){let t=this;return function(n,r,o){return e.call(this,n,r,function(e,r){if(null==e){let e=(0,u.getConnectionAttributesFromUrl)(n,t._netSemconvStability),o=(0,u.getConnectionAttributesFromServer)(r);r[u.CONNECTION_ATTRIBUTES]={...e,...o}}o.apply(this,arguments)})}}getChannelEmitPatch(e){let t=this;return function(n){if("close"===n){t.endAllSpansOnChannel(this,!0,l.EndOperation.ChannelClosed,void 0);let e=this[u.CHANNEL_CONSUME_TIMEOUT_TIMER];e&&clearInterval(e),this[u.CHANNEL_CONSUME_TIMEOUT_TIMER]=void 0}else"error"===n&&t.endAllSpansOnChannel(this,!0,l.EndOperation.ChannelError,void 0);return e.apply(this,arguments)}}getAckAllPatch(e,t,n){let r=this;return function(o){return r.endAllSpansOnChannel(this,e,t,o),n.apply(this,arguments)}}getAckPatch(e,t,n){let r=this;return function(o,i,a){let s=t===l.EndOperation.Reject?i:a,c=this[u.CHANNEL_SPANS_NOT_ENDED]??[],p=c.findIndex(e=>e.msg===o);if(p<0)r.endConsumerSpan(o,e,t,s);else if(t!==l.EndOperation.Reject&&i){for(let n=0;n<=p;n++)r.endConsumerSpan(c[n].msg,e,t,s);c.splice(0,p+1)}else r.endConsumerSpan(o,e,t,s),c.splice(p,1);return n.apply(this,arguments)}}getConsumePatch(e,t){let n=this;return function(c,p,_){let T=this;if(!Object.prototype.hasOwnProperty.call(T,u.CHANNEL_SPANS_NOT_ENDED)){let{consumeTimeoutMs:e}=n.getConfig();if(e){let t=setInterval(()=>{n.checkConsumeTimeoutOnChannel(T)},e);t.unref(),T[u.CHANNEL_CONSUME_TIMEOUT_TIMER]=t}T[u.CHANNEL_SPANS_NOT_ENDED]=[]}return arguments[1]=function(t){let d;if(!t)return p.call(this,t);let E=t.properties.headers??{},S=r.propagation.extract(r.ROOT_CONTEXT,E),A=t.fields?.exchange;if(n._config.useLinksForConsume){let e=S?r.trace.getSpan(S)?.spanContext():void 0;S=void 0,e&&(d=[{context:e}])}let g=n.tracer.startSpan(`${c} process`,{kind:r.SpanKind.CONSUMER,attributes:{...T?.connection?.[u.CONNECTION_ATTRIBUTES],[s.ATTR_MESSAGING_DESTINATION]:A,[s.ATTR_MESSAGING_DESTINATION_KIND]:s.MESSAGING_DESTINATION_KIND_VALUE_TOPIC,[s.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]:t.fields?.routingKey,[a.ATTR_MESSAGING_OPERATION]:s.MESSAGING_OPERATION_VALUE_PROCESS,[s.OLD_ATTR_MESSAGING_MESSAGE_ID]:t?.properties.messageId,[s.ATTR_MESSAGING_CONVERSATION_ID]:t?.properties.correlationId},links:d},S),{consumeHook:m}=n.getConfig();m&&(0,i.safeExecuteInTheMiddle)(()=>m(g,{moduleVersion:e,msg:t}),e=>{e&&r.diag.error("amqplib instrumentation: consumerHook error",e)},!0),_?.noAck||(T[u.CHANNEL_SPANS_NOT_ENDED].push({msg:t,timeOfConsume:(0,o.hrTime)()}),t[u.MESSAGE_STORED_SPAN]=g);let h=S||r.ROOT_CONTEXT;r.context.with(r.trace.setSpan(h,g),()=>{p.call(this,t)}),_?.noAck&&(n.callConsumeEndHook(g,t,!1,l.EndOperation.AutoAck),g.end())},t.apply(this,arguments)}}getConfirmedPublishPatch(e,t){let n=this;return function(o,a,s,l,c){let{span:p,modifiedOptions:_}=n.createPublishSpan(n,o,a,this,l),{publishHook:T}=n.getConfig();T&&(0,i.safeExecuteInTheMiddle)(()=>T(p,{moduleVersion:e,exchange:o,routingKey:a,content:s,options:_,isConfirmChannel:!0}),e=>{e&&r.diag.error("amqplib instrumentation: publishHook error",e)},!0);let d=(0,u.markConfirmChannelTracing)(r.context.active()),E=[...arguments];return E[3]=_,E[4]=r.context.bind((0,u.unmarkConfirmChannelTracing)(r.trace.setSpan(d,p)),function(t,u){try{c?.call(this,t,u)}finally{let{publishConfirmHook:u}=n.getConfig();u&&(0,i.safeExecuteInTheMiddle)(()=>u(p,{moduleVersion:e,exchange:o,routingKey:a,content:s,options:l,isConfirmChannel:!0,confirmError:t}),e=>{e&&r.diag.error("amqplib instrumentation: publishConfirmHook error",e)},!0),t&&p.setStatus({code:r.SpanStatusCode.ERROR,message:"message confirmation has been nack'ed"}),p.end()}}),r.context.with(d,t.bind(this,...E))}}getPublishPatch(e,t){let n=this;return function(o,a,s,l){if((0,u.isConfirmChannelTracing)(r.context.active()))return t.apply(this,arguments);{let{span:u,modifiedOptions:c}=n.createPublishSpan(n,o,a,this,l),{publishHook:p}=n.getConfig();p&&(0,i.safeExecuteInTheMiddle)(()=>p(u,{moduleVersion:e,exchange:o,routingKey:a,content:s,options:c,isConfirmChannel:!1}),e=>{e&&r.diag.error("amqplib instrumentation: publishHook error",e)},!0);let _=[...arguments];_[3]=c;let T=t.apply(this,_);return u.end(),T}}}createPublishSpan(e,t,n,o,i){let a=(0,u.normalizeExchange)(t),l=e.tracer.startSpan(`publish ${a}`,{kind:r.SpanKind.PRODUCER,attributes:{...o.connection[u.CONNECTION_ATTRIBUTES],[s.ATTR_MESSAGING_DESTINATION]:t,[s.ATTR_MESSAGING_DESTINATION_KIND]:s.MESSAGING_DESTINATION_KIND_VALUE_TOPIC,[s.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]:n,[s.OLD_ATTR_MESSAGING_MESSAGE_ID]:i?.messageId,[s.ATTR_MESSAGING_CONVERSATION_ID]:i?.correlationId}}),c=i??{};return c.headers=c.headers??{},r.propagation.inject(r.trace.setSpan(r.context.active(),l),c.headers),{span:l,modifiedOptions:c}}endConsumerSpan(e,t,n,o){let i=e[u.MESSAGE_STORED_SPAN];i&&(!1!==t&&i.setStatus({code:r.SpanStatusCode.ERROR,message:n!==l.EndOperation.ChannelClosed&&n!==l.EndOperation.ChannelError?`${n} called on message${!0===o?" with requeue":!1===o?" without requeue":""}`:n}),this.callConsumeEndHook(i,e,t,n),i.end(),e[u.MESSAGE_STORED_SPAN]=void 0)}endAllSpansOnChannel(e,t,n,r){(e[u.CHANNEL_SPANS_NOT_ENDED]??[]).forEach(e=>{this.endConsumerSpan(e.msg,t,n,r)}),e[u.CHANNEL_SPANS_NOT_ENDED]=[]}callConsumeEndHook(e,t,n,o){let{consumeEndHook:a}=this.getConfig();a&&(0,i.safeExecuteInTheMiddle)(()=>a(e,{msg:t,rejected:n,endOperation:o}),e=>{e&&r.diag.error("amqplib instrumentation: consumerEndHook error",e)},!0)}checkConsumeTimeoutOnChannel(e){let t,n=(0,o.hrTime)(),r=e[u.CHANNEL_SPANS_NOT_ENDED]??[],{consumeTimeoutMs:i}=this.getConfig();for(t=0;t{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.EndOperation=n.DEFAULT_CONFIG=n.AmqplibInstrumentation=void 0;var r=e.r(826845);Object.defineProperty(n,"AmqplibInstrumentation",{enumerable:!0,get:function(){return r.AmqplibInstrumentation}});var o=e.r(650834);Object.defineProperty(n,"DEFAULT_CONFIG",{enumerable:!0,get:function(){return o.DEFAULT_CONFIG}}),Object.defineProperty(n,"EndOperation",{enumerable:!0,get:function(){return o.EndOperation}})},855902,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(908157),o=e.r(976285),i=e.r(625331),a="Amqplib",s={consumeEndHook:e=>{i.addOriginToSpan(e,"auto.amqplib.otel.consumer")},publishHook:e=>{i.addOriginToSpan(e,"auto.amqplib.otel.publisher")}},l=i.generateInstrumentOnce(a,()=>new r.AmqplibInstrumentation(s));n.amqplibIntegration=o.defineIntegration(()=>({name:a,setupOnce(){l()}})),n.instrumentAmqplib=l},197696,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),n.INTEGRATION_NAME="VercelAI"},696887,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(204780),o=e.r(976285),i=e.r(197696),a=[">=3.0.0 <7"],s=["generateText","streamText","generateObject","streamObject","embed","embedMany","rerank"];function l(e){"object"==typeof e&&null!==e&&"content"in e&&Array.isArray(e.content)&&(function(e){for(let t of e){if(!("object"==typeof t&&null!==t&&"type"in t&&"error"in t&&"toolName"in t&&"toolCallId"in t&&"tool-error"===t.type&&t.error instanceof Error))continue;let e=o._INTERNAL_getSpanContextForToolCallId(t.toolCallId);e?o.withScope(n=>{n.setContext("trace",{trace_id:e.traceId,span_id:e.spanId}),n.setTag("vercel.ai.tool.name",t.toolName),n.setTag("vercel.ai.tool.callId",t.toolCallId),n.setLevel("error"),o.captureException(t.error,{mechanism:{type:"auto.vercelai.otel",handled:!1}})}):o.withScope(e=>{e.setTag("vercel.ai.tool.name",t.toolName),e.setTag("vercel.ai.tool.callId",t.toolCallId),e.setLevel("error"),o.captureException(t.error,{mechanism:{type:"auto.vercelai.otel",handled:!1}})})}}(e.content),u(e.content))}function u(e){for(let t of e)"object"==typeof t&&null!==t&&"toolCallId"in t&&"string"==typeof t.toolCallId&&o._INTERNAL_cleanupToolCallSpanContext(t.toolCallId)}function c(e,t,n,r){return{recordInputs:e?.recordInputs!==void 0?e.recordInputs:void 0!==t.recordInputs?t.recordInputs:!0===n||r,recordOutputs:e?.recordOutputs!==void 0?e.recordOutputs:void 0!==t.recordOutputs?t.recordOutputs:!0===n||r}}class p extends r.InstrumentationBase{__init(){this._isPatched=!1}__init2(){this._callbacks=[]}constructor(e={}){super("@sentry/instrumentation-vercel-ai",o.SDK_VERSION,e),p.prototype.__init.call(this),p.prototype.__init2.call(this)}init(){return new r.InstrumentationNodeModuleDefinition("ai",a,this._patch.bind(this))}callWhenPatched(e){this._isPatched?e():this._callbacks.push(e)}_patch(e){this._isPatched=!0,this._callbacks.forEach(e=>e()),this._callbacks=[];let t=e=>new Proxy(e,{apply:(e,t,n)=>{let r=n[0].experimental_telemetry||{},a=r.isEnabled,s=o.getClient(),u=s?.getIntegrationByName(i.INTEGRATION_NAME),{recordInputs:p,recordOutputs:_}=c(u?.options,r,a,!!u&&!!s?.getOptions().sendDefaultPii);return n[0].experimental_telemetry={...r,isEnabled:void 0===a||a,recordInputs:p,recordOutputs:_},o.handleCallbackErrors(()=>Reflect.apply(e,t,n),e=>{e&&"object"==typeof e&&o.addNonEnumerableProperty(e,"_sentry_active_span",o.getActiveSpan())},()=>{},e=>{l(e)})}});if("[object Module]"===Object.prototype.toString.call(e)){for(let n of s)null!=e[n]&&(e[n]=t(e[n]));return e}{let n=s.reduce((n,r)=>(null!=e[r]&&(n[r]=t(e[r])),n),{});return{...e,...n}}}}n.SentryVercelAiInstrumentation=p,n.cleanupToolCallSpanContexts=u,n.determineRecordingSettings=c,n.processToolCallResults=l},834440,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(625331),i=e.r(197696),a=e.r(696887),s=o.generateInstrumentOnce(i.INTEGRATION_NAME,()=>new a.SentryVercelAiInstrumentation({})),l=r.defineIntegration((e={})=>{let t;return{name:i.INTEGRATION_NAME,options:e,setupOnce(){t=s()},afterAllSetup(n){let o;e.force??(o=n.getIntegrationByName("Modules"),!!o?.getModules?.()?.ai)?r.addVercelAiProcessors(n):t?.callWhenPatched(()=>r.addVercelAiProcessors(n))}}});n.instrumentVercelAi=s,n.vercelAIIntegration=l},116769,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(204780),o=e.r(976285),i=[">=4.0.0 <7"];class a extends r.InstrumentationBase{constructor(e={}){super("@sentry/instrumentation-openai",o.SDK_VERSION,e)}init(){return new r.InstrumentationNodeModuleDefinition("openai",i,this._patch.bind(this))}_patch(e){let t=e;return t=this._patchClient(t,"OpenAI"),t=this._patchClient(t,"AzureOpenAI")}_patchClient(e,t){let n=e[t];if(!n)return e;let r=this.getConfig(),i=function(...e){if(o._INTERNAL_shouldSkipAiProviderWrapping(o.OPENAI_INTEGRATION_NAME))return Reflect.construct(n,e);let t=Reflect.construct(n,e);return o.instrumentOpenAiClient(t,r)};for(let e of(Object.setPrototypeOf(i,n),Object.setPrototypeOf(i.prototype,n.prototype),Object.getOwnPropertyNames(n)))if(!["length","name","prototype"].includes(e)){let t=Object.getOwnPropertyDescriptor(n,e);t&&Object.defineProperty(i,e,t)}try{e[t]=i}catch{Object.defineProperty(e,t,{value:i,writable:!0,configurable:!0,enumerable:!0})}if(e.default===n)try{e.default=i}catch{Object.defineProperty(e,"default",{value:i,writable:!0,configurable:!0,enumerable:!0})}return e}}n.SentryOpenAiInstrumentation=a},758158,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(625331),i=e.r(116769),a=o.generateInstrumentOnce(r.OPENAI_INTEGRATION_NAME,e=>new i.SentryOpenAiInstrumentation(e)),s=r.defineIntegration((e={})=>({name:r.OPENAI_INTEGRATION_NAME,setupOnce(){a(e)}}));n.instrumentOpenAi=a,n.openAIIntegration=s},654826,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(204780),o=e.r(976285),i=[">=0.19.2 <1.0.0"];class a extends r.InstrumentationBase{constructor(e={}){super("@sentry/instrumentation-anthropic-ai",o.SDK_VERSION,e)}init(){return new r.InstrumentationNodeModuleDefinition("@anthropic-ai/sdk",i,this._patch.bind(this))}_patch(e){let t=e.Anthropic,n=this.getConfig(),r=function(...e){if(o._INTERNAL_shouldSkipAiProviderWrapping(o.ANTHROPIC_AI_INTEGRATION_NAME))return Reflect.construct(t,e);let r=Reflect.construct(t,e);return o.instrumentAnthropicAiClient(r,n)};for(let e of(Object.setPrototypeOf(r,t),Object.setPrototypeOf(r.prototype,t.prototype),Object.getOwnPropertyNames(t)))if(!["length","name","prototype"].includes(e)){let n=Object.getOwnPropertyDescriptor(t,e);n&&Object.defineProperty(r,e,n)}try{e.Anthropic=r}catch{Object.defineProperty(e,"Anthropic",{value:r,writable:!0,configurable:!0,enumerable:!0})}if(e.default===t)try{e.default=r}catch{Object.defineProperty(e,"default",{value:r,writable:!0,configurable:!0,enumerable:!0})}return e}}n.SentryAnthropicAiInstrumentation=a},718239,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(625331),i=e.r(654826),a=o.generateInstrumentOnce(r.ANTHROPIC_AI_INTEGRATION_NAME,e=>new i.SentryAnthropicAiInstrumentation(e));n.anthropicAIIntegration=r.defineIntegration((e={})=>({name:r.ANTHROPIC_AI_INTEGRATION_NAME,options:e,setupOnce(){a(e)}})),n.instrumentAnthropicAi=a},116463,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(204780),o=e.r(976285),i=[">=0.10.0 <2"];class a extends r.InstrumentationBase{constructor(e={}){super("@sentry/instrumentation-google-genai",o.SDK_VERSION,e)}init(){return new r.InstrumentationNodeModuleDefinition("@google/genai",i,e=>this._patch(e),e=>e,[new r.InstrumentationNodeModuleFile("@google/genai/dist/node/index.cjs",i,e=>this._patch(e),e=>e)])}_patch(e){let t=e.GoogleGenAI,n=this.getConfig();if("function"!=typeof t)return e;let r=function(...e){if(o._INTERNAL_shouldSkipAiProviderWrapping(o.GOOGLE_GENAI_INTEGRATION_NAME))return Reflect.construct(t,e);let r=Reflect.construct(t,e);return o.instrumentGoogleGenAIClient(r,n)};for(let e of(Object.setPrototypeOf(r,t),Object.setPrototypeOf(r.prototype,t.prototype),Object.getOwnPropertyNames(t)))if(!["length","name","prototype"].includes(e)){let n=Object.getOwnPropertyDescriptor(t,e);n&&Object.defineProperty(r,e,n)}return o.replaceExports(e,"GoogleGenAI",r),e}}n.SentryGoogleGenAiInstrumentation=a},880504,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(625331),i=e.r(116463),a=o.generateInstrumentOnce(r.GOOGLE_GENAI_INTEGRATION_NAME,e=>new i.SentryGoogleGenAiInstrumentation(e));n.googleGenAIIntegration=r.defineIntegration((e={})=>({name:r.GOOGLE_GENAI_INTEGRATION_NAME,setupOnce(){a(e)}})),n.instrumentGoogleGenAI=a},454883,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(204780),o=e.r(976285),i=[">=0.1.0 <2.0.0"];class a extends r.InstrumentationBase{constructor(e={}){super("@sentry/instrumentation-langchain",o.SDK_VERSION,e)}init(){let e=[];for(let t of["@langchain/anthropic","@langchain/openai","@langchain/google-genai","@langchain/mistralai","@langchain/google-vertexai","@langchain/groq"])e.push(new r.InstrumentationNodeModuleDefinition(t,i,this._patch.bind(this),e=>e,[new r.InstrumentationNodeModuleFile(`${t}/dist/index.cjs`,i,this._patch.bind(this),e=>e)]));return e.push(new r.InstrumentationNodeModuleDefinition("langchain",i,this._patch.bind(this),e=>e,[new r.InstrumentationNodeModuleFile("langchain/dist/chat_models/universal.cjs",i,this._patch.bind(this),e=>e)])),e}_patch(e){o._INTERNAL_skipAiProviderWrapping([o.OPENAI_INTEGRATION_NAME,o.ANTHROPIC_AI_INTEGRATION_NAME,o.GOOGLE_GENAI_INTEGRATION_NAME]);let t=o.createLangChainCallbackHandler(this.getConfig());return this._patchRunnableMethods(e,t),e}_patchRunnableMethods(e,t){let n=["ChatAnthropic","ChatOpenAI","ChatGoogleGenerativeAI","ChatMistralAI","ChatVertexAI","ChatGroq","ConfigurableModel"],r=Object.values(e.universal_exports??e).find(e=>"function"==typeof e&&n.includes(e.name));if(!r)return;let o=r.prototype;if(!o.__sentry_patched__)for(let e of(o.__sentry_patched__=!0,["invoke","stream","batch"])){let n=o[e];"function"==typeof n&&(o[e]=function(e,t,n){return new Proxy(e,{apply(e,n,r){var o,i;let a=r[1];(!a||"object"!=typeof a||Array.isArray(a))&&(a={},r[1]=a);let s=(o=a.callbacks,i=t,o?Array.isArray(o)?o.includes(i)?o:[...o,i]:"object"==typeof o?[o,i]:o:[i]);return a.callbacks=s,Reflect.apply(e,n,r)}})}(n,t))}}}n.SentryLangChainInstrumentation=a},62602,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(625331),i=e.r(454883),a=o.generateInstrumentOnce(r.LANGCHAIN_INTEGRATION_NAME,e=>new i.SentryLangChainInstrumentation(e)),s=r.defineIntegration((e={})=>({name:r.LANGCHAIN_INTEGRATION_NAME,setupOnce(){a(e)}}));n.instrumentLangChain=a,n.langChainIntegration=s},955749,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(204780),o=e.r(976285),i=[">=0.0.0 <2.0.0"];class a extends r.InstrumentationBase{constructor(e={}){super("@sentry/instrumentation-langgraph",o.SDK_VERSION,e)}init(){return new r.InstrumentationNodeModuleDefinition("@langchain/langgraph",i,this._patch.bind(this),e=>e,[new r.InstrumentationNodeModuleFile("@langchain/langgraph/dist/index.cjs",i,this._patch.bind(this),e=>e)])}_patch(e){return e.StateGraph&&"function"==typeof e.StateGraph&&o.instrumentLangGraph(e.StateGraph.prototype,this.getConfig()),e}}n.SentryLangGraphInstrumentation=a},521121,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(625331),i=e.r(955749),a=o.generateInstrumentOnce(r.LANGGRAPH_INTEGRATION_NAME,e=>new i.SentryLangGraphInstrumentation(e)),s=r.defineIntegration((e={})=>({name:r.LANGGRAPH_INTEGRATION_NAME,setupOnce(){a(e)}}));n.instrumentLangGraph=a,n.langGraphIntegration=s},477801,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=r.defineIntegration(e=>(r.isBrowser()||r.consoleSandbox(()=>{console.warn("The launchDarklyIntegration() can only be used in the browser.")}),{name:"LaunchDarkly"}));n.buildLaunchDarklyFlagUsedHandlerShim=function(){return r.isBrowser()||r.consoleSandbox(()=>{console.warn("The buildLaunchDarklyFlagUsedHandler() can only be used in the browser.")}),{name:"sentry-flag-auditor",type:"flag-used",synchronous:!0,method:()=>null}},n.launchDarklyIntegrationShim=o},222267,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=r.defineIntegration(e=>(r.isBrowser()||r.consoleSandbox(()=>{console.warn("The openFeatureIntegration() can only be used in the browser.")}),{name:"OpenFeature"}));n.OpenFeatureIntegrationHookShim=class{constructor(){r.isBrowser()||r.consoleSandbox(()=>{console.warn("The OpenFeatureIntegrationHook can only be used in the browser.")})}after(){}error(){}},n.openFeatureIntegrationShim=o},742355,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285);n.statsigIntegrationShim=r.defineIntegration(e=>(r.isBrowser()||r.consoleSandbox(()=>{console.warn("The statsigIntegration() can only be used in the browser.")}),{name:"Statsig"}))},954005,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285);n.unleashIntegrationShim=r.defineIntegration(e=>(r.isBrowser()||r.consoleSandbox(()=>{console.warn("The unleashIntegration() can only be used in the browser.")}),{name:"Unleash"}))},822525,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),n.growthbookIntegrationShim=e.r(976285).growthbookIntegration},395316,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(761095),o=e.r(357762),i=e.r(204780),a=e.r(808119);function s(e,t,n,r,o){var i,a,s,p,_,T,d,E;return l(e,n),t(e,"addDoc",(i=r,a=o,function(e){return function(t,n){let r=c(i,"addDoc",t);return a(r),u(r,()=>e(t,n))}})),t(e,"getDocs",(s=r,p=o,function(e){return function(t){let n=c(s,"getDocs",t);return p(n),u(n,()=>e(t))}})),t(e,"setDoc",(_=r,T=o,function(e){return function(t,n,r){let o=c(_,"setDoc",t.parent||t);return T(o),u(o,()=>void 0!==r?e(t,n,r):e(t,n))}})),t(e,"deleteDoc",(d=r,E=o,function(e){return function(t){let n=c(d,"deleteDoc",t.parent||t);return E(n),u(n,()=>e(t))}})),e}function l(e,t){for(let n of["addDoc","getDocs","setDoc","deleteDoc"])i.isWrapped(e[n])&&t(e,n);return e}function u(e,t){return o.context.with(o.trace.setSpan(o.context.active(),e),()=>i.safeExecuteInTheMiddle(()=>t(),t=>{t&&e.recordException(t),e.end()},!0))}function c(e,t,n){let r=e.startSpan(`${t} ${n.path}`,{kind:o.SpanKind.CLIENT});return function(e,t){let n=t.firestore.app,r=n.options,o=(t.firestore.toJSON()||{}).settings||{},i={[a.ATTR_DB_COLLECTION_NAME]:t.path,[a.ATTR_DB_NAMESPACE]:n.name,[a.ATTR_DB_SYSTEM_NAME]:"firebase.firestore","firebase.firestore.type":t.type,"firebase.firestore.options.projectId":r.projectId,"firebase.firestore.options.appId":r.appId,"firebase.firestore.options.messagingSenderId":r.messagingSenderId,"firebase.firestore.options.storageBucket":r.storageBucket},{address:s,port:l}=p(o);s&&(i[a.ATTR_SERVER_ADDRESS]=s),l&&(i[a.ATTR_SERVER_PORT]=l),e.setAttributes(i)}(r,n),r.setAttribute(a.ATTR_DB_OPERATION_NAME,t),r}function p(e){let t,n;if("string"==typeof e.host)if(e.host.startsWith("[")){if(e.host.endsWith("]"))t=e.host.replace(/^\[|\]$/g,"");else if(e.host.includes("]:")){let r=e.host.lastIndexOf(":");-1!==r&&(t=e.host.slice(1,r).replace(/^\[|\]$/g,""),n=e.host.slice(r+1))}}else if(r.isIPv6(e.host))t=e.host;else{let r=e.host.lastIndexOf(":");-1!==r?(t=e.host.slice(0,r),n=e.host.slice(r+1)):t=e.host}return{address:t,port:n?parseInt(n,10):void 0}}n.getPortAndAddress=p,n.patchFirestore=function(e,t,n,r,a){let u=()=>{},c=a.firestoreSpanCreationHook;"function"==typeof c&&(u=e=>{i.safeExecuteInTheMiddle(()=>c(e),e=>{e&&o.diag.error(e?.message)},!0)});let p=new i.InstrumentationNodeModuleDefinition("@firebase/firestore",t,t=>s(t,n,r,e,u));for(let o of["@firebase/firestore/dist/lite/index.node.cjs.js","@firebase/firestore/dist/lite/index.node.mjs.js","@firebase/firestore/dist/lite/index.rn.esm2017.js","@firebase/firestore/dist/lite/index.cjs.js"])p.files.push(new i.InstrumentationNodeModuleFile(o,t,t=>s(t,n,r,e,u),e=>l(e,r)));return p}},248461,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(357762),o=e.r(204780);function i(e,t,n){return function(o){return function(...i){let a="function"==typeof i[0]?i[0]:i[1],s="function"==typeof i[0]?void 0:i[0];if(!a)return o.call(this,...i);let l=async function(...o){let i=process.env.FUNCTION_TARGET||process.env.K_SERVICE||"unknown",s=e.startSpan(`firebase.function.${n}`,{kind:r.SpanKind.SERVER}),l={"faas.name":i,"faas.trigger":n,"faas.provider":"firebase"};return process.env.GCLOUD_PROJECT&&(l["cloud.project_id"]=process.env.GCLOUD_PROJECT),process.env.EVENTARC_CLOUD_EVENT_SOURCE&&(l["cloud.event_source"]=process.env.EVENTARC_CLOUD_EVENT_SOURCE),s.setAttributes(l),t?.requestHook?.(s),r.context.with(r.trace.setSpan(r.context.active(),s),async()=>{let e,n;try{n=await a.apply(this,o)}catch(t){e=t}if(t?.responseHook?.(s,e),e&&s.recordException(e),s.end(),e)throw await t?.errorHook?.(s,e),e;return n})};return s?o.call(this,s,l):o.call(this,l)}}}function a(e,t){for(let n of["onSchedule","onRequest","onCall","onObjectFinalized","onObjectArchived","onObjectDeleted","onObjectMetadataUpdated","onDocumentCreated","onDocumentUpdated","onDocumentDeleted","onDocumentWritten","onDocumentCreatedWithAuthContext","onDocumentUpdatedWithAuthContext","onDocumentDeletedWithAuthContext","onDocumentWrittenWithAuthContext"])o.isWrapped(e[n])&&t(e,n);return e}n.patchFunctions=function(e,t,n,s,l){let u=()=>{},c=()=>{},p=l.functions?.errorHook,_=l.functions?.requestHook,T=l.functions?.responseHook;"function"==typeof T&&(c=(e,t)=>{o.safeExecuteInTheMiddle(()=>T(e,t),e=>{e&&r.diag.error(e?.message)},!0)}),"function"==typeof _&&(u=e=>{o.safeExecuteInTheMiddle(()=>_(e),e=>{e&&r.diag.error(e?.message)},!0)});let d=new o.InstrumentationNodeModuleDefinition("firebase-functions",t);return[{name:"firebase-functions/lib/v2/providers/https.js",triggerType:"function"},{name:"firebase-functions/lib/v2/providers/firestore.js",triggerType:"firestore"},{name:"firebase-functions/lib/v2/providers/scheduler.js",triggerType:"scheduler"},{name:"firebase-functions/lib/v2/storage.js",triggerType:"storage"}].forEach(({name:r,triggerType:l})=>{d.files.push(new o.InstrumentationNodeModuleFile(r,t,t=>(function(e,t,n,r,o,s){switch(a(e,n),s){case"function":t(e,"onRequest",i(r,o,"http.request")),t(e,"onCall",i(r,o,"http.call"));break;case"firestore":t(e,"onDocumentCreated",i(r,o,"firestore.document.created")),t(e,"onDocumentUpdated",i(r,o,"firestore.document.updated")),t(e,"onDocumentDeleted",i(r,o,"firestore.document.deleted")),t(e,"onDocumentWritten",i(r,o,"firestore.document.written")),t(e,"onDocumentCreatedWithAuthContext",i(r,o,"firestore.document.created")),t(e,"onDocumentUpdatedWithAuthContext",i(r,o,"firestore.document.updated")),t(e,"onDocumentDeletedWithAuthContext",i(r,o,"firestore.document.deleted")),t(e,"onDocumentWrittenWithAuthContext",i(r,o,"firestore.document.written"));break;case"scheduler":t(e,"onSchedule",i(r,o,"scheduler.scheduled"));break;case"storage":t(e,"onObjectFinalized",i(r,o,"storage.object.finalized")),t(e,"onObjectArchived",i(r,o,"storage.object.archived")),t(e,"onObjectDeleted",i(r,o,"storage.object.deleted")),t(e,"onObjectMetadataUpdated",i(r,o,"storage.object.metadataUpdated"))}return e})(t,n,s,e,{requestHook:u,responseHook:c,errorHook:p},l),e=>a(e,s)))}),d},n.patchV2Functions=i},516771,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(204780),o=e.r(976285),i=e.r(395316),a=e.r(248461),s={},l=[">=3.0.0 <5"],u=[">=6.0.0 <7"];class c extends r.InstrumentationBase{constructor(e=s){super("@sentry/instrumentation-firebase",o.SDK_VERSION,e)}setConfig(e={}){super.setConfig({...s,...e})}init(){let e=[];return e.push(i.patchFirestore(this.tracer,l,this._wrap,this._unwrap,this.getConfig())),e.push(a.patchFunctions(this.tracer,u,this._wrap,this._unwrap,this.getConfig())),e}}n.FirebaseInstrumentation=c},146523,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(625331),i=e.r(516771),a="Firebase",s={firestoreSpanCreationHook:e=>{o.addOriginToSpan(e,"auto.firebase.otel.firestore"),e.setAttribute(r.SEMANTIC_ATTRIBUTE_SENTRY_OP,"db.query")},functions:{requestHook:e=>{o.addOriginToSpan(e,"auto.firebase.otel.functions"),e.setAttribute(r.SEMANTIC_ATTRIBUTE_SENTRY_OP,"http.request")},errorHook:async(e,t)=>{t&&(r.captureException(t,{mechanism:{type:"auto.firebase.otel.functions",handled:!1}}),await r.flush(2e3))}}},l=o.generateInstrumentOnce(a,()=>new i.FirebaseInstrumentation(s));n.firebaseIntegration=r.defineIntegration(()=>({name:a,setupOnce(){l()}})),n.instrumentFirebase=l},273273,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(738190),o=e.r(855902),i=e.r(718239),a=e.r(953027),s=e.r(429440),l=e.r(602878),u=e.r(146523),c=e.r(979396),p=e.r(880504),_=e.r(176571),T=e.r(376169),d=e.r(688750),E=e.r(934925),S=e.r(86294),A=e.r(62602),g=e.r(521121),m=e.r(888804),h=e.r(143655),R=e.r(780216),f=e.r(473485),N=e.r(625680),I=e.r(758158),O=e.r(832719),y=e.r(19194),b=e.r(547683),C=e.r(978486),M=e.r(946603),P=e.r(834440);n.getAutoPerformanceIntegrations=function(){return[s.expressIntegration(),l.fastifyIntegration(),_.graphqlIntegration(),d.honoIntegration(),h.mongoIntegration(),R.mongooseIntegration(),f.mysqlIntegration(),N.mysql2Integration(),C.redisIntegration(),O.postgresIntegration(),b.prismaIntegration(),T.hapiIntegration(),S.koaIntegration(),a.connectIntegration(),M.tediousIntegration(),c.genericPoolIntegration(),E.kafkaIntegration(),o.amqplibIntegration(),m.lruMemoizerIntegration(),A.langChainIntegration(),g.langGraphIntegration(),P.vercelAIIntegration(),I.openAIIntegration(),i.anthropicAIIntegration(),p.googleGenAIIntegration(),y.postgresJsIntegration(),u.firebaseIntegration()]},n.getOpenTelemetryInstrumentationToPreload=function(){return[r.instrumentSentryHttp,r.instrumentOtelHttp,s.instrumentExpress,a.instrumentConnect,l.instrumentFastify,l.instrumentFastifyV3,T.instrumentHapi,d.instrumentHono,E.instrumentKafka,S.instrumentKoa,m.instrumentLruMemoizer,h.instrumentMongo,R.instrumentMongoose,f.instrumentMysql,N.instrumentMysql2,O.instrumentPostgres,T.instrumentHapi,_.instrumentGraphql,C.instrumentRedis,M.instrumentTedious,c.instrumentGenericPool,o.instrumentAmqplib,A.instrumentLangChain,P.instrumentVercelAi,I.instrumentOpenAi,y.instrumentPostgresJs,u.instrumentFirebase,i.instrumentAnthropicAi,p.instrumentGoogleGenAI,g.instrumentLangGraph]}},1631,e=>{"use strict";let t;e.s([],827962),e.i(827962);var n=e.i(978116),r=e.i(670496),o=e.i(606733),i=e.i(775332);let a=new class{_MAX_LENGTH=255;_COMMA_SEPARATOR=",";_LABEL_KEY_VALUE_SPLITTER="=";detect(e){let t={},r=(0,i.getStringFromEnv)("OTEL_RESOURCE_ATTRIBUTES"),a=(0,i.getStringFromEnv)("OTEL_SERVICE_NAME");if(r)try{let e=this._parseResourceAttributes(r);Object.assign(t,e)}catch(e){n.diag.debug(`EnvDetector failed: ${e instanceof Error?e.message:e}`)}return a&&(t[o.ATTR_SERVICE_NAME]=a),{attributes:t}}_parseResourceAttributes(e){if(!e)return{};let t={};for(let n of e.split(this._COMMA_SEPARATOR)){let e,r,o=n.split(this._LABEL_KEY_VALUE_SPLITTER);if(2!==o.length)throw Error(`Invalid format for OTEL_RESOURCE_ATTRIBUTES: "${n}". Expected format: key=value. The ',' and '=' characters must be percent-encoded in keys and values.`);let[i,a]=o,s=i.trim(),l=a.trim();if(0===s.length)throw Error(`Invalid OTEL_RESOURCE_ATTRIBUTES: empty attribute key in "${n}".`);try{e=decodeURIComponent(s),r=decodeURIComponent(l)}catch(e){throw Error(`Failed to percent-decode OTEL_RESOURCE_ATTRIBUTES entry "${n}": ${e instanceof Error?e.message:e}`)}if(e.length>this._MAX_LENGTH)throw Error(`Attribute key exceeds the maximum length of ${this._MAX_LENGTH} characters: "${e}".`);if(r.length>this._MAX_LENGTH)throw Error(`Attribute value exceeds the maximum length of ${this._MAX_LENGTH} characters for key "${e}".`);t[e]=r}return t}};var s=e.i(446786),l=e.i(605365);async function u(){if(!t)switch(l.platform){case"darwin":t=(await e.A(57998)).getMachineId;break;case"linux":t=(await e.A(944291)).getMachineId;break;case"freebsd":t=(await e.A(822215)).getMachineId;break;case"win32":t=(await e.A(497519)).getMachineId;break;default:t=(await e.A(418670)).getMachineId}return t()}let c=new class{detect(e){return{attributes:{"host.name":(0,s.hostname)(),"host.arch":(e=>{switch(e){case"arm":return"arm32";case"ppc":return"ppc32";case"x64":return"amd64";default:return e}})((0,s.arch)()),"host.id":u()}}}},p=new class{detect(e){return{attributes:{"os.type":(e=>{switch(e){case"sunos":return"solaris";case"win32":return"windows";default:return e}})((0,s.platform)()),"os.version":(0,s.release)()}}}},_=new class{detect(e){let t={"process.pid":process.pid,"process.executable.name":process.title,"process.executable.path":process.execPath,"process.command_args":[process.argv[0],...process.execArgv,...process.argv.slice(1)],"process.runtime.version":process.versions.node,"process.runtime.name":"nodejs","process.runtime.description":"Node.js"};process.argv.length>1&&(t["process.command"]=process.argv[1]);try{let e=s.userInfo();t["process.owner"]=e.username}catch(e){n.diag.debug(`error obtaining process owner: ${e}`)}return{attributes:t}}};var T=e.i(254799);let d=new class{detect(e){return{attributes:{"service.instance.id":(0,T.randomUUID)()}}}};var E=e.i(581453);e.s(["defaultResource",()=>r.defaultResource,"defaultServiceName",()=>E.defaultServiceName,"detectResources",0,(e={})=>(e.detectors||[]).map(t=>{try{let o=(0,r.resourceFromDetectedResource)(t.detect(e));return n.diag.debug(`${t.constructor.name} found resource.`,o),o}catch(e){return n.diag.debug(`${t.constructor.name} failed: ${e.message}`),(0,r.emptyResource)()}}).reduce((e,t)=>e.merge(t),(0,r.emptyResource)()),"emptyResource",()=>r.emptyResource,"envDetector",0,a,"hostDetector",0,c,"osDetector",0,p,"processDetector",0,_,"resourceFromAttributes",()=>r.resourceFromAttributes,"serviceInstanceIdDetector",0,d],1631)},815084,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(357762),o=e.r(1631),i=e.r(148861),a=e.r(808119),s=e.r(976285),l=e.r(625331),u=e.r(779607),c=e.r(866779),p=e.r(273273);function _(e,t={}){let n=new i.BasicTracerProvider({sampler:new u.SentrySampler(e),resource:o.defaultResource().merge(o.resourceFromAttributes({[a.ATTR_SERVICE_NAME]:"node",[a.SEMRESATTRS_SERVICE_NAMESPACE]:"sentry",[a.ATTR_SERVICE_VERSION]:s.SDK_VERSION})),forceFlushTimeoutMillis:500,spanProcessors:[new u.SentrySpanProcessor({timeout:T(e.getOptions().maxSpanWaitDuration)}),...t.spanProcessors||[]]});r.trace.setGlobalTracerProvider(n),r.propagation.setGlobalPropagator(new u.SentryPropagator);let c=new l.SentryContextManager;return r.context.setGlobalContextManager(c),[n,c.getAsyncLocalStorageLookup()]}function T(e){if(null!=e){if(e>1e6)return c.DEBUG_BUILD&&s.debug.warn("`maxSpanWaitDuration` is too high, using the maximum value of 1000000"),1e6;if(e<=0||Number.isNaN(e)){c.DEBUG_BUILD&&s.debug.warn("`maxSpanWaitDuration` must be a positive number, using default value instead.");return}return e}}n._clampSpanProcessorTimeout=T,n.initOpenTelemetry=function(e,t={}){e.getOptions().debug&&l.setupOpenTelemetryLogger();let[n,r]=_(e,t);e.traceProvider=n,e.asyncLocalStorageLookup=r},n.preloadOpenTelemetry=function(e={}){var t;let n,{debug:r}=e;r&&s.debug.enable(),l.initializeEsmLoader(),(t=e.integrations,n=p.getOpenTelemetryInstrumentationToPreload(),t?n.filter(e=>{let n=e.id;return t.some(e=>n===e||n.startsWith(`${e}.`))}):n).forEach(e=>{e(),r&&s.debug.log(`[Sentry] Preloaded ${e.id} instrumentation`)})},n.setupOtel=_},645105,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(625331),i=e.r(738190),a=e.r(354258),s=e.r(273273),l=e.r(815084);function u(){return o.getDefaultIntegrations().filter(e=>"Http"!==e.name&&"NodeFetch"!==e.name).concat(i.httpIntegration(),a.nativeNodeFetchIntegration())}function c(e){return[...u(),...r.hasSpansEnabled(e)?s.getAutoPerformanceIntegrations():[]]}function p(e={},t){r.applySdkMetadata(e,"node");let n=o.init({...e,defaultIntegrations:e.defaultIntegrations??t(e)});return n&&!e.skipOpenTelemetrySetup&&(l.initOpenTelemetry(n,{spanProcessors:e.openTelemetrySpanProcessors}),o.validateOpenTelemetrySetup()),n}n.getDefaultIntegrations=c,n.getDefaultIntegrationsWithoutPerformance=u,n.init=function(e={}){return p(e,c)},n.initWithoutDefaultIntegrations=function(e={}){return p(e,()=>[])}},96892,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(738190),o=e.r(354258),i=e.r(174710),a=e.r(429440),s=e.r(602878),l=e.r(176571),u=e.r(934925),c=e.r(888804),p=e.r(143655),_=e.r(780216),T=e.r(473485),d=e.r(625680),E=e.r(978486),S=e.r(832719),A=e.r(19194),g=e.r(547683),m=e.r(376169),h=e.r(688750),R=e.r(86294),f=e.r(953027),N=e.r(823099),I=e.r(946603),O=e.r(979396),y=e.r(363082),b=e.r(855902),C=e.r(834440),M=e.r(758158),P=e.r(718239),L=e.r(880504),v=e.r(62602),U=e.r(521121),D=e.r(477801),G=e.r(222267),B=e.r(742355),x=e.r(954005),V=e.r(822525),w=e.r(146523),H=e.r(645105),k=e.r(815084),Y=e.r(273273),j=e.r(779607),F=e.r(976285),W=e.r(625331);n.httpIntegration=r.httpIntegration,n.nativeNodeFetchIntegration=o.nativeNodeFetchIntegration,n.fsIntegration=i.fsIntegration,n.expressErrorHandler=a.expressErrorHandler,n.expressIntegration=a.expressIntegration,n.setupExpressErrorHandler=a.setupExpressErrorHandler,n.fastifyIntegration=s.fastifyIntegration,n.setupFastifyErrorHandler=s.setupFastifyErrorHandler,n.graphqlIntegration=l.graphqlIntegration,n.kafkaIntegration=u.kafkaIntegration,n.lruMemoizerIntegration=c.lruMemoizerIntegration,n.mongoIntegration=p.mongoIntegration,n.mongooseIntegration=_.mongooseIntegration,n.mysqlIntegration=T.mysqlIntegration,n.mysql2Integration=d.mysql2Integration,n.redisIntegration=E.redisIntegration,n.postgresIntegration=S.postgresIntegration,n.postgresJsIntegration=A.postgresJsIntegration,n.prismaIntegration=g.prismaIntegration,n.hapiIntegration=m.hapiIntegration,n.setupHapiErrorHandler=m.setupHapiErrorHandler,n.honoIntegration=h.honoIntegration,n.setupHonoErrorHandler=h.setupHonoErrorHandler,n.koaIntegration=R.koaIntegration,n.setupKoaErrorHandler=R.setupKoaErrorHandler,n.connectIntegration=f.connectIntegration,n.setupConnectErrorHandler=f.setupConnectErrorHandler,n.knexIntegration=N.knexIntegration,n.tediousIntegration=I.tediousIntegration,n.genericPoolIntegration=O.genericPoolIntegration,n.dataloaderIntegration=y.dataloaderIntegration,n.amqplibIntegration=b.amqplibIntegration,n.vercelAIIntegration=C.vercelAIIntegration,n.openAIIntegration=M.openAIIntegration,n.anthropicAIIntegration=P.anthropicAIIntegration,n.googleGenAIIntegration=L.googleGenAIIntegration,n.langChainIntegration=v.langChainIntegration,n.langGraphIntegration=U.langGraphIntegration,n.buildLaunchDarklyFlagUsedHandler=D.buildLaunchDarklyFlagUsedHandlerShim,n.launchDarklyIntegration=D.launchDarklyIntegrationShim,n.OpenFeatureIntegrationHook=G.OpenFeatureIntegrationHookShim,n.openFeatureIntegration=G.openFeatureIntegrationShim,n.statsigIntegration=B.statsigIntegrationShim,n.unleashIntegration=x.unleashIntegrationShim,n.growthbookIntegration=V.growthbookIntegrationShim,n.firebaseIntegration=w.firebaseIntegration,n.getDefaultIntegrations=H.getDefaultIntegrations,n.getDefaultIntegrationsWithoutPerformance=H.getDefaultIntegrationsWithoutPerformance,n.init=H.init,n.initWithoutDefaultIntegrations=H.initWithoutDefaultIntegrations,n.initOpenTelemetry=k.initOpenTelemetry,n.preloadOpenTelemetry=k.preloadOpenTelemetry,n.getAutoPerformanceIntegrations=Y.getAutoPerformanceIntegrations,n.setNodeAsyncContextStrategy=j.setOpenTelemetryContextAsyncContextStrategy,n.SDK_VERSION=F.SDK_VERSION,n.SEMANTIC_ATTRIBUTE_SENTRY_OP=F.SEMANTIC_ATTRIBUTE_SENTRY_OP,n.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN=F.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,n.SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE=F.SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE,n.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE=F.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,n.Scope=F.Scope,n.addBreadcrumb=F.addBreadcrumb,n.addEventProcessor=F.addEventProcessor,n.addIntegration=F.addIntegration,n.captureCheckIn=F.captureCheckIn,n.captureConsoleIntegration=F.captureConsoleIntegration,n.captureEvent=F.captureEvent,n.captureException=F.captureException,n.captureFeedback=F.captureFeedback,n.captureMessage=F.captureMessage,n.captureSession=F.captureSession,n.close=F.close,n.consoleIntegration=F.consoleIntegration,n.consoleLoggingIntegration=F.consoleLoggingIntegration,n.continueTrace=F.continueTrace,n.createConsolaReporter=F.createConsolaReporter,n.createLangChainCallbackHandler=F.createLangChainCallbackHandler,n.createTransport=F.createTransport,n.dedupeIntegration=F.dedupeIntegration,n.endSession=F.endSession,n.eventFiltersIntegration=F.eventFiltersIntegration,n.extraErrorDataIntegration=F.extraErrorDataIntegration,n.featureFlagsIntegration=F.featureFlagsIntegration,n.flush=F.flush,n.functionToStringIntegration=F.functionToStringIntegration,n.getActiveSpan=F.getActiveSpan,n.getClient=F.getClient,n.getCurrentScope=F.getCurrentScope,n.getGlobalScope=F.getGlobalScope,n.getIsolationScope=F.getIsolationScope,n.getRootSpan=F.getRootSpan,n.getSpanDescendants=F.getSpanDescendants,n.getSpanStatusFromHttpCode=F.getSpanStatusFromHttpCode,n.getTraceData=F.getTraceData,n.getTraceMetaTags=F.getTraceMetaTags,n.httpHeadersToSpanAttributes=F.httpHeadersToSpanAttributes,n.inboundFiltersIntegration=F.inboundFiltersIntegration,n.instrumentAnthropicAiClient=F.instrumentAnthropicAiClient,n.instrumentGoogleGenAIClient=F.instrumentGoogleGenAIClient,n.instrumentLangGraph=F.instrumentLangGraph,n.instrumentOpenAiClient=F.instrumentOpenAiClient,n.instrumentStateGraphCompile=F.instrumentStateGraphCompile,n.instrumentSupabaseClient=F.instrumentSupabaseClient,n.isEnabled=F.isEnabled,n.isInitialized=F.isInitialized,n.lastEventId=F.lastEventId,n.linkedErrorsIntegration=F.linkedErrorsIntegration,n.parameterize=F.parameterize,n.profiler=F.profiler,n.requestDataIntegration=F.requestDataIntegration,n.rewriteFramesIntegration=F.rewriteFramesIntegration,n.setContext=F.setContext,n.setConversationId=F.setConversationId,n.setCurrentClient=F.setCurrentClient,n.setExtra=F.setExtra,n.setExtras=F.setExtras,n.setHttpStatus=F.setHttpStatus,n.setMeasurement=F.setMeasurement,n.setTag=F.setTag,n.setTags=F.setTags,n.setUser=F.setUser,n.spanToBaggageHeader=F.spanToBaggageHeader,n.spanToJSON=F.spanToJSON,n.spanToTraceHeader=F.spanToTraceHeader,n.startInactiveSpan=F.startInactiveSpan,n.startNewTrace=F.startNewTrace,n.startSession=F.startSession,n.startSpan=F.startSpan,n.startSpanManual=F.startSpanManual,n.supabaseIntegration=F.supabaseIntegration,n.suppressTracing=F.suppressTracing,n.trpcMiddleware=F.trpcMiddleware,n.updateSpanName=F.updateSpanName,n.winterCGHeadersToDict=F.winterCGHeadersToDict,n.withActiveSpan=F.withActiveSpan,n.withIsolationScope=F.withIsolationScope,n.withMonitor=F.withMonitor,n.withScope=F.withScope,n.wrapMcpServerWithSentry=F.wrapMcpServerWithSentry,n.zodErrorsIntegration=F.zodErrorsIntegration,n.NODE_VERSION=W.NODE_VERSION,n.NodeClient=W.NodeClient,n.SentryContextManager=W.SentryContextManager,n.anrIntegration=W.anrIntegration,n.childProcessIntegration=W.childProcessIntegration,n.contextLinesIntegration=W.contextLinesIntegration,n.createGetModuleFromFilename=W.createGetModuleFromFilename,n.createSentryWinstonTransport=W.createSentryWinstonTransport,n.cron=W.cron,n.defaultStackParser=W.defaultStackParser,n.disableAnrDetectionForCallback=W.disableAnrDetectionForCallback,n.generateInstrumentOnce=W.generateInstrumentOnce,n.getSentryRelease=W.getSentryRelease,n.httpServerIntegration=W.httpServerIntegration,n.httpServerSpansIntegration=W.httpServerSpansIntegration,n.localVariablesIntegration=W.localVariablesIntegration,n.logger=W.logger,n.makeNodeTransport=W.makeNodeTransport,n.metrics=W.metrics,n.modulesIntegration=W.modulesIntegration,n.nodeContextIntegration=W.nodeContextIntegration,n.nodeRuntimeMetricsIntegration=W.nodeRuntimeMetricsIntegration,n.onUncaughtExceptionIntegration=W.onUncaughtExceptionIntegration,n.onUnhandledRejectionIntegration=W.onUnhandledRejectionIntegration,n.pinoIntegration=W.pinoIntegration,n.processSessionIntegration=W.processSessionIntegration,n.spotlightIntegration=W.spotlightIntegration,n.systemErrorIntegration=W.systemErrorIntegration,n.validateOpenTelemetrySetup=W.validateOpenTelemetrySetup},820456,(e,t,n)=>{let r;Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let o=e.r(522734),i=e.r(814747),a=null,s=null;n.createRouteManifest=function(e){let t;if(e?.appDirPath)t=e.appDirPath;else{let e=process.cwd(),n=i.join(e,"app"),r=i.join(e,"src","app");o.existsSync(n)&&o.lstatSync(n).isDirectory()?t=n:o.existsSync(r)&&o.lstatSync(r).isDirectory()&&(t=r)}if(!t)return{isrRoutes:[],dynamicRoutes:[],staticRoutes:[]};if(a&&s===t&&r===e?.includeRouteGroups)return a;let{dynamicRoutes:n,staticRoutes:l,isrRoutes:u}=function e(t,n="",r=!1){let a=[],s=[],l=[];try{let c=o.readdirSync(t,{withFileTypes:!0}),p=c.find(e=>{var t;return t=e.name,"page.tsx"===t||"page.jsx"===t||"page.ts"===t||"page.js"===t});if(p){let e=r?n||"/":(n||"/").replace(/\/\((?=[^)/]*\))[^)/]+\)/g,""),u=e.includes(":"),c=i.join(t,p.name);if(function(e){try{let t=o.readFileSync(e,"utf8");return/export\s+(async\s+)?function\s+generateStaticParams|export\s+const\s+generateStaticParams/.test(t)}catch{return!1}}(c)&&l.push(e),u){let{regex:t,paramNames:n,hasOptionalPrefix:r}=function(e){let t,n,r=e.split("/").filter(Boolean),o=[],i=[],a=!1;for(let e of r)if(e.startsWith(":")){let t=e.substring(1);if(t.endsWith("*?")){let e=t.slice(0,-2);i.push(e),a=!0}else if(t.endsWith("*")){let e=t.slice(0,-1);i.push(e),o.push("(.+)")}else i.push(t),o.push("([^/]+)")}else o.push(e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"));if(a)if(0===o.length)n="^/(.*)$";else{let e=o.join("/");n=`^/${e}(?:/(.*))?$`}else n=`^/${o.join("/")}$`;return{regex:n,paramNames:i,hasOptionalPrefix:(t=i[0],void 0!==t&&("locale"===t||"lang"===t||"language"===t))}}(e);a.push({path:e,regex:t,paramNames:n,hasOptionalPrefix:r})}else s.push({path:e})}for(let o of c)if(o.isDirectory()){var u;let c,p=i.join(t,o.name),_=o.name.startsWith("[")&&o.name.endsWith("]"),T=(c=(u=o.name).startsWith("(")&&u.endsWith(")")?r?o.name:"":_?function(e){if(e.startsWith("[[...")&&e.endsWith("]]")){let t=e.slice(5,-2);return`:${t}*?`}if(e.startsWith("[...")&&e.endsWith("]")){let t=e.slice(4,-1);return`:${t}*`}return`:${e.slice(1,-1)}`}(o.name):o.name)?`${n}/${c}`:n,d=e(p,T,r);a.push(...d.dynamicRoutes),s.push(...d.staticRoutes),l.push(...d.isrRoutes)}}catch(e){console.warn("Error building route manifest:",e)}return{dynamicRoutes:a,staticRoutes:s,isrRoutes:l}}(t,e?.basePath,e?.includeRouteGroups),c={dynamicRoutes:n,staticRoutes:l,isrRoutes:u};return a=c,s=t,r=e?.includeRouteGroups,c}},382226,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285);n.resolveTunnelRoute=function(e){let t;if(process.env.__SENTRY_TUNNEL_ROUTE__)return process.env.__SENTRY_TUNNEL_ROUTE__;let n="string"==typeof e?e:(t=r._INTERNAL_safeMathRandom().toString(36).substring(2,10),`/${t}`);return n&&(process.env.__SENTRY_TUNNEL_ROUTE__=n),n},n.setUpTunnelRewriteRules=function(e,t){let n=e.rewrites,r=process.env._SENTRY_TUNNEL_DESTINATION_OVERRIDE,o=r||"https://o:orgid.ingest.sentry.io/api/:projectid/envelope/?hsts=0",i=r||"https://o:orgid.ingest.:region.sentry.io/api/:projectid/envelope/?hsts=0";e.rewrites=async(...e)=>{let r={source:`${t}(/?)`,has:[{type:"query",key:"o",value:"(?\\d*)"},{type:"query",key:"p",value:"(?\\d*)"}],destination:o},a=[{source:`${t}(/?)`,has:[{type:"query",key:"o",value:"(?\\d*)"},{type:"query",key:"p",value:"(?\\d*)"},{type:"query",key:"r",value:"(?[a-z]{2})"}],destination:i},r];if("function"!=typeof n)return a;let s=await n(...e);return Array.isArray(s)?[...a,...s]:{...s,beforeFiles:[...a,...s.beforeFiles||[]]}}}},586605,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(96892),i=e.r(522734),a=e.r(814747),s=e.r(820456),l=e.r(690268),u=e.r(934474),c=e.r(382226),p=!1,_=!1;function T(e,t){if(!t)return e;let n=e=>"function"==typeof t?t(e):t.some(t=>r.isMatchingPattern(e,t));return{staticRoutes:e.staticRoutes.filter(e=>!n(e.path)),dynamicRoutes:e.dynamicRoutes.filter(e=>!n(e.path)),isrRoutes:e.isrRoutes.filter(e=>!n(e))}}n.filterRouteManifest=T,n.getNextMajor=function(e){if(!e)return;let{major:t}=r.parseSemver(e);return t},n.maybeCreateRouteManifest=function(e,t){if(t.disableManifestInjection&&console.warn("[@sentry/nextjs] The `disableManifestInjection` option is deprecated. Use `routeManifestInjection: false` instead."),!1!==t.routeManifestInjection&&(void 0!==t.routeManifestInjection||!t.disableManifestInjection))return T(s.createRouteManifest({basePath:e.basePath}),t.routeManifestInjection?.exclude)},n.maybeGetVercelCronsConfig=function(e){let t={config:void 0,strategy:void 0};if(!process.env.VERCEL)return t;let n=e._experimental?.vercelCronsMonitoring===!0,o=e.webpack?.automaticVercelMonitors===!0;if(!n&&!o)return t;let s=function(){try{let e=a.join(process.cwd(),"vercel.json"),t=i.readFileSync(e,"utf8"),n=JSON.parse(t).crons;if(n&&Array.isArray(n)&&n.length>0)return n;return}catch(e){if("ENOENT"===e.code)return;r.debug.error("[@sentry/nextjs] Failed to read vercel.json for automatic cron job monitoring instrumentation",e);return}}();return s&&(t.config=s,n&&o?(r.debug.warn("[@sentry/nextjs] Both '_experimental.vercelCronsMonitoring' and 'webpack.automaticVercelMonitors' are enabled. Using the new span-based approach from '_experimental.vercelCronsMonitoring'. You can remove 'webpack.automaticVercelMonitors' from your config."),t.strategy="spans"):n?(r.debug.log("[@sentry/nextjs] Creating Sentry cron monitors for your Vercel Cron Jobs using span-based instrumentation."),t.strategy="spans"):(r.debug.log("[@sentry/nextjs] Creating Sentry cron monitors for your Vercel Cron Jobs. You can disable this feature by setting the 'automaticVercelMonitors' option to false in your Next.js config."),t.strategy="wrapper")),t},n.maybeSetClientTraceMetadataOption=function(e,t){if(t){let{major:n,minor:o}=r.parseSemver(t);void 0!==n&&void 0!==o&&(n>=15||14===n&&o>=3)&&(e.experimental=e.experimental||{},e.experimental.clientTraceMetadata=["baggage","sentry-trace",...e.experimental?.clientTraceMetadata||[]])}else console.log("[@sentry/nextjs] The Sentry SDK was not able to determine your Next.js version. If you are using Next.js version 15 or greater, please add `experimental.clientTraceMetadata: ['sentry-trace', 'baggage']` to your Next.js config to enable pageload tracing for App Router.")},n.maybeSetInstrumentationHookOption=function(e,t){if(t&&l.requiresInstrumentationHook(t)){e.experimental?.instrumentationHook===!1&&console.warn("[@sentry/nextjs] You turned off the `experimental.instrumentationHook` option. Note that Sentry will not be initialized if you did not set it up inside `instrumentation.(js|ts)`."),e.experimental={instrumentationHook:!0,...e.experimental};return}t||(e.experimental&&"instrumentationHook"in e.experimental?!1===e.experimental.instrumentationHook&&console.warn("[@sentry/nextjs] You set `experimental.instrumentationHook` to `false`. If you are using Next.js version 15 or greater, you can remove that option. If you are using Next.js version 14 or lower, you need to set `experimental.instrumentationHook` in your `next.config.(js|mjs)` to `true` for the SDK to be properly initialized in combination with `instrumentation.(js|ts)`."):(console.log("[@sentry/nextjs] The Sentry SDK was not able to determine your Next.js version. If you are using Next.js version 15 or greater, Next.js will probably show you a warning about the `experimental.instrumentationHook` being set. To silence Next.js' warning, explicitly set the `experimental.instrumentationHook` option in your `next.config.(js|mjs|ts)` to `undefined`. If you are on Next.js version 14 or lower, you can silence this particular warning by explicitly setting the `experimental.instrumentationHook` option in your `next.config.(js|mjs)` to `true`."),e.experimental={instrumentationHook:!0,...e.experimental}))},n.maybeSetUpTunnelRouteRewriteRules=function(e,t){if(!t.tunnelRoute)return;if("export"===e.output){p||(p=!0,console.warn("[@sentry/nextjs] The Sentry Next.js SDK `tunnelRoute` option will not work in combination with Next.js static exports. The `tunnelRoute` option uses server-side features that cannot be accessed in export mode. If you still want to tunnel Sentry events, set up your own tunnel: https://docs.sentry.io/platforms/javascript/troubleshooting/#using-the-tunnel-option"));return}let n=c.resolveTunnelRoute(t.tunnelRoute);t.tunnelRoute=n||void 0,c.setUpTunnelRewriteRules(e,n)},n.resolveReleaseName=function(e){return e.release?.create!==!1?e.release?.name??o.getSentryRelease()??u.getGitRevision():e.release?.name},n.shouldReturnEarlyInExperimentalBuildMode=function(){return!!process.argv.includes("--experimental-build-mode")&&(_||(_=!0,console.warn("[@sentry/nextjs] The Sentry Next.js SDK does not currently fully support next build --experimental-build-mode")),process.argv.includes("generate"))},n.warnIfMissingOnRouterTransitionStartHook=function(e){let t=u.getInstrumentationClientFileContents();void 0===t||t.includes("onRouterTransitionStart")||e.suppressOnRouterTransitionStartWarning||console.warn("[@sentry/nextjs] ACTION REQUIRED: To instrument navigations, the Sentry SDK requires you to export an `onRouterTransitionStart` hook from your `instrumentation-client.(js|ts)` file. You can do so by adding `export const onRouterTransitionStart = Sentry.captureRouterTransitionStart;` to the file.")}},766776,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(690268),o=e.r(934474),i=e.r(279876),a=e.r(780663),s=e.r(586605);n.getFinalConfigObject=function(e,t){i.migrateDeprecatedWebpackOptions(t);let n=s.resolveReleaseName(t);if(s.maybeSetUpTunnelRouteRewriteRules(e,t),s.shouldReturnEarlyInExperimentalBuildMode())return e;let l=s.maybeCreateRouteManifest(e,t),u=s.maybeGetVercelCronsConfig(t);o.setUpBuildTimeVariables(e,t,n);let c=r.getNextjsVersion(),p=s.getNextMajor(c);s.maybeSetClientTraceMetadataOption(e,c),s.maybeSetInstrumentationHookOption(e,c),s.warnIfMissingOnRouterTransitionStartHook(t);let _=a.getBundlerInfo(c);a.maybeWarnAboutUnsupportedTurbopack(c,_),a.maybeWarnAboutUnsupportedRunAfterProductionCompileHook(c,t,_);let T=a.maybeConstructTurbopackConfig(e,t,l,c,_,u),d=a.resolveUseRunAfterProductionCompileHookOption(t,_);return a.maybeSetUpRunAfterProductionCompileHook({incomingUserNextConfigObject:e,userSentryOptions:t,releaseName:n,nextJsVersion:c,bundlerInfo:_,turboPackConfig:T,shouldUseRunAfterProductionCompileHook:d}),a.maybeEnableTurbopackSourcemaps(e,t,_),{...e,...a.getServerExternalPackagesPatch(e,p),...a.getWebpackPatch({incomingUserNextConfigObject:e,userSentryOptions:t,releaseName:n,routeManifest:l,nextJsVersion:c,shouldUseRunAfterProductionCompileHook:d,bundlerInfo:_,vercelCronsConfigResult:u}),...a.getTurbopackPatch(_,T)}}},256782,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(766776);n.withSentryConfig=function(e,t={}){let n=e||{};return"function"==typeof n?function(...e){let i=n.apply(this,e);return r.isThenable(i)?i.then(e=>o.getFinalConfigObject(e,t)):o.getFinalConfigObject(i,t)}:o.getFinalConfigObject(n,t)}},644247,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),n.DEBUG_BUILD="u"{"use strict";var t="";function n(e){return e.split("\n").reduce(function(e,n){var c,p,_,T=function(e){var n=r.exec(e);if(!n)return null;var i=n[2]&&0===n[2].indexOf("native"),a=n[2]&&0===n[2].indexOf("eval"),s=o.exec(n[2]);return a&&null!=s&&(n[2]=s[1],n[3]=s[2],n[4]=s[3]),{file:i?null:n[2],methodName:n[1]||t,arguments:i?[n[2]]:[],lineNumber:n[3]?+n[3]:null,column:n[4]?+n[4]:null}}(n)||((c=i.exec(n))?{file:c[2],methodName:c[1]||t,arguments:[],lineNumber:+c[3],column:c[4]?+c[4]:null}:null)||function(e){var n=a.exec(e);if(!n)return null;var r=n[3]&&n[3].indexOf(" > eval")>-1,o=s.exec(n[3]);return r&&null!=o&&(n[3]=o[1],n[4]=o[2],n[5]=null),{file:n[3],methodName:n[1]||t,arguments:n[2]?n[2].split(","):[],lineNumber:n[4]?+n[4]:null,column:n[5]?+n[5]:null}}(n)||((p=u.exec(n))?{file:p[2],methodName:p[1]||t,arguments:[],lineNumber:+p[3],column:p[4]?+p[4]:null}:null)||((_=l.exec(n))?{file:_[3],methodName:_[1]||t,arguments:[],lineNumber:+_[4],column:_[5]?+_[5]:null}:null);return T&&e.push(T),e},[])}var r=/^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack|rsc||\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,o=/\((\S*)(?::(\d+))(?::(\d+))\)/,i=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|rsc|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i,a=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|rsc|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i,s=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,l=/^\s*(?:([^@]*)(?:\((.*?)\))?@)?(\S.*?):(\d+)(?::(\d+))?\s*$/i,u=/^\s*at (?:((?:\[object object\])?[^\\/]+(?: \[as \S+\])?) )?\(?(.*?):(\d+)(?::(\d+))?\)?\s*$/i;e.s(["parse",()=>n])},313627,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(695005),i=e.r(644247),a=r.GLOBAL_OBJ;function s(){let e=process.env._sentryBasePath??a._sentryBasePath??"";""===e||e.match(/^\//)||(e=`/${e}`);let t=process.env.PORT||"3000";return`http://localhost:${t}${e}`}async function l(e,t={}){let n=new AbortController,o=setTimeout(()=>n.abort(),3e3);return r.suppressTracing(()=>fetch(e,{...t,signal:n.signal}).finally(()=>{clearTimeout(o)}))}async function u(e,t){try{if(!(e.file?.startsWith("webpack-internal:")||e.file?.startsWith("file:")))return null;let n=new URLSearchParams;n.append("isServer",String(!1)),n.append("isEdgeServer",String(!1)),n.append("isAppDirectory",String(!0)),n.append("errorMessage",t.toString()),Object.keys(e).forEach(t=>{n.append(t,(e[t]??"").toString())});let r=s(),o=await l(`${r}/__nextjs_original-stack-frame?${n.toString()}`);if(!o.ok||204===o.status)return null;let i=await o.json();return{originalCodeFrame:i.originalCodeFrame,originalStackFrame:i.originalStackFrame}}catch(e){return i.DEBUG_BUILD&&r.debug.error("Failed to symbolicate event with Next.js dev server",e),null}}async function c(e){try{let t={frames:e.filter(e=>!!e.file).map(e=>(e.file=e.file.replace(/^rsc:\/\/React\/[^/]+\//,"").replace(/\?\d+$/,""),{file:e.file,methodName:e.methodName??"",arguments:[],lineNumber:e.lineNumber??0,column:e.column??0,line1:e.lineNumber??0,column1:e.column??0})),isServer:!1,isEdgeServer:!1,isAppDirectory:!0},n=s(),r=await l(`${n}/__nextjs_original-stack-frames`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!r.ok||204===r.status)return null;return(await r.json()).map(e=>({originalCodeFrame:e.value.originalCodeFrame,originalStackFrame:e.value.originalStackFrame}))}catch(e){return i.DEBUG_BUILD&&r.debug.error("Failed to symbolicate event with Next.js dev server",e),null}}n.devErrorSymbolicationEventProcessor=async function e(e,t){"transaction"===e.type&&(e.spans=e.spans?.filter(e=>{let t=e.data?.["http.url"];return"string"!=typeof t||!t.includes("__nextjs_original-stack-frame")}));try{if(t.originalException&&t.originalException instanceof Error&&t.originalException.stack){let n,i=o.parse(t.originalException.stack),s=a._sentryNextJsVersion;if(!s)return e;let l=r.parseSemver(s);if(l.major>15||15===l.major&&l.minor>=2){let t=await c(i);if(null===t)return e;n=t}else n=await Promise.all(i.map(e=>u(e,t.originalException)));e.exception?.values?.[0]?.stacktrace?.frames&&(e.exception.values[0].stacktrace.frames=e.exception.values[0].stacktrace.frames.map((e,t,r)=>{let o=n[r.length-1-t];if(!o?.originalStackFrame||!o.originalCodeFrame)return{...e,platform:e.filename?.startsWith("node:internal")?"nodejs":void 0,in_app:!1};let{contextLine:i,preContextLines:a,postContextLines:s}=function(e){let t,n=e.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,"").split("\n").filter(e=>!e.match(/^\s*\|/)).map(e=>({line:e,isErrorLine:!!e.match(/^>/)})).map(e=>({...e,line:e.line.replace(/^.*\|/,"")})),r=[],o=[],i=!1;for(let e of n)e.isErrorLine?(t=e.line,i=!0):i?o.push(e.line):r.push(e.line);return{contextLine:t,preContextLines:r,postContextLines:o}}(o.originalCodeFrame);return{...e,pre_context:a,context_line:i,post_context:s,function:o.originalStackFrame.methodName,filename:o.originalStackFrame.file?function(e){if(!e)return e;let t=e.match(/^webpack-internal:(?:\/+)?(?:\([^)]*\)\/)?(.+)$/);return t?t[1]:e}(o.originalStackFrame.file):void 0,lineno:o.originalStackFrame.lineNumber||o.originalStackFrame.line1||void 0,colno:o.originalStackFrame.column||o.originalStackFrame.column1||void 0}}))}}catch{}return e}},102372,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),n.getVercelEnv=function(e){let t=e?process.env.NEXT_PUBLIC_VERCEL_ENV:process.env.VERCEL_ENV;return t?`vercel-${t}`:void 0}},322192,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),n.ATTR_NEXT_ROUTE="next.route",n.ATTR_NEXT_SEGMENT="next.segment",n.ATTR_NEXT_SPAN_NAME="next.span_name",n.ATTR_NEXT_SPAN_TYPE="next.span_type"},753802,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),n.TRANSACTION_ATTR_SENTRY_ROUTE_BACKFILL="sentry.route_backfill",n.TRANSACTION_ATTR_SENTRY_TRACE_BACKFILL="sentry.sentry_trace_backfill",n.TRANSACTION_ATTR_SHOULD_DROP_TRANSACTION="sentry.drop_transaction"},166740,(e,t,n)=>{"use strict";n._=function(e){return e&&e.__esModule?e:{default:e}}},404660,(e,t,n)=>{"use strict";t.exports=["chrome 111","edge 111","firefox 111","safari 16.4"]},473032,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={UNDERSCORE_GLOBAL_ERROR_ROUTE:function(){return s},UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY:function(){return l},UNDERSCORE_NOT_FOUND_ROUTE:function(){return i},UNDERSCORE_NOT_FOUND_ROUTE_ENTRY:function(){return a}};for(var o in r)Object.defineProperty(n,o,{enumerable:!0,get:r[o]});let i="/_not-found",a=`${i}/page`,s="/_global-error",l=`${s}/page`},59653,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r,o={APP_CLIENT_INTERNALS:function(){return et},APP_PATHS_MANIFEST:function(){return h},APP_PATH_ROUTES_MANIFEST:function(){return R},AdapterOutputType:function(){return c},BARREL_OPTIMIZATION_PREFIX:function(){return K},BLOCKED_PAGES:function(){return k},BUILD_ID_FILE:function(){return H},BUILD_MANIFEST:function(){return f},CLIENT_PUBLIC_FILES_PATH:function(){return Y},CLIENT_REFERENCE_MANIFEST:function(){return X},CLIENT_STATIC_FILES_PATH:function(){return j},CLIENT_STATIC_FILES_RUNTIME_MAIN:function(){return q},CLIENT_STATIC_FILES_RUNTIME_MAIN_APP:function(){return ee},CLIENT_STATIC_FILES_RUNTIME_POLYFILLS:function(){return eo},CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL:function(){return ei},CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH:function(){return en},CLIENT_STATIC_FILES_RUNTIME_WEBPACK:function(){return er},COMPILER_INDEXES:function(){return u},COMPILER_NAMES:function(){return l},CONFIG_FILES:function(){return w},DEFAULT_RUNTIME_WEBPACK:function(){return ea},DEFAULT_SANS_SERIF_FONT:function(){return ep},DEFAULT_SERIF_FONT:function(){return ec},DEV_CLIENT_MIDDLEWARE_MANIFEST:function(){return B},DEV_CLIENT_PAGES_MANIFEST:function(){return v},DYNAMIC_CSS_MANIFEST:function(){return z},EDGE_RUNTIME_WEBPACK:function(){return es},EDGE_UNSUPPORTED_NODE_APIS:function(){return eS},EXPORT_DETAIL:function(){return b},EXPORT_MARKER:function(){return y},FUNCTIONS_CONFIG_MANIFEST:function(){return N},IMAGES_MANIFEST:function(){return P},INTERCEPTION_ROUTE_REWRITE_MANIFEST:function(){return Q},MIDDLEWARE_BUILD_MANIFEST:function(){return J},MIDDLEWARE_MANIFEST:function(){return U},MIDDLEWARE_REACT_LOADABLE_MANIFEST:function(){return $},MODERN_BROWSERSLIST_TARGET:function(){return a.default},NEXT_BUILTIN_DOCUMENT:function(){return W},NEXT_FONT_MANIFEST:function(){return O},PAGES_MANIFEST:function(){return g},PHASE_ANALYZE:function(){return _},PHASE_DEVELOPMENT_SERVER:function(){return E},PHASE_EXPORT:function(){return p},PHASE_INFO:function(){return A},PHASE_PRODUCTION_BUILD:function(){return T},PHASE_PRODUCTION_SERVER:function(){return d},PHASE_TEST:function(){return S},PRERENDER_MANIFEST:function(){return C},REACT_LOADABLE_MANIFEST:function(){return x},ROUTES_MANIFEST:function(){return M},RSC_MODULE_TYPES:function(){return eE},SERVER_DIRECTORY:function(){return V},SERVER_FILES_MANIFEST:function(){return L},SERVER_PROPS_ID:function(){return eu},SERVER_REFERENCE_MANIFEST:function(){return Z},STATIC_PROPS_ID:function(){return el},STATIC_STATUS_PAGES:function(){return e_},STRING_LITERAL_DROP_BUNDLE:function(){return F},SUBRESOURCE_INTEGRITY_MANIFEST:function(){return I},SYSTEM_ENTRYPOINTS:function(){return eA},TRACE_OUTPUT_VERSION:function(){return eT},TURBOPACK_CLIENT_BUILD_MANIFEST:function(){return G},TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST:function(){return D},TURBO_TRACE_DEFAULT_MEMORY_LIMIT:function(){return ed},UNDERSCORE_GLOBAL_ERROR_ROUTE:function(){return s.UNDERSCORE_GLOBAL_ERROR_ROUTE},UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY:function(){return s.UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY},UNDERSCORE_NOT_FOUND_ROUTE:function(){return s.UNDERSCORE_NOT_FOUND_ROUTE},UNDERSCORE_NOT_FOUND_ROUTE_ENTRY:function(){return s.UNDERSCORE_NOT_FOUND_ROUTE_ENTRY},WEBPACK_STATS:function(){return m}};for(var i in o)Object.defineProperty(n,i,{enumerable:!0,get:o[i]});let a=e.r(166740)._(e.r(404660)),s=e.r(473032),l={client:"client",server:"server",edgeServer:"edge-server"},u={[l.client]:0,[l.server]:1,[l.edgeServer]:2};var c=((r={}).PAGES="PAGES",r.PAGES_API="PAGES_API",r.APP_PAGE="APP_PAGE",r.APP_ROUTE="APP_ROUTE",r.PRERENDER="PRERENDER",r.STATIC_FILE="STATIC_FILE",r.MIDDLEWARE="MIDDLEWARE",r);let p="phase-export",_="phase-analyze",T="phase-production-build",d="phase-production-server",E="phase-development-server",S="phase-test",A="phase-info",g="pages-manifest.json",m="webpack-stats.json",h="app-paths-manifest.json",R="app-path-routes-manifest.json",f="build-manifest.json",N="functions-config-manifest.json",I="subresource-integrity-manifest",O="next-font-manifest",y="export-marker.json",b="export-detail.json",C="prerender-manifest.json",M="routes-manifest.json",P="images-manifest.json",L="required-server-files",v="_devPagesManifest.json",U="middleware-manifest.json",D="_clientMiddlewareManifest.json",G="client-build-manifest.json",B="_devMiddlewareManifest.json",x="react-loadable-manifest.json",V="server",w=["next.config.js","next.config.mjs","next.config.ts",...process?.features?.typescript?["next.config.mts"]:[]],H="BUILD_ID",k=["/_document","/_app","/_error"],Y="public",j="static",F="__NEXT_DROP_CLIENT_FILE__",W="__NEXT_BUILTIN_DOCUMENT__",K="__barrel_optimize__",X="client-reference-manifest",Z="server-reference-manifest",J="middleware-build-manifest",$="middleware-react-loadable-manifest",Q="interception-route-rewrite-manifest",z="dynamic-css-manifest",q="main",ee=`${q}-app`,et="app-pages-internals",en="react-refresh",er="webpack",eo="polyfills",ei=Symbol(eo),ea="webpack-runtime",es="edge-runtime-webpack",el="__N_SSG",eu="__N_SSP",ec={name:"Times New Roman",xAvgCharWidth:821,azAvgWidth:854.3953488372093,unitsPerEm:2048},ep={name:"Arial",xAvgCharWidth:904,azAvgWidth:934.5116279069767,unitsPerEm:2048},e_=["/500"],eT=1,ed=6e3,eE={client:"client",server:"server"},eS=["clearImmediate","setImmediate","BroadcastChannel","ByteLengthQueuingStrategy","CompressionStream","CountQueuingStrategy","DecompressionStream","DomException","MessageChannel","MessageEvent","MessagePort","ReadableByteStreamController","ReadableStreamBYOBRequest","ReadableStreamDefaultController","TransformStreamDefaultController","WritableStreamDefaultController"],eA=new Set([q,en,ee]);("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},797121,(e,t,n)=>{t.exports=e.r(59653)},775563,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(797121);n.isBuild=function(){return process.env.NEXT_PHASE===r.PHASE_PRODUCTION_BUILD}},804822,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(644247);async function i(){try{o.DEBUG_BUILD&&r.debug.log("Flushing events..."),await r.flush(2e3),o.DEBUG_BUILD&&r.debug.log("Done flushing events")}catch(e){o.DEBUG_BUILD&&r.debug.log("Error while flushing events:\n",e)}}function a(){let e=Symbol.for("__cloudflare-context__");return r.GLOBAL_OBJ[e]?.ctx}function s(e){a()?.waitUntil(e)}function l(){return"function"==typeof a()?.waitUntil}n.cloudflareWaitUntil=s,n.flushSafelyWithTimeout=i,n.isCloudflareWaitUntilAvailable=l,n.waitUntil=function(e){l()?s(e):r.vercelWaitUntil(e)}},835229,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285);function o(e){let t=e.split("/").filter(e=>e&&!(e.startsWith("(")&&e.endsWith(")")));return t.length>0?`/${t.join("/")}`:"/"}function i(e,t,n,i){let a=i??o(e),s=n?.["x-forwarded-proto"],l=n?.["x-forwarded-host"]||n?.host;if(!s||!l)return a;let u=`${s}://${l}${a}`,c=r.parseStringToURLObject(u);return c?r.getSanitizedUrlStringFromUrlObject(c):a}function a(e){let t=e?.referer;if(t)try{let e=new URL(t);return r.getSanitizedUrlStringFromUrlObject(e)}catch{return}}n.buildUrlFromComponentRoute=i,n.extractSanitizedUrlFromRefererHeader=a,n.getSanitizedRequestUrl=function(e,t,n,r){let o=a(n);return o||i(e,t,n,r)},n.sanitizeRoutePath=o,n.substituteRouteParams=function(e,t){return e}},638074,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(835229);n.setUrlProcessingMetadata=function(e){if("transaction"!==e.type||e.contexts?.trace?.op!=="http.server"||!e.contexts?.trace?.data)return;let t=r.getClient();if(!t?.getOptions().sendDefaultPii)return;let n=e.contexts.trace.data,i=n["next.route"]||n["http.route"],a=n["http.target"];if(!i)return;let s=e.sdkProcessingMetadata?.capturedSpanIsolationScope?.getScopeData(),l=s?.sdkProcessingMetadata?.normalizedRequest?.headers,u=o.getSanitizedRequestUrl(i,void 0,l,a?.toString());u&&s?.sdkProcessingMetadata&&(s.sdkProcessingMetadata.normalizedRequest=s.sdkProcessingMetadata.normalizedRequest||{},s.sdkProcessingMetadata.normalizedRequest.url=u)}},540886,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(814747);n.distDirRewriteFramesIntegration=r.defineIntegration(({distDirName:e})=>{let t=o.resolve(e).replace(/(\/|\\)$/,""),n=new RegExp(r.escapeStringForRegex(t));return{...r.rewriteFramesIntegration({iteratee:e=>(e.filename=e.filename?.replace(n,"app:///_next"),e)}),name:"DistDirRewriteFrames"}})},224915,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285);n.addHeadersAsAttributes=function(e,t){if(!e)return{};let n=e instanceof Headers||"object"==typeof e&&"get"in e?r.winterCGHeadersToDict(e):e,o=r.httpHeadersToSpanAttributes(n,r.getClient()?.getOptions().sendDefaultPii??!1);return t&&t.setAttributes(o),o}},851224,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(808119),o=e.r(976285),i=e.r(779607),a=e.r(322192),s=e.r(753802),l=o.GLOBAL_OBJ;n.dropMiddlewareTunnelRequests=function(e,t){if(o.getClient()?.getOptions()?.skipOpenTelemetrySetup)return;let n=t?.[a.ATTR_NEXT_SPAN_TYPE]==="Middleware.execute",u=t?.[o.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]==="auto.http.otel.node_fetch",c=t?.[a.ATTR_NEXT_SPAN_TYPE]==="BaseServer.handleRequest";if(!n&&!u&&!c)return;let p=function(e){let t=l._sentryRewritesTunnelPath||process.env._sentryRewritesTunnelPath;if(!t)return!1;let n=e[r.SEMATTRS_HTTP_TARGET];if("string"==typeof n){let e=n.split("?")[0]||"";return e===t||e.startsWith(`${t}/`)}return!1}(t||{}),_=i.isSentryRequestSpan(e);(p||_)&&e.setAttribute(s.TRANSACTION_ATTR_SHOULD_DROP_TRANSACTION,!0)}},997574,(e,t,n)=>{let r;Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let o=e.r(808119),i=e.r(976285),a=e.r(644247),s=e.r(322192),l=e.r(753802),u="__PAGE__",c=new WeakMap;function p(e){return"NextNodeServer.getLayoutOrPageModule"===e[s.ATTR_NEXT_SPAN_TYPE]&&"resolve segment modules"===e[s.ATTR_NEXT_SPAN_NAME]&&"string"==typeof e[s.ATTR_NEXT_SEGMENT]}function _({segment:e,route:t}){return e===u?`resolve page server component "${t}"`:""===e?"resolve root layout server component":`resolve layout server component "${e}"`}n.commonObjectToIsolationScope=function(e){if("object"!=typeof e||!e)return new i.Scope;{let t=c.get(e);if(t)return t;{let t=new i.Scope;return c.set(e,t),t}}},n.dropNextjsRootContext=function(){if(i.getClient()?.getOptions()?.skipOpenTelemetrySetup)return;let e=i.getActiveSpan();if(e){let t=i.getRootSpan(e),n=i.spanToJSON(t).data;n?.["next.span_type"]&&i.getRootSpan(e)?.setAttribute(l.TRANSACTION_ATTR_SHOULD_DROP_TRANSACTION,!0)}},n.escapeNextjsTracing=function(e){let t=i.GLOBAL_OBJ.AsyncLocalStorage;return t?(r||(r=new t),r.getStore())?e():i.startNewTrace(()=>r.run(!0,()=>e())):(a.DEBUG_BUILD&&i.debug.warn("Tried to register AsyncLocalStorage async context strategy in a runtime that doesn't support AsyncLocalStorage."),e())},n.getEnhancedResolveSegmentSpanName=_,n.isResolveSegmentSpan=p,n.maybeEnhanceServerComponentSpanName=function(e,t,n){if(!p(t))return;let r=t[s.ATTR_NEXT_SEGMENT],a=n[o.ATTR_HTTP_ROUTE],l=_({segment:r,route:"string"==typeof a?a:""});e.updateName(l),e.setAttributes({"sentry.nextjs.ssr.function.type":r===u?"Page":"Layout","sentry.nextjs.ssr.function.route":a}),e.setAttribute(i.SEMANTIC_ATTRIBUTE_SENTRY_OP,"function.nextjs")}},800038,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(644247),i="sentry.cron.checkInId",a="sentry.cron.monitorSlug",s="sentry.cron.startTime",l="sentry.cron.schedule";n.maybeCompleteCronCheckIn=function(e){let t=r.spanToJSON(e).data,n=t?.[i],u=t?.[a],c=t?.[s],p=t?.[l];if(!n||!u||"number"!=typeof c)return;let _=r._INTERNAL_safeDateNow()/1e3-c,T=r.spanToJSON(e).status,d=T&&"ok"!==T?"error":"ok";r.captureCheckIn({checkInId:n,monitorSlug:u,status:d,duration:_},"string"==typeof p?{maxRuntime:720,schedule:{type:"crontab",value:p}}:void 0),e.setAttribute(i,void 0),e.setAttribute(a,void 0),e.setAttribute(s,void 0),e.setAttribute(l,void 0),o.DEBUG_BUILD&&r.debug.log(`[Cron] Completed check-in for "${u}" with status "${d}"`)},n.maybeStartCronCheckIn=function(e,t){let n=function(){let e=globalThis;if(e._sentryVercelCronsConfig)try{return JSON.parse(e._sentryVercelCronsConfig)}catch{o.DEBUG_BUILD&&r.debug.log("[@sentry/nextjs] Failed to parse Vercel crons config");return}}();if(!n||!t)return;let u=r.getIsolationScope().getScopeData().sdkProcessingMetadata?.normalizedRequest?.headers;if(!u)return;let c=Array.isArray(u["user-agent"])?u["user-agent"][0]:u["user-agent"];if(!c?.includes("vercel-cron"))return;let p=n.find(e=>e.path===t);if(!p?.path||!p.schedule)return;let _=p.path,T=r._INTERNAL_safeDateNow()/1e3,d=r.captureCheckIn({monitorSlug:_,status:"in_progress"},{maxRuntime:720,schedule:{type:"crontab",value:p.schedule}});o.DEBUG_BUILD&&r.debug.log(`[Cron] Started check-in for "${_}" with ID "${d}"`),e.setAttribute(i,d),e.setAttribute(a,_),e.setAttribute(s,T),e.setAttribute(l,p.schedule)}},383234,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o="messaging.system",i="messaging.destination.name",a="messaging.operation.name",s="sentry.queue.enriched";function l(e,t){let n=e[t];return Array.isArray(n)?n[0]:n}n.maybeCleanupQueueSpan=function(e){let t=r.spanToJSON(e).data;t?.[s]&&e.setAttribute(s,void 0)},n.maybeEnrichQueueConsumerSpan=function(e){let t=r.getIsolationScope().getScopeData().sdkProcessingMetadata?.normalizedRequest?.headers;if(!t||"com.vercel.queue.v2beta"!==(Array.isArray(t["ce-type"])?t["ce-type"][0]:t["ce-type"]))return;let n=l(t,"ce-vqsqueuename"),u=l(t,"ce-vqsmessageid"),c=l(t,"ce-vqsconsumergroup"),p=l(t,"ce-vqsdeliverycount");if(e.setAttribute(o,"vercel.queue"),e.setAttribute(a,"process"),n&&e.setAttribute(i,n),u&&e.setAttribute("messaging.message.id",u),c&&e.setAttribute("messaging.consumer.group.name",c),p){let t=parseInt(p,10);isNaN(t)||e.setAttribute("messaging.message.delivery_count",t)}e.setAttribute(s,!0)},n.maybeEnrichQueueProducerSpan=function(e){let t,n=r.spanToJSON(e).data,l=n?.["url.full"];if(!l)return;try{t=new URL(l)}catch{return}if("vercel-queue.com"!==t.hostname&&!t.hostname.endsWith(".vercel-queue.com"))return;let u=t.pathname.match(/^\/api\/v3\/topic\/([^/]+)/);if(!u)return;let c=decodeURIComponent(u[1]);e.setAttribute(o,"vercel.queue"),e.setAttribute(i,c),e.setAttribute(a,"send"),e.setAttribute(s,!0)}},541464,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(357762),o=e.r(808119),i=e.r(976285),a=e.r(779607),s=e.r(322192),l=e.r(224915),u=e.r(851224),c=e.r(997574),p=e.r(800038),_=e.r(383234);n.handleOnSpanStart=function(e){let t=i.spanToJSON(e).data,n=i.getRootSpan(e),T=i.spanToJSON(n).data,d=e===n;if(u.dropMiddlewareTunnelRequests(e,t),"string"==typeof t?.[s.ATTR_NEXT_ROUTE]&&(T?.[o.ATTR_HTTP_REQUEST_METHOD]||T?.[o.SEMATTRS_HTTP_METHOD])&&!T?.[o.ATTR_HTTP_ROUTE]){let e=t[s.ATTR_NEXT_ROUTE].replace(/\/route$/,"");n.updateName(e),n.setAttribute(o.ATTR_HTTP_ROUTE,e),n.setAttribute(s.ATTR_NEXT_ROUTE,e);let r=T?.[o.ATTR_HTTP_REQUEST_METHOD]||T?.[o.SEMATTRS_HTTP_METHOD];"string"==typeof r&&i.getIsolationScope().setTransactionName(`${r} ${e}`),p.maybeStartCronCheckIn(n,e),_.maybeEnrichQueueConsumerSpan(n)}if(t?.[s.ATTR_NEXT_SPAN_TYPE]==="Middleware.execute"){let r=t[s.ATTR_NEXT_SPAN_NAME];"string"==typeof r&&(n.updateName(r),n.setAttribute(o.ATTR_HTTP_ROUTE,r),n.setAttribute(s.ATTR_NEXT_SPAN_NAME,r)),e.setAttribute(i.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,"auto")}if(t?.[s.ATTR_NEXT_SPAN_TYPE]!==void 0&&e.setAttribute(i.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,"auto"),d){let e=i.getIsolationScope().getScopeData().sdkProcessingMetadata?.normalizedRequest?.headers;l.addHeadersAsAttributes(e,n)}if(t?.[s.ATTR_NEXT_SPAN_TYPE]==="BaseServer.handleRequest"&&d){let t=i.getCapturedScopesOnSpan(e),n=(t.isolationScope||i.getIsolationScope()).clone(),o=t.scope||i.getCurrentScope(),s=a.getScopesFromContext(r.context.active());s&&(s.isolationScope=n),i.setCapturedScopesOnSpan(e,o,n)}c.maybeEnhanceServerComponentSpanName(e,t,T),_.maybeEnrichQueueProducerSpan(e)}},280432,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(644247);function i(){let e=function(){if("u">typeof AsyncLocalStorage)return AsyncLocalStorage;if("getBuiltinModule"in process&&"function"==typeof process.getBuiltinModule){let{AsyncLocalStorage:e}=process.getBuiltinModule("async_hooks")??{};return e}}();if(!e||"function"!=typeof e.snapshot){o.DEBUG_BUILD&&r.debug.warn("[@sentry/nextjs] No AsyncLocalStorage found in the runtime or AsyncLocalStorage.snapshot() is not available, skipping safe random ID generator context preparation, you may see some errors with cache components.");return}return e.snapshot()}function a(e){return e instanceof Error&&e.message.includes("AsyncLocalStorage")}n.prepareSafeIdGeneratorContext=function(){let e=Symbol.for("__SENTRY_SAFE_RANDOM_ID_WRAPPER__"),t=r.GLOBAL_OBJ,n=i();if(!n)return;let s=n;t[e]=e=>{try{return s(e)}catch(n){if(!a(n))throw n;let t=i();if(!t)return e();s=t;try{return s(e)}catch(t){if(!a(t))throw t;return e()}}},o.DEBUG_BUILD&&r.debug.log("[@sentry/nextjs] Prepared safe random ID generator context")}},202446,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(804822);n.captureUnderscoreErrorException=async function(e){let{req:t,res:n,err:i}=e,a=n?.statusCode||e.statusCode;if(a&&a<500||!e.pathname)return;if(i&&r.isAlreadyCaptured(i)){o.waitUntil(o.flushSafelyWithTimeout());let e="object"==typeof i?i.__sentry_event_id__:void 0;return"string"==typeof e?(r.getIsolationScope().setLastEventId(e),e):r.getIsolationScope().lastEventId()}let s=r.withScope(e=>{if(t){let n=r.httpRequestToRequestData(t);e.setSDKProcessingMetadata({normalizedRequest:n})}return r.captureException(i||`_error.js called with falsy error (${i})`,{mechanism:{type:"auto.function.nextjs.underscore_error",handled:!1,data:{function:"_error.getInitialProps"}}})});return o.waitUntil(o.flushSafelyWithTimeout()),s}},144865,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),n.isUseCacheFunction=function(e){if(e.$$typeof!==Symbol.for("react.server.reference"))return!1;let{type:t}=function(e){let t=parseInt(e.slice(0,2),16),n=t>>1&63,r=Array(6);for(let e=0;e<6;e++){let t=n>>5-e&1;r[e]=1===t}return{type:1==(t>>7&1)?"use-cache":"server-action",usedArgs:r,hasRestArgs:1==(1&t)}}(e.$$id);return"use-cache"===t}},584990,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(644247),i=e.r(775563),a=e.r(144865);function s(e){let t=i.isBuild(),n=!!e&&a.isUseCacheFunction(e);return n&&o.DEBUG_BUILD&&r.debug.log("Skipping span creation in Cache Components context"),t||n}function l(){return new r.SentryNonRecordingSpan({traceId:"00000000000000000000000000000000",spanId:"0000000000000000"})}n.startInactiveSpan=function(e){return s()?l():r.startInactiveSpan(e)},n.startSpan=function(e,t){return s(t)?t(l()):r.startSpan(e,t)},n.startSpanManual=function(e,t){if(s(t)){let e=l();return t(e,()=>e.end())}return r.startSpanManual(e,t)}},952597,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(753802);n.callDataFetcherTraced=async function(e,t){try{return await e(...t)}catch(e){throw r.captureException(e,{mechanism:{handled:!1,type:"auto.function.nextjs.data_fetcher"}}),e}},n.withErrorInstrumentation=function(e){return async function(...t){try{return await e.apply(this,t)}catch(t){throw r.captureException(t,{mechanism:{handled:!1,type:"auto.function.nextjs.wrapped",data:{function:e.name}}}),t}}},n.withTracedServerSideDataFetcher=function(e,t,n,i){return async function(...n){let a=r.httpRequestToRequestData(t);r.getCurrentScope().setTransactionName(`${i.dataFetchingMethodName} (${i.dataFetcherRouteName})`),r.getIsolationScope().setSDKProcessingMetadata({normalizedRequest:a});let s=r.getActiveSpan();s&&"/_error"!==i.requestedRouteName&&r.getRootSpan(s).setAttribute(o.TRANSACTION_ATTR_SENTRY_ROUTE_BACKFILL,i.requestedRouteName);let{"sentry-trace":l,baggage:u}=r.getTraceData();return{sentryTrace:l,baggage:u,data:await e.apply(this,n)}}}},263350,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(775563),o=e.r(952597);n.wrapGetStaticPropsWithSentry=function(e,t){return new Proxy(e,{apply:async(e,t,n)=>{if(r.isBuild())return e.apply(t,n);let i=o.withErrorInstrumentation(e);return o.callDataFetcherTraced(i,n)}})}},804806,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(775563),o=e.r(952597);n.wrapGetInitialPropsWithSentry=function(e){return new Proxy(e,{apply:async(e,t,n)=>{if(r.isBuild())return e.apply(t,n);let[i]=n,{req:a,res:s}=i,l=o.withErrorInstrumentation(e);if(!a||!s)return l.apply(t,n);{let e=o.withTracedServerSideDataFetcher(l,a,s,{dataFetcherRouteName:i.pathname,requestedRouteName:i.pathname,dataFetchingMethodName:"getInitialProps"}),{data:r,baggage:u,sentryTrace:c}=await e.apply(t,n)??{};return"object"==typeof r&&null!==r&&(c&&(r._sentryTraceData=c),u&&(r._sentryBaggage=u)),r}}})}},233160,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(775563),o=e.r(952597);n.wrapAppGetInitialPropsWithSentry=function(e){return new Proxy(e,{apply:async(e,t,n)=>{if(r.isBuild())return e.apply(t,n);let[i]=n,{req:a,res:s}=i.ctx,l=o.withErrorInstrumentation(e);if(!a||!s)return l.apply(t,n);{let e=o.withTracedServerSideDataFetcher(l,a,s,{dataFetcherRouteName:"/_app",requestedRouteName:i.ctx.pathname,dataFetchingMethodName:"getInitialProps"}),{data:r,sentryTrace:u,baggage:c}=await e.apply(t,n);return"object"==typeof r&&null!==r&&(r.pageProps||(r.pageProps={}),u&&(r.pageProps._sentryTraceData=u),c&&(r.pageProps._sentryBaggage=c)),r}}})}},935404,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(775563),o=e.r(952597);n.wrapDocumentGetInitialPropsWithSentry=function(e){return new Proxy(e,{apply:async(e,t,n)=>{if(r.isBuild())return e.apply(t,n);let[i]=n,{req:a,res:s}=i,l=o.withErrorInstrumentation(e);if(!a||!s)return l.apply(t,n);{let e=o.withTracedServerSideDataFetcher(l,a,s,{dataFetcherRouteName:"/_document",requestedRouteName:i.pathname,dataFetchingMethodName:"getInitialProps"}),{data:r}=await e.apply(t,n);return r}}})}},914109,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(775563),o=e.r(952597);n.wrapErrorGetInitialPropsWithSentry=function(e){return new Proxy(e,{apply:async(e,t,n)=>{if(r.isBuild())return e.apply(t,n);let[i]=n,{req:a,res:s}=i,l=o.withErrorInstrumentation(e);if(!a||!s)return l.apply(t,n);{let e=o.withTracedServerSideDataFetcher(l,a,s,{dataFetcherRouteName:"/_error",requestedRouteName:i.pathname,dataFetchingMethodName:"getInitialProps"}),{data:r,baggage:u,sentryTrace:c}=await e.apply(t,n);return"object"==typeof r&&null!==r&&(c&&(r._sentryTraceData=c),u&&(r._sentryBaggage=u)),r}}})}},315469,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(775563),o=e.r(952597);n.wrapGetServerSidePropsWithSentry=function(e,t){return new Proxy(e,{apply:async(e,n,i)=>{if(r.isBuild())return e.apply(n,i);let[a]=i,{req:s,res:l}=a,u=o.withErrorInstrumentation(e),c=o.withTracedServerSideDataFetcher(u,s,l,{dataFetcherRouteName:t,requestedRouteName:t,dataFetchingMethodName:"getServerSideProps"}),{data:p,baggage:_,sentryTrace:T}=await c.apply(n,i);return"object"==typeof p&&null!==p&&"props"in p&&(T&&(p.props._sentryTraceData=T),_&&(p.props._sentryBaggage=_)),p}})}},44343,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285);n.isNotFoundNavigationError=function(e){return r.isError(e)&&["NEXT_NOT_FOUND","NEXT_HTTP_ERROR_FALLBACK;404"].includes(e.digest)},n.isRedirectNavigationError=function(e){return r.isError(e)&&"string"==typeof e.digest&&e.digest.startsWith("NEXT_REDIRECT;")}},461047,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(44343),i=e.r(804822);n.wrapServerComponentWithSentry=function(e,t){return new Proxy(e,{apply:(e,n,a)=>{let s=r.getIsolationScope(),l=t.headers?r.winterCGHeadersToDict(t.headers):void 0;return s.setSDKProcessingMetadata({normalizedRequest:{headers:l}}),r.handleCallbackErrors(()=>e.apply(n,a),e=>{let n=r.getActiveSpan(),{componentRoute:i,componentType:a}=t,l=!0;s.setTransactionName(`${a} Server Component (${i})`),n&&(o.isNotFoundNavigationError(e)?(l=!1,n.setStatus({code:r.SPAN_STATUS_ERROR,message:"not_found"})):o.isRedirectNavigationError(e)?(l=!1,n.setStatus({code:r.SPAN_STATUS_OK})):n.setStatus({code:r.SPAN_STATUS_ERROR,message:"internal_error"})),l&&r.captureException(e,{mechanism:{handled:!1,type:"auto.function.nextjs.server_component"}})},()=>{i.waitUntil(i.flushSafelyWithTimeout())})}})}},839777,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(44343),i=e.r(804822);e.r(997574),n.wrapRouteHandlerWithSentry=function(e,t){let{method:n,parameterizedRoute:a,headers:s}=t;return new Proxy(e,{apply:async(e,t,s)=>{let l=r.getActiveSpan(),u=l?r.getRootSpan(l):void 0;return r.withIsolationScope(r.getIsolationScope(),()=>r.withScope(async c=>{c.setTransactionName(`${n} ${a}`);let p=await r.handleCallbackErrors(()=>e.apply(t,s),e=>{o.isRedirectNavigationError(e)||(o.isNotFoundNavigationError(e)?(l&&r.setHttpStatus(l,404),u&&r.setHttpStatus(u,404)):r.captureException(e,{mechanism:{handled:!1,type:"auto.function.nextjs.route_handler"}}))},()=>{i.waitUntil(i.flushSafelyWithTimeout())});try{p.status&&(l&&r.setHttpStatus(l,p.status),u&&r.setHttpStatus(u,p.status))}catch{}return p}))}})}},573937,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285);n.wrapApiHandlerWithSentryVercelCrons=function(e,t){return new Proxy(e,{apply:(e,n,o)=>{let i;if(!o?.[0])return e.apply(n,o);let[a]=o,s="nextUrl"in a?a.nextUrl.pathname:a.url,l="nextUrl"in a?a.headers.get("user-agent"):a.headers["user-agent"];if(!t||!l?.includes("vercel-cron"))return e.apply(n,o);let u=t.find(e=>e.path===s);if(!u?.path||!u.schedule)return e.apply(n,o);let c=u.path,p=r.captureCheckIn({monitorSlug:c,status:"in_progress"},{maxRuntime:720,schedule:{type:"crontab",value:u.schedule}}),_=r._INTERNAL_safeDateNow()/1e3,T=()=>{r.captureCheckIn({checkInId:p,monitorSlug:c,status:"error",duration:r._INTERNAL_safeDateNow()/1e3-_})};try{i=e.apply(n,o)}catch(e){throw T(),e}return"object"==typeof i&&null!==i&&"then"in i?Promise.resolve(i).then(()=>{r.captureCheckIn({checkInId:p,monitorSlug:c,status:"ok",duration:r._INTERNAL_safeDateNow()/1e3-_})},()=>{T()}):r.captureCheckIn({checkInId:p,monitorSlug:c,status:"ok",duration:r._INTERNAL_safeDateNow()/1e3-_}),i}})}},918606,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(804822);n.wrapMiddlewareWithSentry=function(e){return new Proxy(e,{apply:async(e,t,n)=>{let i="_sentryRewritesTunnelPath"in globalThis?globalThis._sentryRewritesTunnelPath:void 0;if(i&&"string"==typeof i){let e=n[0];if(e instanceof Request&&new URL(e.url).pathname.startsWith(i))return new Response(null,{status:200,headers:{"x-middleware-next":"1"}})}return r.withIsolationScope(i=>{let a,s,l=n[0],u=r.getCurrentScope();l instanceof Request?(i.setSDKProcessingMetadata({normalizedRequest:r.winterCGRequestToRequestData(l)}),a=`middleware ${l.method}`,s="url"):(a="middleware",s="component"),u.setTransactionName(a);let c=r.getActiveSpan();if(c){a="middleware",s="component";let e=r.getRootSpan(c);e&&r.setCapturedScopesOnSpan(e,u,i)}return r.startSpan({name:a,op:"http.server.middleware",attributes:{[r.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:s,[r.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.function.nextjs.wrap_middleware"}},()=>r.handleCallbackErrors(()=>e.apply(t,n),e=>{r.captureException(e,{mechanism:{type:"auto.function.nextjs.wrap_middleware",handled:!1}})},()=>{o.waitUntil(o.flushSafelyWithTimeout())}))})}})}},91026,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285);function o(e,t){e&&"object"==typeof e&&r.addNonEnumerableProperty(e,"__sentry_event_id__",t)}n.wrapPageComponentWithSentry=function(e){return"function"==typeof e&&e?.prototype?.isReactComponent?class extends e{render(...e){return r.withIsolationScope(()=>{let t=r.getCurrentScope(),n="object"==typeof this.props&&null!==this.props&&"_sentryTraceData"in this.props&&"string"==typeof this.props._sentryTraceData?this.props._sentryTraceData:void 0;if(n){let e=r.extractTraceparentData(n);t.setContext("trace",{span_id:e?.parentSpanId,trace_id:e?.traceId})}try{return super.render(...e)}catch(t){let e=r.captureException(t,{mechanism:{handled:!1,type:"auto.function.nextjs.page_class"}});throw o(t,e),t}})}}:"function"==typeof e?new Proxy(e,{apply:(e,t,n)=>r.withIsolationScope(()=>{let i=r.getCurrentScope(),a=n?.[0]?._sentryTraceData;if(a){let e=r.extractTraceparentData(a);i.setContext("trace",{span_id:e?.parentSpanId,trace_id:e?.traceId})}try{return e.apply(t,n)}catch(t){let e=r.captureException(t,{mechanism:{handled:!1,type:"auto.function.nextjs.page_function"}});throw o(t,e),t}})}):e}},332796,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(44343),i=e.r(804822);n.wrapGenerationFunctionWithSentry=function(e,t){return new Proxy(e,{apply:(e,n,a)=>{let s,l=r.getIsolationScope();try{s=t.requestAsyncStorage?.getStore()?.headers}catch{}let u=s?r.winterCGHeadersToDict(s):void 0;return l.setSDKProcessingMetadata({normalizedRequest:{headers:u}}),r.handleCallbackErrors(()=>e.apply(n,a),e=>{let n=r.getActiveSpan(),{componentRoute:i,componentType:a,generationFunctionIdentifier:s}=t,u=!0;l.setTransactionName(`${a}.${s} (${i})`),n&&(o.isNotFoundNavigationError(e)?(u=!1,n.setStatus({code:r.SPAN_STATUS_ERROR,message:"not_found"})):o.isRedirectNavigationError(e)?(u=!1,n.setStatus({code:r.SPAN_STATUS_OK})):n.setStatus({code:r.SPAN_STATUS_ERROR,message:"internal_error"})),u&&r.captureException(e,{mechanism:{handled:!1,type:"auto.function.nextjs.generation_function",data:{function:s}}})},()=>{i.waitUntil(i.flushSafelyWithTimeout())})}})}},982907,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(804822),i=e.r(644247),a=e.r(44343);async function s(e,t,n){return r.withIsolationScope(async s=>{let l,u,c=r.getClient()?.getOptions().sendDefaultPii,p={};try{let e=await t.headers;l=e?.get("sentry-trace")??void 0,u=e?.get("baggage"),e?.forEach((e,t)=>{p[t]=e})}catch{i.DEBUG_BUILD&&r.debug.warn("Sentry wasn't able to extract the tracing headers for a server action. Will not trace this request.")}return s.setTransactionName(`serverAction/${e}`),s.setSDKProcessingMetadata({normalizedRequest:{headers:p}}),(r.getActiveSpan()?(e,t)=>t():r.continueTrace)({sentryTrace:l,baggage:u},async()=>{try{return await r.startSpan({op:"function.server_action",name:`serverAction/${e}`,forceTransaction:!0,attributes:{[r.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:"route",[r.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.function.nextjs.server_action"}},async e=>{let o=await r.handleCallbackErrors(n,t=>{a.isNotFoundNavigationError(t)?e.setStatus({code:r.SPAN_STATUS_ERROR,message:"not_found"}):a.isRedirectNavigationError(t)||(e.setStatus({code:r.SPAN_STATUS_ERROR,message:"internal_error"}),r.captureException(t,{mechanism:{handled:!1,type:"auto.function.nextjs.server_action"}}))});return(void 0!==t.recordResponse?t.recordResponse:c)&&r.getIsolationScope().setExtra("server_action_result",o),t.formData&&t.formData.forEach((e,t)=>{r.getIsolationScope().setExtra(`server_action_form_data.${t}`,"string"==typeof e?e:"[non-string value]")}),o})}finally{o.waitUntil(o.flushSafelyWithTimeout())}})})}n.withServerActionInstrumentation=function(...e){if("function"==typeof e[1]){let[t,n]=e;return s(t,{},n)}{let[t,n,r]=e;return s(t,n,r)}}},659534,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(804822);n.captureRequestError=function(e,t,n){r.withScope(i=>{i.setSDKProcessingMetadata({normalizedRequest:{headers:r.headersToDict(t.headers),method:t.method}}),i.setContext("nextjs",{request_path:t.path,router_kind:n.routerKind,router_path:n.routePath,route_type:n.routeType}),i.setTransactionName(`${t.method} ${n.routePath}`),r.captureException(e,{mechanism:{handled:!1,type:"auto.function.nextjs.on_request_error"}}),o.waitUntil(o.flushSafelyWithTimeout())})}},13458,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(804822),i=e.r(997574);n.wrapApiHandlerWithSentry=function(e,t){return new Proxy(e,{apply:(e,n,a)=>(i.dropNextjsRootContext(),i.escapeNextjsTracing(()=>{let[i,s]=a;return i?s?i.__withSentry_applied__?e.apply(n,a):(i.__withSentry_applied__=!0,r.withIsolationScope(l=>(r.getActiveSpan()?(e,t)=>t():r.continueTrace)({sentryTrace:i.headers&&r.isString(i.headers["sentry-trace"])?i.headers["sentry-trace"]:void 0,baggage:i.headers?.baggage},()=>{let u=`${(i.method||"GET").toUpperCase()} `,c=r.httpRequestToRequestData(i);return l.setSDKProcessingMetadata({normalizedRequest:c}),l.setTransactionName(`${u}${t}`),r.startSpanManual({name:`${u}${t}`,op:"http.server",forceTransaction:!0,attributes:{[r.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:"route",[r.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.http.nextjs"}},async t=>{s.end=new Proxy(s.end,{apply:(e,n,i)=>(r.setHttpStatus(t,s.statusCode),t.end(),o.waitUntil(o.flushSafelyWithTimeout()),e.apply(n,i))});try{return await e.apply(n,a)}catch(i){let n=r.objectify(i);throw r.captureException(n,{mechanism:{type:"auto.http.nextjs.api_handler",handled:!1,data:{wrapped_handler:e.name,function:"withSentry"}}}),r.setHttpStatus(t,500),t.end(),await o.flushSafelyWithTimeout(),n}})}))):(r.debug.log(`Wrapped API handler on route "${t}" was not passed a response object. Will not instrument.`),e.apply(n,a)):(r.debug.log(`Wrapped API handler on route "${t}" was not passed a request object. Will not instrument.`),e.apply(n,a))}))})}},398609,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(808119),o=e.r(976285),i=e.r(96892),a=e.r(644247);e.r(313627);let s=e.r(102372),l=e.r(322192),u=e.r(753802),c=e.r(775563),p=e.r(804822),_=e.r(638074),T=e.r(540886),d=e.r(541464),E=e.r(280432),S=e.r(800038),A=e.r(383234),g=e.r(202446),m=e.r(584990),h=e.r(263350),R=e.r(804806),f=e.r(233160),N=e.r(935404),I=e.r(914109),O=e.r(315469),y=e.r(461047),b=e.r(839777),C=e.r(573937),M=e.r(918606),P=e.r(91026),L=e.r(332796),v=e.r(982907),U=e.r(659534),D=e.r(13458);o.GLOBAL_OBJ,n.captureUnderscoreErrorException=g.captureUnderscoreErrorException,n.startInactiveSpan=m.startInactiveSpan,n.startSpan=m.startSpan,n.startSpanManual=m.startSpanManual,n.wrapGetStaticPropsWithSentry=h.wrapGetStaticPropsWithSentry,n.wrapGetInitialPropsWithSentry=R.wrapGetInitialPropsWithSentry,n.wrapAppGetInitialPropsWithSentry=f.wrapAppGetInitialPropsWithSentry,n.wrapDocumentGetInitialPropsWithSentry=N.wrapDocumentGetInitialPropsWithSentry,n.wrapErrorGetInitialPropsWithSentry=I.wrapErrorGetInitialPropsWithSentry,n.wrapGetServerSidePropsWithSentry=O.wrapGetServerSidePropsWithSentry,n.wrapServerComponentWithSentry=y.wrapServerComponentWithSentry,n.wrapRouteHandlerWithSentry=b.wrapRouteHandlerWithSentry,n.wrapApiHandlerWithSentryVercelCrons=C.wrapApiHandlerWithSentryVercelCrons,n.wrapMiddlewareWithSentry=M.wrapMiddlewareWithSentry,n.wrapPageComponentWithSentry=P.wrapPageComponentWithSentry,n.wrapGenerationFunctionWithSentry=L.wrapGenerationFunctionWithSentry,n.withServerActionInstrumentation=v.withServerActionInstrumentation,n.captureRequestError=U.captureRequestError,n.wrapApiHandlerWithSentry=D.wrapApiHandlerWithSentry,n.ErrorBoundary=e=>e.children?"function"==typeof e.children?e.children():e.children:null,n.createReduxEnhancer=function(){return e=>e},n.init=function(e){if(E.prepareSafeIdGeneratorContext(),c.isBuild())return;!a.DEBUG_BUILD&&e.debug&&console.warn("[@sentry/nextjs] You have enabled `debug: true`, but Sentry debug logging was removed from your bundle (likely via `withSentryConfig({ disableLogger: true })` / `webpack.treeshake.removeDebugLogging: true`). Set that option to `false` to see Sentry debug output.");let t=i.getDefaultIntegrations(e).filter(e=>"Http"!==e.name).concat(i.httpIntegration({disableIncomingRequestSpans:!0}));e.skipOpenTelemetrySetup||(process.env.NEXT_OTEL_FETCH_DISABLED="1"),t.push(T.distDirRewriteFramesIntegration({distDirName:".next"}));let n=function(){if(p.isCloudflareWaitUntilAvailable())return{runtime:{name:"cloudflare"}}}(),g={environment:e.environment||process.env.SENTRY_ENVIRONMENT||s.getVercelEnv(!1)||"production",release:"d45ef2baf7ed5f673dc8dd688a3f937376743f84",defaultIntegrations:t,...e,...n};if(a.DEBUG_BUILD&&g.debug&&o.debug.enable(),a.DEBUG_BUILD&&o.debug.log("Initializing SDK..."),o.getClient()){a.DEBUG_BUILD&&o.debug.log("SDK already initialized");return}o.applySdkMetadata(g,"nextjs",["nextjs",n?"cloudflare":"node"]);let m=i.init(g);m?.on("beforeSampling",({spanAttributes:e},t)=>{("string"==typeof e[r.SEMATTRS_HTTP_TARGET]&&e[r.SEMATTRS_HTTP_TARGET].includes("sentry_key")&&e[r.SEMATTRS_HTTP_TARGET].includes("sentry_client")||"string"==typeof e[r.ATTR_URL_QUERY]&&e[r.ATTR_URL_QUERY].includes("sentry_key")&&e[r.ATTR_URL_QUERY].includes("sentry_client"))&&(t.decision=!1)}),m?.on("spanStart",d.handleOnSpanStart),m?.on("spanEnd",S.maybeCompleteCronCheckIn),m?.on("spanEnd",A.maybeCleanupQueueSpan),o.getGlobalScope().addEventProcessor(Object.assign(e=>{if("transaction"!==e.type)return e;if(e.transaction?.match(/^GET (\/.*)?\/_next\/static\//)||e.transaction?.match(/\/__nextjs_original-stack-frame/)||"/404"===e.transaction||e.transaction?.match(/^(GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH) \/(404|_not-found)$/)||e.contexts?.trace?.data?.[u.TRANSACTION_ATTR_SHOULD_DROP_TRANSACTION]||"NextServer.getRequestHandler"===e.transaction)return null;if("string"==typeof e.contexts?.trace?.data?.[u.TRANSACTION_ATTR_SENTRY_TRACE_BACKFILL]){let t=o.extractTraceparentData(e.contexts.trace.data[u.TRANSACTION_ATTR_SENTRY_TRACE_BACKFILL]);if(t?.parentSampled===!1)return null}return e},{id:"NextLowQualityTransactionsFilter"})),o.getGlobalScope().addEventProcessor(Object.assign((e,t)=>{if(void 0!==e.type)return e;let n=t.originalException;if("object"==typeof n&&null!==n&&"$$typeof"in n&&n.$$typeof===Symbol.for("react.postpone"))return null;let r=e.exception?.values?.[0]?.value;return r?.includes("Suspense Exception: This is not a real error!")||r?.includes("Suspense Exception: This is not a real error, and should not leak")?null:e},{id:"DropReactControlFlowErrors"})),m?.on("preprocessEvent",e=>{if("transaction"===e.type&&e.contexts?.trace?.data?.[l.ATTR_NEXT_SPAN_TYPE]==="BaseServer.handleRequest"){e.contexts.trace.data[o.SEMANTIC_ATTRIBUTE_SENTRY_OP]="http.server",e.contexts.trace.op="http.server",e.transaction&&(e.transaction=o.stripUrlQueryAndFragment(e.transaction));let t=e.contexts.trace.data[r.SEMATTRS_HTTP_METHOD],n=e.contexts?.trace?.data?.[r.SEMATTRS_HTTP_TARGET],i=e.contexts.trace.data[r.ATTR_HTTP_ROUTE]||e.contexts.trace.data[l.ATTR_NEXT_ROUTE],a=e.contexts.trace.data[l.ATTR_NEXT_SPAN_NAME];if("string"==typeof t&&"string"==typeof i&&!i.startsWith("middleware")){let n=i.replace(/\/route$/,"");e.transaction=`${t} ${n}`,e.contexts.trace.data[o.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]="route",e.contexts.trace.data[l.ATTR_NEXT_ROUTE]=n}e.contexts.trace.data[u.TRANSACTION_ATTR_SENTRY_ROUTE_BACKFILL]&&"GET /_app"!==e.transaction&&(e.transaction=`${t} ${e.contexts.trace.data[u.TRANSACTION_ATTR_SENTRY_ROUTE_BACKFILL]}`);let s="string"==typeof a&&a.match(/^middleware (GET|POST|PUT|DELETE|PATCH|HEAD|OPTIONS)/);s&&(e.transaction=`middleware ${s[1]}`,e.contexts.trace.op="http.server.middleware"),"GET /_error"===e.transaction&&n&&(e.transaction=`${t?`${t} `:""}${n}`)}if("transaction"===e.type&&"string"==typeof e.contexts?.trace?.data?.[u.TRANSACTION_ATTR_SENTRY_TRACE_BACKFILL]){let t=o.extractTraceparentData(e.contexts.trace.data[u.TRANSACTION_ATTR_SENTRY_TRACE_BACKFILL]);t?.traceId&&(e.contexts.trace.trace_id=t.traceId),t?.parentSpanId&&(e.contexts.trace.parent_span_id=t.parentSpanId)}_.setUrlProcessingMetadata(e)});try{o.getGlobalScope().setTag("turbopack",!0)}catch{}return a.DEBUG_BUILD&&o.debug.log("SDK successfully initialized"),m},n.showReportDialog=function(){},n.withErrorBoundary=function(e){return e},Object.prototype.hasOwnProperty.call(i,"__proto__")&&!Object.prototype.hasOwnProperty.call(n,"__proto__")&&Object.defineProperty(n,"__proto__",{enumerable:!0,value:i.__proto__}),Object.keys(i).forEach(e=>{"default"===e||Object.prototype.hasOwnProperty.call(n,e)||(n[e]=i[e])})},755538,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(256782),o=e.r(398609),i=e.r(96892),a=e.r(659534),s=e.r(202446),l=e.r(584990),u=e.r(982907),c=e.r(13458),p=e.r(573937),_=e.r(233160),T=e.r(935404),d=e.r(914109),E=e.r(332796),S=e.r(804806),A=e.r(315469),g=e.r(263350),m=e.r(918606),h=e.r(91026),R=e.r(839777),f=e.r(461047);n.withSentryConfig=r.withSentryConfig,n.ErrorBoundary=o.ErrorBoundary,n.createReduxEnhancer=o.createReduxEnhancer,n.init=o.init,n.showReportDialog=o.showReportDialog,n.withErrorBoundary=o.withErrorBoundary,n.captureRequestError=a.captureRequestError,n.captureUnderscoreErrorException=s.captureUnderscoreErrorException,n.startInactiveSpan=l.startInactiveSpan,n.startSpan=l.startSpan,n.startSpanManual=l.startSpanManual,n.withServerActionInstrumentation=u.withServerActionInstrumentation,n.wrapApiHandlerWithSentry=c.wrapApiHandlerWithSentry,n.wrapApiHandlerWithSentryVercelCrons=p.wrapApiHandlerWithSentryVercelCrons,n.wrapAppGetInitialPropsWithSentry=_.wrapAppGetInitialPropsWithSentry,n.wrapDocumentGetInitialPropsWithSentry=T.wrapDocumentGetInitialPropsWithSentry,n.wrapErrorGetInitialPropsWithSentry=d.wrapErrorGetInitialPropsWithSentry,n.wrapGenerationFunctionWithSentry=E.wrapGenerationFunctionWithSentry,n.wrapGetInitialPropsWithSentry=S.wrapGetInitialPropsWithSentry,n.wrapGetServerSidePropsWithSentry=A.wrapGetServerSidePropsWithSentry,n.wrapGetStaticPropsWithSentry=g.wrapGetStaticPropsWithSentry,n.wrapMiddlewareWithSentry=m.wrapMiddlewareWithSentry,n.wrapPageComponentWithSentry=h.wrapPageComponentWithSentry,n.wrapRouteHandlerWithSentry=R.wrapRouteHandlerWithSentry,n.wrapServerComponentWithSentry=f.wrapServerComponentWithSentry,Object.prototype.hasOwnProperty.call(i,"__proto__")&&!Object.prototype.hasOwnProperty.call(n,"__proto__")&&Object.defineProperty(n,"__proto__",{enumerable:!0,value:i.__proto__}),Object.keys(i).forEach(e=>{"default"===e||Object.prototype.hasOwnProperty.call(n,e)||(n[e]=i[e])})}]; +Mongoose Error Code: ${t.code}`:""}`})}function l(e,t,n,i){n&&(0,o.safeExecuteInTheMiddle)(()=>n(e,{moduleVersion:i,response:t}),e=>{e&&r.diag.error("mongoose instrumentation: responseHook error",e)},!0)}n.getAttributesFromCollection=function(e,t,n){let r={};return t&o.SemconvStability.OLD&&(r[i.ATTR_DB_MONGODB_COLLECTION]=e.name,r[i.ATTR_DB_NAME]=e.conn.name,r[i.ATTR_DB_USER]=e.conn.user),t&o.SemconvStability.STABLE&&(r[a.ATTR_DB_COLLECTION_NAME]=e.name,r[a.ATTR_DB_NAMESPACE]=e.conn.name),n&o.SemconvStability.OLD&&(r[i.ATTR_NET_PEER_NAME]=e.conn.host,r[i.ATTR_NET_PEER_PORT]=e.conn.port),n&o.SemconvStability.STABLE&&(r[a.ATTR_SERVER_ADDRESS]=e.conn.host,r[a.ATTR_SERVER_PORT]=e.conn.port),r},n.handlePromiseResponse=function(e,t,n,r){return e instanceof Promise?e.then(e=>(l(t,e,n,r),e)).catch(e=>{throw s(t,e),e}).finally(()=>t.end()):(l(t,e,n,r),t.end(),e)},n.handleCallbackResponse=function(e,t,n,r,o,i,a){let u=0;return 2===o.length?u=1:3===o.length&&(u=2),o[u]=(t,n)=>(t?s(r,t):l(r,n,i,a),r.end(),e(t,n)),t.apply(n,o)}},661395,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.60.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-mongoose"},152852,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.MongooseInstrumentation=n._ALREADY_INSTRUMENTED=n._STORED_PARENT_SPAN=void 0;let r=e.r(357762),o=e.r(385692),i=e.r(388687),a=e.r(204780),s=e.r(661395),l=e.r(214787),u=e.r(808119),c=["deleteOne","deleteMany","find","findOne","estimatedDocumentCount","countDocuments","distinct","where","$where","findOneAndUpdate","findOneAndDelete","findOneAndReplace"],p=["remove","count","findOneAndRemove",...c],_=["count","findOneAndRemove",...c],T=[...c];function d(e){return e?e.startsWith("6.")||e.startsWith("5.")?p:e.startsWith("7.")?_:T:c}function E(e){return e&&(e.startsWith("5.")||e.startsWith("6."))||!1}function S(e){return!!e&&!!e.startsWith("8.")&&parseInt(e.split(".")[1],10)>=21}n._STORED_PARENT_SPAN=Symbol("stored-parent-span"),n._ALREADY_INSTRUMENTED=Symbol("already-instrumented");class A extends a.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(e={}){super(s.PACKAGE_NAME,s.PACKAGE_VERSION,e),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,a.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,a.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return new a.InstrumentationNodeModuleDefinition("mongoose",[">=5.9.7 <10"],this.patch.bind(this),this.unpatch.bind(this))}patch(e,t){let n="Module"===e[Symbol.toStringTag]?e.default:e;return this._wrap(n.Model.prototype,"save",this.patchOnModelMethods("save",t)),n.Model.prototype.$save=n.Model.prototype.save,E(t)&&this._wrap(n.Model.prototype,"remove",this.patchOnModelMethods("remove",t)),S(t)&&(this._wrap(n.Model.prototype,"updateOne",this._patchDocumentUpdateMethods("updateOne",t)),this._wrap(n.Model.prototype,"deleteOne",this._patchDocumentUpdateMethods("deleteOne",t))),this._wrap(n.Query.prototype,"exec",this.patchQueryExec(t)),this._wrap(n.Aggregate.prototype,"exec",this.patchAggregateExec(t)),d(t).forEach(e=>{this._wrap(n.Query.prototype,e,this.patchAndCaptureSpanContext(e))}),this._wrap(n.Model,"aggregate",this.patchModelAggregate()),this._wrap(n.Model,"insertMany",this.patchModelStatic("insertMany",t)),this._wrap(n.Model,"bulkWrite",this.patchModelStatic("bulkWrite",t)),n}unpatch(e,t){let n="Module"===e[Symbol.toStringTag]?e.default:e,r=d(t);this._unwrap(n.Model.prototype,"save"),n.Model.prototype.$save=n.Model.prototype.save,E(t)&&this._unwrap(n.Model.prototype,"remove"),S(t)&&(this._unwrap(n.Model.prototype,"updateOne"),this._unwrap(n.Model.prototype,"deleteOne")),this._unwrap(n.Query.prototype,"exec"),this._unwrap(n.Aggregate.prototype,"exec"),r.forEach(e=>{this._unwrap(n.Query.prototype,e)}),this._unwrap(n.Model,"aggregate"),this._unwrap(n.Model,"insertMany"),this._unwrap(n.Model,"bulkWrite")}patchAggregateExec(e){let t=this;return o=>function(i){if(t.getConfig().requireParentSpan&&void 0===r.trace.getSpan(r.context.active()))return o.apply(this,arguments);let s=this[n._STORED_PARENT_SPAN],c={},{dbStatementSerializer:p}=t.getConfig();if(p){let e=p("aggregate",{options:this.options,aggregatePipeline:this._pipeline});t._dbSemconvStability&a.SemconvStability.OLD&&(c[l.ATTR_DB_STATEMENT]=e),t._dbSemconvStability&a.SemconvStability.STABLE&&(c[u.ATTR_DB_QUERY_TEXT]=e)}let _=t._startSpan(this._model.collection,this._model?.modelName,"aggregate",c,s);return t._handleResponse(_,o,this,arguments,i,e)}}patchQueryExec(e){let t=this;return o=>function(i){if(this[n._ALREADY_INSTRUMENTED]||t.getConfig().requireParentSpan&&void 0===r.trace.getSpan(r.context.active()))return o.apply(this,arguments);let s=this[n._STORED_PARENT_SPAN],c={},{dbStatementSerializer:p}=t.getConfig();if(p){let e=p(this.op,{condition:this.getFilter?.()??this._conditions,updates:this._update,options:this.getOptions?.()??this.options,fields:this._fields});t._dbSemconvStability&a.SemconvStability.OLD&&(c[l.ATTR_DB_STATEMENT]=e),t._dbSemconvStability&a.SemconvStability.STABLE&&(c[u.ATTR_DB_QUERY_TEXT]=e)}let _=t._startSpan(this.mongooseCollection,this.model.modelName,this.op,c,s);return t._handleResponse(_,o,this,arguments,i,e)}}patchOnModelMethods(e,t){let n=this;return o=>function(i,s){if(n.getConfig().requireParentSpan&&void 0===r.trace.getSpan(r.context.active()))return o.apply(this,arguments);let c={document:this};!i||i instanceof Function||(c.options=i);let p={},{dbStatementSerializer:_}=n.getConfig();if(_){let t=_(e,c);n._dbSemconvStability&a.SemconvStability.OLD&&(p[l.ATTR_DB_STATEMENT]=t),n._dbSemconvStability&a.SemconvStability.STABLE&&(p[u.ATTR_DB_QUERY_TEXT]=t)}let T=n._startSpan(this.constructor.collection,this.constructor.modelName,e,p);return i instanceof Function&&(s=i,i=void 0),n._handleResponse(T,o,this,arguments,s,t)}}_patchDocumentUpdateMethods(e,t){let o=this;return i=>function(s,c,p){if(o.getConfig().requireParentSpan&&void 0===r.trace.getSpan(r.context.active()))return i.apply(this,arguments);let _=p,T=s,d=c;"function"==typeof s?(_=s,T=void 0,d=void 0):"function"==typeof c&&(_=c,d=void 0);let E={},S=o.getConfig().dbStatementSerializer;if(S){let t=S(e,{condition:{_id:this._id},updates:T,options:d});o._dbSemconvStability&a.SemconvStability.OLD&&(E[l.ATTR_DB_STATEMENT]=t),o._dbSemconvStability&a.SemconvStability.STABLE&&(E[u.ATTR_DB_QUERY_TEXT]=t)}let A=o._startSpan(this.constructor.collection,this.constructor.modelName,e,E),g=o._handleResponse(A,i,this,arguments,_,t);return g&&"object"==typeof g&&(g[n._ALREADY_INSTRUMENTED]=!0),g}}patchModelStatic(e,t){let n=this;return o=>function(i,s,c){if(n.getConfig().requireParentSpan&&void 0===r.trace.getSpan(r.context.active()))return o.apply(this,arguments);"function"==typeof s&&(c=s,s=void 0);let p={};switch(e){case"insertMany":p.documents=i;break;case"bulkWrite":p.operations=i;break;default:p.document=i}void 0!==s&&(p.options=s);let _={},{dbStatementSerializer:T}=n.getConfig();if(T){let t=T(e,p);n._dbSemconvStability&a.SemconvStability.OLD&&(_[l.ATTR_DB_STATEMENT]=t),n._dbSemconvStability&a.SemconvStability.STABLE&&(_[u.ATTR_DB_QUERY_TEXT]=t)}let d=n._startSpan(this.collection,this.modelName,e,_);return n._handleResponse(d,o,this,arguments,c,t)}}patchModelAggregate(){let e=this;return t=>function(){let o=r.trace.getSpan(r.context.active()),i=e._callOriginalFunction(()=>t.apply(this,arguments));return i&&(i[n._STORED_PARENT_SPAN]=o),i}}patchAndCaptureSpanContext(e){let t=this;return e=>function(){return this[n._STORED_PARENT_SPAN]=r.trace.getSpan(r.context.active()),t._callOriginalFunction(()=>e.apply(this,arguments))}}_startSpan(e,t,n,o,s){let c={...o,...(0,i.getAttributesFromCollection)(e,this._dbSemconvStability,this._netSemconvStability)};this._dbSemconvStability&a.SemconvStability.OLD&&(c[l.ATTR_DB_OPERATION]=n,c[l.ATTR_DB_SYSTEM]="mongoose"),this._dbSemconvStability&a.SemconvStability.STABLE&&(c[u.ATTR_DB_OPERATION_NAME]=n,c[u.ATTR_DB_SYSTEM_NAME]=l.DB_SYSTEM_NAME_VALUE_MONGODB);let p=this._dbSemconvStability&a.SemconvStability.STABLE?`${n} ${e.name}`:`mongoose.${t}.${n}`;return this.tracer.startSpan(p,{kind:r.SpanKind.CLIENT,attributes:c},s?r.trace.setSpan(r.context.active(),s):void 0)}_handleResponse(e,t,n,r,o,a){let s=this;if(o instanceof Function)return s._callOriginalFunction(()=>(0,i.handleCallbackResponse)(o,t,n,e,r,s.getConfig().responseHook,a));{let o=s._callOriginalFunction(()=>t.apply(n,r));return(0,i.handlePromiseResponse)(o,e,s.getConfig().responseHook,a)}}_callOriginalFunction(e){return this.getConfig().suppressInternalInstrumentation?r.context.with((0,o.suppressTracing)(r.context.active()),e):e()}}n.MongooseInstrumentation=A},583049,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.MongooseInstrumentation=void 0;var r=e.r(152852);Object.defineProperty(n,"MongooseInstrumentation",{enumerable:!0,get:function(){return r.MongooseInstrumentation}})},780216,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(583049),o=e.r(976285),i=e.r(625331),a="Mongoose",s=i.generateInstrumentOnce(a,()=>new r.MongooseInstrumentation({responseHook(e){i.addOriginToSpan(e,"auto.db.otel.mongoose")}})),l=o.defineIntegration(()=>({name:a,setupOnce(){s()}}));n.instrumentMongoose=s,n.mongooseIntegration=l},286950,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.METRIC_DB_CLIENT_CONNECTIONS_USAGE=n.DB_SYSTEM_VALUE_MYSQL=n.ATTR_NET_PEER_PORT=n.ATTR_NET_PEER_NAME=n.ATTR_DB_USER=n.ATTR_DB_SYSTEM=n.ATTR_DB_STATEMENT=n.ATTR_DB_NAME=n.ATTR_DB_CONNECTION_STRING=void 0,n.ATTR_DB_CONNECTION_STRING="db.connection_string",n.ATTR_DB_NAME="db.name",n.ATTR_DB_STATEMENT="db.statement",n.ATTR_DB_SYSTEM="db.system",n.ATTR_DB_USER="db.user",n.ATTR_NET_PEER_NAME="net.peer.name",n.ATTR_NET_PEER_PORT="net.peer.port",n.DB_SYSTEM_VALUE_MYSQL="mysql",n.METRIC_DB_CLIENT_CONNECTIONS_USAGE="db.client.connections.usage"},424590,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.AttributeNames=void 0,(n.AttributeNames||(n.AttributeNames={})).MYSQL_VALUES="db.mysql.values"},952519,(e,t,n)=>{"use strict";function r(e){return e?`[${e.toString()}]`:""}Object.defineProperty(n,"__esModule",{value:!0}),n.getPoolNameOld=n.arrayStringifyHelper=n.getSpanName=n.getDbValues=n.getDbQueryText=n.getJDBCString=n.getConfig=void 0,n.getConfig=function(e){let{host:t,port:n,database:r,user:o}=e&&e.connectionConfig||e||{};return{host:t,port:n,database:r,user:o}},n.getJDBCString=function(e,t,n){let r=`jdbc:mysql://${e||"localhost"}`;return"number"==typeof t&&(r+=`:${t}`),"string"==typeof n&&(r+=`/${n}`),r},n.getDbQueryText=function(e){return"string"==typeof e?e:e.sql},n.getDbValues=function(e,t){return"string"==typeof e?r(t):r(t||e.values)},n.getSpanName=function(e){let t="object"==typeof e?e.sql:e,n=t?.indexOf(" ");return"number"==typeof n&&-1!==n?t?.substring(0,n):t},n.arrayStringifyHelper=r,n.getPoolNameOld=function(e){let t=e.config.connectionConfig,n="";return n+=t.host?`host: '${t.host}', `:"",n+=t.port?`port: ${t.port}, `:"",n+=t.database?`database: '${t.database}', `:"",n+=t.user?`user: '${t.user}'`:"",t.user||(n=n.substring(0,n.length-2)),n.trim()}},819437,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.60.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-mysql"},937494,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.MySQLInstrumentation=void 0;let r=e.r(357762),o=e.r(204780),i=e.r(808119),a=e.r(286950),s=e.r(424590),l=e.r(952519),u=e.r(819437);class c extends o.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(e={}){super(u.PACKAGE_NAME,u.PACKAGE_VERSION,e),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,o.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,o.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}_updateMetricInstruments(){this._connectionsUsageOld=this.meter.createUpDownCounter(a.METRIC_DB_CLIENT_CONNECTIONS_USAGE,{description:"The number of connections that are currently in state described by the state attribute.",unit:"{connection}"})}_connCountAdd(e,t,n){this._connectionsUsageOld?.add(e,{state:n,name:t})}init(){return[new o.InstrumentationNodeModuleDefinition("mysql",[">=2.0.0 <3"],e=>((0,o.isWrapped)(e.createConnection)&&this._unwrap(e,"createConnection"),this._wrap(e,"createConnection",this._patchCreateConnection()),(0,o.isWrapped)(e.createPool)&&this._unwrap(e,"createPool"),this._wrap(e,"createPool",this._patchCreatePool()),(0,o.isWrapped)(e.createPoolCluster)&&this._unwrap(e,"createPoolCluster"),this._wrap(e,"createPoolCluster",this._patchCreatePoolCluster()),e),e=>{void 0!==e&&(this._unwrap(e,"createConnection"),this._unwrap(e,"createPool"),this._unwrap(e,"createPoolCluster"))})]}_patchCreateConnection(){return e=>{let t=this;return function(n){let r=e(...arguments);return t._wrap(r,"query",t._patchQuery(r)),r}}}_patchCreatePool(){return e=>{let t=this;return function(n){let r=e(...arguments);return t._wrap(r,"query",t._patchQuery(r)),t._wrap(r,"getConnection",t._patchGetConnection(r)),t._wrap(r,"end",t._patchPoolEnd(r)),t._setPoolCallbacks(r,""),r}}}_patchPoolEnd(e){return t=>{let n=this;return function(r){let o=e._allConnections.length,i=e._freeConnections.length,a=(0,l.getPoolNameOld)(e);n._connCountAdd(-(o-i),a,"used"),n._connCountAdd(-i,a,"idle"),t.apply(e,arguments)}}}_patchCreatePoolCluster(){return e=>{let t=this;return function(n){let r=e(...arguments);return t._wrap(r,"getConnection",t._patchGetConnection(r)),t._wrap(r,"add",t._patchAdd(r)),r}}}_patchAdd(e){return t=>{let n=this;return function(r,o){if(!n._enabled)return n._unwrap(e,"add"),t.apply(e,arguments);t.apply(e,arguments);let i=e._nodes;if(i){let t=i["object"==typeof r?"CLUSTER::"+e._lastId:String(r)].pool;n._setPoolCallbacks(t,r)}}}}_patchGetConnection(e){return t=>{let n=this;return function(r,o,i){if(!n._enabled)return n._unwrap(e,"getConnection"),t.apply(e,arguments);if(1==arguments.length&&"function"==typeof r){let o=n._getConnectionCallbackPatchFn(r);return t.call(e,o)}if(2==arguments.length&&"function"==typeof o){let i=n._getConnectionCallbackPatchFn(o);return t.call(e,r,i)}if(3==arguments.length&&"function"==typeof i){let a=n._getConnectionCallbackPatchFn(i);return t.call(e,r,o,a)}return t.apply(e,arguments)}}}_getConnectionCallbackPatchFn(e){let t=this,n=r.context.active();return function(i,a){a&&!(0,o.isWrapped)(a.query)&&t._wrap(a,"query",t._patchQuery(a)),"function"==typeof e&&r.context.with(n,e,this,i,a)}}_patchQuery(e){return t=>{let n=this;return function(u,c,p){if(!n._enabled)return n._unwrap(e,"query"),t.apply(e,arguments);let _={},{host:T,port:d,database:E,user:S}=(0,l.getConfig)(e.config),A=parseInt(d,10),g=(0,l.getDbQueryText)(u);n._dbSemconvStability&o.SemconvStability.OLD&&(_[a.ATTR_DB_SYSTEM]=a.DB_SYSTEM_VALUE_MYSQL,_[a.ATTR_DB_CONNECTION_STRING]=(0,l.getJDBCString)(T,d,E),_[a.ATTR_DB_NAME]=E,_[a.ATTR_DB_USER]=S,_[a.ATTR_DB_STATEMENT]=g),n._dbSemconvStability&o.SemconvStability.STABLE&&(_[i.ATTR_DB_SYSTEM_NAME]=i.DB_SYSTEM_NAME_VALUE_MYSQL,_[i.ATTR_DB_NAMESPACE]=E,_[i.ATTR_DB_QUERY_TEXT]=g),n._netSemconvStability&o.SemconvStability.OLD&&(_[a.ATTR_NET_PEER_NAME]=T,isNaN(A)||(_[a.ATTR_NET_PEER_PORT]=A)),n._netSemconvStability&o.SemconvStability.STABLE&&(_[i.ATTR_SERVER_ADDRESS]=T,isNaN(A)||(_[i.ATTR_SERVER_PORT]=A));let m=n.tracer.startSpan((0,l.getSpanName)(u),{kind:r.SpanKind.CLIENT,attributes:_});if(n.getConfig().enhancedDatabaseReporting){let e;Array.isArray(c)?e=c:arguments[2]&&(e=[c]),m.setAttribute(s.AttributeNames.MYSQL_VALUES,(0,l.getDbValues)(u,e))}let h=Array.from(arguments).findIndex(e=>"function"==typeof e),R=r.context.active();if(-1!==h)return n._wrap(arguments,h,n._patchCallbackQuery(m,R)),r.context.with(r.trace.setSpan(r.context.active(),m),()=>t.apply(e,arguments));{let n=r.context.with(r.trace.setSpan(r.context.active(),m),()=>t.apply(e,arguments));return r.context.bind(R,n),n.on("error",e=>m.setStatus({code:r.SpanStatusCode.ERROR,message:e.message})).on("end",()=>{m.end()})}}}}_patchCallbackQuery(e,t){return n=>function(o,i,a){return o&&e.setStatus({code:r.SpanStatusCode.ERROR,message:o.message}),e.end(),r.context.with(t,()=>n(...arguments))}}_setPoolCallbacks(e,t){let n=t||(0,l.getPoolNameOld)(e);e.on("connection",e=>{this._connCountAdd(1,n,"idle")}),e.on("acquire",e=>{this._connCountAdd(-1,n,"idle"),this._connCountAdd(1,n,"used")}),e.on("release",e=>{this._connCountAdd(1,n,"idle"),this._connCountAdd(-1,n,"used")})}}n.MySQLInstrumentation=c},510039,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.MySQLInstrumentation=void 0;var r=e.r(937494);Object.defineProperty(n,"MySQLInstrumentation",{enumerable:!0,get:function(){return r.MySQLInstrumentation}})},473485,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(510039),o=e.r(976285),i=e.r(625331),a="Mysql",s=i.generateInstrumentOnce(a,()=>new r.MySQLInstrumentation({})),l=o.defineIntegration(()=>({name:a,setupOnce(){s()}}));n.instrumentMysql=s,n.mysqlIntegration=l},366020,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.DB_SYSTEM_VALUE_MYSQL=n.ATTR_NET_PEER_PORT=n.ATTR_NET_PEER_NAME=n.ATTR_DB_USER=n.ATTR_DB_SYSTEM=n.ATTR_DB_STATEMENT=n.ATTR_DB_NAME=n.ATTR_DB_CONNECTION_STRING=void 0,n.ATTR_DB_CONNECTION_STRING="db.connection_string",n.ATTR_DB_NAME="db.name",n.ATTR_DB_STATEMENT="db.statement",n.ATTR_DB_SYSTEM="db.system",n.ATTR_DB_USER="db.user",n.ATTR_NET_PEER_NAME="net.peer.name",n.ATTR_NET_PEER_PORT="net.peer.port",n.DB_SYSTEM_VALUE_MYSQL="mysql"},386127,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.addSqlCommenterComment=void 0;let r=e.r(357762),o=e.r(385692);n.addSqlCommenterComment=function(e,t){let n;if("string"!=typeof t||0===t.length||(n=t.indexOf("--"))>=0||!(0>t.indexOf("/*"))&&n{let t=encodeURIComponent(a[e]).replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`);return`${e}='${t}'`}).join(",");return`${t} /*${l}*/`}},739749,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getConnectionPrototypeToInstrument=n.once=n.getSpanName=n.getQueryText=n.getConnectionAttributes=void 0;let r=e.r(366020),o=e.r(204780),i=e.r(808119);function a(e){return e.replace(/\b\d+\b/g,"?").replace(/(["'])(?:(?=(\\?))\2.)*?\1/g,"?")}n.getConnectionAttributes=function(e,t,n){var a,s,l;let u,{host:c,port:p,database:_,user:T}=function(e){let{host:t,port:n,database:r,user:o}=e&&e.connectionConfig||e||{};return{host:t,port:n,database:r,user:o}}(e),d={};t&o.SemconvStability.OLD&&(d[r.ATTR_DB_CONNECTION_STRING]=(a=c,s=p,l=_,u=`jdbc:mysql://${a||"localhost"}`,"number"==typeof s&&(u+=`:${s}`),"string"==typeof l&&(u+=`/${l}`),u),d[r.ATTR_DB_NAME]=_,d[r.ATTR_DB_USER]=T),t&o.SemconvStability.STABLE&&(d[i.ATTR_DB_NAMESPACE]=_);let E=parseInt(p,10);return n&o.SemconvStability.OLD&&(d[r.ATTR_NET_PEER_NAME]=c,isNaN(E)||(d[r.ATTR_NET_PEER_PORT]=E)),n&o.SemconvStability.STABLE&&(d[i.ATTR_SERVER_ADDRESS]=c,isNaN(E)||(d[i.ATTR_SERVER_PORT]=E)),d},n.getQueryText=function(e,t,n,r=!1,o=a){let[i,s]="string"==typeof e?[e,n]:[e.sql,"values"in e?n||e.values:n];try{if(r)return o(i);if(t&&s)return t(i,s);return i}catch(e){return"Could not determine the query due to an error in masking or formatting"}},n.getSpanName=function(e){let t="object"==typeof e?e.sql:e,n=t?.indexOf(" ");return"number"==typeof n&&-1!==n?t?.substring(0,n):t},n.once=e=>{let t=!1;return(...n)=>{if(!t)return t=!0,e(...n)}},n.getConnectionPrototypeToInstrument=function(e){let t=e.prototype,n=Object.getPrototypeOf(t);return"function"==typeof n?.query&&"function"==typeof n?.execute?n:t}},184863,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.60.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-mysql2"},742188,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.MySQL2Instrumentation=void 0;let r=e.r(357762),o=e.r(204780),i=e.r(366020),a=e.r(386127),s=e.r(739749),l=e.r(184863),u=e.r(808119),c=[">=1.4.2 <4"];class p extends o.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(e={}){super(l.PACKAGE_NAME,l.PACKAGE_VERSION,e),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,o.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,o.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){let e;function t(t){!e&&t.format&&(e=t.format)}let n=t=>{(0,o.isWrapped)(t.query)&&this._unwrap(t,"query"),this._wrap(t,"query",this._patchQuery(e,!1)),(0,o.isWrapped)(t.execute)&&this._unwrap(t,"execute"),this._wrap(t,"execute",this._patchQuery(e,!0))},r=e=>{this._unwrap(e,"query"),this._unwrap(e,"execute")};return[new o.InstrumentationNodeModuleDefinition("mysql2",c,e=>(t(e),e),()=>{},[new o.InstrumentationNodeModuleFile("mysql2/promise.js",c,e=>(t(e),e),()=>{}),new o.InstrumentationNodeModuleFile("mysql2/lib/connection.js",c,e=>(n((0,s.getConnectionPrototypeToInstrument)(e)),e),e=>{void 0===e||r((0,s.getConnectionPrototypeToInstrument)(e))})])]}_patchQuery(e,t){return n=>{let l=this;return function(c,p,_){let T;Array.isArray(p)?T=p:arguments[2]&&(T=[p]);let{maskStatement:d,maskStatementHook:E,responseHook:S}=l.getConfig(),A=(0,s.getConnectionAttributes)(this.config,l._dbSemconvStability,l._netSemconvStability),g=(0,s.getQueryText)(c,e,T,d,E);l._dbSemconvStability&o.SemconvStability.OLD&&(A[i.ATTR_DB_SYSTEM]=i.DB_SYSTEM_VALUE_MYSQL,A[i.ATTR_DB_STATEMENT]=g),l._dbSemconvStability&o.SemconvStability.STABLE&&(A[u.ATTR_DB_SYSTEM_NAME]=u.DB_SYSTEM_NAME_VALUE_MYSQL,A[u.ATTR_DB_QUERY_TEXT]=g);let m=l.tracer.startSpan((0,s.getSpanName)(c),{kind:r.SpanKind.CLIENT,attributes:A});!t&&l.getConfig().addSqlCommenterCommentToQueries&&(arguments[0]=c="string"==typeof c?(0,a.addSqlCommenterComment)(m,c):Object.assign(c,{sql:(0,a.addSqlCommenterComment)(m,c.sql)}));let h=(0,s.once)((e,t)=>{e?m.setStatus({code:r.SpanStatusCode.ERROR,message:e.message}):"function"==typeof S&&(0,o.safeExecuteInTheMiddle)(()=>{S(m,{queryResults:t})},e=>{e&&l._diag.warn("Failed executing responseHook",e)},!0),m.end()});if(1==arguments.length){"function"==typeof c.onResult&&l._wrap(c,"onResult",l._patchCallbackQuery(h));let e=n.apply(this,arguments);return e.once("error",e=>{h(e)}).once("result",e=>{h(void 0,e)}),e}return"function"==typeof arguments[1]?l._wrap(arguments,1,l._patchCallbackQuery(h)):"function"==typeof arguments[2]&&l._wrap(arguments,2,l._patchCallbackQuery(h)),n.apply(this,arguments)}}}_patchCallbackQuery(e){return t=>function(n,r,o){return e(n,r),t(...arguments)}}}n.MySQL2Instrumentation=p},623318,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.MySQL2Instrumentation=void 0;var r=e.r(742188);Object.defineProperty(n,"MySQL2Instrumentation",{enumerable:!0,get:function(){return r.MySQL2Instrumentation}})},625680,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(623318),o=e.r(976285),i=e.r(625331),a="Mysql2",s=i.generateInstrumentOnce(a,()=>new r.MySQL2Instrumentation({responseHook(e){i.addOriginToSpan(e,"auto.db.otel.mysql2")}})),l=o.defineIntegration(()=>({name:a,setupOnce(){s()}}));n.instrumentMysql2=s,n.mysql2Integration=l},458792,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.DB_SYSTEM_VALUE_REDIS=n.DB_SYSTEM_NAME_VALUE_REDIS=n.ATTR_NET_PEER_PORT=n.ATTR_NET_PEER_NAME=n.ATTR_DB_SYSTEM=n.ATTR_DB_STATEMENT=n.ATTR_DB_CONNECTION_STRING=void 0,n.ATTR_DB_CONNECTION_STRING="db.connection_string",n.ATTR_DB_STATEMENT="db.statement",n.ATTR_DB_SYSTEM="db.system",n.ATTR_NET_PEER_NAME="net.peer.name",n.ATTR_NET_PEER_PORT="net.peer.port",n.DB_SYSTEM_NAME_VALUE_REDIS="redis",n.DB_SYSTEM_VALUE_REDIS="redis"},678116,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.endSpan=void 0;let r=e.r(357762);n.endSpan=(e,t)=>{t&&(e.recordException(t),e.setStatus({code:r.SpanStatusCode.ERROR,message:t.message})),e.end()}},744606,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.defaultDbStatementSerializer=void 0;let r=[{regex:/^ECHO/i,args:0},{regex:/^(LPUSH|MSET|PFA|PUBLISH|RPUSH|SADD|SET|SPUBLISH|XADD|ZADD)/i,args:1},{regex:/^(HSET|HMSET|LSET|LINSERT)/i,args:2},{regex:/^(ACL|BIT|B[LRZ]|CLIENT|CLUSTER|CONFIG|COMMAND|DECR|DEL|EVAL|EX|FUNCTION|GEO|GET|HINCR|HMGET|HSCAN|INCR|L[TRLM]|MEMORY|P[EFISTU]|RPOP|S[CDIMORSU]|XACK|X[CDGILPRT]|Z[CDILMPRS])/i,args:-1}];n.defaultDbStatementSerializer=(e,t)=>{if(Array.isArray(t)&&t.length){let n=r.find(({regex:t})=>t.test(e))?.args??0,o=n>=0?t.slice(0,n):t;return t.length>o.length&&o.push(`[${t.length-n} other arguments]`),`${e} ${o.join(" ")}`}return e}},983181,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.62.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-ioredis"},943579,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.IORedisInstrumentation=void 0;let r=e.r(357762),o=e.r(204780),i=e.r(808119),a=e.r(458792),s=e.r(204780),l=e.r(678116),u=e.r(744606),c=e.r(983181),p={requireParentSpan:!0};class _ extends o.InstrumentationBase{_netSemconvStability;_dbSemconvStability;constructor(e={}){super(c.PACKAGE_NAME,c.PACKAGE_VERSION,{...p,...e}),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,o.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,o.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(e={}){super.setConfig({...p,...e})}init(){return[new o.InstrumentationNodeModuleDefinition("ioredis",[">=2.0.0 <6"],(e,t)=>{let n="Module"===e[Symbol.toStringTag]?e.default:e;return(0,o.isWrapped)(n.prototype.sendCommand)&&this._unwrap(n.prototype,"sendCommand"),this._wrap(n.prototype,"sendCommand",this._patchSendCommand(t)),(0,o.isWrapped)(n.prototype.connect)&&this._unwrap(n.prototype,"connect"),this._wrap(n.prototype,"connect",this._patchConnection()),e},e=>{if(void 0===e)return;let t="Module"===e[Symbol.toStringTag]?e.default:e;this._unwrap(t.prototype,"sendCommand"),this._unwrap(t.prototype,"connect")})]}_patchSendCommand(e){return t=>this._traceSendCommand(t,e)}_patchConnection(){return e=>this._traceConnection(e)}_traceSendCommand(e,t){let n=this;return function(c){if(arguments.length<1||"object"!=typeof c)return e.apply(this,arguments);let p=n.getConfig(),_=p.dbStatementSerializer||u.defaultDbStatementSerializer,T=void 0===r.trace.getSpan(r.context.active());if(!0===p.requireParentSpan&&T)return e.apply(this,arguments);let d={},{host:E,port:S}=this.options,A=_(c.name,c.args);n._dbSemconvStability&o.SemconvStability.OLD&&(d[a.ATTR_DB_SYSTEM]=a.DB_SYSTEM_VALUE_REDIS,d[a.ATTR_DB_STATEMENT]=A,d[a.ATTR_DB_CONNECTION_STRING]=`redis://${E}:${S}`),n._dbSemconvStability&o.SemconvStability.STABLE&&(d[i.ATTR_DB_SYSTEM_NAME]=a.DB_SYSTEM_NAME_VALUE_REDIS,d[i.ATTR_DB_QUERY_TEXT]=A),n._netSemconvStability&o.SemconvStability.OLD&&(d[a.ATTR_NET_PEER_NAME]=E,d[a.ATTR_NET_PEER_PORT]=S),n._netSemconvStability&o.SemconvStability.STABLE&&(d[i.ATTR_SERVER_ADDRESS]=E,d[i.ATTR_SERVER_PORT]=S);let g=n.tracer.startSpan(c.name,{kind:r.SpanKind.CLIENT,attributes:d}),{requestHook:m}=p;m&&(0,s.safeExecuteInTheMiddle)(()=>m(g,{moduleVersion:t,cmdName:c.name,cmdArgs:c.args}),e=>{e&&r.diag.error("ioredis instrumentation: request hook failed",e)},!0);try{let t=e.apply(this,arguments),n=c.resolve;c.resolve=function(e){(0,s.safeExecuteInTheMiddle)(()=>p.responseHook?.(g,c.name,c.args,e),e=>{e&&r.diag.error("ioredis instrumentation: response hook failed",e)},!0),(0,l.endSpan)(g,null),n(e)};let o=c.reject;return c.reject=function(e){(0,l.endSpan)(g,e),o(e)},t}catch(e){throw(0,l.endSpan)(g,e),e}}}_traceConnection(e){let t=this;return function(){let n=void 0===r.trace.getSpan(r.context.active());if(!0===t.getConfig().requireParentSpan&&n)return e.apply(this,arguments);let s={},{host:u,port:c}=this.options;t._dbSemconvStability&o.SemconvStability.OLD&&(s[a.ATTR_DB_SYSTEM]=a.DB_SYSTEM_VALUE_REDIS,s[a.ATTR_DB_STATEMENT]="connect",s[a.ATTR_DB_CONNECTION_STRING]=`redis://${u}:${c}`),t._dbSemconvStability&o.SemconvStability.STABLE&&(s[i.ATTR_DB_SYSTEM_NAME]=a.DB_SYSTEM_NAME_VALUE_REDIS,s[i.ATTR_DB_QUERY_TEXT]="connect"),t._netSemconvStability&o.SemconvStability.OLD&&(s[a.ATTR_NET_PEER_NAME]=u,s[a.ATTR_NET_PEER_PORT]=c),t._netSemconvStability&o.SemconvStability.STABLE&&(s[i.ATTR_SERVER_ADDRESS]=u,s[i.ATTR_SERVER_PORT]=c);let p=t.tracer.startSpan("connect",{kind:r.SpanKind.CLIENT,attributes:s});try{let t=e.apply(this,arguments);return(0,l.endSpan)(p,null),t}catch(e){throw(0,l.endSpan)(p,e),e}}}}n.IORedisInstrumentation=_},788406,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.IORedisInstrumentation=void 0;var r=e.r(943579);Object.defineProperty(n,"IORedisInstrumentation",{enumerable:!0,get:function(){return r.IORedisInstrumentation}})},680749,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.62.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-redis"},324932,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getTracedCreateStreamTrace=n.getTracedCreateClient=n.endSpan=void 0;let r=e.r(357762);n.endSpan=(e,t)=>{t&&e.setStatus({code:r.SpanStatusCode.ERROR,message:t.message}),e.end()},n.getTracedCreateClient=e=>function(){let t=e.apply(this,arguments);return r.context.bind(r.context.active(),t)},n.getTracedCreateStreamTrace=e=>function(){return Object.prototype.hasOwnProperty.call(this,"stream")||Object.defineProperty(this,"stream",{get(){return this._patched_redis_stream},set(e){r.context.bind(r.context.active(),e),this._patched_redis_stream=e}}),e.apply(this,arguments)}},985163,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.DB_SYSTEM_VALUE_REDIS=n.DB_SYSTEM_NAME_VALUE_REDIS=n.ATTR_NET_PEER_PORT=n.ATTR_NET_PEER_NAME=n.ATTR_DB_SYSTEM=n.ATTR_DB_STATEMENT=n.ATTR_DB_CONNECTION_STRING=void 0,n.ATTR_DB_CONNECTION_STRING="db.connection_string",n.ATTR_DB_STATEMENT="db.statement",n.ATTR_DB_SYSTEM="db.system",n.ATTR_NET_PEER_NAME="net.peer.name",n.ATTR_NET_PEER_PORT="net.peer.port",n.DB_SYSTEM_NAME_VALUE_REDIS="redis",n.DB_SYSTEM_VALUE_REDIS="redis"},868434,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.RedisInstrumentationV2_V3=void 0;let r=e.r(204780),o=e.r(324932),i=e.r(680749),a=e.r(357762),s=e.r(808119),l=e.r(985163),u=e.r(744606);class c extends r.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(e={}){super(i.PACKAGE_NAME,i.PACKAGE_VERSION,e),this._semconvStability=e.semconvStability?e.semconvStability:(0,r.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(e={}){super.setConfig(e),this._semconvStability=e.semconvStability?e.semconvStability:(0,r.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return[new r.InstrumentationNodeModuleDefinition("redis",[">=2.6.0 <4"],e=>((0,r.isWrapped)(e.RedisClient.prototype.internal_send_command)&&this._unwrap(e.RedisClient.prototype,"internal_send_command"),this._wrap(e.RedisClient.prototype,"internal_send_command",this._getPatchInternalSendCommand()),(0,r.isWrapped)(e.RedisClient.prototype.create_stream)&&this._unwrap(e.RedisClient.prototype,"create_stream"),this._wrap(e.RedisClient.prototype,"create_stream",this._getPatchCreateStream()),(0,r.isWrapped)(e.createClient)&&this._unwrap(e,"createClient"),this._wrap(e,"createClient",this._getPatchCreateClient()),e),e=>{void 0!==e&&(this._unwrap(e.RedisClient.prototype,"internal_send_command"),this._unwrap(e.RedisClient.prototype,"create_stream"),this._unwrap(e,"createClient"))})]}_getPatchInternalSendCommand(){let e=this;return function(t){return function(n){if(1!=arguments.length||"object"!=typeof n)return t.apply(this,arguments);let i=e.getConfig(),p=void 0===a.trace.getSpan(a.context.active());if(!0===i.requireParentSpan&&p)return t.apply(this,arguments);let _=i?.dbStatementSerializer||u.defaultDbStatementSerializer,T={};e._semconvStability&r.SemconvStability.OLD&&Object.assign(T,{[l.ATTR_DB_SYSTEM]:l.DB_SYSTEM_VALUE_REDIS,[l.ATTR_DB_STATEMENT]:_(n.command,n.args)}),e._semconvStability&r.SemconvStability.STABLE&&Object.assign(T,{[s.ATTR_DB_SYSTEM_NAME]:l.DB_SYSTEM_NAME_VALUE_REDIS,[s.ATTR_DB_OPERATION_NAME]:n.command,[s.ATTR_DB_QUERY_TEXT]:_(n.command,n.args)});let d=e.tracer.startSpan(`${c.COMPONENT}-${n.command}`,{kind:a.SpanKind.CLIENT,attributes:T});if(this.connection_options){let t={};e._semconvStability&r.SemconvStability.OLD&&Object.assign(t,{[l.ATTR_NET_PEER_NAME]:this.connection_options.host,[l.ATTR_NET_PEER_PORT]:this.connection_options.port}),e._semconvStability&r.SemconvStability.STABLE&&Object.assign(t,{[s.ATTR_SERVER_ADDRESS]:this.connection_options.host,[s.ATTR_SERVER_PORT]:this.connection_options.port}),d.setAttributes(t)}this.address&&e._semconvStability&r.SemconvStability.OLD&&d.setAttribute(l.ATTR_DB_CONNECTION_STRING,`redis://${this.address}`);let E=arguments[0].callback;if(E){let t=a.context.active();arguments[0].callback=function(s,l){if(i?.responseHook){let t=i.responseHook;(0,r.safeExecuteInTheMiddle)(()=>{t(d,n.command,n.args,l)},t=>{t&&e._diag.error("Error executing responseHook",t)},!0)}return(0,o.endSpan)(d,s),a.context.with(t,E,this,...arguments)}}try{return t.apply(this,arguments)}catch(e){throw(0,o.endSpan)(d,e),e}}}}_getPatchCreateClient(){return function(e){return(0,o.getTracedCreateClient)(e)}}_getPatchCreateStream(){return function(e){return(0,o.getTracedCreateStreamTrace)(e)}}}n.RedisInstrumentationV2_V3=c},33280,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getClientAttributes=void 0;let r=e.r(808119),o=e.r(985163),i=e.r(204780);n.getClientAttributes=function(e,t,n){let a={};return n&i.SemconvStability.OLD&&Object.assign(a,{[o.ATTR_DB_SYSTEM]:o.DB_SYSTEM_VALUE_REDIS,[o.ATTR_NET_PEER_NAME]:t?.socket?.host,[o.ATTR_NET_PEER_PORT]:t?.socket?.port,[o.ATTR_DB_CONNECTION_STRING]:function(e,t){if("string"==typeof t&&t)try{let e=new URL(t);return e.searchParams.delete("user_pwd"),e.username="",e.password="",e.href}catch(t){e.error("failed to sanitize redis connection url",t)}}(e,t?.url)}),n&i.SemconvStability.STABLE&&Object.assign(a,{[r.ATTR_DB_SYSTEM_NAME]:o.DB_SYSTEM_NAME_VALUE_REDIS,[r.ATTR_SERVER_ADDRESS]:t?.socket?.host,[r.ATTR_SERVER_PORT]:t?.socket?.port}),a}},130932,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.RedisInstrumentationV4_V5=void 0;let r=e.r(357762),o=e.r(204780),i=e.r(33280),a=e.r(744606),s=e.r(680749),l=e.r(808119),u=e.r(985163),c=Symbol("opentelemetry.instrumentation.redis.open_spans"),p=Symbol("opentelemetry.instrumentation.redis.multi_command_options");class _ extends o.InstrumentationBase{static COMPONENT="redis";_semconvStability;constructor(e={}){super(s.PACKAGE_NAME,s.PACKAGE_VERSION,e),this._semconvStability=e.semconvStability?e.semconvStability:(0,o.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(e={}){super.setConfig(e),this._semconvStability=e.semconvStability?e.semconvStability:(0,o.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return[this._getInstrumentationNodeModuleDefinition("@redis/client"),this._getInstrumentationNodeModuleDefinition("@node-redis/client")]}_getInstrumentationNodeModuleDefinition(e){let t=new o.InstrumentationNodeModuleFile(`${e}/dist/lib/commander.js`,["^1.0.0"],(e,t)=>{let n=e.transformCommandArguments;if(!n)return this._diag.error("internal instrumentation error, missing transformCommandArguments function"),e;let r=t?.startsWith("1.0.")?"extendWithCommands":"attachCommands";return(0,o.isWrapped)(e?.[r])&&this._unwrap(e,r),this._wrap(e,r,this._getPatchExtendWithCommands(n)),e},e=>{(0,o.isWrapped)(e?.extendWithCommands)&&this._unwrap(e,"extendWithCommands"),(0,o.isWrapped)(e?.attachCommands)&&this._unwrap(e,"attachCommands")}),n=new o.InstrumentationNodeModuleFile(`${e}/dist/lib/client/multi-command.js`,["^1.0.0","^5.0.0"],e=>{let t=e?.default?.prototype;return(0,o.isWrapped)(t?.exec)&&this._unwrap(t,"exec"),this._wrap(t,"exec",this._getPatchMultiCommandsExec(!1)),(0,o.isWrapped)(t?.execAsPipeline)&&this._unwrap(t,"execAsPipeline"),this._wrap(t,"execAsPipeline",this._getPatchMultiCommandsExec(!0)),(0,o.isWrapped)(t?.addCommand)&&this._unwrap(t,"addCommand"),this._wrap(t,"addCommand",this._getPatchMultiCommandsAddCommand()),e},e=>{let t=e?.default?.prototype;(0,o.isWrapped)(t?.exec)&&this._unwrap(t,"exec"),(0,o.isWrapped)(t?.addCommand)&&this._unwrap(t,"addCommand")}),r=new o.InstrumentationNodeModuleFile(`${e}/dist/lib/client/index.js`,["^1.0.0","^5.0.0"],e=>{let t=e?.default?.prototype;return t?.multi&&((0,o.isWrapped)(t?.multi)&&this._unwrap(t,"multi"),this._wrap(t,"multi",this._getPatchRedisClientMulti())),t?.MULTI&&((0,o.isWrapped)(t?.MULTI)&&this._unwrap(t,"MULTI"),this._wrap(t,"MULTI",this._getPatchRedisClientMulti())),(0,o.isWrapped)(t?.sendCommand)&&this._unwrap(t,"sendCommand"),this._wrap(t,"sendCommand",this._getPatchRedisClientSendCommand()),this._wrap(t,"connect",this._getPatchedClientConnect()),e},e=>{let t=e?.default?.prototype;(0,o.isWrapped)(t?.multi)&&this._unwrap(t,"multi"),(0,o.isWrapped)(t?.MULTI)&&this._unwrap(t,"MULTI"),(0,o.isWrapped)(t?.sendCommand)&&this._unwrap(t,"sendCommand")});return new o.InstrumentationNodeModuleDefinition(e,["^1.0.0","^5.0.0"],e=>e,()=>{},[t,n,r])}_getPatchExtendWithCommands(e){let t=this;return function(n){return function(r){if(r?.BaseClass?.name!=="RedisClient")return n.apply(this,arguments);let o=r.executor;return r.executor=function(n,r){let i=e(n,r).args;return t._traceClientCommand(o,this,arguments,i)},n.apply(this,arguments)}}}_getPatchMultiCommandsExec(e){let t=this;return function(n){return function(){let r=n.apply(this,arguments);return"function"!=typeof r?.then?(t._diag.error("non-promise result when patching exec/execAsPipeline"),r):r.then(n=>{let r=this[c];return t._endSpansWithRedisReplies(r,n,e),n}).catch(n=>{let r=this[c];if(r){let o="MultiErrorReply"===n.constructor.name?n.replies:Array(r.length).fill(n);t._endSpansWithRedisReplies(r,o,e)}else t._diag.error("cannot find open spans to end for multi/pipeline");return Promise.reject(n)})}}}_getPatchMultiCommandsAddCommand(){let e=this;return function(t){return function(n){return e._traceClientCommand(t,this,arguments,n)}}}_getPatchRedisClientMulti(){return function(e){return function(){let t=e.apply(this,arguments);return t[p]=this.options,t}}}_getPatchRedisClientSendCommand(){let e=this;return function(t){return function(n){return e._traceClientCommand(t,this,arguments,n)}}}_getPatchedClientConnect(){let e=this;return function(t){return function(){let n=this.options,o=(0,i.getClientAttributes)(e._diag,n,e._semconvStability),a=e.tracer.startSpan(`${_.COMPONENT}-connect`,{kind:r.SpanKind.CLIENT,attributes:o});return r.context.with(r.trace.setSpan(r.context.active(),a),()=>t.apply(this)).then(e=>(a.end(),e)).catch(e=>(a.recordException(e),a.setStatus({code:r.SpanStatusCode.ERROR,message:e.message}),a.end(),Promise.reject(e)))}}}_traceClientCommand(e,t,n,s){if(void 0===r.trace.getSpan(r.context.active())&&this.getConfig().requireParentSpan)return e.apply(t,n);let T=t.options||t[p],d=s[0],E=s.slice(1),S=this.getConfig().dbStatementSerializer||a.defaultDbStatementSerializer,A=(0,i.getClientAttributes)(this._diag,T,this._semconvStability);this._semconvStability&o.SemconvStability.STABLE&&(A[l.ATTR_DB_OPERATION_NAME]=d);try{let e=S(d,E);null!=e&&(this._semconvStability&o.SemconvStability.OLD&&(A[u.ATTR_DB_STATEMENT]=e),this._semconvStability&o.SemconvStability.STABLE&&(A[l.ATTR_DB_QUERY_TEXT]=e))}catch(e){this._diag.error("dbStatementSerializer throw an exception",e,{commandName:d})}let g=this.tracer.startSpan(`${_.COMPONENT}-${d}`,{kind:r.SpanKind.CLIENT,attributes:A}),m=r.context.with(r.trace.setSpan(r.context.active(),g),()=>e.apply(t,n));return"function"==typeof m?.then?m.then(e=>{this._endSpanWithResponse(g,d,E,e,void 0)},e=>{this._endSpanWithResponse(g,d,E,null,e)}):(m[c]=m[c]||[],m[c].push({span:g,commandName:d,commandArgs:E})),m}_endSpansWithRedisReplies(e,t,n=!1){if(!e)return this._diag.error("cannot find open spans to end for redis multi/pipeline");if(t.length!==e.length)return this._diag.error("number of multi command spans does not match response from redis");let r=e.map(e=>e.commandName),i=r.every(e=>e===r[0])?(n?"PIPELINE ":"MULTI ")+r[0]:n?"PIPELINE":"MULTI";for(let n=0;n{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.RedisInstrumentation=void 0;let r=e.r(204780),o=e.r(680749),i=e.r(868434),a=e.r(130932),s={requireParentSpan:!1};class l extends r.InstrumentationBase{instrumentationV2_V3;instrumentationV4_V5;initialized=!1;constructor(e={}){const t={...s,...e};super(o.PACKAGE_NAME,o.PACKAGE_VERSION,t),this.instrumentationV2_V3=new i.RedisInstrumentationV2_V3(this.getConfig()),this.instrumentationV4_V5=new a.RedisInstrumentationV4_V5(this.getConfig()),this.initialized=!0}setConfig(e={}){let t={...s,...e};super.setConfig(t),this.initialized&&(this.instrumentationV2_V3.setConfig(t),this.instrumentationV4_V5.setConfig(t))}init(){}getModuleDefinitions(){return[...this.instrumentationV2_V3.getModuleDefinitions(),...this.instrumentationV4_V5.getModuleDefinitions()]}setTracerProvider(e){super.setTracerProvider(e),this.initialized&&(this.instrumentationV2_V3.setTracerProvider(e),this.instrumentationV4_V5.setTracerProvider(e))}enable(){super.enable(),this.initialized&&(this.instrumentationV2_V3.enable(),this.instrumentationV4_V5.enable())}disable(){super.disable(),this.initialized&&(this.instrumentationV2_V3.disable(),this.instrumentationV4_V5.disable())}}n.RedisInstrumentation=l},339097,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.RedisInstrumentation=void 0;var r=e.r(276221);Object.defineProperty(n,"RedisInstrumentation",{enumerable:!0,get:function(){return r.RedisInstrumentation}})},688662,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=["get","set","setex"],o=["get","mget"],i=["set","setex"];function a(e,t){return e.includes(t.toLowerCase())}function s(e){return a(o,e)?"cache.get":a(i,e)?"cache.put":void 0}function l(e){let t=[],n=e=>{e.forEach(e=>{Array.isArray(e)?n(e):t.push(e)})};return n(e),t}n.GET_COMMANDS=o,n.SET_COMMANDS=i,n.calculateCacheItemSize=function(e){let t=e=>{try{if(Buffer.isBuffer(e))return e.byteLength;if("string"==typeof e)return e.length;if("number"==typeof e)return e.toString().length;else if(null==e)return 0;return JSON.stringify(e).length}catch{return}};return Array.isArray(e)?e.reduce((e,n)=>{let r=t(n);return"number"==typeof r?void 0!==e?e+r:r:e},0):t(e)},n.getCacheKeySafely=function(e,t){try{if(0===t.length)return;let n=e=>"string"==typeof e||"number"==typeof e||Buffer.isBuffer(e)?[e.toString()]:Array.isArray(e)?l(e.map(e=>n(e))):[""],o=t[0];if(a(r,e)&&null!=o)return n(o);return l(t.map(e=>n(e)))}catch{return}},n.getCacheOperation=s,n.isInCommands=a,n.shouldConsiderForCache=function(e,t,n){if(!s(e))return!1;for(let e of t)if(function(e,t){return t.some(t=>e.startsWith(t))}(e,n))return!0;return!1}},978486,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(788406),o=e.r(339097),i=e.r(976285),a=e.r(625331),s=e.r(688662),l="Redis";n._redisOptions={};let u=(e,t,r,o)=>{e.setAttribute(i.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,"auto.db.otel.redis");let a=s.getCacheKeySafely(t,r),l=s.getCacheOperation(t);if(!a||!l||!n._redisOptions.cachePrefixes||!s.shouldConsiderForCache(t,a,n._redisOptions.cachePrefixes))return;let u=i.spanToJSON(e).data["net.peer.name"],c=i.spanToJSON(e).data["net.peer.port"];c&&u&&e.setAttributes({"network.peer.address":u,"network.peer.port":c});let p=s.calculateCacheItemSize(o);p&&e.setAttribute(i.SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE,p),s.isInCommands(s.GET_COMMANDS,t)&&void 0!==p&&e.setAttribute(i.SEMANTIC_ATTRIBUTE_CACHE_HIT,p>0),e.setAttributes({[i.SEMANTIC_ATTRIBUTE_SENTRY_OP]:l,[i.SEMANTIC_ATTRIBUTE_CACHE_KEY]:a});let _=a.join(", ");e.updateName(n._redisOptions.maxCacheKeyLength?i.truncate(_,n._redisOptions.maxCacheKeyLength):_)},c=a.generateInstrumentOnce(`${l}.IORedis`,()=>new r.IORedisInstrumentation({responseHook:u})),p=a.generateInstrumentOnce(`${l}.Redis`,()=>new o.RedisInstrumentation({responseHook:u})),_=Object.assign(()=>{c(),p()},{id:l}),T=i.defineIntegration((e={})=>({name:l,setupOnce(){n._redisOptions=e,_()}}));n.cacheResponseHook=u,n.instrumentRedis=_,n.redisIntegration=T},400893,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.EVENT_LISTENERS_SET=void 0,n.EVENT_LISTENERS_SET=Symbol("opentelemetry.instrumentation.pg.eventListenersSet")},894105,(e,t,n)=>{"use strict";var r;Object.defineProperty(n,"__esModule",{value:!0}),n.AttributeNames=void 0,(r=n.AttributeNames||(n.AttributeNames={})).PG_VALUES="db.postgresql.values",r.PG_PLAN="db.postgresql.plan",r.IDLE_TIMEOUT_MILLIS="db.postgresql.idle.timeout.millis",r.MAX_CLIENT="db.postgresql.max.client"},184319,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS=n.METRIC_DB_CLIENT_CONNECTION_COUNT=n.DB_SYSTEM_VALUE_POSTGRESQL=n.DB_CLIENT_CONNECTION_STATE_VALUE_USED=n.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE=n.ATTR_NET_PEER_PORT=n.ATTR_NET_PEER_NAME=n.ATTR_DB_USER=n.ATTR_DB_SYSTEM=n.ATTR_DB_STATEMENT=n.ATTR_DB_NAME=n.ATTR_DB_CONNECTION_STRING=n.ATTR_DB_CLIENT_CONNECTION_STATE=n.ATTR_DB_CLIENT_CONNECTION_POOL_NAME=void 0,n.ATTR_DB_CLIENT_CONNECTION_POOL_NAME="db.client.connection.pool.name",n.ATTR_DB_CLIENT_CONNECTION_STATE="db.client.connection.state",n.ATTR_DB_CONNECTION_STRING="db.connection_string",n.ATTR_DB_NAME="db.name",n.ATTR_DB_STATEMENT="db.statement",n.ATTR_DB_SYSTEM="db.system",n.ATTR_DB_USER="db.user",n.ATTR_NET_PEER_NAME="net.peer.name",n.ATTR_NET_PEER_PORT="net.peer.port",n.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE="idle",n.DB_CLIENT_CONNECTION_STATE_VALUE_USED="used",n.DB_SYSTEM_VALUE_POSTGRESQL="postgresql",n.METRIC_DB_CLIENT_CONNECTION_COUNT="db.client.connection.count",n.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS="db.client.connection.pending_requests"},465522,(e,t,n)=>{"use strict";var r;Object.defineProperty(n,"__esModule",{value:!0}),n.SpanNames=void 0,(r=n.SpanNames||(n.SpanNames={})).QUERY_PREFIX="pg.query",r.CONNECT="pg.connect",r.POOL_CONNECT="pg-pool.connect"},482101,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.sanitizedErrorMessage=n.isObjectWithTextString=n.getErrorMessage=n.patchClientConnectCallback=n.patchCallbackPGPool=n.updateCounter=n.getPoolName=n.patchCallback=n.handleExecutionResult=n.handleConfigQuery=n.shouldSkipInstrumentation=n.getSemanticAttributesFromPoolConnection=n.getSemanticAttributesFromConnection=n.getConnectionString=n.parseAndMaskConnectionString=n.parseNormalizedOperationName=n.getQuerySpanName=void 0;let r=e.r(357762),o=e.r(894105),i=e.r(808119),a=e.r(184319),s=e.r(204780),l=e.r(465522);function u(e,t){if(!t)return l.SpanNames.QUERY_PREFIX;let n="string"==typeof t.name&&t.name?t.name:c(t.text);return`${l.SpanNames.QUERY_PREFIX}:${n}${e?` ${e}`:""}`}function c(e){let t=e.trim(),n=t.indexOf(" "),r=-1===n?t:t.slice(0,n);return(r=r.toUpperCase()).endsWith(";")?r.slice(0,-1):r}function p(e){try{let t=new URL(e);return t.username="",t.password="",t.toString()}catch(e){return"postgresql://localhost:5432/"}}function _(e){if("connectionString"in e&&e.connectionString)return p(e.connectionString);let t=e.host||"localhost",n=e.port||5432,r=e.database||"";return`postgresql://${t}:${n}/${r}`}function T(e){if(Number.isInteger(e))return e}function d(e,t){let n={};return t&s.SemconvStability.OLD&&(n={...n,[a.ATTR_DB_SYSTEM]:a.DB_SYSTEM_VALUE_POSTGRESQL,[a.ATTR_DB_NAME]:e.database,[a.ATTR_DB_CONNECTION_STRING]:_(e),[a.ATTR_DB_USER]:e.user,[a.ATTR_NET_PEER_NAME]:e.host,[a.ATTR_NET_PEER_PORT]:T(e.port)}),t&s.SemconvStability.STABLE&&(n={...n,[i.ATTR_DB_SYSTEM_NAME]:i.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[i.ATTR_DB_NAMESPACE]:e.namespace,[i.ATTR_SERVER_ADDRESS]:e.host,[i.ATTR_SERVER_PORT]:T(e.port)}),n}function E(e,t,n){"function"==typeof e.responseHook&&(0,s.safeExecuteInTheMiddle)(()=>{e.responseHook(t,{data:n})},e=>{e&&r.diag.error("Error running response hook",e)},!0)}function S(e){let t=e?.name??"PostgreSQLError",n=e?.code??"UNKNOWN";return`PostgreSQL error of type '${t}' occurred (code: ${n})`}n.getQuerySpanName=u,n.parseNormalizedOperationName=c,n.parseAndMaskConnectionString=p,n.getConnectionString=_,n.getSemanticAttributesFromConnection=d,n.getSemanticAttributesFromPoolConnection=function(e,t){let n;try{n=e.connectionString?new URL(e.connectionString):void 0}catch(e){n=void 0}let r={[o.AttributeNames.IDLE_TIMEOUT_MILLIS]:e.idleTimeoutMillis,[o.AttributeNames.MAX_CLIENT]:e.maxClient};return t&s.SemconvStability.OLD&&(r={...r,[a.ATTR_DB_SYSTEM]:a.DB_SYSTEM_VALUE_POSTGRESQL,[a.ATTR_DB_NAME]:n?.pathname.slice(1)??e.database,[a.ATTR_DB_CONNECTION_STRING]:_(e),[a.ATTR_NET_PEER_NAME]:n?.hostname??e.host,[a.ATTR_NET_PEER_PORT]:Number(n?.port)||T(e.port),[a.ATTR_DB_USER]:n?.username??e.user}),t&s.SemconvStability.STABLE&&(r={...r,[i.ATTR_DB_SYSTEM_NAME]:i.DB_SYSTEM_NAME_VALUE_POSTGRESQL,[i.ATTR_DB_NAMESPACE]:e.namespace,[i.ATTR_SERVER_ADDRESS]:n?.hostname??e.host,[i.ATTR_SERVER_PORT]:Number(n?.port)||T(e.port)}),r},n.shouldSkipInstrumentation=function(e){return!0===e.requireParentSpan&&void 0===r.trace.getSpan(r.context.active())},n.handleConfigQuery=function(e,t,n,l){let{connectionParameters:c}=this,p=u(c.database,l),_=e.startSpan(p,{kind:r.SpanKind.CLIENT,attributes:d(c,n)});if(!l)return _;if(l.text&&(n&s.SemconvStability.OLD&&_.setAttribute(a.ATTR_DB_STATEMENT,l.text),n&s.SemconvStability.STABLE&&_.setAttribute(i.ATTR_DB_QUERY_TEXT,l.text)),t.enhancedDatabaseReporting&&Array.isArray(l.values))try{let e=l.values.map(e=>null==e?"null":e instanceof Buffer?e.toString():"object"!=typeof e?e.toString():"function"==typeof e.toPostgres?e.toPostgres():JSON.stringify(e));_.setAttribute(o.AttributeNames.PG_VALUES,e)}catch(e){r.diag.error("failed to stringify ",l.values,e)}return"string"==typeof l.name&&_.setAttribute(o.AttributeNames.PG_PLAN,l.name),_},n.handleExecutionResult=E,n.patchCallback=function(e,t,n,o,a){return function(s,l){s?(Object.prototype.hasOwnProperty.call(s,"code")&&(o[i.ATTR_ERROR_TYPE]=s.code),s instanceof Error&&t.recordException(S(s)),t.setStatus({code:r.SpanStatusCode.ERROR,message:s.message})):E(e,t,l),a(),t.end(),n.call(this,s,l)}},n.getPoolName=function(e){let t="";return(t+=(e?.host?`${e.host}`:"unknown_host")+":"+(e?.port?`${e.port}`:"unknown_port")+"/"+(e?.database?`${e.database}`:"unknown_database")).trim()},n.updateCounter=function(e,t,n,r,o){let i=t.totalCount,s=t.waitingCount,l=t.idleCount,u=i-l;return n.add(u-o.used,{[a.ATTR_DB_CLIENT_CONNECTION_STATE]:a.DB_CLIENT_CONNECTION_STATE_VALUE_USED,[a.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:e}),n.add(l-o.idle,{[a.ATTR_DB_CLIENT_CONNECTION_STATE]:a.DB_CLIENT_CONNECTION_STATE_VALUE_IDLE,[a.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:e}),r.add(s-o.pending,{[a.ATTR_DB_CLIENT_CONNECTION_POOL_NAME]:e}),{used:u,idle:l,pending:s}},n.patchCallbackPGPool=function(e,t){return function(n,o,i){n&&(n instanceof Error&&e.recordException(S(n)),e.setStatus({code:r.SpanStatusCode.ERROR,message:n.message})),e.end(),t.call(this,n,o,i)}},n.patchClientConnectCallback=function(e,t){return function(n){n&&(n instanceof Error&&e.recordException(S(n)),e.setStatus({code:r.SpanStatusCode.ERROR,message:n.message})),e.end(),t.apply(this,arguments)}},n.getErrorMessage=function(e){return"object"==typeof e&&null!==e&&"message"in e?String(e.message):void 0},n.isObjectWithTextString=function(e){return"object"==typeof e&&"string"==typeof e?.text},n.sanitizedErrorMessage=S},324552,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.66.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-pg"},451598,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PgInstrumentation=void 0;let r=e.r(204780),o=e.r(357762),i=e.r(400893),a=e.r(482101),s=e.r(386127),l=e.r(324552),u=e.r(465522),c=e.r(385692),p=e.r(808119),_=e.r(184319);function T(e){return"Module"===e[Symbol.toStringTag]?e.default:e}class d extends r.InstrumentationBase{_connectionsCounter={used:0,idle:0,pending:0};_semconvStability;constructor(e={}){super(l.PACKAGE_NAME,l.PACKAGE_VERSION,e),this._semconvStability=(0,r.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}_updateMetricInstruments(){this._operationDuration=this.meter.createHistogram(p.METRIC_DB_CLIENT_OPERATION_DURATION,{description:"Duration of database client operations.",unit:"s",valueType:o.ValueType.DOUBLE,advice:{explicitBucketBoundaries:[.001,.005,.01,.05,.1,.5,1,5,10]}}),this._connectionsCounter={idle:0,pending:0,used:0},this._connectionsCount=this.meter.createUpDownCounter(_.METRIC_DB_CLIENT_CONNECTION_COUNT,{description:"The number of connections that are currently in state described by the state attribute.",unit:"{connection}"}),this._connectionPendingRequests=this.meter.createUpDownCounter(_.METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS,{description:"The number of current pending requests for an open connection.",unit:"{connection}"})}init(){let e=[">=8.0.3 <9"],t=new r.InstrumentationNodeModuleFile("pg/lib/native/client.js",e,this._patchPgClient.bind(this),this._unpatchPgClient.bind(this)),n=new r.InstrumentationNodeModuleFile("pg/lib/client.js",e,this._patchPgClient.bind(this),this._unpatchPgClient.bind(this));return[new r.InstrumentationNodeModuleDefinition("pg",e,e=>{let t=T(e);return this._patchPgClient(t.Client),e},e=>{let t=T(e);return this._unpatchPgClient(t.Client),e},[n,t]),new r.InstrumentationNodeModuleDefinition("pg-pool",[">=2.0.0 <4"],e=>{let t=T(e);return(0,r.isWrapped)(t.prototype.connect)&&this._unwrap(t.prototype,"connect"),this._wrap(t.prototype,"connect",this._getPoolConnectPatch()),t},e=>{let t=T(e);(0,r.isWrapped)(t.prototype.connect)&&this._unwrap(t.prototype,"connect")})]}_patchPgClient(e){if(!e)return;let t=T(e);return(0,r.isWrapped)(t.prototype.query)&&this._unwrap(t.prototype,"query"),(0,r.isWrapped)(t.prototype.connect)&&this._unwrap(t.prototype,"connect"),this._wrap(t.prototype,"query",this._getClientQueryPatch()),this._wrap(t.prototype,"connect",this._getClientConnectPatch()),e}_unpatchPgClient(e){let t=T(e);return(0,r.isWrapped)(t.prototype.query)&&this._unwrap(t.prototype,"query"),(0,r.isWrapped)(t.prototype.connect)&&this._unwrap(t.prototype,"connect"),e}_getClientConnectPatch(){let e=this;return t=>function(n){let r=e.getConfig();if(a.shouldSkipInstrumentation(r)||r.ignoreConnectSpans)return t.call(this,n);let i=e.tracer.startSpan(u.SpanNames.CONNECT,{kind:o.SpanKind.CLIENT,attributes:a.getSemanticAttributesFromConnection(this,e._semconvStability)});if(n){let e=o.trace.getSpan(o.context.active());n=a.patchClientConnectCallback(i,n),e&&(n=o.context.bind(o.context.active(),n))}let s=o.context.with(o.trace.setSpan(o.context.active(),i),()=>t.call(this,n));return E(i,s)}}recordOperationDuration(e,t){let n={},o=[p.ATTR_DB_NAMESPACE,p.ATTR_ERROR_TYPE,p.ATTR_SERVER_PORT,p.ATTR_SERVER_ADDRESS,p.ATTR_DB_OPERATION_NAME];this._semconvStability&r.SemconvStability.OLD&&o.push(_.ATTR_DB_SYSTEM),this._semconvStability&r.SemconvStability.STABLE&&o.push(p.ATTR_DB_SYSTEM_NAME),o.forEach(t=>{t in e&&(n[t]=e[t])});let i=(0,c.hrTimeToMilliseconds)((0,c.hrTimeDuration)(t,(0,c.hrTime)()))/1e3;this._operationDuration.record(i,n)}_getClientQueryPatch(){let e=this;return t=>(this._diag.debug("Patching pg.Client.prototype.query"),function(...n){let i;if(a.shouldSkipInstrumentation(e.getConfig()))return t.apply(this,n);let l=(0,c.hrTime)(),u=n[0],T="string"==typeof u,d=a.isObjectWithTextString(u),E=T?{text:u,values:Array.isArray(n[1])?n[1]:void 0}:d?{...u,name:u.name,text:u.text,values:u.values??(Array.isArray(n[1])?n[1]:void 0)}:void 0,S={[_.ATTR_DB_SYSTEM]:_.DB_SYSTEM_VALUE_POSTGRESQL,[p.ATTR_DB_NAMESPACE]:this.database,[p.ATTR_SERVER_PORT]:this.connectionParameters.port,[p.ATTR_SERVER_ADDRESS]:this.connectionParameters.host};E?.text&&(S[p.ATTR_DB_OPERATION_NAME]=a.parseNormalizedOperationName(E?.text));let A=()=>{e.recordOperationDuration(S,l)},g=e.getConfig(),m=a.handleConfigQuery.call(this,e.tracer,g,e._semconvStability,E);if(g.addSqlCommenterCommentToQueries&&(T?n[0]=(0,s.addSqlCommenterComment)(m,u):!d||"name"in u||(n[0]={...u,text:(0,s.addSqlCommenterComment)(m,u.text)})),n.length>0){let t=o.trace.getSpan(o.context.active());if("function"==typeof n[n.length-1])n[n.length-1]=a.patchCallback(g,m,n[n.length-1],S,A),t&&(n[n.length-1]=o.context.bind(o.context.active(),n[n.length-1]));else if("function"==typeof E?.callback){let r=a.patchCallback(e.getConfig(),m,E.callback,S,A);t&&(r=o.context.bind(o.context.active(),r)),n[0].callback=r}}let{requestHook:h}=g;"function"==typeof h&&E&&(0,r.safeExecuteInTheMiddle)(()=>{let{database:e,host:t,port:n,user:r}=this.connectionParameters;h(m,{connection:{database:e,host:t,port:n,user:r},query:{text:E.text,values:E.values,name:E.name}})},t=>{t&&e._diag.error("Error running query hook",t)},!0);try{i=t.apply(this,n)}catch(e){throw e instanceof Error&&m.recordException(a.sanitizedErrorMessage(e)),m.setStatus({code:o.SpanStatusCode.ERROR,message:a.getErrorMessage(e)}),m.end(),e}return i instanceof Promise?i.then(t=>new Promise(n=>{a.handleExecutionResult(e.getConfig(),m,t),A(),m.end(),n(t)})).catch(e=>new Promise((t,n)=>{e instanceof Error&&m.recordException(a.sanitizedErrorMessage(e)),m.setStatus({code:o.SpanStatusCode.ERROR,message:e.message}),A(),m.end(),n(e)})):i})}_setPoolConnectEventListeners(e){if(e[i.EVENT_LISTENERS_SET])return;let t=a.getPoolName(e.options);e.on("connect",()=>{this._connectionsCounter=a.updateCounter(t,e,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),e.on("acquire",()=>{this._connectionsCounter=a.updateCounter(t,e,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),e.on("remove",()=>{this._connectionsCounter=a.updateCounter(t,e,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),e.on("release",()=>{this._connectionsCounter=a.updateCounter(t,e,this._connectionsCount,this._connectionPendingRequests,this._connectionsCounter)}),e[i.EVENT_LISTENERS_SET]=!0}_getPoolConnectPatch(){let e=this;return t=>function(n){let r=e.getConfig();if(a.shouldSkipInstrumentation(r)||(e._setPoolConnectEventListeners(this),r.ignoreConnectSpans))return t.call(this,n);let i=e.tracer.startSpan(u.SpanNames.POOL_CONNECT,{kind:o.SpanKind.CLIENT,attributes:a.getSemanticAttributesFromPoolConnection(this.options,e._semconvStability)});if(n){let e=o.trace.getSpan(o.context.active());n=a.patchCallbackPGPool(i,n),e&&(n=o.context.bind(o.context.active(),n))}let s=o.context.with(o.trace.setSpan(o.context.active(),i),()=>t.call(this,n));return E(i,s)}}}function E(e,t){return t instanceof Promise?o.context.bind(o.context.active(),t.then(t=>(e.end(),t)).catch(t=>(t instanceof Error&&e.recordException(a.sanitizedErrorMessage(t)),e.setStatus({code:o.SpanStatusCode.ERROR,message:a.getErrorMessage(t)}),e.end(),Promise.reject(t)))):t}n.PgInstrumentation=d},840167,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.AttributeNames=n.PgInstrumentation=void 0;var r=e.r(451598);Object.defineProperty(n,"PgInstrumentation",{enumerable:!0,get:function(){return r.PgInstrumentation}});var o=e.r(894105);Object.defineProperty(n,"AttributeNames",{enumerable:!0,get:function(){return o.AttributeNames}})},832719,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(840167),o=e.r(976285),i=e.r(625331),a="Postgres",s=i.generateInstrumentOnce(a,r.PgInstrumentation,e=>({requireParentSpan:!0,requestHook(e){i.addOriginToSpan(e,"auto.db.otel.postgres")},ignoreConnectSpans:e?.ignoreConnectSpans??!1})),l=o.defineIntegration(e=>({name:a,setupOnce(){s(e)}}));n.instrumentPostgres=s,n.postgresIntegration=l},19194,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(357762),o=e.r(204780),i=e.r(808119),a=e.r(976285),s=e.r(625331),l=e.r(866779),u="PostgresJs",c=[">=3.0.0 <4"],p=/^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i,_=Symbol.for("sentry.query.from.instrumented.sql"),T=s.generateInstrumentOnce(u,e=>new d({requireParentSpan:e?.requireParentSpan??!0,requestHook:e?.requestHook}));class d extends o.InstrumentationBase{constructor(e){super("sentry-postgres-js",a.SDK_VERSION,e)}init(){let e=new o.InstrumentationNodeModuleDefinition("postgres",c,e=>{try{return this._patchPostgres(e)}catch(t){return l.DEBUG_BUILD&&a.debug.error("Failed to patch postgres module:",t),e}},e=>e);return["src","cf/src","cjs/src"].forEach(t=>{e.files.push(new o.InstrumentationNodeModuleFile(`postgres/${t}/query.js`,c,this._patchQueryPrototype.bind(this),this._unpatchQueryPrototype.bind(this)))}),e}_patchPostgres(e){let t="function"==typeof e,n=t?e:e.default;if("function"!=typeof n)return l.DEBUG_BUILD&&a.debug.warn("postgres module does not export a function. Skipping instrumentation."),e;let r=this,o=function(...e){let t=Reflect.construct(n,e);if(!t||"function"!=typeof t)return l.DEBUG_BUILD&&a.debug.warn("postgres() did not return a valid instance"),t;let o=r.getConfig();return a.instrumentPostgresJsSql(t,{requireParentSpan:o.requireParentSpan,requestHook:o.requestHook})};for(let e of(Object.setPrototypeOf(o,n),Object.setPrototypeOf(o.prototype,n.prototype),Object.getOwnPropertyNames(n)))if(!["length","name","prototype"].includes(e)){let t=Object.getOwnPropertyDescriptor(n,e);t&&Object.defineProperty(o,e,t)}return t?o:(a.replaceExports(e,"default",o),e)}_shouldCreateSpans(){let e=this.getConfig();return void 0!==r.trace.getSpan(r.context.active())||!e.requireParentSpan}_setOperationName(e,t,n){if(n)return void e.setAttribute(i.ATTR_DB_OPERATION_NAME,n);let r=t?.match(p);r?.[1]&&e.setAttribute(i.ATTR_DB_OPERATION_NAME,r[1].toUpperCase())}_reconstructQuery(e){if(e?.length)return 1===e.length?e[0]||void 0:e.reduce((e,t,n)=>0===n?t:`${e}$${n}${t}`,"")}_sanitizeSqlQuery(e){return e?e.replace(/--.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").replace(/;\s*$/,"").replace(/\s+/g," ").trim().replace(/\bX'[0-9A-Fa-f]*'/gi,"?").replace(/\bB'[01]*'/gi,"?").replace(/'(?:[^']|'')*'/g,"?").replace(/\b0x[0-9A-Fa-f]+/gi,"?").replace(/\b(?:TRUE|FALSE)\b/gi,"?").replace(/-?\b\d+\.?\d*[eE][+-]?\d+\b/g,"?").replace(/-?\b\d+\.\d+\b/g,"?").replace(/-?\.\d+\b/g,"?").replace(/(?{s.addOriginToSpan(r,"auto.db.postgresjs"),r.setAttributes({[i.ATTR_DB_SYSTEM_NAME]:"postgres",[i.ATTR_DB_QUERY_TEXT]:c});let{requestHook:p}=t.getConfig();p&&o.safeExecuteInTheMiddle(()=>p(r,c,void 0),e=>{e&&(r.setAttribute("sentry.hook.error","requestHook failed"),l.DEBUG_BUILD&&a.debug.error(`Error in requestHook for ${u} integration:`,e))},!0);let _=this.resolve;this.resolve=new Proxy(_,{apply:(e,n,o)=>{try{t._setOperationName(r,c,o?.[0]?.command),r.end()}catch(e){l.DEBUG_BUILD&&a.debug.error("Error ending span in resolve callback:",e)}return Reflect.apply(e,n,o)}});let T=this.reject;this.reject=new Proxy(T,{apply:(e,n,o)=>{try{r.setStatus({code:a.SPAN_STATUS_ERROR,message:o?.[0]?.message||"unknown_error"}),r.setAttribute(i.ATTR_DB_RESPONSE_STATUS_CODE,o?.[0]?.code||"unknown"),r.setAttribute(i.ATTR_ERROR_TYPE,o?.[0]?.name||"unknown"),t._setOperationName(r,c),r.end()}catch(e){l.DEBUG_BUILD&&a.debug.error("Error ending span in reject callback:",e)}return Reflect.apply(e,n,o)}});try{return n.apply(this,e)}catch(e){throw r.setStatus({code:a.SPAN_STATUS_ERROR,message:e instanceof Error?e.message:"unknown_error"}),r.end(),e}})},e.Query.prototype.handle.__sentry_original__=n,e}_unpatchQueryPrototype(e){return e.Query.prototype.handle.__sentry_original__&&(e.Query.prototype.handle=e.Query.prototype.handle.__sentry_original__),e}}let E=a.defineIntegration(e=>({name:u,setupOnce(){T(e)}}));n.PostgresJsInstrumentation=d,n.instrumentPostgresJs=T,n.postgresJsIntegration=E},816879,e=>{"use strict";e.s([],712748),e.i(712748);var t,n,r=e.i(545364),o=e.i(605809);let i="object"==typeof globalThis?globalThis:e.g,a=Symbol.for("io.opentelemetry.js.api.logs");class s{emit(e){}}let l=new s,u=new class{getLogger(e,t,n){return new s}};class c{constructor(e,t,n,r){this._provider=e,this.name=t,this.version=n,this.options=r}emit(e){this._getLogger().emit(e)}_getLogger(){if(this._delegate)return this._delegate;let e=this._provider._getDelegateLogger(this.name,this.version,this.options);return e?(this._delegate=e,this._delegate):l}}class p{getLogger(e,t,n){var r;return null!=(r=this._getDelegateLogger(e,t,n))?r:new c(this,e,t,n)}_getDelegate(){var e;return null!=(e=this._delegate)?e:u}_setDelegate(e){this._delegate=e}_getDelegateLogger(e,t,n){var r;return null==(r=this._delegate)?void 0:r.getLogger(e,t,n)}}class _{constructor(){this._proxyLoggerProvider=new p}static getInstance(){return this._instance||(this._instance=new _),this._instance}setGlobalLoggerProvider(e){return i[a]?this.getLoggerProvider():(i[a]=t=>1===t?e:u,this._proxyLoggerProvider._setDelegate(e),e)}getLoggerProvider(){var e,t;return null!=(t=null==(e=i[a])?void 0:e.call(i,1))?t:this._proxyLoggerProvider}getLogger(e,t,n){return this.getLoggerProvider().getLogger(e,t,n)}disable(){delete i[a],this._proxyLoggerProvider=new p}}let T=_.getInstance();function d(e){let t=e.tracerProvider||r.trace.getTracerProvider(),n=e.meterProvider||o.metrics.getMeterProvider(),i=e.loggerProvider||T.getLoggerProvider(),a=e.instrumentations?.flat()??[];for(let e=0,r=a.length;e{a.forEach(e=>e.disable())}}var E=e.i(814747),S=e.i(224361),A=e.i(978116);let g=/^(?:v)?(?(?0|[1-9]\d*)\.(?0|[1-9]\d*)\.(?0|[1-9]\d*))(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,m=/^(?<|>|=|==|<=|>=|~|\^|~>)?\s*(?:v)?(?(?x|X|\*|0|[1-9]\d*)(?:\.(?x|X|\*|0|[1-9]\d*))?(?:\.(?x|X|\*|0|[1-9]\d*))?)(?:-(?(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,h={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1],"!=":[-1,1]};function R(e,t,n,r){if(t.includes("||")){for(let o of t.trim().split("||"))if(f(e,o,n,r))return!0;return!1}if(t.includes(" - ")){var o,i;o=t,i=r,t=o.replace(x,(e,t,n,r,o,a,s,l,u,c,p,_)=>(t=N(n)?"":N(r)?`>=${n}.0.0${i?.includePrerelease?"-0":""}`:N(o)?`>=${n}.${r}.0${i?.includePrerelease?"-0":""}`:a?`>=${t}`:`>=${t}${i?.includePrerelease?"-0":""}`,l=N(u)?"":N(c)?`<${+u+1}.0.0-0`:N(p)?`<${u}.${+c+1}.0-0`:_?`<=${u}.${c}.${p}-${_}`:i?.includePrerelease?`<${u}.${c}.${+p+1}-0`:`<=${l}`,`${t} ${l}`.trim()))}else if(t.includes(" ")){for(let o of t.trim().replace(/\s{2,}/g," ").split(" "))if(!f(e,o,n,r))return!1;return!0}return f(e,t,n,r)}function f(e,t,n,r){var o,i,a,s,l,u;let c;if((o=t,i=r,t=(l=o=(a=o=o.trim(),s=i,c=s?.includePrerelease?"-0":"",o=a.replace(w,(e,t,n,r,o)=>N(t)?"":N(n)?`>=${t}.0.0${c} <${+t+1}.0.0-0`:N(r)?"0"===t?`>=${t}.${n}.0${c} <${t}.${+n+1}.0-0`:`>=${t}.${n}.0${c} <${+t+1}.0.0-0`:o?"0"===t?"0"===n?`>=${t}.${n}.${r}-${o} <${t}.${n}.${+r+1}-0`:`>=${t}.${n}.${r}-${o} <${t}.${+n+1}.0-0`:`>=${t}.${n}.${r}-${o} <${+t+1}.0.0-0`:"0"===t?"0"===n?`>=${t}.${n}.${r}${c} <${t}.${n}.${+r+1}-0`:`>=${t}.${n}.${r}${c} <${t}.${+n+1}.0-0`:`>=${t}.${n}.${r} <${+t+1}.0.0-0`)).replace(V,(e,t,n,r,o)=>N(t)?"":N(n)?`>=${t}.0.0 <${+t+1}.0.0-0`:N(r)?`>=${t}.${n}.0 <${t}.${+n+1}.0-0`:o?`>=${t}.${n}.${r}-${o} <${t}.${+n+1}.0-0`:`>=${t}.${n}.${r} <${t}.${+n+1}.0-0`),u=i,o=l.replace(B,(e,t,n,r,o,i)=>{let a=N(n),s=a||N(r),l=s||N(o);return"="===t&&l&&(t=""),i=u?.includePrerelease?"-0":"",a?e=">"===t||"<"===t?"<0.0.0-0":"*":t&&l?(s&&(r=0),o=0,">"===t?(t=">=",s?(n=+n+1,r=0):r=+r+1,o=0):"<="===t&&(t="<",s?n=+n+1:r=+r+1),"<"===t&&(i="-0"),e=`${t+n}.${r}.${o}${i}`):s?e=`>=${n}.0.0${i} <${+n+1}.0.0-0`:l&&(e=`>=${n}.${r}.0${i} <${n}.${+r+1}.0-0`),e})).trim()).includes(" "))return R(e,t,n,r);{let r=function(e){if(!e)return{};let t=e.match(m);if(!t)return A.diag.error(`Invalid range: ${e}`),{invalid:!0};let n=t.groups.op,r=t.groups.version,o=t.groups.prerelease,i=t.groups.build,a=r.split("."),s=o?.split(".");return"=="===n&&(n="="),{op:n||"=",version:r,versionSegments:a,versionSegmentCount:a.length,prerelease:o,prereleaseSegments:s,prereleaseSegmentCount:s?s.length:0,build:i}}(t);return n.push(r),function(e,t){if(t.invalid)return!1;if(!t.version||I(t.version))return!0;let n=y(e.versionSegments||[],t.versionSegments||[]);if(0===n){let r=e.prereleaseSegments||[],o=t.prereleaseSegments||[];n=r.length||o.length?!r.length&&o.length?1:r.length&&!o.length?-1:y(r,o):0}return h[t.op]?.includes(n)}(e,r)}}function N(e){return!e||"x"===e.toLowerCase()||"*"===e}function I(e){return"*"===e||"x"===e||"X"===e}function O(e){let t=parseInt(e,10);return isNaN(t)?e:t}function y(e,t){for(let n=0;nr?1:n)?=?)\\s*${G}$`),x=RegExp(`^\\s*(${G})\\s+-\\s+(${G})\\s*$`),V=RegExp(`^(?:~>?)${G}$`),w=RegExp(`^(?:\\^)${G}$`),H=console.error.bind(console);function k(e,t,n){let r=!!e[t]&&Object.prototype.propertyIsEnumerable.call(e,t);Object.defineProperty(e,t,{configurable:!0,enumerable:r,writable:!0,value:n})}let Y=(e,t,n)=>{if(!e||!e[t])return void H("no original function "+String(t)+" to wrap");if(!n){H("no wrapper function"),H(Error().stack);return}let r=e[t];if("function"!=typeof r||"function"!=typeof n)return void H("original object and wrapper must be functions");let o=n(r,t);return k(o,"__original",r),k(o,"__unwrap",()=>{e[t]===o&&k(e,t,r)}),k(o,"__wrapped",!0),k(e,t,o),o},j=(e,t,n)=>{if(e)Array.isArray(e)||(e=[e]);else{H("must provide one or more modules to patch"),H(Error().stack);return}t&&Array.isArray(t)?e.forEach(e=>{t.forEach(t=>{Y(e,t,n)})}):H("must provide one or more functions to wrap on modules")},F=(e,t)=>{if(!e||!e[t]){H("no function to unwrap."),H(Error().stack);return}let n=e[t];n.__unwrap?n.__unwrap():H("no original to unwrap to -- has "+String(t)+" already been unwrapped?")},W=(e,t)=>{if(e)Array.isArray(e)||(e=[e]);else{H("must provide one or more modules to patch"),H(Error().stack);return}t&&Array.isArray(t)?e.forEach(e=>{t.forEach(t=>{F(e,t)})}):H("must provide one or more functions to unwrap on modules")};function K(e){e&&e.logger&&("function"!=typeof e.logger?H("new logger isn't a function, not replacing"):H=e.logger)}K.wrap=Y,K.massWrap=j,K.unwrap=F,K.massUnwrap=W;class X{instrumentationName;instrumentationVersion;_config={};_tracer;_meter;_logger;_diag;constructor(e,t,n){this.instrumentationName=e,this.instrumentationVersion=t,this.setConfig(n),this._diag=A.diag.createComponentLogger({namespace:e}),this._tracer=r.trace.getTracer(e,t),this._meter=o.metrics.getMeter(e,t),this._logger=T.getLogger(e,t),this._updateMetricInstruments()}_wrap=Y;_unwrap=F;_massWrap=j;_massUnwrap=W;get meter(){return this._meter}setMeterProvider(e){this._meter=e.getMeter(this.instrumentationName,this.instrumentationVersion),this._updateMetricInstruments()}get logger(){return this._logger}setLoggerProvider(e){this._logger=e.getLogger(this.instrumentationName,this.instrumentationVersion)}getModuleDefinitions(){let e=this.init()??[];return Array.isArray(e)?e:[e]}_updateMetricInstruments(){}getConfig(){return this._config}setConfig(e){this._config={enabled:!0,...e}}setTracerProvider(e){this._tracer=e.getTracer(this.instrumentationName,this.instrumentationVersion)}get tracer(){return this._tracer}_runSpanCustomizationHook(e,t,n,r){if(e)try{e(n,r)}catch(e){this._diag.error("Error running span customization hook due to exception in handler",{triggerName:t},e)}}}var Z=e.i(156823);class J{hooks=[];children=new Map}class ${_trie=new J;_counter=0;insert(e){let t=this._trie;for(let n of e.moduleName.split("/")){let e=t.children.get(n);e||(e=new J,t.children.set(n,e)),t=e}t.hooks.push({hook:e,insertedId:this._counter++})}search(e,{maintainInsertionOrder:t,fullOnly:n}={}){let r=this._trie,o=[],i=!0;for(let t of e.split("/")){let e=r.children.get(t);if(!e){i=!1;break}n||o.push(...e.hooks),r=e}return(n&&i&&o.push(...r.hooks),0===o.length)?[]:1===o.length?[o[0].hook]:(t&&o.sort((e,t)=>e.insertedId-t.insertedId),o.map(({hook:e})=>e))}}let Q=["afterEach","after","beforeEach","before","describe","it"].every(t=>"function"==typeof e.g[t]);class z{_moduleNameTrie=new $;static _instance;constructor(){this._initialize()}_initialize(){new Z.Hook(null,{internals:!0},(e,t,n)=>{var r;let o=(r=t,"/"!==E.sep?r.split(E.sep).join("/"):r);for(let{onRequire:r}of this._moduleNameTrie.search(o,{maintainInsertionOrder:!0,fullOnly:void 0===n}))e=r(e,t,n);return e})}register(e,t){let n={moduleName:e,onRequire:t};return this._moduleNameTrie.insert(n),n}static getInstance(){return Q?new z:this._instance=this._instance??new z}}var q=e.i(74667),ee=e.i(522734);function et(e,t,n){let r,o;try{o=e()}catch(e){r=e}finally{if(t(r,o),r&&!n)throw r;return o}}async function en(e,t,n){let r,o;try{o=await e()}catch(e){r=e}finally{if(t(r,o),r&&!n)throw r;return o}}function er(e){return"function"==typeof e&&"function"==typeof e.__original&&"function"==typeof e.__unwrap&&!0===e.__wrapped}class eo extends X{_modules;_hooks=[];_requireInTheMiddleSingleton=z.getInstance();_enabled=!1;constructor(e,t,n){super(e,t,n);let r=this.init();r&&!Array.isArray(r)&&(r=[r]),this._modules=r||[],this._config.enabled&&this.enable()}_wrap=(e,t,n)=>{if(er(e[t])&&this._unwrap(e,t),!S.types.isProxy(e))return Y(e,t,n);{let r=Y(Object.assign({},e),t,n);return Object.defineProperty(e,t,{value:r}),r}};_unwrap=(e,t)=>S.types.isProxy(e)?Object.defineProperty(e,t,{value:e[t]}):F(e,t);_massWrap=(e,t,n)=>{e?(Array.isArray(e)||(e=[e]),t&&Array.isArray(t))?e.forEach(e=>{t.forEach(t=>{this._wrap(e,t,n)})}):A.diag.error("must provide one or more functions to wrap on modules"):A.diag.error("must provide one or more modules to patch")};_massUnwrap=(e,t)=>{e?(Array.isArray(e)||(e=[e]),t&&Array.isArray(t))?e.forEach(e=>{t.forEach(t=>{this._unwrap(e,t)})}):A.diag.error("must provide one or more functions to wrap on modules"):A.diag.error("must provide one or more modules to patch")};_warnOnPreloadedModules(){this._modules.forEach(t=>{let{name:n}=t;try{let t=(()=>{let e=Error("Cannot find module as expression is too dynamic");throw e.code="MODULE_NOT_FOUND",e})();e.c[t]&&this._diag.warn(`Module ${n} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${n}`)}catch{}})}_extractPackageVersion(e){try{let t=(0,ee.readFileSync)(E.join(e,"package.json"),{encoding:"utf8"}),n=JSON.parse(t).version;return"string"==typeof n?n:void 0}catch{A.diag.warn("Failed extracting version",e)}}_onRequire(e,t,n,r){if(!r)return"function"==typeof e.patch&&(e.moduleExports=t,this._enabled)?(this._diag.debug("Applying instrumentation patch for nodejs core module on require hook",{module:e.name}),e.patch(t)):t;let o=this._extractPackageVersion(r);if(e.moduleVersion=o,e.name===n)return ei(e.supportedVersions,o,e.includePrerelease)&&"function"==typeof e.patch&&(e.moduleExports=t,this._enabled)?(this._diag.debug("Applying instrumentation patch for module on require hook",{module:e.name,version:e.moduleVersion,baseDir:r}),e.patch(t,e.moduleVersion)):t;let i=e.files??[],a=E.normalize(n);return i.filter(e=>e.name===a).filter(t=>ei(t.supportedVersions,o,e.includePrerelease)).reduce((t,n)=>(n.moduleExports=t,this._enabled)?(this._diag.debug("Applying instrumentation patch for nodejs module file on require hook",{module:e.name,version:e.moduleVersion,fileName:n.name,baseDir:r}),n.patch(t,e.moduleVersion)):t,t)}enable(){if(!this._enabled){if(this._enabled=!0,this._hooks.length>0){for(let e of this._modules)for(let t of("function"==typeof e.patch&&e.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module on instrumentation enabled",{module:e.name,version:e.moduleVersion}),e.patch(e.moduleExports,e.moduleVersion)),e.files))t.moduleExports&&(this._diag.debug("Applying instrumentation patch for nodejs module file on instrumentation enabled",{module:e.name,version:e.moduleVersion,fileName:t.name}),t.patch(t.moduleExports,e.moduleVersion));return}for(let e of(this._warnOnPreloadedModules(),this._modules)){let t=(t,n,r)=>{if(!r&&E.isAbsolute(n)){let e=E.parse(n);n=e.name,r=e.dir}return this._onRequire(e,t,n,r)},n=(t,n,r)=>this._onRequire(e,t,n,r),r=E.isAbsolute(e.name)?new Z.Hook([e.name],{internals:!0},n):this._requireInTheMiddleSingleton.register(e.name,n);this._hooks.push(r);let o=new q.Hook([e.name],{internals:!1},t);this._hooks.push(o)}}}disable(){if(this._enabled)for(let e of(this._enabled=!1,this._modules))for(let t of("function"==typeof e.unpatch&&e.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module on instrumentation disabled",{module:e.name,version:e.moduleVersion}),e.unpatch(e.moduleExports,e.moduleVersion)),e.files))t.moduleExports&&(this._diag.debug("Removing instrumentation patch for nodejs module file on instrumentation disabled",{module:e.name,version:e.moduleVersion,fileName:t.name}),t.unpatch(t.moduleExports,e.moduleVersion))}isEnabled(){return this._enabled}}function ei(e,t,n){return void 0===t?e.includes("*"):e.some(e=>(function(e,t,n){var r,o,i;if(!("string"==typeof(r=e)&&g.test(r)))return A.diag.error(`Invalid version: ${e}`),!1;if(!t)return!0;t=t.replace(/([<>=~^]+)\s+/g,"$1");let a=function(e){let t=e.match(g);if(!t)return void A.diag.error(`Invalid version: ${e}`);let n=t.groups.version,r=t.groups.prerelease,o=t.groups.build,i=n.split("."),a=r?.split(".");return{op:void 0,version:n,versionSegments:i,versionSegmentCount:i.length,prerelease:r,prereleaseSegments:a,prereleaseSegmentCount:a?a.length:0,build:o}}(e);if(!a)return!1;let s=[],l=R(a,t,s,n);return l&&!n?.includePrerelease?(o=a,i=s,!o.prerelease||i.some(e=>e.prerelease&&e.version===o.version)):l})(t,e,{includePrerelease:n}))}class ea{name;supportedVersions;patch;unpatch;files;constructor(e,t,n,r,o){this.name=e,this.supportedVersions=t,this.patch=n,this.unpatch=r,this.files=o||[]}}class es{supportedVersions;patch;unpatch;name;constructor(e,t,n,r){this.supportedVersions=t,this.patch=n,this.unpatch=r,this.name=(0,E.normalize)(e)}}function el(e,t){let r=n.OLD;for(let o of t?.split(",").map(e=>e.trim()).filter(e=>""!==e)??[])if(o.toLowerCase()===e+"/dup"){r=n.DUPLICATE;break}else o.toLowerCase()===e&&(r=n.STABLE);return r}(t=n||(n={}))[t.STABLE=1]="STABLE",t[t.OLD=2]="OLD",t[t.DUPLICATE=3]="DUPLICATE",e.s(["InstrumentationBase",()=>eo,"InstrumentationNodeModuleDefinition",()=>ea,"InstrumentationNodeModuleFile",()=>es,"SemconvStability",()=>n,"isWrapped",()=>er,"registerInstrumentations",()=>d,"safeExecuteInTheMiddle",()=>et,"safeExecuteInTheMiddleAsync",()=>en,"semconvStabilityFromStr",()=>el],816879)},823876,(e,t,n)=>{"use strict";var r=Object.defineProperty,o=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,s={},l={PrismaInstrumentation:()=>f,registerInstrumentations:()=>N.registerInstrumentations};for(var u in l)r(s,u,{get:l[u],enumerable:!0});t.exports=((e,t,n,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let l of i(t))a.call(e,l)||l===n||r(e,l,{get:()=>t[l],enumerable:!(s=o(t,l))||s.enumerable});return e})(r({},"__esModule",{value:!0}),s);var c=e.r(357762),p=e.r(816879),_="7.6.0".split(".")[0],T="PRISMA_INSTRUMENTATION",d=`V${_}_PRISMA_INSTRUMENTATION`,E=globalThis,S=e.r(357762),A="true"===process.env.PRISMA_SHOW_ALL_TRACES,g=class{tracerProvider;ignoreSpanTypes;constructor({tracerProvider:e,ignoreSpanTypes:t}){this.tracerProvider=e,this.ignoreSpanTypes=t}isEnabled(){return!0}getTraceParent(e){let t=S.trace.getSpanContext(e??S.context.active());return t?`00-${t.traceId}-${t.spanId}-0${t.traceFlags}`:"00-10-10-00"}dispatchEngineSpans(e){let t=this.tracerProvider.getTracer("prisma"),n=new Map;for(let r of e.filter(e=>null===e.parentId))!function e(t,n,r,o,i){if(h(n.name,i))return;let a={attributes:n.attributes,kind:"client"===n.kind?S.SpanKind.CLIENT:S.SpanKind.INTERNAL,startTime:n.startTime};t.startActiveSpan(n.name,a,a=>{for(let s of(o.set(n.id,a.spanContext().spanId),n.links&&a.addLinks(n.links.flatMap(e=>{let t=o.get(e);return t?{context:{spanId:t,traceId:a.spanContext().traceId,traceFlags:a.spanContext().traceFlags}}:[]})),r.filter(e=>e.parentId===n.id)))e(t,s,r,o,i);a.end(n.endTime)})}(t,r,e,n,this.ignoreSpanTypes)}getActiveContext(){return S.context.active()}runInChildSpan(e,t){if("string"==typeof e&&(e={name:e}),e.internal&&!A)return t();let n=this.tracerProvider.getTracer("prisma"),r=e.context??this.getActiveContext(),o=`prisma:client:${e.name}`;if(h(o,this.ignoreSpanTypes))return t();if(!1===e.active){let i=n.startSpan(o,e,r);return m(i,t(i,r))}return n.startActiveSpan(o,e,e=>m(e,t(e,r)))}};function m(e,t){var n;return null!=(n=t)&&"function"==typeof n.then?t.then(t=>(e.end(),t),t=>{throw e.end(),t}):(e.end(),t)}function h(e,t){return t.some(t=>"string"==typeof t?t===e:t.test(e))}var R="7.6.0",f=class extends p.InstrumentationBase{tracerProvider;constructor(e={}){super("@prisma/instrumentation",R,e)}setTracerProvider(e){this.tracerProvider=e}init(){return[new p.InstrumentationNodeModuleDefinition("@prisma/client",[R])]}enable(){let e,t=this._config;e={helper:new g({tracerProvider:this.tracerProvider??c.trace.getTracerProvider(),ignoreSpanTypes:t.ignoreSpanTypes??[]})},E[d]=e,E[T]=e}disable(){delete E[d],delete E[T]}isEnabled(){return void 0!==function(){let e=E[d];if(e?.helper)return e.helper;let t=E[T];return t?.helper}()}},N=e.r(816879)},547683,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(357762),o=e.r(823876),i=e.r(976285),a=e.r(625331),s="Prisma";function l(){let e=globalThis.PRISMA_INSTRUMENTATION;return e&&"object"==typeof e&&"helper"in e?e.helper:void 0}class u extends o.PrismaInstrumentation{constructor(e){super(e?.instrumentationConfig)}enable(){super.enable();let e=l();e&&"object"==typeof e&&"dispatchEngineSpans"in e&&(e.createEngineSpan=e=>{let t=r.trace.getTracer("prismaV5Compatibility"),n=t._idGenerator;if(!n)return void i.consoleSandbox(()=>{console.warn("[Sentry] Could not find _idGenerator on tracer, skipping Prisma v5 compatibility - some Prisma spans may be missing!")});try{e.spans.forEach(e=>{var o;let i=(o=e.kind,"client"===o?r.SpanKind.CLIENT:r.SpanKind.INTERNAL),a=e.parent_span_id,s=e.span_id,l=e.trace_id,u=e.links?.map(e=>({context:{traceId:e.trace_id,spanId:e.span_id,traceFlags:r.TraceFlags.SAMPLED}})),c=r.trace.setSpanContext(r.context.active(),{traceId:l,spanId:a,traceFlags:r.TraceFlags.SAMPLED});r.context.with(c,()=>{t._idGenerator={generateTraceId:()=>l,generateSpanId:()=>s},t.startSpan(e.name,{kind:i,links:u,startTime:e.start_time,attributes:e.attributes}).end(e.end_time),t._idGenerator=n})})}finally{t._idGenerator=n}})}}let c=a.generateInstrumentOnce(s,e=>new u(e)),p=i.defineIntegration(e=>({name:s,setupOnce(){c(e)},setup(e){l()&&e.on("spanStart",e=>{let t=i.spanToJSON(e);t.description?.startsWith("prisma:")&&e.setAttribute(i.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,"auto.db.otel.prisma"),"prisma:engine:db_query"===t.description&&t.data["db.query.text"]&&e.updateName(t.data["db.query.text"]),"prisma:engine:db_query"!==t.description||t.data["db.system"]||e.setAttribute("db.system","prisma")})}}));n.instrumentPrisma=c,n.prismaIntegration=p},399189,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.60.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-hapi"},318837,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.HapiLifecycleMethodNames=n.HapiLayerType=n.handlerPatched=n.HapiComponentName=void 0,n.HapiComponentName="@hapi/hapi",n.handlerPatched=Symbol("hapi-handler-patched"),n.HapiLayerType={ROUTER:"router",PLUGIN:"plugin",EXT:"server.ext"},n.HapiLifecycleMethodNames=new Set(["onPreAuth","onCredentials","onPostAuth","onPreHandler","onPostHandler","onPreResponse","onRequest"])},808139,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.ATTR_HTTP_METHOD=void 0,n.ATTR_HTTP_METHOD="http.method"},180434,(e,t,n)=>{"use strict";var r;Object.defineProperty(n,"__esModule",{value:!0}),n.AttributeNames=void 0,(r=n.AttributeNames||(n.AttributeNames={})).HAPI_TYPE="hapi.type",r.PLUGIN_NAME="hapi.plugin.name",r.EXT_TYPE="server.ext.type"},346711,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.getPluginFromInput=n.getExtMetadata=n.getRouteMetadata=n.isPatchableExtMethod=n.isDirectExtInput=n.isLifecycleExtEventObj=n.isLifecycleExtType=n.getPluginName=void 0;let r=e.r(808119),o=e.r(808139),i=e.r(318837),a=e.r(180434),s=e.r(204780);n.getPluginName=function(e){return e.name?e.name:e.pkg.name},n.isLifecycleExtType=e=>"string"==typeof e&&i.HapiLifecycleMethodNames.has(e),n.isLifecycleExtEventObj=e=>{let t=e?.type;return void 0!==t&&(0,n.isLifecycleExtType)(t)},n.isDirectExtInput=e=>Array.isArray(e)&&e.length<=3&&(0,n.isLifecycleExtType)(e[0])&&"function"==typeof e[1],n.isPatchableExtMethod=e=>!Array.isArray(e),n.getRouteMetadata=(e,t,n)=>{let l,u={[r.ATTR_HTTP_ROUTE]:e.path};return t&s.SemconvStability.OLD&&(u[o.ATTR_HTTP_METHOD]=e.method),t&s.SemconvStability.STABLE&&(u[r.ATTR_HTTP_REQUEST_METHOD]=e.method),n?(u[a.AttributeNames.HAPI_TYPE]=i.HapiLayerType.PLUGIN,u[a.AttributeNames.PLUGIN_NAME]=n,l=`${n}: route - ${e.path}`):(u[a.AttributeNames.HAPI_TYPE]=i.HapiLayerType.ROUTER,l=`route - ${e.path}`),{attributes:u,name:l}},n.getExtMetadata=(e,t,n)=>{let r=`ext - ${e}`;return(n&&"method"!==n&&(r=`ext - ${e} - ${n}`),t)?{attributes:{[a.AttributeNames.EXT_TYPE]:e,[a.AttributeNames.HAPI_TYPE]:i.HapiLayerType.EXT,[a.AttributeNames.PLUGIN_NAME]:t},name:`${t}: ${r}`}:{attributes:{[a.AttributeNames.EXT_TYPE]:e,[a.AttributeNames.HAPI_TYPE]:i.HapiLayerType.EXT},name:r}},n.getPluginFromInput=e=>"plugin"in e?"plugin"in e.plugin?e.plugin.plugin:e.plugin:e},345301,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.HapiInstrumentation=void 0;let r=e.r(357762),o=e.r(385692),i=e.r(204780),a=e.r(399189),s=e.r(318837),l=e.r(346711);class u extends i.InstrumentationBase{_semconvStability;constructor(e={}){super(a.PACKAGE_NAME,a.PACKAGE_VERSION,e),this._semconvStability=(0,i.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return new i.InstrumentationNodeModuleDefinition(s.HapiComponentName,[">=17.0.0 <22"],e=>{let t="Module"===e[Symbol.toStringTag]?e.default:e;return(0,i.isWrapped)(t.server)||this._wrap(t,"server",this._getServerPatch.bind(this)),(0,i.isWrapped)(t.Server)||this._wrap(t,"Server",this._getServerPatch.bind(this)),t},e=>{let t="Module"===e[Symbol.toStringTag]?e.default:e;this._massUnwrap([t],["server","Server"])})}_getServerPatch(e){let t=this,n=this;return function(r){let o=e.apply(this,[r]);return n._wrap(o,"route",e=>t._getServerRoutePatch.bind(t)(e)),n._wrap(o,"ext",e=>t._getServerExtPatch.bind(t)(e)),n._wrap(o,"register",t._getServerRegisterPatch.bind(t)),o}}_getServerRegisterPatch(e){let t=this;return function(n,r){if(Array.isArray(n))for(let e of n){let n=(0,l.getPluginFromInput)(e);t._wrapRegisterHandler(n)}else{let e=(0,l.getPluginFromInput)(n);t._wrapRegisterHandler(e)}return e.apply(this,[n,r])}}_getServerExtPatch(e,t){let n=this;return function(...r){if(Array.isArray(r[0])){let e=r[0];for(let r=0;rt._getServerRoutePatch.bind(t)(e,n)),o._wrap(e,"ext",e=>t._getServerExtPatch.bind(t)(e,n)),r.call(this,e,i)}}_wrapExtMethods(e,t,n){let o=this;if(e instanceof Array)for(let n=0;nasync function(...a){if(void 0===r.trace.getSpan(r.context.active()))return await i.call(this,...a);let s=(0,o.getRPCMetadata)(r.context.active());s?.type===o.RPCType.HTTP&&(s.route=e.path);let u=(0,l.getRouteMetadata)(e,n._semconvStability,t),c=n.tracer.startSpan(u.name,{attributes:u.attributes});try{return await r.context.with(r.trace.setSpan(r.context.active(),c),()=>i.call(this,...a))}catch(e){throw c.recordException(e),c.setStatus({code:r.SpanStatusCode.ERROR,message:e.message}),e}finally{c.end()}};if("function"==typeof e.handler)e.handler=i(e.handler);else if("function"==typeof e.options){let t=e.options;e.options=function(e){let n=t(e);return"function"==typeof n.handler&&(n.handler=i(n.handler)),n}}else"function"==typeof e.options?.handler&&(e.options.handler=i(e.options.handler));return e}}n.HapiInstrumentation=u},144297,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.AttributeNames=n.HapiInstrumentation=void 0;var r=e.r(345301);Object.defineProperty(n,"HapiInstrumentation",{enumerable:!0,get:function(){return r.HapiInstrumentation}});var o=e.r(180434);Object.defineProperty(n,"AttributeNames",{enumerable:!0,get:function(){return o.AttributeNames}})},376169,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(144297),o=e.r(976285),i=e.r(625331),a=e.r(866779),s="Hapi",l=i.generateInstrumentOnce(s,()=>new r.HapiInstrumentation),u=o.defineIntegration(()=>({name:s,setupOnce(){l()}})),c={name:"SentryHapiErrorPlugin",version:o.SDK_VERSION,register:async function(e){e.events.on({name:"request",channels:["error"]},(e,t)=>{var n;if(o.getIsolationScope()!==o.getDefaultIsolationScope()){let t=e.route;t.path&&o.getIsolationScope().setTransactionName(`${t.method.toUpperCase()} ${t.path}`)}else a.DEBUG_BUILD&&o.debug.warn("Isolation scope is still the default isolation scope - skipping setting transactionName");t&&"object"==typeof t&&"error"in t&&t.error&&(n=t.error,o.captureException(n,{mechanism:{type:"auto.function.hapi",handled:!1}}))})}};async function p(e){await e.register(c);let t=o.getClient();t&&t.on("spanStart",e=>{var t;let n,r;t=e,r=(n=o.spanToJSON(t).data)["hapi.type"],!n[o.SEMANTIC_ATTRIBUTE_SENTRY_OP]&&r&&t.setAttributes({[o.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.http.otel.hapi",[o.SEMANTIC_ATTRIBUTE_SENTRY_OP]:`${r}.hapi`})}),i.ensureIsWrapped(e.register,"hapi")}n.hapiErrorPlugin=c,n.hapiIntegration=u,n.instrumentHapi=l,n.setupHapiErrorHandler=p},212994,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),n.AttributeNames={HONO_TYPE:"hono.type",HONO_NAME:"hono.name"},n.HonoTypes={MIDDLEWARE:"middleware",REQUEST_HANDLER:"request_handler"}},29288,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(357762),o=e.r(204780),i=e.r(976285),a=e.r(212994);class s extends o.InstrumentationBase{constructor(e={}){super("@sentry/instrumentation-hono","0.0.1",e)}init(){return[new o.InstrumentationNodeModuleDefinition("hono",[">=4.0.0 <5"],e=>this._patch(e))]}_patch(e){let t=this;class n extends e.Hono{constructor(...e){super(...e),t._wrap(this,"get",t._patchHandler()),t._wrap(this,"post",t._patchHandler()),t._wrap(this,"put",t._patchHandler()),t._wrap(this,"delete",t._patchHandler()),t._wrap(this,"options",t._patchHandler()),t._wrap(this,"patch",t._patchHandler()),t._wrap(this,"all",t._patchHandler()),t._wrap(this,"on",t._patchOnHandler()),t._wrap(this,"use",t._patchMiddlewareHandler())}}try{e.Hono=n}catch{return{...e,Hono:n}}return e}_patchHandler(){let e=this;return function(t){return function(...n){if("string"==typeof n[0]){let r=n[0];if(1===n.length)return t.apply(this,[r]);let o=n.slice(1);return t.apply(this,[r,...o.map(t=>e._wrapHandler(t))])}return t.apply(this,n.map(t=>e._wrapHandler(t)))}}}_patchOnHandler(){let e=this;return function(t){return function(...n){let r=n.slice(2);return t.apply(this,[...n.slice(0,2),...r.map(t=>e._wrapHandler(t))])}}}_patchMiddlewareHandler(){let e=this;return function(t){return function(...n){if("string"==typeof n[0]){let r=n[0];if(1===n.length)return t.apply(this,[r]);let o=n.slice(1);return t.apply(this,[r,...o.map(t=>e._wrapHandler(t))])}return t.apply(this,n.map(t=>e._wrapHandler(t)))}}}_wrapHandler(e){let t=this;return function(n,o){if(!t.isEnabled())return e.apply(this,[n,o]);let s=n.req.path,l=t.tracer.startSpan(s);return r.context.with(r.trace.setSpan(r.context.active(),l),()=>t._safeExecute(()=>{let r=e.apply(this,[n,o]);if(i.isThenable(r))return r.then(n=>{let r=t._determineHandlerType(n);return l.setAttributes({[a.AttributeNames.HONO_TYPE]:r,[a.AttributeNames.HONO_NAME]:r===a.HonoTypes.REQUEST_HANDLER?s:e.name||"anonymous"}),t.getConfig().responseHook?.(l),n});{let n=t._determineHandlerType(r);return l.setAttributes({[a.AttributeNames.HONO_TYPE]:n,[a.AttributeNames.HONO_NAME]:n===a.HonoTypes.REQUEST_HANDLER?s:e.name||"anonymous"}),t.getConfig().responseHook?.(l),r}},()=>l.end(),e=>{t._handleError(l,e),l.end()}))}}_safeExecute(e,t,n){try{let r=e();return i.isThenable(r)?r.then(()=>t(),e=>n(e)):t(),r}catch(e){throw n(e),e}}_determineHandlerType(e){return void 0===e?a.HonoTypes.MIDDLEWARE:a.HonoTypes.REQUEST_HANDLER}_handleError(e,t){t instanceof Error&&(e.setStatus({code:r.SpanStatusCode.ERROR,message:t.message}),e.recordException(t))}}n.HonoInstrumentation=s},688750,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(808119),o=e.r(976285),i=e.r(625331),a=e.r(866779),s=e.r(212994),l=e.r(29288),u="Hono",c=i.generateInstrumentOnce(u,()=>new l.HonoInstrumentation({responseHook:e=>{!function(e){let t=o.spanToJSON(e).data,n=t[s.AttributeNames.HONO_TYPE];if(t[o.SEMANTIC_ATTRIBUTE_SENTRY_OP]||!n)return;e.setAttributes({[o.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.http.otel.hono",[o.SEMANTIC_ATTRIBUTE_SENTRY_OP]:`${n}.hono`});let i=t[s.AttributeNames.HONO_NAME];if("string"==typeof i&&e.updateName(i),o.getIsolationScope()===o.getDefaultIsolationScope()){a.DEBUG_BUILD&&o.debug.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let l=t[r.ATTR_HTTP_ROUTE],u=t[r.ATTR_HTTP_REQUEST_METHOD];"string"==typeof l&&"string"==typeof u&&o.getIsolationScope().setTransactionName(`${u} ${l}`)}(e)}})),p=o.defineIntegration(()=>({name:u,setupOnce(){c()}}));n.honoIntegration=p,n.instrumentHono=c,n.setupHonoErrorHandler=function(e,t){e.use(async function(e,t){let n=o.httpRequestToRequestData(e.req);o.getIsolationScope().setSDKProcessingMetadata({normalizedRequest:n}),await t()}),e.use(async function(e,n){await n(),(t?.shouldHandleError||function(e){return e.res.status>=500})(e)&&(e.res.sentry=o.captureException(e.error,{mechanism:{type:"auto.middleware.hono",handled:!1}}))}),i.ensureIsWrapped(e.use,"hono")}},476528,(e,t,n)=>{"use strict";var r;Object.defineProperty(n,"__esModule",{value:!0}),n.KoaLayerType=void 0,(r=n.KoaLayerType||(n.KoaLayerType={})).ROUTER="router",r.MIDDLEWARE="middleware"},61353,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.62.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-koa"},259134,(e,t,n)=>{"use strict";var r;Object.defineProperty(n,"__esModule",{value:!0}),n.AttributeNames=void 0,(r=n.AttributeNames||(n.AttributeNames={})).KOA_TYPE="koa.type",r.KOA_NAME="koa.name"},327028,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.isLayerIgnored=n.getMiddlewareMetadata=void 0;let r=e.r(476528),o=e.r(259134),i=e.r(808119);n.getMiddlewareMetadata=(e,t,n,a)=>n?{attributes:{[o.AttributeNames.KOA_NAME]:a?.toString(),[o.AttributeNames.KOA_TYPE]:r.KoaLayerType.ROUTER,[i.ATTR_HTTP_ROUTE]:a?.toString()},name:e._matchedRouteName||`router - ${a}`}:{attributes:{[o.AttributeNames.KOA_NAME]:t.name??"middleware",[o.AttributeNames.KOA_TYPE]:r.KoaLayerType.MIDDLEWARE},name:`middleware - ${t.name}`},n.isLayerIgnored=(e,t)=>!!(Array.isArray(t?.ignoreLayersType)&&t?.ignoreLayersType?.includes(e))},780039,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.kLayerPatched=void 0,n.kLayerPatched=Symbol("koa-layer-patched")},166165,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.KoaInstrumentation=void 0;let r=e.r(357762),o=e.r(204780),i=e.r(476528),a=e.r(61353),s=e.r(327028),l=e.r(385692),u=e.r(780039);class c extends o.InstrumentationBase{constructor(e={}){super(a.PACKAGE_NAME,a.PACKAGE_VERSION,e)}init(){return new o.InstrumentationNodeModuleDefinition("koa",[">=2.0.0 <4"],e=>{let t="Module"===e[Symbol.toStringTag]?e.default:e;return null==t?t:((0,o.isWrapped)(t.prototype.use)&&this._unwrap(t.prototype,"use"),this._wrap(t.prototype,"use",this._getKoaUsePatch.bind(this)),e)},e=>{let t="Module"===e[Symbol.toStringTag]?e.default:e;(0,o.isWrapped)(t.prototype.use)&&this._unwrap(t.prototype,"use")})}_getKoaUsePatch(e){let t=this;return function(n){let r;return r=n.router?t._patchRouterDispatch(n):t._patchLayer(n,!1),e.apply(this,[r])}}_patchRouterDispatch(e){r.diag.debug("Patching @koa/router dispatch");let t=e.router;for(let e of t?.stack??[]){let t=e.path,n=e.stack;for(let e=0;e{if(void 0===r.trace.getSpan(r.context.active()))return e(i,u);let c=(0,s.getMiddlewareMetadata)(i,e,t,n),p=this.tracer.startSpan(c.name,{attributes:c.attributes}),_=(0,l.getRPCMetadata)(r.context.active());_?.type===l.RPCType.HTTP&&i._matchedRoute&&(_.route=i._matchedRoute.toString());let{requestHook:T}=this.getConfig();T&&(0,o.safeExecuteInTheMiddle)(()=>T(p,{context:i,middlewareLayer:e,layerType:a}),e=>{e&&r.diag.error("koa instrumentation: request hook failed",e)},!0);let d=r.trace.setSpan(r.context.active(),p);return r.context.with(d,async()=>{try{return await e(i,u)}catch(e){throw p.recordException(e),e}finally{p.end()}})})}}n.KoaInstrumentation=c},891732,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.KoaLayerType=n.AttributeNames=n.KoaInstrumentation=void 0;var r=e.r(166165);Object.defineProperty(n,"KoaInstrumentation",{enumerable:!0,get:function(){return r.KoaInstrumentation}});var o=e.r(259134);Object.defineProperty(n,"AttributeNames",{enumerable:!0,get:function(){return o.AttributeNames}});var i=e.r(476528);Object.defineProperty(n,"KoaLayerType",{enumerable:!0,get:function(){return i.KoaLayerType}})},86294,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(891732),o=e.r(808119),i=e.r(976285),a=e.r(625331),s=e.r(866779),l=a.generateInstrumentOnce("Koa",r.KoaInstrumentation,(e={})=>({ignoreLayersType:e.ignoreLayersType,requestHook(e,t){a.addOriginToSpan(e,"auto.http.otel.koa");let n=i.spanToJSON(e).data,r=n["koa.type"];r&&e.setAttribute(i.SEMANTIC_ATTRIBUTE_SENTRY_OP,`${r}.koa`);let l=n["koa.name"];if("string"==typeof l&&e.updateName(l||"< unknown >"),i.getIsolationScope()===i.getDefaultIsolationScope()){s.DEBUG_BUILD&&i.debug.warn("Isolation scope is default isolation scope - skipping setting transactionName");return}let u=n[o.ATTR_HTTP_ROUTE],c=t.context?.request?.method?.toUpperCase()||"GET";u&&i.getIsolationScope().setTransactionName(`${c} ${u}`)}})),u=i.defineIntegration((e={})=>({name:"Koa",setupOnce(){l(e)}}));n.instrumentKoa=l,n.koaIntegration=u,n.setupKoaErrorHandler=e=>{e.use(async(e,t)=>{try{await t()}catch(e){throw i.captureException(e,{mechanism:{handled:!1,type:"auto.middleware.koa"}}),e}}),a.ensureIsWrapped(e.use,"koa")}},737439,(e,t,n)=>{"use strict";var r,o,i;Object.defineProperty(n,"__esModule",{value:!0}),n.ConnectNames=n.ConnectTypes=n.AttributeNames=void 0,(r=n.AttributeNames||(n.AttributeNames={})).CONNECT_TYPE="connect.type",r.CONNECT_NAME="connect.name",(o=n.ConnectTypes||(n.ConnectTypes={})).MIDDLEWARE="middleware",o.REQUEST_HANDLER="request_handler",(i=n.ConnectNames||(n.ConnectNames={})).MIDDLEWARE="middleware",i.REQUEST_HANDLER="request handler"},927690,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.57.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-connect"},783486,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n._LAYERS_STORE_PROPERTY=void 0,n._LAYERS_STORE_PROPERTY=Symbol("opentelemetry.instrumentation-connect.request-route-stack")},674147,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.generateRoute=n.replaceCurrentStackRoute=n.addNewStackLayer=void 0;let r=e.r(357762),o=e.r(783486);n.addNewStackLayer=e=>{!1===Array.isArray(e[o._LAYERS_STORE_PROPERTY])&&Object.defineProperty(e,o._LAYERS_STORE_PROPERTY,{enumerable:!1,value:[]}),e[o._LAYERS_STORE_PROPERTY].push("/");let t=e[o._LAYERS_STORE_PROPERTY].length;return()=>{t===e[o._LAYERS_STORE_PROPERTY].length?e[o._LAYERS_STORE_PROPERTY].pop():r.diag.warn("Connect: Trying to pop the stack multiple time")}},n.replaceCurrentStackRoute=(e,t)=>{t&&e[o._LAYERS_STORE_PROPERTY].splice(-1,1,t)},n.generateRoute=e=>e[o._LAYERS_STORE_PROPERTY].reduce((e,t)=>e.replace(/\/+$/,"")+t)},683741,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.ConnectInstrumentation=n.ANONYMOUS_NAME=void 0;let r=e.r(357762),o=e.r(385692),i=e.r(737439),a=e.r(927690),s=e.r(204780),l=e.r(808119),u=e.r(674147);n.ANONYMOUS_NAME="anonymous";class c extends s.InstrumentationBase{constructor(e={}){super(a.PACKAGE_NAME,a.PACKAGE_VERSION,e)}init(){return[new s.InstrumentationNodeModuleDefinition("connect",[">=3.0.0 <4"],e=>this._patchConstructor(e))]}_patchApp(e){(0,s.isWrapped)(e.use)||this._wrap(e,"use",this._patchUse.bind(this)),(0,s.isWrapped)(e.handle)||this._wrap(e,"handle",this._patchHandle.bind(this))}_patchConstructor(e){let t=this;return function(...n){let r=e.apply(this,n);return t._patchApp(r),r}}_patchNext(e,t){return function(n){let r=e.apply(this,[n]);return t(),r}}_startSpan(e,t){let r,o,a;e?(r=i.ConnectTypes.REQUEST_HANDLER,a=i.ConnectNames.REQUEST_HANDLER,o=e):(r=i.ConnectTypes.MIDDLEWARE,a=i.ConnectNames.MIDDLEWARE,o=t.name||n.ANONYMOUS_NAME);let s=`${a} - ${o}`,u={attributes:{[l.ATTR_HTTP_ROUTE]:e.length>0?e:"/",[i.AttributeNames.CONNECT_TYPE]:r,[i.AttributeNames.CONNECT_NAME]:o}};return this.tracer.startSpan(s,u)}_patchMiddleware(e,t){let i=this,a=4===t.length;function s(){if(!i.isEnabled())return t.apply(this,arguments);let[s,l,c]=a?[1,2,3]:[0,1,2],p=arguments[s],_=arguments[l],T=arguments[c];(0,u.replaceCurrentStackRoute)(p,e);let d=(0,o.getRPCMetadata)(r.context.active());e&&d?.type===o.RPCType.HTTP&&(d.route=(0,u.generateRoute)(p));let E="";E=e?`request handler - ${e}`:`middleware - ${t.name||n.ANONYMOUS_NAME}`;let S=i._startSpan(e,t);i._diag.debug("start span",E);let A=!1;function g(){A?i._diag.debug(`span ${S.name} - already finished`):(A=!0,i._diag.debug(`finishing span ${S.name}`),S.end()),_.removeListener("close",g)}return _.addListener("close",g),arguments[c]=i._patchNext(T,g),t.apply(this,arguments)}return Object.defineProperty(s,"length",{value:t.length,writable:!1,configurable:!0}),s}_patchUse(e){let t=this;return function(...n){let r=n[n.length-1],o=n[n.length-2]||"";return n[n.length-1]=t._patchMiddleware(o,r),e.apply(this,n)}}_patchHandle(e){let t=this;return function(){let[n,r]=[0,2],o=arguments[n],i=arguments[r],a=(0,u.addNewStackLayer)(o);return"function"==typeof i&&(arguments[r]=t._patchOut(i,a)),e.apply(this,arguments)}}_patchOut(e,t){return function(...n){return t(),Reflect.apply(e,this,n)}}}n.ConnectInstrumentation=c},13613,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.ConnectTypes=n.ConnectNames=n.AttributeNames=n.ANONYMOUS_NAME=n.ConnectInstrumentation=void 0;var r=e.r(683741);Object.defineProperty(n,"ConnectInstrumentation",{enumerable:!0,get:function(){return r.ConnectInstrumentation}}),Object.defineProperty(n,"ANONYMOUS_NAME",{enumerable:!0,get:function(){return r.ANONYMOUS_NAME}});var o=e.r(737439);Object.defineProperty(n,"AttributeNames",{enumerable:!0,get:function(){return o.AttributeNames}}),Object.defineProperty(n,"ConnectNames",{enumerable:!0,get:function(){return o.ConnectNames}}),Object.defineProperty(n,"ConnectTypes",{enumerable:!0,get:function(){return o.ConnectTypes}})},953027,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(13613),o=e.r(976285),i=e.r(625331),a="Connect",s=i.generateInstrumentOnce(a,()=>new r.ConnectInstrumentation);function l(e,t,n,r){o.captureException(e,{mechanism:{handled:!1,type:"auto.middleware.connect"}}),r(e)}n.connectIntegration=o.defineIntegration(()=>({name:a,setupOnce(){s()}})),n.instrumentConnect=s,n.setupConnectErrorHandler=e=>{e.use(l);let t=o.getClient();t&&t.on("spanStart",e=>{!function(e){let t=o.spanToJSON(e).data,n=t["connect.type"];if(t[o.SEMANTIC_ATTRIBUTE_SENTRY_OP]||!n)return;e.setAttributes({[o.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.http.otel.connect",[o.SEMANTIC_ATTRIBUTE_SENTRY_OP]:`${n}.connect`});let r=t["connect.name"];"string"==typeof r&&e.updateName(r)}(e)}),i.ensureIsWrapped(e.use,"connect")}},210033,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.58.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-knex"},312058,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.SUPPORTED_VERSIONS=n.MODULE_NAME=void 0,n.MODULE_NAME="knex",n.SUPPORTED_VERSIONS=[">=0.22.0 <4",">=0.10.0 <0.18.0",">=0.19.0 <0.22.0",">=0.18.0 <0.19.0"]},77979,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.DB_SYSTEM_NAME_VALUE_SQLITE=n.ATTR_NET_TRANSPORT=n.ATTR_NET_PEER_PORT=n.ATTR_NET_PEER_NAME=n.ATTR_DB_USER=n.ATTR_DB_SYSTEM=n.ATTR_DB_STATEMENT=n.ATTR_DB_SQL_TABLE=n.ATTR_DB_OPERATION=n.ATTR_DB_NAME=void 0,n.ATTR_DB_NAME="db.name",n.ATTR_DB_OPERATION="db.operation",n.ATTR_DB_SQL_TABLE="db.sql.table",n.ATTR_DB_STATEMENT="db.statement",n.ATTR_DB_SYSTEM="db.system",n.ATTR_DB_USER="db.user",n.ATTR_NET_PEER_NAME="net.peer.name",n.ATTR_NET_PEER_PORT="net.peer.port",n.ATTR_NET_TRANSPORT="net.transport",n.DB_SYSTEM_NAME_VALUE_SQLITE="sqlite"},113622,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.extractTableName=n.extractPortFromConnectionString=n.extractHostFromConnectionString=n.extractDatabaseFromConnectionString=n.limitLength=n.getName=n.mapSystem=n.otelExceptionFromKnexError=n.getFormatter=void 0;let r=e.r(808119),o=e.r(77979);n.getFormatter=e=>{if(e){if(e.client){if(e.client._formatQuery)return e.client._formatQuery.bind(e.client);else if(e.client.SqlString)return e.client.SqlString.format.bind(e.client.SqlString)}if(e.builder)return e.builder.toString.bind(e.builder)}return()=>""},n.otelExceptionFromKnexError=function(e,t){return e&&e instanceof Error?{message:t,code:e.code,stack:e.stack,name:e.name}:e};let i=new Map([["sqlite3",o.DB_SYSTEM_NAME_VALUE_SQLITE],["pg",r.DB_SYSTEM_NAME_VALUE_POSTGRESQL]]);n.mapSystem=e=>i.get(e)||e,n.getName=(e,t,n)=>t?n?`${t} ${e}.${n}`:`${t} ${e}`:e,n.limitLength=(e,t)=>"string"==typeof e&&"number"==typeof t&&0{if(e)try{return new URL(e).pathname?.replace(/^\//,"")||void 0}catch{return}},n.extractHostFromConnectionString=e=>{if(e)try{return new URL(e).hostname||void 0}catch{return}},n.extractPortFromConnectionString=e=>{if(e)try{let t=new URL(e).port;return t?parseInt(t,10):void 0}catch{return}},n.extractTableName=e=>{let t=e?._single?.table;return"object"==typeof t?(0,n.extractTableName)(t):t}},730413,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.KnexInstrumentation=void 0;let r=e.r(357762),o=e.r(210033),i=e.r(312058),a=e.r(204780),s=e.r(113622),l=e.r(808119),u=e.r(77979),c=Symbol("opentelemetry.instrumentation-knex.context"),p={maxQueryLength:1022,requireParentSpan:!1};class _ extends a.InstrumentationBase{_semconvStability;constructor(e={}){super(o.PACKAGE_NAME,o.PACKAGE_VERSION,{...p,...e}),this._semconvStability=(0,a.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(e={}){super.setConfig({...p,...e})}init(){let e=new a.InstrumentationNodeModuleDefinition(i.MODULE_NAME,i.SUPPORTED_VERSIONS);return e.files.push(this.getClientNodeModuleFileInstrumentation("src"),this.getClientNodeModuleFileInstrumentation("lib"),this.getRunnerNodeModuleFileInstrumentation("src"),this.getRunnerNodeModuleFileInstrumentation("lib"),this.getRunnerNodeModuleFileInstrumentation("lib/execution")),e}getRunnerNodeModuleFileInstrumentation(e){return new a.InstrumentationNodeModuleFile(`knex/${e}/runner.js`,i.SUPPORTED_VERSIONS,(e,t)=>(this.ensureWrapped(e.prototype,"query",this.createQueryWrapper(t)),e),(e,t)=>(this._unwrap(e.prototype,"query"),e))}getClientNodeModuleFileInstrumentation(e){return new a.InstrumentationNodeModuleFile(`knex/${e}/client.js`,i.SUPPORTED_VERSIONS,e=>(this.ensureWrapped(e.prototype,"queryBuilder",this.storeContext.bind(this)),this.ensureWrapped(e.prototype,"schemaBuilder",this.storeContext.bind(this)),this.ensureWrapped(e.prototype,"raw",this.storeContext.bind(this)),e),e=>(this._unwrap(e.prototype,"queryBuilder"),this._unwrap(e.prototype,"schemaBuilder"),this._unwrap(e.prototype,"raw"),e))}createQueryWrapper(e){let t=this;return function(n){return function(o){let i=this.client.config,p=s.extractTableName(this.builder),_=o?.method,T=i?.connection?.connectionString,d=i?.connection?.filename||i?.connection?.database||s.extractDatabaseFromConnectionString(T),{maxQueryLength:E}=t.getConfig(),S={"knex.version":e},A=i?.connection?.filename===":memory:"?"inproc":void 0;if(t._semconvStability&a.SemconvStability.OLD&&Object.assign(S,{[u.ATTR_DB_SYSTEM]:s.mapSystem(this.client.driverName),[u.ATTR_DB_SQL_TABLE]:p,[u.ATTR_DB_OPERATION]:_,[u.ATTR_DB_USER]:i?.connection?.user,[u.ATTR_DB_NAME]:d,[u.ATTR_NET_PEER_NAME]:i?.connection?.host??s.extractHostFromConnectionString(T),[u.ATTR_NET_PEER_PORT]:i?.connection?.port??s.extractPortFromConnectionString(T),[u.ATTR_NET_TRANSPORT]:A}),t._semconvStability&a.SemconvStability.STABLE&&Object.assign(S,{[l.ATTR_DB_SYSTEM_NAME]:s.mapSystem(this.client.driverName),[l.ATTR_DB_COLLECTION_NAME]:p,[l.ATTR_DB_OPERATION_NAME]:_,[l.ATTR_DB_NAMESPACE]:d,[l.ATTR_SERVER_ADDRESS]:i?.connection?.host??s.extractHostFromConnectionString(T),[l.ATTR_SERVER_PORT]:i?.connection?.port??s.extractPortFromConnectionString(T)}),E){let e=s.limitLength(o?.sql,E);t._semconvStability&a.SemconvStability.STABLE&&(S[l.ATTR_DB_QUERY_TEXT]=e),t._semconvStability&a.SemconvStability.OLD&&(S[u.ATTR_DB_STATEMENT]=e)}let g=this.builder[c]||r.context.active(),m=r.trace.getSpan(g),h=m&&r.trace.isSpanContextValid(m.spanContext());if(t._config.requireParentSpan&&!h)return n.bind(this)(...arguments);let R=t.tracer.startSpan(s.getName(d,_,p),{kind:r.SpanKind.CLIENT,attributes:S},g),f=r.trace.setSpan(r.context.active(),R);return r.context.with(f,n,this,...arguments).then(e=>(R.end(),e)).catch(e=>{let t=s.getFormatter(this)(o.sql,o.bindings||[]),n=e.message.replace(t+" - ",""),i=s.otelExceptionFromKnexError(e,n);throw R.recordException(i),R.setStatus({code:r.SpanStatusCode.ERROR,message:n}),R.end(),e})}}}storeContext(e){return function(){let t=e.apply(this,arguments);return Object.defineProperty(t,c,{value:r.context.active()}),t}}ensureWrapped(e,t,n){(0,a.isWrapped)(e[t])&&this._unwrap(e,t),this._wrap(e,t,n)}}n.KnexInstrumentation=_},618728,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.KnexInstrumentation=void 0;var r=e.r(730413);Object.defineProperty(n,"KnexInstrumentation",{enumerable:!0,get:function(){return r.KnexInstrumentation}})},823099,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(618728),o=e.r(976285),i=e.r(625331),a="Knex",s=i.generateInstrumentOnce(a,()=>new r.KnexInstrumentation({requireParentSpan:!0})),l=o.defineIntegration(()=>{let e;return{name:a,setupOnce(){let t=s();e=i.instrumentWhenWrapped(t)},setup(t){e?.(()=>t.on("spanStart",e=>{let{data:t}=o.spanToJSON(e);"knex.version"in t&&e.setAttribute(o.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,"auto.db.otel.knex")}))}}});n.instrumentKnex=s,n.knexIntegration=l},749620,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.DB_SYSTEM_VALUE_MSSQL=n.ATTR_NET_PEER_PORT=n.ATTR_NET_PEER_NAME=n.ATTR_DB_USER=n.ATTR_DB_SYSTEM=n.ATTR_DB_STATEMENT=n.ATTR_DB_SQL_TABLE=n.ATTR_DB_NAME=void 0,n.ATTR_DB_NAME="db.name",n.ATTR_DB_SQL_TABLE="db.sql.table",n.ATTR_DB_STATEMENT="db.statement",n.ATTR_DB_SYSTEM="db.system",n.ATTR_DB_USER="db.user",n.ATTR_NET_PEER_NAME="net.peer.name",n.ATTR_NET_PEER_PORT="net.peer.port",n.DB_SYSTEM_VALUE_MSSQL="mssql"},224620,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.once=n.getSpanName=void 0,n.getSpanName=function(e,t,n,r){return"execBulkLoad"===e&&r&&t?`${e} ${r} ${t}`:"callProcedure"===e?t?`${e} ${n} ${t}`:`${e} ${n}`:t?`${e} ${t}`:`${e}`},n.once=e=>{let t=!1;return(...n)=>{if(!t)return t=!0,e(...n)}}},104038,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.33.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-tedious"},189155,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.TediousInstrumentation=n.INJECTED_CTX=void 0;let r=e.r(357762),o=e.r(427699),i=e.r(204780),a=e.r(808119),s=e.r(749620),l=e.r(224620),u=e.r(104038),c=Symbol("opentelemetry.instrumentation-tedious.current-database");n.INJECTED_CTX=Symbol("opentelemetry.instrumentation-tedious.context-info-injected");let p=["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"];function _(e){Object.defineProperty(this,c,{value:e,writable:!0})}class T extends i.InstrumentationBase{static COMPONENT="tedious";_netSemconvStability;_dbSemconvStability;constructor(e={}){super(u.PACKAGE_NAME,u.PACKAGE_VERSION,e),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,i.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN),this._dbSemconvStability=(0,i.semconvStabilityFromStr)("database",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}init(){return[new i.InstrumentationNodeModuleDefinition(T.COMPONENT,[">=1.11.0 <20"],e=>{let t=e.Connection.prototype;for(let n of p)(0,i.isWrapped)(t[n])&&this._unwrap(t,n),this._wrap(t,n,this._patchQuery(n,e));return(0,i.isWrapped)(t.connect)&&this._unwrap(t,"connect"),this._wrap(t,"connect",this._patchConnect),e},e=>{if(void 0===e)return;let t=e.Connection.prototype;for(let e of p)this._unwrap(t,e);this._unwrap(t,"connect")})]}_patchConnect(e){return function(){return _.call(this,this.config?.options?.database),this.removeListener("databaseChange",_),this.on("databaseChange",_),this.once("end",()=>{this.removeListener("databaseChange",_)}),e.apply(this,arguments)}}_buildTraceparent(e){let t=e.spanContext();return`00-${t.traceId}-${t.spanId}-0${Number(t.traceFlags||r.TraceFlags.NONE).toString(16)}`}_injectContextInfo(e,t,r){return new Promise(o=>{try{let i=new t.Request("set context_info @opentelemetry_traceparent",e=>{o()});Object.defineProperty(i,n.INJECTED_CTX,{value:!0});let a=Buffer.from(r,"utf8");i.addParameter("opentelemetry_traceparent",t.TYPES.VarBinary,a,{length:a.length}),e.execSql(i)}catch{o()}})}_shouldInjectFor(e){return"execSql"===e||"execSqlBatch"===e||"callProcedure"===e||"execute"===e}_patchQuery(e,t){return u=>{let p=this;function _(_){if(_?.[n.INJECTED_CTX])return u.apply(this,arguments);if(!(_ instanceof o.EventEmitter))return p._diag.warn(`Unexpected invocation of patched ${e} method. Span not recorded`),u.apply(this,arguments);let T=0,d=0,E=()=>d++,S=()=>T++,A=this[c],g="sp_prepare"===_.sqlTextOrProcedure&&_.parametersByName?.stmt?.value?_.parametersByName.stmt.value:_.sqlTextOrProcedure,m={};p._dbSemconvStability&i.SemconvStability.OLD&&(m[s.ATTR_DB_SYSTEM]=s.DB_SYSTEM_VALUE_MSSQL,m[s.ATTR_DB_NAME]=A,m[s.ATTR_DB_USER]=this.config?.userName??this.config?.authentication?.options?.userName,m[s.ATTR_DB_STATEMENT]=g,m[s.ATTR_DB_SQL_TABLE]=_.table),p._dbSemconvStability&i.SemconvStability.STABLE&&(m[a.ATTR_DB_NAMESPACE]=A,m[a.ATTR_DB_SYSTEM_NAME]=a.DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER,m[a.ATTR_DB_QUERY_TEXT]=g,m[a.ATTR_DB_COLLECTION_NAME]=_.table),p._netSemconvStability&i.SemconvStability.OLD&&(m[s.ATTR_NET_PEER_NAME]=this.config?.server,m[s.ATTR_NET_PEER_PORT]=this.config?.options?.port),p._netSemconvStability&i.SemconvStability.STABLE&&(m[a.ATTR_SERVER_ADDRESS]=this.config?.server,m[a.ATTR_SERVER_PORT]=this.config?.options?.port);let h=p.tracer.startSpan((0,l.getSpanName)(e,A,g,_.table),{kind:r.SpanKind.CLIENT,attributes:m}),R=(0,l.once)(e=>{_.removeListener("done",E),_.removeListener("doneInProc",E),_.removeListener("doneProc",S),_.removeListener("error",R),this.removeListener("end",R),h.setAttribute("tedious.procedure_count",T),h.setAttribute("tedious.statement_count",d),e&&h.setStatus({code:r.SpanStatusCode.ERROR,message:e.message}),h.end()});_.on("done",E),_.on("doneInProc",E),_.on("doneProc",S),_.once("error",R),this.on("end",R),"function"==typeof _.callback?p._wrap(_,"callback",p._patchCallbackQuery(R)):p._diag.error("Expected request.callback to be a function");let f=()=>r.context.with(r.trace.setSpan(r.context.active(),h),u,this,...arguments);if(!(p.getConfig().enableTraceContextPropagation&&p._shouldInjectFor(e)))return f();let N=p._buildTraceparent(h);p._injectContextInfo(this,t,N).finally(f)}return Object.defineProperty(_,"length",{value:u.length,writable:!1}),_}}_patchCallbackQuery(e){return t=>function(n,r,o){return e(n),t.apply(this,arguments)}}}n.TediousInstrumentation=T},537920,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.TediousInstrumentation=void 0;var r=e.r(189155);Object.defineProperty(n,"TediousInstrumentation",{enumerable:!0,get:function(){return r.TediousInstrumentation}})},946603,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(537920),o=e.r(976285),i=e.r(625331),a=new Set(["callProcedure","execSql","execSqlBatch","execBulkLoad","prepare","execute"]),s="Tedious",l=i.generateInstrumentOnce(s,()=>new r.TediousInstrumentation({})),u=o.defineIntegration(()=>{let e;return{name:s,setupOnce(){let t=l();e=i.instrumentWhenWrapped(t)},setup(t){e?.(()=>t.on("spanStart",e=>{let{description:t,data:n}=o.spanToJSON(e);if(!t||"mssql"!==n["db.system"])return;let r=t.split(" ")[0]||"";a.has(r)&&e.setAttribute(o.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,"auto.db.otel.tedious")}))}}});n.instrumentTedious=l,n.tediousIntegration=u},171476,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.57.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-generic-pool"},936981,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.GenericPoolInstrumentation=void 0;let r=e.r(357762),o=e.r(204780),i=e.r(171476),a="generic-pool";class s extends o.InstrumentationBase{_isDisabled=!1;constructor(e={}){super(i.PACKAGE_NAME,i.PACKAGE_VERSION,e)}init(){return[new o.InstrumentationNodeModuleDefinition(a,[">=3.0.0 <4"],e=>{let t=e.Pool;return(0,o.isWrapped)(t.prototype.acquire)&&this._unwrap(t.prototype,"acquire"),this._wrap(t.prototype,"acquire",this._acquirePatcher.bind(this)),e},e=>{let t=e.Pool;return this._unwrap(t.prototype,"acquire"),e}),new o.InstrumentationNodeModuleDefinition(a,[">=2.4.0 <3"],e=>{let t=e.Pool;return(0,o.isWrapped)(t.prototype.acquire)&&this._unwrap(t.prototype,"acquire"),this._wrap(t.prototype,"acquire",this._acquireWithCallbacksPatcher.bind(this)),e},e=>{let t=e.Pool;return this._unwrap(t.prototype,"acquire"),e}),new o.InstrumentationNodeModuleDefinition(a,[">=2.0.0 <2.4"],e=>(this._isDisabled=!1,(0,o.isWrapped)(e.Pool)&&this._unwrap(e,"Pool"),this._wrap(e,"Pool",this._poolWrapper.bind(this)),e),e=>(this._isDisabled=!0,e))]}_acquirePatcher(e){let t=this;return function(...n){let o=r.context.active(),i=t.tracer.startSpan("generic-pool.acquire",{},o);return r.context.with(r.trace.setSpan(o,i),()=>e.call(this,...n).then(e=>(i.end(),e),e=>{throw i.recordException(e),i.end(),e}))}}_poolWrapper(e){let t=this;return function(){let n=e.apply(this,arguments);return t._wrap(n,"acquire",t._acquireWithCallbacksPatcher.bind(t)),n}}_acquireWithCallbacksPatcher(e){let t=this;return function(n,o){if(t._isDisabled)return e.call(this,n,o);let i=r.context.active(),a=t.tracer.startSpan("generic-pool.acquire",{},i);return r.context.with(r.trace.setSpan(i,a),()=>{e.call(this,(e,t)=>{if(a.end(),n)return n(e,t)},o)})}}}n.GenericPoolInstrumentation=s},802638,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.GenericPoolInstrumentation=void 0;var r=e.r(936981);Object.defineProperty(n,"GenericPoolInstrumentation",{enumerable:!0,get:function(){return r.GenericPoolInstrumentation}})},979396,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(802638),o=e.r(976285),i=e.r(625331),a="GenericPool",s=i.generateInstrumentOnce(a,()=>new r.GenericPoolInstrumentation({}));n.genericPoolIntegration=o.defineIntegration(()=>{let e;return{name:a,setupOnce(){let t=s();e=i.instrumentWhenWrapped(t)},setup(t){e?.(()=>t.on("spanStart",e=>{let t=o.spanToJSON(e).description;("generic-pool.aquire"===t||"generic-pool.acquire"===t)&&e.setAttribute(o.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,"auto.db.otel.generic_pool")}))}}}),n.instrumentGenericPool=s},624905,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.31.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-dataloader"},56741,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.DataloaderInstrumentation=void 0;let r=e.r(204780),o=e.r(357762),i=e.r(624905),a="dataloader";function s(e){return"Module"===e[Symbol.toStringTag]?e.default:e}class l extends r.InstrumentationBase{constructor(e={}){super(i.PACKAGE_NAME,i.PACKAGE_VERSION,e)}init(){return[new r.InstrumentationNodeModuleDefinition(a,[">=2.0.0 <3"],e=>{let t=s(e);return this._patchLoad(t.prototype),this._patchLoadMany(t.prototype),this._patchPrime(t.prototype),this._patchClear(t.prototype),this._patchClearAll(t.prototype),this._getPatchedConstructor(t)},e=>{let t=s(e);["load","loadMany","prime","clear","clearAll"].forEach(e=>{(0,r.isWrapped)(t.prototype[e])&&this._unwrap(t.prototype,e)})})]}shouldCreateSpans(){let e=this.getConfig();return void 0!==o.trace.getSpan(o.context.active())||!e.requireParentSpan}getSpanName(e,t){let n=e.name;return null==n?`${a}.${t}`:`${a}.${t} ${n}`}_wrapBatchLoadFn(e){let t=this;return function(...n){if(!t.isEnabled()||!t.shouldCreateSpans())return e.call(this,...n);let r=o.context.active(),i=t.tracer.startSpan(t.getSpanName(this,"batch"),{links:this._batch?.spanLinks},r);return o.context.with(o.trace.setSpan(r,i),()=>e.apply(this,n).then(e=>(i.end(),e)).catch(e=>{throw i.recordException(e),i.setStatus({code:o.SpanStatusCode.ERROR,message:e.message}),i.end(),e}))}}_getPatchedConstructor(e){let t=this,n=e.prototype;if(!t.isEnabled())return e;function o(...n){return"function"==typeof n[0]&&((0,r.isWrapped)(n[0])&&t._unwrap(n,0),n[0]=t._wrapBatchLoadFn(n[0])),e.apply(this,n)}return o.prototype=n,o}_patchLoad(e){(0,r.isWrapped)(e.load)&&this._unwrap(e,"load"),this._wrap(e,"load",this._getPatchedLoad.bind(this))}_getPatchedLoad(e){let t=this;return function(...n){if(!t.shouldCreateSpans())return e.call(this,...n);let r=o.context.active(),i=t.tracer.startSpan(t.getSpanName(this,"load"),{kind:o.SpanKind.CLIENT},r);return o.context.with(o.trace.setSpan(r,i),()=>{let t=e.call(this,...n).then(e=>(i.end(),e)).catch(e=>{throw i.recordException(e),i.setStatus({code:o.SpanStatusCode.ERROR,message:e.message}),i.end(),e});return this._batch&&(this._batch.spanLinks||(this._batch.spanLinks=[]),this._batch.spanLinks.push({context:i.spanContext()})),t})}}_patchLoadMany(e){(0,r.isWrapped)(e.loadMany)&&this._unwrap(e,"loadMany"),this._wrap(e,"loadMany",this._getPatchedLoadMany.bind(this))}_getPatchedLoadMany(e){let t=this;return function(...n){if(!t.shouldCreateSpans())return e.call(this,...n);let r=o.context.active(),i=t.tracer.startSpan(t.getSpanName(this,"loadMany"),{kind:o.SpanKind.CLIENT},r);return o.context.with(o.trace.setSpan(r,i),()=>e.call(this,...n).then(e=>(i.end(),e)))}}_patchPrime(e){(0,r.isWrapped)(e.prime)&&this._unwrap(e,"prime"),this._wrap(e,"prime",this._getPatchedPrime.bind(this))}_getPatchedPrime(e){let t=this;return function(...n){if(!t.shouldCreateSpans())return e.call(this,...n);let r=o.context.active(),i=t.tracer.startSpan(t.getSpanName(this,"prime"),{kind:o.SpanKind.CLIENT},r),a=o.context.with(o.trace.setSpan(r,i),()=>e.call(this,...n));return i.end(),a}}_patchClear(e){(0,r.isWrapped)(e.clear)&&this._unwrap(e,"clear"),this._wrap(e,"clear",this._getPatchedClear.bind(this))}_getPatchedClear(e){let t=this;return function(...n){if(!t.shouldCreateSpans())return e.call(this,...n);let r=o.context.active(),i=t.tracer.startSpan(t.getSpanName(this,"clear"),{kind:o.SpanKind.CLIENT},r),a=o.context.with(o.trace.setSpan(r,i),()=>e.call(this,...n));return i.end(),a}}_patchClearAll(e){(0,r.isWrapped)(e.clearAll)&&this._unwrap(e,"clearAll"),this._wrap(e,"clearAll",this._getPatchedClearAll.bind(this))}_getPatchedClearAll(e){let t=this;return function(...n){if(!t.shouldCreateSpans())return e.call(this,...n);let r=o.context.active(),i=t.tracer.startSpan(t.getSpanName(this,"clearAll"),{kind:o.SpanKind.CLIENT},r),a=o.context.with(o.trace.setSpan(r,i),()=>e.call(this,...n));return i.end(),a}}}n.DataloaderInstrumentation=l},228251,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.DataloaderInstrumentation=void 0;var r=e.r(56741);Object.defineProperty(n,"DataloaderInstrumentation",{enumerable:!0,get:function(){return r.DataloaderInstrumentation}})},363082,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(228251),o=e.r(976285),i=e.r(625331),a="Dataloader",s=i.generateInstrumentOnce(a,()=>new r.DataloaderInstrumentation({requireParentSpan:!0}));n.dataloaderIntegration=o.defineIntegration(()=>{let e;return{name:a,setupOnce(){let t=s();e=i.instrumentWhenWrapped(t)},setup(t){e?.(()=>{t.on("spanStart",e=>{let t=o.spanToJSON(e);t.description?.startsWith("dataloader")&&e.setAttribute(o.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,"auto.db.otel.dataloader"),("dataloader.load"===t.description||"dataloader.loadMany"===t.description||"dataloader.batch"===t.description)&&e.setAttribute(o.SEMANTIC_ATTRIBUTE_SENTRY_OP,"cache.get")})})}}}),n.instrumentDataloader=s},58684,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.ATTR_NET_PEER_PORT=n.ATTR_NET_PEER_NAME=n.ATTR_MESSAGING_SYSTEM=n.ATTR_MESSAGING_OPERATION=void 0,n.ATTR_MESSAGING_OPERATION="messaging.operation",n.ATTR_MESSAGING_SYSTEM="messaging.system",n.ATTR_NET_PEER_NAME="net.peer.name",n.ATTR_NET_PEER_PORT="net.peer.port"},980159,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.ATTR_MESSAGING_CONVERSATION_ID=n.OLD_ATTR_MESSAGING_MESSAGE_ID=n.MESSAGING_DESTINATION_KIND_VALUE_TOPIC=n.ATTR_MESSAGING_URL=n.ATTR_MESSAGING_PROTOCOL_VERSION=n.ATTR_MESSAGING_PROTOCOL=n.MESSAGING_OPERATION_VALUE_PROCESS=n.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY=n.ATTR_MESSAGING_DESTINATION_KIND=n.ATTR_MESSAGING_DESTINATION=void 0,n.ATTR_MESSAGING_DESTINATION="messaging.destination",n.ATTR_MESSAGING_DESTINATION_KIND="messaging.destination_kind",n.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY="messaging.rabbitmq.routing_key",n.MESSAGING_OPERATION_VALUE_PROCESS="process",n.ATTR_MESSAGING_PROTOCOL="messaging.protocol",n.ATTR_MESSAGING_PROTOCOL_VERSION="messaging.protocol_version",n.ATTR_MESSAGING_URL="messaging.url",n.MESSAGING_DESTINATION_KIND_VALUE_TOPIC="topic",n.OLD_ATTR_MESSAGING_MESSAGE_ID="messaging.message_id",n.ATTR_MESSAGING_CONVERSATION_ID="messaging.conversation_id"},650834,(e,t,n)=>{"use strict";var r;Object.defineProperty(n,"__esModule",{value:!0}),n.DEFAULT_CONFIG=n.EndOperation=void 0,(r=n.EndOperation||(n.EndOperation={})).AutoAck="auto ack",r.Ack="ack",r.AckAll="ackAll",r.Reject="reject",r.Nack="nack",r.NackAll="nackAll",r.ChannelClosed="channel closed",r.ChannelError="channel error",r.InstrumentationTimeout="instrumentation timeout",n.DEFAULT_CONFIG={consumeTimeoutMs:6e4,useLinksForConsume:!1}},959801,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.isConfirmChannelTracing=n.unmarkConfirmChannelTracing=n.markConfirmChannelTracing=n.getConnectionAttributesFromUrl=n.getConnectionAttributesFromServer=n.normalizeExchange=n.CONNECTION_ATTRIBUTES=n.CHANNEL_CONSUME_TIMEOUT_TIMER=n.CHANNEL_SPANS_NOT_ENDED=n.MESSAGE_STORED_SPAN=void 0;let r=e.r(357762),o=e.r(204780),i=e.r(808119),a=e.r(58684),s=e.r(980159);n.MESSAGE_STORED_SPAN=Symbol("opentelemetry.amqplib.message.stored-span"),n.CHANNEL_SPANS_NOT_ENDED=Symbol("opentelemetry.amqplib.channel.spans-not-ended"),n.CHANNEL_CONSUME_TIMEOUT_TIMER=Symbol("opentelemetry.amqplib.channel.consumer-timeout-timer"),n.CONNECTION_ATTRIBUTES=Symbol("opentelemetry.amqplib.connection.attributes");let l=(0,r.createContextKey)("opentelemetry.amqplib.channel.is-confirm-channel");n.normalizeExchange=e=>""!==e?e:"";let u=(e,t)=>e||("AMQP"===t?5672:5671),c=e=>{let t=e||"amqp";return(t.endsWith(":")?t.substring(0,t.length-1):t).toUpperCase()},p=(e,t,n,o)=>n?{[t]:n}:(r.diag.error(`amqplib instrumentation: could not extract connection attribute ${o} from user supplied url`,{url:e}),{});n.getConnectionAttributesFromServer=e=>{let t=e.serverProperties.product?.toLowerCase?.();return t?{[a.ATTR_MESSAGING_SYSTEM]:t}:{}},n.getConnectionAttributesFromUrl=(e,t)=>{let n={[s.ATTR_MESSAGING_PROTOCOL_VERSION]:"0.9.1"};if("object"==typeof(e=e||"amqp://localhost")){let r=e,l=c(r?.protocol);Object.assign(n,{...p(e,s.ATTR_MESSAGING_PROTOCOL,l,"protocol")});let _=r?.hostname||"localhost";t&o.SemconvStability.OLD&&Object.assign(n,{...p(e,a.ATTR_NET_PEER_NAME,_,"hostname")}),t&o.SemconvStability.STABLE&&Object.assign(n,{...p(e,i.ATTR_SERVER_ADDRESS,_,"hostname")});let T=u(r.port,l);t&o.SemconvStability.OLD&&Object.assign(n,p(e,a.ATTR_NET_PEER_PORT,T,"port")),t&o.SemconvStability.STABLE&&Object.assign(n,p(e,i.ATTR_SERVER_PORT,T,"port"))}else{let l=e.replace(/:[^:@/]*@/,":***@");n[s.ATTR_MESSAGING_URL]=l;try{let e=new URL(l),r=c(e.protocol);Object.assign(n,{...p(l,s.ATTR_MESSAGING_PROTOCOL,r,"protocol")});let _=e.hostname||"localhost";t&o.SemconvStability.OLD&&Object.assign(n,{...p(l,a.ATTR_NET_PEER_NAME,_,"hostname")}),t&o.SemconvStability.STABLE&&Object.assign(n,{...p(l,i.ATTR_SERVER_ADDRESS,_,"hostname")});let T=u(e.port?parseInt(e.port):void 0,r);t&o.SemconvStability.OLD&&Object.assign(n,p(l,a.ATTR_NET_PEER_PORT,T,"port")),t&o.SemconvStability.STABLE&&Object.assign(n,p(l,i.ATTR_SERVER_PORT,T,"port"))}catch(e){r.diag.error("amqplib instrumentation: error while extracting connection details from connection url",{censoredUrl:l,err:e})}}return n},n.markConfirmChannelTracing=e=>e.setValue(l,!0),n.unmarkConfirmChannelTracing=e=>e.deleteValue(l),n.isConfirmChannelTracing=e=>!0===e.getValue(l)},36349,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.PACKAGE_NAME=n.PACKAGE_VERSION=void 0,n.PACKAGE_VERSION="0.61.0",n.PACKAGE_NAME="@opentelemetry/instrumentation-amqplib"},826845,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.AmqplibInstrumentation=void 0;let r=e.r(357762),o=e.r(385692),i=e.r(204780),a=e.r(58684),s=e.r(980159),l=e.r(650834),u=e.r(959801),c=e.r(36349),p=[">=0.5.5 <1"];class _ extends i.InstrumentationBase{_netSemconvStability;constructor(e={}){super(c.PACKAGE_NAME,c.PACKAGE_VERSION,{...l.DEFAULT_CONFIG,...e}),this._setSemconvStabilityFromEnv()}_setSemconvStabilityFromEnv(){this._netSemconvStability=(0,i.semconvStabilityFromStr)("http",process.env.OTEL_SEMCONV_STABILITY_OPT_IN)}setConfig(e={}){super.setConfig({...l.DEFAULT_CONFIG,...e})}init(){let e=new i.InstrumentationNodeModuleFile("amqplib/lib/channel_model.js",p,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),t=new i.InstrumentationNodeModuleFile("amqplib/lib/callback_model.js",p,this.patchChannelModel.bind(this),this.unpatchChannelModel.bind(this)),n=new i.InstrumentationNodeModuleFile("amqplib/lib/connect.js",p,this.patchConnect.bind(this),this.unpatchConnect.bind(this));return new i.InstrumentationNodeModuleDefinition("amqplib",p,void 0,void 0,[e,n,t])}patchConnect(e){return e=this.unpatchConnect(e),(0,i.isWrapped)(e.connect)||this._wrap(e,"connect",this.getConnectPatch.bind(this)),e}unpatchConnect(e){return(0,i.isWrapped)(e.connect)&&this._unwrap(e,"connect"),e}patchChannelModel(e,t){return(0,i.isWrapped)(e.Channel.prototype.publish)||this._wrap(e.Channel.prototype,"publish",this.getPublishPatch.bind(this,t)),(0,i.isWrapped)(e.Channel.prototype.consume)||this._wrap(e.Channel.prototype,"consume",this.getConsumePatch.bind(this,t)),(0,i.isWrapped)(e.Channel.prototype.ack)||this._wrap(e.Channel.prototype,"ack",this.getAckPatch.bind(this,!1,l.EndOperation.Ack)),(0,i.isWrapped)(e.Channel.prototype.nack)||this._wrap(e.Channel.prototype,"nack",this.getAckPatch.bind(this,!0,l.EndOperation.Nack)),(0,i.isWrapped)(e.Channel.prototype.reject)||this._wrap(e.Channel.prototype,"reject",this.getAckPatch.bind(this,!0,l.EndOperation.Reject)),(0,i.isWrapped)(e.Channel.prototype.ackAll)||this._wrap(e.Channel.prototype,"ackAll",this.getAckAllPatch.bind(this,!1,l.EndOperation.AckAll)),(0,i.isWrapped)(e.Channel.prototype.nackAll)||this._wrap(e.Channel.prototype,"nackAll",this.getAckAllPatch.bind(this,!0,l.EndOperation.NackAll)),(0,i.isWrapped)(e.Channel.prototype.emit)||this._wrap(e.Channel.prototype,"emit",this.getChannelEmitPatch.bind(this)),(0,i.isWrapped)(e.ConfirmChannel.prototype.publish)||this._wrap(e.ConfirmChannel.prototype,"publish",this.getConfirmedPublishPatch.bind(this,t)),e}unpatchChannelModel(e){return(0,i.isWrapped)(e.Channel.prototype.publish)&&this._unwrap(e.Channel.prototype,"publish"),(0,i.isWrapped)(e.Channel.prototype.consume)&&this._unwrap(e.Channel.prototype,"consume"),(0,i.isWrapped)(e.Channel.prototype.ack)&&this._unwrap(e.Channel.prototype,"ack"),(0,i.isWrapped)(e.Channel.prototype.nack)&&this._unwrap(e.Channel.prototype,"nack"),(0,i.isWrapped)(e.Channel.prototype.reject)&&this._unwrap(e.Channel.prototype,"reject"),(0,i.isWrapped)(e.Channel.prototype.ackAll)&&this._unwrap(e.Channel.prototype,"ackAll"),(0,i.isWrapped)(e.Channel.prototype.nackAll)&&this._unwrap(e.Channel.prototype,"nackAll"),(0,i.isWrapped)(e.Channel.prototype.emit)&&this._unwrap(e.Channel.prototype,"emit"),(0,i.isWrapped)(e.ConfirmChannel.prototype.publish)&&this._unwrap(e.ConfirmChannel.prototype,"publish"),e}getConnectPatch(e){let t=this;return function(n,r,o){return e.call(this,n,r,function(e,r){if(null==e){let e=(0,u.getConnectionAttributesFromUrl)(n,t._netSemconvStability),o=(0,u.getConnectionAttributesFromServer)(r);r[u.CONNECTION_ATTRIBUTES]={...e,...o}}o.apply(this,arguments)})}}getChannelEmitPatch(e){let t=this;return function(n){if("close"===n){t.endAllSpansOnChannel(this,!0,l.EndOperation.ChannelClosed,void 0);let e=this[u.CHANNEL_CONSUME_TIMEOUT_TIMER];e&&clearInterval(e),this[u.CHANNEL_CONSUME_TIMEOUT_TIMER]=void 0}else"error"===n&&t.endAllSpansOnChannel(this,!0,l.EndOperation.ChannelError,void 0);return e.apply(this,arguments)}}getAckAllPatch(e,t,n){let r=this;return function(o){return r.endAllSpansOnChannel(this,e,t,o),n.apply(this,arguments)}}getAckPatch(e,t,n){let r=this;return function(o,i,a){let s=t===l.EndOperation.Reject?i:a,c=this[u.CHANNEL_SPANS_NOT_ENDED]??[],p=c.findIndex(e=>e.msg===o);if(p<0)r.endConsumerSpan(o,e,t,s);else if(t!==l.EndOperation.Reject&&i){for(let n=0;n<=p;n++)r.endConsumerSpan(c[n].msg,e,t,s);c.splice(0,p+1)}else r.endConsumerSpan(o,e,t,s),c.splice(p,1);return n.apply(this,arguments)}}getConsumePatch(e,t){let n=this;return function(c,p,_){let T=this;if(!Object.prototype.hasOwnProperty.call(T,u.CHANNEL_SPANS_NOT_ENDED)){let{consumeTimeoutMs:e}=n.getConfig();if(e){let t=setInterval(()=>{n.checkConsumeTimeoutOnChannel(T)},e);t.unref(),T[u.CHANNEL_CONSUME_TIMEOUT_TIMER]=t}T[u.CHANNEL_SPANS_NOT_ENDED]=[]}return arguments[1]=function(t){let d;if(!t)return p.call(this,t);let E=t.properties.headers??{},S=r.propagation.extract(r.ROOT_CONTEXT,E),A=t.fields?.exchange;if(n._config.useLinksForConsume){let e=S?r.trace.getSpan(S)?.spanContext():void 0;S=void 0,e&&(d=[{context:e}])}let g=n.tracer.startSpan(`${c} process`,{kind:r.SpanKind.CONSUMER,attributes:{...T?.connection?.[u.CONNECTION_ATTRIBUTES],[s.ATTR_MESSAGING_DESTINATION]:A,[s.ATTR_MESSAGING_DESTINATION_KIND]:s.MESSAGING_DESTINATION_KIND_VALUE_TOPIC,[s.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]:t.fields?.routingKey,[a.ATTR_MESSAGING_OPERATION]:s.MESSAGING_OPERATION_VALUE_PROCESS,[s.OLD_ATTR_MESSAGING_MESSAGE_ID]:t?.properties.messageId,[s.ATTR_MESSAGING_CONVERSATION_ID]:t?.properties.correlationId},links:d},S),{consumeHook:m}=n.getConfig();m&&(0,i.safeExecuteInTheMiddle)(()=>m(g,{moduleVersion:e,msg:t}),e=>{e&&r.diag.error("amqplib instrumentation: consumerHook error",e)},!0),_?.noAck||(T[u.CHANNEL_SPANS_NOT_ENDED].push({msg:t,timeOfConsume:(0,o.hrTime)()}),t[u.MESSAGE_STORED_SPAN]=g);let h=S||r.ROOT_CONTEXT;r.context.with(r.trace.setSpan(h,g),()=>{p.call(this,t)}),_?.noAck&&(n.callConsumeEndHook(g,t,!1,l.EndOperation.AutoAck),g.end())},t.apply(this,arguments)}}getConfirmedPublishPatch(e,t){let n=this;return function(o,a,s,l,c){let{span:p,modifiedOptions:_}=n.createPublishSpan(n,o,a,this,l),{publishHook:T}=n.getConfig();T&&(0,i.safeExecuteInTheMiddle)(()=>T(p,{moduleVersion:e,exchange:o,routingKey:a,content:s,options:_,isConfirmChannel:!0}),e=>{e&&r.diag.error("amqplib instrumentation: publishHook error",e)},!0);let d=(0,u.markConfirmChannelTracing)(r.context.active()),E=[...arguments];return E[3]=_,E[4]=r.context.bind((0,u.unmarkConfirmChannelTracing)(r.trace.setSpan(d,p)),function(t,u){try{c?.call(this,t,u)}finally{let{publishConfirmHook:u}=n.getConfig();u&&(0,i.safeExecuteInTheMiddle)(()=>u(p,{moduleVersion:e,exchange:o,routingKey:a,content:s,options:l,isConfirmChannel:!0,confirmError:t}),e=>{e&&r.diag.error("amqplib instrumentation: publishConfirmHook error",e)},!0),t&&p.setStatus({code:r.SpanStatusCode.ERROR,message:"message confirmation has been nack'ed"}),p.end()}}),r.context.with(d,t.bind(this,...E))}}getPublishPatch(e,t){let n=this;return function(o,a,s,l){if((0,u.isConfirmChannelTracing)(r.context.active()))return t.apply(this,arguments);{let{span:u,modifiedOptions:c}=n.createPublishSpan(n,o,a,this,l),{publishHook:p}=n.getConfig();p&&(0,i.safeExecuteInTheMiddle)(()=>p(u,{moduleVersion:e,exchange:o,routingKey:a,content:s,options:c,isConfirmChannel:!1}),e=>{e&&r.diag.error("amqplib instrumentation: publishHook error",e)},!0);let _=[...arguments];_[3]=c;let T=t.apply(this,_);return u.end(),T}}}createPublishSpan(e,t,n,o,i){let a=(0,u.normalizeExchange)(t),l=e.tracer.startSpan(`publish ${a}`,{kind:r.SpanKind.PRODUCER,attributes:{...o.connection[u.CONNECTION_ATTRIBUTES],[s.ATTR_MESSAGING_DESTINATION]:t,[s.ATTR_MESSAGING_DESTINATION_KIND]:s.MESSAGING_DESTINATION_KIND_VALUE_TOPIC,[s.ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]:n,[s.OLD_ATTR_MESSAGING_MESSAGE_ID]:i?.messageId,[s.ATTR_MESSAGING_CONVERSATION_ID]:i?.correlationId}}),c=i??{};return c.headers=c.headers??{},r.propagation.inject(r.trace.setSpan(r.context.active(),l),c.headers),{span:l,modifiedOptions:c}}endConsumerSpan(e,t,n,o){let i=e[u.MESSAGE_STORED_SPAN];i&&(!1!==t&&i.setStatus({code:r.SpanStatusCode.ERROR,message:n!==l.EndOperation.ChannelClosed&&n!==l.EndOperation.ChannelError?`${n} called on message${!0===o?" with requeue":!1===o?" without requeue":""}`:n}),this.callConsumeEndHook(i,e,t,n),i.end(),e[u.MESSAGE_STORED_SPAN]=void 0)}endAllSpansOnChannel(e,t,n,r){(e[u.CHANNEL_SPANS_NOT_ENDED]??[]).forEach(e=>{this.endConsumerSpan(e.msg,t,n,r)}),e[u.CHANNEL_SPANS_NOT_ENDED]=[]}callConsumeEndHook(e,t,n,o){let{consumeEndHook:a}=this.getConfig();a&&(0,i.safeExecuteInTheMiddle)(()=>a(e,{msg:t,rejected:n,endOperation:o}),e=>{e&&r.diag.error("amqplib instrumentation: consumerEndHook error",e)},!0)}checkConsumeTimeoutOnChannel(e){let t,n=(0,o.hrTime)(),r=e[u.CHANNEL_SPANS_NOT_ENDED]??[],{consumeTimeoutMs:i}=this.getConfig();for(t=0;t{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.EndOperation=n.DEFAULT_CONFIG=n.AmqplibInstrumentation=void 0;var r=e.r(826845);Object.defineProperty(n,"AmqplibInstrumentation",{enumerable:!0,get:function(){return r.AmqplibInstrumentation}});var o=e.r(650834);Object.defineProperty(n,"DEFAULT_CONFIG",{enumerable:!0,get:function(){return o.DEFAULT_CONFIG}}),Object.defineProperty(n,"EndOperation",{enumerable:!0,get:function(){return o.EndOperation}})},855902,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(908157),o=e.r(976285),i=e.r(625331),a="Amqplib",s={consumeEndHook:e=>{i.addOriginToSpan(e,"auto.amqplib.otel.consumer")},publishHook:e=>{i.addOriginToSpan(e,"auto.amqplib.otel.publisher")}},l=i.generateInstrumentOnce(a,()=>new r.AmqplibInstrumentation(s));n.amqplibIntegration=o.defineIntegration(()=>({name:a,setupOnce(){l()}})),n.instrumentAmqplib=l},197696,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),n.INTEGRATION_NAME="VercelAI"},696887,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(204780),o=e.r(976285),i=e.r(197696),a=[">=3.0.0 <7"],s=["generateText","streamText","generateObject","streamObject","embed","embedMany","rerank"];function l(e){"object"==typeof e&&null!==e&&"content"in e&&Array.isArray(e.content)&&(function(e){for(let t of e){if(!("object"==typeof t&&null!==t&&"type"in t&&"error"in t&&"toolName"in t&&"toolCallId"in t&&"tool-error"===t.type&&t.error instanceof Error))continue;let e=o._INTERNAL_getSpanContextForToolCallId(t.toolCallId);e?o.withScope(n=>{n.setContext("trace",{trace_id:e.traceId,span_id:e.spanId}),n.setTag("vercel.ai.tool.name",t.toolName),n.setTag("vercel.ai.tool.callId",t.toolCallId),n.setLevel("error"),o.captureException(t.error,{mechanism:{type:"auto.vercelai.otel",handled:!1}})}):o.withScope(e=>{e.setTag("vercel.ai.tool.name",t.toolName),e.setTag("vercel.ai.tool.callId",t.toolCallId),e.setLevel("error"),o.captureException(t.error,{mechanism:{type:"auto.vercelai.otel",handled:!1}})})}}(e.content),u(e.content))}function u(e){for(let t of e)"object"==typeof t&&null!==t&&"toolCallId"in t&&"string"==typeof t.toolCallId&&o._INTERNAL_cleanupToolCallSpanContext(t.toolCallId)}function c(e,t,n,r){return{recordInputs:e?.recordInputs!==void 0?e.recordInputs:void 0!==t.recordInputs?t.recordInputs:!0===n||r,recordOutputs:e?.recordOutputs!==void 0?e.recordOutputs:void 0!==t.recordOutputs?t.recordOutputs:!0===n||r}}class p extends r.InstrumentationBase{__init(){this._isPatched=!1}__init2(){this._callbacks=[]}constructor(e={}){super("@sentry/instrumentation-vercel-ai",o.SDK_VERSION,e),p.prototype.__init.call(this),p.prototype.__init2.call(this)}init(){return new r.InstrumentationNodeModuleDefinition("ai",a,this._patch.bind(this))}callWhenPatched(e){this._isPatched?e():this._callbacks.push(e)}_patch(e){this._isPatched=!0,this._callbacks.forEach(e=>e()),this._callbacks=[];let t=e=>new Proxy(e,{apply:(e,t,n)=>{let r=n[0].experimental_telemetry||{},a=r.isEnabled,s=o.getClient(),u=s?.getIntegrationByName(i.INTEGRATION_NAME),{recordInputs:p,recordOutputs:_}=c(u?.options,r,a,!!u&&!!s?.getOptions().sendDefaultPii);return n[0].experimental_telemetry={...r,isEnabled:void 0===a||a,recordInputs:p,recordOutputs:_},o.handleCallbackErrors(()=>Reflect.apply(e,t,n),e=>{e&&"object"==typeof e&&o.addNonEnumerableProperty(e,"_sentry_active_span",o.getActiveSpan())},()=>{},e=>{l(e)})}});if("[object Module]"===Object.prototype.toString.call(e)){for(let n of s)null!=e[n]&&(e[n]=t(e[n]));return e}{let n=s.reduce((n,r)=>(null!=e[r]&&(n[r]=t(e[r])),n),{});return{...e,...n}}}}n.SentryVercelAiInstrumentation=p,n.cleanupToolCallSpanContexts=u,n.determineRecordingSettings=c,n.processToolCallResults=l},834440,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(625331),i=e.r(197696),a=e.r(696887),s=o.generateInstrumentOnce(i.INTEGRATION_NAME,()=>new a.SentryVercelAiInstrumentation({})),l=r.defineIntegration((e={})=>{let t;return{name:i.INTEGRATION_NAME,options:e,setupOnce(){t=s()},afterAllSetup(n){let o;e.force??(o=n.getIntegrationByName("Modules"),!!o?.getModules?.()?.ai)?r.addVercelAiProcessors(n):t?.callWhenPatched(()=>r.addVercelAiProcessors(n))}}});n.instrumentVercelAi=s,n.vercelAIIntegration=l},116769,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(204780),o=e.r(976285),i=[">=4.0.0 <7"];class a extends r.InstrumentationBase{constructor(e={}){super("@sentry/instrumentation-openai",o.SDK_VERSION,e)}init(){return new r.InstrumentationNodeModuleDefinition("openai",i,this._patch.bind(this))}_patch(e){let t=e;return t=this._patchClient(t,"OpenAI"),t=this._patchClient(t,"AzureOpenAI")}_patchClient(e,t){let n=e[t];if(!n)return e;let r=this.getConfig(),i=function(...e){if(o._INTERNAL_shouldSkipAiProviderWrapping(o.OPENAI_INTEGRATION_NAME))return Reflect.construct(n,e);let t=Reflect.construct(n,e);return o.instrumentOpenAiClient(t,r)};for(let e of(Object.setPrototypeOf(i,n),Object.setPrototypeOf(i.prototype,n.prototype),Object.getOwnPropertyNames(n)))if(!["length","name","prototype"].includes(e)){let t=Object.getOwnPropertyDescriptor(n,e);t&&Object.defineProperty(i,e,t)}try{e[t]=i}catch{Object.defineProperty(e,t,{value:i,writable:!0,configurable:!0,enumerable:!0})}if(e.default===n)try{e.default=i}catch{Object.defineProperty(e,"default",{value:i,writable:!0,configurable:!0,enumerable:!0})}return e}}n.SentryOpenAiInstrumentation=a},758158,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(625331),i=e.r(116769),a=o.generateInstrumentOnce(r.OPENAI_INTEGRATION_NAME,e=>new i.SentryOpenAiInstrumentation(e)),s=r.defineIntegration((e={})=>({name:r.OPENAI_INTEGRATION_NAME,setupOnce(){a(e)}}));n.instrumentOpenAi=a,n.openAIIntegration=s},654826,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(204780),o=e.r(976285),i=[">=0.19.2 <1.0.0"];class a extends r.InstrumentationBase{constructor(e={}){super("@sentry/instrumentation-anthropic-ai",o.SDK_VERSION,e)}init(){return new r.InstrumentationNodeModuleDefinition("@anthropic-ai/sdk",i,this._patch.bind(this))}_patch(e){let t=e.Anthropic,n=this.getConfig(),r=function(...e){if(o._INTERNAL_shouldSkipAiProviderWrapping(o.ANTHROPIC_AI_INTEGRATION_NAME))return Reflect.construct(t,e);let r=Reflect.construct(t,e);return o.instrumentAnthropicAiClient(r,n)};for(let e of(Object.setPrototypeOf(r,t),Object.setPrototypeOf(r.prototype,t.prototype),Object.getOwnPropertyNames(t)))if(!["length","name","prototype"].includes(e)){let n=Object.getOwnPropertyDescriptor(t,e);n&&Object.defineProperty(r,e,n)}try{e.Anthropic=r}catch{Object.defineProperty(e,"Anthropic",{value:r,writable:!0,configurable:!0,enumerable:!0})}if(e.default===t)try{e.default=r}catch{Object.defineProperty(e,"default",{value:r,writable:!0,configurable:!0,enumerable:!0})}return e}}n.SentryAnthropicAiInstrumentation=a},718239,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(625331),i=e.r(654826),a=o.generateInstrumentOnce(r.ANTHROPIC_AI_INTEGRATION_NAME,e=>new i.SentryAnthropicAiInstrumentation(e));n.anthropicAIIntegration=r.defineIntegration((e={})=>({name:r.ANTHROPIC_AI_INTEGRATION_NAME,options:e,setupOnce(){a(e)}})),n.instrumentAnthropicAi=a},116463,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(204780),o=e.r(976285),i=[">=0.10.0 <2"];class a extends r.InstrumentationBase{constructor(e={}){super("@sentry/instrumentation-google-genai",o.SDK_VERSION,e)}init(){return new r.InstrumentationNodeModuleDefinition("@google/genai",i,e=>this._patch(e),e=>e,[new r.InstrumentationNodeModuleFile("@google/genai/dist/node/index.cjs",i,e=>this._patch(e),e=>e)])}_patch(e){let t=e.GoogleGenAI,n=this.getConfig();if("function"!=typeof t)return e;let r=function(...e){if(o._INTERNAL_shouldSkipAiProviderWrapping(o.GOOGLE_GENAI_INTEGRATION_NAME))return Reflect.construct(t,e);let r=Reflect.construct(t,e);return o.instrumentGoogleGenAIClient(r,n)};for(let e of(Object.setPrototypeOf(r,t),Object.setPrototypeOf(r.prototype,t.prototype),Object.getOwnPropertyNames(t)))if(!["length","name","prototype"].includes(e)){let n=Object.getOwnPropertyDescriptor(t,e);n&&Object.defineProperty(r,e,n)}return o.replaceExports(e,"GoogleGenAI",r),e}}n.SentryGoogleGenAiInstrumentation=a},880504,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(625331),i=e.r(116463),a=o.generateInstrumentOnce(r.GOOGLE_GENAI_INTEGRATION_NAME,e=>new i.SentryGoogleGenAiInstrumentation(e));n.googleGenAIIntegration=r.defineIntegration((e={})=>({name:r.GOOGLE_GENAI_INTEGRATION_NAME,setupOnce(){a(e)}})),n.instrumentGoogleGenAI=a},454883,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(204780),o=e.r(976285),i=[">=0.1.0 <2.0.0"];class a extends r.InstrumentationBase{constructor(e={}){super("@sentry/instrumentation-langchain",o.SDK_VERSION,e)}init(){let e=[];for(let t of["@langchain/anthropic","@langchain/openai","@langchain/google-genai","@langchain/mistralai","@langchain/google-vertexai","@langchain/groq"])e.push(new r.InstrumentationNodeModuleDefinition(t,i,this._patch.bind(this),e=>e,[new r.InstrumentationNodeModuleFile(`${t}/dist/index.cjs`,i,this._patch.bind(this),e=>e)]));return e.push(new r.InstrumentationNodeModuleDefinition("langchain",i,this._patch.bind(this),e=>e,[new r.InstrumentationNodeModuleFile("langchain/dist/chat_models/universal.cjs",i,this._patch.bind(this),e=>e)])),e}_patch(e){o._INTERNAL_skipAiProviderWrapping([o.OPENAI_INTEGRATION_NAME,o.ANTHROPIC_AI_INTEGRATION_NAME,o.GOOGLE_GENAI_INTEGRATION_NAME]);let t=o.createLangChainCallbackHandler(this.getConfig());return this._patchRunnableMethods(e,t),e}_patchRunnableMethods(e,t){let n=["ChatAnthropic","ChatOpenAI","ChatGoogleGenerativeAI","ChatMistralAI","ChatVertexAI","ChatGroq","ConfigurableModel"],r=Object.values(e.universal_exports??e).find(e=>"function"==typeof e&&n.includes(e.name));if(!r)return;let o=r.prototype;if(!o.__sentry_patched__)for(let e of(o.__sentry_patched__=!0,["invoke","stream","batch"])){let n=o[e];"function"==typeof n&&(o[e]=function(e,t,n){return new Proxy(e,{apply(e,n,r){var o,i;let a=r[1];(!a||"object"!=typeof a||Array.isArray(a))&&(a={},r[1]=a);let s=(o=a.callbacks,i=t,o?Array.isArray(o)?o.includes(i)?o:[...o,i]:"object"==typeof o?[o,i]:o:[i]);return a.callbacks=s,Reflect.apply(e,n,r)}})}(n,t))}}}n.SentryLangChainInstrumentation=a},62602,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(625331),i=e.r(454883),a=o.generateInstrumentOnce(r.LANGCHAIN_INTEGRATION_NAME,e=>new i.SentryLangChainInstrumentation(e)),s=r.defineIntegration((e={})=>({name:r.LANGCHAIN_INTEGRATION_NAME,setupOnce(){a(e)}}));n.instrumentLangChain=a,n.langChainIntegration=s},955749,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(204780),o=e.r(976285),i=[">=0.0.0 <2.0.0"];class a extends r.InstrumentationBase{constructor(e={}){super("@sentry/instrumentation-langgraph",o.SDK_VERSION,e)}init(){return new r.InstrumentationNodeModuleDefinition("@langchain/langgraph",i,this._patch.bind(this),e=>e,[new r.InstrumentationNodeModuleFile("@langchain/langgraph/dist/index.cjs",i,this._patch.bind(this),e=>e)])}_patch(e){return e.StateGraph&&"function"==typeof e.StateGraph&&o.instrumentLangGraph(e.StateGraph.prototype,this.getConfig()),e}}n.SentryLangGraphInstrumentation=a},521121,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(625331),i=e.r(955749),a=o.generateInstrumentOnce(r.LANGGRAPH_INTEGRATION_NAME,e=>new i.SentryLangGraphInstrumentation(e)),s=r.defineIntegration((e={})=>({name:r.LANGGRAPH_INTEGRATION_NAME,setupOnce(){a(e)}}));n.instrumentLangGraph=a,n.langGraphIntegration=s},477801,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=r.defineIntegration(e=>(r.isBrowser()||r.consoleSandbox(()=>{console.warn("The launchDarklyIntegration() can only be used in the browser.")}),{name:"LaunchDarkly"}));n.buildLaunchDarklyFlagUsedHandlerShim=function(){return r.isBrowser()||r.consoleSandbox(()=>{console.warn("The buildLaunchDarklyFlagUsedHandler() can only be used in the browser.")}),{name:"sentry-flag-auditor",type:"flag-used",synchronous:!0,method:()=>null}},n.launchDarklyIntegrationShim=o},222267,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=r.defineIntegration(e=>(r.isBrowser()||r.consoleSandbox(()=>{console.warn("The openFeatureIntegration() can only be used in the browser.")}),{name:"OpenFeature"}));n.OpenFeatureIntegrationHookShim=class{constructor(){r.isBrowser()||r.consoleSandbox(()=>{console.warn("The OpenFeatureIntegrationHook can only be used in the browser.")})}after(){}error(){}},n.openFeatureIntegrationShim=o},742355,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285);n.statsigIntegrationShim=r.defineIntegration(e=>(r.isBrowser()||r.consoleSandbox(()=>{console.warn("The statsigIntegration() can only be used in the browser.")}),{name:"Statsig"}))},954005,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285);n.unleashIntegrationShim=r.defineIntegration(e=>(r.isBrowser()||r.consoleSandbox(()=>{console.warn("The unleashIntegration() can only be used in the browser.")}),{name:"Unleash"}))},822525,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),n.growthbookIntegrationShim=e.r(976285).growthbookIntegration},395316,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(761095),o=e.r(357762),i=e.r(204780),a=e.r(808119);function s(e,t,n,r,o){var i,a,s,p,_,T,d,E;return l(e,n),t(e,"addDoc",(i=r,a=o,function(e){return function(t,n){let r=c(i,"addDoc",t);return a(r),u(r,()=>e(t,n))}})),t(e,"getDocs",(s=r,p=o,function(e){return function(t){let n=c(s,"getDocs",t);return p(n),u(n,()=>e(t))}})),t(e,"setDoc",(_=r,T=o,function(e){return function(t,n,r){let o=c(_,"setDoc",t.parent||t);return T(o),u(o,()=>void 0!==r?e(t,n,r):e(t,n))}})),t(e,"deleteDoc",(d=r,E=o,function(e){return function(t){let n=c(d,"deleteDoc",t.parent||t);return E(n),u(n,()=>e(t))}})),e}function l(e,t){for(let n of["addDoc","getDocs","setDoc","deleteDoc"])i.isWrapped(e[n])&&t(e,n);return e}function u(e,t){return o.context.with(o.trace.setSpan(o.context.active(),e),()=>i.safeExecuteInTheMiddle(()=>t(),t=>{t&&e.recordException(t),e.end()},!0))}function c(e,t,n){let r=e.startSpan(`${t} ${n.path}`,{kind:o.SpanKind.CLIENT});return function(e,t){let n=t.firestore.app,r=n.options,o=(t.firestore.toJSON()||{}).settings||{},i={[a.ATTR_DB_COLLECTION_NAME]:t.path,[a.ATTR_DB_NAMESPACE]:n.name,[a.ATTR_DB_SYSTEM_NAME]:"firebase.firestore","firebase.firestore.type":t.type,"firebase.firestore.options.projectId":r.projectId,"firebase.firestore.options.appId":r.appId,"firebase.firestore.options.messagingSenderId":r.messagingSenderId,"firebase.firestore.options.storageBucket":r.storageBucket},{address:s,port:l}=p(o);s&&(i[a.ATTR_SERVER_ADDRESS]=s),l&&(i[a.ATTR_SERVER_PORT]=l),e.setAttributes(i)}(r,n),r.setAttribute(a.ATTR_DB_OPERATION_NAME,t),r}function p(e){let t,n;if("string"==typeof e.host)if(e.host.startsWith("[")){if(e.host.endsWith("]"))t=e.host.replace(/^\[|\]$/g,"");else if(e.host.includes("]:")){let r=e.host.lastIndexOf(":");-1!==r&&(t=e.host.slice(1,r).replace(/^\[|\]$/g,""),n=e.host.slice(r+1))}}else if(r.isIPv6(e.host))t=e.host;else{let r=e.host.lastIndexOf(":");-1!==r?(t=e.host.slice(0,r),n=e.host.slice(r+1)):t=e.host}return{address:t,port:n?parseInt(n,10):void 0}}n.getPortAndAddress=p,n.patchFirestore=function(e,t,n,r,a){let u=()=>{},c=a.firestoreSpanCreationHook;"function"==typeof c&&(u=e=>{i.safeExecuteInTheMiddle(()=>c(e),e=>{e&&o.diag.error(e?.message)},!0)});let p=new i.InstrumentationNodeModuleDefinition("@firebase/firestore",t,t=>s(t,n,r,e,u));for(let o of["@firebase/firestore/dist/lite/index.node.cjs.js","@firebase/firestore/dist/lite/index.node.mjs.js","@firebase/firestore/dist/lite/index.rn.esm2017.js","@firebase/firestore/dist/lite/index.cjs.js"])p.files.push(new i.InstrumentationNodeModuleFile(o,t,t=>s(t,n,r,e,u),e=>l(e,r)));return p}},248461,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(357762),o=e.r(204780);function i(e,t,n){return function(o){return function(...i){let a="function"==typeof i[0]?i[0]:i[1],s="function"==typeof i[0]?void 0:i[0];if(!a)return o.call(this,...i);let l=async function(...o){let i=process.env.FUNCTION_TARGET||process.env.K_SERVICE||"unknown",s=e.startSpan(`firebase.function.${n}`,{kind:r.SpanKind.SERVER}),l={"faas.name":i,"faas.trigger":n,"faas.provider":"firebase"};return process.env.GCLOUD_PROJECT&&(l["cloud.project_id"]=process.env.GCLOUD_PROJECT),process.env.EVENTARC_CLOUD_EVENT_SOURCE&&(l["cloud.event_source"]=process.env.EVENTARC_CLOUD_EVENT_SOURCE),s.setAttributes(l),t?.requestHook?.(s),r.context.with(r.trace.setSpan(r.context.active(),s),async()=>{let e,n;try{n=await a.apply(this,o)}catch(t){e=t}if(t?.responseHook?.(s,e),e&&s.recordException(e),s.end(),e)throw await t?.errorHook?.(s,e),e;return n})};return s?o.call(this,s,l):o.call(this,l)}}}function a(e,t){for(let n of["onSchedule","onRequest","onCall","onObjectFinalized","onObjectArchived","onObjectDeleted","onObjectMetadataUpdated","onDocumentCreated","onDocumentUpdated","onDocumentDeleted","onDocumentWritten","onDocumentCreatedWithAuthContext","onDocumentUpdatedWithAuthContext","onDocumentDeletedWithAuthContext","onDocumentWrittenWithAuthContext"])o.isWrapped(e[n])&&t(e,n);return e}n.patchFunctions=function(e,t,n,s,l){let u=()=>{},c=()=>{},p=l.functions?.errorHook,_=l.functions?.requestHook,T=l.functions?.responseHook;"function"==typeof T&&(c=(e,t)=>{o.safeExecuteInTheMiddle(()=>T(e,t),e=>{e&&r.diag.error(e?.message)},!0)}),"function"==typeof _&&(u=e=>{o.safeExecuteInTheMiddle(()=>_(e),e=>{e&&r.diag.error(e?.message)},!0)});let d=new o.InstrumentationNodeModuleDefinition("firebase-functions",t);return[{name:"firebase-functions/lib/v2/providers/https.js",triggerType:"function"},{name:"firebase-functions/lib/v2/providers/firestore.js",triggerType:"firestore"},{name:"firebase-functions/lib/v2/providers/scheduler.js",triggerType:"scheduler"},{name:"firebase-functions/lib/v2/storage.js",triggerType:"storage"}].forEach(({name:r,triggerType:l})=>{d.files.push(new o.InstrumentationNodeModuleFile(r,t,t=>(function(e,t,n,r,o,s){switch(a(e,n),s){case"function":t(e,"onRequest",i(r,o,"http.request")),t(e,"onCall",i(r,o,"http.call"));break;case"firestore":t(e,"onDocumentCreated",i(r,o,"firestore.document.created")),t(e,"onDocumentUpdated",i(r,o,"firestore.document.updated")),t(e,"onDocumentDeleted",i(r,o,"firestore.document.deleted")),t(e,"onDocumentWritten",i(r,o,"firestore.document.written")),t(e,"onDocumentCreatedWithAuthContext",i(r,o,"firestore.document.created")),t(e,"onDocumentUpdatedWithAuthContext",i(r,o,"firestore.document.updated")),t(e,"onDocumentDeletedWithAuthContext",i(r,o,"firestore.document.deleted")),t(e,"onDocumentWrittenWithAuthContext",i(r,o,"firestore.document.written"));break;case"scheduler":t(e,"onSchedule",i(r,o,"scheduler.scheduled"));break;case"storage":t(e,"onObjectFinalized",i(r,o,"storage.object.finalized")),t(e,"onObjectArchived",i(r,o,"storage.object.archived")),t(e,"onObjectDeleted",i(r,o,"storage.object.deleted")),t(e,"onObjectMetadataUpdated",i(r,o,"storage.object.metadataUpdated"))}return e})(t,n,s,e,{requestHook:u,responseHook:c,errorHook:p},l),e=>a(e,s)))}),d},n.patchV2Functions=i},516771,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(204780),o=e.r(976285),i=e.r(395316),a=e.r(248461),s={},l=[">=3.0.0 <5"],u=[">=6.0.0 <7"];class c extends r.InstrumentationBase{constructor(e=s){super("@sentry/instrumentation-firebase",o.SDK_VERSION,e)}setConfig(e={}){super.setConfig({...s,...e})}init(){let e=[];return e.push(i.patchFirestore(this.tracer,l,this._wrap,this._unwrap,this.getConfig())),e.push(a.patchFunctions(this.tracer,u,this._wrap,this._unwrap,this.getConfig())),e}}n.FirebaseInstrumentation=c},146523,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(625331),i=e.r(516771),a="Firebase",s={firestoreSpanCreationHook:e=>{o.addOriginToSpan(e,"auto.firebase.otel.firestore"),e.setAttribute(r.SEMANTIC_ATTRIBUTE_SENTRY_OP,"db.query")},functions:{requestHook:e=>{o.addOriginToSpan(e,"auto.firebase.otel.functions"),e.setAttribute(r.SEMANTIC_ATTRIBUTE_SENTRY_OP,"http.request")},errorHook:async(e,t)=>{t&&(r.captureException(t,{mechanism:{type:"auto.firebase.otel.functions",handled:!1}}),await r.flush(2e3))}}},l=o.generateInstrumentOnce(a,()=>new i.FirebaseInstrumentation(s));n.firebaseIntegration=r.defineIntegration(()=>({name:a,setupOnce(){l()}})),n.instrumentFirebase=l},273273,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(738190),o=e.r(855902),i=e.r(718239),a=e.r(953027),s=e.r(429440),l=e.r(602878),u=e.r(146523),c=e.r(979396),p=e.r(880504),_=e.r(176571),T=e.r(376169),d=e.r(688750),E=e.r(934925),S=e.r(86294),A=e.r(62602),g=e.r(521121),m=e.r(888804),h=e.r(143655),R=e.r(780216),f=e.r(473485),N=e.r(625680),I=e.r(758158),O=e.r(832719),y=e.r(19194),b=e.r(547683),C=e.r(978486),M=e.r(946603),P=e.r(834440);n.getAutoPerformanceIntegrations=function(){return[s.expressIntegration(),l.fastifyIntegration(),_.graphqlIntegration(),d.honoIntegration(),h.mongoIntegration(),R.mongooseIntegration(),f.mysqlIntegration(),N.mysql2Integration(),C.redisIntegration(),O.postgresIntegration(),b.prismaIntegration(),T.hapiIntegration(),S.koaIntegration(),a.connectIntegration(),M.tediousIntegration(),c.genericPoolIntegration(),E.kafkaIntegration(),o.amqplibIntegration(),m.lruMemoizerIntegration(),A.langChainIntegration(),g.langGraphIntegration(),P.vercelAIIntegration(),I.openAIIntegration(),i.anthropicAIIntegration(),p.googleGenAIIntegration(),y.postgresJsIntegration(),u.firebaseIntegration()]},n.getOpenTelemetryInstrumentationToPreload=function(){return[r.instrumentSentryHttp,r.instrumentOtelHttp,s.instrumentExpress,a.instrumentConnect,l.instrumentFastify,l.instrumentFastifyV3,T.instrumentHapi,d.instrumentHono,E.instrumentKafka,S.instrumentKoa,m.instrumentLruMemoizer,h.instrumentMongo,R.instrumentMongoose,f.instrumentMysql,N.instrumentMysql2,O.instrumentPostgres,T.instrumentHapi,_.instrumentGraphql,C.instrumentRedis,M.instrumentTedious,c.instrumentGenericPool,o.instrumentAmqplib,A.instrumentLangChain,P.instrumentVercelAi,I.instrumentOpenAi,y.instrumentPostgresJs,u.instrumentFirebase,i.instrumentAnthropicAi,p.instrumentGoogleGenAI,g.instrumentLangGraph]}},1631,e=>{"use strict";let t;e.s([],827962),e.i(827962);var n=e.i(978116),r=e.i(670496),o=e.i(606733),i=e.i(775332);let a=new class{_MAX_LENGTH=255;_COMMA_SEPARATOR=",";_LABEL_KEY_VALUE_SPLITTER="=";detect(e){let t={},r=(0,i.getStringFromEnv)("OTEL_RESOURCE_ATTRIBUTES"),a=(0,i.getStringFromEnv)("OTEL_SERVICE_NAME");if(r)try{let e=this._parseResourceAttributes(r);Object.assign(t,e)}catch(e){n.diag.debug(`EnvDetector failed: ${e instanceof Error?e.message:e}`)}return a&&(t[o.ATTR_SERVICE_NAME]=a),{attributes:t}}_parseResourceAttributes(e){if(!e)return{};let t={};for(let n of e.split(this._COMMA_SEPARATOR)){let e,r,o=n.split(this._LABEL_KEY_VALUE_SPLITTER);if(2!==o.length)throw Error(`Invalid format for OTEL_RESOURCE_ATTRIBUTES: "${n}". Expected format: key=value. The ',' and '=' characters must be percent-encoded in keys and values.`);let[i,a]=o,s=i.trim(),l=a.trim();if(0===s.length)throw Error(`Invalid OTEL_RESOURCE_ATTRIBUTES: empty attribute key in "${n}".`);try{e=decodeURIComponent(s),r=decodeURIComponent(l)}catch(e){throw Error(`Failed to percent-decode OTEL_RESOURCE_ATTRIBUTES entry "${n}": ${e instanceof Error?e.message:e}`)}if(e.length>this._MAX_LENGTH)throw Error(`Attribute key exceeds the maximum length of ${this._MAX_LENGTH} characters: "${e}".`);if(r.length>this._MAX_LENGTH)throw Error(`Attribute value exceeds the maximum length of ${this._MAX_LENGTH} characters for key "${e}".`);t[e]=r}return t}};var s=e.i(446786),l=e.i(605365);async function u(){if(!t)switch(l.platform){case"darwin":t=(await e.A(57998)).getMachineId;break;case"linux":t=(await e.A(944291)).getMachineId;break;case"freebsd":t=(await e.A(822215)).getMachineId;break;case"win32":t=(await e.A(497519)).getMachineId;break;default:t=(await e.A(418670)).getMachineId}return t()}let c=new class{detect(e){return{attributes:{"host.name":(0,s.hostname)(),"host.arch":(e=>{switch(e){case"arm":return"arm32";case"ppc":return"ppc32";case"x64":return"amd64";default:return e}})((0,s.arch)()),"host.id":u()}}}},p=new class{detect(e){return{attributes:{"os.type":(e=>{switch(e){case"sunos":return"solaris";case"win32":return"windows";default:return e}})((0,s.platform)()),"os.version":(0,s.release)()}}}},_=new class{detect(e){let t={"process.pid":process.pid,"process.executable.name":process.title,"process.executable.path":process.execPath,"process.command_args":[process.argv[0],...process.execArgv,...process.argv.slice(1)],"process.runtime.version":process.versions.node,"process.runtime.name":"nodejs","process.runtime.description":"Node.js"};process.argv.length>1&&(t["process.command"]=process.argv[1]);try{let e=s.userInfo();t["process.owner"]=e.username}catch(e){n.diag.debug(`error obtaining process owner: ${e}`)}return{attributes:t}}};var T=e.i(254799);let d=new class{detect(e){return{attributes:{"service.instance.id":(0,T.randomUUID)()}}}};var E=e.i(581453);e.s(["defaultResource",()=>r.defaultResource,"defaultServiceName",()=>E.defaultServiceName,"detectResources",0,(e={})=>(e.detectors||[]).map(t=>{try{let o=(0,r.resourceFromDetectedResource)(t.detect(e));return n.diag.debug(`${t.constructor.name} found resource.`,o),o}catch(e){return n.diag.debug(`${t.constructor.name} failed: ${e.message}`),(0,r.emptyResource)()}}).reduce((e,t)=>e.merge(t),(0,r.emptyResource)()),"emptyResource",()=>r.emptyResource,"envDetector",0,a,"hostDetector",0,c,"osDetector",0,p,"processDetector",0,_,"resourceFromAttributes",()=>r.resourceFromAttributes,"serviceInstanceIdDetector",0,d],1631)},815084,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(357762),o=e.r(1631),i=e.r(148861),a=e.r(808119),s=e.r(976285),l=e.r(625331),u=e.r(779607),c=e.r(866779),p=e.r(273273);function _(e,t={}){let n=new i.BasicTracerProvider({sampler:new u.SentrySampler(e),resource:o.defaultResource().merge(o.resourceFromAttributes({[a.ATTR_SERVICE_NAME]:"node",[a.SEMRESATTRS_SERVICE_NAMESPACE]:"sentry",[a.ATTR_SERVICE_VERSION]:s.SDK_VERSION})),forceFlushTimeoutMillis:500,spanProcessors:[new u.SentrySpanProcessor({timeout:T(e.getOptions().maxSpanWaitDuration)}),...t.spanProcessors||[]]});r.trace.setGlobalTracerProvider(n),r.propagation.setGlobalPropagator(new u.SentryPropagator);let c=new l.SentryContextManager;return r.context.setGlobalContextManager(c),[n,c.getAsyncLocalStorageLookup()]}function T(e){if(null!=e){if(e>1e6)return c.DEBUG_BUILD&&s.debug.warn("`maxSpanWaitDuration` is too high, using the maximum value of 1000000"),1e6;if(e<=0||Number.isNaN(e)){c.DEBUG_BUILD&&s.debug.warn("`maxSpanWaitDuration` must be a positive number, using default value instead.");return}return e}}n._clampSpanProcessorTimeout=T,n.initOpenTelemetry=function(e,t={}){e.getOptions().debug&&l.setupOpenTelemetryLogger();let[n,r]=_(e,t);e.traceProvider=n,e.asyncLocalStorageLookup=r},n.preloadOpenTelemetry=function(e={}){var t;let n,{debug:r}=e;r&&s.debug.enable(),l.initializeEsmLoader(),(t=e.integrations,n=p.getOpenTelemetryInstrumentationToPreload(),t?n.filter(e=>{let n=e.id;return t.some(e=>n===e||n.startsWith(`${e}.`))}):n).forEach(e=>{e(),r&&s.debug.log(`[Sentry] Preloaded ${e.id} instrumentation`)})},n.setupOtel=_},645105,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(625331),i=e.r(738190),a=e.r(354258),s=e.r(273273),l=e.r(815084);function u(){return o.getDefaultIntegrations().filter(e=>"Http"!==e.name&&"NodeFetch"!==e.name).concat(i.httpIntegration(),a.nativeNodeFetchIntegration())}function c(e){return[...u(),...r.hasSpansEnabled(e)?s.getAutoPerformanceIntegrations():[]]}function p(e={},t){r.applySdkMetadata(e,"node");let n=o.init({...e,defaultIntegrations:e.defaultIntegrations??t(e)});return n&&!e.skipOpenTelemetrySetup&&(l.initOpenTelemetry(n,{spanProcessors:e.openTelemetrySpanProcessors}),o.validateOpenTelemetrySetup()),n}n.getDefaultIntegrations=c,n.getDefaultIntegrationsWithoutPerformance=u,n.init=function(e={}){return p(e,c)},n.initWithoutDefaultIntegrations=function(e={}){return p(e,()=>[])}},96892,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(738190),o=e.r(354258),i=e.r(174710),a=e.r(429440),s=e.r(602878),l=e.r(176571),u=e.r(934925),c=e.r(888804),p=e.r(143655),_=e.r(780216),T=e.r(473485),d=e.r(625680),E=e.r(978486),S=e.r(832719),A=e.r(19194),g=e.r(547683),m=e.r(376169),h=e.r(688750),R=e.r(86294),f=e.r(953027),N=e.r(823099),I=e.r(946603),O=e.r(979396),y=e.r(363082),b=e.r(855902),C=e.r(834440),M=e.r(758158),P=e.r(718239),L=e.r(880504),v=e.r(62602),U=e.r(521121),D=e.r(477801),G=e.r(222267),B=e.r(742355),x=e.r(954005),V=e.r(822525),w=e.r(146523),H=e.r(645105),k=e.r(815084),Y=e.r(273273),j=e.r(779607),F=e.r(976285),W=e.r(625331);n.httpIntegration=r.httpIntegration,n.nativeNodeFetchIntegration=o.nativeNodeFetchIntegration,n.fsIntegration=i.fsIntegration,n.expressErrorHandler=a.expressErrorHandler,n.expressIntegration=a.expressIntegration,n.setupExpressErrorHandler=a.setupExpressErrorHandler,n.fastifyIntegration=s.fastifyIntegration,n.setupFastifyErrorHandler=s.setupFastifyErrorHandler,n.graphqlIntegration=l.graphqlIntegration,n.kafkaIntegration=u.kafkaIntegration,n.lruMemoizerIntegration=c.lruMemoizerIntegration,n.mongoIntegration=p.mongoIntegration,n.mongooseIntegration=_.mongooseIntegration,n.mysqlIntegration=T.mysqlIntegration,n.mysql2Integration=d.mysql2Integration,n.redisIntegration=E.redisIntegration,n.postgresIntegration=S.postgresIntegration,n.postgresJsIntegration=A.postgresJsIntegration,n.prismaIntegration=g.prismaIntegration,n.hapiIntegration=m.hapiIntegration,n.setupHapiErrorHandler=m.setupHapiErrorHandler,n.honoIntegration=h.honoIntegration,n.setupHonoErrorHandler=h.setupHonoErrorHandler,n.koaIntegration=R.koaIntegration,n.setupKoaErrorHandler=R.setupKoaErrorHandler,n.connectIntegration=f.connectIntegration,n.setupConnectErrorHandler=f.setupConnectErrorHandler,n.knexIntegration=N.knexIntegration,n.tediousIntegration=I.tediousIntegration,n.genericPoolIntegration=O.genericPoolIntegration,n.dataloaderIntegration=y.dataloaderIntegration,n.amqplibIntegration=b.amqplibIntegration,n.vercelAIIntegration=C.vercelAIIntegration,n.openAIIntegration=M.openAIIntegration,n.anthropicAIIntegration=P.anthropicAIIntegration,n.googleGenAIIntegration=L.googleGenAIIntegration,n.langChainIntegration=v.langChainIntegration,n.langGraphIntegration=U.langGraphIntegration,n.buildLaunchDarklyFlagUsedHandler=D.buildLaunchDarklyFlagUsedHandlerShim,n.launchDarklyIntegration=D.launchDarklyIntegrationShim,n.OpenFeatureIntegrationHook=G.OpenFeatureIntegrationHookShim,n.openFeatureIntegration=G.openFeatureIntegrationShim,n.statsigIntegration=B.statsigIntegrationShim,n.unleashIntegration=x.unleashIntegrationShim,n.growthbookIntegration=V.growthbookIntegrationShim,n.firebaseIntegration=w.firebaseIntegration,n.getDefaultIntegrations=H.getDefaultIntegrations,n.getDefaultIntegrationsWithoutPerformance=H.getDefaultIntegrationsWithoutPerformance,n.init=H.init,n.initWithoutDefaultIntegrations=H.initWithoutDefaultIntegrations,n.initOpenTelemetry=k.initOpenTelemetry,n.preloadOpenTelemetry=k.preloadOpenTelemetry,n.getAutoPerformanceIntegrations=Y.getAutoPerformanceIntegrations,n.setNodeAsyncContextStrategy=j.setOpenTelemetryContextAsyncContextStrategy,n.SDK_VERSION=F.SDK_VERSION,n.SEMANTIC_ATTRIBUTE_SENTRY_OP=F.SEMANTIC_ATTRIBUTE_SENTRY_OP,n.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN=F.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,n.SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE=F.SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE,n.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE=F.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,n.Scope=F.Scope,n.addBreadcrumb=F.addBreadcrumb,n.addEventProcessor=F.addEventProcessor,n.addIntegration=F.addIntegration,n.captureCheckIn=F.captureCheckIn,n.captureConsoleIntegration=F.captureConsoleIntegration,n.captureEvent=F.captureEvent,n.captureException=F.captureException,n.captureFeedback=F.captureFeedback,n.captureMessage=F.captureMessage,n.captureSession=F.captureSession,n.close=F.close,n.consoleIntegration=F.consoleIntegration,n.consoleLoggingIntegration=F.consoleLoggingIntegration,n.continueTrace=F.continueTrace,n.createConsolaReporter=F.createConsolaReporter,n.createLangChainCallbackHandler=F.createLangChainCallbackHandler,n.createTransport=F.createTransport,n.dedupeIntegration=F.dedupeIntegration,n.endSession=F.endSession,n.eventFiltersIntegration=F.eventFiltersIntegration,n.extraErrorDataIntegration=F.extraErrorDataIntegration,n.featureFlagsIntegration=F.featureFlagsIntegration,n.flush=F.flush,n.functionToStringIntegration=F.functionToStringIntegration,n.getActiveSpan=F.getActiveSpan,n.getClient=F.getClient,n.getCurrentScope=F.getCurrentScope,n.getGlobalScope=F.getGlobalScope,n.getIsolationScope=F.getIsolationScope,n.getRootSpan=F.getRootSpan,n.getSpanDescendants=F.getSpanDescendants,n.getSpanStatusFromHttpCode=F.getSpanStatusFromHttpCode,n.getTraceData=F.getTraceData,n.getTraceMetaTags=F.getTraceMetaTags,n.httpHeadersToSpanAttributes=F.httpHeadersToSpanAttributes,n.inboundFiltersIntegration=F.inboundFiltersIntegration,n.instrumentAnthropicAiClient=F.instrumentAnthropicAiClient,n.instrumentGoogleGenAIClient=F.instrumentGoogleGenAIClient,n.instrumentLangGraph=F.instrumentLangGraph,n.instrumentOpenAiClient=F.instrumentOpenAiClient,n.instrumentStateGraphCompile=F.instrumentStateGraphCompile,n.instrumentSupabaseClient=F.instrumentSupabaseClient,n.isEnabled=F.isEnabled,n.isInitialized=F.isInitialized,n.lastEventId=F.lastEventId,n.linkedErrorsIntegration=F.linkedErrorsIntegration,n.parameterize=F.parameterize,n.profiler=F.profiler,n.requestDataIntegration=F.requestDataIntegration,n.rewriteFramesIntegration=F.rewriteFramesIntegration,n.setContext=F.setContext,n.setConversationId=F.setConversationId,n.setCurrentClient=F.setCurrentClient,n.setExtra=F.setExtra,n.setExtras=F.setExtras,n.setHttpStatus=F.setHttpStatus,n.setMeasurement=F.setMeasurement,n.setTag=F.setTag,n.setTags=F.setTags,n.setUser=F.setUser,n.spanToBaggageHeader=F.spanToBaggageHeader,n.spanToJSON=F.spanToJSON,n.spanToTraceHeader=F.spanToTraceHeader,n.startInactiveSpan=F.startInactiveSpan,n.startNewTrace=F.startNewTrace,n.startSession=F.startSession,n.startSpan=F.startSpan,n.startSpanManual=F.startSpanManual,n.supabaseIntegration=F.supabaseIntegration,n.suppressTracing=F.suppressTracing,n.trpcMiddleware=F.trpcMiddleware,n.updateSpanName=F.updateSpanName,n.winterCGHeadersToDict=F.winterCGHeadersToDict,n.withActiveSpan=F.withActiveSpan,n.withIsolationScope=F.withIsolationScope,n.withMonitor=F.withMonitor,n.withScope=F.withScope,n.wrapMcpServerWithSentry=F.wrapMcpServerWithSentry,n.zodErrorsIntegration=F.zodErrorsIntegration,n.NODE_VERSION=W.NODE_VERSION,n.NodeClient=W.NodeClient,n.SentryContextManager=W.SentryContextManager,n.anrIntegration=W.anrIntegration,n.childProcessIntegration=W.childProcessIntegration,n.contextLinesIntegration=W.contextLinesIntegration,n.createGetModuleFromFilename=W.createGetModuleFromFilename,n.createSentryWinstonTransport=W.createSentryWinstonTransport,n.cron=W.cron,n.defaultStackParser=W.defaultStackParser,n.disableAnrDetectionForCallback=W.disableAnrDetectionForCallback,n.generateInstrumentOnce=W.generateInstrumentOnce,n.getSentryRelease=W.getSentryRelease,n.httpServerIntegration=W.httpServerIntegration,n.httpServerSpansIntegration=W.httpServerSpansIntegration,n.localVariablesIntegration=W.localVariablesIntegration,n.logger=W.logger,n.makeNodeTransport=W.makeNodeTransport,n.metrics=W.metrics,n.modulesIntegration=W.modulesIntegration,n.nodeContextIntegration=W.nodeContextIntegration,n.nodeRuntimeMetricsIntegration=W.nodeRuntimeMetricsIntegration,n.onUncaughtExceptionIntegration=W.onUncaughtExceptionIntegration,n.onUnhandledRejectionIntegration=W.onUnhandledRejectionIntegration,n.pinoIntegration=W.pinoIntegration,n.processSessionIntegration=W.processSessionIntegration,n.spotlightIntegration=W.spotlightIntegration,n.systemErrorIntegration=W.systemErrorIntegration,n.validateOpenTelemetrySetup=W.validateOpenTelemetrySetup},820456,(e,t,n)=>{let r;Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let o=e.r(522734),i=e.r(814747),a=null,s=null;n.createRouteManifest=function(e){let t;if(e?.appDirPath)t=e.appDirPath;else{let e=process.cwd(),n=i.join(e,"app"),r=i.join(e,"src","app");o.existsSync(n)&&o.lstatSync(n).isDirectory()?t=n:o.existsSync(r)&&o.lstatSync(r).isDirectory()&&(t=r)}if(!t)return{isrRoutes:[],dynamicRoutes:[],staticRoutes:[]};if(a&&s===t&&r===e?.includeRouteGroups)return a;let{dynamicRoutes:n,staticRoutes:l,isrRoutes:u}=function e(t,n="",r=!1){let a=[],s=[],l=[];try{let c=o.readdirSync(t,{withFileTypes:!0}),p=c.find(e=>{var t;return t=e.name,"page.tsx"===t||"page.jsx"===t||"page.ts"===t||"page.js"===t});if(p){let e=r?n||"/":(n||"/").replace(/\/\((?=[^)/]*\))[^)/]+\)/g,""),u=e.includes(":"),c=i.join(t,p.name);if(function(e){try{let t=o.readFileSync(e,"utf8");return/export\s+(async\s+)?function\s+generateStaticParams|export\s+const\s+generateStaticParams/.test(t)}catch{return!1}}(c)&&l.push(e),u){let{regex:t,paramNames:n,hasOptionalPrefix:r}=function(e){let t,n,r=e.split("/").filter(Boolean),o=[],i=[],a=!1;for(let e of r)if(e.startsWith(":")){let t=e.substring(1);if(t.endsWith("*?")){let e=t.slice(0,-2);i.push(e),a=!0}else if(t.endsWith("*")){let e=t.slice(0,-1);i.push(e),o.push("(.+)")}else i.push(t),o.push("([^/]+)")}else o.push(e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"));if(a)if(0===o.length)n="^/(.*)$";else{let e=o.join("/");n=`^/${e}(?:/(.*))?$`}else n=`^/${o.join("/")}$`;return{regex:n,paramNames:i,hasOptionalPrefix:(t=i[0],void 0!==t&&("locale"===t||"lang"===t||"language"===t))}}(e);a.push({path:e,regex:t,paramNames:n,hasOptionalPrefix:r})}else s.push({path:e})}for(let o of c)if(o.isDirectory()){var u;let c,p=i.join(t,o.name),_=o.name.startsWith("[")&&o.name.endsWith("]"),T=(c=(u=o.name).startsWith("(")&&u.endsWith(")")?r?o.name:"":_?function(e){if(e.startsWith("[[...")&&e.endsWith("]]")){let t=e.slice(5,-2);return`:${t}*?`}if(e.startsWith("[...")&&e.endsWith("]")){let t=e.slice(4,-1);return`:${t}*`}return`:${e.slice(1,-1)}`}(o.name):o.name)?`${n}/${c}`:n,d=e(p,T,r);a.push(...d.dynamicRoutes),s.push(...d.staticRoutes),l.push(...d.isrRoutes)}}catch(e){console.warn("Error building route manifest:",e)}return{dynamicRoutes:a,staticRoutes:s,isrRoutes:l}}(t,e?.basePath,e?.includeRouteGroups),c={dynamicRoutes:n,staticRoutes:l,isrRoutes:u};return a=c,s=t,r=e?.includeRouteGroups,c}},382226,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285);n.resolveTunnelRoute=function(e){let t;if(process.env.__SENTRY_TUNNEL_ROUTE__)return process.env.__SENTRY_TUNNEL_ROUTE__;let n="string"==typeof e?e:(t=r._INTERNAL_safeMathRandom().toString(36).substring(2,10),`/${t}`);return n&&(process.env.__SENTRY_TUNNEL_ROUTE__=n),n},n.setUpTunnelRewriteRules=function(e,t){let n=e.rewrites,r=process.env._SENTRY_TUNNEL_DESTINATION_OVERRIDE,o=r||"https://o:orgid.ingest.sentry.io/api/:projectid/envelope/?hsts=0",i=r||"https://o:orgid.ingest.:region.sentry.io/api/:projectid/envelope/?hsts=0";e.rewrites=async(...e)=>{let r={source:`${t}(/?)`,has:[{type:"query",key:"o",value:"(?\\d*)"},{type:"query",key:"p",value:"(?\\d*)"}],destination:o},a=[{source:`${t}(/?)`,has:[{type:"query",key:"o",value:"(?\\d*)"},{type:"query",key:"p",value:"(?\\d*)"},{type:"query",key:"r",value:"(?[a-z]{2})"}],destination:i},r];if("function"!=typeof n)return a;let s=await n(...e);return Array.isArray(s)?[...a,...s]:{...s,beforeFiles:[...a,...s.beforeFiles||[]]}}}},586605,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(96892),i=e.r(522734),a=e.r(814747),s=e.r(820456),l=e.r(690268),u=e.r(934474),c=e.r(382226),p=!1,_=!1;function T(e,t){if(!t)return e;let n=e=>"function"==typeof t?t(e):t.some(t=>r.isMatchingPattern(e,t));return{staticRoutes:e.staticRoutes.filter(e=>!n(e.path)),dynamicRoutes:e.dynamicRoutes.filter(e=>!n(e.path)),isrRoutes:e.isrRoutes.filter(e=>!n(e))}}n.filterRouteManifest=T,n.getNextMajor=function(e){if(!e)return;let{major:t}=r.parseSemver(e);return t},n.maybeCreateRouteManifest=function(e,t){if(t.disableManifestInjection&&console.warn("[@sentry/nextjs] The `disableManifestInjection` option is deprecated. Use `routeManifestInjection: false` instead."),!1!==t.routeManifestInjection&&(void 0!==t.routeManifestInjection||!t.disableManifestInjection))return T(s.createRouteManifest({basePath:e.basePath}),t.routeManifestInjection?.exclude)},n.maybeGetVercelCronsConfig=function(e){let t={config:void 0,strategy:void 0};if(!process.env.VERCEL)return t;let n=e._experimental?.vercelCronsMonitoring===!0,o=e.webpack?.automaticVercelMonitors===!0;if(!n&&!o)return t;let s=function(){try{let e=a.join(process.cwd(),"vercel.json"),t=i.readFileSync(e,"utf8"),n=JSON.parse(t).crons;if(n&&Array.isArray(n)&&n.length>0)return n;return}catch(e){if("ENOENT"===e.code)return;r.debug.error("[@sentry/nextjs] Failed to read vercel.json for automatic cron job monitoring instrumentation",e);return}}();return s&&(t.config=s,n&&o?(r.debug.warn("[@sentry/nextjs] Both '_experimental.vercelCronsMonitoring' and 'webpack.automaticVercelMonitors' are enabled. Using the new span-based approach from '_experimental.vercelCronsMonitoring'. You can remove 'webpack.automaticVercelMonitors' from your config."),t.strategy="spans"):n?(r.debug.log("[@sentry/nextjs] Creating Sentry cron monitors for your Vercel Cron Jobs using span-based instrumentation."),t.strategy="spans"):(r.debug.log("[@sentry/nextjs] Creating Sentry cron monitors for your Vercel Cron Jobs. You can disable this feature by setting the 'automaticVercelMonitors' option to false in your Next.js config."),t.strategy="wrapper")),t},n.maybeSetClientTraceMetadataOption=function(e,t){if(t){let{major:n,minor:o}=r.parseSemver(t);void 0!==n&&void 0!==o&&(n>=15||14===n&&o>=3)&&(e.experimental=e.experimental||{},e.experimental.clientTraceMetadata=["baggage","sentry-trace",...e.experimental?.clientTraceMetadata||[]])}else console.log("[@sentry/nextjs] The Sentry SDK was not able to determine your Next.js version. If you are using Next.js version 15 or greater, please add `experimental.clientTraceMetadata: ['sentry-trace', 'baggage']` to your Next.js config to enable pageload tracing for App Router.")},n.maybeSetInstrumentationHookOption=function(e,t){if(t&&l.requiresInstrumentationHook(t)){e.experimental?.instrumentationHook===!1&&console.warn("[@sentry/nextjs] You turned off the `experimental.instrumentationHook` option. Note that Sentry will not be initialized if you did not set it up inside `instrumentation.(js|ts)`."),e.experimental={instrumentationHook:!0,...e.experimental};return}t||(e.experimental&&"instrumentationHook"in e.experimental?!1===e.experimental.instrumentationHook&&console.warn("[@sentry/nextjs] You set `experimental.instrumentationHook` to `false`. If you are using Next.js version 15 or greater, you can remove that option. If you are using Next.js version 14 or lower, you need to set `experimental.instrumentationHook` in your `next.config.(js|mjs)` to `true` for the SDK to be properly initialized in combination with `instrumentation.(js|ts)`."):(console.log("[@sentry/nextjs] The Sentry SDK was not able to determine your Next.js version. If you are using Next.js version 15 or greater, Next.js will probably show you a warning about the `experimental.instrumentationHook` being set. To silence Next.js' warning, explicitly set the `experimental.instrumentationHook` option in your `next.config.(js|mjs|ts)` to `undefined`. If you are on Next.js version 14 or lower, you can silence this particular warning by explicitly setting the `experimental.instrumentationHook` option in your `next.config.(js|mjs)` to `true`."),e.experimental={instrumentationHook:!0,...e.experimental}))},n.maybeSetUpTunnelRouteRewriteRules=function(e,t){if(!t.tunnelRoute)return;if("export"===e.output){p||(p=!0,console.warn("[@sentry/nextjs] The Sentry Next.js SDK `tunnelRoute` option will not work in combination with Next.js static exports. The `tunnelRoute` option uses server-side features that cannot be accessed in export mode. If you still want to tunnel Sentry events, set up your own tunnel: https://docs.sentry.io/platforms/javascript/troubleshooting/#using-the-tunnel-option"));return}let n=c.resolveTunnelRoute(t.tunnelRoute);t.tunnelRoute=n||void 0,c.setUpTunnelRewriteRules(e,n)},n.resolveReleaseName=function(e){return e.release?.create!==!1?e.release?.name??o.getSentryRelease()??u.getGitRevision():e.release?.name},n.shouldReturnEarlyInExperimentalBuildMode=function(){return!!process.argv.includes("--experimental-build-mode")&&(_||(_=!0,console.warn("[@sentry/nextjs] The Sentry Next.js SDK does not currently fully support next build --experimental-build-mode")),process.argv.includes("generate"))},n.warnIfMissingOnRouterTransitionStartHook=function(e){let t=u.getInstrumentationClientFileContents();void 0===t||t.includes("onRouterTransitionStart")||e.suppressOnRouterTransitionStartWarning||console.warn("[@sentry/nextjs] ACTION REQUIRED: To instrument navigations, the Sentry SDK requires you to export an `onRouterTransitionStart` hook from your `instrumentation-client.(js|ts)` file. You can do so by adding `export const onRouterTransitionStart = Sentry.captureRouterTransitionStart;` to the file.")}},766776,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(690268),o=e.r(934474),i=e.r(279876),a=e.r(780663),s=e.r(586605);n.getFinalConfigObject=function(e,t){i.migrateDeprecatedWebpackOptions(t);let n=s.resolveReleaseName(t);if(s.maybeSetUpTunnelRouteRewriteRules(e,t),s.shouldReturnEarlyInExperimentalBuildMode())return e;let l=s.maybeCreateRouteManifest(e,t),u=s.maybeGetVercelCronsConfig(t);o.setUpBuildTimeVariables(e,t,n);let c=r.getNextjsVersion(),p=s.getNextMajor(c);s.maybeSetClientTraceMetadataOption(e,c),s.maybeSetInstrumentationHookOption(e,c),s.warnIfMissingOnRouterTransitionStartHook(t);let _=a.getBundlerInfo(c);a.maybeWarnAboutUnsupportedTurbopack(c,_),a.maybeWarnAboutUnsupportedRunAfterProductionCompileHook(c,t,_);let T=a.maybeConstructTurbopackConfig(e,t,l,c,_,u),d=a.resolveUseRunAfterProductionCompileHookOption(t,_);return a.maybeSetUpRunAfterProductionCompileHook({incomingUserNextConfigObject:e,userSentryOptions:t,releaseName:n,nextJsVersion:c,bundlerInfo:_,turboPackConfig:T,shouldUseRunAfterProductionCompileHook:d}),a.maybeEnableTurbopackSourcemaps(e,t,_),{...e,...a.getServerExternalPackagesPatch(e,p),...a.getWebpackPatch({incomingUserNextConfigObject:e,userSentryOptions:t,releaseName:n,routeManifest:l,nextJsVersion:c,shouldUseRunAfterProductionCompileHook:d,bundlerInfo:_,vercelCronsConfigResult:u}),...a.getTurbopackPatch(_,T)}}},256782,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(766776);n.withSentryConfig=function(e,t={}){let n=e||{};return"function"==typeof n?function(...e){let i=n.apply(this,e);return r.isThenable(i)?i.then(e=>o.getFinalConfigObject(e,t)):o.getFinalConfigObject(i,t)}:o.getFinalConfigObject(n,t)}},644247,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),n.DEBUG_BUILD="u"{"use strict";var t="";function n(e){return e.split("\n").reduce(function(e,n){var c,p,_,T=function(e){var n=r.exec(e);if(!n)return null;var i=n[2]&&0===n[2].indexOf("native"),a=n[2]&&0===n[2].indexOf("eval"),s=o.exec(n[2]);return a&&null!=s&&(n[2]=s[1],n[3]=s[2],n[4]=s[3]),{file:i?null:n[2],methodName:n[1]||t,arguments:i?[n[2]]:[],lineNumber:n[3]?+n[3]:null,column:n[4]?+n[4]:null}}(n)||((c=i.exec(n))?{file:c[2],methodName:c[1]||t,arguments:[],lineNumber:+c[3],column:c[4]?+c[4]:null}:null)||function(e){var n=a.exec(e);if(!n)return null;var r=n[3]&&n[3].indexOf(" > eval")>-1,o=s.exec(n[3]);return r&&null!=o&&(n[3]=o[1],n[4]=o[2],n[5]=null),{file:n[3],methodName:n[1]||t,arguments:n[2]?n[2].split(","):[],lineNumber:n[4]?+n[4]:null,column:n[5]?+n[5]:null}}(n)||((p=u.exec(n))?{file:p[2],methodName:p[1]||t,arguments:[],lineNumber:+p[3],column:p[4]?+p[4]:null}:null)||((_=l.exec(n))?{file:_[3],methodName:_[1]||t,arguments:[],lineNumber:+_[4],column:_[5]?+_[5]:null}:null);return T&&e.push(T),e},[])}var r=/^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack|rsc||\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,o=/\((\S*)(?::(\d+))(?::(\d+))\)/,i=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|rsc|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i,a=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|rsc|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i,s=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,l=/^\s*(?:([^@]*)(?:\((.*?)\))?@)?(\S.*?):(\d+)(?::(\d+))?\s*$/i,u=/^\s*at (?:((?:\[object object\])?[^\\/]+(?: \[as \S+\])?) )?\(?(.*?):(\d+)(?::(\d+))?\)?\s*$/i;e.s(["parse",()=>n])},313627,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(695005),i=e.r(644247),a=r.GLOBAL_OBJ;function s(){let e=process.env._sentryBasePath??a._sentryBasePath??"";""===e||e.match(/^\//)||(e=`/${e}`);let t=process.env.PORT||"3000";return`http://localhost:${t}${e}`}async function l(e,t={}){let n=new AbortController,o=setTimeout(()=>n.abort(),3e3);return r.suppressTracing(()=>fetch(e,{...t,signal:n.signal}).finally(()=>{clearTimeout(o)}))}async function u(e,t){try{if(!(e.file?.startsWith("webpack-internal:")||e.file?.startsWith("file:")))return null;let n=new URLSearchParams;n.append("isServer",String(!1)),n.append("isEdgeServer",String(!1)),n.append("isAppDirectory",String(!0)),n.append("errorMessage",t.toString()),Object.keys(e).forEach(t=>{n.append(t,(e[t]??"").toString())});let r=s(),o=await l(`${r}/__nextjs_original-stack-frame?${n.toString()}`);if(!o.ok||204===o.status)return null;let i=await o.json();return{originalCodeFrame:i.originalCodeFrame,originalStackFrame:i.originalStackFrame}}catch(e){return i.DEBUG_BUILD&&r.debug.error("Failed to symbolicate event with Next.js dev server",e),null}}async function c(e){try{let t={frames:e.filter(e=>!!e.file).map(e=>(e.file=e.file.replace(/^rsc:\/\/React\/[^/]+\//,"").replace(/\?\d+$/,""),{file:e.file,methodName:e.methodName??"",arguments:[],lineNumber:e.lineNumber??0,column:e.column??0,line1:e.lineNumber??0,column1:e.column??0})),isServer:!1,isEdgeServer:!1,isAppDirectory:!0},n=s(),r=await l(`${n}/__nextjs_original-stack-frames`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!r.ok||204===r.status)return null;return(await r.json()).map(e=>({originalCodeFrame:e.value.originalCodeFrame,originalStackFrame:e.value.originalStackFrame}))}catch(e){return i.DEBUG_BUILD&&r.debug.error("Failed to symbolicate event with Next.js dev server",e),null}}n.devErrorSymbolicationEventProcessor=async function e(e,t){"transaction"===e.type&&(e.spans=e.spans?.filter(e=>{let t=e.data?.["http.url"];return"string"!=typeof t||!t.includes("__nextjs_original-stack-frame")}));try{if(t.originalException&&t.originalException instanceof Error&&t.originalException.stack){let n,i=o.parse(t.originalException.stack),s=a._sentryNextJsVersion;if(!s)return e;let l=r.parseSemver(s);if(l.major>15||15===l.major&&l.minor>=2){let t=await c(i);if(null===t)return e;n=t}else n=await Promise.all(i.map(e=>u(e,t.originalException)));e.exception?.values?.[0]?.stacktrace?.frames&&(e.exception.values[0].stacktrace.frames=e.exception.values[0].stacktrace.frames.map((e,t,r)=>{let o=n[r.length-1-t];if(!o?.originalStackFrame||!o.originalCodeFrame)return{...e,platform:e.filename?.startsWith("node:internal")?"nodejs":void 0,in_app:!1};let{contextLine:i,preContextLines:a,postContextLines:s}=function(e){let t,n=e.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,"").split("\n").filter(e=>!e.match(/^\s*\|/)).map(e=>({line:e,isErrorLine:!!e.match(/^>/)})).map(e=>({...e,line:e.line.replace(/^.*\|/,"")})),r=[],o=[],i=!1;for(let e of n)e.isErrorLine?(t=e.line,i=!0):i?o.push(e.line):r.push(e.line);return{contextLine:t,preContextLines:r,postContextLines:o}}(o.originalCodeFrame);return{...e,pre_context:a,context_line:i,post_context:s,function:o.originalStackFrame.methodName,filename:o.originalStackFrame.file?function(e){if(!e)return e;let t=e.match(/^webpack-internal:(?:\/+)?(?:\([^)]*\)\/)?(.+)$/);return t?t[1]:e}(o.originalStackFrame.file):void 0,lineno:o.originalStackFrame.lineNumber||o.originalStackFrame.line1||void 0,colno:o.originalStackFrame.column||o.originalStackFrame.column1||void 0}}))}}catch{}return e}},102372,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),n.getVercelEnv=function(e){let t=e?process.env.NEXT_PUBLIC_VERCEL_ENV:process.env.VERCEL_ENV;return t?`vercel-${t}`:void 0}},322192,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),n.ATTR_NEXT_ROUTE="next.route",n.ATTR_NEXT_SEGMENT="next.segment",n.ATTR_NEXT_SPAN_NAME="next.span_name",n.ATTR_NEXT_SPAN_TYPE="next.span_type"},753802,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),n.TRANSACTION_ATTR_SENTRY_ROUTE_BACKFILL="sentry.route_backfill",n.TRANSACTION_ATTR_SENTRY_TRACE_BACKFILL="sentry.sentry_trace_backfill",n.TRANSACTION_ATTR_SHOULD_DROP_TRANSACTION="sentry.drop_transaction"},166740,(e,t,n)=>{"use strict";n._=function(e){return e&&e.__esModule?e:{default:e}}},404660,(e,t,n)=>{"use strict";t.exports=["chrome 111","edge 111","firefox 111","safari 16.4"]},473032,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={UNDERSCORE_GLOBAL_ERROR_ROUTE:function(){return s},UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY:function(){return l},UNDERSCORE_NOT_FOUND_ROUTE:function(){return i},UNDERSCORE_NOT_FOUND_ROUTE_ENTRY:function(){return a}};for(var o in r)Object.defineProperty(n,o,{enumerable:!0,get:r[o]});let i="/_not-found",a=`${i}/page`,s="/_global-error",l=`${s}/page`},59653,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r,o={APP_CLIENT_INTERNALS:function(){return et},APP_PATHS_MANIFEST:function(){return h},APP_PATH_ROUTES_MANIFEST:function(){return R},AdapterOutputType:function(){return c},BARREL_OPTIMIZATION_PREFIX:function(){return K},BLOCKED_PAGES:function(){return k},BUILD_ID_FILE:function(){return H},BUILD_MANIFEST:function(){return f},CLIENT_PUBLIC_FILES_PATH:function(){return Y},CLIENT_REFERENCE_MANIFEST:function(){return X},CLIENT_STATIC_FILES_PATH:function(){return j},CLIENT_STATIC_FILES_RUNTIME_MAIN:function(){return q},CLIENT_STATIC_FILES_RUNTIME_MAIN_APP:function(){return ee},CLIENT_STATIC_FILES_RUNTIME_POLYFILLS:function(){return eo},CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL:function(){return ei},CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH:function(){return en},CLIENT_STATIC_FILES_RUNTIME_WEBPACK:function(){return er},COMPILER_INDEXES:function(){return u},COMPILER_NAMES:function(){return l},CONFIG_FILES:function(){return w},DEFAULT_RUNTIME_WEBPACK:function(){return ea},DEFAULT_SANS_SERIF_FONT:function(){return ep},DEFAULT_SERIF_FONT:function(){return ec},DEV_CLIENT_MIDDLEWARE_MANIFEST:function(){return B},DEV_CLIENT_PAGES_MANIFEST:function(){return v},DYNAMIC_CSS_MANIFEST:function(){return z},EDGE_RUNTIME_WEBPACK:function(){return es},EDGE_UNSUPPORTED_NODE_APIS:function(){return eS},EXPORT_DETAIL:function(){return b},EXPORT_MARKER:function(){return y},FUNCTIONS_CONFIG_MANIFEST:function(){return N},IMAGES_MANIFEST:function(){return P},INTERCEPTION_ROUTE_REWRITE_MANIFEST:function(){return Q},MIDDLEWARE_BUILD_MANIFEST:function(){return J},MIDDLEWARE_MANIFEST:function(){return U},MIDDLEWARE_REACT_LOADABLE_MANIFEST:function(){return $},MODERN_BROWSERSLIST_TARGET:function(){return a.default},NEXT_BUILTIN_DOCUMENT:function(){return W},NEXT_FONT_MANIFEST:function(){return O},PAGES_MANIFEST:function(){return g},PHASE_ANALYZE:function(){return _},PHASE_DEVELOPMENT_SERVER:function(){return E},PHASE_EXPORT:function(){return p},PHASE_INFO:function(){return A},PHASE_PRODUCTION_BUILD:function(){return T},PHASE_PRODUCTION_SERVER:function(){return d},PHASE_TEST:function(){return S},PRERENDER_MANIFEST:function(){return C},REACT_LOADABLE_MANIFEST:function(){return x},ROUTES_MANIFEST:function(){return M},RSC_MODULE_TYPES:function(){return eE},SERVER_DIRECTORY:function(){return V},SERVER_FILES_MANIFEST:function(){return L},SERVER_PROPS_ID:function(){return eu},SERVER_REFERENCE_MANIFEST:function(){return Z},STATIC_PROPS_ID:function(){return el},STATIC_STATUS_PAGES:function(){return e_},STRING_LITERAL_DROP_BUNDLE:function(){return F},SUBRESOURCE_INTEGRITY_MANIFEST:function(){return I},SYSTEM_ENTRYPOINTS:function(){return eA},TRACE_OUTPUT_VERSION:function(){return eT},TURBOPACK_CLIENT_BUILD_MANIFEST:function(){return G},TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST:function(){return D},TURBO_TRACE_DEFAULT_MEMORY_LIMIT:function(){return ed},UNDERSCORE_GLOBAL_ERROR_ROUTE:function(){return s.UNDERSCORE_GLOBAL_ERROR_ROUTE},UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY:function(){return s.UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY},UNDERSCORE_NOT_FOUND_ROUTE:function(){return s.UNDERSCORE_NOT_FOUND_ROUTE},UNDERSCORE_NOT_FOUND_ROUTE_ENTRY:function(){return s.UNDERSCORE_NOT_FOUND_ROUTE_ENTRY},WEBPACK_STATS:function(){return m}};for(var i in o)Object.defineProperty(n,i,{enumerable:!0,get:o[i]});let a=e.r(166740)._(e.r(404660)),s=e.r(473032),l={client:"client",server:"server",edgeServer:"edge-server"},u={[l.client]:0,[l.server]:1,[l.edgeServer]:2};var c=((r={}).PAGES="PAGES",r.PAGES_API="PAGES_API",r.APP_PAGE="APP_PAGE",r.APP_ROUTE="APP_ROUTE",r.PRERENDER="PRERENDER",r.STATIC_FILE="STATIC_FILE",r.MIDDLEWARE="MIDDLEWARE",r);let p="phase-export",_="phase-analyze",T="phase-production-build",d="phase-production-server",E="phase-development-server",S="phase-test",A="phase-info",g="pages-manifest.json",m="webpack-stats.json",h="app-paths-manifest.json",R="app-path-routes-manifest.json",f="build-manifest.json",N="functions-config-manifest.json",I="subresource-integrity-manifest",O="next-font-manifest",y="export-marker.json",b="export-detail.json",C="prerender-manifest.json",M="routes-manifest.json",P="images-manifest.json",L="required-server-files",v="_devPagesManifest.json",U="middleware-manifest.json",D="_clientMiddlewareManifest.json",G="client-build-manifest.json",B="_devMiddlewareManifest.json",x="react-loadable-manifest.json",V="server",w=["next.config.js","next.config.mjs","next.config.ts",...process?.features?.typescript?["next.config.mts"]:[]],H="BUILD_ID",k=["/_document","/_app","/_error"],Y="public",j="static",F="__NEXT_DROP_CLIENT_FILE__",W="__NEXT_BUILTIN_DOCUMENT__",K="__barrel_optimize__",X="client-reference-manifest",Z="server-reference-manifest",J="middleware-build-manifest",$="middleware-react-loadable-manifest",Q="interception-route-rewrite-manifest",z="dynamic-css-manifest",q="main",ee=`${q}-app`,et="app-pages-internals",en="react-refresh",er="webpack",eo="polyfills",ei=Symbol(eo),ea="webpack-runtime",es="edge-runtime-webpack",el="__N_SSG",eu="__N_SSP",ec={name:"Times New Roman",xAvgCharWidth:821,azAvgWidth:854.3953488372093,unitsPerEm:2048},ep={name:"Arial",xAvgCharWidth:904,azAvgWidth:934.5116279069767,unitsPerEm:2048},e_=["/500"],eT=1,ed=6e3,eE={client:"client",server:"server"},eS=["clearImmediate","setImmediate","BroadcastChannel","ByteLengthQueuingStrategy","CompressionStream","CountQueuingStrategy","DecompressionStream","DomException","MessageChannel","MessageEvent","MessagePort","ReadableByteStreamController","ReadableStreamBYOBRequest","ReadableStreamDefaultController","TransformStreamDefaultController","WritableStreamDefaultController"],eA=new Set([q,en,ee]);("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},797121,(e,t,n)=>{t.exports=e.r(59653)},775563,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(797121);n.isBuild=function(){return process.env.NEXT_PHASE===r.PHASE_PRODUCTION_BUILD}},804822,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(644247);async function i(){try{o.DEBUG_BUILD&&r.debug.log("Flushing events..."),await r.flush(2e3),o.DEBUG_BUILD&&r.debug.log("Done flushing events")}catch(e){o.DEBUG_BUILD&&r.debug.log("Error while flushing events:\n",e)}}function a(){let e=Symbol.for("__cloudflare-context__");return r.GLOBAL_OBJ[e]?.ctx}function s(e){a()?.waitUntil(e)}function l(){return"function"==typeof a()?.waitUntil}n.cloudflareWaitUntil=s,n.flushSafelyWithTimeout=i,n.isCloudflareWaitUntilAvailable=l,n.waitUntil=function(e){l()?s(e):r.vercelWaitUntil(e)}},835229,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285);function o(e){let t=e.split("/").filter(e=>e&&!(e.startsWith("(")&&e.endsWith(")")));return t.length>0?`/${t.join("/")}`:"/"}function i(e,t,n,i){let a=i??o(e),s=n?.["x-forwarded-proto"],l=n?.["x-forwarded-host"]||n?.host;if(!s||!l)return a;let u=`${s}://${l}${a}`,c=r.parseStringToURLObject(u);return c?r.getSanitizedUrlStringFromUrlObject(c):a}function a(e){let t=e?.referer;if(t)try{let e=new URL(t);return r.getSanitizedUrlStringFromUrlObject(e)}catch{return}}n.buildUrlFromComponentRoute=i,n.extractSanitizedUrlFromRefererHeader=a,n.getSanitizedRequestUrl=function(e,t,n,r){let o=a(n);return o||i(e,t,n,r)},n.sanitizeRoutePath=o,n.substituteRouteParams=function(e,t){return e}},638074,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(835229);n.setUrlProcessingMetadata=function(e){if("transaction"!==e.type||e.contexts?.trace?.op!=="http.server"||!e.contexts?.trace?.data)return;let t=r.getClient();if(!t?.getOptions().sendDefaultPii)return;let n=e.contexts.trace.data,i=n["next.route"]||n["http.route"],a=n["http.target"];if(!i)return;let s=e.sdkProcessingMetadata?.capturedSpanIsolationScope?.getScopeData(),l=s?.sdkProcessingMetadata?.normalizedRequest?.headers,u=o.getSanitizedRequestUrl(i,void 0,l,a?.toString());u&&s?.sdkProcessingMetadata&&(s.sdkProcessingMetadata.normalizedRequest=s.sdkProcessingMetadata.normalizedRequest||{},s.sdkProcessingMetadata.normalizedRequest.url=u)}},540886,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(814747);n.distDirRewriteFramesIntegration=r.defineIntegration(({distDirName:e})=>{let t=o.resolve(e).replace(/(\/|\\)$/,""),n=new RegExp(r.escapeStringForRegex(t));return{...r.rewriteFramesIntegration({iteratee:e=>(e.filename=e.filename?.replace(n,"app:///_next"),e)}),name:"DistDirRewriteFrames"}})},224915,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285);n.addHeadersAsAttributes=function(e,t){if(!e)return{};let n=e instanceof Headers||"object"==typeof e&&"get"in e?r.winterCGHeadersToDict(e):e,o=r.httpHeadersToSpanAttributes(n,r.getClient()?.getOptions().sendDefaultPii??!1);return t&&t.setAttributes(o),o}},851224,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(808119),o=e.r(976285),i=e.r(779607),a=e.r(322192),s=e.r(753802),l=o.GLOBAL_OBJ;n.dropMiddlewareTunnelRequests=function(e,t){if(o.getClient()?.getOptions()?.skipOpenTelemetrySetup)return;let n=t?.[a.ATTR_NEXT_SPAN_TYPE]==="Middleware.execute",u=t?.[o.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]==="auto.http.otel.node_fetch",c=t?.[a.ATTR_NEXT_SPAN_TYPE]==="BaseServer.handleRequest";if(!n&&!u&&!c)return;let p=function(e){let t=l._sentryRewritesTunnelPath||process.env._sentryRewritesTunnelPath;if(!t)return!1;let n=e[r.SEMATTRS_HTTP_TARGET];if("string"==typeof n){let e=n.split("?")[0]||"";return e===t||e.startsWith(`${t}/`)}return!1}(t||{}),_=i.isSentryRequestSpan(e);(p||_)&&e.setAttribute(s.TRANSACTION_ATTR_SHOULD_DROP_TRANSACTION,!0)}},997574,(e,t,n)=>{let r;Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let o=e.r(808119),i=e.r(976285),a=e.r(644247),s=e.r(322192),l=e.r(753802),u="__PAGE__",c=new WeakMap;function p(e){return"NextNodeServer.getLayoutOrPageModule"===e[s.ATTR_NEXT_SPAN_TYPE]&&"resolve segment modules"===e[s.ATTR_NEXT_SPAN_NAME]&&"string"==typeof e[s.ATTR_NEXT_SEGMENT]}function _({segment:e,route:t}){return e===u?`resolve page server component "${t}"`:""===e?"resolve root layout server component":`resolve layout server component "${e}"`}n.commonObjectToIsolationScope=function(e){if("object"!=typeof e||!e)return new i.Scope;{let t=c.get(e);if(t)return t;{let t=new i.Scope;return c.set(e,t),t}}},n.dropNextjsRootContext=function(){if(i.getClient()?.getOptions()?.skipOpenTelemetrySetup)return;let e=i.getActiveSpan();if(e){let t=i.getRootSpan(e),n=i.spanToJSON(t).data;n?.["next.span_type"]&&i.getRootSpan(e)?.setAttribute(l.TRANSACTION_ATTR_SHOULD_DROP_TRANSACTION,!0)}},n.escapeNextjsTracing=function(e){let t=i.GLOBAL_OBJ.AsyncLocalStorage;return t?(r||(r=new t),r.getStore())?e():i.startNewTrace(()=>r.run(!0,()=>e())):(a.DEBUG_BUILD&&i.debug.warn("Tried to register AsyncLocalStorage async context strategy in a runtime that doesn't support AsyncLocalStorage."),e())},n.getEnhancedResolveSegmentSpanName=_,n.isResolveSegmentSpan=p,n.maybeEnhanceServerComponentSpanName=function(e,t,n){if(!p(t))return;let r=t[s.ATTR_NEXT_SEGMENT],a=n[o.ATTR_HTTP_ROUTE],l=_({segment:r,route:"string"==typeof a?a:""});e.updateName(l),e.setAttributes({"sentry.nextjs.ssr.function.type":r===u?"Page":"Layout","sentry.nextjs.ssr.function.route":a}),e.setAttribute(i.SEMANTIC_ATTRIBUTE_SENTRY_OP,"function.nextjs")}},800038,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(644247),i="sentry.cron.checkInId",a="sentry.cron.monitorSlug",s="sentry.cron.startTime",l="sentry.cron.schedule";n.maybeCompleteCronCheckIn=function(e){let t=r.spanToJSON(e).data,n=t?.[i],u=t?.[a],c=t?.[s],p=t?.[l];if(!n||!u||"number"!=typeof c)return;let _=r._INTERNAL_safeDateNow()/1e3-c,T=r.spanToJSON(e).status,d=T&&"ok"!==T?"error":"ok";r.captureCheckIn({checkInId:n,monitorSlug:u,status:d,duration:_},"string"==typeof p?{maxRuntime:720,schedule:{type:"crontab",value:p}}:void 0),e.setAttribute(i,void 0),e.setAttribute(a,void 0),e.setAttribute(s,void 0),e.setAttribute(l,void 0),o.DEBUG_BUILD&&r.debug.log(`[Cron] Completed check-in for "${u}" with status "${d}"`)},n.maybeStartCronCheckIn=function(e,t){let n=function(){let e=globalThis;if(e._sentryVercelCronsConfig)try{return JSON.parse(e._sentryVercelCronsConfig)}catch{o.DEBUG_BUILD&&r.debug.log("[@sentry/nextjs] Failed to parse Vercel crons config");return}}();if(!n||!t)return;let u=r.getIsolationScope().getScopeData().sdkProcessingMetadata?.normalizedRequest?.headers;if(!u)return;let c=Array.isArray(u["user-agent"])?u["user-agent"][0]:u["user-agent"];if(!c?.includes("vercel-cron"))return;let p=n.find(e=>e.path===t);if(!p?.path||!p.schedule)return;let _=p.path,T=r._INTERNAL_safeDateNow()/1e3,d=r.captureCheckIn({monitorSlug:_,status:"in_progress"},{maxRuntime:720,schedule:{type:"crontab",value:p.schedule}});o.DEBUG_BUILD&&r.debug.log(`[Cron] Started check-in for "${_}" with ID "${d}"`),e.setAttribute(i,d),e.setAttribute(a,_),e.setAttribute(s,T),e.setAttribute(l,p.schedule)}},383234,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o="messaging.system",i="messaging.destination.name",a="messaging.operation.name",s="sentry.queue.enriched";function l(e,t){let n=e[t];return Array.isArray(n)?n[0]:n}n.maybeCleanupQueueSpan=function(e){let t=r.spanToJSON(e).data;t?.[s]&&e.setAttribute(s,void 0)},n.maybeEnrichQueueConsumerSpan=function(e){let t=r.getIsolationScope().getScopeData().sdkProcessingMetadata?.normalizedRequest?.headers;if(!t||"com.vercel.queue.v2beta"!==(Array.isArray(t["ce-type"])?t["ce-type"][0]:t["ce-type"]))return;let n=l(t,"ce-vqsqueuename"),u=l(t,"ce-vqsmessageid"),c=l(t,"ce-vqsconsumergroup"),p=l(t,"ce-vqsdeliverycount");if(e.setAttribute(o,"vercel.queue"),e.setAttribute(a,"process"),n&&e.setAttribute(i,n),u&&e.setAttribute("messaging.message.id",u),c&&e.setAttribute("messaging.consumer.group.name",c),p){let t=parseInt(p,10);isNaN(t)||e.setAttribute("messaging.message.delivery_count",t)}e.setAttribute(s,!0)},n.maybeEnrichQueueProducerSpan=function(e){let t,n=r.spanToJSON(e).data,l=n?.["url.full"];if(!l)return;try{t=new URL(l)}catch{return}if("vercel-queue.com"!==t.hostname&&!t.hostname.endsWith(".vercel-queue.com"))return;let u=t.pathname.match(/^\/api\/v3\/topic\/([^/]+)/);if(!u)return;let c=decodeURIComponent(u[1]);e.setAttribute(o,"vercel.queue"),e.setAttribute(i,c),e.setAttribute(a,"send"),e.setAttribute(s,!0)}},541464,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(357762),o=e.r(808119),i=e.r(976285),a=e.r(779607),s=e.r(322192),l=e.r(224915),u=e.r(851224),c=e.r(997574),p=e.r(800038),_=e.r(383234);n.handleOnSpanStart=function(e){let t=i.spanToJSON(e).data,n=i.getRootSpan(e),T=i.spanToJSON(n).data,d=e===n;if(u.dropMiddlewareTunnelRequests(e,t),"string"==typeof t?.[s.ATTR_NEXT_ROUTE]&&(T?.[o.ATTR_HTTP_REQUEST_METHOD]||T?.[o.SEMATTRS_HTTP_METHOD])&&!T?.[o.ATTR_HTTP_ROUTE]){let e=t[s.ATTR_NEXT_ROUTE].replace(/\/route$/,"");n.updateName(e),n.setAttribute(o.ATTR_HTTP_ROUTE,e),n.setAttribute(s.ATTR_NEXT_ROUTE,e);let r=T?.[o.ATTR_HTTP_REQUEST_METHOD]||T?.[o.SEMATTRS_HTTP_METHOD];"string"==typeof r&&i.getIsolationScope().setTransactionName(`${r} ${e}`),p.maybeStartCronCheckIn(n,e),_.maybeEnrichQueueConsumerSpan(n)}if(t?.[s.ATTR_NEXT_SPAN_TYPE]==="Middleware.execute"){let r=t[s.ATTR_NEXT_SPAN_NAME];"string"==typeof r&&(n.updateName(r),n.setAttribute(o.ATTR_HTTP_ROUTE,r),n.setAttribute(s.ATTR_NEXT_SPAN_NAME,r)),e.setAttribute(i.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,"auto")}if(t?.[s.ATTR_NEXT_SPAN_TYPE]!==void 0&&e.setAttribute(i.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,"auto"),d){let e=i.getIsolationScope().getScopeData().sdkProcessingMetadata?.normalizedRequest?.headers;l.addHeadersAsAttributes(e,n)}if(t?.[s.ATTR_NEXT_SPAN_TYPE]==="BaseServer.handleRequest"&&d){let t=i.getCapturedScopesOnSpan(e),n=(t.isolationScope||i.getIsolationScope()).clone(),o=t.scope||i.getCurrentScope(),s=a.getScopesFromContext(r.context.active());s&&(s.isolationScope=n),i.setCapturedScopesOnSpan(e,o,n)}c.maybeEnhanceServerComponentSpanName(e,t,T),_.maybeEnrichQueueProducerSpan(e)}},280432,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(644247);function i(){let e=function(){if("u">typeof AsyncLocalStorage)return AsyncLocalStorage;if("getBuiltinModule"in process&&"function"==typeof process.getBuiltinModule){let{AsyncLocalStorage:e}=process.getBuiltinModule("async_hooks")??{};return e}}();if(!e||"function"!=typeof e.snapshot){o.DEBUG_BUILD&&r.debug.warn("[@sentry/nextjs] No AsyncLocalStorage found in the runtime or AsyncLocalStorage.snapshot() is not available, skipping safe random ID generator context preparation, you may see some errors with cache components.");return}return e.snapshot()}function a(e){return e instanceof Error&&e.message.includes("AsyncLocalStorage")}n.prepareSafeIdGeneratorContext=function(){let e=Symbol.for("__SENTRY_SAFE_RANDOM_ID_WRAPPER__"),t=r.GLOBAL_OBJ,n=i();if(!n)return;let s=n;t[e]=e=>{try{return s(e)}catch(n){if(!a(n))throw n;let t=i();if(!t)return e();s=t;try{return s(e)}catch(t){if(!a(t))throw t;return e()}}},o.DEBUG_BUILD&&r.debug.log("[@sentry/nextjs] Prepared safe random ID generator context")}},202446,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(804822);n.captureUnderscoreErrorException=async function(e){let{req:t,res:n,err:i}=e,a=n?.statusCode||e.statusCode;if(a&&a<500||!e.pathname)return;if(i&&r.isAlreadyCaptured(i)){o.waitUntil(o.flushSafelyWithTimeout());let e="object"==typeof i?i.__sentry_event_id__:void 0;return"string"==typeof e?(r.getIsolationScope().setLastEventId(e),e):r.getIsolationScope().lastEventId()}let s=r.withScope(e=>{if(t){let n=r.httpRequestToRequestData(t);e.setSDKProcessingMetadata({normalizedRequest:n})}return r.captureException(i||`_error.js called with falsy error (${i})`,{mechanism:{type:"auto.function.nextjs.underscore_error",handled:!1,data:{function:"_error.getInitialProps"}}})});return o.waitUntil(o.flushSafelyWithTimeout()),s}},144865,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),n.isUseCacheFunction=function(e){if(e.$$typeof!==Symbol.for("react.server.reference"))return!1;let{type:t}=function(e){let t=parseInt(e.slice(0,2),16),n=t>>1&63,r=Array(6);for(let e=0;e<6;e++){let t=n>>5-e&1;r[e]=1===t}return{type:1==(t>>7&1)?"use-cache":"server-action",usedArgs:r,hasRestArgs:1==(1&t)}}(e.$$id);return"use-cache"===t}},584990,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(644247),i=e.r(775563),a=e.r(144865);function s(e){let t=i.isBuild(),n=!!e&&a.isUseCacheFunction(e);return n&&o.DEBUG_BUILD&&r.debug.log("Skipping span creation in Cache Components context"),t||n}function l(){return new r.SentryNonRecordingSpan({traceId:"00000000000000000000000000000000",spanId:"0000000000000000"})}n.startInactiveSpan=function(e){return s()?l():r.startInactiveSpan(e)},n.startSpan=function(e,t){return s(t)?t(l()):r.startSpan(e,t)},n.startSpanManual=function(e,t){if(s(t)){let e=l();return t(e,()=>e.end())}return r.startSpanManual(e,t)}},952597,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(753802);n.callDataFetcherTraced=async function(e,t){try{return await e(...t)}catch(e){throw r.captureException(e,{mechanism:{handled:!1,type:"auto.function.nextjs.data_fetcher"}}),e}},n.withErrorInstrumentation=function(e){return async function(...t){try{return await e.apply(this,t)}catch(t){throw r.captureException(t,{mechanism:{handled:!1,type:"auto.function.nextjs.wrapped",data:{function:e.name}}}),t}}},n.withTracedServerSideDataFetcher=function(e,t,n,i){return async function(...n){let a=r.httpRequestToRequestData(t);r.getCurrentScope().setTransactionName(`${i.dataFetchingMethodName} (${i.dataFetcherRouteName})`),r.getIsolationScope().setSDKProcessingMetadata({normalizedRequest:a});let s=r.getActiveSpan();s&&"/_error"!==i.requestedRouteName&&r.getRootSpan(s).setAttribute(o.TRANSACTION_ATTR_SENTRY_ROUTE_BACKFILL,i.requestedRouteName);let{"sentry-trace":l,baggage:u}=r.getTraceData();return{sentryTrace:l,baggage:u,data:await e.apply(this,n)}}}},263350,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(775563),o=e.r(952597);n.wrapGetStaticPropsWithSentry=function(e,t){return new Proxy(e,{apply:async(e,t,n)=>{if(r.isBuild())return e.apply(t,n);let i=o.withErrorInstrumentation(e);return o.callDataFetcherTraced(i,n)}})}},804806,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(775563),o=e.r(952597);n.wrapGetInitialPropsWithSentry=function(e){return new Proxy(e,{apply:async(e,t,n)=>{if(r.isBuild())return e.apply(t,n);let[i]=n,{req:a,res:s}=i,l=o.withErrorInstrumentation(e);if(!a||!s)return l.apply(t,n);{let e=o.withTracedServerSideDataFetcher(l,a,s,{dataFetcherRouteName:i.pathname,requestedRouteName:i.pathname,dataFetchingMethodName:"getInitialProps"}),{data:r,baggage:u,sentryTrace:c}=await e.apply(t,n)??{};return"object"==typeof r&&null!==r&&(c&&(r._sentryTraceData=c),u&&(r._sentryBaggage=u)),r}}})}},233160,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(775563),o=e.r(952597);n.wrapAppGetInitialPropsWithSentry=function(e){return new Proxy(e,{apply:async(e,t,n)=>{if(r.isBuild())return e.apply(t,n);let[i]=n,{req:a,res:s}=i.ctx,l=o.withErrorInstrumentation(e);if(!a||!s)return l.apply(t,n);{let e=o.withTracedServerSideDataFetcher(l,a,s,{dataFetcherRouteName:"/_app",requestedRouteName:i.ctx.pathname,dataFetchingMethodName:"getInitialProps"}),{data:r,sentryTrace:u,baggage:c}=await e.apply(t,n);return"object"==typeof r&&null!==r&&(r.pageProps||(r.pageProps={}),u&&(r.pageProps._sentryTraceData=u),c&&(r.pageProps._sentryBaggage=c)),r}}})}},935404,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(775563),o=e.r(952597);n.wrapDocumentGetInitialPropsWithSentry=function(e){return new Proxy(e,{apply:async(e,t,n)=>{if(r.isBuild())return e.apply(t,n);let[i]=n,{req:a,res:s}=i,l=o.withErrorInstrumentation(e);if(!a||!s)return l.apply(t,n);{let e=o.withTracedServerSideDataFetcher(l,a,s,{dataFetcherRouteName:"/_document",requestedRouteName:i.pathname,dataFetchingMethodName:"getInitialProps"}),{data:r}=await e.apply(t,n);return r}}})}},914109,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(775563),o=e.r(952597);n.wrapErrorGetInitialPropsWithSentry=function(e){return new Proxy(e,{apply:async(e,t,n)=>{if(r.isBuild())return e.apply(t,n);let[i]=n,{req:a,res:s}=i,l=o.withErrorInstrumentation(e);if(!a||!s)return l.apply(t,n);{let e=o.withTracedServerSideDataFetcher(l,a,s,{dataFetcherRouteName:"/_error",requestedRouteName:i.pathname,dataFetchingMethodName:"getInitialProps"}),{data:r,baggage:u,sentryTrace:c}=await e.apply(t,n);return"object"==typeof r&&null!==r&&(c&&(r._sentryTraceData=c),u&&(r._sentryBaggage=u)),r}}})}},315469,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(775563),o=e.r(952597);n.wrapGetServerSidePropsWithSentry=function(e,t){return new Proxy(e,{apply:async(e,n,i)=>{if(r.isBuild())return e.apply(n,i);let[a]=i,{req:s,res:l}=a,u=o.withErrorInstrumentation(e),c=o.withTracedServerSideDataFetcher(u,s,l,{dataFetcherRouteName:t,requestedRouteName:t,dataFetchingMethodName:"getServerSideProps"}),{data:p,baggage:_,sentryTrace:T}=await c.apply(n,i);return"object"==typeof p&&null!==p&&"props"in p&&(T&&(p.props._sentryTraceData=T),_&&(p.props._sentryBaggage=_)),p}})}},44343,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285);n.isNotFoundNavigationError=function(e){return r.isError(e)&&["NEXT_NOT_FOUND","NEXT_HTTP_ERROR_FALLBACK;404"].includes(e.digest)},n.isRedirectNavigationError=function(e){return r.isError(e)&&"string"==typeof e.digest&&e.digest.startsWith("NEXT_REDIRECT;")}},461047,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(44343),i=e.r(804822);n.wrapServerComponentWithSentry=function(e,t){return new Proxy(e,{apply:(e,n,a)=>{let s=r.getIsolationScope(),l=t.headers?r.winterCGHeadersToDict(t.headers):void 0;return s.setSDKProcessingMetadata({normalizedRequest:{headers:l}}),r.handleCallbackErrors(()=>e.apply(n,a),e=>{let n=r.getActiveSpan(),{componentRoute:i,componentType:a}=t,l=!0;s.setTransactionName(`${a} Server Component (${i})`),n&&(o.isNotFoundNavigationError(e)?(l=!1,n.setStatus({code:r.SPAN_STATUS_ERROR,message:"not_found"})):o.isRedirectNavigationError(e)?(l=!1,n.setStatus({code:r.SPAN_STATUS_OK})):n.setStatus({code:r.SPAN_STATUS_ERROR,message:"internal_error"})),l&&r.captureException(e,{mechanism:{handled:!1,type:"auto.function.nextjs.server_component"}})},()=>{i.waitUntil(i.flushSafelyWithTimeout())})}})}},839777,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(44343),i=e.r(804822);e.r(997574),n.wrapRouteHandlerWithSentry=function(e,t){let{method:n,parameterizedRoute:a,headers:s}=t;return new Proxy(e,{apply:async(e,t,s)=>{let l=r.getActiveSpan(),u=l?r.getRootSpan(l):void 0;return r.withIsolationScope(r.getIsolationScope(),()=>r.withScope(async c=>{c.setTransactionName(`${n} ${a}`);let p=await r.handleCallbackErrors(()=>e.apply(t,s),e=>{o.isRedirectNavigationError(e)||(o.isNotFoundNavigationError(e)?(l&&r.setHttpStatus(l,404),u&&r.setHttpStatus(u,404)):r.captureException(e,{mechanism:{handled:!1,type:"auto.function.nextjs.route_handler"}}))},()=>{i.waitUntil(i.flushSafelyWithTimeout())});try{p.status&&(l&&r.setHttpStatus(l,p.status),u&&r.setHttpStatus(u,p.status))}catch{}return p}))}})}},573937,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285);n.wrapApiHandlerWithSentryVercelCrons=function(e,t){return new Proxy(e,{apply:(e,n,o)=>{let i;if(!o?.[0])return e.apply(n,o);let[a]=o,s="nextUrl"in a?a.nextUrl.pathname:a.url,l="nextUrl"in a?a.headers.get("user-agent"):a.headers["user-agent"];if(!t||!l?.includes("vercel-cron"))return e.apply(n,o);let u=t.find(e=>e.path===s);if(!u?.path||!u.schedule)return e.apply(n,o);let c=u.path,p=r.captureCheckIn({monitorSlug:c,status:"in_progress"},{maxRuntime:720,schedule:{type:"crontab",value:u.schedule}}),_=r._INTERNAL_safeDateNow()/1e3,T=()=>{r.captureCheckIn({checkInId:p,monitorSlug:c,status:"error",duration:r._INTERNAL_safeDateNow()/1e3-_})};try{i=e.apply(n,o)}catch(e){throw T(),e}return"object"==typeof i&&null!==i&&"then"in i?Promise.resolve(i).then(()=>{r.captureCheckIn({checkInId:p,monitorSlug:c,status:"ok",duration:r._INTERNAL_safeDateNow()/1e3-_})},()=>{T()}):r.captureCheckIn({checkInId:p,monitorSlug:c,status:"ok",duration:r._INTERNAL_safeDateNow()/1e3-_}),i}})}},918606,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(804822);n.wrapMiddlewareWithSentry=function(e){return new Proxy(e,{apply:async(e,t,n)=>{let i="_sentryRewritesTunnelPath"in globalThis?globalThis._sentryRewritesTunnelPath:void 0;if(i&&"string"==typeof i){let e=n[0];if(e instanceof Request&&new URL(e.url).pathname.startsWith(i))return new Response(null,{status:200,headers:{"x-middleware-next":"1"}})}return r.withIsolationScope(i=>{let a,s,l=n[0],u=r.getCurrentScope();l instanceof Request?(i.setSDKProcessingMetadata({normalizedRequest:r.winterCGRequestToRequestData(l)}),a=`middleware ${l.method}`,s="url"):(a="middleware",s="component"),u.setTransactionName(a);let c=r.getActiveSpan();if(c){a="middleware",s="component";let e=r.getRootSpan(c);e&&r.setCapturedScopesOnSpan(e,u,i)}return r.startSpan({name:a,op:"http.server.middleware",attributes:{[r.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:s,[r.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.function.nextjs.wrap_middleware"}},()=>r.handleCallbackErrors(()=>e.apply(t,n),e=>{r.captureException(e,{mechanism:{type:"auto.function.nextjs.wrap_middleware",handled:!1}})},()=>{o.waitUntil(o.flushSafelyWithTimeout())}))})}})}},91026,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285);function o(e,t){e&&"object"==typeof e&&r.addNonEnumerableProperty(e,"__sentry_event_id__",t)}n.wrapPageComponentWithSentry=function(e){return"function"==typeof e&&e?.prototype?.isReactComponent?class extends e{render(...e){return r.withIsolationScope(()=>{let t=r.getCurrentScope(),n="object"==typeof this.props&&null!==this.props&&"_sentryTraceData"in this.props&&"string"==typeof this.props._sentryTraceData?this.props._sentryTraceData:void 0;if(n){let e=r.extractTraceparentData(n);t.setContext("trace",{span_id:e?.parentSpanId,trace_id:e?.traceId})}try{return super.render(...e)}catch(t){let e=r.captureException(t,{mechanism:{handled:!1,type:"auto.function.nextjs.page_class"}});throw o(t,e),t}})}}:"function"==typeof e?new Proxy(e,{apply:(e,t,n)=>r.withIsolationScope(()=>{let i=r.getCurrentScope(),a=n?.[0]?._sentryTraceData;if(a){let e=r.extractTraceparentData(a);i.setContext("trace",{span_id:e?.parentSpanId,trace_id:e?.traceId})}try{return e.apply(t,n)}catch(t){let e=r.captureException(t,{mechanism:{handled:!1,type:"auto.function.nextjs.page_function"}});throw o(t,e),t}})}):e}},332796,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(44343),i=e.r(804822);n.wrapGenerationFunctionWithSentry=function(e,t){return new Proxy(e,{apply:(e,n,a)=>{let s,l=r.getIsolationScope();try{s=t.requestAsyncStorage?.getStore()?.headers}catch{}let u=s?r.winterCGHeadersToDict(s):void 0;return l.setSDKProcessingMetadata({normalizedRequest:{headers:u}}),r.handleCallbackErrors(()=>e.apply(n,a),e=>{let n=r.getActiveSpan(),{componentRoute:i,componentType:a,generationFunctionIdentifier:s}=t,u=!0;l.setTransactionName(`${a}.${s} (${i})`),n&&(o.isNotFoundNavigationError(e)?(u=!1,n.setStatus({code:r.SPAN_STATUS_ERROR,message:"not_found"})):o.isRedirectNavigationError(e)?(u=!1,n.setStatus({code:r.SPAN_STATUS_OK})):n.setStatus({code:r.SPAN_STATUS_ERROR,message:"internal_error"})),u&&r.captureException(e,{mechanism:{handled:!1,type:"auto.function.nextjs.generation_function",data:{function:s}}})},()=>{i.waitUntil(i.flushSafelyWithTimeout())})}})}},982907,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(804822),i=e.r(644247),a=e.r(44343);async function s(e,t,n){return r.withIsolationScope(async s=>{let l,u,c=r.getClient()?.getOptions().sendDefaultPii,p={};try{let e=await t.headers;l=e?.get("sentry-trace")??void 0,u=e?.get("baggage"),e?.forEach((e,t)=>{p[t]=e})}catch{i.DEBUG_BUILD&&r.debug.warn("Sentry wasn't able to extract the tracing headers for a server action. Will not trace this request.")}return s.setTransactionName(`serverAction/${e}`),s.setSDKProcessingMetadata({normalizedRequest:{headers:p}}),(r.getActiveSpan()?(e,t)=>t():r.continueTrace)({sentryTrace:l,baggage:u},async()=>{try{return await r.startSpan({op:"function.server_action",name:`serverAction/${e}`,forceTransaction:!0,attributes:{[r.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:"route",[r.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.function.nextjs.server_action"}},async e=>{let o=await r.handleCallbackErrors(n,t=>{a.isNotFoundNavigationError(t)?e.setStatus({code:r.SPAN_STATUS_ERROR,message:"not_found"}):a.isRedirectNavigationError(t)||(e.setStatus({code:r.SPAN_STATUS_ERROR,message:"internal_error"}),r.captureException(t,{mechanism:{handled:!1,type:"auto.function.nextjs.server_action"}}))});return(void 0!==t.recordResponse?t.recordResponse:c)&&r.getIsolationScope().setExtra("server_action_result",o),t.formData&&t.formData.forEach((e,t)=>{r.getIsolationScope().setExtra(`server_action_form_data.${t}`,"string"==typeof e?e:"[non-string value]")}),o})}finally{o.waitUntil(o.flushSafelyWithTimeout())}})})}n.withServerActionInstrumentation=function(...e){if("function"==typeof e[1]){let[t,n]=e;return s(t,{},n)}{let[t,n,r]=e;return s(t,n,r)}}},659534,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(804822);n.captureRequestError=function(e,t,n){r.withScope(i=>{i.setSDKProcessingMetadata({normalizedRequest:{headers:r.headersToDict(t.headers),method:t.method}}),i.setContext("nextjs",{request_path:t.path,router_kind:n.routerKind,router_path:n.routePath,route_type:n.routeType}),i.setTransactionName(`${t.method} ${n.routePath}`),r.captureException(e,{mechanism:{handled:!1,type:"auto.function.nextjs.on_request_error"}}),o.waitUntil(o.flushSafelyWithTimeout())})}},13458,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(976285),o=e.r(804822),i=e.r(997574);n.wrapApiHandlerWithSentry=function(e,t){return new Proxy(e,{apply:(e,n,a)=>(i.dropNextjsRootContext(),i.escapeNextjsTracing(()=>{let[i,s]=a;return i?s?i.__withSentry_applied__?e.apply(n,a):(i.__withSentry_applied__=!0,r.withIsolationScope(l=>(r.getActiveSpan()?(e,t)=>t():r.continueTrace)({sentryTrace:i.headers&&r.isString(i.headers["sentry-trace"])?i.headers["sentry-trace"]:void 0,baggage:i.headers?.baggage},()=>{let u=`${(i.method||"GET").toUpperCase()} `,c=r.httpRequestToRequestData(i);return l.setSDKProcessingMetadata({normalizedRequest:c}),l.setTransactionName(`${u}${t}`),r.startSpanManual({name:`${u}${t}`,op:"http.server",forceTransaction:!0,attributes:{[r.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:"route",[r.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.http.nextjs"}},async t=>{s.end=new Proxy(s.end,{apply:(e,n,i)=>(r.setHttpStatus(t,s.statusCode),t.end(),o.waitUntil(o.flushSafelyWithTimeout()),e.apply(n,i))});try{return await e.apply(n,a)}catch(i){let n=r.objectify(i);throw r.captureException(n,{mechanism:{type:"auto.http.nextjs.api_handler",handled:!1,data:{wrapped_handler:e.name,function:"withSentry"}}}),r.setHttpStatus(t,500),t.end(),await o.flushSafelyWithTimeout(),n}})}))):(r.debug.log(`Wrapped API handler on route "${t}" was not passed a response object. Will not instrument.`),e.apply(n,a)):(r.debug.log(`Wrapped API handler on route "${t}" was not passed a request object. Will not instrument.`),e.apply(n,a))}))})}},398609,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(808119),o=e.r(976285),i=e.r(96892),a=e.r(644247);e.r(313627);let s=e.r(102372),l=e.r(322192),u=e.r(753802),c=e.r(775563),p=e.r(804822),_=e.r(638074),T=e.r(540886),d=e.r(541464),E=e.r(280432),S=e.r(800038),A=e.r(383234),g=e.r(202446),m=e.r(584990),h=e.r(263350),R=e.r(804806),f=e.r(233160),N=e.r(935404),I=e.r(914109),O=e.r(315469),y=e.r(461047),b=e.r(839777),C=e.r(573937),M=e.r(918606),P=e.r(91026),L=e.r(332796),v=e.r(982907),U=e.r(659534),D=e.r(13458);o.GLOBAL_OBJ,n.captureUnderscoreErrorException=g.captureUnderscoreErrorException,n.startInactiveSpan=m.startInactiveSpan,n.startSpan=m.startSpan,n.startSpanManual=m.startSpanManual,n.wrapGetStaticPropsWithSentry=h.wrapGetStaticPropsWithSentry,n.wrapGetInitialPropsWithSentry=R.wrapGetInitialPropsWithSentry,n.wrapAppGetInitialPropsWithSentry=f.wrapAppGetInitialPropsWithSentry,n.wrapDocumentGetInitialPropsWithSentry=N.wrapDocumentGetInitialPropsWithSentry,n.wrapErrorGetInitialPropsWithSentry=I.wrapErrorGetInitialPropsWithSentry,n.wrapGetServerSidePropsWithSentry=O.wrapGetServerSidePropsWithSentry,n.wrapServerComponentWithSentry=y.wrapServerComponentWithSentry,n.wrapRouteHandlerWithSentry=b.wrapRouteHandlerWithSentry,n.wrapApiHandlerWithSentryVercelCrons=C.wrapApiHandlerWithSentryVercelCrons,n.wrapMiddlewareWithSentry=M.wrapMiddlewareWithSentry,n.wrapPageComponentWithSentry=P.wrapPageComponentWithSentry,n.wrapGenerationFunctionWithSentry=L.wrapGenerationFunctionWithSentry,n.withServerActionInstrumentation=v.withServerActionInstrumentation,n.captureRequestError=U.captureRequestError,n.wrapApiHandlerWithSentry=D.wrapApiHandlerWithSentry,n.ErrorBoundary=e=>e.children?"function"==typeof e.children?e.children():e.children:null,n.createReduxEnhancer=function(){return e=>e},n.init=function(e){if(E.prepareSafeIdGeneratorContext(),c.isBuild())return;!a.DEBUG_BUILD&&e.debug&&console.warn("[@sentry/nextjs] You have enabled `debug: true`, but Sentry debug logging was removed from your bundle (likely via `withSentryConfig({ disableLogger: true })` / `webpack.treeshake.removeDebugLogging: true`). Set that option to `false` to see Sentry debug output.");let t=i.getDefaultIntegrations(e).filter(e=>"Http"!==e.name).concat(i.httpIntegration({disableIncomingRequestSpans:!0}));e.skipOpenTelemetrySetup||(process.env.NEXT_OTEL_FETCH_DISABLED="1"),t.push(T.distDirRewriteFramesIntegration({distDirName:".next"}));let n=function(){if(p.isCloudflareWaitUntilAvailable())return{runtime:{name:"cloudflare"}}}(),g={environment:e.environment||process.env.SENTRY_ENVIRONMENT||s.getVercelEnv(!1)||"production",release:"66d0d6a6e06671f2575ec88a95202d81fe7d0e81",defaultIntegrations:t,...e,...n};if(a.DEBUG_BUILD&&g.debug&&o.debug.enable(),a.DEBUG_BUILD&&o.debug.log("Initializing SDK..."),o.getClient()){a.DEBUG_BUILD&&o.debug.log("SDK already initialized");return}o.applySdkMetadata(g,"nextjs",["nextjs",n?"cloudflare":"node"]);let m=i.init(g);m?.on("beforeSampling",({spanAttributes:e},t)=>{("string"==typeof e[r.SEMATTRS_HTTP_TARGET]&&e[r.SEMATTRS_HTTP_TARGET].includes("sentry_key")&&e[r.SEMATTRS_HTTP_TARGET].includes("sentry_client")||"string"==typeof e[r.ATTR_URL_QUERY]&&e[r.ATTR_URL_QUERY].includes("sentry_key")&&e[r.ATTR_URL_QUERY].includes("sentry_client"))&&(t.decision=!1)}),m?.on("spanStart",d.handleOnSpanStart),m?.on("spanEnd",S.maybeCompleteCronCheckIn),m?.on("spanEnd",A.maybeCleanupQueueSpan),o.getGlobalScope().addEventProcessor(Object.assign(e=>{if("transaction"!==e.type)return e;if(e.transaction?.match(/^GET (\/.*)?\/_next\/static\//)||e.transaction?.match(/\/__nextjs_original-stack-frame/)||"/404"===e.transaction||e.transaction?.match(/^(GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH) \/(404|_not-found)$/)||e.contexts?.trace?.data?.[u.TRANSACTION_ATTR_SHOULD_DROP_TRANSACTION]||"NextServer.getRequestHandler"===e.transaction)return null;if("string"==typeof e.contexts?.trace?.data?.[u.TRANSACTION_ATTR_SENTRY_TRACE_BACKFILL]){let t=o.extractTraceparentData(e.contexts.trace.data[u.TRANSACTION_ATTR_SENTRY_TRACE_BACKFILL]);if(t?.parentSampled===!1)return null}return e},{id:"NextLowQualityTransactionsFilter"})),o.getGlobalScope().addEventProcessor(Object.assign((e,t)=>{if(void 0!==e.type)return e;let n=t.originalException;if("object"==typeof n&&null!==n&&"$$typeof"in n&&n.$$typeof===Symbol.for("react.postpone"))return null;let r=e.exception?.values?.[0]?.value;return r?.includes("Suspense Exception: This is not a real error!")||r?.includes("Suspense Exception: This is not a real error, and should not leak")?null:e},{id:"DropReactControlFlowErrors"})),m?.on("preprocessEvent",e=>{if("transaction"===e.type&&e.contexts?.trace?.data?.[l.ATTR_NEXT_SPAN_TYPE]==="BaseServer.handleRequest"){e.contexts.trace.data[o.SEMANTIC_ATTRIBUTE_SENTRY_OP]="http.server",e.contexts.trace.op="http.server",e.transaction&&(e.transaction=o.stripUrlQueryAndFragment(e.transaction));let t=e.contexts.trace.data[r.SEMATTRS_HTTP_METHOD],n=e.contexts?.trace?.data?.[r.SEMATTRS_HTTP_TARGET],i=e.contexts.trace.data[r.ATTR_HTTP_ROUTE]||e.contexts.trace.data[l.ATTR_NEXT_ROUTE],a=e.contexts.trace.data[l.ATTR_NEXT_SPAN_NAME];if("string"==typeof t&&"string"==typeof i&&!i.startsWith("middleware")){let n=i.replace(/\/route$/,"");e.transaction=`${t} ${n}`,e.contexts.trace.data[o.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]="route",e.contexts.trace.data[l.ATTR_NEXT_ROUTE]=n}e.contexts.trace.data[u.TRANSACTION_ATTR_SENTRY_ROUTE_BACKFILL]&&"GET /_app"!==e.transaction&&(e.transaction=`${t} ${e.contexts.trace.data[u.TRANSACTION_ATTR_SENTRY_ROUTE_BACKFILL]}`);let s="string"==typeof a&&a.match(/^middleware (GET|POST|PUT|DELETE|PATCH|HEAD|OPTIONS)/);s&&(e.transaction=`middleware ${s[1]}`,e.contexts.trace.op="http.server.middleware"),"GET /_error"===e.transaction&&n&&(e.transaction=`${t?`${t} `:""}${n}`)}if("transaction"===e.type&&"string"==typeof e.contexts?.trace?.data?.[u.TRANSACTION_ATTR_SENTRY_TRACE_BACKFILL]){let t=o.extractTraceparentData(e.contexts.trace.data[u.TRANSACTION_ATTR_SENTRY_TRACE_BACKFILL]);t?.traceId&&(e.contexts.trace.trace_id=t.traceId),t?.parentSpanId&&(e.contexts.trace.parent_span_id=t.parentSpanId)}_.setUrlProcessingMetadata(e)});try{o.getGlobalScope().setTag("turbopack",!0)}catch{}return a.DEBUG_BUILD&&o.debug.log("SDK successfully initialized"),m},n.showReportDialog=function(){},n.withErrorBoundary=function(e){return e},Object.prototype.hasOwnProperty.call(i,"__proto__")&&!Object.prototype.hasOwnProperty.call(n,"__proto__")&&Object.defineProperty(n,"__proto__",{enumerable:!0,value:i.__proto__}),Object.keys(i).forEach(e=>{"default"===e||Object.prototype.hasOwnProperty.call(n,e)||(n[e]=i[e])})},755538,(e,t,n)=>{Object.defineProperty(n,Symbol.toStringTag,{value:"Module"});let r=e.r(256782),o=e.r(398609),i=e.r(96892),a=e.r(659534),s=e.r(202446),l=e.r(584990),u=e.r(982907),c=e.r(13458),p=e.r(573937),_=e.r(233160),T=e.r(935404),d=e.r(914109),E=e.r(332796),S=e.r(804806),A=e.r(315469),g=e.r(263350),m=e.r(918606),h=e.r(91026),R=e.r(839777),f=e.r(461047);n.withSentryConfig=r.withSentryConfig,n.ErrorBoundary=o.ErrorBoundary,n.createReduxEnhancer=o.createReduxEnhancer,n.init=o.init,n.showReportDialog=o.showReportDialog,n.withErrorBoundary=o.withErrorBoundary,n.captureRequestError=a.captureRequestError,n.captureUnderscoreErrorException=s.captureUnderscoreErrorException,n.startInactiveSpan=l.startInactiveSpan,n.startSpan=l.startSpan,n.startSpanManual=l.startSpanManual,n.withServerActionInstrumentation=u.withServerActionInstrumentation,n.wrapApiHandlerWithSentry=c.wrapApiHandlerWithSentry,n.wrapApiHandlerWithSentryVercelCrons=p.wrapApiHandlerWithSentryVercelCrons,n.wrapAppGetInitialPropsWithSentry=_.wrapAppGetInitialPropsWithSentry,n.wrapDocumentGetInitialPropsWithSentry=T.wrapDocumentGetInitialPropsWithSentry,n.wrapErrorGetInitialPropsWithSentry=d.wrapErrorGetInitialPropsWithSentry,n.wrapGenerationFunctionWithSentry=E.wrapGenerationFunctionWithSentry,n.wrapGetInitialPropsWithSentry=S.wrapGetInitialPropsWithSentry,n.wrapGetServerSidePropsWithSentry=A.wrapGetServerSidePropsWithSentry,n.wrapGetStaticPropsWithSentry=g.wrapGetStaticPropsWithSentry,n.wrapMiddlewareWithSentry=m.wrapMiddlewareWithSentry,n.wrapPageComponentWithSentry=h.wrapPageComponentWithSentry,n.wrapRouteHandlerWithSentry=R.wrapRouteHandlerWithSentry,n.wrapServerComponentWithSentry=f.wrapServerComponentWithSentry,Object.prototype.hasOwnProperty.call(i,"__proto__")&&!Object.prototype.hasOwnProperty.call(n,"__proto__")&&Object.defineProperty(n,"__proto__",{enumerable:!0,value:i.__proto__}),Object.keys(i).forEach(e=>{"default"===e||Object.prototype.hasOwnProperty.call(n,e)||(n[e]=i[e])})}]; -//# debugId=db753a8a-e688-c25f-a45c-825c483db3ff +//# debugId=e4f5f853-b33a-aa62-398c-659d48abcf57 //# sourceMappingURL=node_modules__pnpm_b4ece637._.js.map \ No newline at end of file diff --git a/.next/server/chunks/node_modules__pnpm_b4ece637._.js.map b/.next/server/chunks/node_modules__pnpm_b4ece637._.js.map index 2bb6fed9a..360ee20d8 100644 --- a/.next/server/chunks/node_modules__pnpm_b4ece637._.js.map +++ b/.next/server/chunks/node_modules__pnpm_b4ece637._.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": [], - "debugId": "db753a8a-e688-c25f-a45c-825c483db3ff", + "debugId": "e4f5f853-b33a-aa62-398c-659d48abcf57", "sections": [ {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/debug-build.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/worldwide.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/version.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/carrier.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/debug-logger.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/stacktrace.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/instrument/handlers.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/instrument/globalError.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/instrument/globalUnhandledRejection.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/is.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/browser.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/object.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/randomSafeContext.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/string.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/misc.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/time.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/session.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/merge.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/propagationContext.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/spanOnScope.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/scope.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/defaultScopes.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/chain-and-copy-promiselike.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/asyncContext/stackStrategy.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/asyncContext/index.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/currentScopes.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/semanticAttributes.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/spanstatus.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/utils.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/baggage.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/dsn.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/parseSampleRate.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/tracing.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/spanUtils.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/errors.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/hasSpansEnabled.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/should-ignore-span.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/constants.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/dynamicSamplingContext.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/sentryNonRecordingSpan.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/normalize.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/envelope.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/envelope.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/logSpans.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/measurement.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/sentrySpan.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/handleCallbackErrors.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/sampling.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/trace.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/idleSpan.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/syncpromise.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/eventProcessors.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/debug-ids.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/scopeData.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/prepareEvent.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/exports.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/api.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integration.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/attributes.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/timestampSequence.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/trace-info.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/logs/constants.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/logs/envelope.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/logs/internal.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/metrics/envelope.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/metrics/internal.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/timer.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/promisebuffer.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/ratelimit.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/transports/base.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/clientreport.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/eventUtils.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/transactionEvent.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/client.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/checkin.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/transports/userAgent.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/eventbuilder.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/server-runtime-client.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/sdk.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/transports/offline.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/transports/multiplexed.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/ai/providerSkip.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/envToBool.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/url.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/isSentryRequestUrl.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/parameterize.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/tunnel.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/ipAddress.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/sdkMetadata.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/traceData.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/tracePropagationTargets.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/meta.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/debounce.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/request.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/breadcrumbs.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/functiontostring.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/eventFilters.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/aggregate-errors.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/linkederrors.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/metadata.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/moduleMetadata.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/cookie.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/vendor/getIpAddress.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/requestdata.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/instrument/console.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/severity.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/captureconsole.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/dedupe.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/extraerrordata.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/path.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/rewriteframes.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/supabase.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/postgresjs.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/zoderrors.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/third-party-errors-filter.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/console.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/featureFlags.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/featureFlags/featureFlagsIntegration.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/featureFlags/growthbook.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/conversationId.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/profiling.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/fetch.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/trpc.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/mcp-server/errorCapture.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/mcp-server/handlers.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/mcp-server/attributes.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/mcp-server/validation.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/mcp-server/resultExtraction.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/mcp-server/sessionManagement.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/mcp-server/sessionExtraction.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/mcp-server/correlation.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/mcp-server/methodConfig.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/mcp-server/attributeExtraction.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/mcp-server/piiFiltering.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/mcp-server/spans.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/mcp-server/transport.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/mcp-server/index.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/feedback.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/logs/public-api.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/logs/utils.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/logs/console-integration.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/metrics/public-api.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/integrations/consola.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/ai/gen-ai-attributes.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/vercel-ai/constants.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/ai/mediaStripping.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/ai/messageTruncation.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/ai/utils.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/vercel-ai/vercel-ai-attributes.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/vercel-ai/utils.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/vercel-ai/index.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/openai/constants.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/openai/utils.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/openai/streaming.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/openai/index.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/anthropic-ai/constants.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/anthropic-ai/utils.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/anthropic-ai/streaming.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/anthropic-ai/index.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/google-genai/constants.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/google-genai/streaming.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/google-genai/utils.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/google-genai/index.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/langchain/constants.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/langchain/utils.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/langchain/index.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/langgraph/constants.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/langgraph/utils.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/tracing/langgraph/index.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/breadcrumb-log-level.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/error.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/supports.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/instrument/fetch.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/env.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/node.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/isBrowser.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/exports.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/node-stack-trace.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/anr.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/lru.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/vercelWaitUntil.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/utils/flushIfServerless.ts","../../../node_modules/.pnpm/%40sentry%2Bcore%4010.47.0/node_modules/%40sentry/core/src/vendor/escapeStringForRegex.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/config/util.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/config/withSentryConfig/buildTime.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/config/withSentryConfig/deprecatedWebpackOptions.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/config/getBuildPluginOptions.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/config/handleRunAfterProductionCompile.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/config/turbopack/generateValueInjectionRules.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/config/turbopack/constructTurbopackConfig.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/config/webpack.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/config/withSentryConfig/constants.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/config/withSentryConfig/getFinalConfigObjectBundlerUtils.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsemantic-conventions%401.40.0/node_modules/%40opentelemetry/semantic-conventions/src/stable_attributes.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/platform/node/environment.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/version.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/platform/node/sdk-info.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/semconv.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/ExportResult.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/utils/promise.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/common/attributes.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/platform/node/index.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/utils/merge.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/index.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/common/time.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/internal/exporter.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/trace/suppress-tracing.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/common/global-error-handler.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/utils/callback.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/utils/lodash.merge.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/common/logging-error-handler.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/baggage/utils.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/baggage/propagation/W3CBaggagePropagator.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/trace/W3CTraceContextPropagator.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/trace/rpc-metadata.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/propagation/composite.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/trace/TraceState.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/utils/configuration.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/utils/url.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/internal/validators.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/baggage/constants.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/common/globalThis.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/utils/timeout.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/common/timer-util.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcore%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/core/src/common/anchored-clock.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-http%400.214.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-http/src/version.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.214.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/semconvStability.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bapi-logs%400.214.0/node_modules/%40opentelemetry/api-logs/src/ProxyLoggerProvider.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bapi-logs%400.214.0/node_modules/%40opentelemetry/api-logs/src/api/logs.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bapi-logs%400.214.0/node_modules/%40opentelemetry/api-logs/src/index.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.214.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/autoLoader.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.214.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/index.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.214.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/instrumentation.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.214.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/platform/node/RequireInTheMiddleSingleton.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bapi-logs%400.214.0/node_modules/%40opentelemetry/api-logs/src/NoopLoggerProvider.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.214.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/instrumentationNodeModuleFile.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bapi-logs%400.214.0/node_modules/%40opentelemetry/api-logs/src/ProxyLogger.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.214.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/platform/node/instrumentation.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bapi-logs%400.214.0/node_modules/%40opentelemetry/api-logs/src/internal/global-utils.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.214.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/instrumentationNodeModuleDefinition.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.214.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/shimmer.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bapi-logs%400.214.0/node_modules/%40opentelemetry/api-logs/src/NoopLogger.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.214.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/semver.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.214.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/platform/node/ModuleNameTrie.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.214.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/utils.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.214.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/autoLoaderUtils.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsemantic-conventions%401.40.0/node_modules/%40opentelemetry/semantic-conventions/src/resource/SemanticResourceAttributes.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsemantic-conventions%401.40.0/node_modules/%40opentelemetry/semantic-conventions/src/internal/utils.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsemantic-conventions%401.40.0/node_modules/%40opentelemetry/semantic-conventions/src/trace/index.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsemantic-conventions%401.40.0/node_modules/%40opentelemetry/semantic-conventions/src/resource/index.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsemantic-conventions%401.40.0/node_modules/%40opentelemetry/semantic-conventions/src/index.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsemantic-conventions%401.40.0/node_modules/%40opentelemetry/semantic-conventions/src/trace/SemanticAttributes.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsemantic-conventions%401.40.0/node_modules/%40opentelemetry/semantic-conventions/src/stable_events.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsemantic-conventions%401.40.0/node_modules/%40opentelemetry/semantic-conventions/src/stable_metrics.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-http%400.214.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-http/src/semconv.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-http%400.214.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-http/src/enums/AttributeNames.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-http%400.214.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-http/src/internal-types.ts","../../../node_modules/.pnpm/forwarded-parse%402.1.2/node_modules/forwarded-parse/lib/error.js","../../../node_modules/.pnpm/forwarded-parse%402.1.2/node_modules/forwarded-parse/lib/ascii.js","../../../node_modules/.pnpm/forwarded-parse%402.1.2/node_modules/forwarded-parse/index.js","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-http%400.214.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-http/src/utils.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-http%400.214.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-http/src/http.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-http%400.214.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-http/src/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/otel/instrument.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/debug-build.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/integrations/http/constants.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/utils/captureRequestBody.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/integrations/http/httpServerIntegration.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/integrations/http/httpServerSpansIntegration.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/utils/baggage.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/utils/outgoingHttpRequest.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/integrations/http/SentryHttpInstrumentation.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/integrations/http/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/nodeVersion.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/utils/outgoingFetchRequest.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/integrations/node-fetch/SentryNodeFetchInstrumentation.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/integrations/node-fetch/index.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/context-async-hooks/src/AbstractAsyncHooksContextManager.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/context-async-hooks/src/AsyncHooksContextManager.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/context-async-hooks/src/AsyncLocalStorageContextManager.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/context-async-hooks/src/index.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bresources%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/resources/src/ResourceImpl.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bresources%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/resources/src/default-service-name.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bresources%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/resources/src/utils.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsdk-trace-base%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/sdk-trace-base/src/platform/node/RandomIdGenerator.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsdk-trace-base%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/sdk-trace-base/src/export/ConsoleSpanExporter.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsdk-trace-base%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/sdk-trace-base/src/config.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsdk-trace-base%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/sdk-trace-base/src/BasicTracerProvider.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsdk-trace-base%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/sdk-trace-base/src/sampler/AlwaysOffSampler.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsdk-trace-base%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/sdk-trace-base/src/export/BatchSpanProcessorBase.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsdk-trace-base%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/sdk-trace-base/src/sampler/ParentBasedSampler.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsdk-trace-base%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/sdk-trace-base/src/utility.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsdk-trace-base%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/sdk-trace-base/src/platform/node/export/BatchSpanProcessor.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsdk-trace-base%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/sdk-trace-base/src/index.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsdk-trace-base%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/sdk-trace-base/src/Tracer.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsdk-trace-base%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/sdk-trace-base/src/export/InMemorySpanExporter.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsdk-trace-base%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/sdk-trace-base/src/Span.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsdk-trace-base%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/sdk-trace-base/src/sampler/TraceIdRatioBasedSampler.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsdk-trace-base%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/sdk-trace-base/src/sampler/AlwaysOnSampler.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsdk-trace-base%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/sdk-trace-base/src/export/SimpleSpanProcessor.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsdk-trace-base%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/sdk-trace-base/src/MultiSpanProcessor.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsdk-trace-base%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/sdk-trace-base/src/enums.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsdk-trace-base%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/sdk-trace-base/src/export/NoopSpanProcessor.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsdk-trace-base%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/sdk-trace-base/src/TracerMetrics.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsdk-trace-base%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/sdk-trace-base/src/Sampler.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsdk-trace-base%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/sdk-trace-base/src/semconv.ts","../../../node_modules/.pnpm/%40sentry%2Bopentelemetry%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hoo_70f539428297572a9e3752da9c315982/node_modules/%40sentry/opentelemetry/src/semanticAttributes.ts","../../../node_modules/.pnpm/%40sentry%2Bopentelemetry%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hoo_70f539428297572a9e3752da9c315982/node_modules/%40sentry/opentelemetry/src/utils/getParentSpanId.ts","../../../node_modules/.pnpm/%40sentry%2Bopentelemetry%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hoo_70f539428297572a9e3752da9c315982/node_modules/%40sentry/opentelemetry/src/utils/spanTypes.ts","../../../node_modules/.pnpm/%40sentry%2Bopentelemetry%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hoo_70f539428297572a9e3752da9c315982/node_modules/%40sentry/opentelemetry/src/utils/getRequestSpanData.ts","../../../node_modules/.pnpm/%40sentry%2Bopentelemetry%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hoo_70f539428297572a9e3752da9c315982/node_modules/%40sentry/opentelemetry/src/custom/client.ts","../../../node_modules/.pnpm/%40sentry%2Bopentelemetry%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hoo_70f539428297572a9e3752da9c315982/node_modules/%40sentry/opentelemetry/src/utils/getSpanKind.ts","../../../node_modules/.pnpm/%40sentry%2Bopentelemetry%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hoo_70f539428297572a9e3752da9c315982/node_modules/%40sentry/opentelemetry/src/constants.ts","../../../node_modules/.pnpm/%40sentry%2Bopentelemetry%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hoo_70f539428297572a9e3752da9c315982/node_modules/%40sentry/opentelemetry/src/utils/contextData.ts","../../../node_modules/.pnpm/%40sentry%2Bopentelemetry%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hoo_70f539428297572a9e3752da9c315982/node_modules/%40sentry/opentelemetry/src/utils/isSentryRequest.ts","../../../node_modules/.pnpm/%40sentry%2Bopentelemetry%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hoo_70f539428297572a9e3752da9c315982/node_modules/%40sentry/opentelemetry/src/utils/getSamplingDecision.ts","../../../node_modules/.pnpm/%40sentry%2Bopentelemetry%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hoo_70f539428297572a9e3752da9c315982/node_modules/%40sentry/opentelemetry/src/utils/parseSpanDescription.ts","../../../node_modules/.pnpm/%40sentry%2Bopentelemetry%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hoo_70f539428297572a9e3752da9c315982/node_modules/%40sentry/opentelemetry/src/utils/enhanceDscWithOpenTelemetryRootSpanName.ts","../../../node_modules/.pnpm/%40sentry%2Bopentelemetry%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hoo_70f539428297572a9e3752da9c315982/node_modules/%40sentry/opentelemetry/src/utils/getActiveSpan.ts","../../../node_modules/.pnpm/%40sentry%2Bopentelemetry%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hoo_70f539428297572a9e3752da9c315982/node_modules/%40sentry/opentelemetry/src/debug-build.ts","../../../node_modules/.pnpm/%40sentry%2Bopentelemetry%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hoo_70f539428297572a9e3752da9c315982/node_modules/%40sentry/opentelemetry/src/utils/makeTraceState.ts","../../../node_modules/.pnpm/%40sentry%2Bopentelemetry%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hoo_70f539428297572a9e3752da9c315982/node_modules/%40sentry/opentelemetry/src/utils/setupCheck.ts","../../../node_modules/.pnpm/%40sentry%2Bopentelemetry%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hoo_70f539428297572a9e3752da9c315982/node_modules/%40sentry/opentelemetry/src/propagator.ts","../../../node_modules/.pnpm/%40sentry%2Bopentelemetry%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hoo_70f539428297572a9e3752da9c315982/node_modules/%40sentry/opentelemetry/src/trace.ts","../../../node_modules/.pnpm/%40sentry%2Bopentelemetry%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hoo_70f539428297572a9e3752da9c315982/node_modules/%40sentry/opentelemetry/src/utils/suppressTracing.ts","../../../node_modules/.pnpm/%40sentry%2Bopentelemetry%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hoo_70f539428297572a9e3752da9c315982/node_modules/%40sentry/opentelemetry/src/setupEventContextTrace.ts","../../../node_modules/.pnpm/%40sentry%2Bopentelemetry%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hoo_70f539428297572a9e3752da9c315982/node_modules/%40sentry/opentelemetry/src/utils/getTraceData.ts","../../../node_modules/.pnpm/%40sentry%2Bopentelemetry%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hoo_70f539428297572a9e3752da9c315982/node_modules/%40sentry/opentelemetry/src/asyncContextStrategy.ts","../../../node_modules/.pnpm/%40sentry%2Bopentelemetry%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hoo_70f539428297572a9e3752da9c315982/node_modules/%40sentry/opentelemetry/src/contextManager.ts","../../../node_modules/.pnpm/%40sentry%2Bopentelemetry%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hoo_70f539428297572a9e3752da9c315982/node_modules/%40sentry/opentelemetry/src/utils/groupSpansWithParents.ts","../../../node_modules/.pnpm/%40sentry%2Bopentelemetry%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hoo_70f539428297572a9e3752da9c315982/node_modules/%40sentry/opentelemetry/src/utils/mapStatus.ts","../../../node_modules/.pnpm/%40sentry%2Bopentelemetry%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hoo_70f539428297572a9e3752da9c315982/node_modules/%40sentry/opentelemetry/src/spanExporter.ts","../../../node_modules/.pnpm/%40sentry%2Bopentelemetry%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hoo_70f539428297572a9e3752da9c315982/node_modules/%40sentry/opentelemetry/src/spanProcessor.ts","../../../node_modules/.pnpm/%40sentry%2Bopentelemetry%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hoo_70f539428297572a9e3752da9c315982/node_modules/%40sentry/opentelemetry/src/sampler.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/otel/contextManager.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/otel/logger.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/integrations/childProcess.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/integrations/context.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/integrations/contextlines.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/utils/debug.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/integrations/local-variables/common.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/integrations/local-variables/local-variables-async.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/integrations/local-variables/local-variables-sync.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/integrations/local-variables/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/utils/detection.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/integrations/modules.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/utils/errorhandling.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/integrations/onuncaughtexception.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/integrations/onunhandledrejection.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/integrations/processSession.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/integrations/spotlight.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/integrations/systemError.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/proxy/base.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/proxy/parse-proxy-response.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/proxy/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/transports/http.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/utils/spotlight.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/utils/module.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/sdk/api.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/sdk/client.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/sdk/esmLoader.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/sdk/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/sdk/scope.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/utils/createMissingInstrumentationContext.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/utils/ensureIsWrapped.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/integrations/anr/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/logs/capture.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/logs/exports.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/integrations/nodeRuntimeMetrics.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/integrations/winston.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/integrations/pino.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/utils/addOriginToSpan.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/utils/getRequestUrl.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/cron/common.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/cron/cron.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/cron/node-cron.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/cron/node-schedule.ts","../../../node_modules/.pnpm/%40sentry%2Bnode-core%4010.47.0_%40opentelemetry%2Bapi%401.9.1_%40opentelemetry%2Bcontext-async-hooks%402_6bb9c158a6d788145ea4af24b1f9730a/node_modules/%40sentry/node-core/src/cron/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/http.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-undici%400.24.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-undici/src/version.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-undici%400.24.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-undici/src/undici.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-undici%400.24.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-undici/src/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/node-fetch.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-fs%400.33.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-fs/src/version.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-fs%400.33.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-fs/src/constants.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-fs%400.33.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-fs/src/utils.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-fs%400.33.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-fs/src/instrumentation.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-fs%400.33.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-fs/src/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/fs.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-express%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-express/src/enums/ExpressLayerType.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-express%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-express/src/enums/AttributeNames.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-express%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-express/src/internal-types.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-express%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-express/src/utils.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-express%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-express/src/version.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-express%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-express/src/instrumentation.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-express%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-express/src/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/debug-build.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/express.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.212.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/semconvStability.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.212.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/platform/node/instrumentation.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bapi-logs%400.212.0/node_modules/%40opentelemetry/api-logs/src/internal/global-utils.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bapi-logs%400.212.0/node_modules/%40opentelemetry/api-logs/src/ProxyLogger.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bapi-logs%400.212.0/node_modules/%40opentelemetry/api-logs/src/api/logs.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.212.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/platform/node/RequireInTheMiddleSingleton.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.212.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/instrumentationNodeModuleFile.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.212.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/instrumentationNodeModuleDefinition.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bapi-logs%400.212.0/node_modules/%40opentelemetry/api-logs/src/index.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.212.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/autoLoader.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.212.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/index.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.212.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/instrumentation.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bapi-logs%400.212.0/node_modules/%40opentelemetry/api-logs/src/ProxyLoggerProvider.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.212.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/shimmer.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bapi-logs%400.212.0/node_modules/%40opentelemetry/api-logs/src/NoopLogger.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.212.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/semver.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bapi-logs%400.212.0/node_modules/%40opentelemetry/api-logs/src/NoopLoggerProvider.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.212.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/platform/node/ModuleNameTrie.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.212.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/utils.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.212.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/autoLoaderUtils.ts","../../../node_modules/.pnpm/balanced-match%404.0.4/node_modules/balanced-match/src/index.ts","../../../node_modules/.pnpm/brace-expansion%405.0.5/node_modules/brace-expansion/src/index.ts","../../../node_modules/.pnpm/minimatch%4010.2.5/node_modules/minimatch/src/assert-valid-pattern.ts","../../../node_modules/.pnpm/minimatch%4010.2.5/node_modules/minimatch/src/brace-expressions.ts","../../../node_modules/.pnpm/minimatch%4010.2.5/node_modules/minimatch/src/unescape.ts","../../../node_modules/.pnpm/minimatch%4010.2.5/node_modules/minimatch/src/ast.ts","../../../node_modules/.pnpm/minimatch%4010.2.5/node_modules/minimatch/src/escape.ts","../../../node_modules/.pnpm/minimatch%4010.2.5/node_modules/minimatch/src/index.ts","../../../node_modules/.pnpm/%40fastify%2Botel%400.18.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40fastify/otel/index.js","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/fastify/v3/enums/AttributeNames.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/fastify/v3/constants.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/fastify/v3/utils.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/fastify/v3/instrumentation.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/fastify/index.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-graphql%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-graphql/src/enum.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-graphql%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-graphql/src/enums/AttributeNames.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-graphql%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-graphql/src/symbols.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-graphql%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-graphql/src/internal-types.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-graphql%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-graphql/src/utils.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-graphql%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-graphql/src/version.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-graphql%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-graphql/src/instrumentation.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-graphql%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-graphql/src/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/graphql.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-kafkajs%400.23.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-kafkajs/src/internal-types.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-kafkajs%400.23.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-kafkajs/src/propagator.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-kafkajs%400.23.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-kafkajs/src/semconv.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-kafkajs%400.23.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-kafkajs/src/version.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-kafkajs%400.23.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-kafkajs/src/instrumentation.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-kafkajs%400.23.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-kafkajs/src/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/kafka.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-lru-memoizer%400.58.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-lru-memoizer/src/version.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-lru-memoizer%400.58.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-lru-memoizer/src/instrumentation.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-lru-memoizer%400.58.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-lru-memoizer/src/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/lrumemoizer.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-mongodb%400.67.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-mongodb/src/semconv.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-mongodb%400.67.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-mongodb/src/internal-types.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-mongodb%400.67.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-mongodb/src/version.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-mongodb%400.67.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-mongodb/src/instrumentation.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-mongodb%400.67.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-mongodb/src/types.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-mongodb%400.67.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-mongodb/src/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/mongo.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-mongoose%400.60.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-mongoose/src/semconv.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-mongoose%400.60.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-mongoose/src/utils.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-mongoose%400.60.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-mongoose/src/version.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-mongoose%400.60.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-mongoose/src/mongoose.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-mongoose%400.60.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-mongoose/src/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/mongoose.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-mysql%400.60.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-mysql/src/semconv.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-mysql%400.60.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-mysql/src/AttributeNames.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-mysql%400.60.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-mysql/src/utils.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-mysql%400.60.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-mysql/src/version.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-mysql%400.60.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-mysql/src/instrumentation.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-mysql%400.60.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-mysql/src/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/mysql.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-mysql2%400.60.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-mysql2/src/semconv.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bsql-common%400.41.2_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/sql-common/src/index.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-mysql2%400.60.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-mysql2/src/utils.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-mysql2%400.60.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-mysql2/src/version.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-mysql2%400.60.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-mysql2/src/instrumentation.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-mysql2%400.60.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-mysql2/src/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/mysql2.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-ioredis%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-ioredis/src/semconv.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-ioredis%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-ioredis/src/utils.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bredis-common%400.38.2/node_modules/%40opentelemetry/redis-common/src/index.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-ioredis%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-ioredis/src/version.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-ioredis%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-ioredis/src/instrumentation.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-ioredis%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-ioredis/src/index.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-redis%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-redis/src/version.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-redis%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-redis/src/v2-v3/utils.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-redis%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-redis/src/semconv.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-redis%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-redis/src/v2-v3/instrumentation.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-redis%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-redis/src/v4-v5/utils.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-redis%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-redis/src/v4-v5/instrumentation.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-redis%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-redis/src/redis.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-redis%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-redis/src/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/utils/redisCache.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/redis.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-pg%400.66.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-pg/src/internal-types.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-pg%400.66.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-pg/src/enums/AttributeNames.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-pg%400.66.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-pg/src/semconv.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-pg%400.66.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-pg/src/enums/SpanNames.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-pg%400.66.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-pg/src/utils.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-pg%400.66.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-pg/src/version.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-pg%400.66.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-pg/src/instrumentation.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-pg%400.66.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-pg/src/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/postgres.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/postgresjs.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.207.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/semconvStability.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.207.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/platform/node/RequireInTheMiddleSingleton.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bapi-logs%400.207.0/node_modules/%40opentelemetry/api-logs/src/internal/global-utils.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.207.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/autoLoader.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bapi-logs%400.207.0/node_modules/%40opentelemetry/api-logs/src/api/logs.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bapi-logs%400.207.0/node_modules/%40opentelemetry/api-logs/src/ProxyLogger.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.207.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/index.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bapi-logs%400.207.0/node_modules/%40opentelemetry/api-logs/src/NoopLoggerProvider.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bapi-logs%400.207.0/node_modules/%40opentelemetry/api-logs/src/index.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.207.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/instrumentation.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.207.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/instrumentationNodeModuleFile.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bapi-logs%400.207.0/node_modules/%40opentelemetry/api-logs/src/ProxyLoggerProvider.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.207.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/platform/node/instrumentation.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.207.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/platform/node/ModuleNameTrie.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.207.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/instrumentationNodeModuleDefinition.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bapi-logs%400.207.0/node_modules/%40opentelemetry/api-logs/src/platform/node/globalThis.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.207.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/shimmer.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.207.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/semver.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bapi-logs%400.207.0/node_modules/%40opentelemetry/api-logs/src/NoopLogger.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.207.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/utils.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation%400.207.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation/src/autoLoaderUtils.ts","../../../node_modules/.pnpm/%40prisma%2Binstrumentation%407.6.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40prisma/instrumentation/dist/index.js","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/prisma.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-hapi%400.60.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-hapi/src/version.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-hapi%400.60.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-hapi/src/internal-types.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-hapi%400.60.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-hapi/src/semconv.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-hapi%400.60.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-hapi/src/enums/AttributeNames.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-hapi%400.60.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-hapi/src/utils.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-hapi%400.60.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-hapi/src/instrumentation.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-hapi%400.60.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-hapi/src/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/hapi/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/hono/constants.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/hono/instrumentation.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/hono/index.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-koa%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-koa/src/types.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-koa%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-koa/src/version.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-koa%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-koa/src/enums/AttributeNames.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-koa%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-koa/src/utils.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-koa%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-koa/src/internal-types.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-koa%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-koa/src/instrumentation.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-koa%400.62.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-koa/src/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/koa.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-connect%400.57.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-connect/src/enums/AttributeNames.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-connect%400.57.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-connect/src/version.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-connect%400.57.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-connect/src/internal-types.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-connect%400.57.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-connect/src/utils.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-connect%400.57.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-connect/src/instrumentation.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-connect%400.57.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-connect/src/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/connect.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-knex%400.58.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-knex/src/version.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-knex%400.58.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-knex/src/constants.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-knex%400.58.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-knex/src/semconv.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-knex%400.58.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-knex/src/utils.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-knex%400.58.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-knex/src/instrumentation.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-knex%400.58.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-knex/src/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/knex.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-tedious%400.33.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-tedious/src/semconv.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-tedious%400.33.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-tedious/src/utils.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-tedious%400.33.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-tedious/src/version.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-tedious%400.33.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-tedious/src/instrumentation.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-tedious%400.33.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-tedious/src/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/tedious.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-generic-pool%400.57.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-generic-pool/src/version.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-generic-pool%400.57.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-generic-pool/src/instrumentation.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-generic-pool%400.57.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-generic-pool/src/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/genericPool.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-dataloader%400.31.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-dataloader/src/version.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-dataloader%400.31.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-dataloader/src/instrumentation.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-dataloader%400.31.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-dataloader/src/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/dataloader.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-amqplib%400.61.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-amqplib/src/semconv.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-amqplib%400.61.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-amqplib/src/semconv-obsolete.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-amqplib%400.61.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-amqplib/src/types.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-amqplib%400.61.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-amqplib/src/utils.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-amqplib%400.61.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-amqplib/src/version.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-amqplib%400.61.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-amqplib/src/amqplib.ts","../../../node_modules/.pnpm/%40opentelemetry%2Binstrumentation-amqplib%400.61.0_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/instrumentation-amqplib/src/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/amqplib.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/vercelai/constants.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/vercelai/instrumentation.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/vercelai/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/openai/instrumentation.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/openai/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/anthropic-ai/instrumentation.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/anthropic-ai/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/google-genai/instrumentation.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/google-genai/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/langchain/instrumentation.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/langchain/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/langgraph/instrumentation.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/langgraph/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/featureFlagShims/launchDarkly.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/featureFlagShims/openFeature.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/featureFlagShims/statsig.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/featureFlagShims/unleash.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/featureFlagShims/growthbook.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/firebase/otel/patches/firestore.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/firebase/otel/patches/functions.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/firebase/otel/firebaseInstrumentation.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/firebase/firebase.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/integrations/tracing/index.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bresources%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/resources/src/detect-resources.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bresources%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/resources/src/detectors/EnvDetector.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bresources%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/resources/src/semconv.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bresources%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/resources/src/detectors/platform/node/machine-id/getMachineId.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bresources%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/resources/src/detectors/platform/node/utils.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bresources%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/resources/src/detectors/platform/node/HostDetector.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bresources%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/resources/src/index.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bresources%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/resources/src/detectors/platform/node/OSDetector.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bresources%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/resources/src/detectors/platform/node/ProcessDetector.ts","../../../node_modules/.pnpm/%40opentelemetry%2Bresources%402.6.1_%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/resources/src/detectors/platform/node/ServiceInstanceIdDetector.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/sdk/initOtel.ts","../../../node_modules/.pnpm/%40sentry%2Bnode%4010.47.0/node_modules/%40sentry/node/src/sdk/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/config/manifest/createRouteManifest.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/config/withSentryConfig/tunnel.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/config/withSentryConfig/getFinalConfigObjectUtils.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/config/withSentryConfig/getFinalConfigObject.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/config/withSentryConfig/index.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/debug-build.ts","../../../node_modules/.pnpm/stacktrace-parser%400.1.11/node_modules/stacktrace-parser/dist/stack-trace-parser.esm.js","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/devErrorSymbolicationEventProcessor.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/getVercelEnv.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/nextSpanAttributes.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/span-attributes-with-logic-attached.ts","../../../node_modules/.pnpm/%40swc%2Bhelpers%400.5.15/node_modules/%40swc/helpers/cjs/_interop_require_default.cjs","../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/modern-browserslist-target.js","../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/entry-constants.ts","../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/constants.ts","../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/constants.js","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/utils/isBuild.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/utils/responseEnd.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/utils/urls.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/utils/setUrlProcessingMetadata.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/server/distDirRewriteFramesIntegration.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/utils/addHeadersAsAttributes.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/utils/dropMiddlewareTunnelRequests.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/utils/tracingUtils.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/server/vercelCronsMonitoring.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/server/vercelQueuesMonitoring.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/server/handleOnSpanStart.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/server/prepareSafeIdGeneratorContext.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/pages-router-instrumentation/_error.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/utils/isUseCacheFunction.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/utils/nextSpan.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/utils/wrapperUtils.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/pages-router-instrumentation/wrapGetStaticPropsWithSentry.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/pages-router-instrumentation/wrapGetInitialPropsWithSentry.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/pages-router-instrumentation/wrapAppGetInitialPropsWithSentry.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/pages-router-instrumentation/wrapDocumentGetInitialPropsWithSentry.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/pages-router-instrumentation/wrapErrorGetInitialPropsWithSentry.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/pages-router-instrumentation/wrapGetServerSidePropsWithSentry.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/nextNavigationErrorUtils.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/wrapServerComponentWithSentry.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/wrapRouteHandlerWithSentry.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/pages-router-instrumentation/wrapApiHandlerWithSentryVercelCrons.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/wrapMiddlewareWithSentry.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/pages-router-instrumentation/wrapPageComponentWithSentry.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/wrapGenerationFunctionWithSentry.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/withServerActionInstrumentation.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/captureRequestError.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/common/pages-router-instrumentation/wrapApiHandlerWithSentry.ts","../../../node_modules/.pnpm/%40sentry%2Bnextjs%4010.47.0_%40opentelemetry%2Bcontext-async-hooks%402.6.1_%40opentelemetry%2Bapi%401.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/%40sentry/nextjs/src/server/index.ts"],"sourcesContent":["declare const __DEBUG_BUILD__: boolean;\n\n/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nexport const DEBUG_BUILD = __DEBUG_BUILD__;\n","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the `debug` singleton, or b) put your function elsewhere.\n *\n * Note: This file was originally called `global.ts`, but was changed to unblock users which might be doing\n * string replaces with bundlers like Vite for `global` (would break imports that rely on importing from utils/src/global).\n *\n * Why worldwide?\n *\n * Why not?\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { Carrier } from '../carrier';\nimport type { SdkSource } from './env';\n\n/** Internal global with common properties and Sentry extensions */\nexport type InternalGlobal = {\n navigator?: { userAgent?: string; maxTouchPoints?: number };\n console: Console;\n PerformanceObserver?: any;\n Sentry?: any;\n onerror?: {\n (event: object | string, source?: string, lineno?: number, colno?: number, error?: Error): any;\n __SENTRY_INSTRUMENTED__?: true;\n };\n onunhandledrejection?: {\n (event: unknown): boolean;\n __SENTRY_INSTRUMENTED__?: true;\n };\n SENTRY_ENVIRONMENT?: string;\n SENTRY_DSN?: string;\n SENTRY_RELEASE?: {\n id?: string;\n };\n SENTRY_SDK_SOURCE?: SdkSource;\n /**\n * Debug IDs are indirectly injected by Sentry CLI or bundler plugins to directly reference a particular source map\n * for resolving of a source file. The injected code will place an entry into the record for each loaded bundle/JS\n * file.\n */\n _sentryDebugIds?: Record;\n /**\n * Native debug IDs implementation (e.g., from Vercel).\n * This uses the same format as _sentryDebugIds but with a different global name.\n * Keys are `error.stack` strings, values are debug IDs.\n */\n _debugIds?: Record;\n /**\n * Raw module metadata that is injected by bundler plugins.\n *\n * Keys are `error.stack` strings, values are the metadata.\n */\n _sentryModuleMetadata?: Record;\n _sentryEsmLoaderHookRegistered?: boolean;\n} & Carrier;\n\n/** Get's the global object for the current JavaScript runtime */\nexport const GLOBAL_OBJ = globalThis as unknown as InternalGlobal;\n","// This is a magic string replaced by rollup\ndeclare const __SENTRY_SDK_VERSION__: string;\n\nexport const SDK_VERSION = typeof __SENTRY_SDK_VERSION__ === 'string' ? __SENTRY_SDK_VERSION__ : '0.0.0-unknown.0';\n","import type { AsyncContextStack } from './asyncContext/stackStrategy';\nimport type { AsyncContextStrategy } from './asyncContext/types';\nimport type { Client } from './client';\nimport type { Scope } from './scope';\nimport type { SerializedLog } from './types-hoist/log';\nimport type { SerializedMetric } from './types-hoist/metric';\nimport { SDK_VERSION } from './utils/version';\nimport { GLOBAL_OBJ } from './utils/worldwide';\n\n/**\n * An object that contains globally accessible properties and maintains a scope stack.\n * @hidden\n */\nexport interface Carrier {\n __SENTRY__?: VersionedCarrier;\n}\n\ntype VersionedCarrier = {\n version?: string;\n} & Record, SentryCarrier>;\n\nexport interface SentryCarrier {\n acs?: AsyncContextStrategy;\n stack?: AsyncContextStack;\n\n globalScope?: Scope;\n defaultIsolationScope?: Scope;\n defaultCurrentScope?: Scope;\n loggerSettings?: { enabled: boolean };\n /**\n * A map of Sentry clients to their log buffers.\n * This is used to store logs that are sent to Sentry.\n */\n clientToLogBufferMap?: WeakMap>;\n\n /**\n * A map of Sentry clients to their metric buffers.\n * This is used to store metrics that are sent to Sentry.\n */\n clientToMetricBufferMap?: WeakMap>;\n\n /** Overwrites TextEncoder used in `@sentry/core`, need for `react-native@0.73` and older */\n encodePolyfill?: (input: string) => Uint8Array;\n /** Overwrites TextDecoder used in `@sentry/core`, need for `react-native@0.73` and older */\n decodePolyfill?: (input: Uint8Array) => string;\n}\n\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nexport function getMainCarrier(): Carrier {\n // This ensures a Sentry carrier exists\n getSentryCarrier(GLOBAL_OBJ);\n return GLOBAL_OBJ;\n}\n\n/** Will either get the existing sentry carrier, or create a new one. */\nexport function getSentryCarrier(carrier: Carrier): SentryCarrier {\n const __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n\n // For now: First SDK that sets the .version property wins\n __SENTRY__.version = __SENTRY__.version || SDK_VERSION;\n\n // Intentionally populating and returning the version of \"this\" SDK instance\n // rather than what's set in .version so that \"this\" SDK always gets its carrier\n return (__SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {});\n}\n\n/**\n * Returns a global singleton contained in the global `__SENTRY__[]` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `GLOBAL_OBJ`'s return value\n * @returns the singleton\n */\nexport function getGlobalSingleton(\n name: Prop,\n creator: () => NonNullable,\n obj = GLOBAL_OBJ,\n): NonNullable {\n const __SENTRY__ = (obj.__SENTRY__ = obj.__SENTRY__ || {});\n const carrier = (__SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {});\n // Note: We do not want to set `carrier.version` here, as this may be called before any `init` is called, e.g. for the default scopes\n return carrier[name] || (carrier[name] = creator());\n}\n","import { getGlobalSingleton } from '../carrier';\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { ConsoleLevel } from '../types-hoist/instrument';\nimport { GLOBAL_OBJ } from './worldwide';\n\nexport interface SentryDebugLogger {\n disable(): void;\n enable(): void;\n isEnabled(): boolean;\n log(...args: Parameters): void;\n warn(...args: Parameters): void;\n error(...args: Parameters): void;\n}\n\nexport const CONSOLE_LEVELS: readonly ConsoleLevel[] = [\n 'debug',\n 'info',\n 'warn',\n 'error',\n 'log',\n 'assert',\n 'trace',\n] as const;\n\n/** Prefix for logging strings */\nconst PREFIX = 'Sentry Logger ';\n\n/** This may be mutated by the console instrumentation. */\nexport const originalConsoleMethods: Partial<{\n log(...args: Parameters): void;\n info(...args: Parameters): void;\n warn(...args: Parameters): void;\n error(...args: Parameters): void;\n debug(...args: Parameters): void;\n assert(...args: Parameters): void;\n trace(...args: Parameters): void;\n}> = {};\n\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nexport function consoleSandbox(callback: () => T): T {\n if (!('console' in GLOBAL_OBJ)) {\n return callback();\n }\n\n const console = GLOBAL_OBJ.console;\n const wrappedFuncs: Partial void>> = {};\n\n const wrappedLevels = Object.keys(originalConsoleMethods) as ConsoleLevel[];\n\n // Restore all wrapped console methods\n wrappedLevels.forEach(level => {\n const originalConsoleMethod = originalConsoleMethods[level];\n wrappedFuncs[level] = console[level] as (...args: unknown[]) => void;\n console[level] = originalConsoleMethod as (...args: unknown[]) => void;\n });\n\n try {\n return callback();\n } finally {\n // Revert restoration to wrapped state\n wrappedLevels.forEach(level => {\n console[level] = wrappedFuncs[level] as (...args: unknown[]) => void;\n });\n }\n}\n\nfunction enable(): void {\n _getLoggerSettings().enabled = true;\n}\n\nfunction disable(): void {\n _getLoggerSettings().enabled = false;\n}\n\nfunction isEnabled(): boolean {\n return _getLoggerSettings().enabled;\n}\n\nfunction log(...args: Parameters): void {\n _maybeLog('log', ...args);\n}\n\nfunction warn(...args: Parameters): void {\n _maybeLog('warn', ...args);\n}\n\nfunction error(...args: Parameters): void {\n _maybeLog('error', ...args);\n}\n\nfunction _maybeLog(level: ConsoleLevel, ...args: Parameters<(typeof console)[typeof level]>): void {\n if (!DEBUG_BUILD) {\n return;\n }\n\n if (isEnabled()) {\n consoleSandbox(() => {\n GLOBAL_OBJ.console[level](`${PREFIX}[${level}]:`, ...args);\n });\n }\n}\n\nfunction _getLoggerSettings(): { enabled: boolean } {\n if (!DEBUG_BUILD) {\n return { enabled: false };\n }\n\n return getGlobalSingleton('loggerSettings', () => ({ enabled: false }));\n}\n\n/**\n * This is a logger singleton which either logs things or no-ops if logging is not enabled.\n */\nexport const debug = {\n /** Enable logging. */\n enable,\n /** Disable logging. */\n disable,\n /** Check if logging is enabled. */\n isEnabled,\n /** Log a message. */\n log,\n /** Log a warning. */\n warn,\n /** Log an error. */\n error,\n} satisfies SentryDebugLogger;\n","import type { Event } from '../types-hoist/event';\nimport type { StackFrame } from '../types-hoist/stackframe';\nimport type { StackLineParser, StackParser } from '../types-hoist/stacktrace';\nimport type { VNode, VueViewModel } from '../types-hoist/vue';\n\nconst STACKTRACE_FRAME_LIMIT = 50;\nexport const UNKNOWN_FUNCTION = '?';\n// Used to sanitize webpack (error: *) wrapped stack errors\nconst WEBPACK_ERROR_REGEXP = /\\(error: (.*)\\)/;\nconst STRIP_FRAME_REGEXP = /captureMessage|captureException/;\n\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nexport function createStackParser(...parsers: StackLineParser[]): StackParser {\n const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map(p => p[1]);\n\n return (stack: string, skipFirstLines: number = 0, framesToPop: number = 0): StackFrame[] => {\n const frames: StackFrame[] = [];\n const lines = stack.split('\\n');\n\n for (let i = skipFirstLines; i < lines.length; i++) {\n let line = lines[i] as string;\n // Truncate lines over 1kb because many of the regular expressions use\n // backtracking which results in run time that increases exponentially\n // with input size. Huge strings can result in hangs/Denial of Service:\n // https://github.com/getsentry/sentry-javascript/issues/2286\n if (line.length > 1024) {\n line = line.slice(0, 1024);\n }\n\n // https://github.com/getsentry/sentry-javascript/issues/5459\n // Remove webpack (error: *) wrappers\n const cleanedLine = WEBPACK_ERROR_REGEXP.test(line) ? line.replace(WEBPACK_ERROR_REGEXP, '$1') : line;\n\n // https://github.com/getsentry/sentry-javascript/issues/7813\n // Skip Error: lines\n if (cleanedLine.match(/\\S*Error: /)) {\n continue;\n }\n\n for (const parser of sortedParsers) {\n const frame = parser(cleanedLine);\n\n if (frame) {\n frames.push(frame);\n break;\n }\n }\n\n if (frames.length >= STACKTRACE_FRAME_LIMIT + framesToPop) {\n break;\n }\n }\n\n return stripSentryFramesAndReverse(frames.slice(framesToPop));\n };\n}\n\n/**\n * Gets a stack parser implementation from Options.stackParser\n * @see Options\n *\n * If options contains an array of line parsers, it is converted into a parser\n */\nexport function stackParserFromStackParserOptions(stackParser: StackParser | StackLineParser[]): StackParser {\n if (Array.isArray(stackParser)) {\n return createStackParser(...stackParser);\n }\n return stackParser;\n}\n\n/**\n * Removes Sentry frames from the top and bottom of the stack if present and enforces a limit of max number of frames.\n * Assumes stack input is ordered from top to bottom and returns the reverse representation so call site of the\n * function that caused the crash is the last frame in the array.\n * @hidden\n */\nexport function stripSentryFramesAndReverse(stack: ReadonlyArray): StackFrame[] {\n if (!stack.length) {\n return [];\n }\n\n const localStack = Array.from(stack);\n\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (/sentryWrapped/.test(getLastStackFrame(localStack).function || '')) {\n localStack.pop();\n }\n\n // Reversing in the middle of the procedure allows us to just pop the values off the stack\n localStack.reverse();\n\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (STRIP_FRAME_REGEXP.test(getLastStackFrame(localStack).function || '')) {\n localStack.pop();\n\n // When using synthetic events, we will have a 2 levels deep stack, as `new Error('Sentry syntheticException')`\n // is produced within the scope itself, making it:\n //\n // Sentry.captureException()\n // scope.captureException()\n //\n // instead of just the top `Sentry` call itself.\n // This forces us to possibly strip an additional frame in the exact same was as above.\n if (STRIP_FRAME_REGEXP.test(getLastStackFrame(localStack).function || '')) {\n localStack.pop();\n }\n }\n\n return localStack.slice(0, STACKTRACE_FRAME_LIMIT).map(frame => ({\n ...frame,\n filename: frame.filename || getLastStackFrame(localStack).filename,\n function: frame.function || UNKNOWN_FUNCTION,\n }));\n}\n\nfunction getLastStackFrame(arr: StackFrame[]): StackFrame {\n return arr[arr.length - 1] || {};\n}\n\nconst defaultFunctionName = '';\n\n/**\n * Safely extract function name from itself\n */\nexport function getFunctionName(fn: unknown): string {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n } catch {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n\n/**\n * Get's stack frames from an event without needing to check for undefined properties.\n */\nexport function getFramesFromEvent(event: Event): StackFrame[] | undefined {\n const exception = event.exception;\n\n if (exception) {\n const frames: StackFrame[] = [];\n try {\n // @ts-expect-error Object could be undefined\n exception.values.forEach(value => {\n // @ts-expect-error Value could be undefined\n if (value.stacktrace.frames) {\n // @ts-expect-error Value could be undefined\n frames.push(...value.stacktrace.frames);\n }\n });\n return frames;\n } catch {\n return undefined;\n }\n }\n return undefined;\n}\n\n/**\n * Get the internal name of an internal Vue value, to represent it in a stacktrace.\n *\n * @param value The value to get the internal name of.\n */\nexport function getVueInternalName(value: VueViewModel | VNode): string {\n // Check if it's a VNode (has __v_isVNode) or a component instance (has _isVue/__isVue)\n const isVNode = '__v_isVNode' in value && value.__v_isVNode;\n\n return isVNode ? '[VueVNode]' : '[VueViewModel]';\n}\n\n/**\n * Normalizes stack line paths by removing file:// prefix and leading slashes for Windows paths\n */\nexport function normalizeStackTracePath(path: string | undefined): string | undefined {\n let filename = path?.startsWith('file://') ? path.slice(7) : path;\n // If it's a Windows path, trim the leading slash so that `/C:/foo` becomes `C:/foo`\n if (filename?.match(/\\/[A-Z]:/)) {\n filename = filename.slice(1);\n }\n return filename;\n}\n","import { DEBUG_BUILD } from '../debug-build';\nimport { debug } from '../utils/debug-logger';\nimport { getFunctionName } from '../utils/stacktrace';\n\nexport type InstrumentHandlerType =\n | 'console'\n | 'dom'\n | 'fetch'\n | 'fetch-body-resolved'\n | 'history'\n | 'xhr'\n | 'error'\n | 'unhandledrejection';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type InstrumentHandlerCallback = (data: any) => void;\n\n// We keep the handlers globally\nconst handlers: { [key in InstrumentHandlerType]?: InstrumentHandlerCallback[] } = {};\nconst instrumented: { [key in InstrumentHandlerType]?: boolean } = {};\n\n/** Add a handler function. */\nexport function addHandler(type: InstrumentHandlerType, handler: InstrumentHandlerCallback): void {\n handlers[type] = handlers[type] || [];\n handlers[type].push(handler);\n}\n\n/**\n * Reset all instrumentation handlers.\n * This can be used by tests to ensure we have a clean slate of instrumentation handlers.\n */\nexport function resetInstrumentationHandlers(): void {\n Object.keys(handlers).forEach(key => {\n handlers[key as InstrumentHandlerType] = undefined;\n });\n}\n\n/** Maybe run an instrumentation function, unless it was already called. */\nexport function maybeInstrument(type: InstrumentHandlerType, instrumentFn: () => void): void {\n if (!instrumented[type]) {\n instrumented[type] = true;\n try {\n instrumentFn();\n } catch (e) {\n DEBUG_BUILD && debug.error(`Error while instrumenting ${type}`, e);\n }\n }\n}\n\n/** Trigger handlers for a given instrumentation type. */\nexport function triggerHandlers(type: InstrumentHandlerType, data: unknown): void {\n const typeHandlers = type && handlers[type];\n if (!typeHandlers) {\n return;\n }\n\n for (const handler of typeHandlers) {\n try {\n handler(data);\n } catch (e) {\n DEBUG_BUILD &&\n debug.error(\n `Error while triggering instrumentation handler.\\nType: ${type}\\nName: ${getFunctionName(handler)}\\nError:`,\n e,\n );\n }\n }\n}\n","import type { HandlerDataError } from '../types-hoist/instrument';\nimport { GLOBAL_OBJ } from '../utils/worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers';\n\nlet _oldOnErrorHandler: (typeof GLOBAL_OBJ)['onerror'] | null = null;\n\n/**\n * Add an instrumentation handler for when an error is captured by the global error handler.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addGlobalErrorInstrumentationHandler(handler: (data: HandlerDataError) => void): void {\n const type = 'error';\n addHandler(type, handler);\n maybeInstrument(type, instrumentError);\n}\n\nfunction instrumentError(): void {\n _oldOnErrorHandler = GLOBAL_OBJ.onerror;\n\n // Note: The reason we are doing window.onerror instead of window.addEventListener('error')\n // is that we are using this handler in the Loader Script, to handle buffered errors consistently\n GLOBAL_OBJ.onerror = function (\n msg: string | object,\n url?: string,\n line?: number,\n column?: number,\n error?: Error,\n ): boolean {\n const handlerData: HandlerDataError = {\n column,\n error,\n line,\n msg,\n url,\n };\n triggerHandlers('error', handlerData);\n\n if (_oldOnErrorHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n\n return false;\n };\n\n GLOBAL_OBJ.onerror.__SENTRY_INSTRUMENTED__ = true;\n}\n","import type { HandlerDataUnhandledRejection } from '../types-hoist/instrument';\nimport { GLOBAL_OBJ } from '../utils/worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers';\n\nlet _oldOnUnhandledRejectionHandler: (typeof GLOBAL_OBJ)['onunhandledrejection'] | null = null;\n\n/**\n * Add an instrumentation handler for when an unhandled promise rejection is captured.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addGlobalUnhandledRejectionInstrumentationHandler(\n handler: (data: HandlerDataUnhandledRejection) => void,\n): void {\n const type = 'unhandledrejection';\n addHandler(type, handler);\n maybeInstrument(type, instrumentUnhandledRejection);\n}\n\nfunction instrumentUnhandledRejection(): void {\n _oldOnUnhandledRejectionHandler = GLOBAL_OBJ.onunhandledrejection;\n\n // Note: The reason we are doing window.onunhandledrejection instead of window.addEventListener('unhandledrejection')\n // is that we are using this handler in the Loader Script, to handle buffered rejections consistently\n GLOBAL_OBJ.onunhandledrejection = function (e: unknown): boolean {\n const handlerData: HandlerDataUnhandledRejection = e;\n triggerHandlers('unhandledrejection', handlerData);\n\n if (_oldOnUnhandledRejectionHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n\n return true;\n };\n\n GLOBAL_OBJ.onunhandledrejection.__SENTRY_INSTRUMENTED__ = true;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { Primitive } from '../types-hoist/misc';\nimport type { ParameterizedString } from '../types-hoist/parameterize';\nimport type { PolymorphicEvent } from '../types-hoist/polymorphics';\nimport type { VNode, VueViewModel } from '../types-hoist/vue';\n\n// eslint-disable-next-line @typescript-eslint/unbound-method\nconst objectToString = Object.prototype.toString;\n\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isError(wat: unknown): wat is Error {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n case '[object WebAssembly.Exception]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n/**\n * Checks whether given value is an instance of the given built-in class.\n *\n * @param wat The value to be checked\n * @param className\n * @returns A boolean representing the result.\n */\nfunction isBuiltin(wat: unknown, className: string): boolean {\n return objectToString.call(wat) === `[object ${className}]`;\n}\n\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isErrorEvent(wat: unknown): boolean {\n return isBuiltin(wat, 'ErrorEvent');\n}\n\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMError(wat: unknown): boolean {\n return isBuiltin(wat, 'DOMError');\n}\n\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMException(wat: unknown): boolean {\n return isBuiltin(wat, 'DOMException');\n}\n\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isString(wat: unknown): wat is string {\n return isBuiltin(wat, 'String');\n}\n\n/**\n * Checks whether given string is parameterized\n * {@link isParameterizedString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isParameterizedString(wat: unknown): wat is ParameterizedString {\n return (\n typeof wat === 'object' &&\n wat !== null &&\n '__sentry_template_string__' in wat &&\n '__sentry_template_values__' in wat\n );\n}\n\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPrimitive(wat: unknown): wat is Primitive {\n return wat === null || isParameterizedString(wat) || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n\n/**\n * Checks whether given value's type is an object literal, or a class instance.\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPlainObject(wat: unknown): wat is Record {\n return isBuiltin(wat, 'Object');\n}\n\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isEvent(wat: unknown): wat is PolymorphicEvent {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isElement(wat: unknown): boolean {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isRegExp(wat: unknown): wat is RegExp {\n return isBuiltin(wat, 'RegExp');\n}\n\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nexport function isThenable(wat: any): wat is PromiseLike {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat?.then && typeof wat.then === 'function');\n}\n\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isSyntheticEvent(wat: unknown): boolean {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\n// TODO: fix in v11, convert any to unknown\n// export function isInstanceOf(wat: unknown, base: { new (...args: any[]): T }): wat is T {\nexport function isInstanceOf(wat: any, base: any): wat is T {\n try {\n return wat instanceof base;\n } catch {\n return false;\n }\n}\n\n/**\n * Checks whether given value's type is a Vue ViewModel or a VNode.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isVueViewModel(wat: unknown): wat is VueViewModel | VNode {\n // Not using Object.prototype.toString because in Vue 3 it would read the instance's Symbol(Symbol.toStringTag) property.\n // We also need to check for __v_isVNode because Vue 3 component render instances have an internal __v_isVNode property.\n return !!(\n typeof wat === 'object' &&\n wat !== null &&\n ((wat as VueViewModel).__isVue || (wat as VueViewModel)._isVue || (wat as { __v_isVNode?: boolean }).__v_isVNode)\n );\n}\n\n/**\n * Checks whether the given parameter is a Standard Web API Request instance.\n *\n * Returns false if Request is not available in the current runtime.\n */\nexport function isRequest(request: unknown): request is Request {\n return typeof Request !== 'undefined' && isInstanceOf(request, Request);\n}\n","import { isString } from './is';\nimport { GLOBAL_OBJ } from './worldwide';\n\nconst WINDOW = GLOBAL_OBJ as unknown as Window;\n\nconst DEFAULT_MAX_STRING_LENGTH = 80;\n\ntype SimpleNode = {\n parentNode: SimpleNode;\n} | null;\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nexport function htmlTreeAsString(\n elem: unknown,\n options: string[] | { keyAttrs?: string[]; maxStringLength?: number } = {},\n): string {\n if (!elem) {\n return '';\n }\n\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n let currentElem = elem as SimpleNode;\n const MAX_TRAVERSE_HEIGHT = 5;\n const out = [];\n let height = 0;\n let len = 0;\n const separator = ' > ';\n const sepLength = separator.length;\n let nextStr;\n const keyAttrs = Array.isArray(options) ? options : options.keyAttrs;\n const maxStringLength = (!Array.isArray(options) && options.maxStringLength) || DEFAULT_MAX_STRING_LENGTH;\n\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds maxStringLength\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= maxStringLength)) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n\n return out.reverse().join(separator);\n } catch {\n return '';\n }\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el: unknown, keyAttrs?: string[]): string {\n const elem = el as {\n tagName?: string;\n id?: string;\n className?: string;\n getAttribute(key: string): string;\n };\n\n const out = [];\n\n if (!elem?.tagName) {\n return '';\n }\n\n // @ts-expect-error WINDOW has HTMLElement\n if (WINDOW.HTMLElement) {\n // If using the component name annotation plugin, this value may be available on the DOM node\n if (elem instanceof HTMLElement && elem.dataset) {\n if (elem.dataset['sentryComponent']) {\n return elem.dataset['sentryComponent'];\n }\n if (elem.dataset['sentryElement']) {\n return elem.dataset['sentryElement'];\n }\n }\n }\n\n out.push(elem.tagName.toLowerCase());\n\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n const keyAttrPairs = keyAttrs?.length\n ? keyAttrs.filter(keyAttr => elem.getAttribute(keyAttr)).map(keyAttr => [keyAttr, elem.getAttribute(keyAttr)])\n : null;\n\n if (keyAttrPairs?.length) {\n keyAttrPairs.forEach(keyAttrPair => {\n out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n });\n } else {\n if (elem.id) {\n out.push(`#${elem.id}`);\n }\n\n const className = elem.className;\n if (className && isString(className)) {\n const classes = className.split(/\\s+/);\n for (const c of classes) {\n out.push(`.${c}`);\n }\n }\n }\n for (const k of ['aria-label', 'type', 'name', 'title', 'alt']) {\n const attr = elem.getAttribute(k);\n if (attr) {\n out.push(`[${k}=\"${attr}\"]`);\n }\n }\n\n return out.join('');\n}\n\n/**\n * A safe form of location.href\n */\nexport function getLocationHref(): string {\n try {\n return WINDOW.document.location.href;\n } catch {\n return '';\n }\n}\n\n/**\n * Given a DOM element, traverses up the tree until it finds the first ancestor node\n * that has the `data-sentry-component` or `data-sentry-element` attribute with `data-sentry-component` taking\n * precedence. This attribute is added at build-time by projects that have the component name annotation plugin installed.\n *\n * @returns a string representation of the component for the provided DOM element, or `null` if not found\n */\nexport function getComponentName(elem: unknown): string | null {\n // @ts-expect-error WINDOW has HTMLElement\n if (!WINDOW.HTMLElement) {\n return null;\n }\n\n let currentElem = elem as SimpleNode;\n const MAX_TRAVERSE_HEIGHT = 5;\n for (let i = 0; i < MAX_TRAVERSE_HEIGHT; i++) {\n if (!currentElem) {\n return null;\n }\n\n if (currentElem instanceof HTMLElement) {\n if (currentElem.dataset['sentryComponent']) {\n return currentElem.dataset['sentryComponent'];\n }\n if (currentElem.dataset['sentryElement']) {\n return currentElem.dataset['sentryElement'];\n }\n }\n\n currentElem = currentElem.parentNode;\n }\n\n return null;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { WrappedFunction } from '../types-hoist/wrappedfunction';\nimport { htmlTreeAsString } from './browser';\nimport { debug } from './debug-logger';\nimport { isElement, isError, isEvent, isInstanceOf, isPrimitive } from './is';\n\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * If the method on the passed object is not a function, the wrapper will not be applied.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nexport function fill(source: { [key: string]: any }, name: string, replacementFactory: (...args: any[]) => any): void {\n if (!(name in source)) {\n return;\n }\n\n // explicitly casting to unknown because we don't know the type of the method initially at all\n const original = source[name] as unknown;\n\n if (typeof original !== 'function') {\n return;\n }\n\n const wrapped = replacementFactory(original) as WrappedFunction;\n\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n markFunctionWrapped(wrapped, original);\n }\n\n try {\n source[name] = wrapped;\n } catch {\n DEBUG_BUILD && debug.log(`Failed to replace method \"${name}\" in object`, source);\n }\n}\n\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nexport function addNonEnumerableProperty(obj: object, name: string, value: unknown): void {\n try {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value,\n writable: true,\n configurable: true,\n });\n } catch {\n DEBUG_BUILD && debug.log(`Failed to add non-enumerable property \"${name}\" to object`, obj);\n }\n}\n\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nexport function markFunctionWrapped(wrapped: WrappedFunction, original: WrappedFunction): void {\n try {\n const proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n } catch {} // eslint-disable-line no-empty\n}\n\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function getOriginalFunction(func: WrappedFunction): T | undefined {\n return func.__sentry_original__;\n}\n\n/**\n * Transforms any `Error` or `Event` into a plain object with all of their enumerable properties, and some of their\n * non-enumerable properties attached.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n * @returns An Event or Error turned into an object - or the value argument itself, when value is neither an Event nor\n * an Error.\n */\nexport function convertToPlainObject(value: V):\n | {\n [ownProps: string]: unknown;\n type: string;\n target: string;\n currentTarget: string;\n detail?: unknown;\n }\n | {\n [ownProps: string]: unknown;\n message: string;\n name: string;\n stack?: string;\n }\n | V {\n if (isError(value)) {\n return {\n message: value.message,\n name: value.name,\n stack: value.stack,\n ...getOwnProperties(value),\n };\n } else if (isEvent(value)) {\n const newObj: {\n [ownProps: string]: unknown;\n type: string;\n target: string;\n currentTarget: string;\n detail?: unknown;\n } = {\n type: value.type,\n target: serializeEventTarget(value.target),\n currentTarget: serializeEventTarget(value.currentTarget),\n ...getOwnProperties(value),\n };\n\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = value.detail;\n }\n\n return newObj;\n } else {\n return value;\n }\n}\n\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target: unknown): string {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n } catch {\n return '';\n }\n}\n\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj: unknown): { [key: string]: unknown } {\n if (typeof obj === 'object' && obj !== null) {\n return Object.fromEntries(Object.entries(obj));\n }\n return {};\n}\n\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\nexport function extractExceptionKeysForMessage(exception: Record): string {\n const keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n\n return !keys[0] ? '[object has no keys]' : keys.join(', ');\n}\n\n/**\n * Given any object, return a new object having removed all fields whose value was `undefined`.\n * Works recursively on objects and arrays.\n *\n * Attention: This function keeps circular references in the returned object.\n *\n * @deprecated This function is no longer used by the SDK and will be removed in a future major version.\n */\nexport function dropUndefinedKeys(inputValue: T): T {\n // This map keeps track of what already visited nodes map to.\n // Our Set - based memoBuilder doesn't work here because we want to the output object to have the same circular\n // references as the input object.\n const memoizationMap = new Map();\n\n // This function just proxies `_dropUndefinedKeys` to keep the `memoBuilder` out of this function's API\n return _dropUndefinedKeys(inputValue, memoizationMap);\n}\n\nfunction _dropUndefinedKeys(inputValue: T, memoizationMap: Map): T {\n // Early return for primitive values\n if (inputValue === null || typeof inputValue !== 'object') {\n return inputValue;\n }\n\n // Check memo map first for all object types\n const memoVal = memoizationMap.get(inputValue);\n if (memoVal !== undefined) {\n return memoVal as T;\n }\n\n // handle arrays\n if (Array.isArray(inputValue)) {\n const returnValue: unknown[] = [];\n // Store mapping to handle circular references\n memoizationMap.set(inputValue, returnValue);\n\n inputValue.forEach(value => {\n returnValue.push(_dropUndefinedKeys(value, memoizationMap));\n });\n\n return returnValue as unknown as T;\n }\n\n if (isPojo(inputValue)) {\n const returnValue: { [key: string]: unknown } = {};\n // Store mapping to handle circular references\n memoizationMap.set(inputValue, returnValue);\n\n const keys = Object.keys(inputValue);\n\n keys.forEach(key => {\n const val = inputValue[key];\n if (val !== undefined) {\n returnValue[key] = _dropUndefinedKeys(val, memoizationMap);\n }\n });\n\n return returnValue as T;\n }\n\n // For other object types, return as is\n return inputValue;\n}\n\nfunction isPojo(input: unknown): input is Record {\n // Plain objects have Object as constructor or no constructor\n const constructor = (input as object).constructor;\n return constructor === Object || constructor === undefined;\n}\n\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nexport function objectify(wat: unknown): typeof Object {\n let objectified;\n switch (true) {\n // this will catch both undefined and null\n case wat == undefined:\n objectified = new String(wat);\n break;\n\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n objectified = new (wat as any).constructor(wat);\n break;\n\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n","import { GLOBAL_OBJ } from './worldwide';\n\nexport type RandomSafeContextRunner = (callback: () => T) => T;\n\n// undefined = not yet resolved, null = no runner found, function = runner found\nlet RESOLVED_RUNNER: RandomSafeContextRunner | null | undefined;\n\n/**\n * Simple wrapper that allows SDKs to *secretly* set context wrapper to generate safe random IDs in cache components contexts\n */\nexport function withRandomSafeContext(cb: () => T): T {\n // Skips future symbol lookups if we've already resolved (or attempted to resolve) the runner once\n if (RESOLVED_RUNNER !== undefined) {\n return RESOLVED_RUNNER ? RESOLVED_RUNNER(cb) : cb();\n }\n\n const sym = Symbol.for('__SENTRY_SAFE_RANDOM_ID_WRAPPER__');\n const globalWithSymbol: typeof GLOBAL_OBJ & { [sym]?: RandomSafeContextRunner } = GLOBAL_OBJ;\n\n if (sym in globalWithSymbol && typeof globalWithSymbol[sym] === 'function') {\n RESOLVED_RUNNER = globalWithSymbol[sym];\n return RESOLVED_RUNNER(cb);\n }\n\n RESOLVED_RUNNER = null;\n return cb();\n}\n\n/**\n * Identical to Math.random() but wrapped in withRandomSafeContext\n * to ensure safe random number generation in certain contexts (e.g., Next.js Cache Components).\n */\nexport function safeMathRandom(): number {\n return withRandomSafeContext(() => Math.random());\n}\n\n/**\n * Identical to Date.now() but wrapped in withRandomSafeContext\n * to ensure safe time value generation in certain contexts (e.g., Next.js Cache Components).\n */\nexport function safeDateNow(): number {\n return withRandomSafeContext(() => Date.now());\n}\n","import { isRegExp, isString, isVueViewModel } from './is';\nimport { getVueInternalName } from './stacktrace';\n\nexport { escapeStringForRegex } from '../vendor/escapeStringForRegex';\n\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nexport function truncate(str: string, max: number = 0): string {\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : `${str.slice(0, max)}...`;\n}\n\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nexport function snipLine(line: string, colno: number): string {\n let newLine = line;\n const lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n // eslint-disable-next-line no-param-reassign\n colno = lineLength;\n }\n\n let start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n\n let end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = `'{snip} ${newLine}`;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n\n return newLine;\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\nexport function safeJoin(input: unknown[], delimiter?: string): string {\n if (!Array.isArray(input)) {\n return '';\n }\n\n const output = [];\n // eslint-disable-next-line typescript/prefer-for-of\n for (let i = 0; i < input.length; i++) {\n const value = input[i];\n try {\n // This is a hack to fix a Vue3-specific bug that causes an infinite loop of\n // console warnings. This happens when a Vue template is rendered with\n // an undeclared variable, which we try to stringify, ultimately causing\n // Vue to issue another warning which repeats indefinitely.\n // see: https://github.com/getsentry/sentry-javascript/pull/8981\n if (isVueViewModel(value)) {\n output.push(getVueInternalName(value));\n } else {\n output.push(String(value));\n }\n } catch {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n/**\n * Checks if the given value matches a regex or string\n *\n * @param value The string to test\n * @param pattern Either a regex or a string against which `value` will be matched\n * @param requireExactStringMatch If true, `value` must match `pattern` exactly. If false, `value` will match\n * `pattern` if it contains `pattern`. Only applies to string-type patterns.\n */\nexport function isMatchingPattern(\n value: string,\n pattern: RegExp | string,\n requireExactStringMatch: boolean = false,\n): boolean {\n if (!isString(value)) {\n return false;\n }\n\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (isString(pattern)) {\n return requireExactStringMatch ? value === pattern : value.includes(pattern);\n }\n\n return false;\n}\n\n/**\n * Test the given string against an array of strings and regexes. By default, string matching is done on a\n * substring-inclusion basis rather than a strict equality basis\n *\n * @param testString The string to test\n * @param patterns The patterns against which to test the string\n * @param requireExactStringMatch If true, `testString` must match one of the given string patterns exactly in order to\n * count. If false, `testString` will match a string pattern if it contains that pattern.\n * @returns\n */\nexport function stringMatchesSomePattern(\n testString: string,\n patterns: Array = [],\n requireExactStringMatch: boolean = false,\n): boolean {\n return patterns.some(pattern => isMatchingPattern(testString, pattern, requireExactStringMatch));\n}\n","import type { Event } from '../types-hoist/event';\nimport type { Exception } from '../types-hoist/exception';\nimport type { Mechanism } from '../types-hoist/mechanism';\nimport type { StackFrame } from '../types-hoist/stackframe';\nimport { addNonEnumerableProperty } from './object';\nimport { safeMathRandom, withRandomSafeContext } from './randomSafeContext';\nimport { snipLine } from './string';\nimport { GLOBAL_OBJ } from './worldwide';\n\ninterface CryptoInternal {\n randomUUID?(): string;\n}\n\n/** An interface for common properties on global */\ninterface CryptoGlobal {\n msCrypto?: CryptoInternal;\n crypto?: CryptoInternal;\n}\n\nfunction getCrypto(): CryptoInternal | undefined {\n const gbl = GLOBAL_OBJ as typeof GLOBAL_OBJ & CryptoGlobal;\n return gbl.crypto || gbl.msCrypto;\n}\n\nlet emptyUuid: string | undefined;\n\nfunction getRandomByte(): number {\n return safeMathRandom() * 16;\n}\n\n/**\n * UUID4 generator\n * @param crypto Object that provides the crypto API.\n * @returns string Generated UUID4.\n */\nexport function uuid4(crypto = getCrypto()): string {\n try {\n if (crypto?.randomUUID) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return withRandomSafeContext(() => crypto.randomUUID!()).replace(/-/g, '');\n }\n } catch {\n // some runtimes can crash invoking crypto\n // https://github.com/getsentry/sentry-javascript/issues/8935\n }\n\n if (!emptyUuid) {\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n // Concatenating the following numbers as strings results in '10000000100040008000100000000000'\n emptyUuid = ([1e7] as unknown as string) + 1e3 + 4e3 + 8e3 + 1e11;\n }\n\n return emptyUuid.replace(/[018]/g, c =>\n // eslint-disable-next-line no-bitwise\n ((c as unknown as number) ^ ((getRandomByte() & 15) >> ((c as unknown as number) / 4))).toString(16),\n );\n}\n\nfunction getFirstException(event: Event): Exception | undefined {\n return event.exception?.values?.[0];\n}\n\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nexport function getEventDescription(event: Event): string {\n const { message, event_id: eventId } = event;\n if (message) {\n return message;\n }\n\n const firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return `${firstException.type}: ${firstException.value}`;\n }\n return firstException.type || firstException.value || eventId || '';\n }\n return eventId || '';\n}\n\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nexport function addExceptionTypeValue(event: Event, value?: string, type?: string): void {\n const exception = (event.exception = event.exception || {});\n const values = (exception.values = exception.values || []);\n const firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nexport function addExceptionMechanism(event: Event, newMechanism?: Partial): void {\n const firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n\n const defaultMechanism = { type: 'generic', handled: true };\n const currentMechanism = firstException.mechanism;\n firstException.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n\n if (newMechanism && 'data' in newMechanism) {\n const mergedData = { ...currentMechanism?.data, ...newMechanism.data };\n firstException.mechanism.data = mergedData;\n }\n}\n\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nconst SEMVER_REGEXP =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\n/**\n * Represents Semantic Versioning object\n */\ninterface SemVer {\n major?: number;\n minor?: number;\n patch?: number;\n prerelease?: string;\n buildmetadata?: string;\n}\n\nfunction _parseInt(input: string | undefined): number {\n return parseInt(input || '', 10);\n}\n\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nexport function parseSemver(input: string): SemVer {\n const match = input.match(SEMVER_REGEXP) || [];\n const major = _parseInt(match[1]);\n const minor = _parseInt(match[2]);\n const patch = _parseInt(match[3]);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nexport function addContextToFrame(lines: string[], frame: StackFrame, linesOfContext: number = 5): void {\n // When there is no line number in the frame, attaching context is nonsensical and will even break grouping\n if (frame.lineno === undefined) {\n return;\n }\n\n const maxLines = lines.length;\n const sourceLine = Math.max(Math.min(maxLines - 1, frame.lineno - 1), 0);\n\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map((line: string) => snipLine(line, 0));\n\n // We guard here to ensure this is not larger than the existing number of lines\n const lineIndex = Math.min(maxLines - 1, sourceLine);\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n frame.context_line = snipLine(lines[lineIndex]!, frame.colno || 0);\n\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map((line: string) => snipLine(line, 0));\n}\n\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nexport function checkOrSetAlreadyCaught(exception: unknown): boolean {\n if (isAlreadyCaptured(exception)) {\n return true;\n }\n\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception as { [key: string]: unknown }, '__sentry_captured__', true);\n } catch {\n // `exception` is a primitive, so we can't mark it seen\n }\n\n return false;\n}\n\n/**\n * Checks whether we've already captured the given exception (note: not an identical exception - the very object).\n * It is considered already captured if it has the `__sentry_captured__` property set to `true`.\n *\n * @internal Only considered for internal usage\n */\nexport function isAlreadyCaptured(exception: unknown): boolean | void {\n try {\n return (exception as { __sentry_captured__?: boolean }).__sentry_captured__;\n } catch {} // eslint-disable-line no-empty\n}\n","import { safeDateNow, withRandomSafeContext } from './randomSafeContext';\nimport { GLOBAL_OBJ } from './worldwide';\n\nconst ONE_SECOND_IN_MS = 1000;\n\n/**\n * A partial definition of the [Performance Web API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Performance}\n * for accessing a high-resolution monotonic clock.\n */\ninterface Performance {\n /**\n * The millisecond timestamp at which measurement began, measured in Unix time.\n */\n timeOrigin: number;\n /**\n * Returns the current millisecond timestamp, where 0 represents the start of measurement.\n */\n now(): number;\n}\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nexport function dateTimestampInSeconds(): number {\n return safeDateNow() / ONE_SECOND_IN_MS;\n}\n\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction createUnixTimestampInSecondsFunc(): () => number {\n const { performance } = GLOBAL_OBJ as typeof GLOBAL_OBJ & { performance?: Performance };\n // Some browser and environments don't have a performance or timeOrigin, so we fallback to\n // using Date.now() to compute the starting time.\n if (!performance?.now || !performance.timeOrigin) {\n return dateTimestampInSeconds;\n }\n\n const timeOrigin = performance.timeOrigin;\n\n // performance.now() is a monotonic clock, which means it starts at 0 when the process begins. To get the current\n // wall clock time (actual UNIX timestamp), we need to add the starting time origin and the current time elapsed.\n //\n // TODO: This does not account for the case where the monotonic clock that powers performance.now() drifts from the\n // wall clock time, which causes the returned timestamp to be inaccurate. We should investigate how to detect and\n // correct for this.\n // See: https://github.com/getsentry/sentry-javascript/issues/2590\n // See: https://github.com/mdn/content/issues/4713\n // See: https://dev.to/noamr/when-a-millisecond-is-not-a-millisecond-3h6\n return () => {\n return (timeOrigin + withRandomSafeContext(() => performance.now())) / ONE_SECOND_IN_MS;\n };\n}\n\nlet _cachedTimestampInSeconds: (() => number) | undefined;\n\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nexport function timestampInSeconds(): number {\n // We store this in a closure so that we don't have to create a new function every time this is called.\n const func = _cachedTimestampInSeconds ?? (_cachedTimestampInSeconds = createUnixTimestampInSecondsFunc());\n return func();\n}\n\n/**\n * Cached result of getBrowserTimeOrigin.\n */\nlet cachedTimeOrigin: number | null | undefined = null;\n\n/**\n * Gets the time origin and the mode used to determine it.\n *\n * Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n * performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n * data as reliable if they are within a reasonable threshold of the current time.\n *\n * TODO: move to `@sentry/browser-utils` package.\n */\nfunction getBrowserTimeOrigin(): number | undefined {\n const { performance } = GLOBAL_OBJ as typeof GLOBAL_OBJ & Window;\n if (!performance?.now) {\n return undefined;\n }\n\n const threshold = 300_000; // 5 minutes in milliseconds\n const performanceNow = withRandomSafeContext(() => performance.now());\n const dateNow = safeDateNow();\n\n const timeOrigin = performance.timeOrigin;\n if (typeof timeOrigin === 'number') {\n const timeOriginDelta = Math.abs(timeOrigin + performanceNow - dateNow);\n if (timeOriginDelta < threshold) {\n return timeOrigin;\n }\n }\n\n // TODO: Remove all code related to `performance.timing.navigationStart` once we drop support for Safari 14.\n // `performance.timeSince` is available in Safari 15.\n // see: https://caniuse.com/mdn-api_performance_timeorigin\n\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n const navigationStart = performance.timing?.navigationStart;\n if (typeof navigationStart === 'number') {\n const navigationStartDelta = Math.abs(navigationStart + performanceNow - dateNow);\n if (navigationStartDelta < threshold) {\n return navigationStart;\n }\n }\n\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to subtracting\n // `performance.now()` from `Date.now()`.\n return dateNow - performanceNow;\n}\n\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nexport function browserPerformanceTimeOrigin(): number | undefined {\n if (cachedTimeOrigin === null) {\n cachedTimeOrigin = getBrowserTimeOrigin();\n }\n\n return cachedTimeOrigin;\n}\n","import type { SerializedSession, Session, SessionContext, SessionStatus } from './types-hoist/session';\nimport { uuid4 } from './utils/misc';\nimport { timestampInSeconds } from './utils/time';\n\n/**\n * Creates a new `Session` object by setting certain default parameters. If optional @param context\n * is passed, the passed properties are applied to the session object.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns a new `Session` object\n */\nexport function makeSession(context?: Omit): Session {\n // Both timestamp and started are in seconds since the UNIX epoch.\n const startingTime = timestampInSeconds();\n\n const session: Session = {\n sid: uuid4(),\n init: true,\n timestamp: startingTime,\n started: startingTime,\n duration: 0,\n status: 'ok',\n errors: 0,\n ignoreDuration: false,\n toJSON: () => sessionToJSON(session),\n };\n\n if (context) {\n updateSession(session, context);\n }\n\n return session;\n}\n\n/**\n * Updates a session object with the properties passed in the context.\n *\n * Note that this function mutates the passed object and returns void.\n * (Had to do this instead of returning a new and updated session because closing and sending a session\n * makes an update to the session after it was passed to the sending logic.\n * @see Client.captureSession )\n *\n * @param session the `Session` to update\n * @param context the `SessionContext` holding the properties that should be updated in @param session\n */\n// eslint-disable-next-line complexity\nexport function updateSession(session: Session, context: SessionContext = {}): void {\n if (context.user) {\n if (!session.ipAddress && context.user.ip_address) {\n session.ipAddress = context.user.ip_address;\n }\n\n if (!session.did && !context.did) {\n session.did = context.user.id || context.user.email || context.user.username;\n }\n }\n\n session.timestamp = context.timestamp || timestampInSeconds();\n\n if (context.abnormal_mechanism) {\n session.abnormal_mechanism = context.abnormal_mechanism;\n }\n\n if (context.ignoreDuration) {\n session.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n session.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n session.init = context.init;\n }\n if (!session.did && context.did) {\n session.did = `${context.did}`;\n }\n if (typeof context.started === 'number') {\n session.started = context.started;\n }\n if (session.ignoreDuration) {\n session.duration = undefined;\n } else if (typeof context.duration === 'number') {\n session.duration = context.duration;\n } else {\n const duration = session.timestamp - session.started;\n session.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n session.release = context.release;\n }\n if (context.environment) {\n session.environment = context.environment;\n }\n if (!session.ipAddress && context.ipAddress) {\n session.ipAddress = context.ipAddress;\n }\n if (!session.userAgent && context.userAgent) {\n session.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n session.errors = context.errors;\n }\n if (context.status) {\n session.status = context.status;\n }\n}\n\n/**\n * Closes a session by setting its status and updating the session object with it.\n * Internally calls `updateSession` to update the passed session object.\n *\n * Note that this function mutates the passed session (@see updateSession for explanation).\n *\n * @param session the `Session` object to be closed\n * @param status the `SessionStatus` with which the session was closed. If you don't pass a status,\n * this function will keep the previously set status, unless it was `'ok'` in which case\n * it is changed to `'exited'`.\n */\nexport function closeSession(session: Session, status?: Exclude): void {\n let context = {};\n if (status) {\n context = { status };\n } else if (session.status === 'ok') {\n context = { status: 'exited' };\n }\n\n updateSession(session, context);\n}\n\n/**\n * Serializes a passed session object to a JSON object with a slightly different structure.\n * This is necessary because the Sentry backend requires a slightly different schema of a session\n * than the one the JS SDKs use internally.\n *\n * @param session the session to be converted\n *\n * @returns a JSON object of the passed session\n */\nfunction sessionToJSON(session: Session): SerializedSession {\n return {\n sid: `${session.sid}`,\n init: session.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(session.started * 1000).toISOString(),\n timestamp: new Date(session.timestamp * 1000).toISOString(),\n status: session.status,\n errors: session.errors,\n did: typeof session.did === 'number' || typeof session.did === 'string' ? `${session.did}` : undefined,\n duration: session.duration,\n abnormal_mechanism: session.abnormal_mechanism,\n attrs: {\n release: session.release,\n environment: session.environment,\n ip_address: session.ipAddress,\n user_agent: session.userAgent,\n },\n };\n}\n","/**\n * Shallow merge two objects.\n * Does not mutate the passed in objects.\n * Undefined/empty values in the merge object will overwrite existing values.\n *\n * By default, this merges 2 levels deep.\n */\nexport function merge(initialObj: T, mergeObj: T, levels = 2): T {\n // If the merge value is not an object, or we have no merge levels left,\n // we just set the value to the merge value\n if (!mergeObj || typeof mergeObj !== 'object' || levels <= 0) {\n return mergeObj;\n }\n\n // If the merge object is an empty object, and the initial object is not undefined, we return the initial object\n if (initialObj && Object.keys(mergeObj).length === 0) {\n return initialObj;\n }\n\n // Clone object\n const output = { ...initialObj };\n\n // Merge values into output, resursively\n for (const key in mergeObj) {\n if (Object.prototype.hasOwnProperty.call(mergeObj, key)) {\n output[key] = merge(output[key], mergeObj[key], levels - 1);\n }\n }\n\n return output;\n}\n","import { uuid4 } from './misc';\n\n/**\n * Generate a random, valid trace ID.\n */\nexport function generateTraceId(): string {\n return uuid4();\n}\n\n/**\n * Generate a random, valid span ID.\n */\nexport function generateSpanId(): string {\n return uuid4().substring(16);\n}\n","import type { Scope } from '../scope';\nimport type { Span } from '../types-hoist/span';\nimport { addNonEnumerableProperty } from '../utils/object';\n\nconst SCOPE_SPAN_FIELD = '_sentrySpan';\n\ntype ScopeWithMaybeSpan = Scope & {\n [SCOPE_SPAN_FIELD]?: Span;\n};\n\n/**\n * Set the active span for a given scope.\n * NOTE: This should NOT be used directly, but is only used internally by the trace methods.\n */\nexport function _setSpanForScope(scope: Scope, span: Span | undefined): void {\n if (span) {\n addNonEnumerableProperty(scope as ScopeWithMaybeSpan, SCOPE_SPAN_FIELD, span);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete (scope as ScopeWithMaybeSpan)[SCOPE_SPAN_FIELD];\n }\n}\n\n/**\n * Get the active span for a given scope.\n * NOTE: This should NOT be used directly, but is only used internally by the trace methods.\n */\nexport function _getSpanForScope(scope: ScopeWithMaybeSpan): Span | undefined {\n return scope[SCOPE_SPAN_FIELD];\n}\n","/* eslint-disable max-lines */\nimport type { AttributeObject, RawAttribute, RawAttributes } from './attributes';\nimport type { Client } from './client';\nimport { DEBUG_BUILD } from './debug-build';\nimport { updateSession } from './session';\nimport type { Attachment } from './types-hoist/attachment';\nimport type { Breadcrumb } from './types-hoist/breadcrumb';\nimport type { Context, Contexts } from './types-hoist/context';\nimport type { DynamicSamplingContext } from './types-hoist/envelope';\nimport type { Event, EventHint } from './types-hoist/event';\nimport type { EventProcessor } from './types-hoist/eventprocessor';\nimport type { Extra, Extras } from './types-hoist/extra';\nimport type { Primitive } from './types-hoist/misc';\nimport type { RequestEventData } from './types-hoist/request';\nimport type { Session } from './types-hoist/session';\nimport type { SeverityLevel } from './types-hoist/severity';\nimport type { Span } from './types-hoist/span';\nimport type { PropagationContext } from './types-hoist/tracing';\nimport type { User } from './types-hoist/user';\nimport { debug } from './utils/debug-logger';\nimport { isPlainObject } from './utils/is';\nimport { merge } from './utils/merge';\nimport { uuid4 } from './utils/misc';\nimport { generateTraceId } from './utils/propagationContext';\nimport { safeMathRandom } from './utils/randomSafeContext';\nimport { _getSpanForScope, _setSpanForScope } from './utils/spanOnScope';\nimport { truncate } from './utils/string';\nimport { dateTimestampInSeconds } from './utils/time';\n\n/**\n * Default value for maximum number of breadcrumbs added to an event.\n */\nconst DEFAULT_MAX_BREADCRUMBS = 100;\n\n/**\n * A context to be used for capturing an event.\n * This can either be a Scope, or a partial ScopeContext,\n * or a callback that receives the current scope and returns a new scope to use.\n */\nexport type CaptureContext = Scope | Partial | ((scope: Scope) => Scope);\n\n/**\n * Data that can be converted to a Scope.\n */\nexport interface ScopeContext {\n user: User;\n level: SeverityLevel;\n extra: Extras;\n contexts: Contexts;\n tags: { [key: string]: Primitive };\n attributes?: RawAttributes>;\n fingerprint: string[];\n propagationContext: PropagationContext;\n conversationId?: string;\n}\n\nexport interface SdkProcessingMetadata {\n [key: string]: unknown;\n requestSession?: {\n status: 'ok' | 'errored' | 'crashed';\n };\n normalizedRequest?: RequestEventData;\n dynamicSamplingContext?: Partial;\n capturedSpanScope?: Scope;\n capturedSpanIsolationScope?: Scope;\n spanCountBeforeProcessing?: number;\n ipAddress?: string;\n}\n\n/**\n * Normalized data of the Scope, ready to be used.\n */\nexport interface ScopeData {\n eventProcessors: EventProcessor[];\n breadcrumbs: Breadcrumb[];\n user: User;\n tags: { [key: string]: Primitive };\n // TODO(v11): Make this a required field (could be subtly breaking if we did it today)\n attributes?: RawAttributes>;\n extra: Extras;\n contexts: Contexts;\n attachments: Attachment[];\n propagationContext: PropagationContext;\n sdkProcessingMetadata: SdkProcessingMetadata;\n fingerprint: string[];\n level?: SeverityLevel;\n transactionName?: string;\n span?: Span;\n conversationId?: string;\n}\n\n/**\n * Holds additional event information.\n */\nexport class Scope {\n /** Flag if notifying is happening. */\n protected _notifyingListeners: boolean;\n\n /** Callback for client to receive scope changes. */\n protected _scopeListeners: Array<(scope: Scope) => void>;\n\n /** Callback list that will be called during event processing. */\n protected _eventProcessors: EventProcessor[];\n\n /** Array of breadcrumbs. */\n protected _breadcrumbs: Breadcrumb[];\n\n /** User */\n protected _user: User;\n\n /** Tags */\n protected _tags: { [key: string]: Primitive };\n\n /** Attributes */\n protected _attributes: RawAttributes>;\n\n /** Extra */\n protected _extra: Extras;\n\n /** Contexts */\n protected _contexts: Contexts;\n\n /** Attachments */\n protected _attachments: Attachment[];\n\n /** Propagation Context for distributed tracing */\n protected _propagationContext: PropagationContext;\n\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n protected _sdkProcessingMetadata: SdkProcessingMetadata;\n\n /** Fingerprint */\n protected _fingerprint?: string[];\n\n /** Severity */\n protected _level?: SeverityLevel;\n\n /**\n * Transaction Name\n *\n * IMPORTANT: The transaction name on the scope has nothing to do with root spans/transaction objects.\n * It's purpose is to assign a transaction to the scope that's added to non-transaction events.\n */\n protected _transactionName?: string;\n\n /** Session */\n protected _session?: Session;\n\n /** The client on this scope */\n protected _client?: Client;\n\n /** Contains the last event id of a captured event. */\n protected _lastEventId?: string;\n\n /** Conversation ID */\n protected _conversationId?: string;\n\n // NOTE: Any field which gets added here should get added not only to the constructor but also to the `clone` method.\n\n public constructor() {\n this._notifyingListeners = false;\n this._scopeListeners = [];\n this._eventProcessors = [];\n this._breadcrumbs = [];\n this._attachments = [];\n this._user = {};\n this._tags = {};\n this._attributes = {};\n this._extra = {};\n this._contexts = {};\n this._sdkProcessingMetadata = {};\n this._propagationContext = {\n traceId: generateTraceId(),\n sampleRand: safeMathRandom(),\n };\n }\n\n /**\n * Clone all data from this scope into a new scope.\n */\n public clone(): Scope {\n const newScope = new Scope();\n newScope._breadcrumbs = [...this._breadcrumbs];\n newScope._tags = { ...this._tags };\n newScope._attributes = { ...this._attributes };\n newScope._extra = { ...this._extra };\n newScope._contexts = { ...this._contexts };\n if (this._contexts.flags) {\n // We need to copy the `values` array so insertions on a cloned scope\n // won't affect the original array.\n newScope._contexts.flags = {\n values: [...this._contexts.flags.values],\n };\n }\n\n newScope._user = this._user;\n newScope._level = this._level;\n newScope._session = this._session;\n newScope._transactionName = this._transactionName;\n newScope._fingerprint = this._fingerprint;\n newScope._eventProcessors = [...this._eventProcessors];\n newScope._attachments = [...this._attachments];\n newScope._sdkProcessingMetadata = { ...this._sdkProcessingMetadata };\n newScope._propagationContext = { ...this._propagationContext };\n newScope._client = this._client;\n newScope._lastEventId = this._lastEventId;\n newScope._conversationId = this._conversationId;\n\n _setSpanForScope(newScope, _getSpanForScope(this));\n\n return newScope;\n }\n\n /**\n * Update the client assigned to this scope.\n * Note that not every scope will have a client assigned - isolation scopes & the global scope will generally not have a client,\n * as well as manually created scopes.\n */\n public setClient(client: Client | undefined): void {\n this._client = client;\n }\n\n /**\n * Set the ID of the last captured error event.\n * This is generally only captured on the isolation scope.\n */\n public setLastEventId(lastEventId: string | undefined): void {\n this._lastEventId = lastEventId;\n }\n\n /**\n * Get the client assigned to this scope.\n */\n public getClient(): C | undefined {\n return this._client as C | undefined;\n }\n\n /**\n * Get the ID of the last captured error event.\n * This is generally only available on the isolation scope.\n */\n public lastEventId(): string | undefined {\n return this._lastEventId;\n }\n\n /**\n * @inheritDoc\n */\n public addScopeListener(callback: (scope: Scope) => void): void {\n this._scopeListeners.push(callback);\n }\n\n /**\n * Add an event processor that will be called before an event is sent.\n */\n public addEventProcessor(callback: EventProcessor): this {\n this._eventProcessors.push(callback);\n return this;\n }\n\n /**\n * Set the user for this scope.\n * Set to `null` to unset the user.\n */\n public setUser(user: User | null): this {\n // If null is passed we want to unset everything, but still define keys,\n // so that later down in the pipeline any existing values are cleared.\n this._user = user || {\n email: undefined,\n id: undefined,\n ip_address: undefined,\n username: undefined,\n };\n\n if (this._session) {\n updateSession(this._session, { user });\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Get the user from this scope.\n */\n public getUser(): User | undefined {\n return this._user;\n }\n\n /**\n * Set the conversation ID for this scope.\n * Set to `null` to unset the conversation ID.\n */\n public setConversationId(conversationId: string | null | undefined): this {\n this._conversationId = conversationId || undefined;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Set an object that will be merged into existing tags on the scope,\n * and will be sent as tags data with the event.\n */\n public setTags(tags: { [key: string]: Primitive }): this {\n this._tags = {\n ...this._tags,\n ...tags,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Set a single tag that will be sent as tags data with the event.\n */\n public setTag(key: string, value: Primitive): this {\n return this.setTags({ [key]: value });\n }\n\n /**\n * Sets attributes onto the scope.\n *\n * These attributes are currently applied to logs and metrics.\n * In the future, they will also be applied to spans.\n *\n * Important: For now, only strings, numbers and boolean attributes are supported, despite types allowing for\n * more complex attribute types. We'll add this support in the future but already specify the wider type to\n * avoid a breaking change in the future.\n *\n * @param newAttributes - The attributes to set on the scope. You can either pass in key-value pairs, or\n * an object with a `value` and an optional `unit` (if applicable to your attribute).\n *\n * @example\n * ```typescript\n * scope.setAttributes({\n * is_admin: true,\n * payment_selection: 'credit_card',\n * render_duration: { value: 'render_duration', unit: 'ms' },\n * });\n * ```\n */\n public setAttributes>(newAttributes: RawAttributes): this {\n this._attributes = {\n ...this._attributes,\n ...newAttributes,\n };\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Sets an attribute onto the scope.\n *\n * These attributes are currently applied to logs and metrics.\n * In the future, they will also be applied to spans.\n *\n * Important: For now, only strings, numbers and boolean attributes are supported, despite types allowing for\n * more complex attribute types. We'll add this support in the future but already specify the wider type to\n * avoid a breaking change in the future.\n *\n * @param key - The attribute key.\n * @param value - the attribute value. You can either pass in a raw value, or an attribute\n * object with a `value` and an optional `unit` (if applicable to your attribute).\n *\n * @example\n * ```typescript\n * scope.setAttribute('is_admin', true);\n * scope.setAttribute('render_duration', { value: 'render_duration', unit: 'ms' });\n * ```\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public setAttribute extends { value: any } | { unit: any } ? AttributeObject : unknown>(\n key: string,\n value: RawAttribute,\n ): this {\n return this.setAttributes({ [key]: value });\n }\n\n /**\n * Removes the attribute with the given key from the scope.\n *\n * @param key - The attribute key.\n *\n * @example\n * ```typescript\n * scope.removeAttribute('is_admin');\n * ```\n */\n public removeAttribute(key: string): this {\n if (key in this._attributes) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._attributes[key];\n this._notifyScopeListeners();\n }\n return this;\n }\n\n /**\n * Set an object that will be merged into existing extra on the scope,\n * and will be sent as extra data with the event.\n */\n public setExtras(extras: Extras): this {\n this._extra = {\n ...this._extra,\n ...extras,\n };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Set a single key:value extra entry that will be sent as extra data with the event.\n */\n public setExtra(key: string, extra: Extra): this {\n this._extra = { ...this._extra, [key]: extra };\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Sets the fingerprint on the scope to send with the events.\n * @param {string[]} fingerprint Fingerprint to group events in Sentry.\n */\n public setFingerprint(fingerprint: string[]): this {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Sets the level on the scope for future events.\n */\n public setLevel(level: SeverityLevel): this {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Sets the transaction name on the scope so that the name of e.g. taken server route or\n * the page location is attached to future events.\n *\n * IMPORTANT: Calling this function does NOT change the name of the currently active\n * root span. If you want to change the name of the active root span, use\n * `Sentry.updateSpanName(rootSpan, 'new name')` instead.\n *\n * By default, the SDK updates the scope's transaction name automatically on sensible\n * occasions, such as a page navigation or when handling a new request on the server.\n */\n public setTransactionName(name?: string): this {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Sets context data with the given name.\n * Data passed as context will be normalized. You can also pass `null` to unset the context.\n * Note that context data will not be merged - calling `setContext` will overwrite an existing context with the same key.\n */\n public setContext(key: string, context: Context | null): this {\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n } else {\n this._contexts[key] = context;\n }\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Set the session for the scope.\n */\n public setSession(session?: Session): this {\n if (!session) {\n delete this._session;\n } else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Get the session from the scope.\n */\n public getSession(): Session | undefined {\n return this._session;\n }\n\n /**\n * Updates the scope with provided data. Can work in three variations:\n * - plain object containing updatable attributes\n * - Scope instance that'll extract the attributes from\n * - callback function that'll receive the current scope as an argument and allow for modifications\n */\n public update(captureContext?: CaptureContext): this {\n if (!captureContext) {\n return this;\n }\n\n const scopeToMerge = typeof captureContext === 'function' ? captureContext(this) : captureContext;\n\n const scopeInstance =\n scopeToMerge instanceof Scope\n ? scopeToMerge.getScopeData()\n : isPlainObject(scopeToMerge)\n ? (captureContext as ScopeContext)\n : undefined;\n\n const {\n tags,\n attributes,\n extra,\n user,\n contexts,\n level,\n fingerprint = [],\n propagationContext,\n conversationId,\n } = scopeInstance || {};\n\n this._tags = { ...this._tags, ...tags };\n this._attributes = { ...this._attributes, ...attributes };\n this._extra = { ...this._extra, ...extra };\n this._contexts = { ...this._contexts, ...contexts };\n\n if (user && Object.keys(user).length) {\n this._user = user;\n }\n\n if (level) {\n this._level = level;\n }\n\n if (fingerprint.length) {\n this._fingerprint = fingerprint;\n }\n\n if (propagationContext) {\n this._propagationContext = propagationContext;\n }\n\n if (conversationId) {\n this._conversationId = conversationId;\n }\n\n return this;\n }\n\n /**\n * Clears the current scope and resets its properties.\n * Note: The client will not be cleared.\n */\n public clear(): this {\n // client is not cleared here on purpose!\n this._breadcrumbs = [];\n this._tags = {};\n this._attributes = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._session = undefined;\n this._conversationId = undefined;\n _setSpanForScope(this, undefined);\n this._attachments = [];\n this.setPropagationContext({\n traceId: generateTraceId(),\n sampleRand: safeMathRandom(),\n });\n\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Adds a breadcrumb to the scope.\n * By default, the last 100 breadcrumbs are kept.\n */\n public addBreadcrumb(breadcrumb: Breadcrumb, maxBreadcrumbs?: number): this {\n const maxCrumbs = typeof maxBreadcrumbs === 'number' ? maxBreadcrumbs : DEFAULT_MAX_BREADCRUMBS;\n\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n\n const mergedBreadcrumb: Breadcrumb = {\n timestamp: dateTimestampInSeconds(),\n ...breadcrumb,\n // Breadcrumb messages can theoretically be infinitely large and they're held in memory so we truncate them not to leak (too much) memory\n message: breadcrumb.message ? truncate(breadcrumb.message, 2048) : breadcrumb.message,\n };\n\n this._breadcrumbs.push(mergedBreadcrumb);\n if (this._breadcrumbs.length > maxCrumbs) {\n this._breadcrumbs = this._breadcrumbs.slice(-maxCrumbs);\n this._client?.recordDroppedEvent('buffer_overflow', 'log_item');\n }\n\n this._notifyScopeListeners();\n\n return this;\n }\n\n /**\n * Get the last breadcrumb of the scope.\n */\n public getLastBreadcrumb(): Breadcrumb | undefined {\n return this._breadcrumbs[this._breadcrumbs.length - 1];\n }\n\n /**\n * Clear all breadcrumbs from the scope.\n */\n public clearBreadcrumbs(): this {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n }\n\n /**\n * Add an attachment to the scope.\n */\n public addAttachment(attachment: Attachment): this {\n this._attachments.push(attachment);\n return this;\n }\n\n /**\n * Clear all attachments from the scope.\n */\n public clearAttachments(): this {\n this._attachments = [];\n return this;\n }\n\n /**\n * Get the data of this scope, which should be applied to an event during processing.\n */\n public getScopeData(): ScopeData {\n return {\n breadcrumbs: this._breadcrumbs,\n attachments: this._attachments,\n contexts: this._contexts,\n tags: this._tags,\n attributes: this._attributes,\n extra: this._extra,\n user: this._user,\n level: this._level,\n fingerprint: this._fingerprint || [],\n eventProcessors: this._eventProcessors,\n propagationContext: this._propagationContext,\n sdkProcessingMetadata: this._sdkProcessingMetadata,\n transactionName: this._transactionName,\n span: _getSpanForScope(this),\n conversationId: this._conversationId,\n };\n }\n\n /**\n * Add data which will be accessible during event processing but won't get sent to Sentry.\n */\n public setSDKProcessingMetadata(newData: SdkProcessingMetadata): this {\n this._sdkProcessingMetadata = merge(this._sdkProcessingMetadata, newData, 2);\n return this;\n }\n\n /**\n * Add propagation context to the scope, used for distributed tracing\n */\n public setPropagationContext(context: PropagationContext): this {\n this._propagationContext = context;\n return this;\n }\n\n /**\n * Get propagation context from the scope, used for distributed tracing\n */\n public getPropagationContext(): PropagationContext {\n return this._propagationContext;\n }\n\n /**\n * Capture an exception for this scope.\n *\n * @returns {string} The id of the captured Sentry event.\n */\n public captureException(exception: unknown, hint?: EventHint): string {\n const eventId = hint?.event_id || uuid4();\n\n if (!this._client) {\n DEBUG_BUILD && debug.warn('No client configured on scope - will not capture exception!');\n return eventId;\n }\n\n const syntheticException = new Error('Sentry syntheticException');\n\n this._client.captureException(\n exception,\n {\n originalException: exception,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n this,\n );\n\n return eventId;\n }\n\n /**\n * Capture a message for this scope.\n *\n * @returns {string} The id of the captured message.\n */\n public captureMessage(message: string, level?: SeverityLevel, hint?: EventHint): string {\n const eventId = hint?.event_id || uuid4();\n\n if (!this._client) {\n DEBUG_BUILD && debug.warn('No client configured on scope - will not capture message!');\n return eventId;\n }\n\n const syntheticException = hint?.syntheticException ?? new Error(message);\n\n this._client.captureMessage(\n message,\n level,\n {\n originalException: message,\n syntheticException,\n ...hint,\n event_id: eventId,\n },\n this,\n );\n\n return eventId;\n }\n\n /**\n * Capture a Sentry event for this scope.\n *\n * @returns {string} The id of the captured event.\n */\n public captureEvent(event: Event, hint?: EventHint): string {\n const eventId = event.event_id || hint?.event_id || uuid4();\n\n if (!this._client) {\n DEBUG_BUILD && debug.warn('No client configured on scope - will not capture event!');\n return eventId;\n }\n\n this._client.captureEvent(event, { ...hint, event_id: eventId }, this);\n\n return eventId;\n }\n\n /**\n * This will be called on every set call.\n */\n protected _notifyScopeListeners(): void {\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(callback => {\n callback(this);\n });\n this._notifyingListeners = false;\n }\n }\n}\n","import { getGlobalSingleton } from './carrier';\nimport { Scope } from './scope';\n\n/** Get the default current scope. */\nexport function getDefaultCurrentScope(): Scope {\n return getGlobalSingleton('defaultCurrentScope', () => new Scope());\n}\n\n/** Get the default isolation scope. */\nexport function getDefaultIsolationScope(): Scope {\n return getGlobalSingleton('defaultIsolationScope', () => new Scope());\n}\n","const isActualPromise = (p: unknown) =>\n p instanceof Promise && !(p as unknown as ChainedPromiseLike)[kChainedCopy];\n\ntype ChainedPromiseLike = PromiseLike & {\n [kChainedCopy]: true;\n};\nconst kChainedCopy = Symbol('chained PromiseLike');\n\n/**\n * Copy the properties from a decorated promiselike object onto its chained\n * actual promise.\n */\nexport const chainAndCopyPromiseLike = >(\n original: T,\n onSuccess: (value: V) => void,\n onError: (e: unknown) => void,\n): T => {\n const chained = original.then(\n value => {\n onSuccess(value);\n return value;\n },\n err => {\n onError(err);\n throw err;\n },\n ) as T;\n\n // if we're just dealing with \"normal\" Promise objects, return the chain\n return isActualPromise(chained) && isActualPromise(original) ? chained : copyProps(original, chained);\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst copyProps = >(original: T, chained: T): T => {\n let mutated = false;\n //oxlint-disable-next-line guard-for-in\n for (const key in original) {\n if (key in chained) continue;\n mutated = true;\n const value = original[key];\n if (typeof value === 'function') {\n Object.defineProperty(chained, key, {\n value: (...args: unknown[]) => value.apply(original, args),\n enumerable: true,\n configurable: true,\n writable: true,\n });\n } else {\n (chained as Record)[key] = value;\n }\n }\n\n if (mutated) Object.assign(chained, { [kChainedCopy]: true });\n return chained;\n};\n","import type { Client } from '../client';\nimport { getDefaultCurrentScope, getDefaultIsolationScope } from '../defaultScopes';\nimport { Scope } from '../scope';\nimport { chainAndCopyPromiseLike } from '../utils/chain-and-copy-promiselike';\nimport { isThenable } from '../utils/is';\nimport { getMainCarrier, getSentryCarrier } from './../carrier';\nimport type { AsyncContextStrategy } from './types';\n\ninterface Layer {\n client?: Client;\n scope: Scope;\n}\n\n/**\n * This is an object that holds a stack of scopes.\n */\nexport class AsyncContextStack {\n private readonly _stack: [Layer, ...Layer[]];\n private _isolationScope: Scope;\n\n public constructor(scope?: Scope, isolationScope?: Scope) {\n let assignedScope;\n if (!scope) {\n assignedScope = new Scope();\n } else {\n assignedScope = scope;\n }\n\n let assignedIsolationScope;\n if (!isolationScope) {\n assignedIsolationScope = new Scope();\n } else {\n assignedIsolationScope = isolationScope;\n }\n\n // scope stack for domains or the process\n this._stack = [{ scope: assignedScope }];\n this._isolationScope = assignedIsolationScope;\n }\n\n /**\n * Fork a scope for the stack.\n */\n public withScope(callback: (scope: Scope) => T): T {\n const scope = this._pushScope();\n\n let maybePromiseResult: T;\n try {\n maybePromiseResult = callback(scope);\n } catch (e) {\n this._popScope();\n throw e;\n }\n\n if (isThenable(maybePromiseResult)) {\n return chainAndCopyPromiseLike(\n maybePromiseResult as PromiseLike> & Record,\n () => this._popScope(),\n () => this._popScope(),\n ) as T;\n }\n\n this._popScope();\n return maybePromiseResult;\n }\n\n /**\n * Get the client of the stack.\n */\n public getClient(): C | undefined {\n return this.getStackTop().client as C;\n }\n\n /**\n * Returns the scope of the top stack.\n */\n public getScope(): Scope {\n return this.getStackTop().scope;\n }\n\n /**\n * Get the isolation scope for the stack.\n */\n public getIsolationScope(): Scope {\n return this._isolationScope;\n }\n\n /**\n * Returns the topmost scope layer in the order domain > local > process.\n */\n public getStackTop(): Layer {\n return this._stack[this._stack.length - 1] as Layer;\n }\n\n /**\n * Push a scope to the stack.\n */\n private _pushScope(): Scope {\n // We want to clone the content of prev scope\n const scope = this.getScope().clone();\n this._stack.push({\n client: this.getClient(),\n scope,\n });\n return scope;\n }\n\n /**\n * Pop a scope from the stack.\n */\n private _popScope(): boolean {\n if (this._stack.length <= 1) return false;\n return !!this._stack.pop();\n }\n}\n\n/**\n * Get the global async context stack.\n * This will be removed during the v8 cycle and is only here to make migration easier.\n */\nfunction getAsyncContextStack(): AsyncContextStack {\n const registry = getMainCarrier();\n const sentry = getSentryCarrier(registry);\n\n return (sentry.stack = sentry.stack || new AsyncContextStack(getDefaultCurrentScope(), getDefaultIsolationScope()));\n}\n\nfunction withScope(callback: (scope: Scope) => T): T {\n return getAsyncContextStack().withScope(callback);\n}\n\nfunction withSetScope(scope: Scope, callback: (scope: Scope) => T): T {\n const stack = getAsyncContextStack();\n return stack.withScope(() => {\n stack.getStackTop().scope = scope;\n return callback(scope);\n });\n}\n\nfunction withIsolationScope(callback: (isolationScope: Scope) => T): T {\n return getAsyncContextStack().withScope(() => {\n return callback(getAsyncContextStack().getIsolationScope());\n });\n}\n\n/**\n * Get the stack-based async context strategy.\n */\nexport function getStackAsyncContextStrategy(): AsyncContextStrategy {\n return {\n withIsolationScope,\n withScope,\n withSetScope,\n withSetIsolationScope: (_isolationScope: Scope, callback: (isolationScope: Scope) => T) => {\n return withIsolationScope(callback);\n },\n getCurrentScope: () => getAsyncContextStack().getScope(),\n getIsolationScope: () => getAsyncContextStack().getIsolationScope(),\n };\n}\n","import type { Carrier } from './../carrier';\nimport { getMainCarrier, getSentryCarrier } from './../carrier';\nimport { getStackAsyncContextStrategy } from './stackStrategy';\nimport type { AsyncContextStrategy } from './types';\n\n/**\n * @private Private API with no semver guarantees!\n *\n * Sets the global async context strategy\n */\nexport function setAsyncContextStrategy(strategy: AsyncContextStrategy | undefined): void {\n // Get main carrier (global for every environment)\n const registry = getMainCarrier();\n const sentry = getSentryCarrier(registry);\n sentry.acs = strategy;\n}\n\n/**\n * Get the current async context strategy.\n * If none has been setup, the default will be used.\n */\nexport function getAsyncContextStrategy(carrier: Carrier): AsyncContextStrategy {\n const sentry = getSentryCarrier(carrier);\n\n if (sentry.acs) {\n return sentry.acs;\n }\n\n // Otherwise, use the default one (stack)\n return getStackAsyncContextStrategy();\n}\n","import { getAsyncContextStrategy } from './asyncContext';\nimport { getGlobalSingleton, getMainCarrier } from './carrier';\nimport type { Client } from './client';\nimport { Scope } from './scope';\nimport type { TraceContext } from './types-hoist/context';\nimport { generateSpanId } from './utils/propagationContext';\n\nlet _externalPropagationContextProvider: (() => { traceId: string; spanId: string } | undefined) | undefined;\n\n/**\n * Register an external propagation context provider function.\n * When registered, trace context will be read from the external source (e.g. OpenTelemetry)\n * instead of from the Sentry scope's propagation context.\n */\nexport function registerExternalPropagationContext(fn: () => { traceId: string; spanId: string } | undefined): void {\n _externalPropagationContextProvider = fn;\n}\n\n/**\n * Get the external propagation context, if a provider has been registered.\n */\nexport function getExternalPropagationContext(): { traceId: string; spanId: string } | undefined {\n return _externalPropagationContextProvider?.();\n}\n\n/**\n * Check if an external propagation context provider has been registered.\n */\nexport function hasExternalPropagationContext(): boolean {\n return _externalPropagationContextProvider !== undefined;\n}\n\n/**\n * Get the currently active scope.\n */\nexport function getCurrentScope(): Scope {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n return acs.getCurrentScope();\n}\n\n/**\n * Get the currently active isolation scope.\n * The isolation scope is active for the current execution context.\n */\nexport function getIsolationScope(): Scope {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n return acs.getIsolationScope();\n}\n\n/**\n * Get the global scope.\n * This scope is applied to _all_ events.\n */\nexport function getGlobalScope(): Scope {\n return getGlobalSingleton('globalScope', () => new Scope());\n}\n\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n */\nexport function withScope(callback: (scope: Scope) => T): T;\n/**\n * Set the given scope as the active scope in the callback.\n */\nexport function withScope(scope: Scope | undefined, callback: (scope: Scope) => T): T;\n/**\n * Either creates a new active scope, or sets the given scope as active scope in the given callback.\n */\nexport function withScope(\n ...rest: [callback: (scope: Scope) => T] | [scope: Scope | undefined, callback: (scope: Scope) => T]\n): T {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n\n // If a scope is defined, we want to make this the active scope instead of the default one\n if (rest.length === 2) {\n const [scope, callback] = rest;\n\n if (!scope) {\n return acs.withScope(callback);\n }\n\n return acs.withSetScope(scope, callback);\n }\n\n return acs.withScope(rest[0]);\n}\n\n/**\n * Attempts to fork the current isolation scope and the current scope based on the current async context strategy. If no\n * async context strategy is set, the isolation scope and the current scope will not be forked (this is currently the\n * case, for example, in the browser).\n *\n * Usage of this function in environments without async context strategy is discouraged and may lead to unexpected behaviour.\n *\n * This function is intended for Sentry SDK and SDK integration development. It is not recommended to be used in \"normal\"\n * applications directly because it comes with pitfalls. Use at your own risk!\n */\nexport function withIsolationScope(callback: (isolationScope: Scope) => T): T;\n/**\n * Set the provided isolation scope as active in the given callback. If no\n * async context strategy is set, the isolation scope and the current scope will not be forked (this is currently the\n * case, for example, in the browser).\n *\n * Usage of this function in environments without async context strategy is discouraged and may lead to unexpected behaviour.\n *\n * This function is intended for Sentry SDK and SDK integration development. It is not recommended to be used in \"normal\"\n * applications directly because it comes with pitfalls. Use at your own risk!\n *\n * If you pass in `undefined` as a scope, it will fork a new isolation scope, the same as if no scope is passed.\n */\nexport function withIsolationScope(isolationScope: Scope | undefined, callback: (isolationScope: Scope) => T): T;\n/**\n * Either creates a new active isolation scope, or sets the given isolation scope as active scope in the given callback.\n */\nexport function withIsolationScope(\n ...rest:\n | [callback: (isolationScope: Scope) => T]\n | [isolationScope: Scope | undefined, callback: (isolationScope: Scope) => T]\n): T {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n\n // If a scope is defined, we want to make this the active scope instead of the default one\n if (rest.length === 2) {\n const [isolationScope, callback] = rest;\n\n if (!isolationScope) {\n return acs.withIsolationScope(callback);\n }\n\n return acs.withSetIsolationScope(isolationScope, callback);\n }\n\n return acs.withIsolationScope(rest[0]);\n}\n\n/**\n * Get the currently active client.\n */\nexport function getClient(): C | undefined {\n return getCurrentScope().getClient();\n}\n\n/**\n * Get a trace context for the given scope.\n */\nexport function getTraceContextFromScope(scope: Scope): TraceContext {\n const externalContext = getExternalPropagationContext();\n if (externalContext) {\n return { trace_id: externalContext.traceId, span_id: externalContext.spanId };\n }\n\n const propagationContext = scope.getPropagationContext();\n\n const { traceId, parentSpanId, propagationSpanId } = propagationContext;\n\n const traceContext: TraceContext = {\n trace_id: traceId,\n span_id: propagationSpanId || generateSpanId(),\n };\n\n if (parentSpanId) {\n traceContext.parent_span_id = parentSpanId;\n }\n\n return traceContext;\n}\n","/**\n * Use this attribute to represent the source of a span.\n * Should be one of: custom, url, route, view, component, task, unknown\n *\n */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_SOURCE = 'sentry.source';\n\n/**\n * Attributes that holds the sample rate that was locally applied to a span.\n * If this attribute is not defined, it means that the span inherited a sampling decision.\n *\n * NOTE: Is only defined on root spans.\n */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE = 'sentry.sample_rate';\n\n/**\n * Attribute holding the sample rate of the previous trace.\n * This is used to sample consistently across subsequent traces in the browser SDK.\n *\n * Note: Only defined on root spans, if opted into consistent sampling\n */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE = 'sentry.previous_trace_sample_rate';\n\n/**\n * Use this attribute to represent the operation of a span.\n */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_OP = 'sentry.op';\n\n/**\n * Use this attribute to represent the origin of a span.\n */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN = 'sentry.origin';\n\n/** The reason why an idle span finished. */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON = 'sentry.idle_span_finish_reason';\n\n/** The unit of a measurement, which may be stored as a TimedEvent. */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT = 'sentry.measurement_unit';\n\n/** The value of a measurement, which may be stored as a TimedEvent. */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE = 'sentry.measurement_value';\n\n/**\n * A custom span name set by users guaranteed to be taken over any automatically\n * inferred name. This attribute is removed before the span is sent.\n *\n * @internal only meant for internal SDK usage\n * @hidden\n */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME = 'sentry.custom_span_name';\n\n/**\n * The id of the profile that this span occurred in.\n */\nexport const SEMANTIC_ATTRIBUTE_PROFILE_ID = 'sentry.profile_id';\n\nexport const SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME = 'sentry.exclusive_time';\n\nexport const SEMANTIC_ATTRIBUTE_CACHE_HIT = 'cache.hit';\n\nexport const SEMANTIC_ATTRIBUTE_CACHE_KEY = 'cache.key';\n\nexport const SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE = 'cache.item_size';\n\n/** TODO: Remove these once we update to latest semantic conventions */\nexport const SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD = 'http.request.method';\nexport const SEMANTIC_ATTRIBUTE_URL_FULL = 'url.full';\n\n/**\n * A span link attribute to mark the link as a special span link.\n *\n * Known values:\n * - `previous_trace`: The span links to the frontend root span of the previous trace.\n * - `next_trace`: The span links to the frontend root span of the next trace. (Not set by the SDK)\n *\n * Other values may be set as appropriate.\n * @see https://develop.sentry.dev/sdk/telemetry/traces/span-links/#link-types\n */\nexport const SEMANTIC_LINK_ATTRIBUTE_LINK_TYPE = 'sentry.link.type';\n\n/**\n * =============================================================================\n * GEN AI ATTRIBUTES\n * Based on OpenTelemetry Semantic Conventions for Generative AI\n * @see https://opentelemetry.io/docs/specs/semconv/gen-ai/\n * =============================================================================\n */\n\n/**\n * The conversation ID for linking messages across API calls.\n * For OpenAI Assistants API: thread_id\n * For LangGraph: configurable.thread_id\n */\nexport const GEN_AI_CONVERSATION_ID_ATTRIBUTE = 'gen_ai.conversation.id';\n","import type { Span } from '../types-hoist/span';\nimport type { SpanStatus } from '../types-hoist/spanStatus';\n\nexport const SPAN_STATUS_UNSET = 0;\nexport const SPAN_STATUS_OK = 1;\nexport const SPAN_STATUS_ERROR = 2;\n\n/**\n * Converts a HTTP status code into a sentry status with a message.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or internal_error.\n */\n// https://develop.sentry.dev/sdk/event-payloads/span/\nexport function getSpanStatusFromHttpCode(httpStatus: number): SpanStatus {\n if (httpStatus < 400 && httpStatus >= 100) {\n return { code: SPAN_STATUS_OK };\n }\n\n if (httpStatus >= 400 && httpStatus < 500) {\n switch (httpStatus) {\n case 401:\n return { code: SPAN_STATUS_ERROR, message: 'unauthenticated' };\n case 403:\n return { code: SPAN_STATUS_ERROR, message: 'permission_denied' };\n case 404:\n return { code: SPAN_STATUS_ERROR, message: 'not_found' };\n case 409:\n return { code: SPAN_STATUS_ERROR, message: 'already_exists' };\n case 413:\n return { code: SPAN_STATUS_ERROR, message: 'failed_precondition' };\n case 429:\n return { code: SPAN_STATUS_ERROR, message: 'resource_exhausted' };\n case 499:\n return { code: SPAN_STATUS_ERROR, message: 'cancelled' };\n default:\n return { code: SPAN_STATUS_ERROR, message: 'invalid_argument' };\n }\n }\n\n if (httpStatus >= 500 && httpStatus < 600) {\n switch (httpStatus) {\n case 501:\n return { code: SPAN_STATUS_ERROR, message: 'unimplemented' };\n case 503:\n return { code: SPAN_STATUS_ERROR, message: 'unavailable' };\n case 504:\n return { code: SPAN_STATUS_ERROR, message: 'deadline_exceeded' };\n default:\n return { code: SPAN_STATUS_ERROR, message: 'internal_error' };\n }\n }\n\n return { code: SPAN_STATUS_ERROR, message: 'internal_error' };\n}\n\n/**\n * Sets the Http status attributes on the current span based on the http code.\n * Additionally, the span's status is updated, depending on the http code.\n */\nexport function setHttpStatus(span: Span, httpStatus: number): void {\n span.setAttribute('http.response.status_code', httpStatus);\n\n const spanStatus = getSpanStatusFromHttpCode(httpStatus);\n if (spanStatus.message !== 'unknown_error') {\n span.setStatus(spanStatus);\n }\n}\n","import type { Scope } from '../scope';\nimport type { Span } from '../types-hoist/span';\nimport { addNonEnumerableProperty } from '../utils/object';\nimport { GLOBAL_OBJ } from '../utils/worldwide';\n\nconst SCOPE_ON_START_SPAN_FIELD = '_sentryScope';\nconst ISOLATION_SCOPE_ON_START_SPAN_FIELD = '_sentryIsolationScope';\n\ntype ScopeWeakRef = { deref(): Scope | undefined } | Scope;\n\ntype SpanWithScopes = Span & {\n [SCOPE_ON_START_SPAN_FIELD]?: Scope;\n [ISOLATION_SCOPE_ON_START_SPAN_FIELD]?: ScopeWeakRef;\n};\n\n/** Wrap a scope with a WeakRef if available, falling back to a direct scope. */\nfunction wrapScopeWithWeakRef(scope: Scope): ScopeWeakRef {\n try {\n // @ts-expect-error - WeakRef is not available in all environments\n const WeakRefClass = GLOBAL_OBJ.WeakRef;\n if (typeof WeakRefClass === 'function') {\n return new WeakRefClass(scope);\n }\n } catch {\n // WeakRef not available or failed to create\n // We'll fall back to a direct scope\n }\n\n return scope;\n}\n\n/** Try to unwrap a scope from a potential WeakRef wrapper. */\nfunction unwrapScopeFromWeakRef(scopeRef: ScopeWeakRef | undefined): Scope | undefined {\n if (!scopeRef) {\n return undefined;\n }\n\n if (typeof scopeRef === 'object' && 'deref' in scopeRef && typeof scopeRef.deref === 'function') {\n try {\n return scopeRef.deref();\n } catch {\n return undefined;\n }\n }\n\n // Fallback to a direct scope\n return scopeRef as Scope;\n}\n\n/** Store the scope & isolation scope for a span, which can the be used when it is finished. */\nexport function setCapturedScopesOnSpan(span: Span | undefined, scope: Scope, isolationScope: Scope): void {\n if (span) {\n addNonEnumerableProperty(span, ISOLATION_SCOPE_ON_START_SPAN_FIELD, wrapScopeWithWeakRef(isolationScope));\n // We don't wrap the scope with a WeakRef here because webkit aggressively garbage collects\n // and scopes are not held in memory for long periods of time.\n addNonEnumerableProperty(span, SCOPE_ON_START_SPAN_FIELD, scope);\n }\n}\n\n/**\n * Grabs the scope and isolation scope off a span that were active when the span was started.\n * If WeakRef was used and scopes have been garbage collected, returns undefined for those scopes.\n */\nexport function getCapturedScopesOnSpan(span: Span): { scope?: Scope; isolationScope?: Scope } {\n const spanWithScopes = span as SpanWithScopes;\n\n return {\n scope: spanWithScopes[SCOPE_ON_START_SPAN_FIELD],\n isolationScope: unwrapScopeFromWeakRef(spanWithScopes[ISOLATION_SCOPE_ON_START_SPAN_FIELD]),\n };\n}\n","import { DEBUG_BUILD } from '../debug-build';\nimport type { DynamicSamplingContext } from '../types-hoist/envelope';\nimport { debug } from './debug-logger';\nimport { isString } from './is';\n\nexport const SENTRY_BAGGAGE_KEY_PREFIX = 'sentry-';\n\nexport const SENTRY_BAGGAGE_KEY_PREFIX_REGEX = /^sentry-/;\n\n/**\n * Max length of a serialized baggage string\n *\n * https://www.w3.org/TR/baggage/#limits\n */\nexport const MAX_BAGGAGE_STRING_LENGTH = 8192;\n\n/**\n * Takes a baggage header and turns it into Dynamic Sampling Context, by extracting all the \"sentry-\" prefixed values\n * from it.\n *\n * @param baggageHeader A very bread definition of a baggage header as it might appear in various frameworks.\n * @returns The Dynamic Sampling Context that was found on `baggageHeader`, if there was any, `undefined` otherwise.\n */\nexport function baggageHeaderToDynamicSamplingContext(\n // Very liberal definition of what any incoming header might look like\n baggageHeader: string | string[] | number | null | undefined | boolean,\n): Partial | undefined {\n const baggageObject = parseBaggageHeader(baggageHeader);\n\n if (!baggageObject) {\n return undefined;\n }\n\n // Read all \"sentry-\" prefixed values out of the baggage object and put it onto a dynamic sampling context object.\n const dynamicSamplingContext = Object.entries(baggageObject).reduce>((acc, [key, value]) => {\n if (key.startsWith(SENTRY_BAGGAGE_KEY_PREFIX)) {\n const nonPrefixedKey = key.slice(SENTRY_BAGGAGE_KEY_PREFIX.length);\n acc[nonPrefixedKey] = value;\n }\n return acc;\n }, {});\n\n // Only return a dynamic sampling context object if there are keys in it.\n // A keyless object means there were no sentry values on the header, which means that there is no DSC.\n if (Object.keys(dynamicSamplingContext).length > 0) {\n return dynamicSamplingContext as Partial;\n } else {\n return undefined;\n }\n}\n\n/**\n * Turns a Dynamic Sampling Object into a baggage header by prefixing all the keys on the object with \"sentry-\".\n *\n * @param dynamicSamplingContext The Dynamic Sampling Context to turn into a header. For convenience and compatibility\n * with the `getDynamicSamplingContext` method on the Transaction class ,this argument can also be `undefined`. If it is\n * `undefined` the function will return `undefined`.\n * @returns a baggage header, created from `dynamicSamplingContext`, or `undefined` either if `dynamicSamplingContext`\n * was `undefined`, or if `dynamicSamplingContext` didn't contain any values.\n */\nexport function dynamicSamplingContextToSentryBaggageHeader(\n // this also takes undefined for convenience and bundle size in other places\n dynamicSamplingContext?: Partial,\n): string | undefined {\n if (!dynamicSamplingContext) {\n return undefined;\n }\n\n // Prefix all DSC keys with \"sentry-\" and put them into a new object\n const sentryPrefixedDSC = Object.entries(dynamicSamplingContext).reduce>(\n (acc, [dscKey, dscValue]) => {\n if (dscValue) {\n acc[`${SENTRY_BAGGAGE_KEY_PREFIX}${dscKey}`] = dscValue;\n }\n return acc;\n },\n {},\n );\n\n return objectToBaggageHeader(sentryPrefixedDSC);\n}\n\n/**\n * Take a baggage header and parse it into an object.\n */\nexport function parseBaggageHeader(\n baggageHeader: string | string[] | number | null | undefined | boolean,\n): Record | undefined {\n if (!baggageHeader || (!isString(baggageHeader) && !Array.isArray(baggageHeader))) {\n return undefined;\n }\n\n if (Array.isArray(baggageHeader)) {\n // Combine all baggage headers into one object containing the baggage values so we can later read the Sentry-DSC-values from it\n return baggageHeader.reduce>((acc, curr) => {\n const currBaggageObject = baggageHeaderToObject(curr);\n Object.entries(currBaggageObject).forEach(([key, value]) => {\n acc[key] = value;\n });\n return acc;\n }, {});\n }\n\n return baggageHeaderToObject(baggageHeader);\n}\n\n/**\n * Will parse a baggage header, which is a simple key-value map, into a flat object.\n *\n * @param baggageHeader The baggage header to parse.\n * @returns a flat object containing all the key-value pairs from `baggageHeader`.\n */\nfunction baggageHeaderToObject(baggageHeader: string): Record {\n return baggageHeader\n .split(',')\n .map(baggageEntry => {\n const eqIdx = baggageEntry.indexOf('=');\n if (eqIdx === -1) {\n // Likely an invalid entry\n return [];\n }\n const key = baggageEntry.slice(0, eqIdx);\n const value = baggageEntry.slice(eqIdx + 1);\n return [key, value].map(keyOrValue => {\n try {\n return decodeURIComponent(keyOrValue.trim());\n } catch {\n // We ignore errors here, e.g. if the value cannot be URL decoded.\n // This will then be skipped in the next step\n return;\n }\n });\n })\n .reduce>((acc, [key, value]) => {\n if (key && value) {\n acc[key] = value;\n }\n return acc;\n }, {});\n}\n\n/**\n * Turns a flat object (key-value pairs) into a baggage header, which is also just key-value pairs.\n *\n * @param object The object to turn into a baggage header.\n * @returns a baggage header string, or `undefined` if the object didn't have any values, since an empty baggage header\n * is not spec compliant.\n */\nexport function objectToBaggageHeader(object: Record): string | undefined {\n if (Object.keys(object).length === 0) {\n // An empty baggage header is not spec compliant: We return undefined.\n return undefined;\n }\n\n return Object.entries(object).reduce((baggageHeader, [objectKey, objectValue], currentIndex) => {\n const baggageEntry = `${encodeURIComponent(objectKey)}=${encodeURIComponent(objectValue)}`;\n const newBaggageHeader = currentIndex === 0 ? baggageEntry : `${baggageHeader},${baggageEntry}`;\n if (newBaggageHeader.length > MAX_BAGGAGE_STRING_LENGTH) {\n DEBUG_BUILD &&\n debug.warn(\n `Not adding key: ${objectKey} with val: ${objectValue} to baggage header due to exceeding baggage size limits.`,\n );\n return baggageHeader;\n } else {\n return newBaggageHeader;\n }\n }, '');\n}\n","import type { Client } from '../client';\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { DsnComponents, DsnLike, DsnProtocol } from '../types-hoist/dsn';\nimport { consoleSandbox, debug } from './debug-logger';\n\n/** Regular expression used to extract org ID from a DSN host. */\nconst ORG_ID_REGEX = /^o(\\d+)\\./;\n\n/** Regular expression used to parse a Dsn. */\nconst DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+)?)?@)((?:\\[[:.%\\w]+\\]|[\\w.-]+))(?::(\\d+))?\\/(.+)/;\n\nfunction isValidProtocol(protocol?: string): protocol is DsnProtocol {\n return protocol === 'http' || protocol === 'https';\n}\n\n/**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\nexport function dsnToString(dsn: DsnComponents, withPassword: boolean = false): string {\n const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n return (\n `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : ''}` +\n `@${host}${port ? `:${port}` : ''}/${path ? `${path}/` : path}${projectId}`\n );\n}\n\n/**\n * Parses a Dsn from a given string.\n *\n * @param str A Dsn as string\n * @returns Dsn as DsnComponents or undefined if @param str is not a valid DSN string\n */\nexport function dsnFromString(str: string): DsnComponents | undefined {\n const match = DSN_REGEX.exec(str);\n\n if (!match) {\n // This should be logged to the console\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.error(`Invalid Sentry Dsn: ${str}`);\n });\n return undefined;\n }\n\n const [protocol, publicKey, pass = '', host = '', port = '', lastPath = ''] = match.slice(1);\n let path = '';\n let projectId = lastPath;\n\n const split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop() as string;\n }\n\n if (projectId) {\n const projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n\n return dsnFromComponents({ host, pass, path, projectId, port, protocol: protocol as DsnProtocol, publicKey });\n}\n\nfunction dsnFromComponents(components: DsnComponents): DsnComponents {\n return {\n protocol: components.protocol,\n publicKey: components.publicKey || '',\n pass: components.pass || '',\n host: components.host,\n port: components.port || '',\n path: components.path || '',\n projectId: components.projectId,\n };\n}\n\nfunction validateDsn(dsn: DsnComponents): boolean {\n if (!DEBUG_BUILD) {\n return true;\n }\n\n const { port, projectId, protocol } = dsn;\n\n const requiredComponents: ReadonlyArray = ['protocol', 'publicKey', 'host', 'projectId'];\n const hasMissingRequiredComponent = requiredComponents.find(component => {\n if (!dsn[component]) {\n debug.error(`Invalid Sentry Dsn: ${component} missing`);\n return true;\n }\n return false;\n });\n\n if (hasMissingRequiredComponent) {\n return false;\n }\n\n if (!projectId.match(/^\\d+$/)) {\n debug.error(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n return false;\n }\n\n if (!isValidProtocol(protocol)) {\n debug.error(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n return false;\n }\n\n if (port && isNaN(parseInt(port, 10))) {\n debug.error(`Invalid Sentry Dsn: Invalid port ${port}`);\n return false;\n }\n\n return true;\n}\n\n/**\n * Extract the org ID from a DSN host.\n *\n * @param host The host from a DSN\n * @returns The org ID if found, undefined otherwise\n */\nexport function extractOrgIdFromDsnHost(host: string): string | undefined {\n const match = host.match(ORG_ID_REGEX);\n\n return match?.[1];\n}\n\n/**\n * Returns the organization ID of the client.\n *\n * The organization ID is extracted from the DSN. If the client options include a `orgId`, this will always take precedence.\n */\nexport function extractOrgIdFromClient(client: Client): string | undefined {\n const options = client.getOptions();\n\n const { host } = client.getDsn() || {};\n\n let org_id: string | undefined;\n\n if (options.orgId) {\n org_id = String(options.orgId);\n } else if (host) {\n org_id = extractOrgIdFromDsnHost(host);\n }\n\n return org_id;\n}\n\n/**\n * Creates a valid Sentry Dsn object, identifying a Sentry instance and project.\n * @returns a valid DsnComponents object or `undefined` if @param from is an invalid DSN source\n */\nexport function makeDsn(from: DsnLike): DsnComponents | undefined {\n const components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);\n if (!components || !validateDsn(components)) {\n return undefined;\n }\n return components;\n}\n","/**\n * Parse a sample rate from a given value.\n * This will either return a boolean or number sample rate, if the sample rate is valid (between 0 and 1).\n * If a string is passed, we try to convert it to a number.\n *\n * Any invalid sample rate will return `undefined`.\n */\nexport function parseSampleRate(sampleRate: unknown): number | undefined {\n if (typeof sampleRate === 'boolean') {\n return Number(sampleRate);\n }\n\n const rate = typeof sampleRate === 'string' ? parseFloat(sampleRate) : sampleRate;\n if (typeof rate !== 'number' || isNaN(rate) || rate < 0 || rate > 1) {\n return undefined;\n }\n\n return rate;\n}\n","import type { Client } from '../client';\nimport type { DynamicSamplingContext } from '../types-hoist/envelope';\nimport type { PropagationContext } from '../types-hoist/tracing';\nimport type { TraceparentData } from '../types-hoist/transaction';\nimport { debug } from '../utils/debug-logger';\nimport { baggageHeaderToDynamicSamplingContext } from './baggage';\nimport { extractOrgIdFromClient } from './dsn';\nimport { parseSampleRate } from './parseSampleRate';\nimport { generateSpanId, generateTraceId } from './propagationContext';\nimport { safeMathRandom } from './randomSafeContext';\n\n// oxlint-disable-next-line sdk/no-regexp-constructor -- RegExp is used for readability here\nexport const TRACEPARENT_REGEXP = new RegExp(\n '^[ \\\\t]*' + // whitespace\n '([0-9a-f]{32})?' + // trace_id\n '-?([0-9a-f]{16})?' + // span_id\n '-?([01])?' + // sampled\n '[ \\\\t]*$', // whitespace\n);\n\n/**\n * Extract transaction context data from a `sentry-trace` header.\n *\n * This is terrible naming but the function has nothing to do with the W3C traceparent header.\n * It can only parse the `sentry-trace` header and extract the \"trace parent\" data.\n *\n * @param traceparent Traceparent string\n *\n * @returns Object containing data from the header, or undefined if traceparent string is malformed\n */\nexport function extractTraceparentData(traceparent?: string): TraceparentData | undefined {\n if (!traceparent) {\n return undefined;\n }\n\n const matches = traceparent.match(TRACEPARENT_REGEXP);\n if (!matches) {\n return undefined;\n }\n\n let parentSampled: boolean | undefined;\n if (matches[3] === '1') {\n parentSampled = true;\n } else if (matches[3] === '0') {\n parentSampled = false;\n }\n\n return {\n traceId: matches[1],\n parentSampled,\n parentSpanId: matches[2],\n };\n}\n\n/**\n * Create a propagation context from incoming headers or\n * creates a minimal new one if the headers are undefined.\n */\nexport function propagationContextFromHeaders(\n sentryTrace: string | undefined,\n baggage: string | number | boolean | string[] | null | undefined,\n): PropagationContext {\n const traceparentData = extractTraceparentData(sentryTrace);\n const dynamicSamplingContext = baggageHeaderToDynamicSamplingContext(baggage);\n\n if (!traceparentData?.traceId) {\n return {\n traceId: generateTraceId(),\n sampleRand: safeMathRandom(),\n };\n }\n\n const sampleRand = getSampleRandFromTraceparentAndDsc(traceparentData, dynamicSamplingContext);\n\n // The sample_rand on the DSC needs to be generated based on traceparent + baggage.\n if (dynamicSamplingContext) {\n dynamicSamplingContext.sample_rand = sampleRand.toString();\n }\n\n const { traceId, parentSpanId, parentSampled } = traceparentData;\n\n return {\n traceId,\n parentSpanId,\n sampled: parentSampled,\n dsc: dynamicSamplingContext || {}, // If we have traceparent data but no DSC it means we are not head of trace and we must freeze it\n sampleRand,\n };\n}\n\n/**\n * Create sentry-trace header from span context values.\n */\nexport function generateSentryTraceHeader(\n traceId: string | undefined = generateTraceId(),\n spanId: string | undefined = generateSpanId(),\n sampled?: boolean,\n): string {\n let sampledString = '';\n if (sampled !== undefined) {\n sampledString = sampled ? '-1' : '-0';\n }\n return `${traceId}-${spanId}${sampledString}`;\n}\n\n/**\n * Creates a W3C traceparent header from the given trace and span ids.\n */\nexport function generateTraceparentHeader(\n traceId: string | undefined = generateTraceId(),\n spanId: string | undefined = generateSpanId(),\n sampled?: boolean,\n): string {\n return `00-${traceId}-${spanId}-${sampled ? '01' : '00'}`;\n}\n\n/**\n * Given any combination of an incoming trace, generate a sample rand based on its defined semantics.\n *\n * Read more: https://develop.sentry.dev/sdk/telemetry/traces/#propagated-random-value\n */\nfunction getSampleRandFromTraceparentAndDsc(\n traceparentData: TraceparentData | undefined,\n dsc: Partial | undefined,\n): number {\n // When there is an incoming sample rand use it.\n const parsedSampleRand = parseSampleRate(dsc?.sample_rand);\n if (parsedSampleRand !== undefined) {\n return parsedSampleRand;\n }\n\n // Otherwise, if there is an incoming sampling decision + sample rate, generate a sample rand that would lead to the same sampling decision.\n const parsedSampleRate = parseSampleRate(dsc?.sample_rate);\n if (parsedSampleRate && traceparentData?.parentSampled !== undefined) {\n return traceparentData.parentSampled\n ? // Returns a sample rand with positive sampling decision [0, sampleRate)\n safeMathRandom() * parsedSampleRate\n : // Returns a sample rand with negative sampling decision [sampleRate, 1)\n parsedSampleRate + safeMathRandom() * (1 - parsedSampleRate);\n } else {\n // If nothing applies, return a random sample rand.\n return safeMathRandom();\n }\n}\n\n/**\n * Determines whether a new trace should be continued based on the provided baggage org ID and the client's `strictTraceContinuation` option.\n * If the trace should not be continued, a new trace will be started.\n *\n * The result is dependent on the `strictTraceContinuation` option in the client.\n * See https://develop.sentry.dev/sdk/telemetry/traces/#stricttracecontinuation\n */\nexport function shouldContinueTrace(client: Client, baggageOrgId?: string): boolean {\n const clientOrgId = extractOrgIdFromClient(client);\n\n // Case: baggage orgID and Client orgID don't match - always start new trace\n if (baggageOrgId && clientOrgId && baggageOrgId !== clientOrgId) {\n debug.log(\n `Won't continue trace because org IDs don't match (incoming baggage: ${baggageOrgId}, SDK options: ${clientOrgId})`,\n );\n return false;\n }\n\n const strictTraceContinuation = client.getOptions().strictTraceContinuation || false; // default for `strictTraceContinuation` is `false`\n\n if (strictTraceContinuation) {\n // With strict continuation enabled, don't continue trace if:\n // - Baggage has orgID, but Client doesn't have one\n // - Client has orgID, but baggage doesn't have one\n if ((baggageOrgId && !clientOrgId) || (!baggageOrgId && clientOrgId)) {\n debug.log(\n `Starting a new trace because strict trace continuation is enabled but one org ID is missing (incoming baggage: ${baggageOrgId}, Sentry client: ${clientOrgId})`,\n );\n return false;\n }\n }\n\n return true;\n}\n","import { getAsyncContextStrategy } from '../asyncContext';\nimport { getMainCarrier } from '../carrier';\nimport { getCurrentScope } from '../currentScopes';\nimport {\n SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME,\n SEMANTIC_ATTRIBUTE_SENTRY_OP,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n} from '../semanticAttributes';\nimport type { SentrySpan } from '../tracing/sentrySpan';\nimport { SPAN_STATUS_OK, SPAN_STATUS_UNSET } from '../tracing/spanstatus';\nimport { getCapturedScopesOnSpan } from '../tracing/utils';\nimport type { TraceContext } from '../types-hoist/context';\nimport type { SpanLink, SpanLinkJSON } from '../types-hoist/link';\nimport type { Span, SpanAttributes, SpanJSON, SpanOrigin, SpanTimeInput } from '../types-hoist/span';\nimport type { SpanStatus } from '../types-hoist/spanStatus';\nimport { addNonEnumerableProperty } from '../utils/object';\nimport { generateSpanId } from '../utils/propagationContext';\nimport { timestampInSeconds } from '../utils/time';\nimport { generateSentryTraceHeader, generateTraceparentHeader } from '../utils/tracing';\nimport { consoleSandbox } from './debug-logger';\nimport { _getSpanForScope } from './spanOnScope';\n\n// These are aligned with OpenTelemetry trace flags\nexport const TRACE_FLAG_NONE = 0x0;\nexport const TRACE_FLAG_SAMPLED = 0x1;\n\nlet hasShownSpanDropWarning = false;\n\n/**\n * Convert a span to a trace context, which can be sent as the `trace` context in an event.\n * By default, this will only include trace_id, span_id & parent_span_id.\n * If `includeAllData` is true, it will also include data, op, status & origin.\n */\nexport function spanToTransactionTraceContext(span: Span): TraceContext {\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n const { data, op, parent_span_id, status, origin, links } = spanToJSON(span);\n\n return {\n parent_span_id,\n span_id,\n trace_id,\n data,\n op,\n status,\n origin,\n links,\n };\n}\n\n/**\n * Convert a span to a trace context, which can be sent as the `trace` context in a non-transaction event.\n */\nexport function spanToTraceContext(span: Span): TraceContext {\n const { spanId, traceId: trace_id, isRemote } = span.spanContext();\n\n // If the span is remote, we use a random/virtual span as span_id to the trace context,\n // and the remote span as parent_span_id\n const parent_span_id = isRemote ? spanId : spanToJSON(span).parent_span_id;\n const scope = getCapturedScopesOnSpan(span).scope;\n\n const span_id = isRemote ? scope?.getPropagationContext().propagationSpanId || generateSpanId() : spanId;\n\n return {\n parent_span_id,\n span_id,\n trace_id,\n };\n}\n\n/**\n * Convert a Span to a Sentry trace header.\n */\nexport function spanToTraceHeader(span: Span): string {\n const { traceId, spanId } = span.spanContext();\n const sampled = spanIsSampled(span);\n return generateSentryTraceHeader(traceId, spanId, sampled);\n}\n\n/**\n * Convert a Span to a W3C traceparent header.\n */\nexport function spanToTraceparentHeader(span: Span): string {\n const { traceId, spanId } = span.spanContext();\n const sampled = spanIsSampled(span);\n return generateTraceparentHeader(traceId, spanId, sampled);\n}\n\n/**\n * Converts the span links array to a flattened version to be sent within an envelope.\n *\n * If the links array is empty, it returns `undefined` so the empty value can be dropped before it's sent.\n */\nexport function convertSpanLinksForEnvelope(links?: SpanLink[]): SpanLinkJSON[] | undefined {\n if (links && links.length > 0) {\n return links.map(({ context: { spanId, traceId, traceFlags, ...restContext }, attributes }) => ({\n span_id: spanId,\n trace_id: traceId,\n sampled: traceFlags === TRACE_FLAG_SAMPLED,\n attributes,\n ...restContext,\n }));\n } else {\n return undefined;\n }\n}\n\n/**\n * Convert a span time input into a timestamp in seconds.\n */\nexport function spanTimeInputToSeconds(input: SpanTimeInput | undefined): number {\n if (typeof input === 'number') {\n return ensureTimestampInSeconds(input);\n }\n\n if (Array.isArray(input)) {\n // See {@link HrTime} for the array-based time format\n return input[0] + input[1] / 1e9;\n }\n\n if (input instanceof Date) {\n return ensureTimestampInSeconds(input.getTime());\n }\n\n return timestampInSeconds();\n}\n\n/**\n * Converts a timestamp to second, if it was in milliseconds, or keeps it as second.\n */\nfunction ensureTimestampInSeconds(timestamp: number): number {\n const isMs = timestamp > 9999999999;\n return isMs ? timestamp / 1000 : timestamp;\n}\n\n/**\n * Convert a span to a JSON representation.\n */\n// Note: Because of this, we currently have a circular type dependency (which we opted out of in package.json).\n// This is not avoidable as we need `spanToJSON` in `spanUtils.ts`, which in turn is needed by `span.ts` for backwards compatibility.\n// And `spanToJSON` needs the Span class from `span.ts` to check here.\nexport function spanToJSON(span: Span): SpanJSON {\n if (spanIsSentrySpan(span)) {\n return span.getSpanJSON();\n }\n\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n\n // Handle a span from @opentelemetry/sdk-base-trace's `Span` class\n if (spanIsOpenTelemetrySdkTraceBaseSpan(span)) {\n const { attributes, startTime, name, endTime, status, links } = span;\n\n // In preparation for the next major of OpenTelemetry, we want to support\n // looking up the parent span id according to the new API\n // In OTel v1, the parent span id is accessed as `parentSpanId`\n // In OTel v2, the parent span id is accessed as `spanId` on the `parentSpanContext`\n const parentSpanId =\n 'parentSpanId' in span\n ? span.parentSpanId\n : 'parentSpanContext' in span\n ? (span.parentSpanContext as { spanId?: string } | undefined)?.spanId\n : undefined;\n\n return {\n span_id,\n trace_id,\n data: attributes,\n description: name,\n parent_span_id: parentSpanId,\n start_timestamp: spanTimeInputToSeconds(startTime),\n // This is [0,0] by default in OTEL, in which case we want to interpret this as no end time\n timestamp: spanTimeInputToSeconds(endTime) || undefined,\n status: getStatusMessage(status),\n op: attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP],\n origin: attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] as SpanOrigin | undefined,\n links: convertSpanLinksForEnvelope(links),\n };\n }\n\n // Finally, at least we have `spanContext()`....\n // This should not actually happen in reality, but we need to handle it for type safety.\n return {\n span_id,\n trace_id,\n start_timestamp: 0,\n data: {},\n };\n}\n\nfunction spanIsOpenTelemetrySdkTraceBaseSpan(span: Span): span is OpenTelemetrySdkTraceBaseSpan {\n const castSpan = span as Partial;\n return !!castSpan.attributes && !!castSpan.startTime && !!castSpan.name && !!castSpan.endTime && !!castSpan.status;\n}\n\n/** Exported only for tests. */\nexport interface OpenTelemetrySdkTraceBaseSpan extends Span {\n attributes: SpanAttributes;\n startTime: SpanTimeInput;\n name: string;\n status: SpanStatus;\n endTime: SpanTimeInput;\n parentSpanId?: string;\n links?: SpanLink[];\n}\n\n/**\n * Sadly, due to circular dependency checks we cannot actually import the Span class here and check for instanceof.\n * :( So instead we approximate this by checking if it has the `getSpanJSON` method.\n */\nfunction spanIsSentrySpan(span: Span): span is SentrySpan {\n return typeof (span as SentrySpan).getSpanJSON === 'function';\n}\n\n/**\n * Returns true if a span is sampled.\n * In most cases, you should just use `span.isRecording()` instead.\n * However, this has a slightly different semantic, as it also returns false if the span is finished.\n * So in the case where this distinction is important, use this method.\n */\nexport function spanIsSampled(span: Span): boolean {\n // We align our trace flags with the ones OpenTelemetry use\n // So we also check for sampled the same way they do.\n const { traceFlags } = span.spanContext();\n return traceFlags === TRACE_FLAG_SAMPLED;\n}\n\n/** Get the status message to use for a JSON representation of a span. */\nexport function getStatusMessage(status: SpanStatus | undefined): string | undefined {\n if (!status || status.code === SPAN_STATUS_UNSET) {\n return undefined;\n }\n\n if (status.code === SPAN_STATUS_OK) {\n return 'ok';\n }\n\n return status.message || 'internal_error';\n}\n\nconst CHILD_SPANS_FIELD = '_sentryChildSpans';\nconst ROOT_SPAN_FIELD = '_sentryRootSpan';\n\ntype SpanWithPotentialChildren = Span & {\n [CHILD_SPANS_FIELD]?: Set;\n [ROOT_SPAN_FIELD]?: Span;\n};\n\n/**\n * Adds an opaque child span reference to a span.\n */\nexport function addChildSpanToSpan(span: SpanWithPotentialChildren, childSpan: Span): void {\n // We store the root span reference on the child span\n // We need this for `getRootSpan()` to work\n const rootSpan = span[ROOT_SPAN_FIELD] || span;\n addNonEnumerableProperty(childSpan as SpanWithPotentialChildren, ROOT_SPAN_FIELD, rootSpan);\n\n // We store a list of child spans on the parent span\n // We need this for `getSpanDescendants()` to work\n if (span[CHILD_SPANS_FIELD]) {\n span[CHILD_SPANS_FIELD].add(childSpan);\n } else {\n addNonEnumerableProperty(span, CHILD_SPANS_FIELD, new Set([childSpan]));\n }\n}\n\n/** This is only used internally by Idle Spans. */\nexport function removeChildSpanFromSpan(span: SpanWithPotentialChildren, childSpan: Span): void {\n if (span[CHILD_SPANS_FIELD]) {\n span[CHILD_SPANS_FIELD].delete(childSpan);\n }\n}\n\n/**\n * Returns an array of the given span and all of its descendants.\n */\nexport function getSpanDescendants(span: SpanWithPotentialChildren): Span[] {\n const resultSet = new Set();\n\n function addSpanChildren(span: SpanWithPotentialChildren): void {\n // This exit condition is required to not infinitely loop in case of a circular dependency.\n if (resultSet.has(span)) {\n return;\n // We want to ignore unsampled spans (e.g. non recording spans)\n } else if (spanIsSampled(span)) {\n resultSet.add(span);\n const childSpans = span[CHILD_SPANS_FIELD] ? Array.from(span[CHILD_SPANS_FIELD]) : [];\n for (const childSpan of childSpans) {\n addSpanChildren(childSpan);\n }\n }\n }\n\n addSpanChildren(span);\n\n return Array.from(resultSet);\n}\n\n/**\n * Returns the root span of a given span.\n */\nexport function getRootSpan(span: SpanWithPotentialChildren): Span {\n return span[ROOT_SPAN_FIELD] || span;\n}\n\n/**\n * Returns the currently active span.\n */\nexport function getActiveSpan(): Span | undefined {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n if (acs.getActiveSpan) {\n return acs.getActiveSpan();\n }\n\n return _getSpanForScope(getCurrentScope());\n}\n\n/**\n * Logs a warning once if `beforeSendSpan` is used to drop spans.\n */\nexport function showSpanDropWarning(): void {\n if (!hasShownSpanDropWarning) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n '[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.',\n );\n });\n hasShownSpanDropWarning = true;\n }\n}\n\n/**\n * Updates the name of the given span and ensures that the span name is not\n * overwritten by the Sentry SDK.\n *\n * Use this function instead of `span.updateName()` if you want to make sure that\n * your name is kept. For some spans, for example root `http.server` spans the\n * Sentry SDK would otherwise overwrite the span name with a high-quality name\n * it infers when the span ends.\n *\n * Use this function in server code or when your span is started on the server\n * and on the client (browser). If you only update a span name on the client,\n * you can also use `span.updateName()` the SDK does not overwrite the name.\n *\n * @param span - The span to update the name of.\n * @param name - The name to set on the span.\n */\nexport function updateSpanName(span: Span, name: string): void {\n span.updateName(name);\n span.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'custom',\n [SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME]: name,\n });\n}\n","import { DEBUG_BUILD } from '../debug-build';\nimport { addGlobalErrorInstrumentationHandler } from '../instrument/globalError';\nimport { addGlobalUnhandledRejectionInstrumentationHandler } from '../instrument/globalUnhandledRejection';\nimport { debug } from '../utils/debug-logger';\nimport { getActiveSpan, getRootSpan } from '../utils/spanUtils';\nimport { SPAN_STATUS_ERROR } from './spanstatus';\n\nlet errorsInstrumented = false;\n\n/** Only exposed for testing */\nexport function _resetErrorsInstrumented(): void {\n errorsInstrumented = false;\n}\n\n/**\n * Ensure that global errors automatically set the active span status.\n */\nexport function registerSpanErrorInstrumentation(): void {\n if (errorsInstrumented) {\n return;\n }\n\n /**\n * If an error or unhandled promise occurs, we mark the active root span as failed\n */\n function errorCallback(): void {\n const activeSpan = getActiveSpan();\n const rootSpan = activeSpan && getRootSpan(activeSpan);\n if (rootSpan) {\n const message = 'internal_error';\n DEBUG_BUILD && debug.log(`[Tracing] Root span: ${message} -> Global error occurred`);\n rootSpan.setStatus({ code: SPAN_STATUS_ERROR, message });\n }\n }\n\n // The function name will be lost when bundling but we need to be able to identify this listener later to maintain the\n // node.js default exit behaviour\n errorCallback.tag = 'sentry_tracingErrorCallback';\n\n errorsInstrumented = true;\n addGlobalErrorInstrumentationHandler(errorCallback);\n addGlobalUnhandledRejectionInstrumentationHandler(errorCallback);\n}\n","import { getClient } from '../currentScopes';\nimport type { CoreOptions } from '../types-hoist/options';\n\n// Treeshakable guard to remove all code related to tracing\ndeclare const __SENTRY_TRACING__: boolean | undefined;\n\n/**\n * Determines if span recording is currently enabled.\n *\n * Spans are recorded when at least one of `tracesSampleRate` and `tracesSampler`\n * is defined in the SDK config. This function does not make any assumption about\n * sampling decisions, it only checks if the SDK is configured to record spans.\n *\n * Important: This function only determines if span recording is enabled. Trace\n * continuation and propagation is separately controlled and not covered by this function.\n * If this function returns `false`, traces can still be propagated (which is what\n * we refer to by \"Tracing without Performance\")\n * @see https://develop.sentry.dev/sdk/telemetry/traces/tracing-without-performance/\n *\n * @param maybeOptions An SDK options object to be passed to this function.\n * If this option is not provided, the function will use the current client's options.\n */\nexport function hasSpansEnabled(\n maybeOptions?: Pick | undefined,\n): boolean {\n if (typeof __SENTRY_TRACING__ === 'boolean' && !__SENTRY_TRACING__) {\n return false;\n }\n\n const options = maybeOptions || getClient()?.getOptions();\n return (\n !!options &&\n // Note: This check is `!= null`, meaning \"nullish\". `0` is not \"nullish\", `undefined` and `null` are. (This comment was brought to you by 15 minutes of questioning life)\n (options.tracesSampleRate != null || !!options.tracesSampler)\n );\n}\n","import { DEBUG_BUILD } from '../debug-build';\nimport type { ClientOptions } from '../types-hoist/options';\nimport type { SpanJSON } from '../types-hoist/span';\nimport { debug } from './debug-logger';\nimport { isMatchingPattern } from './string';\n\nfunction logIgnoredSpan(droppedSpan: Pick): void {\n debug.log(`Ignoring span ${droppedSpan.op} - ${droppedSpan.description} because it matches \\`ignoreSpans\\`.`);\n}\n\n/**\n * Check if a span should be ignored based on the ignoreSpans configuration.\n */\nexport function shouldIgnoreSpan(\n span: Pick,\n ignoreSpans: Required['ignoreSpans'],\n): boolean {\n if (!ignoreSpans?.length || !span.description) {\n return false;\n }\n\n for (const pattern of ignoreSpans) {\n if (isStringOrRegExp(pattern)) {\n if (isMatchingPattern(span.description, pattern)) {\n DEBUG_BUILD && logIgnoredSpan(span);\n return true;\n }\n continue;\n }\n\n if (!pattern.name && !pattern.op) {\n continue;\n }\n\n const nameMatches = pattern.name ? isMatchingPattern(span.description, pattern.name) : true;\n const opMatches = pattern.op ? span.op && isMatchingPattern(span.op, pattern.op) : true;\n\n // This check here is only correct because we can guarantee that we ran `isMatchingPattern`\n // for at least one of `nameMatches` and `opMatches`. So in contrary to how this looks,\n // not both op and name actually have to match. This is the most efficient way to check\n // for all combinations of name and op patterns.\n if (nameMatches && opMatches) {\n DEBUG_BUILD && logIgnoredSpan(span);\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Takes a list of spans, and a span that was dropped, and re-parents the child spans of the dropped span to the parent of the dropped span, if possible.\n * This mutates the spans array in place!\n */\nexport function reparentChildSpans(spans: SpanJSON[], dropSpan: SpanJSON): void {\n const droppedSpanParentId = dropSpan.parent_span_id;\n const droppedSpanId = dropSpan.span_id;\n\n // This should generally not happen, as we do not apply this on root spans\n // but to be safe, we just bail in this case\n if (!droppedSpanParentId) {\n return;\n }\n\n for (const span of spans) {\n if (span.parent_span_id === droppedSpanId) {\n span.parent_span_id = droppedSpanParentId;\n }\n }\n}\n\nfunction isStringOrRegExp(value: unknown): value is string | RegExp {\n return typeof value === 'string' || value instanceof RegExp;\n}\n","export const DEFAULT_ENVIRONMENT = 'production';\nexport const DEV_ENVIRONMENT = 'development';\n","import type { Client } from '../client';\nimport { DEFAULT_ENVIRONMENT } from '../constants';\nimport { getClient } from '../currentScopes';\nimport type { Scope } from '../scope';\nimport {\n SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE,\n SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE,\n SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n} from '../semanticAttributes';\nimport type { DynamicSamplingContext } from '../types-hoist/envelope';\nimport type { Span } from '../types-hoist/span';\nimport { baggageHeaderToDynamicSamplingContext, dynamicSamplingContextToSentryBaggageHeader } from '../utils/baggage';\nimport { extractOrgIdFromClient } from '../utils/dsn';\nimport { hasSpansEnabled } from '../utils/hasSpansEnabled';\nimport { addNonEnumerableProperty } from '../utils/object';\nimport { getRootSpan, spanIsSampled, spanToJSON } from '../utils/spanUtils';\nimport { getCapturedScopesOnSpan } from './utils';\n\n/**\n * If you change this value, also update the terser plugin config to\n * avoid minification of the object property!\n */\nconst FROZEN_DSC_FIELD = '_frozenDsc';\n\ntype SpanWithMaybeDsc = Span & {\n [FROZEN_DSC_FIELD]?: Partial | undefined;\n};\n\n/**\n * Freeze the given DSC on the given span.\n */\nexport function freezeDscOnSpan(span: Span, dsc: Partial): void {\n const spanWithMaybeDsc = span as SpanWithMaybeDsc;\n addNonEnumerableProperty(spanWithMaybeDsc, FROZEN_DSC_FIELD, dsc);\n}\n\n/**\n * Creates a dynamic sampling context from a client.\n *\n * Dispatches the `createDsc` lifecycle hook as a side effect.\n */\nexport function getDynamicSamplingContextFromClient(trace_id: string, client: Client): DynamicSamplingContext {\n const options = client.getOptions();\n\n const { publicKey: public_key } = client.getDsn() || {};\n\n // Instead of conditionally adding non-undefined values, we add them and then remove them if needed\n // otherwise, the order of baggage entries changes, which \"breaks\" a bunch of tests etc.\n const dsc: DynamicSamplingContext = {\n environment: options.environment || DEFAULT_ENVIRONMENT,\n release: options.release,\n public_key,\n trace_id,\n org_id: extractOrgIdFromClient(client),\n };\n\n client.emit('createDsc', dsc);\n\n return dsc;\n}\n\n/**\n * Get the dynamic sampling context for the currently active scopes.\n */\nexport function getDynamicSamplingContextFromScope(client: Client, scope: Scope): Partial {\n const propagationContext = scope.getPropagationContext();\n return propagationContext.dsc || getDynamicSamplingContextFromClient(propagationContext.traceId, client);\n}\n\n/**\n * Creates a dynamic sampling context from a span (and client and scope)\n *\n * @param span the span from which a few values like the root span name and sample rate are extracted.\n *\n * @returns a dynamic sampling context\n */\nexport function getDynamicSamplingContextFromSpan(span: Span): Readonly> {\n const client = getClient();\n if (!client) {\n return {};\n }\n\n const rootSpan = getRootSpan(span);\n const rootSpanJson = spanToJSON(rootSpan);\n const rootSpanAttributes = rootSpanJson.data;\n const traceState = rootSpan.spanContext().traceState;\n\n // The span sample rate that was locally applied to the root span should also always be applied to the DSC, even if the DSC is frozen.\n // This is so that the downstream traces/services can use parentSampleRate in their `tracesSampler` to make consistent sampling decisions across the entire trace.\n const rootSpanSampleRate =\n traceState?.get('sentry.sample_rate') ??\n rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE] ??\n rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE];\n\n function applyLocalSampleRateToDsc(dsc: Partial): Partial {\n if (typeof rootSpanSampleRate === 'number' || typeof rootSpanSampleRate === 'string') {\n dsc.sample_rate = `${rootSpanSampleRate}`;\n }\n return dsc;\n }\n\n // For core implementation, we freeze the DSC onto the span as a non-enumerable property\n const frozenDsc = (rootSpan as SpanWithMaybeDsc)[FROZEN_DSC_FIELD];\n if (frozenDsc) {\n return applyLocalSampleRateToDsc(frozenDsc);\n }\n\n // For OpenTelemetry, we freeze the DSC on the trace state\n const traceStateDsc = traceState?.get('sentry.dsc');\n\n // If the span has a DSC, we want it to take precedence\n const dscOnTraceState = traceStateDsc && baggageHeaderToDynamicSamplingContext(traceStateDsc);\n\n if (dscOnTraceState) {\n return applyLocalSampleRateToDsc(dscOnTraceState);\n }\n\n // Else, we generate it from the span\n const dsc = getDynamicSamplingContextFromClient(span.spanContext().traceId, client);\n\n // We don't want to have a transaction name in the DSC if the source is \"url\" because URLs might contain PII\n const source = rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n\n // after JSON conversion, txn.name becomes jsonSpan.description\n const name = rootSpanJson.description;\n if (source !== 'url' && name) {\n dsc.transaction = name;\n }\n\n // How can we even land here with hasSpansEnabled() returning false?\n // Otel creates a Non-recording span in Tracing Without Performance mode when handling incoming requests\n // So we end up with an active span that is not sampled (neither positively nor negatively)\n if (hasSpansEnabled()) {\n dsc.sampled = String(spanIsSampled(rootSpan));\n dsc.sample_rand =\n // In OTEL we store the sample rand on the trace state because we cannot access scopes for NonRecordingSpans\n // The Sentry OTEL SpanSampler takes care of writing the sample rand on the root span\n traceState?.get('sentry.sample_rand') ??\n // On all other platforms we can actually get the scopes from a root span (we use this as a fallback)\n getCapturedScopesOnSpan(rootSpan).scope?.getPropagationContext().sampleRand.toString();\n }\n\n applyLocalSampleRateToDsc(dsc);\n\n client.emit('createDsc', dsc, rootSpan);\n\n return dsc;\n}\n\n/**\n * Convert a Span to a baggage header.\n */\nexport function spanToBaggageHeader(span: Span): string | undefined {\n const dsc = getDynamicSamplingContextFromSpan(span);\n return dynamicSamplingContextToSentryBaggageHeader(dsc);\n}\n","import type {\n SentrySpanArguments,\n Span,\n SpanAttributes,\n SpanAttributeValue,\n SpanContextData,\n SpanTimeInput,\n} from '../types-hoist/span';\nimport type { SpanStatus } from '../types-hoist/spanStatus';\nimport { generateSpanId, generateTraceId } from '../utils/propagationContext';\nimport { TRACE_FLAG_NONE } from '../utils/spanUtils';\n\n/**\n * A Sentry Span that is non-recording, meaning it will not be sent to Sentry.\n */\nexport class SentryNonRecordingSpan implements Span {\n private _traceId: string;\n private _spanId: string;\n\n public constructor(spanContext: SentrySpanArguments = {}) {\n this._traceId = spanContext.traceId || generateTraceId();\n this._spanId = spanContext.spanId || generateSpanId();\n }\n\n /** @inheritdoc */\n public spanContext(): SpanContextData {\n return {\n spanId: this._spanId,\n traceId: this._traceId,\n traceFlags: TRACE_FLAG_NONE,\n };\n }\n\n /** @inheritdoc */\n public end(_timestamp?: SpanTimeInput): void {}\n\n /** @inheritdoc */\n public setAttribute(_key: string, _value: SpanAttributeValue | undefined): this {\n return this;\n }\n\n /** @inheritdoc */\n public setAttributes(_values: SpanAttributes): this {\n return this;\n }\n\n /** @inheritdoc */\n public setStatus(_status: SpanStatus): this {\n return this;\n }\n\n /** @inheritdoc */\n public updateName(_name: string): this {\n return this;\n }\n\n /** @inheritdoc */\n public isRecording(): boolean {\n return false;\n }\n\n /** @inheritdoc */\n public addEvent(\n _name: string,\n _attributesOrStartTime?: SpanAttributes | SpanTimeInput,\n _startTime?: SpanTimeInput,\n ): this {\n return this;\n }\n\n /** @inheritDoc */\n public addLink(_link: unknown): this {\n return this;\n }\n\n /** @inheritDoc */\n public addLinks(_links: unknown[]): this {\n return this;\n }\n\n /**\n * This should generally not be used,\n * but we need it for being compliant with the OTEL Span interface.\n *\n * @hidden\n * @internal\n */\n public recordException(_exception: unknown, _time?: number | undefined): void {\n // noop\n }\n}\n","import type { Primitive } from '../types-hoist/misc';\nimport { isSyntheticEvent, isVueViewModel } from './is';\nimport { convertToPlainObject } from './object';\nimport { getFunctionName, getVueInternalName } from './stacktrace';\n\ntype Prototype = { constructor?: (...args: unknown[]) => unknown };\n// This is a hack to placate TS, relying on the fact that technically, arrays are objects with integer keys. Normally we\n// think of those keys as actual numbers, but `arr['0']` turns out to work just as well as `arr[0]`, and doing it this\n// way lets us use a single type in the places where behave as if we are only dealing with objects, even if some of them\n// might be arrays.\ntype ObjOrArray = { [key: string]: T };\n\ntype MemoFunc = [\n // memoize\n (obj: object) => boolean,\n // unmemoize\n (obj: object) => void,\n];\n\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normalized output.\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function normalize(input: unknown, depth: number = 100, maxProperties: number = +Infinity): any {\n try {\n // since we're at the outermost level, we don't provide a key\n return visit('', input, depth, maxProperties);\n } catch (err) {\n return { ERROR: `**non-serializable** (${err})` };\n }\n}\n\n/** JSDoc */\nexport function normalizeToSize(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n object: { [key: string]: any },\n // Default Node.js REPL depth\n depth: number = 3,\n // 100kB, as 200kB is max payload size, so half sounds reasonable\n maxSize: number = 100 * 1024,\n): T {\n const normalized = normalize(object, depth);\n\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n\n return normalized as T;\n}\n\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(\n key: string,\n value: unknown,\n depth: number = +Infinity,\n maxProperties: number = +Infinity,\n memo = memoBuilder(),\n): Primitive | ObjOrArray {\n const [memoize, unmemoize] = memo;\n\n // Get the simple cases out of the way first\n if (\n value == null || // this matches null and undefined -> eqeq not eqeqeq\n ['boolean', 'string'].includes(typeof value) ||\n (typeof value === 'number' && Number.isFinite(value))\n ) {\n return value as Primitive;\n }\n\n const stringified = stringifyValue(key, value);\n\n // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n if (!stringified.startsWith('[object ')) {\n return stringified;\n }\n\n // From here on, we can assert that `value` is either an object or an array.\n\n // Do not normalize objects that we know have already been normalized. As a general rule, the\n // \"__sentry_skip_normalization__\" property should only be used sparingly and only should only be set on objects that\n // have already been normalized.\n if ((value as ObjOrArray)['__sentry_skip_normalization__']) {\n return value as ObjOrArray;\n }\n\n // We can set `__sentry_override_normalization_depth__` on an object to ensure that from there\n // We keep a certain amount of depth.\n // This should be used sparingly, e.g. we use it for the redux integration to ensure we get a certain amount of state.\n const remainingDepth =\n typeof (value as ObjOrArray)['__sentry_override_normalization_depth__'] === 'number'\n ? ((value as ObjOrArray)['__sentry_override_normalization_depth__'] as number)\n : depth;\n\n // We're also done if we've reached the max depth\n if (remainingDepth === 0) {\n // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n return stringified.replace('object ', '');\n }\n\n // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n if (memoize(value)) {\n return '[Circular ~]';\n }\n\n // If the value has a `toJSON` method, we call it to extract more information\n const valueWithToJSON = value as unknown & { toJSON?: () => unknown };\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n try {\n const jsonValue = valueWithToJSON.toJSON();\n // We need to normalize the return value of `.toJSON()` in case it has circular references\n return visit('', jsonValue, remainingDepth - 1, maxProperties, memo);\n } catch {\n // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n }\n }\n\n // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n // property/entry, and keep track of the number of items we add to it.\n const normalized = (Array.isArray(value) ? [] : {}) as ObjOrArray;\n let numAdded = 0;\n\n // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n // properties are non-enumerable and otherwise would get missed.\n const visitable = convertToPlainObject(value as ObjOrArray);\n\n for (const visitKey in visitable) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n\n if (numAdded >= maxProperties) {\n normalized[visitKey] = '[MaxProperties ~]';\n break;\n }\n\n // Recursively visit all the child nodes\n const visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, remainingDepth - 1, maxProperties, memo);\n\n numAdded++;\n }\n\n // Once we've visited all the branches, remove the parent from memo storage\n unmemoize(value);\n\n // Return accumulated values\n return normalized;\n}\n\n/* eslint-disable complexity */\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(\n key: unknown,\n // this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n // our internal use, it'll do\n value: Exclude,\n): string {\n try {\n if (key === 'domain' && value && typeof value === 'object' && (value as { _events: unknown })._events) {\n return '[Domain]';\n }\n\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n\n // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n\n if (isVueViewModel(value)) {\n return getVueInternalName(value);\n }\n\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n\n if (typeof value === 'number' && !Number.isFinite(value)) {\n return `[${value}]`;\n }\n\n if (typeof value === 'function') {\n return `[Function: ${getFunctionName(value)}]`;\n }\n\n if (typeof value === 'symbol') {\n return `[${String(value)}]`;\n }\n\n // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n if (typeof value === 'bigint') {\n return `[BigInt: ${String(value)}]`;\n }\n\n // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n // we can make sure that only plain objects come out that way.\n const objName = getConstructorName(value);\n\n // Handle HTML Elements\n if (/^HTML(\\w*)Element$/.test(objName)) {\n return `[HTMLElement: ${objName}]`;\n }\n\n return `[object ${objName}]`;\n } catch (err) {\n return `**non-serializable** (${err})`;\n }\n}\n/* eslint-enable complexity */\n\nfunction getConstructorName(value: unknown): string {\n const prototype: Prototype | null = Object.getPrototypeOf(value);\n\n return prototype?.constructor ? prototype.constructor.name : 'null prototype';\n}\n\n/** Calculates bytes size of input string */\nfunction utf8Length(value: string): number {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\n/** Calculates bytes size of input object */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction jsonSize(value: any): number {\n return utf8Length(JSON.stringify(value));\n}\n\n/**\n * Normalizes URLs in exceptions and stacktraces to a base path so Sentry can fingerprint\n * across platforms and working directory.\n *\n * @param url The URL to be normalized.\n * @param basePath The application base path.\n * @returns The normalized URL.\n */\nexport function normalizeUrlToBase(url: string, basePath: string): string {\n const escapedBase = basePath\n // Backslash to forward\n .replace(/\\\\/g, '/')\n // Escape RegExp special characters\n .replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&');\n\n let newUrl = url;\n try {\n newUrl = decodeURI(url);\n } catch {\n // Sometime this breaks\n }\n return (\n newUrl\n .replace(/\\\\/g, '/')\n .replace(/webpack:\\/?/g, '') // Remove intermediate base path\n // oxlint-disable-next-line sdk/no-regexp-constructor\n .replace(new RegExp(`(file://)?/*${escapedBase}/*`, 'ig'), 'app:///')\n );\n}\n\n/**\n * Helper to decycle json objects\n */\nfunction memoBuilder(): MemoFunc {\n const inner = new WeakSet();\n function memoize(obj: object): boolean {\n if (inner.has(obj)) {\n return true;\n }\n inner.add(obj);\n return false;\n }\n\n function unmemoize(obj: object): void {\n inner.delete(obj);\n }\n return [memoize, unmemoize];\n}\n","import { getSentryCarrier } from '../carrier';\nimport type { Attachment } from '../types-hoist/attachment';\nimport type { DataCategory } from '../types-hoist/datacategory';\nimport type { DsnComponents } from '../types-hoist/dsn';\nimport type {\n AttachmentItem,\n BaseEnvelopeHeaders,\n BaseEnvelopeItemHeaders,\n Envelope,\n EnvelopeItemType,\n EventEnvelopeHeaders,\n SpanItem,\n} from '../types-hoist/envelope';\nimport type { Event } from '../types-hoist/event';\nimport type { SdkInfo } from '../types-hoist/sdkinfo';\nimport type { SdkMetadata } from '../types-hoist/sdkmetadata';\nimport type { SpanJSON } from '../types-hoist/span';\nimport { dsnToString } from './dsn';\nimport { normalize } from './normalize';\nimport { GLOBAL_OBJ } from './worldwide';\n\n/**\n * Creates an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nexport function createEnvelope(headers: E[0], items: E[1] = []): E {\n return [headers, items] as E;\n}\n\n/**\n * Add an item to an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nexport function addItemToEnvelope(envelope: E, newItem: E[1][number]): E {\n const [headers, items] = envelope;\n return [headers, [...items, newItem]] as unknown as E;\n}\n\n/**\n * Convenience function to loop through the items and item types of an envelope.\n * (This function was mostly created because working with envelope types is painful at the moment)\n *\n * If the callback returns true, the rest of the items will be skipped.\n */\nexport function forEachEnvelopeItem(\n envelope: Envelope,\n callback: (envelopeItem: E[1][number], envelopeItemType: E[1][number][0]['type']) => boolean | void,\n): boolean {\n const envelopeItems = envelope[1];\n\n for (const envelopeItem of envelopeItems) {\n const envelopeItemType = envelopeItem[0].type;\n const result = callback(envelopeItem, envelopeItemType);\n\n if (result) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Returns true if the envelope contains any of the given envelope item types\n */\nexport function envelopeContainsItemType(envelope: Envelope, types: EnvelopeItemType[]): boolean {\n return forEachEnvelopeItem(envelope, (_, type) => types.includes(type));\n}\n\n/**\n * Encode a string to UTF8 array.\n */\nfunction encodeUTF8(input: string): Uint8Array {\n const carrier = getSentryCarrier(GLOBAL_OBJ);\n return carrier.encodePolyfill ? carrier.encodePolyfill(input) : new TextEncoder().encode(input);\n}\n\n/**\n * Decode a UTF8 array to string.\n */\nfunction decodeUTF8(input: Uint8Array): string {\n const carrier = getSentryCarrier(GLOBAL_OBJ);\n return carrier.decodePolyfill ? carrier.decodePolyfill(input) : new TextDecoder().decode(input);\n}\n\n/**\n * Serializes an envelope.\n */\nexport function serializeEnvelope(envelope: Envelope): string | Uint8Array {\n const [envHeaders, items] = envelope;\n // Initially we construct our envelope as a string and only convert to binary chunks if we encounter binary data\n let parts: string | Uint8Array[] = JSON.stringify(envHeaders);\n\n function append(next: string | Uint8Array): void {\n if (typeof parts === 'string') {\n parts = typeof next === 'string' ? parts + next : [encodeUTF8(parts), next];\n } else {\n parts.push(typeof next === 'string' ? encodeUTF8(next) : next);\n }\n }\n\n for (const item of items) {\n const [itemHeaders, payload] = item;\n\n append(`\\n${JSON.stringify(itemHeaders)}\\n`);\n\n if (typeof payload === 'string' || payload instanceof Uint8Array) {\n append(payload);\n } else {\n let stringifiedPayload: string;\n try {\n stringifiedPayload = JSON.stringify(payload);\n } catch {\n // In case, despite all our efforts to keep `payload` circular-dependency-free, `JSON.stringify()` still\n // fails, we try again after normalizing it again with infinite normalization depth. This of course has a\n // performance impact but in this case a performance hit is better than throwing.\n stringifiedPayload = JSON.stringify(normalize(payload));\n }\n append(stringifiedPayload);\n }\n }\n\n return typeof parts === 'string' ? parts : concatBuffers(parts);\n}\n\nfunction concatBuffers(buffers: Uint8Array[]): Uint8Array {\n const totalLength = buffers.reduce((acc, buf) => acc + buf.length, 0);\n\n const merged = new Uint8Array(totalLength);\n let offset = 0;\n for (const buffer of buffers) {\n merged.set(buffer, offset);\n offset += buffer.length;\n }\n\n return merged;\n}\n\n/**\n * Parses an envelope\n */\nexport function parseEnvelope(env: string | Uint8Array): Envelope {\n let buffer = typeof env === 'string' ? encodeUTF8(env) : env;\n\n function readBinary(length: number): Uint8Array {\n const bin = buffer.subarray(0, length);\n // Replace the buffer with the remaining data excluding trailing newline\n buffer = buffer.subarray(length + 1);\n return bin;\n }\n\n function readJson(): T {\n let i = buffer.indexOf(0xa);\n // If we couldn't find a newline, we must have found the end of the buffer\n if (i < 0) {\n i = buffer.length;\n }\n\n return JSON.parse(decodeUTF8(readBinary(i))) as T;\n }\n\n const envelopeHeader = readJson();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const items: [any, any][] = [];\n\n while (buffer.length) {\n const itemHeader = readJson();\n const binaryLength = typeof itemHeader.length === 'number' ? itemHeader.length : undefined;\n\n items.push([itemHeader, binaryLength ? readBinary(binaryLength) : readJson()]);\n }\n\n return [envelopeHeader, items];\n}\n\n/**\n * Creates envelope item for a single span\n */\nexport function createSpanEnvelopeItem(spanJson: Partial): SpanItem {\n const spanHeaders: SpanItem[0] = {\n type: 'span',\n };\n\n return [spanHeaders, spanJson];\n}\n\n/**\n * Creates attachment envelope items\n */\nexport function createAttachmentEnvelopeItem(attachment: Attachment): AttachmentItem {\n const buffer = typeof attachment.data === 'string' ? encodeUTF8(attachment.data) : attachment.data;\n\n return [\n {\n type: 'attachment',\n length: buffer.length,\n filename: attachment.filename,\n content_type: attachment.contentType,\n attachment_type: attachment.attachmentType,\n },\n buffer,\n ];\n}\n\ntype OverriddenItemType = Exclude;\n\n// Map of envelope item types to data categories where the category differs from the type.\n// Types that map to themselves (session, attachment, transaction, profile, feedback, span, metric) fall through.\nconst DATA_CATEGORY_OVERRIDES: Record = {\n sessions: 'session',\n event: 'error',\n client_report: 'internal',\n user_report: 'default',\n profile_chunk: 'profile',\n replay_event: 'replay',\n replay_recording: 'replay',\n check_in: 'monitor',\n raw_security: 'security',\n log: 'log_item',\n trace_metric: 'metric',\n};\n\nfunction _isOverriddenType(type: EnvelopeItemType): type is OverriddenItemType {\n return type in DATA_CATEGORY_OVERRIDES;\n}\n\n/**\n * Maps the type of an envelope item to a data category.\n */\nexport function envelopeItemTypeToDataCategory(type: EnvelopeItemType): DataCategory {\n return _isOverriddenType(type) ? DATA_CATEGORY_OVERRIDES[type] : type;\n}\n\n/** Extracts the minimal SDK info from the metadata or an events */\nexport function getSdkMetadataForEnvelopeHeader(metadataOrEvent?: SdkMetadata | Event): SdkInfo | undefined {\n if (!metadataOrEvent?.sdk) {\n return;\n }\n const { name, version } = metadataOrEvent.sdk;\n return { name, version };\n}\n\n/**\n * Creates event envelope headers, based on event, sdk info and tunnel\n * Note: This function was extracted from the core package to make it available in Replay\n */\nexport function createEventEnvelopeHeaders(\n event: Event,\n sdkInfo: SdkInfo | undefined,\n tunnel: string | undefined,\n dsn?: DsnComponents,\n): EventEnvelopeHeaders {\n const dynamicSamplingContext = event.sdkProcessingMetadata?.dynamicSamplingContext;\n return {\n event_id: event.event_id as string,\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n ...(dynamicSamplingContext && {\n trace: dynamicSamplingContext,\n }),\n };\n}\n","import type { Client } from './client';\nimport { getDynamicSamplingContextFromSpan } from './tracing/dynamicSamplingContext';\nimport type { SentrySpan } from './tracing/sentrySpan';\nimport type { LegacyCSPReport } from './types-hoist/csp';\nimport type { DsnComponents } from './types-hoist/dsn';\nimport type {\n DynamicSamplingContext,\n EventEnvelope,\n EventItem,\n RawSecurityEnvelope,\n RawSecurityItem,\n SessionEnvelope,\n SessionItem,\n SpanEnvelope,\n SpanItem,\n} from './types-hoist/envelope';\nimport type { Event } from './types-hoist/event';\nimport type { SdkInfo } from './types-hoist/sdkinfo';\nimport type { SdkMetadata } from './types-hoist/sdkmetadata';\nimport type { Session, SessionAggregates } from './types-hoist/session';\nimport { dsnToString } from './utils/dsn';\nimport {\n createEnvelope,\n createEventEnvelopeHeaders,\n createSpanEnvelopeItem,\n getSdkMetadataForEnvelopeHeader,\n} from './utils/envelope';\nimport { uuid4 } from './utils/misc';\nimport { shouldIgnoreSpan } from './utils/should-ignore-span';\nimport { showSpanDropWarning, spanToJSON } from './utils/spanUtils';\n\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n *\n * @internal, exported only for testing\n **/\nexport function _enhanceEventWithSdkInfo(event: Event, newSdkInfo?: SdkInfo): Event {\n if (!newSdkInfo) {\n return event;\n }\n\n const eventSdkInfo = event.sdk || {};\n\n event.sdk = {\n ...eventSdkInfo,\n name: eventSdkInfo.name || newSdkInfo.name,\n version: eventSdkInfo.version || newSdkInfo.version,\n integrations: [...(event.sdk?.integrations || []), ...(newSdkInfo.integrations || [])],\n packages: [...(event.sdk?.packages || []), ...(newSdkInfo.packages || [])],\n settings:\n event.sdk?.settings || newSdkInfo.settings\n ? {\n ...event.sdk?.settings,\n ...newSdkInfo.settings,\n }\n : undefined,\n };\n\n return event;\n}\n\n/** Creates an envelope from a Session */\nexport function createSessionEnvelope(\n session: Session | SessionAggregates,\n dsn?: DsnComponents,\n metadata?: SdkMetadata,\n tunnel?: string,\n): SessionEnvelope {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n const envelopeHeaders = {\n sent_at: new Date().toISOString(),\n ...(sdkInfo && { sdk: sdkInfo }),\n ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n };\n\n const envelopeItem: SessionItem =\n 'aggregates' in session ? [{ type: 'sessions' }, session] : [{ type: 'session' }, session.toJSON()];\n\n return createEnvelope(envelopeHeaders, [envelopeItem]);\n}\n\n/**\n * Create an Envelope from an event.\n */\nexport function createEventEnvelope(\n event: Event,\n dsn?: DsnComponents,\n metadata?: SdkMetadata,\n tunnel?: string,\n): EventEnvelope {\n const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n\n /*\n Note: Due to TS, event.type may be `replay_event`, theoretically.\n In practice, we never call `createEventEnvelope` with `replay_event` type,\n and we'd have to adjust a looot of types to make this work properly.\n We want to avoid casting this around, as that could lead to bugs (e.g. when we add another type)\n So the safe choice is to really guard against the replay_event type here.\n */\n const eventType = event.type && event.type !== 'replay_event' ? event.type : 'event';\n\n _enhanceEventWithSdkInfo(event, metadata?.sdk);\n\n const envelopeHeaders = createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn);\n\n // Prevent this data (which, if it exists, was used in earlier steps in the processing pipeline) from being sent to\n // sentry. (Note: Our use of this property comes and goes with whatever we might be debugging, whatever hacks we may\n // have temporarily added, etc. Even if we don't happen to be using it at some point in the future, let's not get rid\n // of this `delete`, lest we miss putting it back in the next time the property is in use.)\n delete event.sdkProcessingMetadata;\n\n const eventItem: EventItem = [{ type: eventType }, event];\n return createEnvelope(envelopeHeaders, [eventItem]);\n}\n\n/**\n * Create envelope from Span item.\n *\n * Takes an optional client and runs spans through `beforeSendSpan` if available.\n */\nexport function createSpanEnvelope(spans: [SentrySpan, ...SentrySpan[]], client?: Client): SpanEnvelope {\n function dscHasRequiredProps(dsc: Partial): dsc is DynamicSamplingContext {\n return !!dsc.trace_id && !!dsc.public_key;\n }\n\n // For the moment we'll obtain the DSC from the first span in the array\n // This might need to be changed if we permit sending multiple spans from\n // different segments in one envelope\n const dsc = getDynamicSamplingContextFromSpan(spans[0]);\n\n const dsn = client?.getDsn();\n const tunnel = client?.getOptions().tunnel;\n\n const headers: SpanEnvelope[0] = {\n sent_at: new Date().toISOString(),\n ...(dscHasRequiredProps(dsc) && { trace: dsc }),\n ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n };\n\n const { beforeSendSpan, ignoreSpans } = client?.getOptions() || {};\n\n const filteredSpans = ignoreSpans?.length\n ? spans.filter(span => !shouldIgnoreSpan(spanToJSON(span), ignoreSpans))\n : spans;\n const droppedSpans = spans.length - filteredSpans.length;\n\n if (droppedSpans) {\n client?.recordDroppedEvent('before_send', 'span', droppedSpans);\n }\n\n const convertToSpanJSON = beforeSendSpan\n ? (span: SentrySpan) => {\n const spanJson = spanToJSON(span);\n const processedSpan = beforeSendSpan(spanJson);\n\n if (!processedSpan) {\n showSpanDropWarning();\n return spanJson;\n }\n\n return processedSpan;\n }\n : spanToJSON;\n\n const items: SpanItem[] = [];\n for (const span of filteredSpans) {\n const spanJson = convertToSpanJSON(span);\n if (spanJson) {\n items.push(createSpanEnvelopeItem(spanJson));\n }\n }\n\n return createEnvelope(headers, items);\n}\n\n/**\n * Create an Envelope from a CSP report.\n */\nexport function createRawSecurityEnvelope(\n report: LegacyCSPReport,\n dsn: DsnComponents,\n tunnel?: string,\n release?: string,\n environment?: string,\n): RawSecurityEnvelope {\n const envelopeHeaders = {\n event_id: uuid4(),\n ...(!!tunnel && dsn && { dsn: dsnToString(dsn) }),\n };\n\n const eventItem: RawSecurityItem = [\n { type: 'raw_security', sentry_release: release, sentry_environment: environment },\n report,\n ];\n\n return createEnvelope(envelopeHeaders, [eventItem]);\n}\n","import { DEBUG_BUILD } from '../debug-build';\nimport type { Span } from '../types-hoist/span';\nimport { debug } from '../utils/debug-logger';\nimport { getRootSpan, spanIsSampled, spanToJSON } from '../utils/spanUtils';\n\n/**\n * Print a log message for a started span.\n */\nexport function logSpanStart(span: Span): void {\n if (!DEBUG_BUILD) return;\n\n const { description = '< unknown name >', op = '< unknown op >', parent_span_id: parentSpanId } = spanToJSON(span);\n const { spanId } = span.spanContext();\n\n const sampled = spanIsSampled(span);\n const rootSpan = getRootSpan(span);\n const isRootSpan = rootSpan === span;\n\n const header = `[Tracing] Starting ${sampled ? 'sampled' : 'unsampled'} ${isRootSpan ? 'root ' : ''}span`;\n\n const infoParts: string[] = [`op: ${op}`, `name: ${description}`, `ID: ${spanId}`];\n\n if (parentSpanId) {\n infoParts.push(`parent ID: ${parentSpanId}`);\n }\n\n if (!isRootSpan) {\n const { op, description } = spanToJSON(rootSpan);\n infoParts.push(`root ID: ${rootSpan.spanContext().spanId}`);\n if (op) {\n infoParts.push(`root op: ${op}`);\n }\n if (description) {\n infoParts.push(`root description: ${description}`);\n }\n }\n\n debug.log(`${header}\n ${infoParts.join('\\n ')}`);\n}\n\n/**\n * Print a log message for an ended span.\n */\nexport function logSpanEnd(span: Span): void {\n if (!DEBUG_BUILD) return;\n\n const { description = '< unknown name >', op = '< unknown op >' } = spanToJSON(span);\n const { spanId } = span.spanContext();\n const rootSpan = getRootSpan(span);\n const isRootSpan = rootSpan === span;\n\n const msg = `[Tracing] Finishing \"${op}\" ${isRootSpan ? 'root ' : ''}span \"${description}\" with ID ${spanId}`;\n debug.log(msg);\n}\n","import { DEBUG_BUILD } from '../debug-build';\nimport {\n SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT,\n SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE,\n} from '../semanticAttributes';\nimport type { Measurements, MeasurementUnit } from '../types-hoist/measurement';\nimport type { TimedEvent } from '../types-hoist/timedEvent';\nimport { debug } from '../utils/debug-logger';\nimport { getActiveSpan, getRootSpan } from '../utils/spanUtils';\n\n/**\n * Adds a measurement to the active transaction on the current global scope. You can optionally pass in a different span\n * as the 4th parameter.\n */\nexport function setMeasurement(name: string, value: number, unit: MeasurementUnit, activeSpan = getActiveSpan()): void {\n const rootSpan = activeSpan && getRootSpan(activeSpan);\n\n if (rootSpan) {\n DEBUG_BUILD && debug.log(`[Measurement] Setting measurement on root span: ${name} = ${value} ${unit}`);\n rootSpan.addEvent(name, {\n [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE]: value,\n [SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT]: unit as string,\n });\n }\n}\n\n/**\n * Convert timed events to measurements.\n */\nexport function timedEventsToMeasurements(events: TimedEvent[]): Measurements | undefined {\n if (!events || events.length === 0) {\n return undefined;\n }\n\n const measurements: Measurements = {};\n events.forEach(event => {\n const attributes = event.attributes || {};\n const unit = attributes[SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT] as MeasurementUnit | undefined;\n const value = attributes[SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE] as number | undefined;\n\n if (typeof unit === 'string' && typeof value === 'number') {\n measurements[event.name] = { value, unit };\n }\n });\n\n return measurements;\n}\n","import { getClient, getCurrentScope } from '../currentScopes';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { createSpanEnvelope } from '../envelope';\nimport {\n SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME,\n SEMANTIC_ATTRIBUTE_PROFILE_ID,\n SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME,\n SEMANTIC_ATTRIBUTE_SENTRY_OP,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n} from '../semanticAttributes';\nimport type { SpanEnvelope } from '../types-hoist/envelope';\nimport type { TransactionEvent } from '../types-hoist/event';\nimport type { SpanLink } from '../types-hoist/link';\nimport type {\n SentrySpanArguments,\n Span,\n SpanAttributes,\n SpanAttributeValue,\n SpanContextData,\n SpanJSON,\n SpanOrigin,\n SpanTimeInput,\n} from '../types-hoist/span';\nimport type { SpanStatus } from '../types-hoist/spanStatus';\nimport type { TimedEvent } from '../types-hoist/timedEvent';\nimport { debug } from '../utils/debug-logger';\nimport { generateSpanId, generateTraceId } from '../utils/propagationContext';\nimport {\n convertSpanLinksForEnvelope,\n getRootSpan,\n getSpanDescendants,\n getStatusMessage,\n spanTimeInputToSeconds,\n spanToJSON,\n spanToTransactionTraceContext,\n TRACE_FLAG_NONE,\n TRACE_FLAG_SAMPLED,\n} from '../utils/spanUtils';\nimport { timestampInSeconds } from '../utils/time';\nimport { getDynamicSamplingContextFromSpan } from './dynamicSamplingContext';\nimport { logSpanEnd } from './logSpans';\nimport { timedEventsToMeasurements } from './measurement';\nimport { getCapturedScopesOnSpan } from './utils';\n\nconst MAX_SPAN_COUNT = 1000;\n\n/**\n * Span contains all data about a span\n */\nexport class SentrySpan implements Span {\n protected _traceId: string;\n protected _spanId: string;\n protected _parentSpanId?: string | undefined;\n protected _sampled: boolean | undefined;\n protected _name?: string | undefined;\n protected _attributes: SpanAttributes;\n protected _links?: SpanLink[];\n /** Epoch timestamp in seconds when the span started. */\n protected _startTime: number;\n /** Epoch timestamp in seconds when the span ended. */\n protected _endTime?: number | undefined;\n /** Internal keeper of the status */\n protected _status?: SpanStatus;\n /** The timed events added to this span. */\n protected _events: TimedEvent[];\n\n /** if true, treat span as a standalone span (not part of a transaction) */\n private _isStandaloneSpan?: boolean;\n\n /**\n * You should never call the constructor manually, always use `Sentry.startSpan()`\n * or other span methods.\n * @internal\n * @hideconstructor\n * @hidden\n */\n public constructor(spanContext: SentrySpanArguments = {}) {\n this._traceId = spanContext.traceId || generateTraceId();\n this._spanId = spanContext.spanId || generateSpanId();\n this._startTime = spanContext.startTimestamp || timestampInSeconds();\n this._links = spanContext.links;\n\n this._attributes = {};\n this.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'manual',\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: spanContext.op,\n ...spanContext.attributes,\n });\n\n this._name = spanContext.name;\n\n if (spanContext.parentSpanId) {\n this._parentSpanId = spanContext.parentSpanId;\n }\n // We want to include booleans as well here\n if ('sampled' in spanContext) {\n this._sampled = spanContext.sampled;\n }\n if (spanContext.endTimestamp) {\n this._endTime = spanContext.endTimestamp;\n }\n\n this._events = [];\n\n this._isStandaloneSpan = spanContext.isStandalone;\n\n // If the span is already ended, ensure we finalize the span immediately\n if (this._endTime) {\n this._onSpanEnded();\n }\n }\n\n /** @inheritDoc */\n public addLink(link: SpanLink): this {\n if (this._links) {\n this._links.push(link);\n } else {\n this._links = [link];\n }\n return this;\n }\n\n /** @inheritDoc */\n public addLinks(links: SpanLink[]): this {\n if (this._links) {\n this._links.push(...links);\n } else {\n this._links = links;\n }\n return this;\n }\n\n /**\n * This should generally not be used,\n * but it is needed for being compliant with the OTEL Span interface.\n *\n * @hidden\n * @internal\n */\n public recordException(_exception: unknown, _time?: number | undefined): void {\n // noop\n }\n\n /** @inheritdoc */\n public spanContext(): SpanContextData {\n const { _spanId: spanId, _traceId: traceId, _sampled: sampled } = this;\n return {\n spanId,\n traceId,\n traceFlags: sampled ? TRACE_FLAG_SAMPLED : TRACE_FLAG_NONE,\n };\n }\n\n /** @inheritdoc */\n public setAttribute(key: string, value: SpanAttributeValue | undefined): this {\n if (value === undefined) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._attributes[key];\n } else {\n this._attributes[key] = value;\n }\n\n return this;\n }\n\n /** @inheritdoc */\n public setAttributes(attributes: SpanAttributes): this {\n Object.keys(attributes).forEach(key => this.setAttribute(key, attributes[key]));\n return this;\n }\n\n /**\n * This should generally not be used,\n * but we need it for browser tracing where we want to adjust the start time afterwards.\n * USE THIS WITH CAUTION!\n *\n * @hidden\n * @internal\n */\n public updateStartTime(timeInput: SpanTimeInput): void {\n this._startTime = spanTimeInputToSeconds(timeInput);\n }\n\n /**\n * @inheritDoc\n */\n public setStatus(value: SpanStatus): this {\n this._status = value;\n return this;\n }\n\n /**\n * @inheritDoc\n */\n public updateName(name: string): this {\n this._name = name;\n this.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, 'custom');\n return this;\n }\n\n /** @inheritdoc */\n public end(endTimestamp?: SpanTimeInput): void {\n // If already ended, skip\n if (this._endTime) {\n return;\n }\n\n this._endTime = spanTimeInputToSeconds(endTimestamp);\n logSpanEnd(this);\n\n this._onSpanEnded();\n }\n\n /**\n * Get JSON representation of this span.\n *\n * @hidden\n * @internal This method is purely for internal purposes and should not be used outside\n * of SDK code. If you need to get a JSON representation of a span,\n * use `spanToJSON(span)` instead.\n */\n public getSpanJSON(): SpanJSON {\n return {\n data: this._attributes,\n description: this._name,\n op: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP],\n parent_span_id: this._parentSpanId,\n span_id: this._spanId,\n start_timestamp: this._startTime,\n status: getStatusMessage(this._status),\n timestamp: this._endTime,\n trace_id: this._traceId,\n origin: this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] as SpanOrigin | undefined,\n profile_id: this._attributes[SEMANTIC_ATTRIBUTE_PROFILE_ID] as string | undefined,\n exclusive_time: this._attributes[SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME] as number | undefined,\n measurements: timedEventsToMeasurements(this._events),\n is_segment: (this._isStandaloneSpan && getRootSpan(this) === this) || undefined,\n segment_id: this._isStandaloneSpan ? getRootSpan(this).spanContext().spanId : undefined,\n links: convertSpanLinksForEnvelope(this._links),\n };\n }\n\n /** @inheritdoc */\n public isRecording(): boolean {\n return !this._endTime && !!this._sampled;\n }\n\n /**\n * @inheritdoc\n */\n public addEvent(\n name: string,\n attributesOrStartTime?: SpanAttributes | SpanTimeInput,\n startTime?: SpanTimeInput,\n ): this {\n DEBUG_BUILD && debug.log('[Tracing] Adding an event to span:', name);\n\n const time = isSpanTimeInput(attributesOrStartTime) ? attributesOrStartTime : startTime || timestampInSeconds();\n const attributes = isSpanTimeInput(attributesOrStartTime) ? {} : attributesOrStartTime || {};\n\n const event: TimedEvent = {\n name,\n time: spanTimeInputToSeconds(time),\n attributes,\n };\n\n this._events.push(event);\n\n return this;\n }\n\n /**\n * This method should generally not be used,\n * but for now we need a way to publicly check if the `_isStandaloneSpan` flag is set.\n * USE THIS WITH CAUTION!\n * @internal\n * @hidden\n * @experimental\n */\n public isStandaloneSpan(): boolean {\n return !!this._isStandaloneSpan;\n }\n\n /** Emit `spanEnd` when the span is ended. */\n private _onSpanEnded(): void {\n const client = getClient();\n if (client) {\n client.emit('spanEnd', this);\n }\n\n // A segment span is basically the root span of a local span tree.\n // So for now, this is either what we previously refer to as the root span,\n // or a standalone span.\n const isSegmentSpan = this._isStandaloneSpan || this === getRootSpan(this);\n\n if (!isSegmentSpan) {\n return;\n }\n\n // if this is a standalone span, we send it immediately\n if (this._isStandaloneSpan) {\n if (this._sampled) {\n sendSpanEnvelope(createSpanEnvelope([this], client));\n } else {\n DEBUG_BUILD &&\n debug.log('[Tracing] Discarding standalone span because its trace was not chosen to be sampled.');\n if (client) {\n client.recordDroppedEvent('sample_rate', 'span');\n }\n }\n return;\n }\n\n const transactionEvent = this._convertSpanToTransaction();\n if (transactionEvent) {\n const scope = getCapturedScopesOnSpan(this).scope || getCurrentScope();\n scope.captureEvent(transactionEvent);\n }\n }\n\n /**\n * Finish the transaction & prepare the event to send to Sentry.\n */\n private _convertSpanToTransaction(): TransactionEvent | undefined {\n // We can only convert finished spans\n if (!isFullFinishedSpan(spanToJSON(this))) {\n return undefined;\n }\n\n if (!this._name) {\n DEBUG_BUILD && debug.warn('Transaction has no name, falling back to ``.');\n this._name = '';\n }\n\n const { scope: capturedSpanScope, isolationScope: capturedSpanIsolationScope } = getCapturedScopesOnSpan(this);\n\n const normalizedRequest = capturedSpanScope?.getScopeData().sdkProcessingMetadata?.normalizedRequest;\n\n if (this._sampled !== true) {\n return undefined;\n }\n\n // The transaction span itself as well as any potential standalone spans should be filtered out\n const finishedSpans = getSpanDescendants(this).filter(span => span !== this && !isStandaloneSpan(span));\n\n const spans = finishedSpans.map(span => spanToJSON(span)).filter(isFullFinishedSpan);\n\n const source = this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n\n // remove internal root span attributes we don't need to send.\n /* eslint-disable @typescript-eslint/no-dynamic-delete */\n delete this._attributes[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n spans.forEach(span => {\n delete span.data[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n });\n // eslint-enabled-next-line @typescript-eslint/no-dynamic-delete\n\n const transaction: TransactionEvent = {\n contexts: {\n trace: spanToTransactionTraceContext(this),\n },\n spans:\n // spans.sort() mutates the array, but `spans` is already a copy so we can safely do this here\n // we do not use spans anymore after this point\n spans.length > MAX_SPAN_COUNT\n ? spans.sort((a, b) => a.start_timestamp - b.start_timestamp).slice(0, MAX_SPAN_COUNT)\n : spans,\n start_timestamp: this._startTime,\n timestamp: this._endTime,\n transaction: this._name,\n type: 'transaction',\n sdkProcessingMetadata: {\n capturedSpanScope,\n capturedSpanIsolationScope,\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(this),\n },\n request: normalizedRequest,\n ...(source && {\n transaction_info: {\n source,\n },\n }),\n };\n\n const measurements = timedEventsToMeasurements(this._events);\n const hasMeasurements = measurements && Object.keys(measurements).length;\n\n if (hasMeasurements) {\n DEBUG_BUILD &&\n debug.log(\n '[Measurements] Adding measurements to transaction event',\n JSON.stringify(measurements, undefined, 2),\n );\n transaction.measurements = measurements;\n }\n\n return transaction;\n }\n}\n\nfunction isSpanTimeInput(value: undefined | SpanAttributes | SpanTimeInput): value is SpanTimeInput {\n return (value && typeof value === 'number') || value instanceof Date || Array.isArray(value);\n}\n\n// We want to filter out any incomplete SpanJSON objects\nfunction isFullFinishedSpan(input: Partial): input is SpanJSON {\n return !!input.start_timestamp && !!input.timestamp && !!input.span_id && !!input.trace_id;\n}\n\n/** `SentrySpan`s can be sent as a standalone span rather than belonging to a transaction */\nfunction isStandaloneSpan(span: Span): boolean {\n return span instanceof SentrySpan && span.isStandaloneSpan();\n}\n\n/**\n * Sends a `SpanEnvelope`.\n *\n * Note: If the envelope's spans are dropped, e.g. via `beforeSendSpan`,\n * the envelope will not be sent either.\n */\nfunction sendSpanEnvelope(envelope: SpanEnvelope): void {\n const client = getClient();\n if (!client) {\n return;\n }\n\n const spanItems = envelope[1];\n if (!spanItems || spanItems.length === 0) {\n client.recordDroppedEvent('before_send', 'span');\n return;\n }\n\n // sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n client.sendEnvelope(envelope);\n}\n","import { chainAndCopyPromiseLike } from '../utils/chain-and-copy-promiselike';\nimport { isThenable } from '../utils/is';\n\n/* eslint-disable */\n// Vendor \"Awaited\" in to be TS 3.8 compatible\ntype AwaitedPromise = T extends null | undefined\n ? T // special case for `null | undefined` when not in `--strictNullChecks` mode\n : T extends object & { then(onfulfilled: infer F, ...args: infer _): any } // `await` only unwraps object types with a callable `then`. Non-object types are not unwrapped\n ? F extends (value: infer V, ...args: infer _) => any // if the argument to `then` is callable, extracts the first argument\n ? V // normally this would recursively unwrap, but this is not possible in TS3.8\n : never // the argument to `then` was not callable\n : T; // non-object or non-thenable\n/* eslint-enable */\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function handleCallbackErrors Promise, PromiseValue = AwaitedPromise>>(\n fn: Fn,\n onError: (error: unknown) => void,\n onFinally?: () => void,\n onSuccess?: (result: PromiseValue) => void,\n): ReturnType;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function handleCallbackErrors any>(\n fn: Fn,\n onError: (error: unknown) => void,\n onFinally?: () => void,\n onSuccess?: (result: ReturnType) => void,\n): ReturnType;\n/**\n * Wrap a callback function with error handling.\n * If an error is thrown, it will be passed to the `onError` callback and re-thrown.\n *\n * If the return value of the function is a promise, it will be handled with `maybeHandlePromiseRejection`.\n *\n * If an `onFinally` callback is provided, this will be called when the callback has finished\n * - so if it returns a promise, once the promise resolved/rejected,\n * else once the callback has finished executing.\n * The `onFinally` callback will _always_ be called, no matter if an error was thrown or not.\n */\nexport function handleCallbackErrors<\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Fn extends () => any,\n ValueType = ReturnType,\n>(\n fn: Fn,\n onError: (error: unknown) => void,\n onFinally: () => void = () => {},\n onSuccess: (result: ValueType | AwaitedPromise) => void = () => {},\n): ValueType {\n let maybePromiseResult: ReturnType;\n try {\n maybePromiseResult = fn();\n } catch (e) {\n onError(e);\n onFinally();\n throw e;\n }\n\n return maybeHandlePromiseRejection(maybePromiseResult, onError, onFinally, onSuccess);\n}\n\n/**\n * Maybe handle a promise rejection.\n * This expects to be given a value that _may_ be a promise, or any other value.\n * If it is a promise, and it rejects, it will call the `onError` callback.\n *\n * For thenable objects with extra methods (like jQuery's jqXHR),\n * this function preserves those methods by wrapping the original thenable in a Proxy\n * that intercepts .then() calls to apply error handling while forwarding all other\n * properties to the original object.\n * This allows code like `startSpan(() => $.ajax(...)).abort()` to work correctly.\n */\nfunction maybeHandlePromiseRejection(\n value: MaybePromise,\n onError: (error: unknown) => void,\n onFinally: () => void,\n onSuccess: (result: MaybePromise | AwaitedPromise) => void,\n): MaybePromise {\n if (isThenable(value)) {\n return chainAndCopyPromiseLike(\n value as MaybePromise & PromiseLike> & Record,\n result => {\n onFinally();\n onSuccess(result as Awaited);\n },\n err => {\n onError(err);\n onFinally();\n },\n ) as MaybePromise;\n }\n // Non-thenable value - call callbacks immediately and return as-is\n onFinally();\n onSuccess(value);\n return value;\n}\n","import { DEBUG_BUILD } from '../debug-build';\nimport type { CoreOptions } from '../types-hoist/options';\nimport type { SamplingContext } from '../types-hoist/samplingcontext';\nimport { debug } from '../utils/debug-logger';\nimport { hasSpansEnabled } from '../utils/hasSpansEnabled';\nimport { parseSampleRate } from '../utils/parseSampleRate';\n\n/**\n * Makes a sampling decision for the given options.\n *\n * Called every time a root span is created. Only root spans which emerge with a `sampled` value of `true` will be\n * sent to Sentry.\n */\nexport function sampleSpan(\n options: Pick,\n samplingContext: SamplingContext,\n sampleRand: number,\n): [sampled: boolean, sampleRate?: number, localSampleRateWasApplied?: boolean] {\n // nothing to do if span recording is not enabled\n if (!hasSpansEnabled(options)) {\n return [false];\n }\n\n let localSampleRateWasApplied = undefined;\n\n // we would have bailed already if neither `tracesSampler` nor `tracesSampleRate` were defined, so one of these should\n // work; prefer the hook if so\n let sampleRate;\n if (typeof options.tracesSampler === 'function') {\n sampleRate = options.tracesSampler({\n ...samplingContext,\n inheritOrSampleWith: fallbackSampleRate => {\n // If we have an incoming parent sample rate, we'll just use that one.\n // The sampling decision will be inherited because of the sample_rand that was generated when the trace reached the incoming boundaries of the SDK.\n if (typeof samplingContext.parentSampleRate === 'number') {\n return samplingContext.parentSampleRate;\n }\n\n // Fallback if parent sample rate is not on the incoming trace (e.g. if there is no baggage)\n // This is to provide backwards compatibility if there are incoming traces from older SDKs that don't send a parent sample rate or a sample rand. In these cases we just want to force either a sampling decision on the downstream traces via the sample rate.\n if (typeof samplingContext.parentSampled === 'boolean') {\n return Number(samplingContext.parentSampled);\n }\n\n return fallbackSampleRate;\n },\n });\n localSampleRateWasApplied = true;\n } else if (samplingContext.parentSampled !== undefined) {\n sampleRate = samplingContext.parentSampled;\n } else if (typeof options.tracesSampleRate !== 'undefined') {\n sampleRate = options.tracesSampleRate;\n localSampleRateWasApplied = true;\n }\n\n // Since this is coming from the user (or from a function provided by the user), who knows what we might get.\n // (The only valid values are booleans or numbers between 0 and 1.)\n const parsedSampleRate = parseSampleRate(sampleRate);\n\n if (parsedSampleRate === undefined) {\n DEBUG_BUILD &&\n debug.warn(\n `[Tracing] Discarding root span because of invalid sample rate. Sample rate must be a boolean or a number between 0 and 1. Got ${JSON.stringify(\n sampleRate,\n )} of type ${JSON.stringify(typeof sampleRate)}.`,\n );\n return [false];\n }\n\n // if the function returned 0 (or false), or if `tracesSampleRate` is 0, it's a sign the transaction should be dropped\n if (!parsedSampleRate) {\n DEBUG_BUILD &&\n debug.log(\n `[Tracing] Discarding transaction because ${\n typeof options.tracesSampler === 'function'\n ? 'tracesSampler returned 0 or false'\n : 'a negative sampling decision was inherited or tracesSampleRate is set to 0'\n }`,\n );\n return [false, parsedSampleRate, localSampleRateWasApplied];\n }\n\n // We always compare the sample rand for the current execution context against the chosen sample rate.\n // Read more: https://develop.sentry.dev/sdk/telemetry/traces/#propagated-random-value\n const shouldSample = sampleRand < parsedSampleRate;\n\n // if we're not going to keep it, we're done\n if (!shouldSample) {\n DEBUG_BUILD &&\n debug.log(\n `[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = ${Number(\n sampleRate,\n )})`,\n );\n }\n\n return [shouldSample, parsedSampleRate, localSampleRateWasApplied];\n}\n","/* eslint-disable max-lines */\n\nimport { getAsyncContextStrategy } from '../asyncContext';\nimport type { AsyncContextStrategy } from '../asyncContext/types';\nimport { getMainCarrier } from '../carrier';\nimport { getClient, getCurrentScope, getIsolationScope, withScope } from '../currentScopes';\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { Scope } from '../scope';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '../semanticAttributes';\nimport type { DynamicSamplingContext } from '../types-hoist/envelope';\nimport type { ClientOptions } from '../types-hoist/options';\nimport type { SentrySpanArguments, Span, SpanTimeInput } from '../types-hoist/span';\nimport type { StartSpanOptions } from '../types-hoist/startSpanOptions';\nimport { baggageHeaderToDynamicSamplingContext } from '../utils/baggage';\nimport { debug } from '../utils/debug-logger';\nimport { handleCallbackErrors } from '../utils/handleCallbackErrors';\nimport { hasSpansEnabled } from '../utils/hasSpansEnabled';\nimport { parseSampleRate } from '../utils/parseSampleRate';\nimport { generateTraceId } from '../utils/propagationContext';\nimport { safeMathRandom } from '../utils/randomSafeContext';\nimport { _getSpanForScope, _setSpanForScope } from '../utils/spanOnScope';\nimport { addChildSpanToSpan, getRootSpan, spanIsSampled, spanTimeInputToSeconds, spanToJSON } from '../utils/spanUtils';\nimport { propagationContextFromHeaders, shouldContinueTrace } from '../utils/tracing';\nimport { freezeDscOnSpan, getDynamicSamplingContextFromSpan } from './dynamicSamplingContext';\nimport { logSpanStart } from './logSpans';\nimport { sampleSpan } from './sampling';\nimport { SentryNonRecordingSpan } from './sentryNonRecordingSpan';\nimport { SentrySpan } from './sentrySpan';\nimport { SPAN_STATUS_ERROR } from './spanstatus';\nimport { setCapturedScopesOnSpan } from './utils';\n\nconst SUPPRESS_TRACING_KEY = '__SENTRY_SUPPRESS_TRACING__';\n\n/**\n * Wraps a function with a transaction/span and finishes the span after the function is done.\n * The created span is the active span and will be used as parent by other spans created inside the function\n * and can be accessed via `Sentry.getActiveSpan()`, as long as the function is executed while the scope is active.\n *\n * If you want to create a span that is not set as active, use {@link startInactiveSpan}.\n *\n * You'll always get a span passed to the callback,\n * it may just be a non-recording span if the span is not sampled or if tracing is disabled.\n */\nexport function startSpan(options: StartSpanOptions, callback: (span: Span) => T): T {\n const acs = getAcs();\n if (acs.startSpan) {\n return acs.startSpan(options, callback);\n }\n\n const spanArguments = parseSentrySpanArguments(options);\n const { forceTransaction, parentSpan: customParentSpan, scope: customScope } = options;\n\n // We still need to fork a potentially passed scope, as we set the active span on it\n // and we need to ensure that it is cleaned up properly once the span ends.\n const customForkedScope = customScope?.clone();\n\n return withScope(customForkedScope, () => {\n // If `options.parentSpan` is defined, we want to wrap the callback in `withActiveSpan`\n const wrapper = getActiveSpanWrapper(customParentSpan);\n\n return wrapper(() => {\n const scope = getCurrentScope();\n const parentSpan = getParentSpan(scope, customParentSpan);\n\n const shouldSkipSpan = options.onlyIfParent && !parentSpan;\n const activeSpan = shouldSkipSpan\n ? new SentryNonRecordingSpan()\n : createChildOrRootSpan({\n parentSpan,\n spanArguments,\n forceTransaction,\n scope,\n });\n\n _setSpanForScope(scope, activeSpan);\n\n return handleCallbackErrors(\n () => callback(activeSpan),\n () => {\n // Only update the span status if it hasn't been changed yet, and the span is not yet finished\n const { status } = spanToJSON(activeSpan);\n if (activeSpan.isRecording() && (!status || status === 'ok')) {\n activeSpan.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n }\n },\n () => {\n activeSpan.end();\n },\n );\n });\n });\n}\n\n/**\n * Similar to `Sentry.startSpan`. Wraps a function with a transaction/span, but does not finish the span\n * after the function is done automatically. Use `span.end()` to end the span.\n *\n * The created span is the active span and will be used as parent by other spans created inside the function\n * and can be accessed via `Sentry.getActiveSpan()`, as long as the function is executed while the scope is active.\n *\n * You'll always get a span passed to the callback,\n * it may just be a non-recording span if the span is not sampled or if tracing is disabled.\n */\nexport function startSpanManual(options: StartSpanOptions, callback: (span: Span, finish: () => void) => T): T {\n const acs = getAcs();\n if (acs.startSpanManual) {\n return acs.startSpanManual(options, callback);\n }\n\n const spanArguments = parseSentrySpanArguments(options);\n const { forceTransaction, parentSpan: customParentSpan, scope: customScope } = options;\n\n const customForkedScope = customScope?.clone();\n\n return withScope(customForkedScope, () => {\n // If `options.parentSpan` is defined, we want to wrap the callback in `withActiveSpan`\n const wrapper = getActiveSpanWrapper(customParentSpan);\n\n return wrapper(() => {\n const scope = getCurrentScope();\n const parentSpan = getParentSpan(scope, customParentSpan);\n\n const shouldSkipSpan = options.onlyIfParent && !parentSpan;\n const activeSpan = shouldSkipSpan\n ? new SentryNonRecordingSpan()\n : createChildOrRootSpan({\n parentSpan,\n spanArguments,\n forceTransaction,\n scope,\n });\n\n _setSpanForScope(scope, activeSpan);\n\n return handleCallbackErrors(\n // We pass the `finish` function to the callback, so the user can finish the span manually\n // this is mainly here for historic purposes because previously, we instructed users to call\n // `finish` instead of `span.end()` to also clean up the scope. Nowadays, calling `span.end()`\n // or `finish` has the same effect and we simply leave it here to avoid breaking user code.\n () => callback(activeSpan, () => activeSpan.end()),\n () => {\n // Only update the span status if it hasn't been changed yet, and the span is not yet finished\n const { status } = spanToJSON(activeSpan);\n if (activeSpan.isRecording() && (!status || status === 'ok')) {\n activeSpan.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n }\n },\n );\n });\n });\n}\n\n/**\n * Creates a span. This span is not set as active, so will not get automatic instrumentation spans\n * as children or be able to be accessed via `Sentry.getActiveSpan()`.\n *\n * If you want to create a span that is set as active, use {@link startSpan}.\n *\n * This function will always return a span,\n * it may just be a non-recording span if the span is not sampled or if tracing is disabled.\n */\nexport function startInactiveSpan(options: StartSpanOptions): Span {\n const acs = getAcs();\n if (acs.startInactiveSpan) {\n return acs.startInactiveSpan(options);\n }\n\n const spanArguments = parseSentrySpanArguments(options);\n const { forceTransaction, parentSpan: customParentSpan } = options;\n\n // If `options.scope` is defined, we use this as as a wrapper,\n // If `options.parentSpan` is defined, we want to wrap the callback in `withActiveSpan`\n const wrapper = options.scope\n ? (callback: () => Span) => withScope(options.scope, callback)\n : customParentSpan !== undefined\n ? (callback: () => Span) => withActiveSpan(customParentSpan, callback)\n : (callback: () => Span) => callback();\n\n return wrapper(() => {\n const scope = getCurrentScope();\n const parentSpan = getParentSpan(scope, customParentSpan);\n\n const shouldSkipSpan = options.onlyIfParent && !parentSpan;\n\n if (shouldSkipSpan) {\n return new SentryNonRecordingSpan();\n }\n\n return createChildOrRootSpan({\n parentSpan,\n spanArguments,\n forceTransaction,\n scope,\n });\n });\n}\n\n/**\n * Continue a trace from `sentry-trace` and `baggage` values.\n * These values can be obtained from incoming request headers, or in the browser from ``\n * and `` HTML tags.\n *\n * Spans started with `startSpan`, `startSpanManual` and `startInactiveSpan`, within the callback will automatically\n * be attached to the incoming trace.\n */\nexport const continueTrace = (\n options: {\n sentryTrace: Parameters[0];\n baggage: Parameters[1];\n },\n callback: () => V,\n): V => {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n if (acs.continueTrace) {\n return acs.continueTrace(options, callback);\n }\n\n const { sentryTrace, baggage } = options;\n\n const client = getClient();\n const incomingDsc = baggageHeaderToDynamicSamplingContext(baggage);\n if (client && !shouldContinueTrace(client, incomingDsc?.org_id)) {\n return startNewTrace(callback);\n }\n\n return withScope(scope => {\n const propagationContext = propagationContextFromHeaders(sentryTrace, baggage);\n scope.setPropagationContext(propagationContext);\n _setSpanForScope(scope, undefined);\n return callback();\n });\n};\n\n/**\n * Forks the current scope and sets the provided span as active span in the context of the provided callback. Can be\n * passed `null` to start an entirely new span tree.\n *\n * @param span Spans started in the context of the provided callback will be children of this span. If `null` is passed,\n * spans started within the callback will not be attached to a parent span.\n * @param callback Execution context in which the provided span will be active. Is passed the newly forked scope.\n * @returns the value returned from the provided callback function.\n */\nexport function withActiveSpan(span: Span | null, callback: (scope: Scope) => T): T {\n const acs = getAcs();\n if (acs.withActiveSpan) {\n return acs.withActiveSpan(span, callback);\n }\n\n return withScope(scope => {\n _setSpanForScope(scope, span || undefined);\n return callback(scope);\n });\n}\n\n/** Suppress tracing in the given callback, ensuring no spans are generated inside of it. */\nexport function suppressTracing(callback: () => T): T {\n const acs = getAcs();\n\n if (acs.suppressTracing) {\n return acs.suppressTracing(callback);\n }\n\n return withScope(scope => {\n // Note: We do not wait for the callback to finish before we reset the metadata\n // the reason for this is that otherwise, in the browser this can lead to very weird behavior\n // as there is only a single top scope, if the callback takes longer to finish,\n // other, unrelated spans may also be suppressed, which we do not want\n // so instead, we only suppress tracing synchronoysly in the browser\n scope.setSDKProcessingMetadata({ [SUPPRESS_TRACING_KEY]: true });\n const res = callback();\n scope.setSDKProcessingMetadata({ [SUPPRESS_TRACING_KEY]: undefined });\n return res;\n });\n}\n\n/**\n * Starts a new trace for the duration of the provided callback. Spans started within the\n * callback will be part of the new trace instead of a potentially previously started trace.\n *\n * Important: Only use this function if you want to override the default trace lifetime and\n * propagation mechanism of the SDK for the duration and scope of the provided callback.\n * The newly created trace will also be the root of a new distributed trace, for example if\n * you make http requests within the callback.\n * This function might be useful if the operation you want to instrument should not be part\n * of a potentially ongoing trace.\n *\n * Default behavior:\n * - Server-side: A new trace is started for each incoming request.\n * - Browser: A new trace is started for each page our route. Navigating to a new route\n * or page will automatically create a new trace.\n */\nexport function startNewTrace(callback: () => T): T {\n const acs = getAcs();\n if (acs.startNewTrace) {\n return acs.startNewTrace(callback);\n }\n\n return withScope(scope => {\n scope.setPropagationContext({\n traceId: generateTraceId(),\n sampleRand: safeMathRandom(),\n });\n DEBUG_BUILD && debug.log(`Starting a new trace with id ${scope.getPropagationContext().traceId}`);\n return withActiveSpan(null, callback);\n });\n}\n\nfunction createChildOrRootSpan({\n parentSpan,\n spanArguments,\n forceTransaction,\n scope,\n}: {\n parentSpan: SentrySpan | undefined;\n spanArguments: SentrySpanArguments;\n forceTransaction?: boolean;\n scope: Scope;\n}): Span {\n if (!hasSpansEnabled()) {\n const span = new SentryNonRecordingSpan();\n\n // If this is a root span, we ensure to freeze a DSC\n // So we can have at least partial data here\n if (forceTransaction || !parentSpan) {\n const dsc = {\n sampled: 'false',\n sample_rate: '0',\n transaction: spanArguments.name,\n ...getDynamicSamplingContextFromSpan(span),\n } satisfies Partial;\n freezeDscOnSpan(span, dsc);\n }\n\n return span;\n }\n\n const isolationScope = getIsolationScope();\n\n let span: Span;\n if (parentSpan && !forceTransaction) {\n span = _startChildSpan(parentSpan, scope, spanArguments);\n addChildSpanToSpan(parentSpan, span);\n } else if (parentSpan) {\n // If we forced a transaction but have a parent span, make sure to continue from the parent span, not the scope\n const dsc = getDynamicSamplingContextFromSpan(parentSpan);\n const { traceId, spanId: parentSpanId } = parentSpan.spanContext();\n const parentSampled = spanIsSampled(parentSpan);\n\n span = _startRootSpan(\n {\n traceId,\n parentSpanId,\n ...spanArguments,\n },\n scope,\n parentSampled,\n );\n\n freezeDscOnSpan(span, dsc);\n } else {\n const {\n traceId,\n dsc,\n parentSpanId,\n sampled: parentSampled,\n } = {\n ...isolationScope.getPropagationContext(),\n ...scope.getPropagationContext(),\n };\n\n span = _startRootSpan(\n {\n traceId,\n parentSpanId,\n ...spanArguments,\n },\n scope,\n parentSampled,\n );\n\n if (dsc) {\n freezeDscOnSpan(span, dsc);\n }\n }\n\n logSpanStart(span);\n\n setCapturedScopesOnSpan(span, scope, isolationScope);\n\n return span;\n}\n\n/**\n * This converts StartSpanOptions to SentrySpanArguments.\n * For the most part (for now) we accept the same options,\n * but some of them need to be transformed.\n */\nfunction parseSentrySpanArguments(options: StartSpanOptions): SentrySpanArguments {\n const exp = options.experimental || {};\n const initialCtx: SentrySpanArguments = {\n isStandalone: exp.standalone,\n ...options,\n };\n\n if (options.startTime) {\n const ctx: SentrySpanArguments & { startTime?: SpanTimeInput } = { ...initialCtx };\n ctx.startTimestamp = spanTimeInputToSeconds(options.startTime);\n delete ctx.startTime;\n return ctx;\n }\n\n return initialCtx;\n}\n\nfunction getAcs(): AsyncContextStrategy {\n const carrier = getMainCarrier();\n return getAsyncContextStrategy(carrier);\n}\n\nfunction _startRootSpan(spanArguments: SentrySpanArguments, scope: Scope, parentSampled?: boolean): SentrySpan {\n const client = getClient();\n const options: Partial = client?.getOptions() || {};\n\n const { name = '' } = spanArguments;\n\n const mutableSpanSamplingData = { spanAttributes: { ...spanArguments.attributes }, spanName: name, parentSampled };\n\n // we don't care about the decision for the moment; this is just a placeholder\n client?.emit('beforeSampling', mutableSpanSamplingData, { decision: false });\n\n // If hook consumers override the parentSampled flag, we will use that value instead of the actual one\n const finalParentSampled = mutableSpanSamplingData.parentSampled ?? parentSampled;\n const finalAttributes = mutableSpanSamplingData.spanAttributes;\n\n const currentPropagationContext = scope.getPropagationContext();\n const [sampled, sampleRate, localSampleRateWasApplied] = scope.getScopeData().sdkProcessingMetadata[\n SUPPRESS_TRACING_KEY\n ]\n ? [false]\n : sampleSpan(\n options,\n {\n name,\n parentSampled: finalParentSampled,\n attributes: finalAttributes,\n parentSampleRate: parseSampleRate(currentPropagationContext.dsc?.sample_rate),\n },\n currentPropagationContext.sampleRand,\n );\n\n const rootSpan = new SentrySpan({\n ...spanArguments,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'custom',\n [SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE]:\n sampleRate !== undefined && localSampleRateWasApplied ? sampleRate : undefined,\n ...finalAttributes,\n },\n sampled,\n });\n\n if (!sampled && client) {\n DEBUG_BUILD && debug.log('[Tracing] Discarding root span because its trace was not chosen to be sampled.');\n client.recordDroppedEvent('sample_rate', 'transaction');\n }\n\n if (client) {\n client.emit('spanStart', rootSpan);\n }\n\n return rootSpan;\n}\n\n/**\n * Creates a new `Span` while setting the current `Span.id` as `parentSpanId`.\n * This inherits the sampling decision from the parent span.\n */\nfunction _startChildSpan(parentSpan: Span, scope: Scope, spanArguments: SentrySpanArguments): Span {\n const { spanId, traceId } = parentSpan.spanContext();\n const sampled = scope.getScopeData().sdkProcessingMetadata[SUPPRESS_TRACING_KEY] ? false : spanIsSampled(parentSpan);\n\n const childSpan = sampled\n ? new SentrySpan({\n ...spanArguments,\n parentSpanId: spanId,\n traceId,\n sampled,\n })\n : new SentryNonRecordingSpan({ traceId });\n\n addChildSpanToSpan(parentSpan, childSpan);\n\n const client = getClient();\n if (client) {\n client.emit('spanStart', childSpan);\n // If it has an endTimestamp, it's already ended\n if (spanArguments.endTimestamp) {\n client.emit('spanEnd', childSpan);\n }\n }\n\n return childSpan;\n}\n\nfunction getParentSpan(scope: Scope, customParentSpan: Span | null | undefined): SentrySpan | undefined {\n // always use the passed in span directly\n if (customParentSpan) {\n return customParentSpan as SentrySpan;\n }\n\n // This is different from `undefined` as it means the user explicitly wants no parent span\n if (customParentSpan === null) {\n return undefined;\n }\n\n const span = _getSpanForScope(scope) as SentrySpan | undefined;\n\n if (!span) {\n return undefined;\n }\n\n const client = getClient();\n const options: Partial = client ? client.getOptions() : {};\n if (options.parentSpanIsAlwaysRootSpan) {\n return getRootSpan(span) as SentrySpan;\n }\n\n return span;\n}\n\nfunction getActiveSpanWrapper(parentSpan: Span | undefined | null): (callback: () => T) => T {\n return parentSpan !== undefined\n ? (callback: () => T) => {\n return withActiveSpan(parentSpan, callback);\n }\n : (callback: () => T) => callback();\n}\n","import { getClient, getCurrentScope } from '../currentScopes';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON } from '../semanticAttributes';\nimport type { DynamicSamplingContext } from '../types-hoist/envelope';\nimport type { Span } from '../types-hoist/span';\nimport type { StartSpanOptions } from '../types-hoist/startSpanOptions';\nimport { debug } from '../utils/debug-logger';\nimport { hasSpansEnabled } from '../utils/hasSpansEnabled';\nimport { shouldIgnoreSpan } from '../utils/should-ignore-span';\nimport { _setSpanForScope } from '../utils/spanOnScope';\nimport {\n getActiveSpan,\n getSpanDescendants,\n removeChildSpanFromSpan,\n spanTimeInputToSeconds,\n spanToJSON,\n} from '../utils/spanUtils';\nimport { timestampInSeconds } from '../utils/time';\nimport { freezeDscOnSpan, getDynamicSamplingContextFromSpan } from './dynamicSamplingContext';\nimport { SentryNonRecordingSpan } from './sentryNonRecordingSpan';\nimport { SentrySpan } from './sentrySpan';\nimport { SPAN_STATUS_ERROR, SPAN_STATUS_OK } from './spanstatus';\nimport { startInactiveSpan } from './trace';\n\nexport const TRACING_DEFAULTS = {\n idleTimeout: 1_000,\n finalTimeout: 30_000,\n childSpanTimeout: 15_000,\n};\n\nconst FINISH_REASON_HEARTBEAT_FAILED = 'heartbeatFailed';\nconst FINISH_REASON_IDLE_TIMEOUT = 'idleTimeout';\nconst FINISH_REASON_FINAL_TIMEOUT = 'finalTimeout';\nconst FINISH_REASON_EXTERNAL_FINISH = 'externalFinish';\nconst FINISH_REASON_CANCELLED = 'cancelled';\n\n// unused\nconst FINISH_REASON_DOCUMENT_HIDDEN = 'documentHidden';\n\n// unused in this file, but used in BrowserTracing\nconst FINISH_REASON_INTERRUPTED = 'interactionInterrupted';\n\ntype IdleSpanFinishReason =\n | typeof FINISH_REASON_CANCELLED\n | typeof FINISH_REASON_DOCUMENT_HIDDEN\n | typeof FINISH_REASON_EXTERNAL_FINISH\n | typeof FINISH_REASON_FINAL_TIMEOUT\n | typeof FINISH_REASON_HEARTBEAT_FAILED\n | typeof FINISH_REASON_IDLE_TIMEOUT\n | typeof FINISH_REASON_INTERRUPTED;\n\ninterface IdleSpanOptions {\n /**\n * The time that has to pass without any span being created.\n * If this time is exceeded, the idle span will finish.\n */\n idleTimeout: number;\n /**\n * The max. time an idle span may run.\n * If this time is exceeded, the idle span will finish no matter what.\n */\n finalTimeout: number;\n /**\n * The max. time a child span may run.\n * If the time since the last span was started exceeds this time, the idle span will finish.\n */\n childSpanTimeout?: number;\n /**\n * When set to `true`, will disable the idle timeout and child timeout\n * until the `idleSpanEnableAutoFinish` hook is emitted for the idle span.\n * The final timeout mechanism will not be affected by this option,\n * meaning the idle span will definitely be finished when the final timeout is\n * reached, no matter what this option is configured to.\n *\n * Defaults to `false`.\n */\n disableAutoFinish?: boolean;\n\n /** Allows to configure a hook that is called when the idle span is ended, before it is processed. */\n beforeSpanEnd?: (span: Span) => void;\n\n /**\n * If set to `true`, the idle span will be trimmed to the latest span end timestamp of its children.\n *\n * @default `true`.\n */\n trimIdleSpanEndTimestamp?: boolean;\n}\n\n/**\n * An idle span is a span that automatically finishes. It does this by tracking child spans as activities.\n * An idle span is always the active span.\n */\nexport function startIdleSpan(startSpanOptions: StartSpanOptions, options: Partial = {}): Span {\n // Activities store a list of active spans\n const activities = new Map();\n\n // We should not use heartbeat if we finished a span\n let _finished = false;\n\n // Timer that tracks idleTimeout\n let _idleTimeoutID: ReturnType | undefined;\n\n // Timer that tracks maxSpanTime for child spans\n let _childSpanTimeoutID: ReturnType | undefined;\n\n // The reason why the span was finished\n let _finishReason: IdleSpanFinishReason = FINISH_REASON_EXTERNAL_FINISH;\n\n let _autoFinishAllowed: boolean = !options.disableAutoFinish;\n\n const _cleanupHooks: (() => void)[] = [];\n\n const {\n idleTimeout = TRACING_DEFAULTS.idleTimeout,\n finalTimeout = TRACING_DEFAULTS.finalTimeout,\n childSpanTimeout = TRACING_DEFAULTS.childSpanTimeout,\n beforeSpanEnd,\n trimIdleSpanEndTimestamp = true,\n } = options;\n\n const client = getClient();\n\n if (!client || !hasSpansEnabled()) {\n const span = new SentryNonRecordingSpan();\n\n const dsc = {\n sample_rate: '0',\n sampled: 'false',\n ...getDynamicSamplingContextFromSpan(span),\n } satisfies Partial;\n freezeDscOnSpan(span, dsc);\n\n return span;\n }\n\n const scope = getCurrentScope();\n const previousActiveSpan = getActiveSpan();\n const span = _startIdleSpan(startSpanOptions);\n\n // We patch span.end to ensure we can run some things before the span is ended\n // eslint-disable-next-line @typescript-eslint/unbound-method\n span.end = new Proxy(span.end, {\n apply(target, thisArg, args: Parameters) {\n if (beforeSpanEnd) {\n beforeSpanEnd(span);\n }\n\n // If the span is non-recording, nothing more to do here...\n // This is the case if tracing is enabled but this specific span was not sampled\n if (thisArg instanceof SentryNonRecordingSpan) {\n return;\n }\n\n // Just ensuring that this keeps working, even if we ever have more arguments here\n const [definedEndTimestamp, ...rest] = args;\n const timestamp = definedEndTimestamp || timestampInSeconds();\n const spanEndTimestamp = spanTimeInputToSeconds(timestamp);\n\n // Ensure we end with the last span timestamp, if possible\n const spans = getSpanDescendants(span).filter(child => child !== span);\n\n const spanJson = spanToJSON(span);\n\n // If we have no spans, we just end, nothing else to do here\n // Likewise, if users explicitly ended the span, we simply end the span without timestamp adjustment\n if (!spans.length || !trimIdleSpanEndTimestamp) {\n onIdleSpanEnded(spanEndTimestamp);\n return Reflect.apply(target, thisArg, [spanEndTimestamp, ...rest]);\n }\n\n const ignoreSpans = client.getOptions().ignoreSpans;\n\n const latestSpanEndTimestamp = spans?.reduce((acc: number | undefined, current) => {\n const currentSpanJson = spanToJSON(current);\n if (!currentSpanJson.timestamp) {\n return acc;\n }\n // Ignored spans will get dropped later (in the client) but since we already adjust\n // the idle span end timestamp here, we can already take to-be-ignored spans out of\n // the calculation here.\n if (ignoreSpans && shouldIgnoreSpan(currentSpanJson, ignoreSpans)) {\n return acc;\n }\n return acc ? Math.max(acc, currentSpanJson.timestamp) : currentSpanJson.timestamp;\n }, undefined);\n\n // In reality this should always exist here, but type-wise it may be undefined...\n const spanStartTimestamp = spanJson.start_timestamp;\n\n // The final endTimestamp should:\n // * Never be before the span start timestamp\n // * Be the latestSpanEndTimestamp, if there is one, and it is smaller than the passed span end timestamp\n // * Otherwise be the passed end timestamp\n // Final timestamp can never be after finalTimeout\n const endTimestamp = Math.min(\n spanStartTimestamp ? spanStartTimestamp + finalTimeout / 1000 : Infinity,\n Math.max(spanStartTimestamp || -Infinity, Math.min(spanEndTimestamp, latestSpanEndTimestamp || Infinity)),\n );\n\n onIdleSpanEnded(endTimestamp);\n return Reflect.apply(target, thisArg, [endTimestamp, ...rest]);\n },\n });\n\n /**\n * Cancels the existing idle timeout, if there is one.\n */\n function _cancelIdleTimeout(): void {\n if (_idleTimeoutID) {\n clearTimeout(_idleTimeoutID);\n _idleTimeoutID = undefined;\n }\n }\n\n /**\n * Cancels the existing child span timeout, if there is one.\n */\n function _cancelChildSpanTimeout(): void {\n if (_childSpanTimeoutID) {\n clearTimeout(_childSpanTimeoutID);\n _childSpanTimeoutID = undefined;\n }\n }\n\n /**\n * Restarts idle timeout, if there is no running idle timeout it will start one.\n */\n function _restartIdleTimeout(endTimestamp?: number): void {\n _cancelIdleTimeout();\n _idleTimeoutID = setTimeout(() => {\n if (!_finished && activities.size === 0 && _autoFinishAllowed) {\n _finishReason = FINISH_REASON_IDLE_TIMEOUT;\n span.end(endTimestamp);\n }\n }, idleTimeout);\n }\n\n /**\n * Restarts child span timeout, if there is none running it will start one.\n */\n function _restartChildSpanTimeout(endTimestamp?: number): void {\n _cancelChildSpanTimeout();\n _idleTimeoutID = setTimeout(() => {\n if (!_finished && _autoFinishAllowed) {\n _finishReason = FINISH_REASON_HEARTBEAT_FAILED;\n span.end(endTimestamp);\n }\n }, childSpanTimeout);\n }\n\n /**\n * Start tracking a specific activity.\n * @param spanId The span id that represents the activity\n */\n function _pushActivity(spanId: string): void {\n _cancelIdleTimeout();\n activities.set(spanId, true);\n\n const endTimestamp = timestampInSeconds();\n // We need to add the timeout here to have the real endtimestamp of the idle span\n // Remember timestampInSeconds is in seconds, timeout is in ms\n _restartChildSpanTimeout(endTimestamp + childSpanTimeout / 1000);\n }\n\n /**\n * Remove an activity from usage\n * @param spanId The span id that represents the activity\n */\n function _popActivity(spanId: string): void {\n if (activities.has(spanId)) {\n activities.delete(spanId);\n }\n\n if (activities.size === 0) {\n const endTimestamp = timestampInSeconds();\n // We need to add the timeout here to have the real endtimestamp of the idle span\n // Remember timestampInSeconds is in seconds, timeout is in ms\n _restartIdleTimeout(endTimestamp + idleTimeout / 1000);\n _cancelChildSpanTimeout();\n }\n }\n\n function onIdleSpanEnded(endTimestamp: number): void {\n _finished = true;\n activities.clear();\n\n _cleanupHooks.forEach(cleanup => cleanup());\n\n _setSpanForScope(scope, previousActiveSpan);\n\n const spanJSON = spanToJSON(span);\n\n const { start_timestamp: startTimestamp } = spanJSON;\n // This should never happen, but to make TS happy...\n if (!startTimestamp) {\n return;\n }\n\n const attributes = spanJSON.data;\n if (!attributes[SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON]) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, _finishReason);\n }\n\n // Set span status to 'ok' if it hasn't been explicitly set to an error status\n const currentStatus = spanJSON.status;\n if (!currentStatus || currentStatus === 'unknown') {\n span.setStatus({ code: SPAN_STATUS_OK });\n }\n\n debug.log(`[Tracing] Idle span \"${spanJSON.op}\" finished`);\n\n const childSpans = getSpanDescendants(span).filter(child => child !== span);\n\n let discardedSpans = 0;\n childSpans.forEach(childSpan => {\n // We cancel all pending spans with status \"cancelled\" to indicate the idle span was finished early\n if (childSpan.isRecording()) {\n childSpan.setStatus({ code: SPAN_STATUS_ERROR, message: 'cancelled' });\n childSpan.end(endTimestamp);\n DEBUG_BUILD &&\n debug.log('[Tracing] Cancelling span since span ended early', JSON.stringify(childSpan, undefined, 2));\n }\n\n const childSpanJSON = spanToJSON(childSpan);\n const { timestamp: childEndTimestamp = 0, start_timestamp: childStartTimestamp = 0 } = childSpanJSON;\n\n const spanStartedBeforeIdleSpanEnd = childStartTimestamp <= endTimestamp;\n\n // Add a delta with idle timeout so that we prevent false positives\n const timeoutWithMarginOfError = (finalTimeout + idleTimeout) / 1000;\n const spanEndedBeforeFinalTimeout = childEndTimestamp - childStartTimestamp <= timeoutWithMarginOfError;\n\n if (DEBUG_BUILD) {\n const stringifiedSpan = JSON.stringify(childSpan, undefined, 2);\n if (!spanStartedBeforeIdleSpanEnd) {\n debug.log('[Tracing] Discarding span since it happened after idle span was finished', stringifiedSpan);\n } else if (!spanEndedBeforeFinalTimeout) {\n debug.log('[Tracing] Discarding span since it finished after idle span final timeout', stringifiedSpan);\n }\n }\n\n if (!spanEndedBeforeFinalTimeout || !spanStartedBeforeIdleSpanEnd) {\n removeChildSpanFromSpan(span, childSpan);\n discardedSpans++;\n }\n });\n\n if (discardedSpans > 0) {\n span.setAttribute('sentry.idle_span_discarded_spans', discardedSpans);\n }\n }\n\n _cleanupHooks.push(\n client.on('spanStart', startedSpan => {\n // If we already finished the idle span,\n // or if this is the idle span itself being started,\n // or if the started span has already been closed,\n // we don't care about it for activity\n if (\n _finished ||\n startedSpan === span ||\n !!spanToJSON(startedSpan).timestamp ||\n (startedSpan instanceof SentrySpan && startedSpan.isStandaloneSpan())\n ) {\n return;\n }\n\n const allSpans = getSpanDescendants(span);\n\n // If the span that was just started is a child of the idle span, we should track it\n if (allSpans.includes(startedSpan)) {\n _pushActivity(startedSpan.spanContext().spanId);\n }\n }),\n );\n\n _cleanupHooks.push(\n client.on('spanEnd', endedSpan => {\n if (_finished) {\n return;\n }\n\n _popActivity(endedSpan.spanContext().spanId);\n }),\n );\n\n _cleanupHooks.push(\n client.on('idleSpanEnableAutoFinish', spanToAllowAutoFinish => {\n if (spanToAllowAutoFinish === span) {\n _autoFinishAllowed = true;\n _restartIdleTimeout();\n\n if (activities.size) {\n _restartChildSpanTimeout();\n }\n }\n }),\n );\n\n // We only start the initial idle timeout if we are not delaying the auto finish\n if (!options.disableAutoFinish) {\n _restartIdleTimeout();\n }\n\n setTimeout(() => {\n if (!_finished) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'deadline_exceeded' });\n _finishReason = FINISH_REASON_FINAL_TIMEOUT;\n span.end();\n }\n }, finalTimeout);\n\n return span;\n}\n\nfunction _startIdleSpan(options: StartSpanOptions): Span {\n const span = startInactiveSpan(options);\n\n _setSpanForScope(getCurrentScope(), span);\n\n DEBUG_BUILD && debug.log('[Tracing] Started span is an idle span');\n\n return span;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isThenable } from './is';\n\n/** SyncPromise internal states */\nconst STATE_PENDING = 0;\nconst STATE_RESOLVED = 1;\nconst STATE_REJECTED = 2;\n\ntype State = typeof STATE_PENDING | typeof STATE_RESOLVED | typeof STATE_REJECTED;\n\n// Overloads so we can call resolvedSyncPromise without arguments and generic argument\nexport function resolvedSyncPromise(): PromiseLike;\nexport function resolvedSyncPromise(value: T | PromiseLike): PromiseLike;\n\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nexport function resolvedSyncPromise(value?: T | PromiseLike): PromiseLike {\n return new SyncPromise(resolve => {\n resolve(value);\n });\n}\n\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nexport function rejectedSyncPromise(reason?: any): PromiseLike {\n return new SyncPromise((_, reject) => {\n reject(reason);\n });\n}\n\ntype Executor = (resolve: (value?: T | PromiseLike | null) => void, reject: (reason?: any) => void) => void;\n\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nexport class SyncPromise implements PromiseLike {\n private _state: State;\n private _handlers: Array<[boolean, (value: T) => void, (reason: any) => any]>;\n private _value: any;\n\n public constructor(executor: Executor) {\n this._state = STATE_PENDING;\n this._handlers = [];\n\n this._runExecutor(executor);\n }\n\n /** @inheritdoc */\n public then(\n onfulfilled?: ((value: T) => TResult1 | PromiseLike) | null,\n onrejected?: ((reason: any) => TResult2 | PromiseLike) | null,\n ): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n this._handlers.push([\n false,\n result => {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result as any);\n } else {\n try {\n resolve(onfulfilled(result));\n } catch (e) {\n reject(e);\n }\n }\n },\n reason => {\n if (!onrejected) {\n reject(reason);\n } else {\n try {\n resolve(onrejected(reason));\n } catch (e) {\n reject(e);\n }\n }\n },\n ]);\n this._executeHandlers();\n });\n }\n\n /** @inheritdoc */\n public catch(\n onrejected?: ((reason: any) => TResult | PromiseLike) | null,\n ): PromiseLike {\n return this.then(val => val, onrejected);\n }\n\n /** @inheritdoc */\n public finally(onfinally?: (() => void) | null): PromiseLike {\n return new SyncPromise((resolve, reject) => {\n let val: TResult | any;\n let isRejected: boolean;\n\n return this.then(\n value => {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n },\n reason => {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n },\n ).then(() => {\n if (isRejected) {\n reject(val);\n return;\n }\n\n resolve(val as unknown as any);\n });\n });\n }\n\n /** Excute the resolve/reject handlers. */\n private _executeHandlers(): void {\n if (this._state === STATE_PENDING) {\n return;\n }\n\n const cachedHandlers = this._handlers.slice();\n this._handlers = [];\n\n cachedHandlers.forEach(handler => {\n if (handler[0]) {\n return;\n }\n\n if (this._state === STATE_RESOLVED) {\n handler[1](this._value as unknown as any);\n }\n\n if (this._state === STATE_REJECTED) {\n handler[2](this._value);\n }\n\n handler[0] = true;\n });\n }\n\n /** Run the executor for the SyncPromise. */\n private _runExecutor(executor: Executor): void {\n const setResult = (state: State, value?: T | PromiseLike | any): void => {\n if (this._state !== STATE_PENDING) {\n return;\n }\n\n if (isThenable(value)) {\n void (value as PromiseLike).then(resolve, reject);\n return;\n }\n\n this._state = state;\n this._value = value;\n\n this._executeHandlers();\n };\n\n const resolve = (value: unknown): void => {\n setResult(STATE_RESOLVED, value);\n };\n\n const reject = (reason: unknown): void => {\n setResult(STATE_REJECTED, reason);\n };\n\n try {\n executor(resolve, reject);\n } catch (e) {\n reject(e);\n }\n }\n}\n","import { DEBUG_BUILD } from './debug-build';\nimport type { Event, EventHint } from './types-hoist/event';\nimport type { EventProcessor } from './types-hoist/eventprocessor';\nimport { debug } from './utils/debug-logger';\nimport { isThenable } from './utils/is';\nimport { rejectedSyncPromise, resolvedSyncPromise } from './utils/syncpromise';\n\n/**\n * Process an array of event processors, returning the processed event (or `null` if the event was dropped).\n */\nexport function notifyEventProcessors(\n processors: EventProcessor[],\n event: Event | null,\n hint: EventHint,\n index: number = 0,\n): PromiseLike {\n try {\n const result = _notifyEventProcessors(event, hint, processors, index);\n return isThenable(result) ? result : resolvedSyncPromise(result);\n } catch (error) {\n return rejectedSyncPromise(error);\n }\n}\n\nfunction _notifyEventProcessors(\n event: Event | null,\n hint: EventHint,\n processors: EventProcessor[],\n index: number,\n): Event | null | PromiseLike {\n const processor = processors[index];\n\n if (!event || !processor) {\n return event;\n }\n\n const result = processor({ ...event }, hint);\n\n DEBUG_BUILD && result === null && debug.log(`Event processor \"${processor.id || '?'}\" dropped event`);\n\n if (isThenable(result)) {\n return result.then(final => _notifyEventProcessors(final, hint, processors, index + 1));\n }\n\n return _notifyEventProcessors(result, hint, processors, index + 1);\n}\n","import type { DebugImage } from '../types-hoist/debugMeta';\nimport type { StackParser } from '../types-hoist/stacktrace';\nimport { normalizeStackTracePath } from './stacktrace';\nimport { GLOBAL_OBJ } from './worldwide';\n\ntype StackString = string;\ntype CachedResult = [string, string];\n\nlet parsedStackResults: Record | undefined;\nlet lastSentryKeysCount: number | undefined;\nlet lastNativeKeysCount: number | undefined;\nlet cachedFilenameDebugIds: Record | undefined;\n\n/**\n * Clears the cached debug ID mappings.\n * Useful for testing or when the global debug ID state changes.\n */\nexport function clearDebugIdCache(): void {\n parsedStackResults = undefined;\n lastSentryKeysCount = undefined;\n lastNativeKeysCount = undefined;\n cachedFilenameDebugIds = undefined;\n}\n\n/**\n * Returns a map of filenames to debug identifiers.\n * Supports both proprietary _sentryDebugIds and native _debugIds (e.g., from Vercel) formats.\n */\nexport function getFilenameToDebugIdMap(stackParser: StackParser): Record {\n const sentryDebugIdMap = GLOBAL_OBJ._sentryDebugIds;\n const nativeDebugIdMap = GLOBAL_OBJ._debugIds;\n\n if (!sentryDebugIdMap && !nativeDebugIdMap) {\n return {};\n }\n\n const sentryDebugIdKeys = sentryDebugIdMap ? Object.keys(sentryDebugIdMap) : [];\n const nativeDebugIdKeys = nativeDebugIdMap ? Object.keys(nativeDebugIdMap) : [];\n\n // If the count of registered globals hasn't changed since the last call, we\n // can just return the cached result.\n if (\n cachedFilenameDebugIds &&\n sentryDebugIdKeys.length === lastSentryKeysCount &&\n nativeDebugIdKeys.length === lastNativeKeysCount\n ) {\n return cachedFilenameDebugIds;\n }\n\n lastSentryKeysCount = sentryDebugIdKeys.length;\n lastNativeKeysCount = nativeDebugIdKeys.length;\n\n // Build a map of filename -> debug_id from both sources\n cachedFilenameDebugIds = {};\n\n if (!parsedStackResults) {\n parsedStackResults = {};\n }\n\n const processDebugIds = (debugIdKeys: string[], debugIdMap: Record): void => {\n for (const key of debugIdKeys) {\n const debugId = debugIdMap[key];\n const result = parsedStackResults?.[key];\n\n if (result && cachedFilenameDebugIds && debugId) {\n // Use cached filename but update with current debug ID\n cachedFilenameDebugIds[result[0]] = debugId;\n // Update cached result with new debug ID\n if (parsedStackResults) {\n parsedStackResults[key] = [result[0], debugId];\n }\n } else if (debugId) {\n const parsedStack = stackParser(key);\n\n for (let i = parsedStack.length - 1; i >= 0; i--) {\n const stackFrame = parsedStack[i];\n const filename = stackFrame?.filename;\n\n if (filename && cachedFilenameDebugIds && parsedStackResults) {\n cachedFilenameDebugIds[filename] = debugId;\n parsedStackResults[key] = [filename, debugId];\n break;\n }\n }\n }\n }\n };\n\n if (sentryDebugIdMap) {\n processDebugIds(sentryDebugIdKeys, sentryDebugIdMap);\n }\n\n // Native _debugIds will override _sentryDebugIds if same file\n if (nativeDebugIdMap) {\n processDebugIds(nativeDebugIdKeys, nativeDebugIdMap);\n }\n\n return cachedFilenameDebugIds;\n}\n\n/**\n * Returns a list of debug images for the given resources.\n */\nexport function getDebugImagesForResources(\n stackParser: StackParser,\n resource_paths: ReadonlyArray,\n): DebugImage[] {\n const filenameDebugIdMap = getFilenameToDebugIdMap(stackParser);\n\n if (!filenameDebugIdMap) {\n return [];\n }\n\n const images: DebugImage[] = [];\n for (const path of resource_paths) {\n const normalizedPath = normalizeStackTracePath(path);\n if (normalizedPath && filenameDebugIdMap[normalizedPath]) {\n images.push({\n type: 'sourcemap',\n code_file: path,\n debug_id: filenameDebugIdMap[normalizedPath],\n });\n }\n }\n\n return images;\n}\n","import { getGlobalScope } from '../currentScopes';\nimport type { Scope, ScopeData } from '../scope';\nimport { getDynamicSamplingContextFromSpan } from '../tracing/dynamicSamplingContext';\nimport type { Breadcrumb } from '../types-hoist/breadcrumb';\nimport type { Event } from '../types-hoist/event';\nimport type { Span } from '../types-hoist/span';\nimport { merge } from './merge';\nimport { getRootSpan, spanToJSON, spanToTraceContext } from './spanUtils';\n\n/**\n * Applies data from the scope to the event and runs all event processors on it.\n */\nexport function applyScopeDataToEvent(event: Event, data: ScopeData): void {\n const { fingerprint, span, breadcrumbs, sdkProcessingMetadata } = data;\n\n // Apply general data\n applyDataToEvent(event, data);\n\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (span) {\n applySpanToEvent(event, span);\n }\n\n applyFingerprintToEvent(event, fingerprint);\n applyBreadcrumbsToEvent(event, breadcrumbs);\n applySdkMetadataToEvent(event, sdkProcessingMetadata);\n}\n\n/** Merge data of two scopes together. */\nexport function mergeScopeData(data: ScopeData, mergeData: ScopeData): void {\n const {\n extra,\n tags,\n attributes,\n user,\n contexts,\n level,\n sdkProcessingMetadata,\n breadcrumbs,\n fingerprint,\n eventProcessors,\n attachments,\n propagationContext,\n transactionName,\n span,\n } = mergeData;\n\n mergeAndOverwriteScopeData(data, 'extra', extra);\n mergeAndOverwriteScopeData(data, 'tags', tags);\n mergeAndOverwriteScopeData(data, 'attributes', attributes);\n mergeAndOverwriteScopeData(data, 'user', user);\n mergeAndOverwriteScopeData(data, 'contexts', contexts);\n\n data.sdkProcessingMetadata = merge(data.sdkProcessingMetadata, sdkProcessingMetadata, 2);\n\n if (level) {\n data.level = level;\n }\n\n if (transactionName) {\n data.transactionName = transactionName;\n }\n\n if (span) {\n data.span = span;\n }\n\n if (breadcrumbs.length) {\n data.breadcrumbs = [...data.breadcrumbs, ...breadcrumbs];\n }\n\n if (fingerprint.length) {\n data.fingerprint = [...data.fingerprint, ...fingerprint];\n }\n\n if (eventProcessors.length) {\n data.eventProcessors = [...data.eventProcessors, ...eventProcessors];\n }\n\n if (attachments.length) {\n data.attachments = [...data.attachments, ...attachments];\n }\n\n data.propagationContext = { ...data.propagationContext, ...propagationContext };\n}\n\n/**\n * Merges certain scope data. Undefined values will overwrite any existing values.\n * Exported only for tests.\n */\nexport function mergeAndOverwriteScopeData<\n Prop extends 'extra' | 'tags' | 'attributes' | 'user' | 'contexts' | 'sdkProcessingMetadata',\n Data extends ScopeData,\n>(data: Data, prop: Prop, mergeVal: Data[Prop]): void {\n data[prop] = merge(data[prop], mergeVal, 1);\n}\n\n/** Exported only for tests */\nexport function mergeArray(\n event: Event,\n prop: Prop,\n mergeVal: ScopeData[Prop],\n): void {\n const prevVal = event[prop];\n // If we are not merging any new values,\n // we only need to proceed if there was an empty array before (as we want to replace it with undefined)\n if (!mergeVal.length && (!prevVal || prevVal.length)) {\n return;\n }\n\n const merged = [...(prevVal || []), ...mergeVal] as ScopeData[Prop];\n event[prop] = merged.length ? merged : undefined;\n}\n\n/**\n * Get the scope data for the current scope after merging with the\n * global scope and isolation scope.\n *\n * @param currentScope - The current scope.\n * @returns The scope data.\n */\nexport function getCombinedScopeData(isolationScope: Scope | undefined, currentScope: Scope | undefined): ScopeData {\n const scopeData = getGlobalScope().getScopeData();\n isolationScope && mergeScopeData(scopeData, isolationScope.getScopeData());\n currentScope && mergeScopeData(scopeData, currentScope.getScopeData());\n return scopeData;\n}\n\nfunction applyDataToEvent(event: Event, data: ScopeData): void {\n const { extra, tags, user, contexts, level, transactionName } = data;\n\n if (Object.keys(extra).length) {\n event.extra = { ...extra, ...event.extra };\n }\n\n if (Object.keys(tags).length) {\n event.tags = { ...tags, ...event.tags };\n }\n\n if (Object.keys(user).length) {\n event.user = { ...user, ...event.user };\n }\n\n if (Object.keys(contexts).length) {\n event.contexts = { ...contexts, ...event.contexts };\n }\n\n if (level) {\n event.level = level;\n }\n\n // transaction events get their `transaction` from the root span name\n if (transactionName && event.type !== 'transaction') {\n event.transaction = transactionName;\n }\n}\n\nfunction applyBreadcrumbsToEvent(event: Event, breadcrumbs: Breadcrumb[]): void {\n const mergedBreadcrumbs = [...(event.breadcrumbs || []), ...breadcrumbs];\n event.breadcrumbs = mergedBreadcrumbs.length ? mergedBreadcrumbs : undefined;\n}\n\nfunction applySdkMetadataToEvent(event: Event, sdkProcessingMetadata: ScopeData['sdkProcessingMetadata']): void {\n event.sdkProcessingMetadata = {\n ...event.sdkProcessingMetadata,\n ...sdkProcessingMetadata,\n };\n}\n\nfunction applySpanToEvent(event: Event, span: Span): void {\n event.contexts = {\n trace: spanToTraceContext(span),\n ...event.contexts,\n };\n\n event.sdkProcessingMetadata = {\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(span),\n ...event.sdkProcessingMetadata,\n };\n\n const rootSpan = getRootSpan(span);\n const transactionName = spanToJSON(rootSpan).description;\n if (transactionName && !event.transaction && event.type === 'transaction') {\n event.transaction = transactionName;\n }\n}\n\n/**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\nfunction applyFingerprintToEvent(event: Event, fingerprint: ScopeData['fingerprint'] | undefined): void {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint\n ? Array.isArray(event.fingerprint)\n ? event.fingerprint\n : [event.fingerprint]\n : [];\n\n // If we have something on the scope, then merge it with event\n if (fingerprint) {\n event.fingerprint = event.fingerprint.concat(fingerprint);\n }\n\n // If we have no data at all, remove empty array default\n if (!event.fingerprint.length) {\n delete event.fingerprint;\n }\n}\n","import type { Client } from '../client';\nimport { DEFAULT_ENVIRONMENT } from '../constants';\nimport { notifyEventProcessors } from '../eventProcessors';\nimport type { CaptureContext, ScopeContext } from '../scope';\nimport { Scope } from '../scope';\nimport type { Event, EventHint } from '../types-hoist/event';\nimport type { ClientOptions } from '../types-hoist/options';\nimport type { StackParser } from '../types-hoist/stacktrace';\nimport { getFilenameToDebugIdMap } from './debug-ids';\nimport { addExceptionMechanism, uuid4 } from './misc';\nimport { normalize } from './normalize';\nimport { applyScopeDataToEvent, getCombinedScopeData } from './scopeData';\nimport { truncate } from './string';\nimport { resolvedSyncPromise } from './syncpromise';\nimport { dateTimestampInSeconds } from './time';\n\n/**\n * This type makes sure that we get either a CaptureContext, OR an EventHint.\n * It does not allow mixing them, which could lead to unexpected outcomes, e.g. this is disallowed:\n * { user: { id: '123' }, mechanism: { handled: false } }\n */\nexport type ExclusiveEventHintOrCaptureContext =\n | (CaptureContext & Partial<{ [key in keyof EventHint]: never }>)\n | (EventHint & Partial<{ [key in keyof ScopeContext]: never }>);\n\n/**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n * @hidden\n */\nexport function prepareEvent(\n options: ClientOptions,\n event: Event,\n hint: EventHint,\n scope?: Scope,\n client?: Client,\n isolationScope?: Scope,\n): PromiseLike {\n const { normalizeDepth = 3, normalizeMaxBreadth = 1_000 } = options;\n const prepared: Event = {\n ...event,\n event_id: event.event_id || hint.event_id || uuid4(),\n timestamp: event.timestamp || dateTimestampInSeconds(),\n };\n const integrations = hint.integrations || options.integrations.map(i => i.name);\n\n applyClientOptions(prepared, options);\n applyIntegrationsMetadata(prepared, integrations);\n\n if (client) {\n client.emit('applyFrameMetadata', event);\n }\n\n // Only put debug IDs onto frames for error events.\n if (event.type === undefined) {\n applyDebugIds(prepared, options.stackParser);\n }\n\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n const finalScope = getFinalScope(scope, hint.captureContext);\n\n if (hint.mechanism) {\n addExceptionMechanism(prepared, hint.mechanism);\n }\n\n const clientEventProcessors = client ? client.getEventProcessors() : [];\n\n // This should be the last thing called, since we want that\n // {@link Scope.addEventProcessor} gets the finished prepared event.\n // Merge scope data together\n const data = getCombinedScopeData(isolationScope, finalScope);\n\n const attachments = [...(hint.attachments || []), ...data.attachments];\n if (attachments.length) {\n hint.attachments = attachments;\n }\n\n applyScopeDataToEvent(prepared, data);\n\n const eventProcessors = [\n ...clientEventProcessors,\n // Run scope event processors _after_ all other processors\n ...data.eventProcessors,\n ];\n\n // Skip event processors for internal exceptions to prevent recursion\n // oxlint-disable-next-line typescript/prefer-optional-chain\n const isInternalException = hint.data && (hint.data as { __sentry__: boolean }).__sentry__ === true;\n const result = isInternalException\n ? resolvedSyncPromise(prepared)\n : notifyEventProcessors(eventProcessors, prepared, hint);\n\n return result.then(evt => {\n if (evt) {\n // We apply the debug_meta field only after all event processors have ran, so that if any event processors modified\n // file names (e.g.the RewriteFrames integration) the filename -> debug ID relationship isn't destroyed.\n // This should not cause any PII issues, since we're only moving data that is already on the event and not adding\n // any new data\n applyDebugMeta(evt);\n }\n\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n }\n return evt;\n });\n}\n\n/**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n *\n * Only exported for tests.\n *\n * @param event event instance to be enhanced\n */\nexport function applyClientOptions(event: Event, options: ClientOptions): void {\n const { environment, release, dist, maxValueLength } = options;\n\n // empty strings do not make sense for environment, release, and dist\n // so we handle them the same as if they were not provided\n event.environment = event.environment || environment || DEFAULT_ENVIRONMENT;\n\n if (!event.release && release) {\n event.release = release;\n }\n\n if (!event.dist && dist) {\n event.dist = dist;\n }\n\n const request = event.request;\n if (request?.url && maxValueLength) {\n request.url = truncate(request.url, maxValueLength);\n }\n\n if (maxValueLength) {\n event.exception?.values?.forEach(exception => {\n if (exception.value) {\n // Truncates error messages\n exception.value = truncate(exception.value, maxValueLength);\n }\n });\n }\n}\n\n/**\n * Puts debug IDs into the stack frames of an error event.\n */\nexport function applyDebugIds(event: Event, stackParser: StackParser): void {\n // Build a map of filename -> debug_id\n const filenameDebugIdMap = getFilenameToDebugIdMap(stackParser);\n\n event.exception?.values?.forEach(exception => {\n exception.stacktrace?.frames?.forEach(frame => {\n if (frame.filename) {\n frame.debug_id = filenameDebugIdMap[frame.filename];\n }\n });\n });\n}\n\n/**\n * Moves debug IDs from the stack frames of an error event into the debug_meta field.\n */\nexport function applyDebugMeta(event: Event): void {\n // Extract debug IDs and filenames from the stack frames on the event.\n const filenameDebugIdMap: Record = {};\n event.exception?.values?.forEach(exception => {\n exception.stacktrace?.frames?.forEach(frame => {\n if (frame.debug_id) {\n if (frame.abs_path) {\n filenameDebugIdMap[frame.abs_path] = frame.debug_id;\n } else if (frame.filename) {\n filenameDebugIdMap[frame.filename] = frame.debug_id;\n }\n delete frame.debug_id;\n }\n });\n });\n\n if (Object.keys(filenameDebugIdMap).length === 0) {\n return;\n }\n\n // Fill debug_meta information\n event.debug_meta = event.debug_meta || {};\n event.debug_meta.images = event.debug_meta.images || [];\n const images = event.debug_meta.images;\n Object.entries(filenameDebugIdMap).forEach(([filename, debug_id]) => {\n images.push({\n type: 'sourcemap',\n code_file: filename,\n debug_id,\n });\n });\n}\n\n/**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\nfunction applyIntegrationsMetadata(event: Event, integrationNames: string[]): void {\n if (integrationNames.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = [...(event.sdk.integrations || []), ...integrationNames];\n }\n}\n\n/**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\nfunction normalizeEvent(event: Event | null, depth: number, maxBreadth: number): Event | null {\n if (!event) {\n return null;\n }\n\n const normalized: Event = {\n ...event,\n ...(event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(b => ({\n ...b,\n ...(b.data && {\n data: normalize(b.data, depth, maxBreadth),\n }),\n })),\n }),\n ...(event.user && {\n user: normalize(event.user, depth, maxBreadth),\n }),\n ...(event.contexts && {\n contexts: normalize(event.contexts, depth, maxBreadth),\n }),\n ...(event.extra && {\n extra: normalize(event.extra, depth, maxBreadth),\n }),\n };\n\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts?.trace && normalized.contexts) {\n normalized.contexts.trace = event.contexts.trace;\n\n // event.contexts.trace.data may contain circular/dangerous data so we need to normalize it\n if (event.contexts.trace.data) {\n normalized.contexts.trace.data = normalize(event.contexts.trace.data, depth, maxBreadth);\n }\n }\n\n // event.spans[].data may contain circular/dangerous data so we need to normalize it\n if (event.spans) {\n normalized.spans = event.spans.map(span => {\n return {\n ...span,\n ...(span.data && {\n data: normalize(span.data, depth, maxBreadth),\n }),\n };\n });\n }\n\n // event.contexts.flags (FeatureFlagContext) stores context for our feature\n // flag integrations. It has a greater nesting depth than our other typed\n // Contexts, so we re-normalize with a fixed depth of 3 here. We do not want\n // to skip this in case of conflicting, user-provided context.\n if (event.contexts?.flags && normalized.contexts) {\n normalized.contexts.flags = normalize(event.contexts.flags, 3, maxBreadth);\n }\n\n return normalized;\n}\n\nfunction getFinalScope(scope: Scope | undefined, captureContext: CaptureContext | undefined): Scope | undefined {\n if (!captureContext) {\n return scope;\n }\n\n const finalScope = scope ? scope.clone() : new Scope();\n finalScope.update(captureContext);\n return finalScope;\n}\n\n/**\n * Parse either an `EventHint` directly, or convert a `CaptureContext` to an `EventHint`.\n * This is used to allow to update method signatures that used to accept a `CaptureContext` but should now accept an `EventHint`.\n */\nexport function parseEventHintOrCaptureContext(\n hint: ExclusiveEventHintOrCaptureContext | undefined,\n): EventHint | undefined {\n if (!hint) {\n return undefined;\n }\n\n // If you pass a Scope or `() => Scope` as CaptureContext, we just return this as captureContext\n if (hintIsScopeOrFunction(hint)) {\n return { captureContext: hint };\n }\n\n if (hintIsScopeContext(hint)) {\n return {\n captureContext: hint,\n };\n }\n\n return hint;\n}\n\nfunction hintIsScopeOrFunction(hint: CaptureContext | EventHint): hint is Scope | ((scope: Scope) => Scope) {\n return hint instanceof Scope || typeof hint === 'function';\n}\n\ntype ScopeContextProperty = keyof ScopeContext;\nconst captureContextKeys: readonly ScopeContextProperty[] = [\n 'user',\n 'level',\n 'extra',\n 'contexts',\n 'tags',\n 'fingerprint',\n 'propagationContext',\n] as const;\n\nfunction hintIsScopeContext(hint: Partial | EventHint): hint is Partial {\n return Object.keys(hint).some(key => captureContextKeys.includes(key as ScopeContextProperty));\n}\n","import { getClient, getCurrentScope, getIsolationScope, withIsolationScope } from './currentScopes';\nimport { DEBUG_BUILD } from './debug-build';\nimport type { CaptureContext } from './scope';\nimport { closeSession, makeSession, updateSession } from './session';\nimport { startNewTrace } from './tracing/trace';\nimport type { CheckIn, FinishedCheckIn, MonitorConfig } from './types-hoist/checkin';\nimport type { Event, EventHint } from './types-hoist/event';\nimport type { EventProcessor } from './types-hoist/eventprocessor';\nimport type { Extra, Extras } from './types-hoist/extra';\nimport type { Primitive } from './types-hoist/misc';\nimport type { Session, SessionContext } from './types-hoist/session';\nimport type { SeverityLevel } from './types-hoist/severity';\nimport type { User } from './types-hoist/user';\nimport { debug } from './utils/debug-logger';\nimport { isThenable } from './utils/is';\nimport { uuid4 } from './utils/misc';\nimport type { ExclusiveEventHintOrCaptureContext } from './utils/prepareEvent';\nimport { parseEventHintOrCaptureContext } from './utils/prepareEvent';\nimport { getCombinedScopeData } from './utils/scopeData';\nimport { timestampInSeconds } from './utils/time';\nimport { GLOBAL_OBJ } from './utils/worldwide';\n\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception The exception to capture.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured Sentry event.\n */\nexport function captureException(exception: unknown, hint?: ExclusiveEventHintOrCaptureContext): string {\n return getCurrentScope().captureException(exception, parseEventHintOrCaptureContext(hint));\n}\n\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param captureContext Define the level of the message or pass in additional data to attach to the message.\n * @returns the id of the captured message.\n */\nexport function captureMessage(message: string, captureContext?: CaptureContext | SeverityLevel): string {\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n const level = typeof captureContext === 'string' ? captureContext : undefined;\n const hint = typeof captureContext !== 'string' ? { captureContext } : undefined;\n return getCurrentScope().captureMessage(message, level, hint);\n}\n\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @param hint Optional additional data to attach to the Sentry event.\n * @returns the id of the captured event.\n */\nexport function captureEvent(event: Event, hint?: EventHint): string {\n return getCurrentScope().captureEvent(event, hint);\n}\n\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\nexport function setContext(name: string, context: { [key: string]: unknown } | null): void {\n getIsolationScope().setContext(name, context);\n}\n\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nexport function setExtras(extras: Extras): void {\n getIsolationScope().setExtras(extras);\n}\n\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nexport function setExtra(key: string, extra: Extra): void {\n getIsolationScope().setExtra(key, extra);\n}\n\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nexport function setTags(tags: { [key: string]: Primitive }): void {\n getIsolationScope().setTags(tags);\n}\n\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nexport function setTag(key: string, value: Primitive): void {\n getIsolationScope().setTag(key, value);\n}\n\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nexport function setUser(user: User | null): void {\n getIsolationScope().setUser(user);\n}\n\n/**\n * Sets the conversation ID for the current isolation scope.\n *\n * @param conversationId The conversation ID to set. Pass `null` or `undefined` to unset the conversation ID.\n */\nexport function setConversationId(conversationId: string | null | undefined): void {\n getIsolationScope().setConversationId(conversationId);\n}\n\n/**\n * The last error event id of the isolation scope.\n *\n * Warning: This function really returns the last recorded error event id on the current\n * isolation scope. If you call this function after handling a certain error and another error\n * is captured in between, the last one is returned instead of the one you might expect.\n * Also, ids of events that were never sent to Sentry (for example because\n * they were dropped in `beforeSend`) could be returned.\n *\n * @returns The last event id of the isolation scope.\n */\nexport function lastEventId(): string | undefined {\n return getIsolationScope().lastEventId();\n}\n\n/**\n * Create a cron monitor check in and send it to Sentry.\n *\n * @param checkIn An object that describes a check in.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nexport function captureCheckIn(checkIn: CheckIn, upsertMonitorConfig?: MonitorConfig): string {\n const scope = getCurrentScope();\n const client = getClient();\n if (!client) {\n DEBUG_BUILD && debug.warn('Cannot capture check-in. No client defined.');\n } else if (!client.captureCheckIn) {\n DEBUG_BUILD && debug.warn('Cannot capture check-in. Client does not support sending check-ins.');\n } else {\n return client.captureCheckIn(checkIn, upsertMonitorConfig, scope);\n }\n\n return uuid4();\n}\n\n/**\n * Wraps a callback with a cron monitor check in. The check in will be sent to Sentry when the callback finishes.\n *\n * @param monitorSlug The distinct slug of the monitor.\n * @param callback Callback to be monitored\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\nexport function withMonitor(\n monitorSlug: CheckIn['monitorSlug'],\n callback: () => T,\n upsertMonitorConfig?: MonitorConfig,\n): T {\n function runCallback(): T {\n const checkInId = captureCheckIn({ monitorSlug, status: 'in_progress' }, upsertMonitorConfig);\n const now = timestampInSeconds();\n\n function finishCheckIn(status: FinishedCheckIn['status']): void {\n captureCheckIn({ monitorSlug, status, checkInId, duration: timestampInSeconds() - now });\n }\n // Default behavior without isolateTrace\n let maybePromiseResult: T;\n try {\n maybePromiseResult = callback();\n } catch (e) {\n finishCheckIn('error');\n throw e;\n }\n\n if (isThenable(maybePromiseResult)) {\n return maybePromiseResult.then(\n r => {\n finishCheckIn('ok');\n return r;\n },\n e => {\n finishCheckIn('error');\n throw e;\n },\n ) as T;\n }\n finishCheckIn('ok');\n\n return maybePromiseResult;\n }\n\n return withIsolationScope(() => (upsertMonitorConfig?.isolateTrace ? startNewTrace(runCallback) : runCallback()));\n}\n\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nexport async function flush(timeout?: number): Promise {\n const client = getClient();\n if (client) {\n return client.flush(timeout);\n }\n DEBUG_BUILD && debug.warn('Cannot flush events. No client defined.');\n return Promise.resolve(false);\n}\n\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nexport async function close(timeout?: number): Promise {\n const client = getClient();\n if (client) {\n return client.close(timeout);\n }\n DEBUG_BUILD && debug.warn('Cannot flush events and disable SDK. No client defined.');\n return Promise.resolve(false);\n}\n\n/**\n * Returns true if Sentry has been properly initialized.\n */\nexport function isInitialized(): boolean {\n return !!getClient();\n}\n\n/** If the SDK is initialized & enabled. */\nexport function isEnabled(): boolean {\n const client = getClient();\n return client?.getOptions().enabled !== false && !!client?.getTransport();\n}\n\n/**\n * Add an event processor.\n * This will be added to the current isolation scope, ensuring any event that is processed in the current execution\n * context will have the processor applied.\n */\nexport function addEventProcessor(callback: EventProcessor): void {\n getIsolationScope().addEventProcessor(callback);\n}\n\n/**\n * Start a session on the current isolation scope.\n *\n * @param context (optional) additional properties to be applied to the returned session object\n *\n * @returns the new active session\n */\nexport function startSession(context?: SessionContext): Session {\n const isolationScope = getIsolationScope();\n\n const { user } = getCombinedScopeData(isolationScope, getCurrentScope());\n\n // Will fetch userAgent if called from browser sdk\n const { userAgent } = GLOBAL_OBJ.navigator || {};\n\n const session = makeSession({\n user,\n ...(userAgent && { userAgent }),\n ...context,\n });\n\n // End existing session if there's one\n const currentSession = isolationScope.getSession();\n if (currentSession?.status === 'ok') {\n updateSession(currentSession, { status: 'exited' });\n }\n\n endSession();\n\n // Afterwards we set the new session on the scope\n isolationScope.setSession(session);\n\n return session;\n}\n\n/**\n * End the session on the current isolation scope.\n */\nexport function endSession(): void {\n const isolationScope = getIsolationScope();\n const currentScope = getCurrentScope();\n\n const session = currentScope.getSession() || isolationScope.getSession();\n if (session) {\n closeSession(session);\n }\n _sendSessionUpdate();\n\n // the session is over; take it off of the scope\n isolationScope.setSession();\n}\n\n/**\n * Sends the current Session on the scope\n */\nfunction _sendSessionUpdate(): void {\n const isolationScope = getIsolationScope();\n const client = getClient();\n const session = isolationScope.getSession();\n if (session && client) {\n client.captureSession(session);\n }\n}\n\n/**\n * Sends the current session on the scope to Sentry\n *\n * @param end If set the session will be marked as exited and removed from the scope.\n * Defaults to `false`.\n */\nexport function captureSession(end: boolean = false): void {\n // both send the update and pull the session from the scope\n if (end) {\n endSession();\n return;\n }\n\n // only send the update\n _sendSessionUpdate();\n}\n","import type { ReportDialogOptions } from './report-dialog';\nimport type { DsnComponents, DsnLike } from './types-hoist/dsn';\nimport type { SdkInfo } from './types-hoist/sdkinfo';\nimport { dsnToString, makeDsn } from './utils/dsn';\n\nexport const SENTRY_API_VERSION = '7';\n\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\nfunction getBaseApiEndpoint(dsn: DsnComponents): string {\n const protocol = dsn.protocol ? `${dsn.protocol}:` : '';\n const port = dsn.port ? `:${dsn.port}` : '';\n return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : ''}/api/`;\n}\n\n/** Returns the ingest API endpoint for target. */\nfunction _getIngestEndpoint(dsn: DsnComponents): string {\n return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/envelope/`;\n}\n\n/** Returns a URL-encoded string with auth config suitable for a query string. */\nfunction _encodedAuth(dsn: DsnComponents, sdkInfo: SdkInfo | undefined): string {\n const params: Record = {\n sentry_version: SENTRY_API_VERSION,\n };\n\n if (dsn.publicKey) {\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n params.sentry_key = dsn.publicKey;\n }\n\n if (sdkInfo) {\n params.sentry_client = `${sdkInfo.name}/${sdkInfo.version}`;\n }\n\n return new URLSearchParams(params).toString();\n}\n\n/**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nexport function getEnvelopeEndpointWithUrlEncodedAuth(dsn: DsnComponents, tunnel?: string, sdkInfo?: SdkInfo): string {\n return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, sdkInfo)}`;\n}\n\n/** Returns the url to the report dialog endpoint. */\nexport function getReportDialogEndpoint(dsnLike: DsnLike, dialogOptions: ReportDialogOptions): string {\n const dsn = makeDsn(dsnLike);\n if (!dsn) {\n return '';\n }\n\n const endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n\n let encodedOptions = `dsn=${dsnToString(dsn)}`;\n for (const key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n\n if (key === 'onClose') {\n continue;\n }\n\n if (key === 'user') {\n const user = dialogOptions.user;\n if (!user) {\n continue;\n }\n if (user.name) {\n encodedOptions += `&name=${encodeURIComponent(user.name)}`;\n }\n if (user.email) {\n encodedOptions += `&email=${encodeURIComponent(user.email)}`;\n }\n } else {\n encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key] as string)}`;\n }\n }\n\n return `${endpoint}?${encodedOptions}`;\n}\n","import type { Client } from './client';\nimport { getClient } from './currentScopes';\nimport { DEBUG_BUILD } from './debug-build';\nimport type { Event, EventHint } from './types-hoist/event';\nimport type { Integration, IntegrationFn } from './types-hoist/integration';\nimport type { CoreOptions } from './types-hoist/options';\nimport { debug } from './utils/debug-logger';\n\nexport const installedIntegrations: string[] = [];\n\n/** Map of integrations assigned to a client */\nexport type IntegrationIndex = {\n [key: string]: Integration;\n};\n\ntype IntegrationWithDefaultInstance = Integration & { isDefaultInstance?: true };\n\n/**\n * Remove duplicates from the given array, preferring the last instance of any duplicate. Not guaranteed to\n * preserve the order of integrations in the array.\n *\n * @private\n */\nfunction filterDuplicates(integrations: Integration[]): Integration[] {\n const integrationsByName: { [key: string]: Integration } = {};\n\n integrations.forEach((currentInstance: IntegrationWithDefaultInstance) => {\n const { name } = currentInstance;\n\n const existingInstance: IntegrationWithDefaultInstance | undefined = integrationsByName[name];\n\n // We want integrations later in the array to overwrite earlier ones of the same type, except that we never want a\n // default instance to overwrite an existing user instance\n if (existingInstance && !existingInstance.isDefaultInstance && currentInstance.isDefaultInstance) {\n return;\n }\n\n integrationsByName[name] = currentInstance;\n });\n\n return Object.values(integrationsByName);\n}\n\n/** Gets integrations to install */\nexport function getIntegrationsToSetup(\n options: Pick,\n): Integration[] {\n const defaultIntegrations = options.defaultIntegrations || [];\n const userIntegrations = options.integrations;\n\n // We flag default instances, so that later we can tell them apart from any user-created instances of the same class\n defaultIntegrations.forEach((integration: IntegrationWithDefaultInstance) => {\n integration.isDefaultInstance = true;\n });\n\n let integrations: Integration[];\n\n if (Array.isArray(userIntegrations)) {\n integrations = [...defaultIntegrations, ...userIntegrations];\n } else if (typeof userIntegrations === 'function') {\n const resolvedUserIntegrations = userIntegrations(defaultIntegrations);\n integrations = Array.isArray(resolvedUserIntegrations) ? resolvedUserIntegrations : [resolvedUserIntegrations];\n } else {\n integrations = defaultIntegrations;\n }\n\n return filterDuplicates(integrations);\n}\n\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nexport function setupIntegrations(client: Client, integrations: Integration[]): IntegrationIndex {\n const integrationIndex: IntegrationIndex = {};\n\n integrations.forEach((integration: Integration | undefined) => {\n // guard against empty provided integrations\n if (integration) {\n setupIntegration(client, integration, integrationIndex);\n }\n });\n\n return integrationIndex;\n}\n\n/**\n * Execute the `afterAllSetup` hooks of the given integrations.\n */\nexport function afterSetupIntegrations(client: Client, integrations: Integration[]): void {\n for (const integration of integrations) {\n // guard against empty provided integrations\n if (integration?.afterAllSetup) {\n integration.afterAllSetup(client);\n }\n }\n}\n\n/** Setup a single integration. */\nexport function setupIntegration(client: Client, integration: Integration, integrationIndex: IntegrationIndex): void {\n if (integrationIndex[integration.name]) {\n DEBUG_BUILD && debug.log(`Integration skipped because it was already installed: ${integration.name}`);\n return;\n }\n integrationIndex[integration.name] = integration;\n\n // `setupOnce` is only called the first time\n if (!installedIntegrations.includes(integration.name) && typeof integration.setupOnce === 'function') {\n integration.setupOnce();\n installedIntegrations.push(integration.name);\n }\n\n // `setup` is run for each client\n if (integration.setup && typeof integration.setup === 'function') {\n integration.setup(client);\n }\n\n if (typeof integration.preprocessEvent === 'function') {\n const callback = integration.preprocessEvent.bind(integration) as typeof integration.preprocessEvent;\n client.on('preprocessEvent', (event, hint) => callback(event, hint, client));\n }\n\n if (typeof integration.processEvent === 'function') {\n const callback = integration.processEvent.bind(integration) as typeof integration.processEvent;\n\n const processor = Object.assign((event: Event, hint: EventHint) => callback(event, hint, client), {\n id: integration.name,\n });\n\n client.addEventProcessor(processor);\n }\n\n DEBUG_BUILD && debug.log(`Integration installed: ${integration.name}`);\n}\n\n/** Add an integration to the current scope's client. */\nexport function addIntegration(integration: Integration): void {\n const client = getClient();\n\n if (!client) {\n DEBUG_BUILD && debug.warn(`Cannot add integration \"${integration.name}\" because no SDK Client is available.`);\n return;\n }\n\n client.addIntegration(integration);\n}\n\n/**\n * Define an integration function that can be used to create an integration instance.\n * Note that this by design hides the implementation details of the integration, as they are considered internal.\n */\nexport function defineIntegration(fn: Fn): (...args: Parameters) => Integration {\n return fn;\n}\n","import type { DurationUnit, FractionUnit, InformationUnit } from './types-hoist/measurement';\n\nexport type RawAttributes = T & ValidatedAttributes;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type RawAttribute = T extends { value: any } | { unit: any } ? AttributeObject : T;\n\nexport type Attributes = Record;\n\nexport type AttributeValueType = string | number | boolean | Array | Array | Array;\n\ntype AttributeTypeMap = {\n string: string;\n integer: number;\n double: number;\n boolean: boolean;\n 'string[]': Array;\n 'integer[]': Array;\n 'double[]': Array;\n 'boolean[]': Array;\n};\n\n/* Generates a type from the AttributeTypeMap like:\n | { value: string; type: 'string' }\n | { value: number; type: 'integer' }\n | { value: number; type: 'double' }\n */\ntype AttributeUnion = {\n [K in keyof AttributeTypeMap]: {\n value: AttributeTypeMap[K];\n type: K;\n };\n}[keyof AttributeTypeMap];\n\nexport type TypedAttributeValue = AttributeUnion & { unit?: AttributeUnit };\n\nexport type AttributeObject = {\n value: unknown;\n unit?: AttributeUnit;\n};\n\n// Unfortunately, we loose type safety if we did something like Exclude\n// so therefore we unionize between the three supported unit categories.\ntype AttributeUnit = DurationUnit | InformationUnit | FractionUnit;\n\n/* If an attribute has either a 'value' or 'unit' property, we use the ValidAttributeObject type. */\nexport type ValidatedAttributes = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [K in keyof T]: T[K] extends { value: any } | { unit: any } ? AttributeObject : unknown;\n};\n\n/**\n * Type-guard: The attribute object has the shape the official attribute object (value, type, unit).\n * https://develop.sentry.dev/sdk/telemetry/scopes/#setting-attributes\n */\nexport function isAttributeObject(maybeObj: unknown): maybeObj is AttributeObject {\n return (\n typeof maybeObj === 'object' &&\n maybeObj != null &&\n !Array.isArray(maybeObj) &&\n Object.keys(maybeObj).includes('value')\n );\n}\n\n/**\n * Converts an attribute value to a typed attribute value.\n *\n * For now, we intentionally only support primitive values and attribute objects with primitive values.\n * If @param useFallback is true, we stringify non-primitive values to a string attribute value. Otherwise\n * we return `undefined` for unsupported values.\n *\n * @param value - The value of the passed attribute.\n * @param useFallback - If true, unsupported values will be stringified to a string attribute value.\n * Defaults to false. In this case, `undefined` is returned for unsupported values.\n * @returns The typed attribute.\n */\nexport function attributeValueToTypedAttributeValue(\n rawValue: unknown,\n useFallback?: boolean | 'skip-undefined',\n): TypedAttributeValue | void {\n const { value, unit } = isAttributeObject(rawValue) ? rawValue : { value: rawValue, unit: undefined };\n const attributeValue = getTypedAttributeValue(value);\n const checkedUnit = unit && typeof unit === 'string' ? { unit } : {};\n if (attributeValue) {\n return { ...attributeValue, ...checkedUnit };\n }\n\n if (!useFallback || (useFallback === 'skip-undefined' && value === undefined)) {\n return;\n }\n\n // Fallback: stringify the value\n // TODO(v11): be smarter here and use String constructor if stringify fails\n // (this is a breaking change for already existing attribute values)\n let stringValue = '';\n try {\n stringValue = JSON.stringify(value) ?? '';\n } catch {\n // Do nothing\n }\n return {\n value: stringValue,\n type: 'string',\n ...checkedUnit,\n };\n}\n\n/**\n * Serializes raw attributes to typed attributes as expected in our envelopes.\n *\n * @param attributes The raw attributes to serialize.\n * @param fallback If true, unsupported values will be stringified to a string attribute value.\n * Defaults to false. In this case, `undefined` is returned for unsupported values.\n *\n * @returns The serialized attributes.\n */\nexport function serializeAttributes(\n attributes: RawAttributes | undefined,\n fallback: boolean | 'skip-undefined' = false,\n): Attributes {\n const serializedAttributes: Attributes = {};\n for (const [key, value] of Object.entries(attributes ?? {})) {\n const typedValue = attributeValueToTypedAttributeValue(value, fallback);\n if (typedValue) {\n serializedAttributes[key] = typedValue;\n }\n }\n return serializedAttributes;\n}\n\n/**\n * NOTE: We intentionally do not return anything for non-primitive values:\n * - array support will come in the future but if we stringify arrays now,\n * sending arrays (unstringified) later will be a subtle breaking change.\n * - Objects are not supported yet and product support is still TBD.\n * - We still keep the type signature for TypedAttributeValue wider to avoid a\n * breaking change once we add support for non-primitive values.\n * - Once we go back to supporting arrays and stringifying all other values,\n * we already implemented the serialization logic here:\n * https://github.com/getsentry/sentry-javascript/pull/18165\n */\nfunction getTypedAttributeValue(value: unknown): TypedAttributeValue | void {\n const primitiveType =\n typeof value === 'string'\n ? 'string'\n : typeof value === 'boolean'\n ? 'boolean'\n : typeof value === 'number' && !Number.isNaN(value)\n ? Number.isInteger(value)\n ? 'integer'\n : 'double'\n : null;\n if (primitiveType) {\n // @ts-expect-error - TS complains because {@link TypedAttributeValue} is strictly typed to\n // avoid setting the wrong `type` on the attribute value.\n // In this case, getPrimitiveType already does the check but TS doesn't know that.\n // The \"clean\" alternative is to return an object per `typeof value` case\n // but that would require more bundle size\n // Therefore, we ignore it.\n return { value, type: primitiveType };\n }\n}\n","const SEQUENCE_ATTR_KEY = 'sentry.timestamp.sequence';\n\nlet _sequenceNumber = 0;\nlet _previousTimestampMs: number | undefined;\n\n/**\n * Returns the `sentry.timestamp.sequence` attribute entry for a serialized telemetry item.\n *\n * The sequence number starts at 0 and increments by 1 for each item captured.\n * It resets to 0 when the current item's integer millisecond timestamp differs\n * from the previous item's integer millisecond timestamp.\n *\n * @param timestampInSeconds - The timestamp of the telemetry item in seconds.\n */\nexport function getSequenceAttribute(timestampInSeconds: number): {\n key: string;\n value: { value: number; type: 'integer' };\n} {\n const nowMs = Math.floor(timestampInSeconds * 1000);\n\n if (_previousTimestampMs !== undefined && nowMs !== _previousTimestampMs) {\n _sequenceNumber = 0;\n }\n\n const value = _sequenceNumber;\n _sequenceNumber++;\n _previousTimestampMs = nowMs;\n\n return {\n key: SEQUENCE_ATTR_KEY,\n value: { value, type: 'integer' },\n };\n}\n\n/**\n * Resets the sequence number state. Only exported for testing purposes.\n */\nexport function _INTERNAL_resetSequenceNumber(): void {\n _sequenceNumber = 0;\n _previousTimestampMs = undefined;\n}\n","import type { Client } from '../client';\nimport { getTraceContextFromScope, withScope } from '../currentScopes';\nimport type { Scope } from '../scope';\nimport {\n getDynamicSamplingContextFromScope,\n getDynamicSamplingContextFromSpan,\n} from '../tracing/dynamicSamplingContext';\nimport type { TraceContext } from '../types-hoist/context';\nimport type { DynamicSamplingContext } from '../types-hoist/envelope';\nimport { getActiveSpan, spanToTraceContext } from './spanUtils';\n\n/** Extract trace information from scope */\nexport function _getTraceInfoFromScope(\n client: Client,\n scope: Scope | undefined,\n): [dynamicSamplingContext: Partial | undefined, traceContext: TraceContext | undefined] {\n if (!scope) {\n return [undefined, undefined];\n }\n\n return withScope(scope, () => {\n const span = getActiveSpan();\n const traceContext = span ? spanToTraceContext(span) : getTraceContextFromScope(scope);\n const dynamicSamplingContext = span\n ? getDynamicSamplingContextFromSpan(span)\n : getDynamicSamplingContextFromScope(client, scope);\n return [dynamicSamplingContext, traceContext];\n });\n}\n","import type { LogSeverityLevel } from '../types-hoist/log';\n\n/**\n * Maps a log severity level to a log severity number.\n *\n * @see LogSeverityLevel\n */\nexport const SEVERITY_TEXT_TO_SEVERITY_NUMBER: Partial> = {\n trace: 1,\n debug: 5,\n info: 9,\n warn: 13,\n error: 17,\n fatal: 21,\n};\n","import type { DsnComponents } from '../types-hoist/dsn';\nimport type { LogContainerItem, LogEnvelope } from '../types-hoist/envelope';\nimport type { SerializedLog } from '../types-hoist/log';\nimport type { SdkMetadata } from '../types-hoist/sdkmetadata';\nimport { dsnToString } from '../utils/dsn';\nimport { createEnvelope } from '../utils/envelope';\n\n/**\n * Creates a log container envelope item for a list of logs.\n *\n * @param items - The logs to include in the envelope.\n * @returns The created log container envelope item.\n */\nexport function createLogContainerEnvelopeItem(items: Array): LogContainerItem {\n return [\n {\n type: 'log',\n item_count: items.length,\n content_type: 'application/vnd.sentry.items.log+json',\n },\n {\n items,\n },\n ];\n}\n\n/**\n * Creates an envelope for a list of logs.\n *\n * Logs from multiple traces can be included in the same envelope.\n *\n * @param logs - The logs to include in the envelope.\n * @param metadata - The metadata to include in the envelope.\n * @param tunnel - The tunnel to include in the envelope.\n * @param dsn - The DSN to include in the envelope.\n * @returns The created envelope.\n */\nexport function createLogEnvelope(\n logs: Array,\n metadata?: SdkMetadata,\n tunnel?: string,\n dsn?: DsnComponents,\n): LogEnvelope {\n const headers: LogEnvelope[0] = {};\n\n if (metadata?.sdk) {\n headers.sdk = {\n name: metadata.sdk.name,\n version: metadata.sdk.version,\n };\n }\n\n if (!!tunnel && !!dsn) {\n headers.dsn = dsnToString(dsn);\n }\n\n return createEnvelope(headers, [createLogContainerEnvelopeItem(logs)]);\n}\n","import { serializeAttributes } from '../attributes';\nimport { getGlobalSingleton } from '../carrier';\nimport type { Client } from '../client';\nimport { getClient, getCurrentScope, getIsolationScope } from '../currentScopes';\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { Integration } from '../types-hoist/integration';\nimport type { Log, SerializedLog } from '../types-hoist/log';\nimport { consoleSandbox, debug } from '../utils/debug-logger';\nimport { isParameterizedString } from '../utils/is';\nimport { getCombinedScopeData } from '../utils/scopeData';\nimport { _getSpanForScope } from '../utils/spanOnScope';\nimport { timestampInSeconds } from '../utils/time';\nimport { getSequenceAttribute } from '../utils/timestampSequence';\nimport { _getTraceInfoFromScope } from '../utils/trace-info';\nimport { SEVERITY_TEXT_TO_SEVERITY_NUMBER } from './constants';\nimport { createLogEnvelope } from './envelope';\n\nconst MAX_LOG_BUFFER_SIZE = 100;\n\n/**\n * Sets a log attribute if the value exists and the attribute key is not already present.\n *\n * @param logAttributes - The log attributes object to modify.\n * @param key - The attribute key to set.\n * @param value - The value to set (only sets if truthy and key not present).\n * @param setEvenIfPresent - Whether to set the attribute if it is present. Defaults to true.\n */\nfunction setLogAttribute(\n logAttributes: Record,\n key: string,\n value: unknown,\n setEvenIfPresent = true,\n): void {\n if (value && (!logAttributes[key] || setEvenIfPresent)) {\n logAttributes[key] = value;\n }\n}\n\n/**\n * Captures a serialized log event and adds it to the log buffer for the given client.\n *\n * @param client - A client. Uses the current client if not provided.\n * @param serializedLog - The serialized log event to capture.\n *\n * @experimental This method will experience breaking changes. This is not yet part of\n * the stable Sentry SDK API and can be changed or removed without warning.\n */\nexport function _INTERNAL_captureSerializedLog(client: Client, serializedLog: SerializedLog): void {\n const bufferMap = _getBufferMap();\n const logBuffer = _INTERNAL_getLogBuffer(client);\n\n if (logBuffer === undefined) {\n bufferMap.set(client, [serializedLog]);\n } else {\n if (logBuffer.length >= MAX_LOG_BUFFER_SIZE) {\n _INTERNAL_flushLogsBuffer(client, logBuffer);\n bufferMap.set(client, [serializedLog]);\n } else {\n bufferMap.set(client, [...logBuffer, serializedLog]);\n }\n }\n}\n\n/**\n * Captures a log event and sends it to Sentry.\n *\n * @param log - The log event to capture.\n * @param scope - A scope. Uses the current scope if not provided.\n * @param client - A client. Uses the current client if not provided.\n * @param captureSerializedLog - A function to capture the serialized log.\n *\n * @experimental This method will experience breaking changes. This is not yet part of\n * the stable Sentry SDK API and can be changed or removed without warning.\n */\nexport function _INTERNAL_captureLog(\n beforeLog: Log,\n currentScope = getCurrentScope(),\n captureSerializedLog: (client: Client, log: SerializedLog) => void = _INTERNAL_captureSerializedLog,\n): void {\n const client = currentScope?.getClient() ?? getClient();\n if (!client) {\n DEBUG_BUILD && debug.warn('No client available to capture log.');\n return;\n }\n\n const { release, environment, enableLogs = false, beforeSendLog } = client.getOptions();\n if (!enableLogs) {\n DEBUG_BUILD && debug.warn('logging option not enabled, log will not be captured.');\n return;\n }\n\n const [, traceContext] = _getTraceInfoFromScope(client, currentScope);\n\n const processedLogAttributes = {\n ...beforeLog.attributes,\n };\n\n const {\n user: { id, email, username },\n attributes: scopeAttributes = {},\n } = getCombinedScopeData(getIsolationScope(), currentScope);\n\n setLogAttribute(processedLogAttributes, 'user.id', id, false);\n setLogAttribute(processedLogAttributes, 'user.email', email, false);\n setLogAttribute(processedLogAttributes, 'user.name', username, false);\n\n setLogAttribute(processedLogAttributes, 'sentry.release', release);\n setLogAttribute(processedLogAttributes, 'sentry.environment', environment);\n\n const { name, version } = client.getSdkMetadata()?.sdk ?? {};\n setLogAttribute(processedLogAttributes, 'sentry.sdk.name', name);\n setLogAttribute(processedLogAttributes, 'sentry.sdk.version', version);\n\n const replay = client.getIntegrationByName<\n Integration & {\n getReplayId: (onlyIfSampled?: boolean) => string;\n getRecordingMode: () => 'session' | 'buffer' | undefined;\n }\n >('Replay');\n\n const replayId = replay?.getReplayId(true);\n setLogAttribute(processedLogAttributes, 'sentry.replay_id', replayId);\n\n if (replayId && replay?.getRecordingMode() === 'buffer') {\n // We send this so we can identify cases where the replayId is attached but the replay itself might not have been sent to Sentry\n setLogAttribute(processedLogAttributes, 'sentry._internal.replay_is_buffering', true);\n }\n\n const beforeLogMessage = beforeLog.message;\n if (isParameterizedString(beforeLogMessage)) {\n const { __sentry_template_string__, __sentry_template_values__ = [] } = beforeLogMessage;\n if (__sentry_template_values__?.length) {\n processedLogAttributes['sentry.message.template'] = __sentry_template_string__;\n }\n __sentry_template_values__.forEach((param, index) => {\n processedLogAttributes[`sentry.message.parameter.${index}`] = param;\n });\n }\n\n const span = _getSpanForScope(currentScope);\n // Add the parent span ID to the log attributes for trace context\n setLogAttribute(processedLogAttributes, 'sentry.trace.parent_span_id', span?.spanContext().spanId);\n\n const processedLog = { ...beforeLog, attributes: processedLogAttributes };\n\n client.emit('beforeCaptureLog', processedLog);\n\n // We need to wrap this in `consoleSandbox` to avoid recursive calls to `beforeSendLog`\n const log = beforeSendLog ? consoleSandbox(() => beforeSendLog(processedLog)) : processedLog;\n if (!log) {\n client.recordDroppedEvent('before_send', 'log_item', 1);\n DEBUG_BUILD && debug.warn('beforeSendLog returned null, log will not be captured.');\n return;\n }\n\n const { level, message, attributes: logAttributes = {}, severityNumber } = log;\n\n const timestamp = timestampInSeconds();\n const sequenceAttr = getSequenceAttribute(timestamp);\n\n const serializedLog: SerializedLog = {\n timestamp,\n level,\n body: message,\n trace_id: traceContext?.trace_id,\n severity_number: severityNumber ?? SEVERITY_TEXT_TO_SEVERITY_NUMBER[level],\n attributes: {\n ...serializeAttributes(scopeAttributes),\n ...serializeAttributes(logAttributes, true),\n [sequenceAttr.key]: sequenceAttr.value,\n },\n };\n\n captureSerializedLog(client, serializedLog);\n\n client.emit('afterCaptureLog', log);\n}\n\n/**\n * Flushes the logs buffer to Sentry.\n *\n * @param client - A client.\n * @param maybeLogBuffer - A log buffer. Uses the log buffer for the given client if not provided.\n *\n * @experimental This method will experience breaking changes. This is not yet part of\n * the stable Sentry SDK API and can be changed or removed without warning.\n */\nexport function _INTERNAL_flushLogsBuffer(client: Client, maybeLogBuffer?: Array): void {\n const logBuffer = maybeLogBuffer ?? _INTERNAL_getLogBuffer(client) ?? [];\n if (logBuffer.length === 0) {\n return;\n }\n\n const clientOptions = client.getOptions();\n const envelope = createLogEnvelope(logBuffer, clientOptions._metadata, clientOptions.tunnel, client.getDsn());\n\n // Clear the log buffer after envelopes have been constructed.\n _getBufferMap().set(client, []);\n\n client.emit('flushLogs');\n\n // sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n client.sendEnvelope(envelope);\n}\n\n/**\n * Returns the log buffer for a given client.\n *\n * Exported for testing purposes.\n *\n * @param client - The client to get the log buffer for.\n * @returns The log buffer for the given client.\n */\nexport function _INTERNAL_getLogBuffer(client: Client): Array | undefined {\n return _getBufferMap().get(client);\n}\n\nfunction _getBufferMap(): WeakMap> {\n // The reference to the Client <> LogBuffer map is stored on the carrier to ensure it's always the same\n return getGlobalSingleton('clientToLogBufferMap', () => new WeakMap>());\n}\n","import type { DsnComponents } from '../types-hoist/dsn';\nimport type { MetricContainerItem, MetricEnvelope } from '../types-hoist/envelope';\nimport type { SerializedMetric } from '../types-hoist/metric';\nimport type { SdkMetadata } from '../types-hoist/sdkmetadata';\nimport { dsnToString } from '../utils/dsn';\nimport { createEnvelope } from '../utils/envelope';\n\n/**\n * Creates a metric container envelope item for a list of metrics.\n *\n * @param items - The metrics to include in the envelope.\n * @returns The created metric container envelope item.\n */\nexport function createMetricContainerEnvelopeItem(items: Array): MetricContainerItem {\n return [\n {\n type: 'trace_metric',\n item_count: items.length,\n content_type: 'application/vnd.sentry.items.trace-metric+json',\n } as MetricContainerItem[0],\n {\n items,\n },\n ];\n}\n\n/**\n * Creates an envelope for a list of metrics.\n *\n * Metrics from multiple traces can be included in the same envelope.\n *\n * @param metrics - The metrics to include in the envelope.\n * @param metadata - The metadata to include in the envelope.\n * @param tunnel - The tunnel to include in the envelope.\n * @param dsn - The DSN to include in the envelope.\n * @returns The created envelope.\n */\nexport function createMetricEnvelope(\n metrics: Array,\n metadata?: SdkMetadata,\n tunnel?: string,\n dsn?: DsnComponents,\n): MetricEnvelope {\n const headers: MetricEnvelope[0] = {};\n\n if (metadata?.sdk) {\n headers.sdk = {\n name: metadata.sdk.name,\n version: metadata.sdk.version,\n };\n }\n\n if (!!tunnel && !!dsn) {\n headers.dsn = dsnToString(dsn);\n }\n\n return createEnvelope(headers, [createMetricContainerEnvelopeItem(metrics)]);\n}\n","import { type RawAttributes, serializeAttributes } from '../attributes';\nimport { getGlobalSingleton } from '../carrier';\nimport type { Client } from '../client';\nimport { getClient, getCurrentScope, getIsolationScope } from '../currentScopes';\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { Scope } from '../scope';\nimport type { Integration } from '../types-hoist/integration';\nimport type { Metric, SerializedMetric } from '../types-hoist/metric';\nimport type { User } from '../types-hoist/user';\nimport { debug } from '../utils/debug-logger';\nimport { getCombinedScopeData } from '../utils/scopeData';\nimport { _getSpanForScope } from '../utils/spanOnScope';\nimport { timestampInSeconds } from '../utils/time';\nimport { getSequenceAttribute } from '../utils/timestampSequence';\nimport { _getTraceInfoFromScope } from '../utils/trace-info';\nimport { createMetricEnvelope } from './envelope';\n\nconst MAX_METRIC_BUFFER_SIZE = 1000;\n\n/**\n * Sets a metric attribute if the value exists and the attribute key is not already present.\n *\n * @param metricAttributes - The metric attributes object to modify.\n * @param key - The attribute key to set.\n * @param value - The value to set (only sets if truthy and key not present).\n * @param setEvenIfPresent - Whether to set the attribute if it is present. Defaults to true.\n */\nfunction setMetricAttribute(\n metricAttributes: Record,\n key: string,\n value: unknown,\n setEvenIfPresent = true,\n): void {\n if (value && (setEvenIfPresent || !(key in metricAttributes))) {\n metricAttributes[key] = value;\n }\n}\n\n/**\n * Captures a serialized metric event and adds it to the metric buffer for the given client.\n *\n * @param client - A client. Uses the current client if not provided.\n * @param serializedMetric - The serialized metric event to capture.\n *\n * @experimental This method will experience breaking changes. This is not yet part of\n * the stable Sentry SDK API and can be changed or removed without warning.\n */\nexport function _INTERNAL_captureSerializedMetric(client: Client, serializedMetric: SerializedMetric): void {\n const bufferMap = _getBufferMap();\n const metricBuffer = _INTERNAL_getMetricBuffer(client);\n\n if (metricBuffer === undefined) {\n bufferMap.set(client, [serializedMetric]);\n } else {\n if (metricBuffer.length >= MAX_METRIC_BUFFER_SIZE) {\n _INTERNAL_flushMetricsBuffer(client, metricBuffer);\n bufferMap.set(client, [serializedMetric]);\n } else {\n bufferMap.set(client, [...metricBuffer, serializedMetric]);\n }\n }\n}\n\n/**\n * Options for capturing a metric internally.\n */\nexport interface InternalCaptureMetricOptions {\n /**\n * The scope to capture the metric with.\n */\n scope?: Scope;\n\n /**\n * A function to capture the serialized metric.\n */\n captureSerializedMetric?: (client: Client, metric: SerializedMetric) => void;\n}\n\n/**\n * Enriches metric with all contextual attributes (user, SDK metadata, replay, etc.)\n */\nfunction _enrichMetricAttributes(beforeMetric: Metric, client: Client, user: User): Metric {\n const { release, environment } = client.getOptions();\n\n const processedMetricAttributes = {\n ...beforeMetric.attributes,\n };\n\n // Add user attributes\n setMetricAttribute(processedMetricAttributes, 'user.id', user.id, false);\n setMetricAttribute(processedMetricAttributes, 'user.email', user.email, false);\n setMetricAttribute(processedMetricAttributes, 'user.name', user.username, false);\n\n // Add Sentry metadata\n setMetricAttribute(processedMetricAttributes, 'sentry.release', release);\n setMetricAttribute(processedMetricAttributes, 'sentry.environment', environment);\n\n // Add SDK metadata\n const { name, version } = client.getSdkMetadata()?.sdk ?? {};\n setMetricAttribute(processedMetricAttributes, 'sentry.sdk.name', name);\n setMetricAttribute(processedMetricAttributes, 'sentry.sdk.version', version);\n\n // Add replay metadata\n const replay = client.getIntegrationByName<\n Integration & {\n getReplayId: (onlyIfSampled?: boolean) => string;\n getRecordingMode: () => 'session' | 'buffer' | undefined;\n }\n >('Replay');\n\n const replayId = replay?.getReplayId(true);\n setMetricAttribute(processedMetricAttributes, 'sentry.replay_id', replayId);\n\n if (replayId && replay?.getRecordingMode() === 'buffer') {\n setMetricAttribute(processedMetricAttributes, 'sentry._internal.replay_is_buffering', true);\n }\n\n return {\n ...beforeMetric,\n attributes: processedMetricAttributes,\n };\n}\n\n/**\n * Creates a serialized metric ready to be sent to Sentry.\n */\nfunction _buildSerializedMetric(\n metric: Metric,\n client: Client,\n currentScope: Scope,\n scopeAttributes: RawAttributes> | undefined,\n): SerializedMetric {\n // Get trace context\n const [, traceContext] = _getTraceInfoFromScope(client, currentScope);\n const span = _getSpanForScope(currentScope);\n const traceId = span ? span.spanContext().traceId : traceContext?.trace_id;\n const spanId = span ? span.spanContext().spanId : undefined;\n\n const timestamp = timestampInSeconds();\n const sequenceAttr = getSequenceAttribute(timestamp);\n\n return {\n timestamp,\n trace_id: traceId ?? '',\n span_id: spanId,\n name: metric.name,\n type: metric.type,\n unit: metric.unit,\n value: metric.value,\n attributes: {\n ...serializeAttributes(scopeAttributes),\n ...serializeAttributes(metric.attributes, 'skip-undefined'),\n [sequenceAttr.key]: sequenceAttr.value,\n },\n };\n}\n\n/**\n * Captures a metric event and sends it to Sentry.\n *\n * @param metric - The metric event to capture.\n * @param options - Options for capturing the metric.\n *\n * @experimental This method will experience breaking changes. This is not yet part of\n * the stable Sentry SDK API and can be changed or removed without warning.\n */\nexport function _INTERNAL_captureMetric(beforeMetric: Metric, options?: InternalCaptureMetricOptions): void {\n const currentScope = options?.scope ?? getCurrentScope();\n const captureSerializedMetric = options?.captureSerializedMetric ?? _INTERNAL_captureSerializedMetric;\n const client = currentScope?.getClient() ?? getClient();\n if (!client) {\n DEBUG_BUILD && debug.warn('No client available to capture metric.');\n return;\n }\n\n const { _experiments, enableMetrics, beforeSendMetric } = client.getOptions();\n\n // todo(v11): Remove the experimental flag\n // eslint-disable-next-line deprecation/deprecation\n const metricsEnabled = enableMetrics ?? _experiments?.enableMetrics ?? true;\n\n if (!metricsEnabled) {\n DEBUG_BUILD && debug.warn('metrics option not enabled, metric will not be captured.');\n return;\n }\n\n // Enrich metric with contextual attributes\n const { user, attributes: scopeAttributes } = getCombinedScopeData(getIsolationScope(), currentScope);\n const enrichedMetric = _enrichMetricAttributes(beforeMetric, client, user);\n\n client.emit('processMetric', enrichedMetric);\n\n // todo(v11): Remove the experimental `beforeSendMetric`\n // eslint-disable-next-line deprecation/deprecation\n const beforeSendCallback = beforeSendMetric || _experiments?.beforeSendMetric;\n const processedMetric = beforeSendCallback ? beforeSendCallback(enrichedMetric) : enrichedMetric;\n\n if (!processedMetric) {\n DEBUG_BUILD && debug.log('`beforeSendMetric` returned `null`, will not send metric.');\n return;\n }\n\n const serializedMetric = _buildSerializedMetric(processedMetric, client, currentScope, scopeAttributes);\n\n DEBUG_BUILD && debug.log('[Metric]', serializedMetric);\n\n captureSerializedMetric(client, serializedMetric);\n\n client.emit('afterCaptureMetric', processedMetric);\n}\n\n/**\n * Flushes the metrics buffer to Sentry.\n *\n * @param client - A client.\n * @param maybeMetricBuffer - A metric buffer. Uses the metric buffer for the given client if not provided.\n *\n * @experimental This method will experience breaking changes. This is not yet part of\n * the stable Sentry SDK API and can be changed or removed without warning.\n */\nexport function _INTERNAL_flushMetricsBuffer(client: Client, maybeMetricBuffer?: Array): void {\n const metricBuffer = maybeMetricBuffer ?? _INTERNAL_getMetricBuffer(client) ?? [];\n if (metricBuffer.length === 0) {\n return;\n }\n\n const clientOptions = client.getOptions();\n const envelope = createMetricEnvelope(metricBuffer, clientOptions._metadata, clientOptions.tunnel, client.getDsn());\n\n // Clear the metric buffer after envelopes have been constructed.\n _getBufferMap().set(client, []);\n\n client.emit('flushMetrics');\n\n // sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n client.sendEnvelope(envelope);\n}\n\n/**\n * Returns the metric buffer for a given client.\n *\n * Exported for testing purposes.\n *\n * @param client - The client to get the metric buffer for.\n * @returns The metric buffer for the given client.\n */\nexport function _INTERNAL_getMetricBuffer(client: Client): Array | undefined {\n return _getBufferMap().get(client);\n}\n\nfunction _getBufferMap(): WeakMap> {\n // The reference to the Client <> MetricBuffer map is stored on the carrier to ensure it's always the same\n return getGlobalSingleton('clientToMetricBufferMap', () => new WeakMap>());\n}\n","/**\n * Calls `unref` on a timer, if the method is available on @param timer.\n *\n * `unref()` is used to allow processes to exit immediately, even if the timer\n * is still running and hasn't resolved yet.\n *\n * Use this in places where code can run on browser or server, since browsers\n * do not support `unref`.\n */\nexport function safeUnref(timer: ReturnType): ReturnType {\n if (typeof timer === 'object' && typeof timer.unref === 'function') {\n timer.unref();\n }\n return timer;\n}\n","import { rejectedSyncPromise, resolvedSyncPromise } from './syncpromise';\nimport { safeUnref } from './timer';\n\nexport interface PromiseBuffer {\n // exposes the internal array so tests can assert on the state of it.\n // XXX: this really should not be public api.\n $: PromiseLike[];\n add(taskProducer: () => PromiseLike): PromiseLike;\n drain(timeout?: number): PromiseLike;\n}\n\nexport const SENTRY_BUFFER_FULL_ERROR = Symbol.for('SentryBufferFullError');\n\n/**\n * Creates an new PromiseBuffer object with the specified limit\n * @param limit max number of promises that can be stored in the buffer\n */\nexport function makePromiseBuffer(limit: number = 100): PromiseBuffer {\n const buffer: Set> = new Set();\n\n function isReady(): boolean {\n return buffer.size < limit;\n }\n\n /**\n * Remove a promise from the queue.\n *\n * @param task Can be any PromiseLike\n * @returns Removed promise.\n */\n function remove(task: PromiseLike): void {\n buffer.delete(task);\n }\n\n /**\n * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n *\n * @param taskProducer A function producing any PromiseLike; In previous versions this used to be `task:\n * PromiseLike`, but under that model, Promises were instantly created on the call-site and their executor\n * functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By\n * requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer\n * limit check.\n * @returns The original promise.\n */\n function add(taskProducer: () => PromiseLike): PromiseLike {\n if (!isReady()) {\n return rejectedSyncPromise(SENTRY_BUFFER_FULL_ERROR);\n }\n\n // start the task and add its promise to the queue\n const task = taskProducer();\n buffer.add(task);\n void task.then(\n () => remove(task),\n () => remove(task),\n );\n return task;\n }\n\n /**\n * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n * `false` otherwise\n */\n function drain(timeout?: number): PromiseLike {\n if (!buffer.size) {\n return resolvedSyncPromise(true);\n }\n\n // We want to resolve even if one of the promises rejects\n const drainPromise = Promise.allSettled(Array.from(buffer)).then(() => true);\n\n if (!timeout) {\n return drainPromise;\n }\n\n const promises = [\n drainPromise,\n new Promise(resolve => safeUnref(setTimeout(() => resolve(false), timeout))),\n ];\n\n return Promise.race(promises);\n }\n\n return {\n get $(): PromiseLike[] {\n return Array.from(buffer);\n },\n add,\n drain,\n };\n}\n","import type { DataCategory } from '../types-hoist/datacategory';\nimport type { TransportMakeRequestResponse } from '../types-hoist/transport';\nimport { safeDateNow } from './randomSafeContext';\n\n// Intentionally keeping the key broad, as we don't know for sure what rate limit headers get returned from backend\nexport type RateLimits = Record;\n\nexport const DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\nexport function parseRetryAfterHeader(header: string, now: number = safeDateNow()): number {\n const headerDelay = parseInt(`${header}`, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n\n const headerDate = Date.parse(`${header}`);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n\n return DEFAULT_RETRY_AFTER;\n}\n\n/**\n * Gets the time that the given category is disabled until for rate limiting.\n * In case no category-specific limit is set but a general rate limit across all categories is active,\n * that time is returned.\n *\n * @return the time in ms that the category is disabled until or 0 if there's no active rate limit.\n */\nexport function disabledUntil(limits: RateLimits, dataCategory: DataCategory): number {\n return limits[dataCategory] || limits.all || 0;\n}\n\n/**\n * Checks if a category is rate limited\n */\nexport function isRateLimited(limits: RateLimits, dataCategory: DataCategory, now: number = safeDateNow()): boolean {\n return disabledUntil(limits, dataCategory) > now;\n}\n\n/**\n * Update ratelimits from incoming headers.\n *\n * @return the updated RateLimits object.\n */\nexport function updateRateLimits(\n limits: RateLimits,\n { statusCode, headers }: TransportMakeRequestResponse,\n now: number = safeDateNow(),\n): RateLimits {\n const updatedRateLimits: RateLimits = {\n ...limits,\n };\n\n // \"The name is case-insensitive.\"\n // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n const rateLimitHeader = headers?.['x-sentry-rate-limits'];\n const retryAfterHeader = headers?.['retry-after'];\n\n if (rateLimitHeader) {\n /**\n * rate limit headers are of the form\n *
,
,..\n * where each
is of the form\n * : : : : \n * where\n * is a delay in seconds\n * is the event type(s) (error, transaction, etc) being rate limited and is of the form\n * ;;...\n * is what's being limited (org, project, or key) - ignored by SDK\n * is an arbitrary string like \"org_quota\" - ignored by SDK\n * Semicolon-separated list of metric namespace identifiers. Defines which namespace(s) will be affected.\n * Only present if rate limit applies to the metric_bucket data category.\n */\n for (const limit of rateLimitHeader.trim().split(',')) {\n const [retryAfter, categories, , , namespaces] = limit.split(':', 5) as [string, ...string[]];\n const headerDelay = parseInt(retryAfter, 10);\n const delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n if (!categories) {\n updatedRateLimits.all = now + delay;\n } else {\n for (const category of categories.split(';')) {\n if (category === 'metric_bucket') {\n // namespaces will be present when category === 'metric_bucket'\n if (!namespaces || namespaces.split(';').includes('custom')) {\n updatedRateLimits[category] = now + delay;\n }\n } else {\n updatedRateLimits[category] = now + delay;\n }\n }\n }\n }\n } else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n } else if (statusCode === 429) {\n updatedRateLimits.all = now + 60 * 1000;\n }\n\n return updatedRateLimits;\n}\n","import { DEBUG_BUILD } from '../debug-build';\nimport type { EventDropReason } from '../types-hoist/clientreport';\nimport type { Envelope, EnvelopeItem } from '../types-hoist/envelope';\nimport type {\n InternalBaseTransportOptions,\n Transport,\n TransportMakeRequestResponse,\n TransportRequestExecutor,\n} from '../types-hoist/transport';\nimport { debug } from '../utils/debug-logger';\nimport {\n createEnvelope,\n envelopeContainsItemType,\n envelopeItemTypeToDataCategory,\n forEachEnvelopeItem,\n serializeEnvelope,\n} from '../utils/envelope';\nimport { makePromiseBuffer, type PromiseBuffer, SENTRY_BUFFER_FULL_ERROR } from '../utils/promisebuffer';\nimport { isRateLimited, type RateLimits, updateRateLimits } from '../utils/ratelimit';\n\nexport const DEFAULT_TRANSPORT_BUFFER_SIZE = 64;\n\n/**\n * Creates an instance of a Sentry `Transport`\n *\n * @param options\n * @param makeRequest\n */\nexport function createTransport(\n options: InternalBaseTransportOptions,\n makeRequest: TransportRequestExecutor,\n buffer: PromiseBuffer = makePromiseBuffer(\n options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE,\n ),\n): Transport {\n let rateLimits: RateLimits = {};\n const flush = (timeout?: number): PromiseLike => buffer.drain(timeout);\n\n function send(envelope: Envelope): PromiseLike {\n const filteredEnvelopeItems: EnvelopeItem[] = [];\n\n // Drop rate limited items from envelope\n forEachEnvelopeItem(envelope, (item, type) => {\n const dataCategory = envelopeItemTypeToDataCategory(type);\n if (isRateLimited(rateLimits, dataCategory)) {\n options.recordDroppedEvent('ratelimit_backoff', dataCategory);\n } else {\n filteredEnvelopeItems.push(item);\n }\n });\n\n // Skip sending if envelope is empty after filtering out rate limited events\n if (filteredEnvelopeItems.length === 0) {\n return Promise.resolve({});\n }\n\n const filteredEnvelope: Envelope = createEnvelope(envelope[0], filteredEnvelopeItems as (typeof envelope)[1]);\n\n // Creates client report for each item in an envelope\n const recordEnvelopeLoss = (reason: EventDropReason): void => {\n // Don't record outcomes for client reports - we don't want to create a feedback loop if client reports themselves fail to send\n if (envelopeContainsItemType(filteredEnvelope, ['client_report'])) {\n DEBUG_BUILD && debug.warn(`Dropping client report. Will not send outcomes (reason: ${reason}).`);\n return;\n }\n forEachEnvelopeItem(filteredEnvelope, (item, type) => {\n options.recordDroppedEvent(reason, envelopeItemTypeToDataCategory(type));\n });\n };\n\n const requestTask = (): PromiseLike =>\n makeRequest({ body: serializeEnvelope(filteredEnvelope) }).then(\n response => {\n // Handle 413 Content Too Large\n // Loss of envelope content is expected so we record a send_error client report\n // https://develop.sentry.dev/sdk/expected-features/#dealing-with-network-failures\n if (response.statusCode === 413) {\n DEBUG_BUILD &&\n debug.error(\n 'Sentry responded with status code 413. Envelope was discarded due to exceeding size limits.',\n );\n recordEnvelopeLoss('send_error');\n return response;\n }\n\n // We don't want to throw on NOK responses, but we want to at least log them\n if (\n DEBUG_BUILD &&\n response.statusCode !== undefined &&\n (response.statusCode < 200 || response.statusCode >= 300)\n ) {\n debug.warn(`Sentry responded with status code ${response.statusCode} to sent event.`);\n }\n\n rateLimits = updateRateLimits(rateLimits, response);\n return response;\n },\n error => {\n recordEnvelopeLoss('network_error');\n DEBUG_BUILD && debug.error('Encountered error running transport request:', error);\n throw error;\n },\n );\n\n return buffer.add(requestTask).then(\n result => result,\n error => {\n if (error === SENTRY_BUFFER_FULL_ERROR) {\n DEBUG_BUILD && debug.error('Skipped sending event because buffer is full.');\n recordEnvelopeLoss('queue_overflow');\n return Promise.resolve({});\n } else {\n throw error;\n }\n },\n );\n }\n\n return {\n send,\n flush,\n };\n}\n","import type { ClientReport } from '../types-hoist/clientreport';\nimport type { ClientReportEnvelope, ClientReportItem } from '../types-hoist/envelope';\nimport { createEnvelope } from './envelope';\nimport { dateTimestampInSeconds } from './time';\n\n/**\n * Creates client report envelope\n * @param discarded_events An array of discard events\n * @param dsn A DSN that can be set on the header. Optional.\n */\nexport function createClientReportEnvelope(\n discarded_events: ClientReport['discarded_events'],\n dsn?: string,\n timestamp?: number,\n): ClientReportEnvelope {\n const clientReportItem: ClientReportItem = [\n { type: 'client_report' },\n {\n timestamp: timestamp || dateTimestampInSeconds(),\n discarded_events,\n },\n ];\n return createEnvelope(dsn ? { dsn } : {}, [clientReportItem]);\n}\n","import type { Event } from '../types-hoist/event';\n\n/**\n * Get a list of possible event messages from a Sentry event.\n */\nexport function getPossibleEventMessages(event: Event): string[] {\n const possibleMessages: string[] = [];\n\n if (event.message) {\n possibleMessages.push(event.message);\n }\n\n try {\n // @ts-expect-error Try catching to save bundle size\n const lastException = event.exception.values[event.exception.values.length - 1];\n if (lastException?.value) {\n possibleMessages.push(lastException.value);\n if (lastException.type) {\n possibleMessages.push(`${lastException.type}: ${lastException.value}`);\n }\n }\n } catch {\n // ignore errors here\n }\n\n return possibleMessages;\n}\n","import { SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_PROFILE_ID } from '../semanticAttributes';\nimport type { TransactionEvent } from '../types-hoist/event';\nimport type { SpanJSON } from '../types-hoist/span';\n\n/**\n * Converts a transaction event to a span JSON object.\n */\nexport function convertTransactionEventToSpanJson(event: TransactionEvent): SpanJSON {\n const { trace_id, parent_span_id, span_id, status, origin, data, op } = event.contexts?.trace ?? {};\n\n return {\n data: data ?? {},\n description: event.transaction,\n op,\n parent_span_id,\n span_id: span_id ?? '',\n start_timestamp: event.start_timestamp ?? 0,\n status,\n timestamp: event.timestamp,\n trace_id: trace_id ?? '',\n origin,\n profile_id: data?.[SEMANTIC_ATTRIBUTE_PROFILE_ID] as string | undefined,\n exclusive_time: data?.[SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME] as number | undefined,\n measurements: event.measurements,\n is_segment: true,\n };\n}\n\n/**\n * Converts a span JSON object to a transaction event.\n */\nexport function convertSpanJsonToTransactionEvent(span: SpanJSON): TransactionEvent {\n return {\n type: 'transaction',\n timestamp: span.timestamp,\n start_timestamp: span.start_timestamp,\n transaction: span.description,\n contexts: {\n trace: {\n trace_id: span.trace_id,\n span_id: span.span_id,\n parent_span_id: span.parent_span_id,\n op: span.op,\n status: span.status,\n origin: span.origin,\n data: {\n ...span.data,\n ...(span.profile_id && { [SEMANTIC_ATTRIBUTE_PROFILE_ID]: span.profile_id }),\n ...(span.exclusive_time && { [SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME]: span.exclusive_time }),\n },\n },\n },\n measurements: span.measurements,\n };\n}\n","/* eslint-disable max-lines */\nimport { getEnvelopeEndpointWithUrlEncodedAuth } from './api';\nimport { DEFAULT_ENVIRONMENT } from './constants';\nimport { getCurrentScope, getIsolationScope, getTraceContextFromScope } from './currentScopes';\nimport { DEBUG_BUILD } from './debug-build';\nimport { createEventEnvelope, createSessionEnvelope } from './envelope';\nimport type { IntegrationIndex } from './integration';\nimport { afterSetupIntegrations, setupIntegration, setupIntegrations } from './integration';\nimport { _INTERNAL_flushLogsBuffer } from './logs/internal';\nimport { _INTERNAL_flushMetricsBuffer } from './metrics/internal';\nimport type { Scope } from './scope';\nimport { updateSession } from './session';\nimport { getDynamicSamplingContextFromScope } from './tracing/dynamicSamplingContext';\nimport { DEFAULT_TRANSPORT_BUFFER_SIZE } from './transports/base';\nimport type { Breadcrumb, BreadcrumbHint, FetchBreadcrumbHint, XhrBreadcrumbHint } from './types-hoist/breadcrumb';\nimport type { CheckIn, MonitorConfig } from './types-hoist/checkin';\nimport type { EventDropReason, Outcome } from './types-hoist/clientreport';\nimport type { DataCategory } from './types-hoist/datacategory';\nimport type { DsnComponents } from './types-hoist/dsn';\nimport type { DynamicSamplingContext, Envelope } from './types-hoist/envelope';\nimport type { ErrorEvent, Event, EventHint, EventType, TransactionEvent } from './types-hoist/event';\nimport type { EventProcessor } from './types-hoist/eventprocessor';\nimport type { FeedbackEvent } from './types-hoist/feedback';\nimport type { Integration } from './types-hoist/integration';\nimport type { Log } from './types-hoist/log';\nimport type { Metric } from './types-hoist/metric';\nimport type { Primitive } from './types-hoist/misc';\nimport type { ClientOptions } from './types-hoist/options';\nimport type { ParameterizedString } from './types-hoist/parameterize';\nimport type { RequestEventData } from './types-hoist/request';\nimport type { SdkMetadata } from './types-hoist/sdkmetadata';\nimport type { Session, SessionAggregates } from './types-hoist/session';\nimport type { SeverityLevel } from './types-hoist/severity';\nimport type { Span, SpanAttributes, SpanContextData, SpanJSON } from './types-hoist/span';\nimport type { StartSpanOptions } from './types-hoist/startSpanOptions';\nimport type { Transport, TransportMakeRequestResponse } from './types-hoist/transport';\nimport { createClientReportEnvelope } from './utils/clientreport';\nimport { debug } from './utils/debug-logger';\nimport { dsnToString, makeDsn } from './utils/dsn';\nimport { addItemToEnvelope, createAttachmentEnvelopeItem } from './utils/envelope';\nimport { getPossibleEventMessages } from './utils/eventUtils';\nimport { isParameterizedString, isPlainObject, isPrimitive, isThenable } from './utils/is';\nimport { merge } from './utils/merge';\nimport { checkOrSetAlreadyCaught, uuid4 } from './utils/misc';\nimport { parseSampleRate } from './utils/parseSampleRate';\nimport { prepareEvent } from './utils/prepareEvent';\nimport { makePromiseBuffer, type PromiseBuffer, SENTRY_BUFFER_FULL_ERROR } from './utils/promisebuffer';\nimport { safeMathRandom } from './utils/randomSafeContext';\nimport { reparentChildSpans, shouldIgnoreSpan } from './utils/should-ignore-span';\nimport { showSpanDropWarning } from './utils/spanUtils';\nimport { rejectedSyncPromise } from './utils/syncpromise';\nimport { safeUnref } from './utils/timer';\nimport { convertSpanJsonToTransactionEvent, convertTransactionEventToSpanJson } from './utils/transactionEvent';\n\nconst ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\nconst MISSING_RELEASE_FOR_SESSION_ERROR = 'Discarded session because of missing or non-string release';\n\nconst INTERNAL_ERROR_SYMBOL = Symbol.for('SentryInternalError');\nconst DO_NOT_SEND_EVENT_SYMBOL = Symbol.for('SentryDoNotSendEventError');\n\n// Default interval for flushing logs and metrics (5 seconds)\nconst DEFAULT_FLUSH_INTERVAL = 5000;\n\ninterface InternalError {\n message: string;\n [INTERNAL_ERROR_SYMBOL]: true;\n}\n\ninterface DoNotSendEventError {\n message: string;\n [DO_NOT_SEND_EVENT_SYMBOL]: true;\n}\n\nfunction _makeInternalError(message: string): InternalError {\n return {\n message,\n [INTERNAL_ERROR_SYMBOL]: true,\n };\n}\n\nfunction _makeDoNotSendEventError(message: string): DoNotSendEventError {\n return {\n message,\n [DO_NOT_SEND_EVENT_SYMBOL]: true,\n };\n}\n\nfunction _isInternalError(error: unknown): error is InternalError {\n return !!error && typeof error === 'object' && INTERNAL_ERROR_SYMBOL in error;\n}\n\nfunction _isDoNotSendEventError(error: unknown): error is DoNotSendEventError {\n return !!error && typeof error === 'object' && DO_NOT_SEND_EVENT_SYMBOL in error;\n}\n\n/**\n * Sets up weight-based flushing for logs or metrics.\n * This helper function encapsulates the common pattern of:\n * 1. Tracking accumulated weight of items\n * 2. Flushing when weight exceeds threshold (800KB)\n * 3. Flushing after timeout period from the first item\n *\n * Uses closure variables to track weight and timeout state.\n */\nfunction setupWeightBasedFlushing<\n T,\n AfterCaptureHook extends 'afterCaptureLog' | 'afterCaptureMetric',\n FlushHook extends 'flushLogs' | 'flushMetrics',\n>(\n client: Client,\n afterCaptureHook: AfterCaptureHook,\n flushHook: FlushHook,\n estimateSizeFn: (item: T) => number,\n flushFn: (client: Client) => void,\n): void {\n // Track weight and timeout in closure variables\n let weight = 0;\n let flushTimeout: ReturnType | undefined;\n let isTimerActive = false;\n\n // @ts-expect-error - TypeScript can't narrow generic hook types to match specific overloads, but we know this is type-safe\n client.on(flushHook, () => {\n weight = 0;\n clearTimeout(flushTimeout);\n isTimerActive = false;\n });\n\n // @ts-expect-error - TypeScript can't narrow generic hook types to match specific overloads, but we know this is type-safe\n client.on(afterCaptureHook, (item: T) => {\n weight += estimateSizeFn(item);\n\n // We flush the buffer if it exceeds 0.8 MB\n // The weight is a rough estimate, so we flush way before the payload gets too big.\n if (weight >= 800_000) {\n flushFn(client);\n } else if (!isTimerActive) {\n // Only start timer if one isn't already running.\n // This prevents flushing being delayed by items that arrive close to the timeout limit\n // and thus resetting the flushing timeout and delaying items being flushed.\n isTimerActive = true;\n // Use safeUnref so the timer doesn't prevent the process from exiting\n flushTimeout = safeUnref(\n setTimeout(() => {\n flushFn(client);\n // Note: isTimerActive is reset by the flushHook handler above, not here,\n // to avoid race conditions when new items arrive during the flush.\n }, DEFAULT_FLUSH_INTERVAL),\n );\n }\n });\n\n client.on('flush', () => {\n flushFn(client);\n });\n}\n\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event, it is passed through\n * {@link Client._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends Client {\n * public constructor(options: NodeOptions) {\n * super(options);\n * }\n *\n * // ...\n * }\n */\nexport abstract class Client {\n /** Options passed to the SDK. */\n protected readonly _options: O;\n\n /** The client Dsn, if specified in options. Without this Dsn, the SDK will be disabled. */\n protected readonly _dsn?: DsnComponents;\n\n protected readonly _transport?: Transport;\n\n /** Array of set up integrations. */\n protected _integrations: IntegrationIndex;\n\n /** Number of calls being processed */\n protected _numProcessing: number;\n\n protected _eventProcessors: EventProcessor[];\n\n /** Holds flushable */\n protected _outcomes: { [key: string]: number };\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n protected _hooks: Record>;\n\n protected _promiseBuffer: PromiseBuffer;\n\n /**\n * Initializes this client instance.\n *\n * @param options Options for the client.\n */\n protected constructor(options: O) {\n this._options = options;\n this._integrations = {};\n this._numProcessing = 0;\n this._outcomes = {};\n this._hooks = {};\n this._eventProcessors = [];\n this._promiseBuffer = makePromiseBuffer(options.transportOptions?.bufferSize ?? DEFAULT_TRANSPORT_BUFFER_SIZE);\n\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n } else {\n DEBUG_BUILD && debug.warn('No DSN provided, client will not send events.');\n }\n\n if (this._dsn) {\n const url = getEnvelopeEndpointWithUrlEncodedAuth(\n this._dsn,\n options.tunnel,\n options._metadata ? options._metadata.sdk : undefined,\n );\n this._transport = options.transport({\n tunnel: this._options.tunnel,\n recordDroppedEvent: this.recordDroppedEvent.bind(this),\n ...options.transportOptions,\n url,\n });\n }\n\n // Backfill enableLogs option from _experiments.enableLogs\n // TODO(v11): Remove or change default value\n // eslint-disable-next-line deprecation/deprecation\n this._options.enableLogs = this._options.enableLogs ?? this._options._experiments?.enableLogs;\n\n // Setup log flushing with weight and timeout tracking\n if (this._options.enableLogs) {\n setupWeightBasedFlushing(this, 'afterCaptureLog', 'flushLogs', estimateLogSizeInBytes, _INTERNAL_flushLogsBuffer);\n }\n\n // todo(v11): Remove the experimental flag\n // eslint-disable-next-line deprecation/deprecation\n const enableMetrics = this._options.enableMetrics ?? this._options._experiments?.enableMetrics ?? true;\n\n // Setup metric flushing with weight and timeout tracking\n if (enableMetrics) {\n setupWeightBasedFlushing(\n this,\n 'afterCaptureMetric',\n 'flushMetrics',\n estimateMetricSizeInBytes,\n _INTERNAL_flushMetricsBuffer,\n );\n }\n }\n\n /**\n * Captures an exception event and sends it to Sentry.\n *\n * Unlike `captureException` exported from every SDK, this method requires that you pass it the current scope.\n */\n public captureException(exception: unknown, hint?: EventHint, scope?: Scope): string {\n const eventId = uuid4();\n\n // ensure we haven't captured this very object before\n if (checkOrSetAlreadyCaught(exception)) {\n DEBUG_BUILD && debug.log(ALREADY_SEEN_ERROR);\n return eventId;\n }\n\n const hintWithEventId = {\n event_id: eventId,\n ...hint,\n };\n\n this._process(\n () =>\n this.eventFromException(exception, hintWithEventId)\n .then(event => this._captureEvent(event, hintWithEventId, scope))\n .then(res => res),\n 'error',\n );\n\n return hintWithEventId.event_id;\n }\n\n /**\n * Captures a message event and sends it to Sentry.\n *\n * Unlike `captureMessage` exported from every SDK, this method requires that you pass it the current scope.\n */\n public captureMessage(\n message: ParameterizedString,\n level?: SeverityLevel,\n hint?: EventHint,\n currentScope?: Scope,\n ): string {\n const hintWithEventId = {\n event_id: uuid4(),\n ...hint,\n };\n\n const eventMessage = isParameterizedString(message) ? message : String(message);\n const isMessage = isPrimitive(message);\n const promisedEvent = isMessage\n ? this.eventFromMessage(eventMessage, level, hintWithEventId)\n : this.eventFromException(message, hintWithEventId);\n\n this._process(\n () => promisedEvent.then(event => this._captureEvent(event, hintWithEventId, currentScope)),\n isMessage ? 'unknown' : 'error',\n );\n\n return hintWithEventId.event_id;\n }\n\n /**\n * Captures a manually created event and sends it to Sentry.\n *\n * Unlike `captureEvent` exported from every SDK, this method requires that you pass it the current scope.\n */\n public captureEvent(event: Event, hint?: EventHint, currentScope?: Scope): string {\n const eventId = uuid4();\n\n // ensure we haven't captured this very object before\n if (hint?.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n DEBUG_BUILD && debug.log(ALREADY_SEEN_ERROR);\n return eventId;\n }\n\n const hintWithEventId = {\n event_id: eventId,\n ...hint,\n };\n\n const sdkProcessingMetadata = event.sdkProcessingMetadata || {};\n const capturedSpanScope: Scope | undefined = sdkProcessingMetadata.capturedSpanScope;\n const capturedSpanIsolationScope: Scope | undefined = sdkProcessingMetadata.capturedSpanIsolationScope;\n const dataCategory = getDataCategoryByType(event.type);\n\n this._process(\n () => this._captureEvent(event, hintWithEventId, capturedSpanScope || currentScope, capturedSpanIsolationScope),\n dataCategory,\n );\n\n return hintWithEventId.event_id;\n }\n\n /**\n * Captures a session.\n */\n public captureSession(session: Session): void {\n this.sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n updateSession(session, { init: false });\n }\n\n /**\n * Create a cron monitor check in and send it to Sentry. This method is not available on all clients.\n *\n * @param checkIn An object that describes a check in.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n * @param scope An optional scope containing event metadata.\n * @returns A string representing the id of the check in.\n */\n public captureCheckIn?(checkIn: CheckIn, monitorConfig?: MonitorConfig, scope?: Scope): string;\n\n /**\n * Get the current Dsn.\n */\n public getDsn(): DsnComponents | undefined {\n return this._dsn;\n }\n\n /**\n * Get the current options.\n */\n public getOptions(): O {\n return this._options;\n }\n\n /**\n * Get the SDK metadata.\n * @see SdkMetadata\n */\n public getSdkMetadata(): SdkMetadata | undefined {\n return this._options._metadata;\n }\n\n /**\n * Returns the transport that is used by the client.\n * Please note that the transport gets lazy initialized so it will only be there once the first event has been sent.\n */\n public getTransport(): Transport | undefined {\n return this._transport;\n }\n\n /**\n * Wait for all events to be sent or the timeout to expire, whichever comes first.\n *\n * @param timeout Maximum time in ms the client should wait for events to be flushed. Omitting this parameter will\n * cause the client to wait until all events are sent before resolving the promise.\n * @returns A promise that will resolve with `true` if all events are sent before the timeout, or `false` if there are\n * still events in the queue when the timeout is reached.\n */\n // @ts-expect-error - PromiseLike is a subset of Promise\n public async flush(timeout?: number): PromiseLike {\n const transport = this._transport;\n if (!transport) {\n return true;\n }\n\n this.emit('flush');\n\n const clientFinished = await this._isClientDoneProcessing(timeout);\n const transportFlushed = await transport.flush(timeout);\n\n return clientFinished && transportFlushed;\n }\n\n /**\n * Flush the event queue and set the client to `enabled = false`. See {@link Client.flush}.\n *\n * @param {number} timeout Maximum time in ms the client should wait before shutting down. Omitting this parameter will cause\n * the client to wait until all events are sent before disabling itself.\n * @returns {Promise} A promise which resolves to `true` if the flush completes successfully before the timeout, or `false` if\n * it doesn't.\n */\n // @ts-expect-error - PromiseLike is a subset of Promise\n public async close(timeout?: number): PromiseLike {\n _INTERNAL_flushLogsBuffer(this);\n const result = await this.flush(timeout);\n this.getOptions().enabled = false;\n this.emit('close');\n return result;\n }\n\n /**\n * Get all installed event processors.\n */\n public getEventProcessors(): EventProcessor[] {\n return this._eventProcessors;\n }\n\n /**\n * Adds an event processor that applies to any event processed by this client.\n */\n public addEventProcessor(eventProcessor: EventProcessor): void {\n this._eventProcessors.push(eventProcessor);\n }\n\n /**\n * Initialize this client.\n * Call this after the client was set on a scope.\n */\n public init(): void {\n if (\n this._isEnabled() ||\n // Force integrations to be setup even if no DSN was set when we have\n // Spotlight enabled. This is particularly important for browser as we\n // don't support the `spotlight` option there and rely on the users\n // adding the `spotlightBrowserIntegration()` to their integrations which\n // wouldn't get initialized with the check below when there's no DSN set.\n this._options.integrations.some(({ name }) => name.startsWith('Spotlight'))\n ) {\n this._setupIntegrations();\n }\n }\n\n /**\n * Gets an installed integration by its name.\n *\n * @returns {Integration|undefined} The installed integration or `undefined` if no integration with that `name` was installed.\n */\n public getIntegrationByName(integrationName: string): T | undefined {\n return this._integrations[integrationName] as T | undefined;\n }\n\n /**\n * Add an integration to the client.\n * This can be used to e.g. lazy load integrations.\n * In most cases, this should not be necessary,\n * and you're better off just passing the integrations via `integrations: []` at initialization time.\n * However, if you find the need to conditionally load & add an integration, you can use `addIntegration` to do so.\n */\n public addIntegration(integration: Integration): void {\n const isAlreadyInstalled = this._integrations[integration.name];\n\n // This hook takes care of only installing if not already installed\n setupIntegration(this, integration, this._integrations);\n // Here we need to check manually to make sure to not run this multiple times\n if (!isAlreadyInstalled) {\n afterSetupIntegrations(this, [integration]);\n }\n }\n\n /**\n * Send a fully prepared event to Sentry.\n */\n public sendEvent(event: Event, hint: EventHint = {}): void {\n this.emit('beforeSendEvent', event, hint);\n\n let env = createEventEnvelope(event, this._dsn, this._options._metadata, this._options.tunnel);\n\n for (const attachment of hint.attachments || []) {\n env = addItemToEnvelope(env, createAttachmentEnvelopeItem(attachment));\n }\n\n // sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.sendEnvelope(env).then(sendResponse => this.emit('afterSendEvent', event, sendResponse));\n }\n\n /**\n * Send a session or session aggregrates to Sentry.\n */\n public sendSession(session: Session | SessionAggregates): void {\n // Backfill release and environment on session\n const { release: clientReleaseOption, environment: clientEnvironmentOption = DEFAULT_ENVIRONMENT } = this._options;\n if ('aggregates' in session) {\n const sessionAttrs = session.attrs || {};\n if (!sessionAttrs.release && !clientReleaseOption) {\n DEBUG_BUILD && debug.warn(MISSING_RELEASE_FOR_SESSION_ERROR);\n return;\n }\n sessionAttrs.release = sessionAttrs.release || clientReleaseOption;\n sessionAttrs.environment = sessionAttrs.environment || clientEnvironmentOption;\n session.attrs = sessionAttrs;\n } else {\n if (!session.release && !clientReleaseOption) {\n DEBUG_BUILD && debug.warn(MISSING_RELEASE_FOR_SESSION_ERROR);\n return;\n }\n session.release = session.release || clientReleaseOption;\n session.environment = session.environment || clientEnvironmentOption;\n }\n\n this.emit('beforeSendSession', session);\n\n const env = createSessionEnvelope(session, this._dsn, this._options._metadata, this._options.tunnel);\n\n // sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.sendEnvelope(env);\n }\n\n /**\n * Record on the client that an event got dropped (ie, an event that will not be sent to Sentry).\n */\n public recordDroppedEvent(reason: EventDropReason, category: DataCategory, count: number = 1): void {\n if (this._options.sendClientReports) {\n // We want to track each category (error, transaction, session, replay_event) separately\n // but still keep the distinction between different type of outcomes.\n // We could use nested maps, but it's much easier to read and type this way.\n // A correct type for map-based implementation if we want to go that route\n // would be `Partial>>>`\n // With typescript 4.1 we could even use template literal types\n const key = `${reason}:${category}`;\n DEBUG_BUILD && debug.log(`Recording outcome: \"${key}\"${count > 1 ? ` (${count} times)` : ''}`);\n this._outcomes[key] = (this._outcomes[key] || 0) + count;\n }\n }\n\n /* eslint-disable @typescript-eslint/unified-signatures */\n /**\n * Register a callback for whenever a span is started.\n * Receives the span as argument.\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(hook: 'spanStart', callback: (span: Span) => void): () => void;\n\n /**\n * Register a callback before span sampling runs. Receives a `samplingDecision` object argument with a `decision`\n * property that can be used to make a sampling decision that will be enforced, before any span sampling runs.\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(\n hook: 'beforeSampling',\n callback: (\n samplingData: {\n spanAttributes: SpanAttributes;\n spanName: string;\n parentSampled?: boolean;\n parentSampleRate?: number;\n parentContext?: SpanContextData;\n },\n samplingDecision: { decision: boolean },\n ) => void,\n ): void;\n\n /**\n * Register a callback for after a span is ended.\n * NOTE: The span cannot be mutated anymore in this callback.\n * Receives the span as argument.\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(hook: 'spanEnd', callback: (span: Span) => void): () => void;\n\n /**\n * Register a callback for when an idle span is allowed to auto-finish.\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(hook: 'idleSpanEnableAutoFinish', callback: (span: Span) => void): () => void;\n\n /**\n * Register a callback for transaction start and finish.\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(hook: 'beforeEnvelope', callback: (envelope: Envelope) => void): () => void;\n\n /**\n * Register a callback that runs when stack frame metadata should be applied to an event.\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(hook: 'applyFrameMetadata', callback: (event: Event) => void): () => void;\n\n /**\n * Register a callback for before sending an event.\n * This is called right before an event is sent and should not be used to mutate the event.\n * Receives an Event & EventHint as arguments.\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(hook: 'beforeSendEvent', callback: (event: Event, hint?: EventHint | undefined) => void): () => void;\n\n /**\n * Register a callback for before sending a session or session aggregrates..\n * Receives the session/aggregate as second argument.\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(hook: 'beforeSendSession', callback: (session: Session | SessionAggregates) => void): () => void;\n\n /**\n * Register a callback for preprocessing an event,\n * before it is passed to (global) event processors.\n * Receives an Event & EventHint as arguments.\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(hook: 'preprocessEvent', callback: (event: Event, hint?: EventHint | undefined) => void): () => void;\n\n /**\n * Register a callback for postprocessing an event,\n * after it was passed to (global) event processors, before it is being sent.\n * Receives an Event & EventHint as arguments.\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(hook: 'postprocessEvent', callback: (event: Event, hint?: EventHint | undefined) => void): () => void;\n\n /**\n * Register a callback for when an event has been sent.\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(\n hook: 'afterSendEvent',\n callback: (event: Event, sendResponse: TransportMakeRequestResponse) => void,\n ): () => void;\n\n /**\n * Register a callback before a breadcrumb is added.\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(hook: 'beforeAddBreadcrumb', callback: (breadcrumb: Breadcrumb, hint?: BreadcrumbHint) => void): () => void;\n\n /**\n * Register a callback when a DSC (Dynamic Sampling Context) is created.\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(hook: 'createDsc', callback: (dsc: DynamicSamplingContext, rootSpan?: Span) => void): () => void;\n\n /**\n * Register a callback when a Feedback event has been prepared.\n * This should be used to mutate the event. The options argument can hint\n * about what kind of mutation it expects.\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(\n hook: 'beforeSendFeedback',\n callback: (feedback: FeedbackEvent, options?: { includeReplay?: boolean }) => void,\n ): () => void;\n\n /**\n * Register a callback when the feedback widget is opened in a user's browser\n */\n public on(hook: 'openFeedbackWidget', callback: () => void): () => void;\n\n /**\n * A hook for the browser tracing integrations to trigger a span start for a page load.\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(\n hook: 'startPageLoadSpan',\n callback: (\n options: StartSpanOptions,\n traceOptions?: { sentryTrace?: string | undefined; baggage?: string | undefined },\n ) => void,\n ): () => void;\n\n /**\n * A hook for the browser tracing integrations to trigger the end of a page load span.\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(hook: 'endPageloadSpan', callback: () => void): () => void;\n\n /**\n * A hook for the browser tracing integrations to trigger after the pageload span was started.\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(hook: 'afterStartPageLoadSpan', callback: (span: Span) => void): () => void;\n\n /**\n * A hook for triggering right before a navigation span is started.\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(\n hook: 'beforeStartNavigationSpan',\n callback: (options: StartSpanOptions, navigationOptions?: { isRedirect?: boolean }) => void,\n ): () => void;\n\n /**\n * A hook for browser tracing integrations to trigger a span for a navigation.\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(\n hook: 'startNavigationSpan',\n callback: (options: StartSpanOptions, navigationOptions?: { isRedirect?: boolean }) => void,\n ): () => void;\n\n /**\n * A hook for GraphQL client integration to enhance a span with request data.\n * @returns A function that, when executed, removes the registered callback.\n */\n public on(\n hook: 'beforeOutgoingRequestSpan',\n callback: (span: Span, hint: XhrBreadcrumbHint | FetchBreadcrumbHint) => void,\n ): () => void;\n\n /**\n * A hook for GraphQL client integration to enhance a breadcrumb with request data.\n * @returns A function that, when executed, removes the registered callback.\n */\n public on(\n hook: 'beforeOutgoingRequestBreadcrumb',\n callback: (breadcrumb: Breadcrumb, hint: XhrBreadcrumbHint | FetchBreadcrumbHint) => void,\n ): () => void;\n\n /**\n * A hook that is called when the client is flushing\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(hook: 'flush', callback: () => void): () => void;\n\n /**\n * A hook that is called when the client is closing\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(hook: 'close', callback: () => void): () => void;\n\n /**\n * A hook that is called before a log is captured. This hooks runs before `beforeSendLog` is fired.\n *\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(hook: 'beforeCaptureLog', callback: (log: Log) => void): () => void;\n\n /**\n * A hook that is called after a log is captured\n *\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(hook: 'afterCaptureLog', callback: (log: Log) => void): () => void;\n\n /**\n * A hook that is called when the client is flushing logs\n *\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(hook: 'flushLogs', callback: () => void): () => void;\n\n /**\n * A hook that is called after capturing a metric. This hooks runs after `beforeSendMetric` is fired.\n *\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(hook: 'afterCaptureMetric', callback: (metric: Metric) => void): () => void;\n\n /**\n * A hook that is called when the client is flushing metrics\n *\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(hook: 'flushMetrics', callback: () => void): () => void;\n\n /**\n * A hook that is called when a metric is processed before it is captured and before the `beforeSendMetric` callback is fired.\n *\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(hook: 'processMetric', callback: (metric: Metric) => void): () => void;\n\n /**\n * A hook that is called when a http server request is started.\n * This hook is called after request isolation, but before the request is processed.\n *\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(\n hook: 'httpServerRequest',\n callback: (request: unknown, response: unknown, normalizedRequest: RequestEventData) => void,\n ): () => void;\n\n /**\n * A hook that is called when the UI Profiler should start profiling.\n *\n * This hook is called when running `Sentry.uiProfiler.startProfiler()`.\n *\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(hook: 'startUIProfiler', callback: () => void): () => void;\n\n /**\n * A hook that is called when the UI Profiler should stop profiling.\n *\n * This hook is called when running `Sentry.uiProfiler.stopProfiler()`.\n *\n * @returns {() => void} A function that, when executed, removes the registered callback.\n */\n public on(hook: 'stopUIProfiler', callback: () => void): () => void;\n\n /**\n * Register a hook on this client.\n */\n public on(hook: string, callback: unknown): () => void {\n const hookCallbacks = (this._hooks[hook] = this._hooks[hook] || new Set());\n\n // Wrap the callback in a function so that registering the same callback instance multiple\n // times results in the callback being called multiple times.\n // @ts-expect-error - The `callback` type is correct and must be a function due to the\n // individual, specific overloads of this function.\n // eslint-disable-next-line @typescript-eslint/ban-types\n const uniqueCallback: Function = (...args: unknown[]) => callback(...args);\n\n hookCallbacks.add(uniqueCallback);\n\n // This function returns a callback execution handler that, when invoked,\n // deregisters a callback. This is crucial for managing instances where callbacks\n // need to be unregistered to prevent self-referencing in callback closures,\n // ensuring proper garbage collection.\n return () => {\n hookCallbacks.delete(uniqueCallback);\n };\n }\n\n /** Fire a hook whenever a span starts. */\n public emit(hook: 'spanStart', span: Span): void;\n\n /** A hook that is called every time before a span is sampled. */\n public emit(\n hook: 'beforeSampling',\n samplingData: {\n spanAttributes: SpanAttributes;\n spanName: string;\n parentSampled?: boolean;\n parentSampleRate?: number;\n parentContext?: SpanContextData;\n },\n samplingDecision: { decision: boolean },\n ): void;\n\n /** Fire a hook whenever a span ends. */\n public emit(hook: 'spanEnd', span: Span): void;\n\n /**\n * Fire a hook indicating that an idle span is allowed to auto finish.\n */\n public emit(hook: 'idleSpanEnableAutoFinish', span: Span): void;\n\n /**\n * Fire a hook event for envelope creation and sending. Expects to be given an envelope as the\n * second argument.\n */\n public emit(hook: 'beforeEnvelope', envelope: Envelope): void;\n\n /**\n * Fire a hook indicating that stack frame metadata should be applied to the event passed to the hook.\n */\n public emit(hook: 'applyFrameMetadata', event: Event): void;\n\n /**\n * Fire a hook event before sending an event.\n * This is called right before an event is sent and should not be used to mutate the event.\n * Expects to be given an Event & EventHint as the second/third argument.\n */\n public emit(hook: 'beforeSendEvent', event: Event, hint?: EventHint): void;\n\n /**\n * Fire a hook event before sending a session/aggregates.\n * Expects to be given the prepared session/aggregates as second argument.\n */\n public emit(hook: 'beforeSendSession', session: Session | SessionAggregates): void;\n\n /**\n * Fire a hook event to process events before they are passed to (global) event processors.\n * Expects to be given an Event & EventHint as the second/third argument.\n */\n public emit(hook: 'preprocessEvent', event: Event, hint?: EventHint): void;\n\n /**\n * Fire a hook event to process a user on an event before it is sent to Sentry, after all other processors have run.\n * Expects to be given an Event & EventHint as the second/third argument.\n */\n public emit(hook: 'postprocessEvent', event: Event, hint?: EventHint): void;\n\n /**\n * Fire a hook event after sending an event. Expects to be given an Event as the\n * second argument.\n */\n public emit(hook: 'afterSendEvent', event: Event, sendResponse: TransportMakeRequestResponse): void;\n\n /**\n * Fire a hook for when a breadcrumb is added. Expects the breadcrumb as second argument.\n */\n public emit(hook: 'beforeAddBreadcrumb', breadcrumb: Breadcrumb, hint?: BreadcrumbHint): void;\n\n /**\n * Fire a hook for when a DSC (Dynamic Sampling Context) is created. Expects the DSC as second argument.\n */\n public emit(hook: 'createDsc', dsc: DynamicSamplingContext, rootSpan?: Span): void;\n\n /**\n * Fire a hook event for after preparing a feedback event. Events to be given\n * a feedback event as the second argument, and an optional options object as\n * third argument.\n */\n public emit(hook: 'beforeSendFeedback', feedback: FeedbackEvent, options?: { includeReplay?: boolean }): void;\n\n /**\n * Fire a hook event for when the feedback widget is opened in a user's browser\n */\n public emit(hook: 'openFeedbackWidget'): void;\n\n /**\n * Emit a hook event for browser tracing integrations to trigger a span start for a page load.\n */\n public emit(\n hook: 'startPageLoadSpan',\n options: StartSpanOptions,\n traceOptions?: { sentryTrace?: string | undefined; baggage?: string | undefined },\n ): void;\n\n /**\n * Emit a hook event for browser tracing integrations to trigger the end of a page load span.\n */\n public emit(hook: 'endPageloadSpan'): void;\n\n /**\n * Emit a hook event for browser tracing integrations to trigger aafter the pageload span was started.\n */\n public emit(hook: 'afterStartPageLoadSpan', span: Span): void;\n\n /**\n * Emit a hook event for triggering right before a navigation span is started.\n */\n public emit(\n hook: 'beforeStartNavigationSpan',\n options: StartSpanOptions,\n navigationOptions?: { isRedirect?: boolean },\n ): void;\n\n /**\n * Emit a hook event for browser tracing integrations to trigger a span for a navigation.\n */\n public emit(\n hook: 'startNavigationSpan',\n options: StartSpanOptions,\n navigationOptions?: { isRedirect?: boolean },\n ): void;\n\n /**\n * Emit a hook event for GraphQL client integration to enhance a span with request data.\n */\n public emit(hook: 'beforeOutgoingRequestSpan', span: Span, hint: XhrBreadcrumbHint | FetchBreadcrumbHint): void;\n\n /**\n * Emit a hook event for GraphQL client integration to enhance a breadcrumb with request data.\n */\n public emit(\n hook: 'beforeOutgoingRequestBreadcrumb',\n breadcrumb: Breadcrumb,\n hint: XhrBreadcrumbHint | FetchBreadcrumbHint,\n ): void;\n\n /**\n * Emit a hook event for client flush\n */\n public emit(hook: 'flush'): void;\n\n /**\n * Emit a hook event for client close\n */\n public emit(hook: 'close'): void;\n\n /**\n * Emit a hook event for client before capturing a log. This hooks runs before `beforeSendLog` is fired.\n */\n public emit(hook: 'beforeCaptureLog', log: Log): void;\n\n /**\n * Emit a hook event for client after capturing a log.\n */\n public emit(hook: 'afterCaptureLog', log: Log): void;\n\n /**\n * Emit a hook event for client flush logs\n */\n public emit(hook: 'flushLogs'): void;\n\n /**\n * Emit a hook event for client after capturing a metric.\n */\n public emit(hook: 'afterCaptureMetric', metric: Metric): void;\n\n /**\n * Emit a hook event for client flush metrics\n */\n public emit(hook: 'flushMetrics'): void;\n\n /**\n *\n * Emit a hook event for client to process a metric before it is captured.\n * This hook is called before the `beforeSendMetric` callback is fired.\n */\n public emit(hook: 'processMetric', metric: Metric): void;\n\n /**\n * Emit a hook event for client when a http server request is started.\n * This hook is called after request isolation, but before the request is processed.\n */\n public emit(\n hook: 'httpServerRequest',\n request: unknown,\n response: unknown,\n normalizedRequest: RequestEventData,\n ): void;\n\n /**\n * Emit a hook event for starting the UI Profiler.\n */\n public emit(hook: 'startUIProfiler'): void;\n\n /**\n * Emit a hook event for stopping the UI Profiler.\n */\n public emit(hook: 'stopUIProfiler'): void;\n\n /**\n * Emit a hook that was previously registered via `on()`.\n */\n public emit(hook: string, ...rest: unknown[]): void {\n const callbacks = this._hooks[hook];\n if (callbacks) {\n callbacks.forEach(callback => callback(...rest));\n }\n }\n\n /**\n * Send an envelope to Sentry.\n */\n // @ts-expect-error - PromiseLike is a subset of Promise\n public async sendEnvelope(envelope: Envelope): PromiseLike {\n this.emit('beforeEnvelope', envelope);\n\n if (this._isEnabled() && this._transport) {\n try {\n return await this._transport.send(envelope);\n } catch (reason) {\n DEBUG_BUILD && debug.error('Error while sending envelope:', reason);\n return {};\n }\n }\n\n DEBUG_BUILD && debug.error('Transport disabled');\n return {};\n }\n\n /**\n * Disposes of the client and releases all resources.\n *\n * Subclasses should override this method to clean up their own resources.\n * After calling dispose(), the client should not be used anymore.\n */\n public dispose(): void {\n // Base class has no cleanup logic - subclasses implement their own\n }\n\n /* eslint-enable @typescript-eslint/unified-signatures */\n\n /** Setup integrations for this client. */\n protected _setupIntegrations(): void {\n const { integrations } = this._options;\n this._integrations = setupIntegrations(this, integrations);\n afterSetupIntegrations(this, integrations);\n }\n\n /** Updates existing session based on the provided event */\n protected _updateSessionFromEvent(session: Session, event: Event): void {\n // initially, set `crashed` based on the event level and update from exceptions if there are any later on\n let crashed = event.level === 'fatal';\n let errored = false;\n const exceptions = event.exception?.values;\n\n if (exceptions) {\n errored = true;\n // reset crashed to false if there are exceptions, to ensure `mechanism.handled` is respected.\n crashed = false;\n\n for (const ex of exceptions) {\n if (ex.mechanism?.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n const sessionNonTerminal = session.status === 'ok';\n const shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n\n if (shouldUpdateAndSend) {\n updateSession(session, {\n ...(crashed && { status: 'crashed' }),\n errors: session.errors || Number(errored || crashed),\n });\n this.captureSession(session);\n }\n }\n\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n protected async _isClientDoneProcessing(timeout?: number): Promise {\n let ticked = 0;\n\n while (!timeout || ticked < timeout) {\n await new Promise(resolve => setTimeout(resolve, 1));\n\n if (!this._numProcessing) {\n return true;\n }\n ticked++;\n }\n\n return false;\n }\n\n /** Determines whether this SDK is enabled and a transport is present. */\n protected _isEnabled(): boolean {\n return this.getOptions().enabled !== false && this._transport !== undefined;\n }\n\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param currentScope A scope containing event metadata.\n * @returns A new event with more information.\n */\n protected _prepareEvent(\n event: Event,\n hint: EventHint,\n currentScope: Scope,\n isolationScope: Scope,\n ): PromiseLike {\n const options = this.getOptions();\n const integrations = Object.keys(this._integrations);\n if (!hint.integrations && integrations?.length) {\n hint.integrations = integrations;\n }\n\n this.emit('preprocessEvent', event, hint);\n\n if (!event.type) {\n isolationScope.setLastEventId(event.event_id || hint.event_id);\n }\n\n return prepareEvent(options, event, hint, currentScope, this, isolationScope).then(evt => {\n if (evt === null) {\n return evt;\n }\n\n this.emit('postprocessEvent', evt, hint);\n\n evt.contexts = {\n trace: { ...evt.contexts?.trace, ...getTraceContextFromScope(currentScope) },\n ...evt.contexts,\n };\n\n const dynamicSamplingContext = getDynamicSamplingContextFromScope(this, currentScope);\n\n evt.sdkProcessingMetadata = {\n dynamicSamplingContext,\n ...evt.sdkProcessingMetadata,\n };\n\n return evt;\n });\n }\n\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n protected _captureEvent(\n event: Event,\n hint: EventHint = {},\n currentScope = getCurrentScope(),\n isolationScope = getIsolationScope(),\n ): PromiseLike {\n if (DEBUG_BUILD && isErrorEvent(event)) {\n debug.log(`Captured error event \\`${getPossibleEventMessages(event)[0] || ''}\\``);\n }\n\n return this._processEvent(event, hint, currentScope, isolationScope).then(\n finalEvent => {\n return finalEvent.event_id;\n },\n reason => {\n if (DEBUG_BUILD) {\n if (_isDoNotSendEventError(reason)) {\n debug.log(reason.message);\n } else if (_isInternalError(reason)) {\n debug.warn(reason.message);\n } else {\n debug.warn(reason);\n }\n }\n return undefined;\n },\n );\n }\n\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param currentScope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n protected _processEvent(\n event: Event,\n hint: EventHint,\n currentScope: Scope,\n isolationScope: Scope,\n ): PromiseLike {\n const options = this.getOptions();\n const { sampleRate } = options;\n\n const isTransaction = isTransactionEvent(event);\n const isError = isErrorEvent(event);\n const eventType = event.type || 'error';\n const beforeSendLabel = `before send for type \\`${eventType}\\``;\n\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n const parsedSampleRate = typeof sampleRate === 'undefined' ? undefined : parseSampleRate(sampleRate);\n if (isError && typeof parsedSampleRate === 'number' && safeMathRandom() > parsedSampleRate) {\n this.recordDroppedEvent('sample_rate', 'error');\n return rejectedSyncPromise(\n _makeDoNotSendEventError(\n `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`,\n ),\n );\n }\n\n const dataCategory = getDataCategoryByType(event.type);\n\n return this._prepareEvent(event, hint, currentScope, isolationScope)\n .then(prepared => {\n if (prepared === null) {\n this.recordDroppedEvent('event_processor', dataCategory);\n throw _makeDoNotSendEventError('An event processor returned `null`, will not send event.');\n }\n\n const isInternalException = (hint.data as { __sentry__: boolean })?.__sentry__ === true;\n if (isInternalException) {\n return prepared;\n }\n\n const result = processBeforeSend(this, options, prepared, hint);\n return _validateBeforeSendResult(result, beforeSendLabel);\n })\n .then(processedEvent => {\n if (processedEvent === null) {\n this.recordDroppedEvent('before_send', dataCategory);\n if (isTransaction) {\n const spans = event.spans || [];\n // the transaction itself counts as one span, plus all the child spans that are added\n const spanCount = 1 + spans.length;\n this.recordDroppedEvent('before_send', 'span', spanCount);\n }\n throw _makeDoNotSendEventError(`${beforeSendLabel} returned \\`null\\`, will not send event.`);\n }\n\n const session = currentScope.getSession() || isolationScope.getSession();\n if (isError && session) {\n this._updateSessionFromEvent(session, processedEvent);\n }\n\n if (isTransaction) {\n const spanCountBefore = processedEvent.sdkProcessingMetadata?.spanCountBeforeProcessing || 0;\n const spanCountAfter = processedEvent.spans ? processedEvent.spans.length : 0;\n\n const droppedSpanCount = spanCountBefore - spanCountAfter;\n if (droppedSpanCount > 0) {\n this.recordDroppedEvent('before_send', 'span', droppedSpanCount);\n }\n }\n\n // None of the Sentry built event processor will update transaction name,\n // so if the transaction name has been changed by an event processor, we know\n // it has to come from custom event processor added by a user\n const transactionInfo = processedEvent.transaction_info;\n if (isTransaction && transactionInfo && processedEvent.transaction !== event.transaction) {\n const source = 'custom';\n processedEvent.transaction_info = {\n ...transactionInfo,\n source,\n };\n }\n\n this.sendEvent(processedEvent, hint);\n return processedEvent;\n })\n .then(null, reason => {\n if (_isDoNotSendEventError(reason) || _isInternalError(reason)) {\n throw reason;\n }\n\n this.captureException(reason, {\n mechanism: {\n handled: false,\n type: 'internal',\n },\n data: {\n __sentry__: true,\n },\n originalException: reason,\n });\n throw _makeInternalError(\n `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: ${reason}`,\n );\n });\n }\n\n /**\n * Occupies the client with processing and event\n */\n protected _process(taskProducer: () => PromiseLike, dataCategory: DataCategory): void {\n this._numProcessing++;\n\n void this._promiseBuffer.add(taskProducer).then(\n value => {\n this._numProcessing--;\n return value;\n },\n reason => {\n this._numProcessing--;\n\n if (reason === SENTRY_BUFFER_FULL_ERROR) {\n this.recordDroppedEvent('queue_overflow', dataCategory);\n }\n\n return reason;\n },\n );\n }\n\n /**\n * Clears outcomes on this client and returns them.\n */\n protected _clearOutcomes(): Outcome[] {\n const outcomes = this._outcomes;\n this._outcomes = {};\n return Object.entries(outcomes).map(([key, quantity]) => {\n const [reason, category] = key.split(':') as [EventDropReason, DataCategory];\n return {\n reason,\n category,\n quantity,\n };\n });\n }\n\n /**\n * Sends client reports as an envelope.\n */\n protected _flushOutcomes(): void {\n DEBUG_BUILD && debug.log('Flushing outcomes...');\n\n const outcomes = this._clearOutcomes();\n\n if (outcomes.length === 0) {\n DEBUG_BUILD && debug.log('No outcomes to send');\n return;\n }\n\n // This is really the only place where we want to check for a DSN and only send outcomes then\n if (!this._dsn) {\n DEBUG_BUILD && debug.log('No dsn provided, will not send outcomes');\n return;\n }\n\n DEBUG_BUILD && debug.log('Sending outcomes:', outcomes);\n\n const envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));\n\n // sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.sendEnvelope(envelope);\n }\n\n /**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n */\n public abstract eventFromException(_exception: unknown, _hint?: EventHint): PromiseLike;\n\n /**\n * Creates an {@link Event} from primitive inputs to `captureMessage`.\n */\n public abstract eventFromMessage(\n _message: ParameterizedString,\n _level?: SeverityLevel,\n _hint?: EventHint,\n ): PromiseLike;\n}\n\nfunction getDataCategoryByType(type: EventType | 'replay_event' | undefined): DataCategory {\n return type === 'replay_event' ? 'replay' : type || 'error';\n}\n\n/**\n * Verifies that return value of configured `beforeSend` or `beforeSendTransaction` is of expected type, and returns the value if so.\n */\nfunction _validateBeforeSendResult(\n beforeSendResult: PromiseLike | Event | null,\n beforeSendLabel: string,\n): PromiseLike | Event | null {\n const invalidValueError = `${beforeSendLabel} must return \\`null\\` or a valid event.`;\n if (isThenable(beforeSendResult)) {\n return beforeSendResult.then(\n event => {\n if (!isPlainObject(event) && event !== null) {\n throw _makeInternalError(invalidValueError);\n }\n return event;\n },\n e => {\n throw _makeInternalError(`${beforeSendLabel} rejected with ${e}`);\n },\n );\n } else if (!isPlainObject(beforeSendResult) && beforeSendResult !== null) {\n throw _makeInternalError(invalidValueError);\n }\n return beforeSendResult;\n}\n\n/**\n * Process the matching `beforeSendXXX` callback.\n */\nfunction processBeforeSend(\n client: Client,\n options: ClientOptions,\n event: Event,\n hint: EventHint,\n): PromiseLike | Event | null {\n const { beforeSend, beforeSendTransaction, beforeSendSpan, ignoreSpans } = options;\n let processedEvent = event;\n\n if (isErrorEvent(processedEvent) && beforeSend) {\n return beforeSend(processedEvent, hint);\n }\n\n if (isTransactionEvent(processedEvent)) {\n // Avoid processing if we don't have to\n if (beforeSendSpan || ignoreSpans) {\n // 1. Process root span\n const rootSpanJson = convertTransactionEventToSpanJson(processedEvent);\n\n // 1.1 If the root span should be ignored, drop the whole transaction\n if (ignoreSpans?.length && shouldIgnoreSpan(rootSpanJson, ignoreSpans)) {\n // dropping the whole transaction!\n return null;\n }\n\n // 1.2 If a `beforeSendSpan` callback is defined, process the root span\n if (beforeSendSpan) {\n const processedRootSpanJson = beforeSendSpan(rootSpanJson);\n if (!processedRootSpanJson) {\n showSpanDropWarning();\n } else {\n // update event with processed root span values\n processedEvent = merge(event, convertSpanJsonToTransactionEvent(processedRootSpanJson));\n }\n }\n\n // 2. Process child spans\n if (processedEvent.spans) {\n const processedSpans: SpanJSON[] = [];\n\n const initialSpans = processedEvent.spans;\n\n for (const span of initialSpans) {\n // 2.a If the child span should be ignored, reparent it to the root span\n if (ignoreSpans?.length && shouldIgnoreSpan(span, ignoreSpans)) {\n reparentChildSpans(initialSpans, span);\n continue;\n }\n\n // 2.b If a `beforeSendSpan` callback is defined, process the child span\n if (beforeSendSpan) {\n const processedSpan = beforeSendSpan(span);\n if (!processedSpan) {\n showSpanDropWarning();\n processedSpans.push(span);\n } else {\n processedSpans.push(processedSpan);\n }\n } else {\n processedSpans.push(span);\n }\n }\n\n const droppedSpans = processedEvent.spans.length - processedSpans.length;\n if (droppedSpans) {\n client.recordDroppedEvent('before_send', 'span', droppedSpans);\n }\n\n processedEvent.spans = processedSpans;\n }\n }\n\n if (beforeSendTransaction) {\n if (processedEvent.spans) {\n // We store the # of spans before processing in SDK metadata,\n // so we can compare it afterwards to determine how many spans were dropped\n const spanCountBefore = processedEvent.spans.length;\n processedEvent.sdkProcessingMetadata = {\n ...event.sdkProcessingMetadata,\n spanCountBeforeProcessing: spanCountBefore,\n };\n }\n return beforeSendTransaction(processedEvent as TransactionEvent, hint);\n }\n }\n\n return processedEvent;\n}\n\nfunction isErrorEvent(event: Event): event is ErrorEvent {\n return event.type === undefined;\n}\n\nfunction isTransactionEvent(event: Event): event is TransactionEvent {\n return event.type === 'transaction';\n}\n\n/**\n * Estimate the size of a metric in bytes.\n *\n * @param metric - The metric to estimate the size of.\n * @returns The estimated size of the metric in bytes.\n */\nfunction estimateMetricSizeInBytes(metric: Metric): number {\n let weight = 0;\n\n // Estimate byte size of 2 bytes per character. This is a rough estimate JS strings are stored as UTF-16.\n if (metric.name) {\n weight += metric.name.length * 2;\n }\n\n // Add weight for number\n weight += 8;\n\n return weight + estimateAttributesSizeInBytes(metric.attributes);\n}\n\n/**\n * Estimate the size of a log in bytes.\n *\n * @param log - The log to estimate the size of.\n * @returns The estimated size of the log in bytes.\n */\nfunction estimateLogSizeInBytes(log: Log): number {\n let weight = 0;\n\n // Estimate byte size of 2 bytes per character. This is a rough estimate JS strings are stored as UTF-16.\n if (log.message) {\n weight += log.message.length * 2;\n }\n\n return weight + estimateAttributesSizeInBytes(log.attributes);\n}\n\n/**\n * Estimate the size of attributes in bytes.\n *\n * @param attributes - The attributes object to estimate the size of.\n * @returns The estimated size of the attributes in bytes.\n */\nfunction estimateAttributesSizeInBytes(attributes: Record | undefined): number {\n if (!attributes) {\n return 0;\n }\n\n let weight = 0;\n\n Object.values(attributes).forEach(value => {\n if (Array.isArray(value)) {\n weight += value.length * estimatePrimitiveSizeInBytes(value[0]);\n } else if (isPrimitive(value)) {\n weight += estimatePrimitiveSizeInBytes(value);\n } else {\n // For objects values, we estimate the size of the object as 100 bytes\n weight += 100;\n }\n });\n\n return weight;\n}\n\nfunction estimatePrimitiveSizeInBytes(value: Primitive): number {\n if (typeof value === 'string') {\n return value.length * 2;\n } else if (typeof value === 'number') {\n return 8;\n } else if (typeof value === 'boolean') {\n return 4;\n }\n\n return 0;\n}\n","import type { SerializedCheckIn } from './types-hoist/checkin';\nimport type { DsnComponents } from './types-hoist/dsn';\nimport type { CheckInEnvelope, CheckInItem, DynamicSamplingContext } from './types-hoist/envelope';\nimport type { SdkMetadata } from './types-hoist/sdkmetadata';\nimport { dsnToString } from './utils/dsn';\nimport { createEnvelope } from './utils/envelope';\n\n/**\n * Create envelope from check in item.\n */\nexport function createCheckInEnvelope(\n checkIn: SerializedCheckIn,\n dynamicSamplingContext?: Partial,\n metadata?: SdkMetadata,\n tunnel?: string,\n dsn?: DsnComponents,\n): CheckInEnvelope {\n const headers: CheckInEnvelope[0] = {\n sent_at: new Date().toISOString(),\n };\n\n if (metadata?.sdk) {\n headers.sdk = {\n name: metadata.sdk.name,\n version: metadata.sdk.version,\n };\n }\n\n if (!!tunnel && !!dsn) {\n headers.dsn = dsnToString(dsn);\n }\n\n if (dynamicSamplingContext) {\n headers.trace = dynamicSamplingContext as DynamicSamplingContext;\n }\n\n const item = createCheckInEnvelopeItem(checkIn);\n return createEnvelope(headers, [item]);\n}\n\nfunction createCheckInEnvelopeItem(checkIn: SerializedCheckIn): CheckInItem {\n const checkInHeaders: CheckInItem[0] = {\n type: 'check_in',\n };\n return [checkInHeaders, checkIn];\n}\n","import type { ClientOptions } from '../types-hoist/options';\n\n/**\n * Takes the SDK metadata and adds the user-agent header to the transport options.\n * This ensures that the SDK sends the user-agent header with SDK name and version to\n * all requests made by the transport.\n *\n * @see https://develop.sentry.dev/sdk/overview/#user-agent\n */\nexport function addUserAgentToTransportHeaders(options: ClientOptions): void {\n const sdkMetadata = options._metadata?.sdk;\n const sdkUserAgent =\n sdkMetadata?.name && sdkMetadata?.version ? `${sdkMetadata?.name}/${sdkMetadata?.version}` : undefined;\n\n options.transportOptions = {\n ...options.transportOptions,\n headers: {\n ...(sdkUserAgent && { 'user-agent': sdkUserAgent }),\n ...options.transportOptions?.headers,\n },\n };\n}\n","import type { Client } from '../client';\nimport type { Event, EventHint } from '../types-hoist/event';\nimport type { Exception } from '../types-hoist/exception';\nimport type { Extras } from '../types-hoist/extra';\nimport type { Mechanism } from '../types-hoist/mechanism';\nimport type { ParameterizedString } from '../types-hoist/parameterize';\nimport type { SeverityLevel } from '../types-hoist/severity';\nimport type { StackFrame } from '../types-hoist/stackframe';\nimport type { StackParser } from '../types-hoist/stacktrace';\nimport { isError, isErrorEvent, isParameterizedString, isPlainObject } from './is';\nimport { addExceptionMechanism, addExceptionTypeValue } from './misc';\nimport { normalizeToSize } from './normalize';\nimport { extractExceptionKeysForMessage } from './object';\n\n/**\n * Extracts stack frames from the error.stack string\n */\nexport function parseStackFrames(stackParser: StackParser, error: Error): StackFrame[] {\n return stackParser(error.stack || '', 1);\n}\n\nfunction hasSentryFetchUrlHost(error: unknown): error is Error & { __sentry_fetch_url_host__: string } {\n return isError(error) && '__sentry_fetch_url_host__' in error && typeof error.__sentry_fetch_url_host__ === 'string';\n}\n\n/**\n * Enhances the error message with the hostname for better Sentry error reporting.\n * This allows third-party packages to still match on the original error message,\n * while Sentry gets the enhanced version with context.\n *\n * Only used internally\n * @hidden\n */\nexport function _enhanceErrorWithSentryInfo(error: T): string {\n // If the error has a __sentry_fetch_url_host__ property (added by fetch instrumentation),\n // enhance the error message with the hostname.\n if (hasSentryFetchUrlHost(error)) {\n return `${error.message} (${error.__sentry_fetch_url_host__})`;\n }\n\n return error.message;\n}\n\n/**\n * Extracts stack frames from the error and builds a Sentry Exception\n */\nexport function exceptionFromError(stackParser: StackParser, error: Error): Exception {\n const exception: Exception = {\n type: error.name || error.constructor.name,\n value: _enhanceErrorWithSentryInfo(error),\n };\n\n const frames = parseStackFrames(stackParser, error);\n if (frames.length) {\n exception.stacktrace = { frames };\n }\n\n return exception;\n}\n\n/** If a plain object has a property that is an `Error`, return this error. */\nfunction getErrorPropertyFromObject(obj: Record): Error | undefined {\n for (const prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n const value = obj[prop];\n if (value instanceof Error) {\n return value;\n }\n }\n }\n\n return undefined;\n}\n\nfunction getMessageForObject(exception: Record): string {\n if ('name' in exception && typeof exception.name === 'string') {\n let message = `'${exception.name}' captured as exception`;\n\n if ('message' in exception && typeof exception.message === 'string') {\n message += ` with message '${exception.message}'`;\n }\n\n return message;\n } else if ('message' in exception && typeof exception.message === 'string') {\n return exception.message;\n }\n\n const keys = extractExceptionKeysForMessage(exception);\n\n // Some ErrorEvent instances do not have an `error` property, which is why they are not handled before\n // We still want to try to get a decent message for these cases\n if (isErrorEvent(exception)) {\n return `Event \\`ErrorEvent\\` captured as exception with message \\`${exception.message}\\``;\n }\n\n const className = getObjectClassName(exception);\n\n return `${\n className && className !== 'Object' ? `'${className}'` : 'Object'\n } captured as exception with keys: ${keys}`;\n}\n\nfunction getObjectClassName(obj: unknown): string | undefined | void {\n try {\n const prototype: unknown | null = Object.getPrototypeOf(obj);\n return prototype ? prototype.constructor.name : undefined;\n } catch {\n // ignore errors here\n }\n}\n\nfunction getException(\n client: Client,\n mechanism: Mechanism,\n exception: unknown,\n hint?: EventHint,\n): [Error, Extras | undefined] {\n if (isError(exception)) {\n return [exception, undefined];\n }\n\n // Mutate this!\n mechanism.synthetic = true;\n\n if (isPlainObject(exception)) {\n const normalizeDepth = client?.getOptions().normalizeDepth;\n const extras = { ['__serialized__']: normalizeToSize(exception, normalizeDepth) };\n\n const errorFromProp = getErrorPropertyFromObject(exception);\n if (errorFromProp) {\n return [errorFromProp, extras];\n }\n\n const message = getMessageForObject(exception);\n const ex = hint?.syntheticException || new Error(message);\n ex.message = message;\n\n return [ex, extras];\n }\n\n // This handles when someone does: `throw \"something awesome\";`\n // We use synthesized Error here so we can extract a (rough) stack trace.\n const ex = hint?.syntheticException || new Error(exception as string);\n ex.message = `${exception}`;\n\n return [ex, undefined];\n}\n\n/**\n * Builds and Event from a Exception\n * @hidden\n */\nexport function eventFromUnknownInput(\n client: Client,\n stackParser: StackParser,\n exception: unknown,\n hint?: EventHint,\n): Event {\n const providedMechanism: Mechanism | undefined = hint?.data && (hint.data as { mechanism: Mechanism }).mechanism;\n const mechanism: Mechanism = providedMechanism || {\n handled: true,\n type: 'generic',\n };\n\n const [ex, extras] = getException(client, mechanism, exception, hint);\n\n const event: Event = {\n exception: {\n values: [exceptionFromError(stackParser, ex)],\n },\n };\n\n if (extras) {\n event.extra = extras;\n }\n\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, mechanism);\n\n return {\n ...event,\n event_id: hint?.event_id,\n };\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nexport function eventFromMessage(\n stackParser: StackParser,\n message: ParameterizedString,\n level: SeverityLevel = 'info',\n hint?: EventHint,\n attachStacktrace?: boolean,\n): Event {\n const event: Event = {\n event_id: hint?.event_id,\n level,\n };\n\n if (attachStacktrace && hint?.syntheticException) {\n const frames = parseStackFrames(stackParser, hint.syntheticException);\n if (frames.length) {\n event.exception = {\n values: [\n {\n value: message,\n stacktrace: { frames },\n },\n ],\n };\n addExceptionMechanism(event, { synthetic: true });\n }\n }\n\n if (isParameterizedString(message)) {\n const { __sentry_template_string__, __sentry_template_values__ } = message;\n\n event.logentry = {\n message: __sentry_template_string__,\n params: __sentry_template_values__,\n };\n return event;\n }\n\n event.message = message;\n return event;\n}\n","import { createCheckInEnvelope } from './checkin';\nimport { Client } from './client';\nimport { getIsolationScope } from './currentScopes';\nimport { DEBUG_BUILD } from './debug-build';\nimport type { Scope } from './scope';\nimport { registerSpanErrorInstrumentation } from './tracing';\nimport { DEFAULT_TRANSPORT_BUFFER_SIZE } from './transports/base';\nimport { addUserAgentToTransportHeaders } from './transports/userAgent';\nimport type { CheckIn, MonitorConfig, SerializedCheckIn } from './types-hoist/checkin';\nimport type { Event, EventHint } from './types-hoist/event';\nimport type { ClientOptions } from './types-hoist/options';\nimport type { ParameterizedString } from './types-hoist/parameterize';\nimport type { SeverityLevel } from './types-hoist/severity';\nimport type { BaseTransportOptions, Transport } from './types-hoist/transport';\nimport { debug } from './utils/debug-logger';\nimport { eventFromMessage, eventFromUnknownInput } from './utils/eventbuilder';\nimport { uuid4 } from './utils/misc';\nimport { makePromiseBuffer } from './utils/promisebuffer';\nimport { resolvedSyncPromise } from './utils/syncpromise';\nimport { _getTraceInfoFromScope } from './utils/trace-info';\n\nexport interface ServerRuntimeClientOptions extends ClientOptions {\n platform?: string;\n runtime?: { name: string; version?: string };\n serverName?: string;\n}\n\n/**\n * The Sentry Server Runtime Client SDK.\n */\nexport class ServerRuntimeClient<\n O extends ClientOptions & ServerRuntimeClientOptions = ServerRuntimeClientOptions,\n> extends Client {\n /**\n * Creates a new Edge SDK instance.\n * @param options Configuration options for this SDK.\n */\n public constructor(options: O) {\n // Server clients always support tracing\n registerSpanErrorInstrumentation();\n\n addUserAgentToTransportHeaders(options);\n\n super(options);\n\n this._setUpMetricsProcessing();\n }\n\n /**\n * @inheritDoc\n */\n public eventFromException(exception: unknown, hint?: EventHint): PromiseLike {\n const event = eventFromUnknownInput(this, this._options.stackParser, exception, hint);\n event.level = 'error';\n\n return resolvedSyncPromise(event);\n }\n\n /**\n * @inheritDoc\n */\n public eventFromMessage(\n message: ParameterizedString,\n level: SeverityLevel = 'info',\n hint?: EventHint,\n ): PromiseLike {\n return resolvedSyncPromise(\n eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace),\n );\n }\n\n /**\n * @inheritDoc\n */\n public captureException(exception: unknown, hint?: EventHint, scope?: Scope): string {\n setCurrentRequestSessionErroredOrCrashed(hint);\n return super.captureException(exception, hint, scope);\n }\n\n /**\n * @inheritDoc\n */\n public captureEvent(event: Event, hint?: EventHint, scope?: Scope): string {\n // If the event is of type Exception, then a request session should be captured\n const isException = !event.type && event.exception?.values && event.exception.values.length > 0;\n if (isException) {\n setCurrentRequestSessionErroredOrCrashed(hint);\n }\n\n return super.captureEvent(event, hint, scope);\n }\n\n /**\n * Create a cron monitor check in and send it to Sentry.\n *\n * @param checkIn An object that describes a check in.\n * @param upsertMonitorConfig An optional object that describes a monitor config. Use this if you want\n * to create a monitor automatically when sending a check in.\n */\n public captureCheckIn(checkIn: CheckIn, monitorConfig?: MonitorConfig, scope?: Scope): string {\n const id = 'checkInId' in checkIn && checkIn.checkInId ? checkIn.checkInId : uuid4();\n if (!this._isEnabled()) {\n DEBUG_BUILD && debug.warn('SDK not enabled, will not capture check-in.');\n return id;\n }\n\n const options = this.getOptions();\n const { release, environment, tunnel } = options;\n\n const serializedCheckIn: SerializedCheckIn = {\n check_in_id: id,\n monitor_slug: checkIn.monitorSlug,\n status: checkIn.status,\n release,\n environment,\n };\n\n if ('duration' in checkIn) {\n serializedCheckIn.duration = checkIn.duration;\n }\n\n if (monitorConfig) {\n serializedCheckIn.monitor_config = {\n schedule: monitorConfig.schedule,\n checkin_margin: monitorConfig.checkinMargin,\n max_runtime: monitorConfig.maxRuntime,\n timezone: monitorConfig.timezone,\n failure_issue_threshold: monitorConfig.failureIssueThreshold,\n recovery_threshold: monitorConfig.recoveryThreshold,\n };\n }\n\n const [dynamicSamplingContext, traceContext] = _getTraceInfoFromScope(this, scope);\n if (traceContext) {\n serializedCheckIn.contexts = {\n trace: traceContext,\n };\n }\n\n const envelope = createCheckInEnvelope(\n serializedCheckIn,\n dynamicSamplingContext,\n this.getSdkMetadata(),\n tunnel,\n this.getDsn(),\n );\n\n DEBUG_BUILD && debug.log('Sending checkin:', checkIn.monitorSlug, checkIn.status);\n\n // sendEnvelope should not throw\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.sendEnvelope(envelope);\n\n return id;\n }\n\n /**\n * Disposes of the client and releases all resources.\n *\n * This method clears all internal state to allow the client to be garbage collected.\n * It clears hooks, event processors, integrations, transport, and other internal references.\n *\n * Call this method after flushing to allow the client to be garbage collected.\n * After calling dispose(), the client should not be used anymore.\n *\n * Subclasses should override this method to clean up their own resources and call `super.dispose()`.\n */\n public override dispose(): void {\n DEBUG_BUILD && debug.log('Disposing client...');\n\n for (const hookName of Object.keys(this._hooks)) {\n this._hooks[hookName]?.clear();\n }\n\n this._hooks = {};\n this._eventProcessors.length = 0;\n this._integrations = {};\n this._outcomes = {};\n (this as unknown as { _transport?: Transport })._transport = undefined;\n this._promiseBuffer = makePromiseBuffer(DEFAULT_TRANSPORT_BUFFER_SIZE);\n }\n\n /**\n * @inheritDoc\n */\n protected _prepareEvent(\n event: Event,\n hint: EventHint,\n currentScope: Scope,\n isolationScope: Scope,\n ): PromiseLike {\n if (this._options.platform) {\n event.platform = event.platform || this._options.platform;\n }\n\n if (this._options.runtime) {\n event.contexts = {\n ...event.contexts,\n runtime: event.contexts?.runtime || this._options.runtime,\n };\n }\n\n if (this._options.serverName) {\n event.server_name = event.server_name || this._options.serverName;\n }\n\n return super._prepareEvent(event, hint, currentScope, isolationScope);\n }\n\n /**\n * Process a server-side metric before it is captured.\n */\n private _setUpMetricsProcessing(): void {\n this.on('processMetric', metric => {\n if (this._options.serverName) {\n metric.attributes = {\n 'server.address': this._options.serverName,\n ...metric.attributes,\n };\n }\n });\n }\n}\n\nfunction setCurrentRequestSessionErroredOrCrashed(eventHint?: EventHint): void {\n const requestSession = getIsolationScope().getScopeData().sdkProcessingMetadata.requestSession;\n if (requestSession) {\n // We mutate instead of doing `setSdkProcessingMetadata` because the http integration stores away a particular\n // isolationScope. If that isolation scope is forked, setting the processing metadata here will not mutate the\n // original isolation scope that the http integration stored away.\n const isHandledException = eventHint?.mechanism?.handled ?? true;\n // A request session can go from \"errored\" -> \"crashed\" but not \"crashed\" -> \"errored\".\n // Crashed (unhandled exception) is worse than errored (handled exception).\n if (isHandledException && requestSession.status !== 'crashed') {\n requestSession.status = 'errored';\n } else if (!isHandledException) {\n requestSession.status = 'crashed';\n }\n }\n}\n","import type { Client } from './client';\nimport { getCurrentScope } from './currentScopes';\nimport { DEBUG_BUILD } from './debug-build';\nimport type { ClientOptions } from './types-hoist/options';\nimport { consoleSandbox, debug } from './utils/debug-logger';\n\n/** A class object that can instantiate Client objects. */\nexport type ClientClass = new (options: O) => F;\n\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instantiate.\n * @param options Options to pass to the client.\n */\nexport function initAndBind(\n clientClass: ClientClass,\n options: O,\n): Client {\n if (options.debug === true) {\n if (DEBUG_BUILD) {\n debug.enable();\n } else {\n // use `console.warn` rather than `debug.warn` since by non-debug bundles have all `debug.x` statements stripped\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');\n });\n }\n }\n const scope = getCurrentScope();\n scope.update(options.initialScope);\n\n const client = new clientClass(options);\n setCurrentClient(client);\n client.init();\n return client;\n}\n\n/**\n * Make the given client the current client.\n */\nexport function setCurrentClient(client: Client): void {\n getCurrentScope().setClient(client);\n}\n","import { DEBUG_BUILD } from '../debug-build';\nimport type { Envelope } from '../types-hoist/envelope';\nimport type { InternalBaseTransportOptions, Transport, TransportMakeRequestResponse } from '../types-hoist/transport';\nimport { debug } from '../utils/debug-logger';\nimport { envelopeContainsItemType } from '../utils/envelope';\nimport { parseRetryAfterHeader } from '../utils/ratelimit';\nimport { safeUnref } from '../utils/timer';\n\nexport const MIN_DELAY = 100; // 100 ms\nexport const START_DELAY = 5_000; // 5 seconds\nconst MAX_DELAY = 3.6e6; // 1 hour\n\nexport interface OfflineStore {\n push(env: Envelope): Promise;\n unshift(env: Envelope): Promise;\n shift(): Promise;\n}\n\nexport type CreateOfflineStore = (options: OfflineTransportOptions) => OfflineStore;\n\nexport interface OfflineTransportOptions extends InternalBaseTransportOptions {\n /**\n * A function that creates the offline store instance.\n */\n createStore?: CreateOfflineStore;\n\n /**\n * Flush the offline store shortly after startup.\n *\n * Defaults: false\n */\n flushAtStartup?: boolean;\n\n /**\n * Called before an event is stored.\n *\n * Return false to drop the envelope rather than store it.\n *\n * @param envelope The envelope that failed to send.\n * @param error The error that occurred.\n * @param retryDelay The current retry delay in milliseconds.\n * @returns Whether the envelope should be stored.\n */\n shouldStore?: (envelope: Envelope, error: Error, retryDelay: number) => boolean | Promise;\n\n /**\n * Should an attempt be made to send the envelope to Sentry.\n *\n * If this function is supplied and returns false, `shouldStore` will be called to determine if the envelope should be stored.\n *\n * @param envelope The envelope that will be sent.\n * @returns Whether we should attempt to send the envelope\n */\n shouldSend?: (envelope: Envelope) => boolean | Promise;\n}\n\ntype Timer = number | { unref?: () => void };\n\n/**\n * Wraps a transport and stores and retries events when they fail to send.\n *\n * @param createTransport The transport to wrap.\n */\nexport function makeOfflineTransport(\n createTransport: (options: TO) => Transport,\n): (options: TO & OfflineTransportOptions) => Transport {\n function log(...args: unknown[]): void {\n DEBUG_BUILD && debug.log('[Offline]:', ...args);\n }\n\n return options => {\n const transport = createTransport(options);\n\n if (!options.createStore) {\n throw new Error('No `createStore` function was provided');\n }\n\n const store = options.createStore(options);\n\n let retryDelay = START_DELAY;\n let flushTimer: Timer | undefined;\n\n function shouldQueue(env: Envelope, error: Error, retryDelay: number): boolean | Promise {\n // We want to drop client reports because they can be generated when we retry sending events while offline.\n if (envelopeContainsItemType(env, ['client_report'])) {\n return false;\n }\n\n if (options.shouldStore) {\n return options.shouldStore(env, error, retryDelay);\n }\n\n return true;\n }\n\n function flushIn(delay: number): void {\n if (flushTimer) {\n clearTimeout(flushTimer as ReturnType);\n }\n\n // We need to unref the timer in node.js, otherwise the node process never exit.\n flushTimer = safeUnref(\n setTimeout(async () => {\n flushTimer = undefined;\n\n const found = await store.shift();\n if (found) {\n log('Attempting to send previously queued event');\n\n // We should to update the sent_at timestamp to the current time.\n found[0].sent_at = new Date().toISOString();\n\n void send(found, true).catch(e => {\n log('Failed to retry sending', e);\n });\n }\n }, delay),\n ) as Timer;\n }\n\n function flushWithBackOff(): void {\n if (flushTimer) {\n return;\n }\n\n flushIn(retryDelay);\n\n retryDelay = Math.min(retryDelay * 2, MAX_DELAY);\n }\n\n async function send(envelope: Envelope, isRetry: boolean = false): Promise {\n // We queue all replay envelopes to avoid multiple replay envelopes being sent at the same time. If one fails, we\n // need to retry them in order.\n if (!isRetry && envelopeContainsItemType(envelope, ['replay_event', 'replay_recording'])) {\n await store.push(envelope);\n flushIn(MIN_DELAY);\n return {};\n }\n\n try {\n if (options.shouldSend && (await options.shouldSend(envelope)) === false) {\n throw new Error('Envelope not sent because `shouldSend` callback returned false');\n }\n\n const result = await transport.send(envelope);\n\n let delay = MIN_DELAY;\n\n if (result) {\n // If there's a retry-after header, use that as the next delay.\n if (result.headers?.['retry-after']) {\n delay = parseRetryAfterHeader(result.headers['retry-after']);\n } else if (result.headers?.['x-sentry-rate-limits']) {\n delay = 60_000; // 60 seconds\n } // If we have a server error, return now so we don't flush the queue.\n else if ((result.statusCode || 0) >= 400) {\n return result;\n }\n }\n\n flushIn(delay);\n retryDelay = START_DELAY;\n return result;\n } catch (e) {\n if (await shouldQueue(envelope, e as Error, retryDelay)) {\n // If this envelope was a retry, we want to add it to the front of the queue so it's retried again first.\n if (isRetry) {\n await store.unshift(envelope);\n } else {\n await store.push(envelope);\n }\n flushWithBackOff();\n log('Error sending. Event queued.', e as Error);\n return {};\n } else {\n throw e;\n }\n }\n }\n\n if (options.flushAtStartup) {\n flushWithBackOff();\n }\n\n return {\n send,\n flush: timeout => {\n // If there's no timeout, we should attempt to flush the offline queue.\n if (timeout === undefined) {\n retryDelay = START_DELAY;\n flushIn(MIN_DELAY);\n }\n\n return transport.flush(timeout);\n },\n };\n };\n}\n","import { getEnvelopeEndpointWithUrlEncodedAuth } from '../api';\nimport type { Envelope, EnvelopeItemType, EventItem } from '../types-hoist/envelope';\nimport type { Event } from '../types-hoist/event';\nimport type { BaseTransportOptions, Transport, TransportMakeRequestResponse } from '../types-hoist/transport';\nimport { dsnFromString } from '../utils/dsn';\nimport { createEnvelope, forEachEnvelopeItem } from '../utils/envelope';\n\ninterface MatchParam {\n /** The envelope to be sent */\n envelope: Envelope;\n /**\n * A function that returns an event from the envelope if one exists. You can optionally pass an array of envelope item\n * types to filter by - only envelopes matching the given types will be multiplexed.\n * Allowed values are: 'event', 'transaction', 'profile', 'replay_event'\n *\n * @param types Defaults to ['event']\n */\n getEvent(types?: EnvelopeItemType[]): Event | undefined;\n}\n\ntype RouteTo = { dsn: string; release: string };\ntype Matcher = (param: MatchParam) => (string | RouteTo)[];\n\n/**\n * Key used in event.extra to provide routing information for the multiplexed transport.\n * Should contain an array of `{ dsn: string, release?: string }` objects.\n */\nexport const MULTIPLEXED_TRANSPORT_EXTRA_KEY = 'MULTIPLEXED_TRANSPORT_EXTRA_KEY';\n\n/**\n * Gets an event from an envelope.\n *\n * This is only exported for use in the tests\n */\nexport function eventFromEnvelope(env: Envelope, types: EnvelopeItemType[]): Event | undefined {\n let event: Event | undefined;\n\n forEachEnvelopeItem(env, (item, type) => {\n if (types.includes(type)) {\n event = Array.isArray(item) ? (item as EventItem)[1] : undefined;\n }\n // bail out if we found an event\n return !!event;\n });\n\n return event;\n}\n\n/**\n * Creates a transport that overrides the release on all events.\n */\nfunction makeOverrideReleaseTransport(\n createTransport: (options: TO) => Transport,\n release: string,\n): (options: TO) => Transport {\n return options => {\n const transport = createTransport(options);\n\n return {\n ...transport,\n send: async (envelope: Envelope): Promise => {\n const event = eventFromEnvelope(envelope, ['event', 'transaction', 'profile', 'replay_event']);\n\n if (event) {\n event.release = release;\n }\n return transport.send(envelope);\n },\n };\n };\n}\n\n/** Overrides the DSN in the envelope header */\nfunction overrideDsn(envelope: Envelope, dsn: string): Envelope {\n return createEnvelope(\n dsn\n ? {\n ...envelope[0],\n dsn,\n }\n : envelope[0],\n envelope[1],\n );\n}\n\n/**\n * Creates a transport that can send events to different DSNs depending on the envelope contents.\n *\n * If no matcher is provided, the transport will look for routing information in\n * `event.extra[MULTIPLEXED_TRANSPORT_EXTRA_KEY]`, which should contain\n * an array of `{ dsn: string, release?: string }` objects.\n */\nexport function makeMultiplexedTransport(\n createTransport: (options: TO) => Transport,\n matcher?: Matcher,\n): (options: TO) => Transport {\n return options => {\n const fallbackTransport = createTransport(options);\n const otherTransports: Map = new Map();\n\n // Use provided matcher or default to simple multiplexed transport behavior\n const actualMatcher: Matcher =\n matcher ||\n (args => {\n const event = args.getEvent();\n if (\n event?.extra?.[MULTIPLEXED_TRANSPORT_EXTRA_KEY] &&\n Array.isArray(event.extra[MULTIPLEXED_TRANSPORT_EXTRA_KEY])\n ) {\n return event.extra[MULTIPLEXED_TRANSPORT_EXTRA_KEY];\n }\n return [];\n });\n\n function getTransport(dsn: string, release: string | undefined): [string, Transport] | undefined {\n // We create a transport for every unique dsn/release combination as there may be code from multiple releases in\n // use at the same time\n const key = release ? `${dsn}:${release}` : dsn;\n\n let transport = otherTransports.get(key);\n\n if (!transport) {\n const validatedDsn = dsnFromString(dsn);\n if (!validatedDsn) {\n return undefined;\n }\n const url = getEnvelopeEndpointWithUrlEncodedAuth(validatedDsn, options.tunnel);\n\n transport = release\n ? makeOverrideReleaseTransport(createTransport, release)({ ...options, url })\n : createTransport({ ...options, url });\n\n otherTransports.set(key, transport);\n }\n\n return [dsn, transport];\n }\n\n async function send(envelope: Envelope): Promise {\n function getEvent(types?: EnvelopeItemType[]): Event | undefined {\n const eventTypes: EnvelopeItemType[] = types?.length ? types : ['event'];\n return eventFromEnvelope(envelope, eventTypes);\n }\n\n const transports = actualMatcher({ envelope, getEvent })\n .map(result => {\n if (typeof result === 'string') {\n return getTransport(result, undefined);\n } else {\n return getTransport(result.dsn, result.release);\n }\n })\n .filter((t): t is [string, Transport] => !!t);\n\n // If we have no transports to send to, use the fallback transport\n // Don't override the DSN in the header for the fallback transport. '' is falsy\n const transportsWithFallback: [string, Transport][] = transports.length ? transports : [['', fallbackTransport]];\n\n const results = (await Promise.all(\n transportsWithFallback.map(([dsn, transport]) => transport.send(overrideDsn(envelope, dsn))),\n )) as [TransportMakeRequestResponse, ...TransportMakeRequestResponse[]];\n\n return results[0];\n }\n\n async function flush(timeout: number | undefined): Promise {\n const allTransports = [...otherTransports.values(), fallbackTransport];\n const results = await Promise.all(allTransports.map(transport => transport.flush(timeout)));\n return results.every(r => r);\n }\n\n return {\n send,\n flush,\n };\n };\n}\n","import { DEBUG_BUILD } from '../../debug-build';\nimport { debug } from '../debug-logger';\n\n/**\n * Registry tracking which AI provider modules should skip instrumentation wrapping.\n *\n * This prevents duplicate spans when a higher-level integration (like LangChain)\n * already instruments AI providers at a higher abstraction level.\n */\nconst SKIPPED_AI_PROVIDERS = new Set();\n\n/**\n * Mark AI provider modules to skip instrumentation wrapping.\n *\n * This prevents duplicate spans when a higher-level integration (like LangChain)\n * already instruments AI providers at a higher abstraction level.\n *\n * @internal\n * @param modules - Array of npm module names to skip (e.g., '@anthropic-ai/sdk', 'openai')\n *\n * @example\n * ```typescript\n * // In LangChain integration\n * _INTERNAL_skipAiProviderWrapping(['@anthropic-ai/sdk', 'openai', '@google/generative-ai']);\n * ```\n */\nexport function _INTERNAL_skipAiProviderWrapping(modules: string[]): void {\n modules.forEach(module => {\n SKIPPED_AI_PROVIDERS.add(module);\n DEBUG_BUILD && debug.log(`AI provider \"${module}\" wrapping will be skipped`);\n });\n}\n\n/**\n * Check if an AI provider module should skip instrumentation wrapping.\n *\n * @internal\n * @param module - The npm module name (e.g., '@anthropic-ai/sdk', 'openai')\n * @returns true if wrapping should be skipped\n *\n * @example\n * ```typescript\n * // In AI provider instrumentation\n * if (_INTERNAL_shouldSkipAiProviderWrapping('@anthropic-ai/sdk')) {\n * return Reflect.construct(Original, args); // Don't instrument\n * }\n * ```\n */\nexport function _INTERNAL_shouldSkipAiProviderWrapping(module: string): boolean {\n return SKIPPED_AI_PROVIDERS.has(module);\n}\n\n/**\n * Clear all AI provider skip registrations.\n *\n * This is automatically called at the start of Sentry.init() to ensure a clean state\n * between different client initializations.\n *\n * @internal\n */\nexport function _INTERNAL_clearAiProviderSkips(): void {\n SKIPPED_AI_PROVIDERS.clear();\n DEBUG_BUILD && debug.log('Cleared AI provider skip registrations');\n}\n","export const FALSY_ENV_VALUES = new Set(['false', 'f', 'n', 'no', 'off', '0']);\nexport const TRUTHY_ENV_VALUES = new Set(['true', 't', 'y', 'yes', 'on', '1']);\n\nexport type StrictBoolCast = {\n strict: true;\n};\n\nexport type LooseBoolCast = {\n strict?: false;\n};\n\nexport type BoolCastOptions = StrictBoolCast | LooseBoolCast;\n\nexport function envToBool(value: unknown, options?: LooseBoolCast): boolean;\nexport function envToBool(value: unknown, options: StrictBoolCast): boolean | null;\nexport function envToBool(value: unknown, options?: BoolCastOptions): boolean | null;\n/**\n * A helper function which casts an ENV variable value to `true` or `false` using the constants defined above.\n * In strict mode, it may return `null` if the value doesn't match any of the predefined values.\n *\n * @param value The value of the env variable\n * @param options -- Only has `strict` key for now, which requires a strict match for `true` in TRUTHY_ENV_VALUES\n * @returns true/false if the lowercase value matches the predefined values above. If not, null in strict mode,\n * and Boolean(value) in loose mode.\n */\nexport function envToBool(value: unknown, options?: BoolCastOptions): boolean | null {\n const normalized = String(value).toLowerCase();\n\n if (FALSY_ENV_VALUES.has(normalized)) {\n return false;\n }\n\n if (TRUTHY_ENV_VALUES.has(normalized)) {\n return true;\n }\n\n return options?.strict ? null : Boolean(value);\n}\n","import {\n SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n SEMANTIC_ATTRIBUTE_URL_FULL,\n} from '../semanticAttributes';\nimport type { SpanAttributes } from '../types-hoist/span';\n\ntype PartialURL = {\n host?: string;\n path?: string;\n protocol?: string;\n relative?: string;\n search?: string;\n hash?: string;\n};\n\ninterface URLwithCanParse extends URL {\n canParse: (url: string, base?: string | URL | undefined) => boolean;\n}\n\n// A subset of the URL object that is valid for relative URLs\n// The URL object cannot handle relative URLs, so we need to handle them separately\ntype RelativeURL = {\n isRelative: true;\n pathname: URL['pathname'];\n search: URL['search'];\n hash: URL['hash'];\n};\n\ntype URLObject = RelativeURL | URL;\n\n// Curious about `thismessage:/`? See: https://www.rfc-editor.org/rfc/rfc2557.html\n// > When the methods above do not yield an absolute URI, a base URL\n// > of \"thismessage:/\" MUST be employed. This base URL has been\n// > defined for the sole purpose of resolving relative references\n// > within a multipart/related structure when no other base URI is\n// > specified.\n//\n// We need to provide a base URL to `parseStringToURLObject` because the fetch API gives us a\n// relative URL sometimes.\n//\n// This is the only case where we need to provide a base URL to `parseStringToURLObject`\n// because the relative URL is not valid on its own.\nconst DEFAULT_BASE_URL = 'thismessage:/';\n\n/**\n * Checks if the URL object is relative\n *\n * @param url - The URL object to check\n * @returns True if the URL object is relative, false otherwise\n */\nexport function isURLObjectRelative(url: URLObject): url is RelativeURL {\n return 'isRelative' in url;\n}\n\n/**\n * Parses string to a URL object\n *\n * @param url - The URL to parse\n * @returns The parsed URL object or undefined if the URL is invalid\n */\nexport function parseStringToURLObject(url: string, urlBase?: string | URL | undefined): URLObject | undefined {\n const isRelative = url.indexOf('://') <= 0 && url.indexOf('//') !== 0;\n const base = urlBase ?? (isRelative ? DEFAULT_BASE_URL : undefined);\n try {\n // Use `canParse` to short-circuit the URL constructor if it's not a valid URL\n // This is faster than trying to construct the URL and catching the error\n // Node 20+, Chrome 120+, Firefox 115+, Safari 17+\n if ('canParse' in URL && !(URL as unknown as URLwithCanParse).canParse(url, base)) {\n return undefined;\n }\n\n const fullUrlObject = new URL(url, base);\n if (isRelative) {\n // Because we used a fake base URL, we need to return a relative URL object.\n // We cannot return anything about the origin, host, etc. because it will refer to the fake base URL.\n return {\n isRelative,\n pathname: fullUrlObject.pathname,\n search: fullUrlObject.search,\n hash: fullUrlObject.hash,\n };\n }\n return fullUrlObject;\n } catch {\n // empty body\n }\n\n return undefined;\n}\n\n/**\n * Takes a URL object and returns a sanitized string which is safe to use as span name\n * see: https://develop.sentry.dev/sdk/data-handling/#structuring-data\n */\nexport function getSanitizedUrlStringFromUrlObject(url: URLObject): string {\n if (isURLObjectRelative(url)) {\n return url.pathname;\n }\n\n const newUrl = new URL(url);\n newUrl.search = '';\n newUrl.hash = '';\n if (['80', '443'].includes(newUrl.port)) {\n newUrl.port = '';\n }\n if (newUrl.password) {\n newUrl.password = '%filtered%';\n }\n if (newUrl.username) {\n newUrl.username = '%filtered%';\n }\n\n return newUrl.toString();\n}\n\ntype PartialRequest = {\n method?: string;\n};\n\nfunction getHttpSpanNameFromUrlObject(\n urlObject: URLObject | undefined,\n kind: 'server' | 'client',\n request?: PartialRequest,\n routeName?: string,\n): string {\n const method = request?.method?.toUpperCase() ?? 'GET';\n const route = routeName\n ? routeName\n : urlObject\n ? kind === 'client'\n ? getSanitizedUrlStringFromUrlObject(urlObject)\n : urlObject.pathname\n : '/';\n\n return `${method} ${route}`;\n}\n\n/**\n * Takes a parsed URL object and returns a set of attributes for the span\n * that represents the HTTP request for that url. This is used for both server\n * and client http spans.\n *\n * Follows https://opentelemetry.io/docs/specs/semconv/http/.\n *\n * @param urlObject - see {@link parseStringToURLObject}\n * @param kind - The type of HTTP operation (server or client)\n * @param spanOrigin - The origin of the span\n * @param request - The request object, see {@link PartialRequest}\n * @param routeName - The name of the route, must be low cardinality\n * @returns The span name and attributes for the HTTP operation\n */\nexport function getHttpSpanDetailsFromUrlObject(\n urlObject: URLObject | undefined,\n kind: 'server' | 'client',\n spanOrigin: string,\n request?: PartialRequest,\n routeName?: string,\n): [name: string, attributes: SpanAttributes] {\n const attributes: SpanAttributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: spanOrigin,\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'url',\n };\n\n if (routeName) {\n // This is based on https://opentelemetry.io/docs/specs/semconv/http/http-spans/#name\n attributes[kind === 'server' ? 'http.route' : 'url.template'] = routeName;\n attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] = 'route';\n }\n\n if (request?.method) {\n attributes[SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD] = request.method.toUpperCase();\n }\n\n if (urlObject) {\n if (urlObject.search) {\n attributes['url.query'] = urlObject.search;\n }\n if (urlObject.hash) {\n attributes['url.fragment'] = urlObject.hash;\n }\n if (urlObject.pathname) {\n attributes['url.path'] = urlObject.pathname;\n if (urlObject.pathname === '/') {\n attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] = 'route';\n }\n }\n\n if (!isURLObjectRelative(urlObject)) {\n attributes[SEMANTIC_ATTRIBUTE_URL_FULL] = urlObject.href;\n if (urlObject.port) {\n attributes['url.port'] = urlObject.port;\n }\n if (urlObject.protocol) {\n attributes['url.scheme'] = urlObject.protocol;\n }\n if (urlObject.hostname) {\n attributes[kind === 'server' ? 'server.address' : 'url.domain'] = urlObject.hostname;\n }\n }\n }\n\n return [getHttpSpanNameFromUrlObject(urlObject, kind, request, routeName), attributes];\n}\n\n/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nexport function parseUrl(url: string): PartialURL {\n if (!url) {\n return {};\n }\n\n const match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n if (!match) {\n return {};\n }\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n const query = match[6] || '';\n const fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n search: query,\n hash: fragment,\n relative: match[5] + query + fragment, // everything minus origin\n };\n}\n\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nexport function stripUrlQueryAndFragment(urlPath: string): string {\n return (urlPath.split(/[?#]/, 1) as [string, ...string[]])[0];\n}\n\n/**\n * Takes a URL object and returns a sanitized string which is safe to use as span name\n * see: https://develop.sentry.dev/sdk/data-handling/#structuring-data\n */\nexport function getSanitizedUrlString(url: PartialURL): string {\n const { protocol, host, path } = url;\n\n const filteredHost =\n host\n // Always filter out authority\n ?.replace(/^.*@/, '[filtered]:[filtered]@')\n // Don't show standard :80 (http) and :443 (https) ports to reduce the noise\n // TODO: Use new URL global if it exists\n .replace(/(:80)$/, '')\n .replace(/(:443)$/, '') || '';\n\n return `${protocol ? `${protocol}://` : ''}${filteredHost}${path}`;\n}\n\n/**\n * Strips the content from a data URL, returning a placeholder with the MIME type.\n *\n * Data URLs can be very long (e.g. base64 encoded scripts for Web Workers),\n * with little valuable information, often leading to envelopes getting dropped due\n * to size limit violations. Therefore, we strip data URLs and replace them with a\n * placeholder.\n *\n * @param url - The URL to process\n * @param includeDataPrefix - If true, includes the first 10 characters of the data stream\n * for debugging (e.g., to identify magic bytes like WASM's AGFzbQ).\n * Defaults to true.\n * @returns For data URLs, returns a short format like `data:text/javascript;base64,SGVsbG8gV2... [truncated]`.\n * For non-data URLs, returns the original URL unchanged.\n */\nexport function stripDataUrlContent(url: string, includeDataPrefix: boolean = true): string {\n if (url.startsWith('data:')) {\n // Match the MIME type (everything after 'data:' until the first ';' or ',')\n const match = url.match(/^data:([^;,]+)/);\n const mimeType = match ? match[1] : 'text/plain';\n const isBase64 = url.includes(';base64,');\n\n // Find where the actual data starts (after the comma)\n const dataStart = url.indexOf(',');\n let dataPrefix = '';\n if (includeDataPrefix && dataStart !== -1) {\n const data = url.slice(dataStart + 1);\n // Include first 10 chars of data to help identify content (e.g., magic bytes)\n dataPrefix = data.length > 10 ? `${data.slice(0, 10)}... [truncated]` : data;\n }\n\n return `data:${mimeType}${isBase64 ? ',base64' : ''}${dataPrefix ? `,${dataPrefix}` : ''}`;\n }\n return url;\n}\n","import type { Client } from '../client';\nimport type { DsnComponents } from '../types-hoist/dsn';\nimport { isURLObjectRelative, parseStringToURLObject } from './url';\n\n/**\n * Checks whether given url points to Sentry server\n *\n * @param url url to verify\n */\nexport function isSentryRequestUrl(url: string, client: Client | undefined): boolean {\n const dsn = client?.getDsn();\n const tunnel = client?.getOptions().tunnel;\n return checkDsn(url, dsn) || checkTunnel(url, tunnel);\n}\n\nfunction checkTunnel(url: string, tunnel: string | undefined): boolean {\n if (!tunnel) {\n return false;\n }\n\n return removeTrailingSlash(url) === removeTrailingSlash(tunnel);\n}\n\nfunction checkDsn(url: string, dsn: DsnComponents | undefined): boolean {\n // Requests to Sentry's ingest endpoint must have a `sentry_key` in the query string\n // This is equivalent to the public_key which is required in the DSN\n // see https://develop.sentry.dev/sdk/overview/#parsing-the-dsn\n // Therefore, a request to the same host and with a `sentry_key` in the query string\n // can be considered a request to the ingest endpoint.\n const urlParts = parseStringToURLObject(url);\n if (!urlParts || isURLObjectRelative(urlParts)) {\n return false;\n }\n\n return dsn ? urlParts.host.includes(dsn.host) && /(^|&|\\?)sentry_key=/.test(urlParts.search) : false;\n}\n\nfunction removeTrailingSlash(str: string): string {\n return str[str.length - 1] === '/' ? str.slice(0, -1) : str;\n}\n","import type { ParameterizedString } from '../types-hoist/parameterize';\n\n/**\n * Tagged template function which returns parameterized representation of the message\n * For example: parameterize`This is a log statement with ${x} and ${y} params`, would return:\n * \"__sentry_template_string__\": 'This is a log statement with %s and %s params',\n * \"__sentry_template_values__\": ['first', 'second']\n *\n * @param strings An array of string values splitted between expressions\n * @param values Expressions extracted from template string\n *\n * @returns A `ParameterizedString` object that can be passed into `captureMessage` or Sentry.logger.X methods.\n */\nexport function parameterize(strings: TemplateStringsArray, ...values: unknown[]): ParameterizedString {\n const formatted = new String(String.raw(strings, ...values)) as ParameterizedString;\n formatted.__sentry_template_string__ = strings.join('\\x00').replace(/%/g, '%%').replace(/\\0/g, '%s');\n formatted.__sentry_template_values__ = values;\n return formatted;\n}\n\n/**\n * Tagged template function which returns parameterized representation of the message.\n *\n * @param strings An array of string values splitted between expressions\n * @param values Expressions extracted from template string\n * @returns A `ParameterizedString` object that can be passed into `captureMessage` or Sentry.logger.X methods.\n */\nexport const fmt = parameterize;\n","import { getEnvelopeEndpointWithUrlEncodedAuth } from '../api';\nimport { debug } from './debug-logger';\nimport { makeDsn } from './dsn';\nimport { parseEnvelope } from './envelope';\n\nexport interface HandleTunnelRequestOptions {\n /** Incoming request containing the Sentry envelope as its body */\n request: Request;\n /** Pre-parsed array of allowed DSN strings */\n allowedDsns: Array;\n}\n\n/**\n * Core Sentry tunnel handler - framework agnostic.\n *\n * Validates the envelope DSN against allowed DSNs, then forwards the\n * envelope to the Sentry ingest endpoint.\n *\n * @returns A `Response` — either the upstream Sentry response on success, or an error response.\n */\nexport async function handleTunnelRequest(options: HandleTunnelRequestOptions): Promise {\n const { request, allowedDsns } = options;\n\n if (allowedDsns.length === 0) {\n return new Response('Tunnel not configured', { status: 500 });\n }\n\n const body = new Uint8Array(await request.arrayBuffer());\n\n let envelopeHeader;\n try {\n [envelopeHeader] = parseEnvelope(body);\n } catch {\n return new Response('Invalid envelope', { status: 400 });\n }\n\n if (!envelopeHeader) {\n return new Response('Invalid envelope: missing header', { status: 400 });\n }\n\n const dsn = envelopeHeader.dsn;\n if (!dsn) {\n return new Response('Invalid envelope: missing DSN', { status: 400 });\n }\n\n // SECURITY: Validate that the envelope DSN matches one of the allowed DSNs\n // This prevents SSRF attacks where attackers send crafted envelopes\n // with malicious DSNs pointing to arbitrary hosts\n const isAllowed = allowedDsns.some(allowed => allowed === dsn);\n\n if (!isAllowed) {\n debug.warn(`Sentry tunnel: rejected request with unauthorized DSN (${dsn})`);\n return new Response('DSN not allowed', { status: 403 });\n }\n\n const dsnComponents = makeDsn(dsn);\n if (!dsnComponents) {\n debug.warn(`Could not extract DSN Components from: ${dsn}`);\n return new Response('Invalid DSN', { status: 403 });\n }\n\n const sentryIngestUrl = getEnvelopeEndpointWithUrlEncodedAuth(dsnComponents);\n\n try {\n return await fetch(sentryIngestUrl, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-sentry-envelope',\n },\n body,\n });\n } catch (error) {\n debug.error('Sentry tunnel: failed to forward envelope', error);\n return new Response('Failed to forward envelope to Sentry', { status: 500 });\n }\n}\n","import type { Session, SessionAggregates } from '../types-hoist/session';\nimport type { User } from '../types-hoist/user';\n\n// By default, we want to infer the IP address, unless this is explicitly set to `null`\n// We do this after all other processing is done\n// If `ip_address` is explicitly set to `null` or a value, we leave it as is\n\n/**\n * @internal\n * @deprecated -- set ip inferral via via SDK metadata options on client instead.\n */\nexport function addAutoIpAddressToUser(objWithMaybeUser: { user?: User | null }): void {\n if (objWithMaybeUser.user?.ip_address === undefined) {\n objWithMaybeUser.user = {\n ...objWithMaybeUser.user,\n ip_address: '{{auto}}',\n };\n }\n}\n\n/**\n * @internal\n */\nexport function addAutoIpAddressToSession(session: Session | SessionAggregates): void {\n if ('aggregates' in session) {\n if (session.attrs?.['ip_address'] === undefined) {\n session.attrs = {\n ...session.attrs,\n ip_address: '{{auto}}',\n };\n }\n } else {\n if (session.ipAddress === undefined) {\n session.ipAddress = '{{auto}}';\n }\n }\n}\n","import type { CoreOptions } from '../types-hoist/options';\nimport { SDK_VERSION } from '../utils/version';\n\n/**\n * A builder for the SDK metadata in the options for the SDK initialization.\n *\n * Note: This function is identical to `buildMetadata` in Remix and NextJS and SvelteKit.\n * We don't extract it for bundle size reasons.\n * @see https://github.com/getsentry/sentry-javascript/pull/7404\n * @see https://github.com/getsentry/sentry-javascript/pull/4196\n *\n * If you make changes to this function consider updating the others as well.\n *\n * @param options SDK options object that gets mutated\n * @param names list of package names\n */\nexport function applySdkMetadata(options: CoreOptions, name: string, names = [name], source = 'npm'): void {\n const sdk = ((options._metadata = options._metadata || {}).sdk = options._metadata.sdk || {});\n\n if (!sdk.name) {\n sdk.name = `sentry.javascript.${name}`;\n sdk.packages = names.map(name => ({\n name: `${source}:@sentry/${name}`,\n version: SDK_VERSION,\n }));\n sdk.version = SDK_VERSION;\n }\n}\n","import { getAsyncContextStrategy } from '../asyncContext';\nimport { getMainCarrier } from '../carrier';\nimport type { Client } from '../client';\nimport { getClient, getCurrentScope, hasExternalPropagationContext } from '../currentScopes';\nimport { isEnabled } from '../exports';\nimport type { Scope } from '../scope';\nimport { getDynamicSamplingContextFromScope, getDynamicSamplingContextFromSpan } from '../tracing';\nimport type { Span } from '../types-hoist/span';\nimport type { SerializedTraceData } from '../types-hoist/tracing';\nimport { dynamicSamplingContextToSentryBaggageHeader } from './baggage';\nimport { debug } from './debug-logger';\nimport { getActiveSpan, spanToTraceHeader, spanToTraceparentHeader } from './spanUtils';\nimport { generateSentryTraceHeader, generateTraceparentHeader, TRACEPARENT_REGEXP } from './tracing';\n\n/**\n * Extracts trace propagation data from the current span or from the client's scope (via transaction or propagation\n * context) and serializes it to `sentry-trace` and `baggage` values. These values can be used to propagate\n * a trace via our tracing Http headers or Html `` tags.\n *\n * This function also applies some validation to the generated sentry-trace and baggage values to ensure that\n * only valid strings are returned.\n *\n * When an external propagation context is registered (e.g. via the OTLP integration) and there is no active\n * Sentry span, this function returns an empty object to defer outgoing request propagation to the external\n * propagator (e.g. an OpenTelemetry propagator).\n *\n * If (@param options.propagateTraceparent) is `true`, the function will also generate a `traceparent` value,\n * following the W3C traceparent header format.\n *\n * @returns an object with the tracing data values. The object keys are the name of the tracing key to be used as header\n * or meta tag name.\n */\nexport function getTraceData(\n options: { span?: Span; scope?: Scope; client?: Client; propagateTraceparent?: boolean } = {},\n): SerializedTraceData {\n const client = options.client || getClient();\n if (!isEnabled() || !client) {\n return {};\n }\n\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n if (acs.getTraceData) {\n return acs.getTraceData(options);\n }\n\n const scope = options.scope || getCurrentScope();\n const span = options.span || getActiveSpan();\n\n // When no active span and external propagation context is registered (e.g. OTLP integration),\n // return empty to let the OTel propagator handle outgoing request propagation.\n if (!span && hasExternalPropagationContext()) {\n return {};\n }\n\n const sentryTrace = span ? spanToTraceHeader(span) : scopeToTraceHeader(scope);\n const dsc = span ? getDynamicSamplingContextFromSpan(span) : getDynamicSamplingContextFromScope(client, scope);\n const baggage = dynamicSamplingContextToSentryBaggageHeader(dsc);\n\n const isValidSentryTraceHeader = TRACEPARENT_REGEXP.test(sentryTrace);\n if (!isValidSentryTraceHeader) {\n debug.warn('Invalid sentry-trace data. Cannot generate trace data');\n return {};\n }\n\n const traceData: SerializedTraceData = {\n 'sentry-trace': sentryTrace,\n baggage,\n };\n\n if (options.propagateTraceparent) {\n traceData.traceparent = span ? spanToTraceparentHeader(span) : scopeToTraceparentHeader(scope);\n }\n\n return traceData;\n}\n\n/**\n * Get a sentry-trace header value for the given scope.\n */\nfunction scopeToTraceHeader(scope: Scope): string {\n const { traceId, sampled, propagationSpanId } = scope.getPropagationContext();\n return generateSentryTraceHeader(traceId, propagationSpanId, sampled);\n}\n\nfunction scopeToTraceparentHeader(scope: Scope): string {\n const { traceId, sampled, propagationSpanId } = scope.getPropagationContext();\n return generateTraceparentHeader(traceId, propagationSpanId, sampled);\n}\n","import { DEBUG_BUILD } from '../debug-build';\nimport type { CoreOptions as Options } from '../types-hoist/options';\nimport { debug } from './debug-logger';\nimport type { LRUMap } from './lru';\nimport { stringMatchesSomePattern } from './string';\n\nconst NOT_PROPAGATED_MESSAGE =\n '[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:';\n\n/**\n * Check if a given URL should be propagated to or not.\n * If no url is defined, or no trace propagation targets are defined, this will always return `true`.\n * You can also optionally provide a decision map, to cache decisions and avoid repeated regex lookups.\n */\nexport function shouldPropagateTraceForUrl(\n url: string | undefined,\n tracePropagationTargets: Options['tracePropagationTargets'],\n decisionMap?: LRUMap,\n): boolean {\n if (typeof url !== 'string' || !tracePropagationTargets) {\n return true;\n }\n\n const cachedDecision = decisionMap?.get(url);\n if (cachedDecision !== undefined) {\n DEBUG_BUILD && !cachedDecision && debug.log(NOT_PROPAGATED_MESSAGE, url);\n return cachedDecision;\n }\n\n const decision = stringMatchesSomePattern(url, tracePropagationTargets);\n decisionMap?.set(url, decision);\n\n DEBUG_BUILD && !decision && debug.log(NOT_PROPAGATED_MESSAGE, url);\n return decision;\n}\n","import type { SerializedTraceData } from '../types-hoist/tracing';\nimport { getTraceData } from './traceData';\n\n/**\n * Returns a string of meta tags that represent the current trace data.\n *\n * You can use this to propagate a trace from your server-side rendered Html to the browser.\n * This function returns up to two meta tags, `sentry-trace` and `baggage`, depending on the\n * current trace data state.\n *\n * @example\n * Usage example:\n *\n * ```js\n * function renderHtml() {\n * return `\n * \n * ${getTraceMetaTags()}\n * \n * `;\n * }\n * ```\n *\n */\nexport function getTraceMetaTags(traceData?: SerializedTraceData): string {\n return Object.entries(traceData || getTraceData())\n .map(([key, value]) => ``)\n .join('\\n');\n}\n","type DebouncedCallback = {\n (): void | unknown;\n flush: () => void | unknown;\n cancel: () => void;\n};\ntype CallbackFunction = () => unknown;\ntype DebounceOptions = {\n /** The max. time in ms to wait for the callback to be invoked. */\n maxWait?: number;\n /** This can be overwritten to use a different setTimeout implementation, e.g. to avoid triggering change detection in Angular */\n setTimeoutImpl?: typeof setTimeout;\n};\n\n/**\n * Heavily simplified debounce function based on lodash.debounce.\n *\n * This function takes a callback function (@param fun) and delays its invocation\n * by @param wait milliseconds. Optionally, a maxWait can be specified in @param options,\n * which ensures that the callback is invoked at least once after the specified max. wait time.\n *\n * @param func the function whose invocation is to be debounced\n * @param wait the minimum time until the function is invoked after it was called once\n * @param options the options object, which can contain the `maxWait` property\n *\n * @returns the debounced version of the function, which needs to be called at least once to start the\n * debouncing process. Subsequent calls will reset the debouncing timer and, in case @paramfunc\n * was already invoked in the meantime, return @param func's return value.\n * The debounced function has two additional properties:\n * - `flush`: Invokes the debounced function immediately and returns its return value\n * - `cancel`: Cancels the debouncing process and resets the debouncing timer\n */\nexport function debounce(func: CallbackFunction, wait: number, options?: DebounceOptions): DebouncedCallback {\n let callbackReturnValue: unknown;\n\n let timerId: ReturnType | undefined;\n let maxTimerId: ReturnType | undefined;\n\n const maxWait = options?.maxWait ? Math.max(options.maxWait, wait) : 0;\n const setTimeoutImpl = options?.setTimeoutImpl || setTimeout;\n\n function invokeFunc(): unknown {\n cancelTimers();\n callbackReturnValue = func();\n return callbackReturnValue;\n }\n\n function cancelTimers(): void {\n timerId !== undefined && clearTimeout(timerId);\n maxTimerId !== undefined && clearTimeout(maxTimerId);\n timerId = maxTimerId = undefined;\n }\n\n function flush(): unknown {\n if (timerId !== undefined || maxTimerId !== undefined) {\n return invokeFunc();\n }\n return callbackReturnValue;\n }\n\n function debounced(): unknown {\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeoutImpl(invokeFunc, wait);\n\n if (maxWait && maxTimerId === undefined) {\n maxTimerId = setTimeoutImpl(invokeFunc, maxWait);\n }\n\n return callbackReturnValue;\n }\n\n debounced.cancel = cancelTimers;\n debounced.flush = flush;\n return debounced;\n}\n","import type { PolymorphicRequest } from '../types-hoist/polymorphics';\nimport type { RequestEventData } from '../types-hoist/request';\nimport type { WebFetchHeaders, WebFetchRequest } from '../types-hoist/webfetchapi';\n\n/**\n * Transforms a `Headers` object that implements the `Web Fetch API` (https://developer.mozilla.org/en-US/docs/Web/API/Headers) into a simple key-value dict.\n * The header keys will be lower case: e.g. A \"Content-Type\" header will be stored as \"content-type\".\n */\nexport function winterCGHeadersToDict(winterCGHeaders: WebFetchHeaders): Record {\n const headers: Record = {};\n try {\n winterCGHeaders.forEach((value, key) => {\n if (typeof value === 'string') {\n // We check that value is a string even though it might be redundant to make sure prototype pollution is not possible.\n headers[key] = value;\n }\n });\n } catch {\n // just return the empty headers\n }\n\n return headers;\n}\n\n/**\n * Convert common request headers to a simple dictionary.\n */\nexport function headersToDict(reqHeaders: Record): Record {\n const headers: Record = Object.create(null);\n\n try {\n Object.entries(reqHeaders).forEach(([key, value]) => {\n if (typeof value === 'string') {\n headers[key] = value;\n }\n });\n } catch {\n // just return the empty headers\n }\n\n return headers;\n}\n\n/**\n * Converts a `Request` object that implements the `Web Fetch API` (https://developer.mozilla.org/en-US/docs/Web/API/Headers) into the format that the `RequestData` integration understands.\n */\nexport function winterCGRequestToRequestData(req: WebFetchRequest): RequestEventData {\n const headers = winterCGHeadersToDict(req.headers);\n\n return {\n method: req.method,\n url: req.url,\n query_string: extractQueryParamsFromUrl(req.url),\n headers,\n // TODO: Can we extract body data from the request?\n };\n}\n\n/**\n * Convert a HTTP request object to RequestEventData to be passed as normalizedRequest.\n * Instead of allowing `PolymorphicRequest` to be passed,\n * we want to be more specific and generally require a http.IncomingMessage-like object.\n */\nexport function httpRequestToRequestData(request: {\n method?: string;\n url?: string;\n headers?: {\n [key: string]: string | string[] | undefined;\n };\n protocol?: string;\n socket?: {\n encrypted?: boolean;\n remoteAddress?: string;\n };\n}): RequestEventData {\n const headers = request.headers || {};\n\n // Check for x-forwarded-host first, then fall back to host header\n const forwardedHost = typeof headers['x-forwarded-host'] === 'string' ? headers['x-forwarded-host'] : undefined;\n const host = forwardedHost || (typeof headers.host === 'string' ? headers.host : undefined);\n\n // Check for x-forwarded-proto first, then fall back to existing protocol detection\n const forwardedProto = typeof headers['x-forwarded-proto'] === 'string' ? headers['x-forwarded-proto'] : undefined;\n const protocol = forwardedProto || request.protocol || (request.socket?.encrypted ? 'https' : 'http');\n\n const url = request.url || '';\n\n const absoluteUrl = getAbsoluteUrl({\n url,\n host,\n protocol,\n });\n\n // This is non-standard, but may be sometimes set\n // It may be overwritten later by our own body handling\n const data = (request as PolymorphicRequest).body || undefined;\n\n // This is non-standard, but may be set on e.g. Next.js or Express requests\n const cookies = (request as PolymorphicRequest).cookies;\n\n return {\n url: absoluteUrl,\n method: request.method,\n query_string: extractQueryParamsFromUrl(url),\n headers: headersToDict(headers),\n cookies,\n data,\n };\n}\n\nfunction getAbsoluteUrl({\n url,\n protocol,\n host,\n}: {\n url?: string;\n protocol: string;\n host?: string;\n}): string | undefined {\n if (url?.startsWith('http')) {\n return url;\n }\n\n if (url && host) {\n return `${protocol}://${host}${url}`;\n }\n\n return undefined;\n}\n\nconst SENSITIVE_HEADER_SNIPPETS = [\n 'auth',\n 'token',\n 'secret',\n 'session', // for the user_session cookie\n 'password',\n 'passwd',\n 'pwd',\n 'key',\n 'jwt',\n 'bearer',\n 'sso',\n 'saml',\n 'csrf',\n 'xsrf',\n 'credentials',\n // Always treat cookie headers as sensitive in case individual key-value cookie pairs cannot properly be extracted\n 'set-cookie',\n 'cookie',\n];\n\nconst PII_HEADER_SNIPPETS = ['x-forwarded-', '-user'];\n\n/**\n * Converts incoming HTTP request or response headers to OpenTelemetry span attributes following semantic conventions.\n * Header names are converted to the format: http..header.\n * where is the header name in lowercase with dashes converted to underscores.\n *\n * @param lifecycle - The lifecycle of the headers, either 'request' or 'response'\n *\n * @see https://opentelemetry.io/docs/specs/semconv/registry/attributes/http/#http-request-header\n * @see https://opentelemetry.io/docs/specs/semconv/registry/attributes/http/#http-response-header\n *\n * @see https://getsentry.github.io/sentry-conventions/attributes/http/#http-request-header-key\n * @see https://getsentry.github.io/sentry-conventions/attributes/http/#http-response-header-key\n */\nexport function httpHeadersToSpanAttributes(\n headers: Record,\n sendDefaultPii: boolean = false,\n lifecycle: 'request' | 'response' = 'request',\n): Record {\n const spanAttributes: Record = {};\n\n try {\n Object.entries(headers).forEach(([key, value]) => {\n if (value == null) {\n return;\n }\n\n const lowerCasedHeaderKey = key.toLowerCase();\n const isCookieHeader = lowerCasedHeaderKey === 'cookie' || lowerCasedHeaderKey === 'set-cookie';\n\n if (isCookieHeader && typeof value === 'string' && value !== '') {\n // Set-Cookie: single cookie with attributes (\"name=value; HttpOnly; Secure\")\n // Cookie: multiple cookies separated by \"; \" (\"cookie1=value1; cookie2=value2\")\n const isSetCookie = lowerCasedHeaderKey === 'set-cookie';\n const semicolonIndex = value.indexOf(';');\n const cookieString = isSetCookie && semicolonIndex !== -1 ? value.substring(0, semicolonIndex) : value;\n const cookies = isSetCookie ? [cookieString] : cookieString.split('; ');\n\n for (const cookie of cookies) {\n // Split only at the first '=' to preserve '=' characters in cookie values\n const equalSignIndex = cookie.indexOf('=');\n const cookieKey = equalSignIndex !== -1 ? cookie.substring(0, equalSignIndex) : cookie;\n const cookieValue = equalSignIndex !== -1 ? cookie.substring(equalSignIndex + 1) : '';\n\n const lowerCasedCookieKey = cookieKey.toLowerCase();\n\n addSpanAttribute(\n spanAttributes,\n lowerCasedHeaderKey,\n lowerCasedCookieKey,\n cookieValue,\n sendDefaultPii,\n lifecycle,\n );\n }\n } else {\n addSpanAttribute(spanAttributes, lowerCasedHeaderKey, '', value, sendDefaultPii, lifecycle);\n }\n });\n } catch {\n // Return empty object if there's an error\n }\n\n return spanAttributes;\n}\n\nfunction normalizeAttributeKey(key: string): string {\n return key.replace(/-/g, '_');\n}\n\nfunction addSpanAttribute(\n spanAttributes: Record,\n headerKey: string,\n cookieKey: string,\n value: string | string[] | undefined,\n sendPii: boolean,\n lifecycle: 'request' | 'response',\n): void {\n const headerValue = handleHttpHeader(cookieKey || headerKey, value, sendPii);\n if (headerValue == null) {\n return;\n }\n\n const normalizedKey = `http.${lifecycle}.header.${normalizeAttributeKey(headerKey)}${cookieKey ? `.${normalizeAttributeKey(cookieKey)}` : ''}`;\n spanAttributes[normalizedKey] = headerValue;\n}\n\nfunction handleHttpHeader(\n lowerCasedKey: string,\n value: string | string[] | undefined,\n sendPii: boolean,\n): string | undefined {\n const isSensitive = sendPii\n ? SENSITIVE_HEADER_SNIPPETS.some(snippet => lowerCasedKey.includes(snippet))\n : [...PII_HEADER_SNIPPETS, ...SENSITIVE_HEADER_SNIPPETS].some(snippet => lowerCasedKey.includes(snippet));\n\n if (isSensitive) {\n return '[Filtered]';\n } else if (Array.isArray(value)) {\n return value.map(v => (v != null ? String(v) : v)).join(';');\n } else if (typeof value === 'string') {\n return value;\n }\n\n return undefined;\n}\n\n/** Extract the query params from an URL. */\nexport function extractQueryParamsFromUrl(url: string): string | undefined {\n // url is path and query string\n if (!url) {\n return;\n }\n\n try {\n // The `URL` constructor can't handle internal URLs of the form `/some/path/here`, so stick a dummy protocol and\n // hostname as the base. Since the point here is just to grab the query string, it doesn't matter what we use.\n const queryParams = new URL(url, 'http://s.io').search.slice(1);\n return queryParams.length ? queryParams : undefined;\n } catch {\n return undefined;\n }\n}\n","import { getClient, getIsolationScope } from './currentScopes';\nimport type { Breadcrumb, BreadcrumbHint } from './types-hoist/breadcrumb';\nimport { consoleSandbox } from './utils/debug-logger';\nimport { dateTimestampInSeconds } from './utils/time';\n\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nconst DEFAULT_BREADCRUMBS = 100;\n\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n */\nexport function addBreadcrumb(breadcrumb: Breadcrumb, hint?: BreadcrumbHint): void {\n const client = getClient();\n const isolationScope = getIsolationScope();\n\n if (!client) return;\n\n const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } = client.getOptions();\n\n if (maxBreadcrumbs <= 0) return;\n\n const timestamp = dateTimestampInSeconds();\n const mergedBreadcrumb = { timestamp, ...breadcrumb };\n const finalBreadcrumb = beforeBreadcrumb\n ? consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint))\n : mergedBreadcrumb;\n\n if (finalBreadcrumb === null) return;\n\n if (client.emit) {\n client.emit('beforeAddBreadcrumb', finalBreadcrumb, hint);\n }\n\n isolationScope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n}\n","import type { Client } from '../client';\nimport { getClient } from '../currentScopes';\nimport { defineIntegration } from '../integration';\nimport type { IntegrationFn } from '../types-hoist/integration';\nimport type { WrappedFunction } from '../types-hoist/wrappedfunction';\nimport { getOriginalFunction } from '../utils/object';\n\nlet originalFunctionToString: () => void;\n\nconst INTEGRATION_NAME = 'FunctionToString';\n\nconst SETUP_CLIENTS = new WeakMap();\n\nconst _functionToStringIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString;\n\n // intrinsics (like Function.prototype) might be immutable in some environments\n // e.g. Node with --frozen-intrinsics, XS (an embedded JavaScript engine) or SES (a JavaScript proposal)\n try {\n Function.prototype.toString = function (this: WrappedFunction, ...args: unknown[]): string {\n const originalFunction = getOriginalFunction(this);\n const context =\n SETUP_CLIENTS.has(getClient() as Client) && originalFunction !== undefined ? originalFunction : this;\n return originalFunctionToString.apply(context, args);\n };\n } catch {\n // ignore errors here, just don't patch this\n }\n },\n setup(client) {\n SETUP_CLIENTS.set(client, true);\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Patch toString calls to return proper name for wrapped functions.\n *\n * ```js\n * Sentry.init({\n * integrations: [\n * functionToStringIntegration(),\n * ],\n * });\n * ```\n */\nexport const functionToStringIntegration = defineIntegration(_functionToStringIntegration);\n","import { DEBUG_BUILD } from '../debug-build';\nimport { defineIntegration } from '../integration';\nimport type { Event } from '../types-hoist/event';\nimport type { IntegrationFn } from '../types-hoist/integration';\nimport type { StackFrame } from '../types-hoist/stackframe';\nimport { debug } from '../utils/debug-logger';\nimport { getPossibleEventMessages } from '../utils/eventUtils';\nimport { getEventDescription } from '../utils/misc';\nimport { stringMatchesSomePattern } from '../utils/string';\n\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nconst DEFAULT_IGNORE_ERRORS = [\n /^Script error\\.?$/,\n /^Javascript error: Script error\\.? on line 0$/,\n /^ResizeObserver loop completed with undelivered notifications.$/, // The browser logs this when a ResizeObserver handler takes a bit longer. Usually this is not an actual issue though. It indicates slowness.\n /^Cannot redefine property: googletag$/, // This is thrown when google tag manager is used in combination with an ad blocker\n /^Can't find variable: gmo$/, // Error from Google Search App https://issuetracker.google.com/issues/396043331\n /^undefined is not an object \\(evaluating 'a\\.[A-Z]'\\)$/, // Random error that happens but not actionable or noticeable to end-users.\n /can't redefine non-configurable property \"solana\"/, // Probably a browser extension or custom browser (Brave) throwing this error\n /vv\\(\\)\\.getRestrictions is not a function/, // Error thrown by GTM, seemingly not affecting end-users\n /Can't find variable: _AutofillCallbackHandler/, // Unactionable error in instagram webview https://developers.facebook.com/community/threads/320013549791141/\n /Object Not Found Matching Id:\\d+, MethodName:simulateEvent/, // unactionable error from CEFSharp, a .NET library that embeds chromium in .NET apps\n /^Java exception was raised during method invocation$/, // error from Facebook Mobile browser (https://github.com/getsentry/sentry-javascript/issues/15065)\n];\n\n/** Options for the EventFilters integration */\nexport interface EventFiltersOptions {\n allowUrls: Array;\n denyUrls: Array;\n ignoreErrors: Array;\n ignoreTransactions: Array;\n ignoreInternal: boolean;\n disableErrorDefaults: boolean;\n}\n\nconst INTEGRATION_NAME = 'EventFilters';\n\n/**\n * An integration that filters out events (errors and transactions) based on:\n *\n * - (Errors) A curated list of known low-value or irrelevant errors (see {@link DEFAULT_IGNORE_ERRORS})\n * - (Errors) A list of error messages or urls/filenames passed in via\n * - Top level Sentry.init options (`ignoreErrors`, `denyUrls`, `allowUrls`)\n * - The same options passed to the integration directly via @param options\n * - (Transactions/Spans) A list of root span (transaction) names passed in via\n * - Top level Sentry.init option (`ignoreTransactions`)\n * - The same option passed to the integration directly via @param options\n *\n * Events filtered by this integration will not be sent to Sentry.\n */\nexport const eventFiltersIntegration = defineIntegration((options: Partial = {}) => {\n let mergedOptions: Partial | undefined;\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n const clientOptions = client.getOptions();\n mergedOptions = _mergeOptions(options, clientOptions);\n },\n processEvent(event, _hint, client) {\n if (!mergedOptions) {\n const clientOptions = client.getOptions();\n mergedOptions = _mergeOptions(options, clientOptions);\n }\n return _shouldDropEvent(event, mergedOptions) ? null : event;\n },\n };\n});\n\n/**\n * An integration that filters out events (errors and transactions) based on:\n *\n * - (Errors) A curated list of known low-value or irrelevant errors (see {@link DEFAULT_IGNORE_ERRORS})\n * - (Errors) A list of error messages or urls/filenames passed in via\n * - Top level Sentry.init options (`ignoreErrors`, `denyUrls`, `allowUrls`)\n * - The same options passed to the integration directly via @param options\n * - (Transactions/Spans) A list of root span (transaction) names passed in via\n * - Top level Sentry.init option (`ignoreTransactions`)\n * - The same option passed to the integration directly via @param options\n *\n * Events filtered by this integration will not be sent to Sentry.\n *\n * @deprecated this integration was renamed and will be removed in a future major version.\n * Use `eventFiltersIntegration` instead.\n */\nexport const inboundFiltersIntegration = defineIntegration(((options: Partial = {}) => {\n return {\n ...eventFiltersIntegration(options),\n name: 'InboundFilters',\n };\n}) satisfies IntegrationFn);\n\nfunction _mergeOptions(\n internalOptions: Partial = {},\n clientOptions: Partial = {},\n): Partial {\n return {\n allowUrls: [...(internalOptions.allowUrls || []), ...(clientOptions.allowUrls || [])],\n denyUrls: [...(internalOptions.denyUrls || []), ...(clientOptions.denyUrls || [])],\n ignoreErrors: [\n ...(internalOptions.ignoreErrors || []),\n ...(clientOptions.ignoreErrors || []),\n ...(internalOptions.disableErrorDefaults ? [] : DEFAULT_IGNORE_ERRORS),\n ],\n ignoreTransactions: [...(internalOptions.ignoreTransactions || []), ...(clientOptions.ignoreTransactions || [])],\n };\n}\n\nfunction _shouldDropEvent(event: Event, options: Partial): boolean {\n if (!event.type) {\n // Filter errors\n if (_isIgnoredError(event, options.ignoreErrors)) {\n DEBUG_BUILD &&\n debug.warn(\n `Event dropped due to being matched by \\`ignoreErrors\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n if (_isUselessError(event)) {\n DEBUG_BUILD &&\n debug.warn(\n `Event dropped due to not having an error message, error type or stacktrace.\\nEvent: ${getEventDescription(\n event,\n )}`,\n );\n return true;\n }\n if (_isDeniedUrl(event, options.denyUrls)) {\n DEBUG_BUILD &&\n debug.warn(\n `Event dropped due to being matched by \\`denyUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n if (!_isAllowedUrl(event, options.allowUrls)) {\n DEBUG_BUILD &&\n debug.warn(\n `Event dropped due to not being matched by \\`allowUrls\\` option.\\nEvent: ${getEventDescription(\n event,\n )}.\\nUrl: ${_getEventFilterUrl(event)}`,\n );\n return true;\n }\n } else if (event.type === 'transaction') {\n // Filter transactions\n\n if (_isIgnoredTransaction(event, options.ignoreTransactions)) {\n DEBUG_BUILD &&\n debug.warn(\n `Event dropped due to being matched by \\`ignoreTransactions\\` option.\\nEvent: ${getEventDescription(event)}`,\n );\n return true;\n }\n }\n return false;\n}\n\nfunction _isIgnoredError(event: Event, ignoreErrors?: Array): boolean {\n if (!ignoreErrors?.length) {\n return false;\n }\n\n return getPossibleEventMessages(event).some(message => stringMatchesSomePattern(message, ignoreErrors));\n}\n\nfunction _isIgnoredTransaction(event: Event, ignoreTransactions?: Array): boolean {\n if (!ignoreTransactions?.length) {\n return false;\n }\n\n const name = event.transaction;\n return name ? stringMatchesSomePattern(name, ignoreTransactions) : false;\n}\n\nfunction _isDeniedUrl(event: Event, denyUrls?: Array): boolean {\n if (!denyUrls?.length) {\n return false;\n }\n const url = _getEventFilterUrl(event);\n return !url ? false : stringMatchesSomePattern(url, denyUrls);\n}\n\nfunction _isAllowedUrl(event: Event, allowUrls?: Array): boolean {\n if (!allowUrls?.length) {\n return true;\n }\n const url = _getEventFilterUrl(event);\n return !url ? true : stringMatchesSomePattern(url, allowUrls);\n}\n\nfunction _getLastValidUrl(frames: StackFrame[] = []): string | null {\n for (let i = frames.length - 1; i >= 0; i--) {\n const frame = frames[i];\n\n if (frame && frame.filename !== '' && frame.filename !== '[native code]') {\n return frame.filename || null;\n }\n }\n\n return null;\n}\n\nfunction _getEventFilterUrl(event: Event): string | null {\n try {\n // If there are linked exceptions or exception aggregates we only want to match against the top frame of the \"root\" (the main exception)\n // The root always comes last in linked exceptions\n const rootException = [...(event.exception?.values ?? [])]\n .reverse()\n .find(value => value.mechanism?.parent_id === undefined && value.stacktrace?.frames?.length);\n const frames = rootException?.stacktrace?.frames;\n return frames ? _getLastValidUrl(frames) : null;\n } catch {\n DEBUG_BUILD && debug.error(`Cannot extract url for event ${getEventDescription(event)}`);\n return null;\n }\n}\n\nfunction _isUselessError(event: Event): boolean {\n // We only want to consider events for dropping that actually have recorded exception values.\n if (!event.exception?.values?.length) {\n return false;\n }\n\n return (\n // No top-level message\n !event.message &&\n // There are no exception values that have a stacktrace, a non-generic-Error type or value\n !event.exception.values.some(value => value.stacktrace || (value.type && value.type !== 'Error') || value.value)\n );\n}\n","import type { ExtendedError } from '../types-hoist/error';\nimport type { Event, EventHint } from '../types-hoist/event';\nimport type { Exception } from '../types-hoist/exception';\nimport type { StackParser } from '../types-hoist/stacktrace';\nimport { isInstanceOf } from './is';\n\n/**\n * Creates exceptions inside `event.exception.values` for errors that are nested on properties based on the `key` parameter.\n */\nexport function applyAggregateErrorsToEvent(\n exceptionFromErrorImplementation: (stackParser: StackParser, ex: Error) => Exception,\n parser: StackParser,\n key: string,\n limit: number,\n event: Event,\n hint?: EventHint,\n): void {\n if (!event.exception?.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return;\n }\n\n // Generally speaking the last item in `event.exception.values` is the exception originating from the original Error\n const originalException: Exception | undefined =\n event.exception.values.length > 0 ? event.exception.values[event.exception.values.length - 1] : undefined;\n\n // We only create exception grouping if there is an exception in the event.\n if (originalException) {\n event.exception.values = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n hint.originalException as ExtendedError,\n key,\n event.exception.values,\n originalException,\n 0,\n );\n }\n}\n\nfunction aggregateExceptionsFromError(\n exceptionFromErrorImplementation: (stackParser: StackParser, ex: Error) => Exception,\n parser: StackParser,\n limit: number,\n error: ExtendedError,\n key: string,\n prevExceptions: Exception[],\n exception: Exception,\n exceptionId: number,\n): Exception[] {\n if (prevExceptions.length >= limit + 1) {\n return prevExceptions;\n }\n\n let newExceptions = [...prevExceptions];\n\n // Recursively call this function in order to walk down a chain of errors\n if (isInstanceOf(error[key], Error)) {\n applyExceptionGroupFieldsForParentException(exception, exceptionId, error);\n const newException = exceptionFromErrorImplementation(parser, error[key] as Error);\n const newExceptionId = newExceptions.length;\n applyExceptionGroupFieldsForChildException(newException, key, newExceptionId, exceptionId);\n newExceptions = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n error[key] as ExtendedError,\n key,\n [newException, ...newExceptions],\n newException,\n newExceptionId,\n );\n }\n\n // This will create exception grouping for AggregateErrors\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AggregateError\n if (isExceptionGroup(error)) {\n error.errors.forEach((childError, i) => {\n if (isInstanceOf(childError, Error)) {\n applyExceptionGroupFieldsForParentException(exception, exceptionId, error);\n const newException = exceptionFromErrorImplementation(parser, childError as Error);\n const newExceptionId = newExceptions.length;\n applyExceptionGroupFieldsForChildException(newException, `errors[${i}]`, newExceptionId, exceptionId);\n newExceptions = aggregateExceptionsFromError(\n exceptionFromErrorImplementation,\n parser,\n limit,\n childError as ExtendedError,\n key,\n [newException, ...newExceptions],\n newException,\n newExceptionId,\n );\n }\n });\n }\n\n return newExceptions;\n}\n\nfunction isExceptionGroup(error: ExtendedError): error is ExtendedError & { errors: unknown[] } {\n return Array.isArray(error.errors);\n}\n\nfunction applyExceptionGroupFieldsForParentException(\n exception: Exception,\n exceptionId: number,\n error: ExtendedError,\n): void {\n exception.mechanism = {\n handled: true,\n type: 'auto.core.linked_errors',\n ...(isExceptionGroup(error) && { is_exception_group: true }),\n ...exception.mechanism,\n exception_id: exceptionId,\n };\n}\n\nfunction applyExceptionGroupFieldsForChildException(\n exception: Exception,\n source: string,\n exceptionId: number,\n parentId: number | undefined,\n): void {\n exception.mechanism = {\n handled: true,\n ...exception.mechanism,\n type: 'chained',\n source,\n exception_id: exceptionId,\n parent_id: parentId,\n };\n}\n","import { defineIntegration } from '../integration';\nimport type { IntegrationFn } from '../types-hoist/integration';\nimport { applyAggregateErrorsToEvent } from '../utils/aggregate-errors';\nimport { exceptionFromError } from '../utils/eventbuilder';\n\ninterface LinkedErrorsOptions {\n key?: string;\n limit?: number;\n}\n\nconst DEFAULT_KEY = 'cause';\nconst DEFAULT_LIMIT = 5;\n\nconst INTEGRATION_NAME = 'LinkedErrors';\n\nconst _linkedErrorsIntegration = ((options: LinkedErrorsOptions = {}) => {\n const limit = options.limit || DEFAULT_LIMIT;\n const key = options.key || DEFAULT_KEY;\n\n return {\n name: INTEGRATION_NAME,\n preprocessEvent(event, hint, client) {\n const options = client.getOptions();\n\n applyAggregateErrorsToEvent(exceptionFromError, options.stackParser, key, limit, event, hint);\n },\n };\n}) satisfies IntegrationFn;\n\nexport const linkedErrorsIntegration = defineIntegration(_linkedErrorsIntegration);\n","import type { Event } from './types-hoist/event';\nimport type { StackParser } from './types-hoist/stacktrace';\nimport { GLOBAL_OBJ } from './utils/worldwide';\n\n/** Keys are source filename/url, values are metadata objects. */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst filenameMetadataMap = new Map();\n/** Set of stack strings that have already been parsed. */\nconst parsedStacks = new Set();\n\n/**\n * Builds a map of filenames to module metadata from the global _sentryModuleMetadata object.\n * This is useful for forwarding metadata from web workers to the main thread.\n *\n * @param parser - Stack parser to use for extracting filenames from stack traces\n * @returns A map of filename to metadata object\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getFilenameToMetadataMap(parser: StackParser): Record {\n if (!GLOBAL_OBJ._sentryModuleMetadata) {\n return {};\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const filenameMap: Record = {};\n\n for (const stack of Object.keys(GLOBAL_OBJ._sentryModuleMetadata)) {\n const metadata = GLOBAL_OBJ._sentryModuleMetadata[stack];\n const frames = parser(stack);\n\n for (const frame of frames.reverse()) {\n if (frame.filename) {\n filenameMap[frame.filename] = metadata;\n break;\n }\n }\n }\n\n return filenameMap;\n}\n\nfunction ensureMetadataStacksAreParsed(parser: StackParser): void {\n if (!GLOBAL_OBJ._sentryModuleMetadata) {\n return;\n }\n\n for (const stack of Object.keys(GLOBAL_OBJ._sentryModuleMetadata)) {\n const metadata = GLOBAL_OBJ._sentryModuleMetadata[stack];\n\n if (parsedStacks.has(stack)) {\n continue;\n }\n\n // Ensure this stack doesn't get parsed again\n parsedStacks.add(stack);\n\n const frames = parser(stack);\n\n // Go through the frames starting from the top of the stack and find the first one with a filename\n for (const frame of frames.reverse()) {\n if (frame.filename) {\n // Save the metadata for this filename\n filenameMetadataMap.set(frame.filename, metadata);\n break;\n }\n }\n }\n}\n\n/**\n * Retrieve metadata for a specific JavaScript file URL.\n *\n * Metadata is injected by the Sentry bundler plugins using the `_experiments.moduleMetadata` config option.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getMetadataForUrl(parser: StackParser, filename: string): any | undefined {\n ensureMetadataStacksAreParsed(parser);\n return filenameMetadataMap.get(filename);\n}\n\n/**\n * Adds metadata to stack frames.\n *\n * Metadata is injected by the Sentry bundler plugins using the `_experiments.moduleMetadata` config option.\n */\nexport function addMetadataToStackFrames(parser: StackParser, event: Event): void {\n event.exception?.values?.forEach(exception => {\n exception.stacktrace?.frames?.forEach(frame => {\n if (!frame.filename || frame.module_metadata) {\n return;\n }\n\n const metadata = getMetadataForUrl(parser, frame.filename);\n\n if (metadata) {\n frame.module_metadata = metadata;\n }\n });\n });\n}\n\n/**\n * Strips metadata from stack frames.\n */\nexport function stripMetadataFromStackFrames(event: Event): void {\n event.exception?.values?.forEach(exception => {\n exception.stacktrace?.frames?.forEach(frame => {\n delete frame.module_metadata;\n });\n });\n}\n","import { defineIntegration } from '../integration';\nimport { addMetadataToStackFrames, stripMetadataFromStackFrames } from '../metadata';\nimport type { EventItem } from '../types-hoist/envelope';\nimport { forEachEnvelopeItem } from '../utils/envelope';\n\n/**\n * Adds module metadata to stack frames.\n *\n * Metadata can be injected by the Sentry bundler plugins using the `moduleMetadata` config option.\n *\n * When this integration is added, the metadata passed to the bundler plugin is added to the stack frames of all events\n * under the `module_metadata` property. This can be used to help in tagging or routing of events from different teams\n * our sources\n */\nexport const moduleMetadataIntegration = defineIntegration(() => {\n return {\n name: 'ModuleMetadata',\n setup(client) {\n // We need to strip metadata from stack frames before sending them to Sentry since these are client side only.\n client.on('beforeEnvelope', envelope => {\n forEachEnvelopeItem(envelope, (item, type) => {\n if (type === 'event') {\n const event = Array.isArray(item) ? (item as EventItem)[1] : undefined;\n\n if (event) {\n stripMetadataFromStackFrames(event);\n item[1] = event;\n }\n }\n });\n });\n\n client.on('applyFrameMetadata', event => {\n // Only apply stack frame metadata to error events\n if (event.type) {\n return;\n }\n\n const stackParser = client.getOptions().stackParser;\n addMetadataToStackFrames(stackParser, event);\n });\n },\n };\n});\n","/**\n * This code was originally copied from the 'cookie` module at v0.5.0 and was simplified for our use case.\n * https://github.com/jshttp/cookie/blob/a0c84147aab6266bdb3996cf4062e93907c0b0fc/index.js\n * It had the following license:\n *\n * (The MIT License)\n *\n * Copyright (c) 2012-2014 Roman Shtylman \n * Copyright (c) 2015 Douglas Christopher Wilson \n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * 'Software'), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n/**\n * Parses a cookie string\n */\nexport function parseCookie(str: string): Record {\n const obj: Record = {};\n let index = 0;\n\n while (index < str.length) {\n const eqIdx = str.indexOf('=', index);\n\n // no more cookie pairs\n if (eqIdx === -1) {\n break;\n }\n\n let endIdx = str.indexOf(';', index);\n\n if (endIdx === -1) {\n endIdx = str.length;\n } else if (endIdx < eqIdx) {\n // backtrack on prior semicolon\n index = str.lastIndexOf(';', eqIdx - 1) + 1;\n continue;\n }\n\n const key = str.slice(index, eqIdx).trim();\n\n // only assign once\n if (undefined === obj[key]) {\n let val = str.slice(eqIdx + 1, endIdx).trim();\n\n // quoted values\n if (val.charCodeAt(0) === 0x22) {\n val = val.slice(1, -1);\n }\n\n try {\n obj[key] = val.indexOf('%') !== -1 ? decodeURIComponent(val) : val;\n } catch {\n obj[key] = val;\n }\n }\n\n index = endIdx + 1;\n }\n\n return obj;\n}\n","// Vendored / modified from @sergiodxa/remix-utils\n\n// https://github.com/sergiodxa/remix-utils/blob/02af80e12829a53696bfa8f3c2363975cf59f55e/src/server/get-client-ip-address.ts\n// MIT License\n\n// Copyright (c) 2021 Sergio Xalambrí\n\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n// SOFTWARE.\n\n// The headers to check, in priority order\nexport const ipHeaderNames = [\n 'X-Client-IP',\n 'X-Forwarded-For',\n 'Fly-Client-IP',\n 'CF-Connecting-IP',\n 'Fastly-Client-Ip',\n 'True-Client-Ip',\n 'X-Real-IP',\n 'X-Cluster-Client-IP',\n 'X-Forwarded',\n 'Forwarded-For',\n 'Forwarded',\n 'X-Vercel-Forwarded-For',\n];\n\n/**\n * Get the IP address of the client sending a request.\n *\n * It receives a Request headers object and use it to get the\n * IP address from one of the following headers in order.\n *\n * If the IP address is valid, it will be returned. Otherwise, null will be\n * returned.\n *\n * If the header values contains more than one IP address, the first valid one\n * will be returned.\n */\nexport function getClientIPAddress(headers: { [key: string]: string | string[] | undefined }): string | null {\n // Build a map of lowercase header names to their values for case-insensitive lookup\n // This is needed because headers from different sources may have different casings\n const lowerCaseHeaders: { [key: string]: string | string[] | undefined } = {};\n\n for (const key of Object.keys(headers)) {\n lowerCaseHeaders[key.toLowerCase()] = headers[key];\n }\n\n // This will end up being Array because of the various possible values a header\n // can take\n const headerValues = ipHeaderNames.map((headerName: string) => {\n const rawValue = lowerCaseHeaders[headerName.toLowerCase()];\n const value = Array.isArray(rawValue) ? rawValue.join(';') : rawValue;\n\n if (headerName === 'Forwarded') {\n return parseForwardedHeader(value);\n }\n\n return value?.split(',').map((v: string) => v.trim());\n });\n\n // Flatten the array and filter out any falsy entries\n const flattenedHeaderValues = headerValues.reduce((acc: string[], val) => {\n if (!val) {\n return acc;\n }\n\n return acc.concat(val);\n }, []);\n\n // Find the first value which is a valid IP address, if any\n const ipAddress = flattenedHeaderValues.find(ip => ip !== null && isIP(ip));\n\n return ipAddress || null;\n}\n\nfunction parseForwardedHeader(value: string | null | undefined): string | null {\n if (!value) {\n return null;\n }\n\n for (const part of value.split(';')) {\n if (part.startsWith('for=')) {\n return part.slice(4);\n }\n }\n\n return null;\n}\n\n//\n/**\n * Custom method instead of importing this from `net` package, as this only exists in node\n * Accepts:\n * 127.0.0.1\n * 192.168.1.1\n * 192.168.1.255\n * 255.255.255.255\n * 10.1.1.1\n * 0.0.0.0\n * 2b01:cb19:8350:ed00:d0dd:fa5b:de31:8be5\n *\n * Rejects:\n * 1.1.1.01\n * 30.168.1.255.1\n * 127.1\n * 192.168.1.256\n * -1.2.3.4\n * 1.1.1.1.\n * 3...3\n * 192.168.1.099\n */\nfunction isIP(str: string): boolean {\n const regex =\n /(?:^(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}$)|(?:^(?:(?:[a-fA-F\\d]{1,4}:){7}(?:[a-fA-F\\d]{1,4}|:)|(?:[a-fA-F\\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|:[a-fA-F\\d]{1,4}|:)|(?:[a-fA-F\\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,2}|:)|(?:[a-fA-F\\d]{1,4}:){4}(?:(?::[a-fA-F\\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,3}|:)|(?:[a-fA-F\\d]{1,4}:){3}(?:(?::[a-fA-F\\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,4}|:)|(?:[a-fA-F\\d]{1,4}:){2}(?:(?::[a-fA-F\\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,5}|:)|(?:[a-fA-F\\d]{1,4}:){1}(?:(?::[a-fA-F\\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,6}|:)|(?::(?:(?::[a-fA-F\\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}|(?::[a-fA-F\\d]{1,4}){1,7}|:)))(?:%[0-9a-zA-Z]{1,})?$)/;\n return regex.test(str);\n}\n","import { defineIntegration } from '../integration';\nimport type { Event } from '../types-hoist/event';\nimport type { IntegrationFn } from '../types-hoist/integration';\nimport type { RequestEventData } from '../types-hoist/request';\nimport { parseCookie } from '../utils/cookie';\nimport { getClientIPAddress, ipHeaderNames } from '../vendor/getIpAddress';\n\ninterface RequestDataIncludeOptions {\n cookies?: boolean;\n data?: boolean;\n headers?: boolean;\n ip?: boolean;\n query_string?: boolean;\n url?: boolean;\n}\n\ntype RequestDataIntegrationOptions = {\n /**\n * Controls what data is pulled from the request and added to the event.\n */\n include?: RequestDataIncludeOptions;\n};\n\n// TODO(v11): Change defaults based on `sendDefaultPii`\nconst DEFAULT_INCLUDE: RequestDataIncludeOptions = {\n cookies: true,\n data: true,\n headers: true,\n query_string: true,\n url: true,\n};\n\nconst INTEGRATION_NAME = 'RequestData';\n\nconst _requestDataIntegration = ((options: RequestDataIntegrationOptions = {}) => {\n const include = {\n ...DEFAULT_INCLUDE,\n ...options.include,\n };\n\n return {\n name: INTEGRATION_NAME,\n processEvent(event, _hint, client) {\n const { sdkProcessingMetadata = {} } = event;\n const { normalizedRequest, ipAddress } = sdkProcessingMetadata;\n\n const includeWithDefaultPiiApplied: RequestDataIncludeOptions = {\n ...include,\n ip: include.ip ?? client.getOptions().sendDefaultPii,\n };\n\n if (normalizedRequest) {\n addNormalizedRequestDataToEvent(event, normalizedRequest, { ipAddress }, includeWithDefaultPiiApplied);\n }\n\n return event;\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Add data about a request to an event. Primarily for use in Node-based SDKs, but included in `@sentry/core`\n * so it can be used in cross-platform SDKs like `@sentry/nextjs`.\n */\nexport const requestDataIntegration = defineIntegration(_requestDataIntegration);\n\n/**\n * Add already normalized request data to an event.\n * This mutates the passed in event.\n */\nfunction addNormalizedRequestDataToEvent(\n event: Event,\n req: RequestEventData,\n // Data that should not go into `event.request` but is somehow related to requests\n additionalData: { ipAddress?: string },\n include: RequestDataIncludeOptions,\n): void {\n event.request = {\n ...event.request,\n ...extractNormalizedRequestData(req, include),\n };\n\n if (include.ip) {\n const ip = (req.headers && getClientIPAddress(req.headers)) || additionalData.ipAddress;\n if (ip) {\n event.user = {\n ...event.user,\n ip_address: ip,\n };\n }\n }\n}\n\nfunction extractNormalizedRequestData(\n normalizedRequest: RequestEventData,\n include: RequestDataIncludeOptions,\n): RequestEventData {\n const requestData: RequestEventData = {};\n const headers = { ...normalizedRequest.headers };\n\n if (include.headers) {\n requestData.headers = headers;\n\n // Remove the Cookie header in case cookie data should not be included in the event\n if (!include.cookies) {\n delete (headers as { cookie?: string }).cookie;\n }\n\n // Remove IP headers in case IP data should not be included in the event\n if (!include.ip) {\n ipHeaderNames.forEach(ipHeaderName => {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete (headers as Record)[ipHeaderName];\n });\n }\n }\n\n requestData.method = normalizedRequest.method;\n\n if (include.url) {\n requestData.url = normalizedRequest.url;\n }\n\n if (include.cookies) {\n const cookies = normalizedRequest.cookies || (headers?.cookie ? parseCookie(headers.cookie) : undefined);\n requestData.cookies = cookies || {};\n }\n\n if (include.query_string) {\n requestData.query_string = normalizedRequest.query_string;\n }\n\n if (include.data) {\n requestData.data = normalizedRequest.data;\n }\n\n return requestData;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\nimport type { ConsoleLevel, HandlerDataConsole } from '../types-hoist/instrument';\nimport { CONSOLE_LEVELS, originalConsoleMethods } from '../utils/debug-logger';\nimport { fill } from '../utils/object';\nimport { GLOBAL_OBJ } from '../utils/worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers';\n\n/**\n * Add an instrumentation handler for when a console.xxx method is called.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addConsoleInstrumentationHandler(handler: (data: HandlerDataConsole) => void): void {\n const type = 'console';\n addHandler(type, handler);\n maybeInstrument(type, instrumentConsole);\n}\n\nfunction instrumentConsole(): void {\n if (!('console' in GLOBAL_OBJ)) {\n return;\n }\n\n CONSOLE_LEVELS.forEach(function (level: ConsoleLevel): void {\n if (!(level in GLOBAL_OBJ.console)) {\n return;\n }\n\n fill(GLOBAL_OBJ.console, level, function (originalConsoleMethod: () => any): Function {\n originalConsoleMethods[level] = originalConsoleMethod;\n\n return function (...args: any[]): void {\n const handlerData: HandlerDataConsole = { args, level };\n triggerHandlers('console', handlerData);\n\n const log = originalConsoleMethods[level];\n log?.apply(GLOBAL_OBJ.console, args);\n };\n });\n });\n}\n","import type { SeverityLevel } from '../types-hoist/severity';\n\n/**\n * Converts a string-based level into a `SeverityLevel`, normalizing it along the way.\n *\n * @param level String representation of desired `SeverityLevel`.\n * @returns The `SeverityLevel` corresponding to the given string, or 'log' if the string isn't a valid level.\n */\nexport function severityLevelFromString(level: SeverityLevel | string): SeverityLevel {\n return (\n level === 'warn' ? 'warning' : ['fatal', 'error', 'warning', 'log', 'info', 'debug'].includes(level) ? level : 'log'\n ) as SeverityLevel;\n}\n","import { getClient, withScope } from '../currentScopes';\nimport { captureException } from '../exports';\nimport { addConsoleInstrumentationHandler } from '../instrument/console';\nimport { defineIntegration } from '../integration';\nimport type { CaptureContext } from '../scope';\nimport type { IntegrationFn } from '../types-hoist/integration';\nimport { CONSOLE_LEVELS } from '../utils/debug-logger';\nimport { addExceptionMechanism } from '../utils/misc';\nimport { severityLevelFromString } from '../utils/severity';\nimport { safeJoin } from '../utils/string';\nimport { GLOBAL_OBJ } from '../utils/worldwide';\n\ninterface CaptureConsoleOptions {\n levels?: string[];\n\n /**\n * By default, Sentry will mark captured console messages as handled.\n * Set this to `false` if you want to mark them as unhandled instead.\n *\n * @default true\n */\n handled?: boolean;\n}\n\nconst INTEGRATION_NAME = 'CaptureConsole';\n\nconst _captureConsoleIntegration = ((options: CaptureConsoleOptions = {}) => {\n const levels = options.levels || CONSOLE_LEVELS;\n const handled = options.handled ?? true;\n\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n if (!('console' in GLOBAL_OBJ)) {\n return;\n }\n\n addConsoleInstrumentationHandler(({ args, level }) => {\n if (getClient() !== client || !levels.includes(level)) {\n return;\n }\n\n consoleHandler(args, level, handled);\n });\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Send Console API calls as Sentry Events.\n */\nexport const captureConsoleIntegration = defineIntegration(_captureConsoleIntegration);\n\nfunction consoleHandler(args: unknown[], level: string, handled: boolean): void {\n const severityLevel = severityLevelFromString(level);\n\n /*\n We create this error here already to attach a stack trace to captured messages,\n if users set `attachStackTrace` to `true` in Sentry.init.\n We do this here already because we want to minimize the number of Sentry SDK stack frames\n within the error. Technically, Client.captureMessage will also do it but this happens several\n stack frames deeper.\n */\n const syntheticException = new Error();\n\n const captureContext: CaptureContext = {\n level: severityLevelFromString(level),\n extra: {\n arguments: args,\n },\n };\n\n withScope(scope => {\n scope.addEventProcessor(event => {\n event.logger = 'console';\n\n addExceptionMechanism(event, {\n handled,\n type: 'auto.core.capture_console',\n });\n\n return event;\n });\n\n if (level === 'assert') {\n if (!args[0]) {\n const message = `Assertion failed: ${safeJoin(args.slice(1), ' ') || 'console.assert'}`;\n scope.setExtra('arguments', args.slice(1));\n scope.captureMessage(message, severityLevel, { captureContext, syntheticException });\n }\n return;\n }\n\n const error = args.find(arg => arg instanceof Error);\n if (error) {\n captureException(error, captureContext);\n return;\n }\n\n const message = safeJoin(args, ' ');\n scope.captureMessage(message, severityLevel, { captureContext, syntheticException });\n });\n}\n","import { DEBUG_BUILD } from '../debug-build';\nimport { defineIntegration } from '../integration';\nimport type { Event } from '../types-hoist/event';\nimport type { Exception } from '../types-hoist/exception';\nimport type { IntegrationFn } from '../types-hoist/integration';\nimport type { StackFrame } from '../types-hoist/stackframe';\nimport { debug } from '../utils/debug-logger';\nimport { getFramesFromEvent } from '../utils/stacktrace';\n\nconst INTEGRATION_NAME = 'Dedupe';\n\nconst _dedupeIntegration = (() => {\n let previousEvent: Event | undefined;\n\n return {\n name: INTEGRATION_NAME,\n processEvent(currentEvent) {\n // We want to ignore any non-error type events, e.g. transactions or replays\n // These should never be deduped, and also not be compared against as _previousEvent.\n if (currentEvent.type) {\n return currentEvent;\n }\n\n // Juuust in case something goes wrong\n try {\n if (_shouldDropEvent(currentEvent, previousEvent)) {\n DEBUG_BUILD && debug.warn('Event dropped due to being a duplicate of previously captured event.');\n return null;\n }\n } catch {} // eslint-disable-line no-empty\n\n return (previousEvent = currentEvent);\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Deduplication filter.\n */\nexport const dedupeIntegration = defineIntegration(_dedupeIntegration);\n\n/** only exported for tests. */\nexport function _shouldDropEvent(currentEvent: Event, previousEvent?: Event): boolean {\n if (!previousEvent) {\n return false;\n }\n\n if (_isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n\n return false;\n}\n\nfunction _isSameMessageEvent(currentEvent: Event, previousEvent: Event): boolean {\n const currentMessage = currentEvent.message;\n const previousMessage = previousEvent.message;\n\n // If neither event has a message property, they were both exceptions, so bail out\n if (!currentMessage && !previousMessage) {\n return false;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n return false;\n }\n\n if (currentMessage !== previousMessage) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\nfunction _isSameExceptionEvent(currentEvent: Event, previousEvent: Event): boolean {\n const previousException = _getExceptionFromEvent(previousEvent);\n const currentException = _getExceptionFromEvent(currentEvent);\n\n if (!previousException || !currentException) {\n return false;\n }\n\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n\n return true;\n}\n\nfunction _isSameStacktrace(currentEvent: Event, previousEvent: Event): boolean {\n let currentFrames = getFramesFromEvent(currentEvent);\n let previousFrames = getFramesFromEvent(previousEvent);\n\n // If neither event has a stacktrace, they are assumed to be the same\n if (!currentFrames && !previousFrames) {\n return true;\n }\n\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n return false;\n }\n\n currentFrames = currentFrames as StackFrame[];\n previousFrames = previousFrames as StackFrame[];\n\n // If number of frames differ, they are not the same\n if (previousFrames.length !== currentFrames.length) {\n return false;\n }\n\n // Otherwise, compare the two\n for (let i = 0; i < previousFrames.length; i++) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const frameA = previousFrames[i]!;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const frameB = currentFrames[i]!;\n\n if (\n frameA.filename !== frameB.filename ||\n frameA.lineno !== frameB.lineno ||\n frameA.colno !== frameB.colno ||\n frameA.function !== frameB.function\n ) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction _isSameFingerprint(currentEvent: Event, previousEvent: Event): boolean {\n let currentFingerprint = currentEvent.fingerprint;\n let previousFingerprint = previousEvent.fingerprint;\n\n // If neither event has a fingerprint, they are assumed to be the same\n if (!currentFingerprint && !previousFingerprint) {\n return true;\n }\n\n // If only one event has a fingerprint, but not the other one, they are not the same\n if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n return false;\n }\n\n currentFingerprint = currentFingerprint as string[];\n previousFingerprint = previousFingerprint as string[];\n\n // Otherwise, compare the two\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n } catch {\n return false;\n }\n}\n\nfunction _getExceptionFromEvent(event: Event): Exception | undefined {\n return event.exception?.values?.[0];\n}\n","import { DEBUG_BUILD } from '../debug-build';\nimport { defineIntegration } from '../integration';\nimport type { Contexts } from '../types-hoist/context';\nimport type { ExtendedError } from '../types-hoist/error';\nimport type { Event, EventHint } from '../types-hoist/event';\nimport type { IntegrationFn } from '../types-hoist/integration';\nimport { debug } from '../utils/debug-logger';\nimport { isError, isPlainObject } from '../utils/is';\nimport { normalize } from '../utils/normalize';\nimport { addNonEnumerableProperty } from '../utils/object';\nimport { truncate } from '../utils/string';\n\nconst INTEGRATION_NAME = 'ExtraErrorData';\n\ninterface ExtraErrorDataOptions {\n /**\n * The object depth up to which to capture data on error objects.\n */\n depth: number;\n\n /**\n * Whether to capture error causes. Defaults to true.\n *\n * More information: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/cause\n */\n captureErrorCause: boolean;\n}\n\n/**\n * Extract additional data for from original exceptions.\n */\nconst _extraErrorDataIntegration = ((options: Partial = {}) => {\n const { depth = 3, captureErrorCause = true } = options;\n return {\n name: INTEGRATION_NAME,\n processEvent(event, hint, client) {\n const { maxValueLength } = client.getOptions();\n return _enhanceEventWithErrorData(event, hint, depth, captureErrorCause, maxValueLength);\n },\n };\n}) satisfies IntegrationFn;\n\nexport const extraErrorDataIntegration = defineIntegration(_extraErrorDataIntegration);\n\nfunction _enhanceEventWithErrorData(\n event: Event,\n hint: EventHint = {},\n depth: number,\n captureErrorCause: boolean,\n maxValueLength: number | undefined,\n): Event {\n if (!hint.originalException || !isError(hint.originalException)) {\n return event;\n }\n const exceptionName = (hint.originalException as ExtendedError).name || hint.originalException.constructor.name;\n\n const errorData = _extractErrorData(hint.originalException as ExtendedError, captureErrorCause, maxValueLength);\n\n if (errorData) {\n const contexts: Contexts = {\n ...event.contexts,\n };\n\n const normalizedErrorData = normalize(errorData, depth);\n\n if (isPlainObject(normalizedErrorData)) {\n // We mark the error data as \"already normalized\" here, because we don't want other normalization procedures to\n // potentially truncate the data we just already normalized, with a certain depth setting.\n addNonEnumerableProperty(normalizedErrorData, '__sentry_skip_normalization__', true);\n contexts[exceptionName] = normalizedErrorData;\n }\n\n return {\n ...event,\n contexts,\n };\n }\n\n return event;\n}\n\n/**\n * Extract extra information from the Error object\n */\nfunction _extractErrorData(\n error: ExtendedError,\n captureErrorCause: boolean,\n maxValueLength: number | undefined,\n): Record | null {\n // We are trying to enhance already existing event, so no harm done if it won't succeed\n try {\n const nativeKeys = [\n 'name',\n 'message',\n 'stack',\n 'line',\n 'column',\n 'fileName',\n 'lineNumber',\n 'columnNumber',\n 'toJSON',\n ];\n\n const extraErrorInfo: Record = {};\n\n // We want only enumerable properties, thus `getOwnPropertyNames` is redundant here, as we filter keys anyway.\n for (const key of Object.keys(error)) {\n if (nativeKeys.indexOf(key) !== -1) {\n continue;\n }\n const value = error[key];\n extraErrorInfo[key] =\n isError(value) || typeof value === 'string'\n ? maxValueLength\n ? truncate(`${value}`, maxValueLength)\n : `${value}`\n : value;\n }\n\n // Error.cause is a standard property that is non enumerable, we therefore need to access it separately.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/cause\n if (captureErrorCause && error.cause !== undefined) {\n if (isError(error.cause)) {\n const errorName = error.cause.name || error.cause.constructor.name;\n extraErrorInfo.cause = { [errorName]: _extractErrorData(error.cause as ExtendedError, false, maxValueLength) };\n } else {\n extraErrorInfo.cause = error.cause;\n }\n }\n\n // Check if someone attached `toJSON` method to grab even more properties (eg. axios is doing that)\n if (typeof error.toJSON === 'function') {\n const serializedError = error.toJSON() as Record;\n\n for (const key of Object.keys(serializedError)) {\n const value = serializedError[key];\n extraErrorInfo[key] = isError(value) ? value.toString() : value;\n }\n }\n\n return extraErrorInfo;\n } catch (oO) {\n DEBUG_BUILD && debug.error('Unable to extract extra data from the Error object:', oO);\n }\n\n return null;\n}\n","// Slightly modified (no IE8 support, ES6) and transcribed to TypeScript\n// https://github.com/calvinmetcalf/rollup-plugin-node-builtins/blob/63ab8aacd013767445ca299e468d9a60a95328d7/src/es6/path.js\n//\n// Copyright Joyent, Inc.and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n/** JSDoc */\nfunction normalizeArray(parts: string[], allowAboveRoot?: boolean): string[] {\n // if the path tries to go above the root, `up` ends up > 0\n let up = 0;\n for (let i = parts.length - 1; i >= 0; i--) {\n const last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// Split a filename into [root, dir, basename, ext], unix version\n// 'root' is just a slash, or nothing.\nconst splitPathRe = /^(\\S+:\\\\|\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^/\\\\]+?|)(\\.[^./\\\\]*|))(?:[/\\\\]*)$/;\n/** JSDoc */\nfunction splitPath(filename: string): string[] {\n // Truncate files names greater than 1024 characters to avoid regex dos\n // https://github.com/getsentry/sentry-javascript/pull/8737#discussion_r1285719172\n const truncated = filename.length > 1024 ? `${filename.slice(-1024)}` : filename;\n const parts = splitPathRe.exec(truncated);\n return parts ? parts.slice(1) : [];\n}\n\n// path.resolve([from ...], to)\n// posix version\n/** JSDoc */\nexport function resolve(...args: string[]): string {\n let resolvedPath = '';\n let resolvedAbsolute = false;\n\n for (let i = args.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n const path = i >= 0 ? args[i] : '/';\n\n // Skip empty entries\n if (!path) {\n continue;\n }\n\n resolvedPath = `${path}/${resolvedPath}`;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(\n resolvedPath.split('/').filter(p => !!p),\n !resolvedAbsolute,\n ).join('/');\n\n return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n}\n\n/** JSDoc */\nfunction trim(arr: string[]): string[] {\n let start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') {\n break;\n }\n }\n\n let end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') {\n break;\n }\n }\n\n if (start > end) {\n return [];\n }\n return arr.slice(start, end - start + 1);\n}\n\n// path.relative(from, to)\n// posix version\n/** JSDoc */\nexport function relative(from: string, to: string): string {\n /* eslint-disable no-param-reassign */\n from = resolve(from).slice(1);\n to = resolve(to).slice(1);\n /* eslint-enable no-param-reassign */\n\n const fromParts = trim(from.split('/'));\n const toParts = trim(to.split('/'));\n\n const length = Math.min(fromParts.length, toParts.length);\n let samePartsLength = length;\n for (let i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n let outputParts = [];\n for (let i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n}\n\n// path.normalize(path)\n// posix version\n/** JSDoc */\nexport function normalizePath(path: string): string {\n const isPathAbsolute = isAbsolute(path);\n const trailingSlash = path.slice(-1) === '/';\n\n // Normalize the path\n let normalizedPath = normalizeArray(\n path.split('/').filter(p => !!p),\n !isPathAbsolute,\n ).join('/');\n\n if (!normalizedPath && !isPathAbsolute) {\n normalizedPath = '.';\n }\n if (normalizedPath && trailingSlash) {\n normalizedPath += '/';\n }\n\n return (isPathAbsolute ? '/' : '') + normalizedPath;\n}\n\n// posix version\n/** JSDoc */\nexport function isAbsolute(path: string): boolean {\n return path.charAt(0) === '/';\n}\n\n// posix version\n/** JSDoc */\nexport function join(...args: string[]): string {\n return normalizePath(args.join('/'));\n}\n\n/** JSDoc */\nexport function dirname(path: string): string {\n const result = splitPath(path);\n const root = result[0] || '';\n let dir = result[1];\n\n if (!root && !dir) {\n // No dirname whatsoever\n return '.';\n }\n\n if (dir) {\n // It has a dirname, strip trailing slash\n dir = dir.slice(0, dir.length - 1);\n }\n\n return root + dir;\n}\n\n/** JSDoc */\nexport function basename(path: string, ext?: string): string {\n let f = splitPath(path)[2] || '';\n if (ext && f.slice(ext.length * -1) === ext) {\n f = f.slice(0, f.length - ext.length);\n }\n return f;\n}\n","import { defineIntegration } from '../integration';\nimport type { Event } from '../types-hoist/event';\nimport type { StackFrame } from '../types-hoist/stackframe';\nimport type { Stacktrace } from '../types-hoist/stacktrace';\nimport { basename, relative } from '../utils/path';\nimport { GLOBAL_OBJ } from '../utils/worldwide';\n\ntype StackFrameIteratee = (frame: StackFrame) => StackFrame;\n\nconst INTEGRATION_NAME = 'RewriteFrames';\n\ninterface RewriteFramesOptions {\n /**\n * Root path (the beginning of the path) that will be stripped from the frames' filename.\n *\n * This option has slightly different behaviour in the browser and on servers:\n * - In the browser, the value you provide in `root` will be stripped from the beginning stack frames' paths (if the path started with the value).\n * - On the server, the root value will only replace the beginning of stack frame filepaths, when the path is absolute. If no `root` value is provided and the path is absolute, the frame will be reduced to only the filename and the provided `prefix` option.\n *\n * Browser example:\n * - Original frame: `'http://example.com/my/path/static/asset.js'`\n * - `root: 'http://example.com/my/path'`\n * - `assetPrefix: 'app://'`\n * - Resulting frame: `'app:///static/asset.js'`\n *\n * Server example:\n * - Original frame: `'/User/local/my/path/static/asset.js'`\n * - `root: '/User/local/my/path'`\n * - `assetPrefix: 'app://'`\n * - Resulting frame: `'app:///static/asset.js'`\n */\n root?: string;\n\n /**\n * A custom prefix that stack frames will be prepended with.\n *\n * Default: `'app://'`\n *\n * This option has slightly different behaviour in the browser and on servers:\n * - In the browser, the value you provide in `prefix` will prefix the resulting filename when the value you provided in `root` was applied. Effectively replacing whatever `root` matched in the beginning of the frame with `prefix`.\n * - On the server, the prefix is applied to all stackframes with absolute paths. On Windows, the drive identifier (e.g. \"C://\") is replaced with the prefix.\n */\n prefix?: string;\n\n /**\n * Defines an iterator that is used to iterate through all of the stack frames for modification before being sent to Sentry.\n * Setting this option will effectively disable both the `root` and the `prefix` options.\n */\n iteratee?: StackFrameIteratee;\n}\n\n/**\n * Rewrite event frames paths.\n */\nexport const rewriteFramesIntegration = defineIntegration((options: RewriteFramesOptions = {}) => {\n const root = options.root;\n const prefix = options.prefix || 'app:///';\n\n const isBrowser = 'window' in GLOBAL_OBJ && !!GLOBAL_OBJ.window;\n\n const iteratee: StackFrameIteratee = options.iteratee || generateIteratee({ isBrowser, root, prefix });\n\n /** Process an exception event. */\n function _processExceptionsEvent(event: Event): Event {\n try {\n return {\n ...event,\n exception: {\n ...event.exception,\n // The check for this is performed inside `process` call itself, safe to skip here\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n values: event.exception!.values!.map(value => ({\n ...value,\n ...(value.stacktrace && { stacktrace: _processStacktrace(value.stacktrace) }),\n })),\n },\n };\n } catch {\n return event;\n }\n }\n\n /** Process a stack trace. */\n function _processStacktrace(stacktrace?: Stacktrace): Stacktrace {\n return {\n ...stacktrace,\n frames: stacktrace?.frames?.map(f => iteratee(f)),\n };\n }\n\n return {\n name: INTEGRATION_NAME,\n processEvent(originalEvent) {\n let processedEvent = originalEvent;\n\n if (originalEvent.exception && Array.isArray(originalEvent.exception.values)) {\n processedEvent = _processExceptionsEvent(processedEvent);\n }\n\n return processedEvent;\n },\n };\n});\n\n/**\n * Exported only for tests.\n */\nexport function generateIteratee({\n isBrowser,\n root,\n prefix,\n}: {\n isBrowser: boolean;\n root?: string;\n prefix: string;\n}): StackFrameIteratee {\n return (frame: StackFrame) => {\n if (!frame.filename) {\n return frame;\n }\n\n // Determine if this is a Windows frame by checking for a Windows-style prefix such as `C:\\`\n const isWindowsFrame =\n /^[a-zA-Z]:\\\\/.test(frame.filename) ||\n // or the presence of a backslash without a forward slash (which are not allowed on Windows)\n (frame.filename.includes('\\\\') && !frame.filename.includes('/'));\n\n // Check if the frame filename begins with `/`\n const startsWithSlash = /^\\//.test(frame.filename);\n\n if (isBrowser) {\n if (root) {\n const oldFilename = frame.filename;\n if (oldFilename.indexOf(root) === 0) {\n frame.filename = oldFilename.replace(root, prefix);\n }\n }\n } else {\n if (isWindowsFrame || startsWithSlash) {\n const filename = isWindowsFrame\n ? frame.filename\n .replace(/^[a-zA-Z]:/, '') // remove Windows-style prefix\n .replace(/\\\\/g, '/') // replace all `\\\\` instances with `/`\n : frame.filename;\n const base = root ? relative(root, filename) : basename(filename);\n frame.filename = `${prefix}${base}`;\n }\n }\n\n return frame;\n };\n}\n","// Based on Kamil Ogórek's work on:\n// https://github.com/supabase-community/sentry-integration-js\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable max-lines */\nimport { addBreadcrumb } from '../breadcrumbs';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { captureException } from '../exports';\nimport { defineIntegration } from '../integration';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../semanticAttributes';\nimport { setHttpStatus, SPAN_STATUS_ERROR, SPAN_STATUS_OK, startSpan } from '../tracing';\nimport type { IntegrationFn } from '../types-hoist/integration';\nimport { debug } from '../utils/debug-logger';\nimport { isPlainObject } from '../utils/is';\nimport { addExceptionMechanism } from '../utils/misc';\n\nconst AUTH_OPERATIONS_TO_INSTRUMENT = [\n 'reauthenticate',\n 'signInAnonymously',\n 'signInWithOAuth',\n 'signInWithIdToken',\n 'signInWithOtp',\n 'signInWithPassword',\n 'signInWithSSO',\n 'signOut',\n 'signUp',\n 'verifyOtp',\n];\n\nconst AUTH_ADMIN_OPERATIONS_TO_INSTRUMENT = [\n 'createUser',\n 'deleteUser',\n 'listUsers',\n 'getUserById',\n 'updateUserById',\n 'inviteUserByEmail',\n];\n\nexport const FILTER_MAPPINGS = {\n eq: 'eq',\n neq: 'neq',\n gt: 'gt',\n gte: 'gte',\n lt: 'lt',\n lte: 'lte',\n like: 'like',\n 'like(all)': 'likeAllOf',\n 'like(any)': 'likeAnyOf',\n ilike: 'ilike',\n 'ilike(all)': 'ilikeAllOf',\n 'ilike(any)': 'ilikeAnyOf',\n is: 'is',\n in: 'in',\n cs: 'contains',\n cd: 'containedBy',\n sr: 'rangeGt',\n nxl: 'rangeGte',\n sl: 'rangeLt',\n nxr: 'rangeLte',\n adj: 'rangeAdjacent',\n ov: 'overlaps',\n fts: '',\n plfts: 'plain',\n phfts: 'phrase',\n wfts: 'websearch',\n not: 'not',\n};\n\nexport const DB_OPERATIONS_TO_INSTRUMENT = ['select', 'insert', 'upsert', 'update', 'delete'];\n\ntype AuthOperationFn = (...args: unknown[]) => Promise;\ntype AuthOperationName = (typeof AUTH_OPERATIONS_TO_INSTRUMENT)[number];\ntype AuthAdminOperationName = (typeof AUTH_ADMIN_OPERATIONS_TO_INSTRUMENT)[number];\ntype PostgRESTQueryOperationFn = (...args: unknown[]) => PostgRESTFilterBuilder;\n\nexport interface SupabaseClientInstance {\n auth: {\n admin: Record;\n } & Record;\n}\n\nexport interface PostgRESTQueryBuilder {\n [key: string]: PostgRESTQueryOperationFn;\n}\n\nexport interface PostgRESTFilterBuilder {\n method: string;\n headers: Record;\n url: URL;\n schema: string;\n body: any;\n}\n\nexport interface SupabaseResponse {\n status?: number;\n error?: {\n message: string;\n code?: string;\n details?: unknown;\n };\n}\n\nexport interface SupabaseError extends Error {\n code?: string;\n details?: unknown;\n}\n\nexport interface SupabaseBreadcrumb {\n type: string;\n category: string;\n message: string;\n data?: {\n query?: string[];\n body?: Record;\n };\n}\n\nexport interface SupabaseClientConstructor {\n prototype: {\n from: (table: string) => PostgRESTQueryBuilder;\n };\n}\n\nexport interface PostgRESTProtoThenable {\n then: (\n onfulfilled?: ((value: T) => T | PromiseLike) | null,\n onrejected?: ((reason: any) => T | PromiseLike) | null,\n ) => Promise;\n}\n\ntype SentryInstrumented = T & {\n __SENTRY_INSTRUMENTED__?: boolean;\n};\n\nfunction markAsInstrumented(fn: T): void {\n try {\n (fn as SentryInstrumented).__SENTRY_INSTRUMENTED__ = true;\n } catch {\n // ignore errors here\n }\n}\n\nfunction isInstrumented(fn: T): boolean | undefined {\n try {\n return (fn as SentryInstrumented).__SENTRY_INSTRUMENTED__;\n } catch {\n return false;\n }\n}\n\n/**\n * Extracts the database operation type from the HTTP method and headers\n * @param method - The HTTP method of the request\n * @param headers - The request headers\n * @returns The database operation type ('select', 'insert', 'upsert', 'update', or 'delete')\n */\nexport function extractOperation(method: string, headers: Record = {}): string {\n switch (method) {\n case 'GET': {\n return 'select';\n }\n case 'POST': {\n if (headers['Prefer']?.includes('resolution=')) {\n return 'upsert';\n } else {\n return 'insert';\n }\n }\n case 'PATCH': {\n return 'update';\n }\n case 'DELETE': {\n return 'delete';\n }\n default: {\n return '';\n }\n }\n}\n\n/**\n * Translates Supabase filter parameters into readable method names for tracing\n * @param key - The filter key from the URL search parameters\n * @param query - The filter value from the URL search parameters\n * @returns A string representation of the filter as a method call\n */\nexport function translateFiltersIntoMethods(key: string, query: string): string {\n if (query === '' || query === '*') {\n return 'select(*)';\n }\n\n if (key === 'select') {\n return `select(${query})`;\n }\n\n if (key === 'or' || key.endsWith('.or')) {\n return `${key}${query}`;\n }\n\n const [filter, ...value] = query.split('.');\n\n let method;\n // Handle optional `configPart` of the filter\n if (filter?.startsWith('fts')) {\n method = 'textSearch';\n } else if (filter?.startsWith('plfts')) {\n method = 'textSearch[plain]';\n } else if (filter?.startsWith('phfts')) {\n method = 'textSearch[phrase]';\n } else if (filter?.startsWith('wfts')) {\n method = 'textSearch[websearch]';\n } else {\n method = (filter && FILTER_MAPPINGS[filter as keyof typeof FILTER_MAPPINGS]) || 'filter';\n }\n\n return `${method}(${key}, ${value.join('.')})`;\n}\n\nfunction instrumentAuthOperation(operation: AuthOperationFn, isAdmin = false): AuthOperationFn {\n return new Proxy(operation, {\n apply(target, thisArg, argumentsList) {\n return startSpan(\n {\n name: `auth ${isAdmin ? '(admin) ' : ''}${operation.name}`,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.db.supabase',\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'db',\n 'db.system': 'postgresql',\n 'db.operation': `auth.${isAdmin ? 'admin.' : ''}${operation.name}`,\n },\n },\n span => {\n return Reflect.apply(target, thisArg, argumentsList)\n .then((res: unknown) => {\n if (res && typeof res === 'object' && 'error' in res && res.error) {\n span.setStatus({ code: SPAN_STATUS_ERROR });\n\n captureException(res.error, {\n mechanism: {\n handled: false,\n type: 'auto.db.supabase.auth',\n },\n });\n } else {\n span.setStatus({ code: SPAN_STATUS_OK });\n }\n\n span.end();\n return res;\n })\n .catch((err: unknown) => {\n span.setStatus({ code: SPAN_STATUS_ERROR });\n span.end();\n\n captureException(err, {\n mechanism: {\n handled: false,\n type: 'auto.db.supabase.auth',\n },\n });\n\n throw err;\n })\n .then(...argumentsList);\n },\n );\n },\n });\n}\n\nfunction instrumentSupabaseAuthClient(supabaseClientInstance: SupabaseClientInstance): void {\n const auth = supabaseClientInstance.auth;\n\n if (!auth || isInstrumented(supabaseClientInstance.auth)) {\n return;\n }\n\n for (const operation of AUTH_OPERATIONS_TO_INSTRUMENT) {\n const authOperation = auth[operation];\n\n if (!authOperation) {\n continue;\n }\n\n if (typeof supabaseClientInstance.auth[operation] === 'function') {\n supabaseClientInstance.auth[operation] = instrumentAuthOperation(authOperation);\n }\n }\n\n for (const operation of AUTH_ADMIN_OPERATIONS_TO_INSTRUMENT) {\n const authOperation = auth.admin[operation];\n\n if (!authOperation) {\n continue;\n }\n\n if (typeof supabaseClientInstance.auth.admin[operation] === 'function') {\n supabaseClientInstance.auth.admin[operation] = instrumentAuthOperation(authOperation, true);\n }\n }\n\n markAsInstrumented(supabaseClientInstance.auth);\n}\n\nfunction instrumentSupabaseClientConstructor(SupabaseClient: unknown): void {\n if (isInstrumented((SupabaseClient as SupabaseClientConstructor).prototype.from)) {\n return;\n }\n\n (SupabaseClient as SupabaseClientConstructor).prototype.from = new Proxy(\n (SupabaseClient as SupabaseClientConstructor).prototype.from,\n {\n apply(target, thisArg, argumentsList) {\n const rv = Reflect.apply(target, thisArg, argumentsList);\n const PostgRESTQueryBuilder = (rv as PostgRESTQueryBuilder).constructor;\n\n instrumentPostgRESTQueryBuilder(PostgRESTQueryBuilder as unknown as new () => PostgRESTQueryBuilder);\n\n return rv;\n },\n },\n );\n\n markAsInstrumented((SupabaseClient as SupabaseClientConstructor).prototype.from);\n}\n\nfunction instrumentPostgRESTFilterBuilder(PostgRESTFilterBuilder: PostgRESTFilterBuilder['constructor']): void {\n if (isInstrumented((PostgRESTFilterBuilder.prototype as unknown as PostgRESTProtoThenable).then)) {\n return;\n }\n\n (PostgRESTFilterBuilder.prototype as unknown as PostgRESTProtoThenable).then = new Proxy(\n (PostgRESTFilterBuilder.prototype as unknown as PostgRESTProtoThenable).then,\n {\n apply(target, thisArg, argumentsList) {\n const operations = DB_OPERATIONS_TO_INSTRUMENT;\n const typedThis = thisArg as PostgRESTFilterBuilder;\n const operation = extractOperation(typedThis.method, typedThis.headers);\n\n if (!operations.includes(operation)) {\n return Reflect.apply(target, thisArg, argumentsList);\n }\n\n if (!typedThis?.url?.pathname || typeof typedThis.url.pathname !== 'string') {\n return Reflect.apply(target, thisArg, argumentsList);\n }\n\n const pathParts = typedThis.url.pathname.split('/');\n const table = pathParts.length > 0 ? pathParts[pathParts.length - 1] : '';\n\n const queryItems: string[] = [];\n for (const [key, value] of typedThis.url.searchParams.entries()) {\n // It's possible to have multiple entries for the same key, eg. `id=eq.7&id=eq.3`,\n // so we need to use array instead of object to collect them.\n queryItems.push(translateFiltersIntoMethods(key, value));\n }\n const body: Record = Object.create(null);\n if (isPlainObject(typedThis.body)) {\n for (const [key, value] of Object.entries(typedThis.body)) {\n body[key] = value;\n }\n }\n\n // Adding operation to the beginning of the description if it's not a `select` operation\n // For example, it can be an `insert` or `update` operation but the query can be `select(...)`\n // For `select` operations, we don't need repeat it in the description\n const description = `${operation === 'select' ? '' : `${operation}${body ? '(...) ' : ''}`}${queryItems.join(\n ' ',\n )} from(${table})`;\n\n const attributes: Record = {\n 'db.table': table,\n 'db.schema': typedThis.schema,\n 'db.url': typedThis.url.origin,\n 'db.sdk': typedThis.headers['X-Client-Info'],\n 'db.system': 'postgresql',\n 'db.operation': operation,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.db.supabase',\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'db',\n };\n\n if (queryItems.length) {\n attributes['db.query'] = queryItems;\n }\n\n if (Object.keys(body).length) {\n attributes['db.body'] = body;\n }\n\n return startSpan(\n {\n name: description,\n attributes,\n },\n span => {\n return (Reflect.apply(target, thisArg, []) as Promise)\n .then(\n (res: SupabaseResponse) => {\n if (span) {\n if (res && typeof res === 'object' && 'status' in res) {\n setHttpStatus(span, res.status || 500);\n }\n span.end();\n }\n\n if (res?.error) {\n const err = new Error(res.error.message) as SupabaseError;\n if (res.error.code) {\n err.code = res.error.code;\n }\n if (res.error.details) {\n err.details = res.error.details;\n }\n\n const supabaseContext: Record = {};\n if (queryItems.length) {\n supabaseContext.query = queryItems;\n }\n if (Object.keys(body).length) {\n supabaseContext.body = body;\n }\n\n captureException(err, scope => {\n scope.addEventProcessor(e => {\n addExceptionMechanism(e, {\n handled: false,\n type: 'auto.db.supabase.postgres',\n });\n\n return e;\n });\n\n scope.setContext('supabase', supabaseContext);\n\n return scope;\n });\n }\n\n const breadcrumb: SupabaseBreadcrumb = {\n type: 'supabase',\n category: `db.${operation}`,\n message: description,\n };\n\n const data: Record = {};\n\n if (queryItems.length) {\n data.query = queryItems;\n }\n\n if (Object.keys(body).length) {\n data.body = body;\n }\n\n if (Object.keys(data).length) {\n breadcrumb.data = data;\n }\n\n addBreadcrumb(breadcrumb);\n\n return res;\n },\n (err: Error) => {\n // TODO: shouldn't we capture this error?\n if (span) {\n setHttpStatus(span, 500);\n span.end();\n }\n throw err;\n },\n )\n .then(...argumentsList);\n },\n );\n },\n },\n );\n\n markAsInstrumented((PostgRESTFilterBuilder.prototype as unknown as PostgRESTProtoThenable).then);\n}\n\nfunction instrumentPostgRESTQueryBuilder(PostgRESTQueryBuilder: new () => PostgRESTQueryBuilder): void {\n // We need to wrap _all_ operations despite them sharing the same `PostgRESTFilterBuilder`\n // constructor, as we don't know which method will be called first, and we don't want to miss any calls.\n for (const operation of DB_OPERATIONS_TO_INSTRUMENT) {\n if (isInstrumented((PostgRESTQueryBuilder.prototype as Record)[operation])) {\n continue;\n }\n\n type PostgRESTOperation = keyof Pick;\n (PostgRESTQueryBuilder.prototype as Record)[operation as PostgRESTOperation] = new Proxy(\n (PostgRESTQueryBuilder.prototype as Record)[operation as PostgRESTOperation],\n {\n apply(target, thisArg, argumentsList) {\n const rv = Reflect.apply(target, thisArg, argumentsList);\n const PostgRESTFilterBuilder = (rv as PostgRESTFilterBuilder).constructor;\n\n DEBUG_BUILD && debug.log(`Instrumenting ${operation} operation's PostgRESTFilterBuilder`);\n\n instrumentPostgRESTFilterBuilder(PostgRESTFilterBuilder);\n\n return rv;\n },\n },\n );\n\n markAsInstrumented((PostgRESTQueryBuilder.prototype as Record)[operation]);\n }\n}\n\nexport const instrumentSupabaseClient = (supabaseClient: unknown): void => {\n if (!supabaseClient) {\n DEBUG_BUILD && debug.warn('Supabase integration was not installed because no Supabase client was provided.');\n return;\n }\n const SupabaseClientConstructor =\n supabaseClient.constructor === Function ? supabaseClient : supabaseClient.constructor;\n\n instrumentSupabaseClientConstructor(SupabaseClientConstructor);\n instrumentSupabaseAuthClient(supabaseClient as SupabaseClientInstance);\n};\n\nconst INTEGRATION_NAME = 'Supabase';\n\nconst _supabaseIntegration = ((supabaseClient: unknown) => {\n return {\n setupOnce() {\n instrumentSupabaseClient(supabaseClient);\n },\n name: INTEGRATION_NAME,\n };\n}) satisfies IntegrationFn;\n\nexport const supabaseIntegration = defineIntegration((options: { supabaseClient: any }) => {\n return _supabaseIntegration(options.supabaseClient);\n}) satisfies IntegrationFn;\n","// Portable instrumentation for https://github.com/porsager/postgres\n// This can be used in any environment (Node.js, Cloudflare Workers, etc.)\n// without depending on OpenTelemetry module hooking.\n\nimport { DEBUG_BUILD } from '../debug-build';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../semanticAttributes';\nimport { SPAN_STATUS_ERROR, startSpanManual } from '../tracing';\nimport type { Span } from '../types-hoist/span';\nimport { debug } from '../utils/debug-logger';\nimport { getActiveSpan } from '../utils/spanUtils';\n\nconst SQL_OPERATION_REGEX = /^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i;\n\ntype PostgresConnectionContext = {\n ATTR_DB_NAMESPACE?: string;\n ATTR_SERVER_ADDRESS?: string;\n ATTR_SERVER_PORT?: string;\n};\n\ninterface PostgresJsSqlInstrumentationOptions {\n /**\n * Whether to require a parent span for the instrumentation.\n * If set to true, the instrumentation will only create spans if there is a parent span\n * available in the current scope.\n * @default true\n */\n requireParentSpan?: boolean;\n /**\n * Hook to modify the span before it is started.\n * This can be used to set additional attributes or modify the span in any way.\n */\n requestHook?: (span: Span, sanitizedSqlQuery: string, postgresConnectionContext?: PostgresConnectionContext) => void;\n}\n\nconst CONNECTION_CONTEXT_SYMBOL = Symbol('sentryPostgresConnectionContext');\n\n// Use the same Symbol.for() markers as the Node.js OTel instrumentation\n// so that both approaches recognize each other and prevent double-wrapping.\nconst INSTRUMENTED_MARKER = Symbol.for('sentry.instrumented.postgresjs');\n// Marker to track if a query was created from an instrumented sql instance.\n// This prevents double-spanning when both the wrapper and the Node.js Query.prototype\n// fallback patch are active simultaneously.\nconst QUERY_FROM_INSTRUMENTED_SQL = Symbol.for('sentry.query.from.instrumented.sql');\n\n/**\n * Instruments a postgres.js `sql` instance with Sentry tracing.\n *\n * This is a portable instrumentation function that works in any environment\n * (Node.js, Cloudflare Workers, etc.) without depending on OpenTelemetry.\n *\n * @example\n * ```javascript\n * import postgres from 'postgres';\n * import * as Sentry from '@sentry/cloudflare'; // or '@sentry/deno'\n *\n * const sql = Sentry.instrumentPostgresJsSql(\n * postgres({ host: 'localhost', database: 'mydb' })\n * );\n *\n * // All queries now create Sentry spans\n * await sql`SELECT * FROM users WHERE id = ${userId}`;\n * ```\n */\nexport function instrumentPostgresJsSql(sql: T, options?: PostgresJsSqlInstrumentationOptions): T {\n if (!sql || typeof sql !== 'function') {\n DEBUG_BUILD && debug.warn('instrumentPostgresJsSql: provided value is not a valid postgres.js sql instance');\n return sql;\n }\n\n return _instrumentSqlInstance(sql, { requireParentSpan: true, ...options }) as T;\n}\n\n/**\n * Instruments a sql instance by wrapping its query execution methods.\n */\nfunction _instrumentSqlInstance(\n sql: unknown,\n options: PostgresJsSqlInstrumentationOptions,\n parentConnectionContext?: PostgresConnectionContext,\n): unknown {\n // Check if already instrumented to prevent double-wrapping\n // Using Symbol.for() ensures the marker survives proxying\n if ((sql as Record)[INSTRUMENTED_MARKER]) {\n return sql;\n }\n\n // Wrap the sql function to intercept query creation\n const proxiedSql: unknown = new Proxy(sql as (...args: unknown[]) => unknown, {\n apply(target, thisArg, argumentsList: unknown[]) {\n const query = Reflect.apply(target, thisArg, argumentsList);\n\n if (query && typeof query === 'object' && 'handle' in query) {\n _wrapSingleQueryHandle(query as { handle: unknown; strings?: string[] }, proxiedSql, options);\n }\n\n return query;\n },\n get(target, prop) {\n const original = (target as unknown as Record)[prop];\n\n if (typeof prop !== 'string' || typeof original !== 'function') {\n return original;\n }\n\n // Wrap methods that return PendingQuery objects (unsafe, file)\n if (prop === 'unsafe' || prop === 'file') {\n return _wrapQueryMethod(original as (...args: unknown[]) => unknown, target, proxiedSql, options);\n }\n\n // Wrap begin and reserve (not savepoint to avoid duplicate spans)\n if (prop === 'begin' || prop === 'reserve') {\n return _wrapCallbackMethod(original as (...args: unknown[]) => unknown, target, proxiedSql, options);\n }\n\n return original;\n },\n });\n\n // Use provided parent context if available, otherwise extract from sql.options\n if (parentConnectionContext) {\n (proxiedSql as Record)[CONNECTION_CONTEXT_SYMBOL] = parentConnectionContext;\n } else {\n _attachConnectionContext(sql, proxiedSql as Record);\n }\n\n // Mark both the original and proxy as instrumented to prevent double-wrapping\n (sql as Record)[INSTRUMENTED_MARKER] = true;\n (proxiedSql as Record)[INSTRUMENTED_MARKER] = true;\n\n return proxiedSql;\n}\n\n/**\n * Wraps query-returning methods (unsafe, file) to ensure their queries are instrumented.\n */\nfunction _wrapQueryMethod(\n original: (...args: unknown[]) => unknown,\n target: unknown,\n proxiedSql: unknown,\n options: PostgresJsSqlInstrumentationOptions,\n): (...args: unknown[]) => unknown {\n return function (this: unknown, ...args: unknown[]): unknown {\n const query = Reflect.apply(original, target, args);\n\n if (query && typeof query === 'object' && 'handle' in query) {\n _wrapSingleQueryHandle(query as { handle: unknown; strings?: string[] }, proxiedSql, options);\n }\n\n return query;\n };\n}\n\n/**\n * Wraps callback-based methods (begin, reserve) to recursively instrument Sql instances.\n * Note: These methods can also be used as tagged templates, which we pass through unchanged.\n *\n * Savepoint is not wrapped to avoid complex nested transaction instrumentation issues.\n * Queries within savepoint callbacks are still instrumented through the parent transaction's Sql instance.\n */\nfunction _wrapCallbackMethod(\n original: (...args: unknown[]) => unknown,\n target: unknown,\n parentSqlInstance: unknown,\n options: PostgresJsSqlInstrumentationOptions,\n): (...args: unknown[]) => unknown {\n return function (this: unknown, ...args: unknown[]): unknown {\n // Extract parent context to propagate to child instances\n const parentContext = (parentSqlInstance as Record)[CONNECTION_CONTEXT_SYMBOL] as\n | PostgresConnectionContext\n | undefined;\n\n // Check if this is a callback-based call by verifying the last argument is a function\n const isCallbackBased = typeof args[args.length - 1] === 'function';\n\n if (!isCallbackBased) {\n // Not a callback-based call - could be tagged template or promise-based\n const result = Reflect.apply(original, target, args);\n // If result is a Promise (e.g., reserve() without callback), instrument the resolved Sql instance\n if (result && typeof (result as Promise).then === 'function') {\n return (result as Promise).then((sqlInstance: unknown) => {\n return _instrumentSqlInstance(sqlInstance, options, parentContext);\n });\n }\n return result;\n }\n\n // Callback-based call: wrap the callback to instrument the Sql instance\n const callback = (args.length === 1 ? args[0] : args[1]) as (sql: unknown) => unknown;\n const wrappedCallback = function (sqlInstance: unknown): unknown {\n const instrumentedSql = _instrumentSqlInstance(sqlInstance, options, parentContext);\n return callback(instrumentedSql);\n };\n\n const newArgs = args.length === 1 ? [wrappedCallback] : [args[0], wrappedCallback];\n return Reflect.apply(original, target, newArgs);\n };\n}\n\n/**\n * Wraps a single query's handle method to create spans.\n */\nfunction _wrapSingleQueryHandle(\n query: { handle: unknown; strings?: string[]; __sentryWrapped?: boolean },\n sqlInstance: unknown,\n options: PostgresJsSqlInstrumentationOptions,\n): void {\n // Prevent double wrapping - check if the handle itself is already wrapped\n if ((query.handle as { __sentryWrapped?: boolean })?.__sentryWrapped) {\n return;\n }\n\n // Mark this query as coming from an instrumented sql instance.\n // This prevents the Node.js Query.prototype fallback patch from double-spanning.\n (query as Record)[QUERY_FROM_INSTRUMENTED_SQL] = true;\n\n const originalHandle = query.handle as (...args: unknown[]) => Promise;\n\n // IMPORTANT: We must replace the handle function directly, not use a Proxy,\n // because Query.then() internally calls this.handle(), which would bypass a Proxy wrapper.\n const wrappedHandle = async function (this: unknown, ...args: unknown[]): Promise {\n if (!_shouldCreateSpans(options)) {\n return originalHandle.apply(this, args);\n }\n\n const fullQuery = _reconstructQuery(query.strings);\n const sanitizedSqlQuery = _sanitizeSqlQuery(fullQuery);\n\n return startSpanManual(\n {\n name: sanitizedSqlQuery || 'postgresjs.query',\n op: 'db',\n },\n (span: Span) => {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, 'auto.db.postgresjs');\n\n span.setAttributes({\n 'db.system.name': 'postgres',\n 'db.query.text': sanitizedSqlQuery,\n });\n\n const connectionContext = sqlInstance\n ? ((sqlInstance as Record)[CONNECTION_CONTEXT_SYMBOL] as\n | PostgresConnectionContext\n | undefined)\n : undefined;\n\n _setConnectionAttributes(span, connectionContext);\n\n if (options.requestHook) {\n try {\n options.requestHook(span, sanitizedSqlQuery, connectionContext);\n } catch (e) {\n span.setAttribute('sentry.hook.error', 'requestHook failed');\n DEBUG_BUILD && debug.error('Error in requestHook for PostgresJs instrumentation:', e);\n }\n }\n\n const queryWithCallbacks = this as {\n resolve: unknown;\n reject: unknown;\n };\n\n queryWithCallbacks.resolve = new Proxy(queryWithCallbacks.resolve as (...args: unknown[]) => unknown, {\n apply: (resolveTarget, resolveThisArg, resolveArgs: [{ command?: string }]) => {\n try {\n _setOperationName(span, sanitizedSqlQuery, resolveArgs?.[0]?.command);\n span.end();\n } catch (e) {\n DEBUG_BUILD && debug.error('Error ending span in resolve callback:', e);\n }\n\n return Reflect.apply(resolveTarget, resolveThisArg, resolveArgs);\n },\n });\n\n queryWithCallbacks.reject = new Proxy(queryWithCallbacks.reject as (...args: unknown[]) => unknown, {\n apply: (rejectTarget, rejectThisArg, rejectArgs: { message?: string; code?: string; name?: string }[]) => {\n try {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: rejectArgs?.[0]?.message || 'unknown_error',\n });\n\n span.setAttribute('db.response.status_code', rejectArgs?.[0]?.code || 'unknown');\n span.setAttribute('error.type', rejectArgs?.[0]?.name || 'unknown');\n\n _setOperationName(span, sanitizedSqlQuery);\n span.end();\n } catch (e) {\n DEBUG_BUILD && debug.error('Error ending span in reject callback:', e);\n }\n return Reflect.apply(rejectTarget, rejectThisArg, rejectArgs);\n },\n });\n\n // Handle synchronous errors that might occur before promise is created\n try {\n return originalHandle.apply(this, args);\n } catch (e) {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: e instanceof Error ? e.message : 'unknown_error',\n });\n span.end();\n throw e;\n }\n },\n );\n };\n\n (wrappedHandle as { __sentryWrapped?: boolean }).__sentryWrapped = true;\n query.handle = wrappedHandle;\n}\n\n/**\n * Determines whether a span should be created based on the current context.\n * If `requireParentSpan` is set to true in the options, a span will\n * only be created if there is a parent span available.\n */\nfunction _shouldCreateSpans(options: PostgresJsSqlInstrumentationOptions): boolean {\n const hasParentSpan = getActiveSpan() !== undefined;\n return hasParentSpan || !options.requireParentSpan;\n}\n\n/**\n * Reconstructs the full SQL query from template strings with PostgreSQL placeholders.\n *\n * For sql`SELECT * FROM users WHERE id = ${123} AND name = ${'foo'}`:\n * strings = [\"SELECT * FROM users WHERE id = \", \" AND name = \", \"\"]\n * returns: \"SELECT * FROM users WHERE id = $1 AND name = $2\"\n *\n * @internal Exported for testing only\n */\nexport function _reconstructQuery(strings: string[] | undefined): string | undefined {\n if (!strings?.length) {\n return undefined;\n }\n if (strings.length === 1) {\n return strings[0] || undefined;\n }\n // Join template parts with PostgreSQL placeholders ($1, $2, etc.)\n return strings.reduce((acc, str, i) => (i === 0 ? str : `${acc}$${i}${str}`), '');\n}\n\n/**\n * Sanitize SQL query as per the OTEL semantic conventions\n * https://opentelemetry.io/docs/specs/semconv/database/database-spans/#sanitization-of-dbquerytext\n *\n * PostgreSQL $n placeholders are preserved per OTEL spec - they're parameterized queries,\n * not sensitive literals. Only actual values (strings, numbers, booleans) are sanitized.\n *\n * @internal Exported for testing only\n */\nexport function _sanitizeSqlQuery(sqlQuery: string | undefined): string {\n if (!sqlQuery) {\n return 'Unknown SQL Query';\n }\n\n return (\n sqlQuery\n // Remove comments first (they may contain newlines and extra spaces)\n .replace(/--.*$/gm, '') // Single line comments (multiline mode)\n .replace(/\\/\\*[\\s\\S]*?\\*\\//g, '') // Multi-line comments\n .replace(/;\\s*$/, '') // Remove trailing semicolons\n // Collapse whitespace to a single space (after removing comments)\n .replace(/\\s+/g, ' ')\n .trim() // Remove extra spaces and trim\n // Sanitize hex/binary literals before string literals\n .replace(/\\bX'[0-9A-Fa-f]*'/gi, '?') // Hex string literals\n .replace(/\\bB'[01]*'/gi, '?') // Binary string literals\n // Sanitize string literals (handles escaped quotes)\n .replace(/'(?:[^']|'')*'/g, '?')\n // Sanitize hex numbers\n .replace(/\\b0x[0-9A-Fa-f]+/gi, '?')\n // Sanitize boolean literals\n .replace(/\\b(?:TRUE|FALSE)\\b/gi, '?')\n // Sanitize numeric literals (preserve $n placeholders via negative lookbehind)\n .replace(/-?\\b\\d+\\.?\\d*[eE][+-]?\\d+\\b/g, '?') // Scientific notation\n .replace(/-?\\b\\d+\\.\\d+\\b/g, '?') // Decimals\n .replace(/-?\\.\\d+\\b/g, '?') // Decimals starting with dot\n .replace(/(?): void {\n const sqlInstance = sql as { options?: { host?: string[]; port?: number[]; database?: string } };\n if (!sqlInstance.options || typeof sqlInstance.options !== 'object') {\n return;\n }\n\n const opts = sqlInstance.options;\n // postgres.js stores parsed options with host and port as arrays\n // The library defaults to 'localhost' and 5432 if not specified, but we're defensive here\n const host = opts.host?.[0] || 'localhost';\n const port = opts.port?.[0] || 5432;\n\n const connectionContext: PostgresConnectionContext = {\n ATTR_DB_NAMESPACE: typeof opts.database === 'string' && opts.database !== '' ? opts.database : undefined,\n ATTR_SERVER_ADDRESS: host,\n ATTR_SERVER_PORT: String(port),\n };\n\n proxiedSql[CONNECTION_CONTEXT_SYMBOL] = connectionContext;\n}\n","import { defineIntegration } from '../integration';\nimport type { Event, EventHint } from '../types-hoist/event';\nimport type { IntegrationFn } from '../types-hoist/integration';\nimport { isError } from '../utils/is';\nimport { truncate } from '../utils/string';\n\ninterface ZodErrorsOptions {\n key?: string;\n /**\n * Limits the number of Zod errors inlined in each Sentry event.\n *\n * @default 10\n */\n limit?: number;\n /**\n * Save full list of Zod issues as an attachment in Sentry\n *\n * @default false\n */\n saveZodIssuesAsAttachment?: boolean;\n}\n\nconst DEFAULT_LIMIT = 10;\nconst INTEGRATION_NAME = 'ZodErrors';\n\n/**\n * Simplified ZodIssue type definition\n */\ninterface ZodIssue {\n path: (string | number)[];\n message?: string;\n expected?: unknown;\n received?: unknown;\n unionErrors?: unknown[];\n keys?: unknown[];\n invalid_literal?: unknown;\n}\n\ninterface ZodError extends Error {\n issues: ZodIssue[];\n}\n\nfunction originalExceptionIsZodError(originalException: unknown): originalException is ZodError {\n return (\n isError(originalException) &&\n originalException.name === 'ZodError' &&\n Array.isArray((originalException as ZodError).issues)\n );\n}\n\ntype SingleLevelZodIssue = {\n [P in keyof T]: T[P] extends string | number | undefined\n ? T[P]\n : T[P] extends unknown[]\n ? string | undefined\n : unknown;\n};\n\n/**\n * Formats child objects or arrays to a string\n * that is preserved when sent to Sentry.\n *\n * Without this, we end up with something like this in Sentry:\n *\n * [\n * [Object],\n * [Object],\n * [Object],\n * [Object]\n * ]\n */\nexport function flattenIssue(issue: ZodIssue): SingleLevelZodIssue {\n return {\n ...issue,\n path: 'path' in issue && Array.isArray(issue.path) ? issue.path.join('.') : undefined,\n keys: 'keys' in issue ? JSON.stringify(issue.keys) : undefined,\n unionErrors: 'unionErrors' in issue ? JSON.stringify(issue.unionErrors) : undefined,\n };\n}\n\n/**\n * Takes ZodError issue path array and returns a flattened version as a string.\n * This makes it easier to display paths within a Sentry error message.\n *\n * Array indexes are normalized to reduce duplicate entries\n *\n * @param path ZodError issue path\n * @returns flattened path\n *\n * @example\n * flattenIssuePath([0, 'foo', 1, 'bar']) // -> '.foo..bar'\n */\nexport function flattenIssuePath(path: Array): string {\n return path\n .map(p => {\n if (typeof p === 'number') {\n return '';\n } else {\n return p;\n }\n })\n .join('.');\n}\n\n/**\n * Zod error message is a stringified version of ZodError.issues\n * This doesn't display well in the Sentry UI. Replace it with something shorter.\n */\nexport function formatIssueMessage(zodError: ZodError): string {\n const errorKeyMap = new Set();\n for (const iss of zodError.issues) {\n const issuePath = flattenIssuePath(iss.path);\n if (issuePath.length > 0) {\n errorKeyMap.add(issuePath);\n }\n }\n\n const errorKeys = Array.from(errorKeyMap);\n if (errorKeys.length === 0) {\n // If there are no keys, then we're likely validating the root\n // variable rather than a key within an object. This attempts\n // to extract what type it was that failed to validate.\n // For example, z.string().parse(123) would return \"string\" here.\n let rootExpectedType = 'variable';\n if (zodError.issues.length > 0) {\n const iss = zodError.issues[0];\n if (iss !== undefined && 'expected' in iss && typeof iss.expected === 'string') {\n rootExpectedType = iss.expected;\n }\n }\n return `Failed to validate ${rootExpectedType}`;\n }\n return `Failed to validate keys: ${truncate(errorKeys.join(', '), 100)}`;\n}\n\n/**\n * Applies ZodError issues to an event extra and replaces the error message\n */\nexport function applyZodErrorsToEvent(\n limit: number,\n saveZodIssuesAsAttachment: boolean = false,\n event: Event,\n hint: EventHint,\n): Event {\n if (\n !event.exception?.values ||\n !hint.originalException ||\n !originalExceptionIsZodError(hint.originalException) ||\n hint.originalException.issues.length === 0\n ) {\n return event;\n }\n\n try {\n const issuesToFlatten = saveZodIssuesAsAttachment\n ? hint.originalException.issues\n : hint.originalException.issues.slice(0, limit);\n const flattenedIssues = issuesToFlatten.map(flattenIssue);\n\n if (saveZodIssuesAsAttachment) {\n // Sometimes having the full error details can be helpful.\n // Attachments have much higher limits, so we can include the full list of issues.\n if (!Array.isArray(hint.attachments)) {\n hint.attachments = [];\n }\n hint.attachments.push({\n filename: 'zod_issues.json',\n data: JSON.stringify({\n issues: flattenedIssues,\n }),\n });\n }\n\n return {\n ...event,\n exception: {\n ...event.exception,\n values: [\n {\n ...event.exception.values[0],\n value: formatIssueMessage(hint.originalException),\n },\n ...event.exception.values.slice(1),\n ],\n },\n extra: {\n ...event.extra,\n 'zoderror.issues': flattenedIssues.slice(0, limit),\n },\n };\n } catch (e) {\n // Hopefully we never throw errors here, but record it\n // with the event just in case.\n return {\n ...event,\n extra: {\n ...event.extra,\n 'zoderrors sentry integration parse error': {\n message: 'an exception was thrown while processing ZodError within applyZodErrorsToEvent()',\n error: e instanceof Error ? `${e.name}: ${e.message}\\n${e.stack}` : 'unknown',\n },\n },\n };\n }\n}\n\nconst _zodErrorsIntegration = ((options: ZodErrorsOptions = {}) => {\n const limit = options.limit ?? DEFAULT_LIMIT;\n\n return {\n name: INTEGRATION_NAME,\n processEvent(originalEvent, hint): Event {\n const processedEvent = applyZodErrorsToEvent(limit, options.saveZodIssuesAsAttachment, originalEvent, hint);\n return processedEvent;\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Sentry integration to process Zod errors, making them easier to work with in Sentry.\n */\nexport const zodErrorsIntegration = defineIntegration(_zodErrorsIntegration);\n","import { defineIntegration } from '../integration';\nimport { addMetadataToStackFrames, stripMetadataFromStackFrames } from '../metadata';\nimport type { EventItem } from '../types-hoist/envelope';\nimport type { Event } from '../types-hoist/event';\nimport type { StackFrame } from '../types-hoist/stackframe';\nimport { forEachEnvelopeItem } from '../utils/envelope';\nimport { getFramesFromEvent } from '../utils/stacktrace';\n\ninterface Options {\n /**\n * Keys that have been provided in the Sentry bundler plugin via the the `applicationKey` option, identifying your bundles.\n *\n * - Webpack plugin: https://www.npmjs.com/package/@sentry/webpack-plugin#applicationkey\n * - Vite plugin: https://www.npmjs.com/package/@sentry/vite-plugin#applicationkey\n * - Esbuild plugin: https://www.npmjs.com/package/@sentry/esbuild-plugin#applicationkey\n * - Rollup plugin: https://www.npmjs.com/package/@sentry/rollup-plugin#applicationkey\n */\n filterKeys: string[];\n\n /**\n * Defines how the integration should behave. \"Third-Party Stack Frames\" are stack frames that did not come from files marked with a matching bundle key.\n *\n * You can define the behaviour with one of 4 modes:\n * - `drop-error-if-contains-third-party-frames`: Drop error events that contain at least one third-party stack frame.\n * - `drop-error-if-exclusively-contains-third-party-frames`: Drop error events that exclusively contain third-party stack frames.\n * - `apply-tag-if-contains-third-party-frames`: Keep all error events, but apply a `third_party_code: true` tag in case the error contains at least one third-party stack frame.\n * - `apply-tag-if-exclusively-contains-third-party-frames`: Keep all error events, but apply a `third_party_code: true` tag in case the error contains exclusively third-party stack frames.\n *\n * If you chose the mode to only apply tags, the tags can then be used in Sentry to filter your issue stream by entering `!third_party_code:True` in the search bar.\n */\n behaviour:\n | 'drop-error-if-contains-third-party-frames'\n | 'drop-error-if-exclusively-contains-third-party-frames'\n | 'apply-tag-if-contains-third-party-frames'\n | 'apply-tag-if-exclusively-contains-third-party-frames';\n\n /**\n * @experimental\n * If set to true, the integration will ignore frames that are internal to the Sentry SDK from the third-party frame detection.\n * Note that enabling this option might lead to errors being misclassified as third-party errors.\n */\n ignoreSentryInternalFrames?: boolean;\n}\n\n/**\n * This integration allows you to filter out, or tag error events that do not come from user code marked with a bundle key via the Sentry bundler plugins.\n */\nexport const thirdPartyErrorFilterIntegration = defineIntegration((options: Options) => {\n return {\n name: 'ThirdPartyErrorsFilter',\n setup(client) {\n // We need to strip metadata from stack frames before sending them to Sentry since these are client side only.\n client.on('beforeEnvelope', envelope => {\n forEachEnvelopeItem(envelope, (item, type) => {\n if (type === 'event') {\n const event = Array.isArray(item) ? (item as EventItem)[1] : undefined;\n\n if (event) {\n stripMetadataFromStackFrames(event);\n item[1] = event;\n }\n }\n });\n });\n\n client.on('applyFrameMetadata', event => {\n // Only apply stack frame metadata to error events\n if (event.type) {\n return;\n }\n\n const stackParser = client.getOptions().stackParser;\n addMetadataToStackFrames(stackParser, event);\n });\n },\n\n processEvent(event) {\n const frameKeys = getBundleKeysForAllFramesWithFilenames(event, options.ignoreSentryInternalFrames);\n\n if (frameKeys) {\n const arrayMethod =\n options.behaviour === 'drop-error-if-contains-third-party-frames' ||\n options.behaviour === 'apply-tag-if-contains-third-party-frames'\n ? 'some'\n : 'every';\n\n const behaviourApplies = frameKeys[arrayMethod](keys => !keys.some(key => options.filterKeys.includes(key)));\n\n if (behaviourApplies) {\n const shouldDrop =\n options.behaviour === 'drop-error-if-contains-third-party-frames' ||\n options.behaviour === 'drop-error-if-exclusively-contains-third-party-frames';\n if (shouldDrop) {\n return null;\n } else {\n event.tags = {\n ...event.tags,\n third_party_code: true,\n };\n }\n }\n }\n\n return event;\n },\n };\n});\n\n/**\n * Checks if a stack frame is a Sentry internal frame by strictly matching:\n * 1. The frame must be the last frame in the stack\n * 2. The filename must indicate the internal helpers file\n * 3. The context_line must contain the exact pattern \"fn.apply(this, wrappedArguments)\"\n * 4. The comment pattern \"Attempt to invoke user-land function\" must be present in pre_context\n *\n */\nfunction isSentryInternalFrame(frame: StackFrame, frameIndex: number): boolean {\n // Only match the last frame (index 0 in reversed stack)\n if (frameIndex !== 0 || !frame.context_line || !frame.filename) {\n return false;\n }\n\n if (\n !frame.filename.includes('sentry') ||\n !frame.filename.includes('helpers') || // Filename would look something like this: 'node_modules/@sentry/browser/build/npm/esm/helpers.js'\n !frame.context_line.includes(SENTRY_INTERNAL_FN_APPLY) // Must have context_line with the exact fn.apply pattern\n ) {\n return false;\n }\n\n // Check pre_context array for comment pattern\n if (frame.pre_context) {\n const len = frame.pre_context.length;\n for (let i = 0; i < len; i++) {\n if (frame.pre_context[i]?.includes(SENTRY_INTERNAL_COMMENT)) {\n return true;\n }\n }\n }\n\n return false;\n}\n\nfunction getBundleKeysForAllFramesWithFilenames(\n event: Event,\n ignoreSentryInternalFrames?: boolean,\n): string[][] | undefined {\n const frames = getFramesFromEvent(event);\n\n if (!frames) {\n return undefined;\n }\n\n return frames\n .filter((frame, index) => {\n // Exclude frames without a filename\n if (!frame.filename) {\n return false;\n }\n // Exclude frames without location info, since these are likely native code or built-ins.\n // JS frames have lineno/colno, WASM frames have instruction_addr instead.\n if (frame.lineno == null && frame.colno == null && frame.instruction_addr == null) {\n return false;\n }\n // Optionally ignore Sentry internal frames\n return !ignoreSentryInternalFrames || !isSentryInternalFrame(frame, index);\n })\n .map(frame => {\n if (!frame.module_metadata) {\n return [];\n }\n return Object.keys(frame.module_metadata)\n .filter(key => key.startsWith(BUNDLER_PLUGIN_APP_KEY_PREFIX))\n .map(key => key.slice(BUNDLER_PLUGIN_APP_KEY_PREFIX.length));\n });\n}\n\nconst BUNDLER_PLUGIN_APP_KEY_PREFIX = '_sentryBundlerPluginAppKey:';\nconst SENTRY_INTERNAL_COMMENT = 'Attempt to invoke user-land function';\nconst SENTRY_INTERNAL_FN_APPLY = 'fn.apply(this, wrappedArguments)';\n","import { addBreadcrumb } from '../breadcrumbs';\nimport { getClient } from '../currentScopes';\nimport { addConsoleInstrumentationHandler } from '../instrument/console';\nimport { defineIntegration } from '../integration';\nimport type { ConsoleLevel } from '../types-hoist/instrument';\nimport { CONSOLE_LEVELS } from '../utils/debug-logger';\nimport { severityLevelFromString } from '../utils/severity';\nimport { safeJoin } from '../utils/string';\nimport { GLOBAL_OBJ } from '../utils/worldwide';\n\ninterface ConsoleIntegrationOptions {\n levels: ConsoleLevel[];\n}\n\ntype GlobalObjectWithUtil = typeof GLOBAL_OBJ & {\n util: {\n format: (...args: unknown[]) => string;\n };\n};\n\nconst INTEGRATION_NAME = 'Console';\n\n/**\n * Captures calls to the `console` API as breadcrumbs in Sentry.\n *\n * By default the integration instruments `console.debug`, `console.info`, `console.warn`, `console.error`,\n * `console.log`, `console.trace`, and `console.assert`. You can use the `levels` option to customize which\n * levels are captured.\n *\n * @example\n *\n * ```js\n * Sentry.init({\n * integrations: [Sentry.consoleIntegration({ levels: ['error', 'warn'] })],\n * });\n * ```\n */\nexport const consoleIntegration = defineIntegration((options: Partial = {}) => {\n const levels = new Set(options.levels || CONSOLE_LEVELS);\n\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n addConsoleInstrumentationHandler(({ args, level }) => {\n if (getClient() !== client || !levels.has(level)) {\n return;\n }\n\n addConsoleBreadcrumb(level, args);\n });\n },\n };\n});\n\n/**\n * Capture a console breadcrumb.\n *\n * Exported just for tests.\n */\nexport function addConsoleBreadcrumb(level: ConsoleLevel, args: unknown[]): void {\n const breadcrumb = {\n category: 'console',\n data: {\n arguments: args,\n logger: 'console',\n },\n level: severityLevelFromString(level),\n message: formatConsoleArgs(args),\n };\n\n if (level === 'assert') {\n if (args[0] === false) {\n const assertionArgs = args.slice(1);\n breadcrumb.message =\n assertionArgs.length > 0 ? `Assertion failed: ${formatConsoleArgs(assertionArgs)}` : 'Assertion failed';\n breadcrumb.data.arguments = assertionArgs;\n } else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n\n addBreadcrumb(breadcrumb, {\n input: args,\n level,\n });\n}\n\nfunction formatConsoleArgs(values: unknown[]): string {\n return 'util' in GLOBAL_OBJ && typeof (GLOBAL_OBJ as GlobalObjectWithUtil).util.format === 'function'\n ? (GLOBAL_OBJ as GlobalObjectWithUtil).util.format(...values)\n : safeJoin(values, ' ');\n}\n","import { getCurrentScope } from '../currentScopes';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { type Event } from '../types-hoist/event';\nimport { debug } from './debug-logger';\nimport { getActiveSpan, spanToJSON } from './spanUtils';\n\n/**\n * Ordered LRU cache for storing feature flags in the scope context. The name\n * of each flag in the buffer is unique, and the output of getAll() is ordered\n * from oldest to newest.\n */\n\nexport type FeatureFlag = { readonly flag: string; readonly result: boolean };\n\n/**\n * Max size of the LRU flag buffer stored in Sentry scope and event contexts.\n */\nexport const _INTERNAL_FLAG_BUFFER_SIZE = 100;\n\n/**\n * Max number of flag evaluations to record per span.\n */\nexport const _INTERNAL_MAX_FLAGS_PER_SPAN = 10;\n\nconst SPAN_FLAG_ATTRIBUTE_PREFIX = 'flag.evaluation.';\n\n/**\n * Copies feature flags that are in current scope context to the event context\n */\nexport function _INTERNAL_copyFlagsFromScopeToEvent(event: Event): Event {\n const scope = getCurrentScope();\n const flagContext = scope.getScopeData().contexts.flags;\n const flagBuffer = flagContext ? flagContext.values : [];\n\n if (!flagBuffer.length) {\n return event;\n }\n\n if (event.contexts === undefined) {\n event.contexts = {};\n }\n event.contexts.flags = { values: [...flagBuffer] };\n return event;\n}\n\n/**\n * Inserts a flag into the current scope's context while maintaining ordered LRU properties.\n * Not thread-safe. After inserting:\n * - The flag buffer is sorted in order of recency, with the newest evaluation at the end.\n * - The names in the buffer are always unique.\n * - The length of the buffer never exceeds `maxSize`.\n *\n * @param name Name of the feature flag to insert.\n * @param value Value of the feature flag.\n * @param maxSize Max number of flags the buffer should store. Default value should always be used in production.\n */\nexport function _INTERNAL_insertFlagToScope(\n name: string,\n value: unknown,\n maxSize: number = _INTERNAL_FLAG_BUFFER_SIZE,\n): void {\n const scopeContexts = getCurrentScope().getScopeData().contexts;\n if (!scopeContexts.flags) {\n scopeContexts.flags = { values: [] };\n }\n const flags = scopeContexts.flags.values;\n _INTERNAL_insertToFlagBuffer(flags, name, value, maxSize);\n}\n\n/**\n * Exported for tests only. Currently only accepts boolean values (otherwise no-op).\n * Inserts a flag into a FeatureFlag array while maintaining the following properties:\n * - Flags are sorted in order of recency, with the newest evaluation at the end.\n * - The flag names are always unique.\n * - The length of the array never exceeds `maxSize`.\n *\n * @param flags The buffer to insert the flag into.\n * @param name Name of the feature flag to insert.\n * @param value Value of the feature flag.\n * @param maxSize Max number of flags the buffer should store. Default value should always be used in production.\n */\nexport function _INTERNAL_insertToFlagBuffer(\n flags: FeatureFlag[],\n name: string,\n value: unknown,\n maxSize: number,\n): void {\n if (typeof value !== 'boolean') {\n return;\n }\n\n if (flags.length > maxSize) {\n DEBUG_BUILD && debug.error(`[Feature Flags] insertToFlagBuffer called on a buffer larger than maxSize=${maxSize}`);\n return;\n }\n\n // Check if the flag is already in the buffer - O(n)\n const index = flags.findIndex(f => f.flag === name);\n\n if (index !== -1) {\n // The flag was found, remove it from its current position - O(n)\n flags.splice(index, 1);\n }\n\n if (flags.length === maxSize) {\n // If at capacity, pop the earliest flag - O(n)\n flags.shift();\n }\n\n // Push the flag to the end - O(1)\n flags.push({\n flag: name,\n result: value,\n });\n}\n\n/**\n * Records a feature flag evaluation for the active span. This is a no-op for non-boolean values.\n * The flag and its value is stored in span attributes with the `flag.evaluation` prefix. Once the\n * unique flags for a span reaches maxFlagsPerSpan, subsequent flags are dropped.\n *\n * @param name Name of the feature flag.\n * @param value Value of the feature flag. Non-boolean values are ignored.\n * @param maxFlagsPerSpan Max number of flags a buffer should store. Default value should always be used in production.\n */\nexport function _INTERNAL_addFeatureFlagToActiveSpan(\n name: string,\n value: unknown,\n maxFlagsPerSpan: number = _INTERNAL_MAX_FLAGS_PER_SPAN,\n): void {\n if (typeof value !== 'boolean') {\n return;\n }\n\n const span = getActiveSpan();\n if (!span) {\n return;\n }\n\n const attributes = spanToJSON(span).data;\n\n // If the flag already exists, always update it\n if (`${SPAN_FLAG_ATTRIBUTE_PREFIX}${name}` in attributes) {\n span.setAttribute(`${SPAN_FLAG_ATTRIBUTE_PREFIX}${name}`, value);\n return;\n }\n\n // Else, add the flag to the span if we have not reached the max number of flags\n const numOfAddedFlags = Object.keys(attributes).filter(key => key.startsWith(SPAN_FLAG_ATTRIBUTE_PREFIX)).length;\n if (numOfAddedFlags < maxFlagsPerSpan) {\n span.setAttribute(`${SPAN_FLAG_ATTRIBUTE_PREFIX}${name}`, value);\n }\n}\n","import { type Client } from '../../client';\nimport { defineIntegration } from '../../integration';\nimport { type Event, type EventHint } from '../../types-hoist/event';\nimport { type Integration, type IntegrationFn } from '../../types-hoist/integration';\nimport {\n _INTERNAL_addFeatureFlagToActiveSpan,\n _INTERNAL_copyFlagsFromScopeToEvent,\n _INTERNAL_insertFlagToScope,\n} from '../../utils/featureFlags';\n\nexport interface FeatureFlagsIntegration extends Integration {\n addFeatureFlag: (name: string, value: unknown) => void;\n}\n\n/**\n * Sentry integration for buffering feature flag evaluations manually with an API, and\n * capturing them on error events and spans.\n *\n * See the [feature flag documentation](https://develop.sentry.dev/sdk/expected-features/#feature-flags) for more information.\n *\n * @example\n * ```\n * import * as Sentry from '@sentry/browser';\n * import { type FeatureFlagsIntegration } from '@sentry/browser';\n *\n * // Setup\n * Sentry.init(..., integrations: [Sentry.featureFlagsIntegration()])\n *\n * // Verify\n * const flagsIntegration = Sentry.getClient()?.getIntegrationByName('FeatureFlags');\n * if (flagsIntegration) {\n * flagsIntegration.addFeatureFlag('my-flag', true);\n * } else {\n * // check your setup\n * }\n * Sentry.captureException(Exception('broke')); // 'my-flag' should be captured to this Sentry event.\n * ```\n */\nexport const featureFlagsIntegration = defineIntegration(() => {\n return {\n name: 'FeatureFlags',\n\n processEvent(event: Event, _hint: EventHint, _client: Client): Event {\n return _INTERNAL_copyFlagsFromScopeToEvent(event);\n },\n\n addFeatureFlag(name: string, value: unknown): void {\n _INTERNAL_insertFlagToScope(name, value);\n _INTERNAL_addFeatureFlagToActiveSpan(name, value);\n },\n };\n}) as IntegrationFn;\n","import type { Client } from '../../client';\nimport { defineIntegration } from '../../integration';\nimport type { Event, EventHint } from '../../types-hoist/event';\nimport type { IntegrationFn } from '../../types-hoist/integration';\nimport {\n _INTERNAL_addFeatureFlagToActiveSpan,\n _INTERNAL_copyFlagsFromScopeToEvent,\n _INTERNAL_insertFlagToScope,\n} from '../../utils/featureFlags';\nimport { fill } from '../../utils/object';\n\ninterface GrowthBookLike {\n isOn(this: GrowthBookLike, featureKey: string, ...rest: unknown[]): boolean;\n getFeatureValue(this: GrowthBookLike, featureKey: string, defaultValue: unknown, ...rest: unknown[]): unknown;\n}\n\nexport type GrowthBookClassLike = new (...args: unknown[]) => GrowthBookLike;\n\n/**\n * Sentry integration for capturing feature flag evaluations from GrowthBook.\n *\n * Only boolean results are captured at this time.\n *\n * @example\n * ```typescript\n * import { GrowthBook } from '@growthbook/growthbook';\n * import * as Sentry from '@sentry/browser'; // or '@sentry/node'\n *\n * Sentry.init({\n * dsn: 'your-dsn',\n * integrations: [\n * Sentry.growthbookIntegration({ growthbookClass: GrowthBook })\n * ]\n * });\n * ```\n */\nexport const growthbookIntegration: IntegrationFn = defineIntegration(\n ({ growthbookClass }: { growthbookClass: GrowthBookClassLike }) => {\n return {\n name: 'GrowthBook',\n\n setupOnce() {\n const proto = growthbookClass.prototype as GrowthBookLike;\n\n // Type guard and wrap isOn\n if (typeof proto.isOn === 'function') {\n fill(proto, 'isOn', _wrapAndCaptureBooleanResult);\n }\n\n // Type guard and wrap getFeatureValue\n if (typeof proto.getFeatureValue === 'function') {\n fill(proto, 'getFeatureValue', _wrapAndCaptureBooleanResult);\n }\n },\n\n processEvent(event: Event, _hint: EventHint, _client: Client): Event {\n return _INTERNAL_copyFlagsFromScopeToEvent(event);\n },\n };\n },\n);\n\nfunction _wrapAndCaptureBooleanResult(\n original: (this: GrowthBookLike, ...args: unknown[]) => unknown,\n): (this: GrowthBookLike, ...args: unknown[]) => unknown {\n return function (this: GrowthBookLike, ...args: unknown[]): unknown {\n const flagName = args[0];\n const result = original.apply(this, args);\n\n if (typeof flagName === 'string' && typeof result === 'boolean') {\n _INTERNAL_insertFlagToScope(flagName, result);\n _INTERNAL_addFeatureFlagToActiveSpan(flagName, result);\n }\n\n return result;\n };\n}\n","import type { Client } from '../client';\nimport { getCurrentScope, getIsolationScope } from '../currentScopes';\nimport { defineIntegration } from '../integration';\nimport { GEN_AI_CONVERSATION_ID_ATTRIBUTE } from '../semanticAttributes';\nimport type { IntegrationFn } from '../types-hoist/integration';\nimport type { Span } from '../types-hoist/span';\n\nconst INTEGRATION_NAME = 'ConversationId';\n\nconst _conversationIdIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setup(client: Client) {\n client.on('spanStart', (span: Span) => {\n const scopeData = getCurrentScope().getScopeData();\n const isolationScopeData = getIsolationScope().getScopeData();\n\n const conversationId = scopeData.conversationId || isolationScopeData.conversationId;\n\n if (conversationId) {\n span.setAttribute(GEN_AI_CONVERSATION_ID_ATTRIBUTE, conversationId);\n }\n });\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Automatically applies conversation ID from scope to spans.\n *\n * This integration reads the conversation ID from the current or isolation scope\n * and applies it to spans when they start. This ensures the conversation ID is\n * available for all AI-related operations.\n */\nexport const conversationIdIntegration = defineIntegration(_conversationIdIntegration);\n","import { getClient } from './currentScopes';\nimport { DEBUG_BUILD } from './debug-build';\nimport type { Profiler, ProfilingIntegration } from './types-hoist/profiling';\nimport { debug } from './utils/debug-logger';\n\nfunction isProfilingIntegrationWithProfiler(\n integration: ProfilingIntegration | undefined,\n): integration is ProfilingIntegration {\n return (\n !!integration &&\n typeof integration['_profiler'] !== 'undefined' &&\n typeof integration['_profiler']['start'] === 'function' &&\n typeof integration['_profiler']['stop'] === 'function'\n );\n}\n/**\n * Starts the Sentry continuous profiler.\n * This mode is exclusive with the transaction profiler and will only work if the profilesSampleRate is set to a falsy value.\n * In continuous profiling mode, the profiler will keep reporting profile chunks to Sentry until it is stopped, which allows for continuous profiling of the application.\n */\nfunction startProfiler(): void {\n const client = getClient();\n if (!client) {\n DEBUG_BUILD && debug.warn('No Sentry client available, profiling is not started');\n return;\n }\n\n const integration = client.getIntegrationByName('ProfilingIntegration');\n\n if (!integration) {\n DEBUG_BUILD && debug.warn('ProfilingIntegration is not available');\n return;\n }\n\n if (!isProfilingIntegrationWithProfiler(integration)) {\n DEBUG_BUILD && debug.warn('Profiler is not available on profiling integration.');\n return;\n }\n\n integration._profiler.start();\n}\n\n/**\n * Stops the Sentry continuous profiler.\n * Calls to stop will stop the profiler and flush the currently collected profile data to Sentry.\n */\nfunction stopProfiler(): void {\n const client = getClient();\n if (!client) {\n DEBUG_BUILD && debug.warn('No Sentry client available, profiling is not started');\n return;\n }\n\n const integration = client.getIntegrationByName('ProfilingIntegration');\n if (!integration) {\n DEBUG_BUILD && debug.warn('ProfilingIntegration is not available');\n return;\n }\n\n if (!isProfilingIntegrationWithProfiler(integration)) {\n DEBUG_BUILD && debug.warn('Profiler is not available on profiling integration.');\n return;\n }\n\n integration._profiler.stop();\n}\n\n/**\n * Profiler namespace for controlling the profiler in 'manual' mode.\n *\n * Requires the `nodeProfilingIntegration` from the `@sentry/profiling-node` package.\n */\nexport const profiler: Profiler = {\n startProfiler,\n stopProfiler,\n};\n","import { getClient } from './currentScopes';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from './semanticAttributes';\nimport { setHttpStatus, SPAN_STATUS_ERROR, startInactiveSpan } from './tracing';\nimport { SentryNonRecordingSpan } from './tracing/sentryNonRecordingSpan';\nimport type { FetchBreadcrumbHint } from './types-hoist/breadcrumb';\nimport type { HandlerDataFetch } from './types-hoist/instrument';\nimport type { ResponseHookInfo } from './types-hoist/request';\nimport type { Span, SpanAttributes, SpanOrigin } from './types-hoist/span';\nimport { SENTRY_BAGGAGE_KEY_PREFIX } from './utils/baggage';\nimport { hasSpansEnabled } from './utils/hasSpansEnabled';\nimport { isInstanceOf, isRequest } from './utils/is';\nimport { getActiveSpan } from './utils/spanUtils';\nimport { getTraceData } from './utils/traceData';\nimport {\n getSanitizedUrlStringFromUrlObject,\n isURLObjectRelative,\n parseStringToURLObject,\n stripDataUrlContent,\n} from './utils/url';\n\ntype PolymorphicRequestHeaders =\n | Record\n | Array<[string, string]>\n // the below is not precisely the Header type used in Request, but it'll pass duck-typing\n | {\n append: (key: string, value: string) => void;\n get: (key: string) => string | null | undefined;\n };\n\ninterface InstrumentFetchRequestOptions {\n spanOrigin?: SpanOrigin;\n propagateTraceparent?: boolean;\n onRequestSpanEnd?: (span: Span, responseInformation: ResponseHookInfo) => void;\n}\n\n/**\n * Create and track fetch request spans for usage in combination with `addFetchInstrumentationHandler`.\n *\n * @deprecated pass an options object instead of the spanOrigin parameter\n *\n * @returns Span if a span was created, otherwise void.\n */\nexport function instrumentFetchRequest(\n handlerData: HandlerDataFetch,\n shouldCreateSpan: (url: string) => boolean,\n shouldAttachHeaders: (url: string) => boolean,\n spans: Record,\n spanOrigin: SpanOrigin,\n): Span | undefined;\n/**\n * Create and track fetch request spans for usage in combination with `addFetchInstrumentationHandler`.\n *\n * @returns Span if a span was created, otherwise void.\n */\nexport function instrumentFetchRequest(\n handlerData: HandlerDataFetch,\n shouldCreateSpan: (url: string) => boolean,\n shouldAttachHeaders: (url: string) => boolean,\n spans: Record,\n // eslint-disable-next-line @typescript-eslint/unified-signatures -- needed because the other overload is deprecated\n instrumentFetchRequestOptions: InstrumentFetchRequestOptions,\n): Span | undefined;\n\n/**\n * Create and track fetch request spans for usage in combination with `addFetchInstrumentationHandler`.\n *\n * @returns Span if a span was created, otherwise void.\n */\nexport function instrumentFetchRequest(\n handlerData: HandlerDataFetch,\n shouldCreateSpan: (url: string) => boolean,\n shouldAttachHeaders: (url: string) => boolean,\n spans: Record,\n spanOriginOrOptions?: SpanOrigin | InstrumentFetchRequestOptions,\n): Span | undefined {\n if (!handlerData.fetchData) {\n return undefined;\n }\n\n const { method, url } = handlerData.fetchData;\n\n const shouldCreateSpanResult = hasSpansEnabled() && shouldCreateSpan(url);\n\n if (handlerData.endTimestamp) {\n const spanId = handlerData.fetchData.__span;\n if (!spanId) return;\n\n const span = spans[spanId];\n\n if (span) {\n // Only end the span and call hooks if we're actually recording\n if (shouldCreateSpanResult) {\n endSpan(span, handlerData);\n _callOnRequestSpanEnd(span, handlerData, spanOriginOrOptions);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[spanId];\n }\n\n return undefined;\n }\n\n // Backwards-compatible with the old signature. Needed to introduce the combined optional parameter\n // to avoid API breakage for anyone calling this function with the optional spanOrigin parameter\n // TODO (v11): remove this backwards-compatible code and only accept the options parameter\n const { spanOrigin = 'auto.http.browser', propagateTraceparent = false } =\n typeof spanOriginOrOptions === 'object' ? spanOriginOrOptions : { spanOrigin: spanOriginOrOptions };\n\n const hasParent = !!getActiveSpan();\n\n const span =\n shouldCreateSpanResult && hasParent\n ? startInactiveSpan(getSpanStartOptions(url, method, spanOrigin))\n : new SentryNonRecordingSpan();\n\n handlerData.fetchData.__span = span.spanContext().spanId;\n spans[span.spanContext().spanId] = span;\n\n if (shouldAttachHeaders(handlerData.fetchData.url)) {\n const request: string | Request = handlerData.args[0];\n\n // Shallow clone the options object to avoid mutating the original user-provided object\n // Examples: users re-using same options object for multiple fetch calls, frozen objects\n const options: { [key: string]: unknown } = { ...(handlerData.args[1] || {}) };\n\n const headers = _addTracingHeadersToFetchRequest(\n request,\n options,\n // If performance is disabled (TWP) or there's no active root span (pageload/navigation/interaction),\n // we do not want to use the span as base for the trace headers,\n // which means that the headers will be generated from the scope and the sampling decision is deferred\n hasSpansEnabled() && hasParent ? span : undefined,\n propagateTraceparent,\n );\n if (headers) {\n // Ensure this is actually set, if no options have been passed previously\n handlerData.args[1] = options;\n options.headers = headers;\n }\n }\n\n const client = getClient();\n\n if (client) {\n const fetchHint = {\n input: handlerData.args,\n response: handlerData.response,\n startTimestamp: handlerData.startTimestamp,\n endTimestamp: handlerData.endTimestamp,\n } satisfies FetchBreadcrumbHint;\n\n client.emit('beforeOutgoingRequestSpan', span, fetchHint);\n }\n\n return span;\n}\n\n/**\n * Calls the onRequestSpanEnd callback if it is defined.\n */\nexport function _callOnRequestSpanEnd(\n span: Span,\n handlerData: HandlerDataFetch,\n spanOriginOrOptions?: SpanOrigin | InstrumentFetchRequestOptions,\n): void {\n const onRequestSpanEnd =\n typeof spanOriginOrOptions === 'object' && spanOriginOrOptions !== null\n ? spanOriginOrOptions.onRequestSpanEnd\n : undefined;\n\n onRequestSpanEnd?.(span, {\n headers: handlerData.response?.headers,\n error: handlerData.error,\n });\n}\n\n/**\n * Adds sentry-trace and baggage headers to the various forms of fetch headers.\n * exported only for testing purposes\n *\n * When we determine if we should add a baggage header, there are 3 cases:\n * 1. No previous baggage header -> add baggage\n * 2. Previous baggage header has no sentry baggage values -> add our baggage\n * 3. Previous baggage header has sentry baggage values -> do nothing (might have been added manually by users)\n */\n// eslint-disable-next-line complexity -- yup it's this complicated :(\nexport function _addTracingHeadersToFetchRequest(\n request: string | Request,\n fetchOptionsObj: {\n headers?:\n | {\n [key: string]: string[] | string | undefined;\n }\n | PolymorphicRequestHeaders;\n },\n span?: Span,\n propagateTraceparent?: boolean,\n): PolymorphicRequestHeaders | undefined {\n const traceHeaders = getTraceData({ span, propagateTraceparent });\n const sentryTrace = traceHeaders['sentry-trace'];\n const baggage = traceHeaders.baggage;\n const traceparent = traceHeaders.traceparent;\n\n // Nothing to do, when we return undefined here, the original headers will be used\n if (!sentryTrace) {\n return undefined;\n }\n\n const originalHeaders = fetchOptionsObj.headers || (isRequest(request) ? request.headers : undefined);\n\n if (!originalHeaders) {\n return { ...traceHeaders };\n } else if (isHeaders(originalHeaders)) {\n const newHeaders = new Headers(originalHeaders);\n\n // We don't want to override manually added sentry headers\n if (!newHeaders.get('sentry-trace')) {\n newHeaders.set('sentry-trace', sentryTrace);\n }\n\n if (propagateTraceparent && traceparent && !newHeaders.get('traceparent')) {\n newHeaders.set('traceparent', traceparent);\n }\n\n if (baggage) {\n const prevBaggageHeader = newHeaders.get('baggage');\n\n if (!prevBaggageHeader) {\n newHeaders.set('baggage', baggage);\n } else if (!baggageHeaderHasSentryBaggageValues(prevBaggageHeader)) {\n newHeaders.set('baggage', `${prevBaggageHeader},${baggage}`);\n }\n }\n\n return newHeaders;\n } else if (Array.isArray(originalHeaders)) {\n const newHeaders = [...originalHeaders];\n\n if (!originalHeaders.find(header => header[0] === 'sentry-trace')) {\n newHeaders.push(['sentry-trace', sentryTrace]);\n }\n\n if (propagateTraceparent && traceparent && !originalHeaders.find(header => header[0] === 'traceparent')) {\n newHeaders.push(['traceparent', traceparent]);\n }\n\n const prevBaggageHeaderWithSentryValues = originalHeaders.find(\n header => header[0] === 'baggage' && baggageHeaderHasSentryBaggageValues(header[1]),\n );\n\n if (baggage && !prevBaggageHeaderWithSentryValues) {\n // If there are multiple entries with the same key, the browser will merge the values into a single request header.\n // Its therefore safe to simply push a \"baggage\" entry, even though there might already be another baggage header.\n newHeaders.push(['baggage', baggage]);\n }\n\n return newHeaders as PolymorphicRequestHeaders;\n } else {\n const existingSentryTraceHeader = 'sentry-trace' in originalHeaders ? originalHeaders['sentry-trace'] : undefined;\n const existingTraceparentHeader = 'traceparent' in originalHeaders ? originalHeaders.traceparent : undefined;\n const existingBaggageHeader = 'baggage' in originalHeaders ? originalHeaders.baggage : undefined;\n\n const newBaggageHeaders: string[] = existingBaggageHeader\n ? Array.isArray(existingBaggageHeader)\n ? [...existingBaggageHeader]\n : [existingBaggageHeader]\n : [];\n\n const prevBaggageHeaderWithSentryValues =\n existingBaggageHeader &&\n (Array.isArray(existingBaggageHeader)\n ? existingBaggageHeader.find(headerItem => baggageHeaderHasSentryBaggageValues(headerItem))\n : baggageHeaderHasSentryBaggageValues(existingBaggageHeader));\n\n if (baggage && !prevBaggageHeaderWithSentryValues) {\n newBaggageHeaders.push(baggage);\n }\n\n const newHeaders: {\n 'sentry-trace': string;\n baggage: string | undefined;\n traceparent?: string;\n } = {\n ...originalHeaders,\n 'sentry-trace': (existingSentryTraceHeader as string | undefined) ?? sentryTrace,\n baggage: newBaggageHeaders.length > 0 ? newBaggageHeaders.join(',') : undefined,\n };\n\n if (propagateTraceparent && traceparent && !existingTraceparentHeader) {\n newHeaders.traceparent = traceparent;\n }\n\n return newHeaders;\n }\n}\n\nfunction endSpan(span: Span, handlerData: HandlerDataFetch): void {\n if (handlerData.response) {\n setHttpStatus(span, handlerData.response.status);\n\n const contentLength = handlerData.response?.headers?.get('content-length');\n\n if (contentLength) {\n const contentLengthNum = parseInt(contentLength);\n if (contentLengthNum > 0) {\n span.setAttribute('http.response_content_length', contentLengthNum);\n }\n }\n } else if (handlerData.error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n }\n span.end();\n}\n\nfunction baggageHeaderHasSentryBaggageValues(baggageHeader: string): boolean {\n return baggageHeader.split(',').some(baggageEntry => baggageEntry.trim().startsWith(SENTRY_BAGGAGE_KEY_PREFIX));\n}\n\nfunction isHeaders(headers: unknown): headers is Headers {\n return typeof Headers !== 'undefined' && isInstanceOf(headers, Headers);\n}\n\nfunction getSpanStartOptions(\n url: string,\n method: string,\n spanOrigin: SpanOrigin,\n): Parameters[0] {\n // Data URLs need special handling because parseStringToURLObject treats them as \"relative\"\n // (no \"://\"), causing getSanitizedUrlStringFromUrlObject to return just the pathname\n // without the \"data:\" prefix, making later stripDataUrlContent calls ineffective.\n // So for data URLs, we strip the content first and use that directly.\n if (url.startsWith('data:')) {\n const sanitizedUrl = stripDataUrlContent(url);\n return {\n name: `${method} ${sanitizedUrl}`,\n attributes: getFetchSpanAttributes(url, undefined, method, spanOrigin),\n };\n }\n\n const parsedUrl = parseStringToURLObject(url);\n const sanitizedUrl = parsedUrl ? getSanitizedUrlStringFromUrlObject(parsedUrl) : url;\n return {\n name: `${method} ${sanitizedUrl}`,\n attributes: getFetchSpanAttributes(url, parsedUrl, method, spanOrigin),\n };\n}\n\nfunction getFetchSpanAttributes(\n url: string,\n parsedUrl: ReturnType,\n method: string,\n spanOrigin: SpanOrigin,\n): SpanAttributes {\n const attributes: SpanAttributes = {\n url: stripDataUrlContent(url),\n type: 'fetch',\n 'http.method': method,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: spanOrigin,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'http.client',\n };\n if (parsedUrl) {\n if (!isURLObjectRelative(parsedUrl)) {\n attributes['http.url'] = stripDataUrlContent(parsedUrl.href);\n attributes['server.address'] = parsedUrl.host;\n }\n if (parsedUrl.search) {\n attributes['http.query'] = parsedUrl.search;\n }\n if (parsedUrl.hash) {\n attributes['http.fragment'] = parsedUrl.hash;\n }\n }\n return attributes;\n}\n","import { getClient, withIsolationScope } from './currentScopes';\nimport { captureException } from './exports';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from './semanticAttributes';\nimport { startSpanManual } from './tracing';\nimport { normalize } from './utils/normalize';\nimport { addNonEnumerableProperty } from './utils/object';\n\ninterface SentryTrpcMiddlewareOptions {\n /** Whether to include procedure inputs in reported events. Defaults to `false`. */\n attachRpcInput?: boolean;\n forceTransaction?: boolean;\n}\n\nexport interface SentryTrpcMiddlewareArguments {\n path?: unknown;\n type?: unknown;\n next: () => T;\n rawInput?: unknown;\n getRawInput?: () => Promise;\n}\n\nconst trpcCaptureContext = { mechanism: { handled: false, type: 'auto.rpc.trpc.middleware' } };\n\nfunction captureIfError(nextResult: unknown): void {\n // TODO: Set span status based on what TRPCError was encountered\n if (\n typeof nextResult === 'object' &&\n nextResult !== null &&\n 'ok' in nextResult &&\n !nextResult.ok &&\n 'error' in nextResult\n ) {\n captureException(nextResult.error, trpcCaptureContext);\n }\n}\n\ntype SentryTrpcMiddleware = T extends Promise ? T : Promise;\n\n/**\n * Sentry tRPC middleware that captures errors and creates spans for tRPC procedures.\n */\nexport function trpcMiddleware(options: SentryTrpcMiddlewareOptions = {}) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return async function (opts: SentryTrpcMiddlewareArguments): SentryTrpcMiddleware {\n const { path, type, next, rawInput, getRawInput } = opts;\n\n const client = getClient();\n const clientOptions = client?.getOptions();\n\n const trpcContext: Record = {\n procedure_path: path,\n procedure_type: type,\n };\n\n addNonEnumerableProperty(\n trpcContext,\n '__sentry_override_normalization_depth__',\n 1 + // 1 for context.input + the normal normalization depth\n (clientOptions?.normalizeDepth ?? 5), // 5 is a sane depth\n );\n\n if (options.attachRpcInput !== undefined ? options.attachRpcInput : clientOptions?.sendDefaultPii) {\n if (rawInput !== undefined) {\n trpcContext.input = normalize(rawInput);\n }\n\n if (getRawInput !== undefined && typeof getRawInput === 'function') {\n try {\n const rawRes = await getRawInput();\n\n trpcContext.input = normalize(rawRes);\n } catch {\n // noop\n }\n }\n }\n\n return withIsolationScope(scope => {\n scope.setContext('trpc', trpcContext);\n return startSpanManual(\n {\n name: `trpc/${path}`,\n op: 'rpc.server',\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'route',\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.rpc.trpc',\n },\n forceTransaction: !!options.forceTransaction,\n },\n async span => {\n try {\n const nextResult = await next();\n captureIfError(nextResult);\n span.end();\n return nextResult;\n } catch (e) {\n captureException(e, trpcCaptureContext);\n span.end();\n throw e;\n }\n },\n ) as SentryTrpcMiddleware;\n });\n };\n}\n","/**\n * Safe error capture utilities for MCP server instrumentation\n *\n * Ensures error reporting never interferes with MCP server operation.\n * All capture operations are wrapped in try-catch to prevent side effects.\n */\n\nimport { getClient } from '../../currentScopes';\nimport { captureException } from '../../exports';\nimport { SPAN_STATUS_ERROR } from '../../tracing';\nimport { getActiveSpan } from '../../utils/spanUtils';\nimport type { McpErrorType } from './types';\n\n/**\n * Captures an error without affecting MCP server operation.\n *\n * The active span already contains all MCP context (method, tool, arguments, etc.)\n * @param error - Error to capture\n * @param errorType - Classification of error type for filtering\n * @param extraData - Additional context data to include\n */\nexport function captureError(error: Error, errorType?: McpErrorType, extraData?: Record): void {\n try {\n const client = getClient();\n if (!client) {\n return;\n }\n\n const activeSpan = getActiveSpan();\n if (activeSpan?.isRecording()) {\n activeSpan.setStatus({\n code: SPAN_STATUS_ERROR,\n message: 'internal_error',\n });\n }\n\n captureException(error, {\n mechanism: {\n type: 'auto.ai.mcp_server',\n handled: false,\n data: {\n error_type: errorType || 'handler_execution',\n ...extraData,\n },\n },\n });\n } catch {\n // noop\n }\n}\n","/**\n * Handler method wrapping for MCP server instrumentation\n *\n * Provides automatic error capture and span correlation for tool, resource,\n * and prompt handlers.\n */\n\nimport { DEBUG_BUILD } from '../../debug-build';\nimport { debug } from '../../utils/debug-logger';\nimport { fill } from '../../utils/object';\nimport { captureError } from './errorCapture';\nimport type { MCPHandler, MCPServerInstance } from './types';\n\n/**\n * Generic function to wrap MCP server method handlers\n * @internal\n * @param serverInstance - MCP server instance\n * @param methodName - Method name to wrap (tool, resource, prompt)\n */\nfunction wrapMethodHandler(serverInstance: MCPServerInstance, methodName: keyof MCPServerInstance): void {\n fill(serverInstance, methodName, originalMethod => {\n return function (this: MCPServerInstance, name: string, ...args: unknown[]) {\n const handler = args[args.length - 1];\n\n if (typeof handler !== 'function') {\n return (originalMethod as (...args: unknown[]) => unknown).call(this, name, ...args);\n }\n\n const wrappedHandler = createWrappedHandler(handler as MCPHandler, methodName, name);\n return (originalMethod as (...args: unknown[]) => unknown).call(this, name, ...args.slice(0, -1), wrappedHandler);\n };\n });\n}\n\n/**\n * Creates a wrapped handler with span correlation and error capture\n * @internal\n * @param originalHandler - Original handler function\n * @param methodName - MCP method name\n * @param handlerName - Handler identifier\n * @returns Wrapped handler function\n */\nfunction createWrappedHandler(originalHandler: MCPHandler, methodName: keyof MCPServerInstance, handlerName: string) {\n return function (this: unknown, ...handlerArgs: unknown[]): unknown {\n try {\n return createErrorCapturingHandler.call(this, originalHandler, methodName, handlerName, handlerArgs);\n } catch (error) {\n DEBUG_BUILD && debug.warn('MCP handler wrapping failed:', error);\n return originalHandler.apply(this, handlerArgs);\n }\n };\n}\n\n/**\n * Creates an error-capturing wrapper for handler execution\n * @internal\n * @param originalHandler - Original handler function\n * @param methodName - MCP method name\n * @param handlerName - Handler identifier\n * @param handlerArgs - Handler arguments\n * @param extraHandlerData - Additional handler context\n * @returns Handler execution result\n */\nfunction createErrorCapturingHandler(\n this: MCPServerInstance,\n originalHandler: MCPHandler,\n methodName: keyof MCPServerInstance,\n handlerName: string,\n handlerArgs: unknown[],\n): unknown {\n try {\n const result = originalHandler.apply(this, handlerArgs);\n\n if (result && typeof result === 'object' && typeof (result as { then?: unknown }).then === 'function') {\n return Promise.resolve(result).catch(error => {\n captureHandlerError(error, methodName, handlerName);\n throw error;\n });\n }\n\n return result;\n } catch (error) {\n captureHandlerError(error as Error, methodName, handlerName);\n throw error;\n }\n}\n\n/**\n * Captures handler execution errors based on handler type\n * @internal\n * @param error - Error to capture\n * @param methodName - MCP method name\n * @param handlerName - Handler identifier\n */\nfunction captureHandlerError(error: Error, methodName: keyof MCPServerInstance, handlerName: string): void {\n try {\n const extraData: Record = {};\n\n if (methodName === 'tool') {\n extraData.tool_name = handlerName;\n\n if (\n error.name === 'ProtocolValidationError' ||\n error.message.includes('validation') ||\n error.message.includes('protocol')\n ) {\n captureError(error, 'validation', extraData);\n } else if (\n error.name === 'ServerTimeoutError' ||\n error.message.includes('timed out') ||\n error.message.includes('timeout')\n ) {\n captureError(error, 'timeout', extraData);\n } else {\n captureError(error, 'tool_execution', extraData);\n }\n } else if (methodName === 'resource') {\n extraData.resource_uri = handlerName;\n captureError(error, 'resource_execution', extraData);\n } else if (methodName === 'prompt') {\n extraData.prompt_name = handlerName;\n captureError(error, 'prompt_execution', extraData);\n }\n } catch (_captureErr) {\n // noop\n }\n}\n\n/**\n * Wraps tool handlers to associate them with request spans\n * @param serverInstance - MCP server instance\n */\nexport function wrapToolHandlers(serverInstance: MCPServerInstance): void {\n wrapMethodHandler(serverInstance, 'tool');\n}\n\n/**\n * Wraps resource handlers to associate them with request spans\n * @param serverInstance - MCP server instance\n */\nexport function wrapResourceHandlers(serverInstance: MCPServerInstance): void {\n wrapMethodHandler(serverInstance, 'resource');\n}\n\n/**\n * Wraps prompt handlers to associate them with request spans\n * @param serverInstance - MCP server instance\n */\nexport function wrapPromptHandlers(serverInstance: MCPServerInstance): void {\n wrapMethodHandler(serverInstance, 'prompt');\n}\n\n/**\n * Wraps all MCP handler types (tool, resource, prompt) for span correlation\n * @param serverInstance - MCP server instance\n */\nexport function wrapAllMCPHandlers(serverInstance: MCPServerInstance): void {\n wrapToolHandlers(serverInstance);\n wrapResourceHandlers(serverInstance);\n wrapPromptHandlers(serverInstance);\n}\n","/**\n * Essential MCP attribute constants for Sentry instrumentation\n *\n * Based on OpenTelemetry MCP semantic conventions\n * @see https://github.com/open-telemetry/semantic-conventions/blob/3097fb0af5b9492b0e3f55dc5f6c21a3dc2be8df/docs/gen-ai/mcp.md\n */\n\n// =============================================================================\n// CORE MCP ATTRIBUTES\n// =============================================================================\n\n/** The name of the request or notification method */\nexport const MCP_METHOD_NAME_ATTRIBUTE = 'mcp.method.name';\n\n/** JSON-RPC request identifier for the request. Unique within the MCP session. */\nexport const MCP_REQUEST_ID_ATTRIBUTE = 'mcp.request.id';\n\n/** Identifies the MCP session */\nexport const MCP_SESSION_ID_ATTRIBUTE = 'mcp.session.id';\n\n/** Transport method used for MCP communication */\nexport const MCP_TRANSPORT_ATTRIBUTE = 'mcp.transport';\n\n// =============================================================================\n// CLIENT ATTRIBUTES\n// =============================================================================\n\n/** Name of the MCP client application */\nexport const MCP_CLIENT_NAME_ATTRIBUTE = 'mcp.client.name';\n\n/** Display title of the MCP client application */\nexport const MCP_CLIENT_TITLE_ATTRIBUTE = 'mcp.client.title';\n\n/** Version of the MCP client application */\nexport const MCP_CLIENT_VERSION_ATTRIBUTE = 'mcp.client.version';\n\n// =============================================================================\n// SERVER ATTRIBUTES\n// =============================================================================\n\n/** Name of the MCP server application */\nexport const MCP_SERVER_NAME_ATTRIBUTE = 'mcp.server.name';\n\n/** Display title of the MCP server application */\nexport const MCP_SERVER_TITLE_ATTRIBUTE = 'mcp.server.title';\n\n/** Version of the MCP server application */\nexport const MCP_SERVER_VERSION_ATTRIBUTE = 'mcp.server.version';\n\n/** MCP protocol version used in the session */\nexport const MCP_PROTOCOL_VERSION_ATTRIBUTE = 'mcp.protocol.version';\n\n// =============================================================================\n// METHOD-SPECIFIC ATTRIBUTES\n// =============================================================================\n\n/** Name of the tool being called */\nexport const MCP_TOOL_NAME_ATTRIBUTE = 'mcp.tool.name';\n\n/** The resource URI being accessed */\nexport const MCP_RESOURCE_URI_ATTRIBUTE = 'mcp.resource.uri';\n\n/** Name of the prompt template */\nexport const MCP_PROMPT_NAME_ATTRIBUTE = 'mcp.prompt.name';\n\n// =============================================================================\n// TOOL RESULT ATTRIBUTES\n// =============================================================================\n\n/** Whether a tool execution resulted in an error */\nexport const MCP_TOOL_RESULT_IS_ERROR_ATTRIBUTE = 'mcp.tool.result.is_error';\n\n/** Number of content items in the tool result */\nexport const MCP_TOOL_RESULT_CONTENT_COUNT_ATTRIBUTE = 'mcp.tool.result.content_count';\n\n/** Serialized content of the tool result */\nexport const MCP_TOOL_RESULT_CONTENT_ATTRIBUTE = 'mcp.tool.result.content';\n\n/** Prefix for tool result attributes that contain sensitive content */\nexport const MCP_TOOL_RESULT_PREFIX = 'mcp.tool.result';\n\n// =============================================================================\n// PROMPT RESULT ATTRIBUTES\n// =============================================================================\n\n/** Description of the prompt result */\nexport const MCP_PROMPT_RESULT_DESCRIPTION_ATTRIBUTE = 'mcp.prompt.result.description';\n\n/** Number of messages in the prompt result */\nexport const MCP_PROMPT_RESULT_MESSAGE_COUNT_ATTRIBUTE = 'mcp.prompt.result.message_count';\n\n/** Role of the message in the prompt result (for single message results) */\nexport const MCP_PROMPT_RESULT_MESSAGE_ROLE_ATTRIBUTE = 'mcp.prompt.result.message_role';\n\n/** Content of the message in the prompt result (for single message results) */\nexport const MCP_PROMPT_RESULT_MESSAGE_CONTENT_ATTRIBUTE = 'mcp.prompt.result.message_content';\n\n/** Prefix for prompt result attributes that contain sensitive content */\nexport const MCP_PROMPT_RESULT_PREFIX = 'mcp.prompt.result';\n\n// =============================================================================\n// REQUEST ARGUMENT ATTRIBUTES\n// =============================================================================\n\n/** Prefix for MCP request argument prefix for each argument */\nexport const MCP_REQUEST_ARGUMENT = 'mcp.request.argument';\n\n// =============================================================================\n// LOGGING ATTRIBUTES\n// =============================================================================\n\n/** Log level for MCP logging operations */\nexport const MCP_LOGGING_LEVEL_ATTRIBUTE = 'mcp.logging.level';\n\n/** Logger name for MCP logging operations */\nexport const MCP_LOGGING_LOGGER_ATTRIBUTE = 'mcp.logging.logger';\n\n/** Data type of the logged message */\nexport const MCP_LOGGING_DATA_TYPE_ATTRIBUTE = 'mcp.logging.data_type';\n\n/** Log message content */\nexport const MCP_LOGGING_MESSAGE_ATTRIBUTE = 'mcp.logging.message';\n\n// =============================================================================\n// NETWORK ATTRIBUTES (OpenTelemetry Standard)\n// =============================================================================\n\n/** OSI transport layer protocol */\nexport const NETWORK_TRANSPORT_ATTRIBUTE = 'network.transport';\n\n/** The version of JSON RPC protocol used */\nexport const NETWORK_PROTOCOL_VERSION_ATTRIBUTE = 'network.protocol.version';\n\n/** Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name */\nexport const CLIENT_ADDRESS_ATTRIBUTE = 'client.address';\n\n/** Client port number */\nexport const CLIENT_PORT_ATTRIBUTE = 'client.port';\n\n// =============================================================================\n// SENTRY-SPECIFIC MCP ATTRIBUTE VALUES\n// =============================================================================\n\n/** Sentry operation value for MCP server spans */\nexport const MCP_SERVER_OP_VALUE = 'mcp.server';\n\n/**\n * Sentry operation value for client-to-server notifications\n * Following OpenTelemetry MCP semantic conventions\n */\nexport const MCP_NOTIFICATION_CLIENT_TO_SERVER_OP_VALUE = 'mcp.notification.client_to_server';\n\n/**\n * Sentry operation value for server-to-client notifications\n * Following OpenTelemetry MCP semantic conventions\n */\nexport const MCP_NOTIFICATION_SERVER_TO_CLIENT_OP_VALUE = 'mcp.notification.server_to_client';\n\n/** Sentry origin value for MCP function spans */\nexport const MCP_FUNCTION_ORIGIN_VALUE = 'auto.function.mcp_server';\n\n/** Sentry origin value for MCP notification spans */\nexport const MCP_NOTIFICATION_ORIGIN_VALUE = 'auto.mcp.notification';\n\n/** Sentry source value for MCP route spans */\nexport const MCP_ROUTE_SOURCE_VALUE = 'route';\n","/**\n * Message validation functions for MCP server instrumentation\n *\n * Provides JSON-RPC 2.0 message type validation and MCP server instance validation.\n */\n\nimport { DEBUG_BUILD } from '../../debug-build';\nimport { debug } from '../../utils/debug-logger';\nimport type { JsonRpcNotification, JsonRpcRequest, JsonRpcResponse } from './types';\n\n/**\n * Validates if a message is a JSON-RPC request\n * @param message - Message to validate\n * @returns True if message is a JSON-RPC request\n */\nexport function isJsonRpcRequest(message: unknown): message is JsonRpcRequest {\n return (\n typeof message === 'object' &&\n message !== null &&\n 'jsonrpc' in message &&\n (message as JsonRpcRequest).jsonrpc === '2.0' &&\n 'method' in message &&\n 'id' in message\n );\n}\n\n/**\n * Validates if a message is a JSON-RPC notification\n * @param message - Message to validate\n * @returns True if message is a JSON-RPC notification\n */\nexport function isJsonRpcNotification(message: unknown): message is JsonRpcNotification {\n return (\n typeof message === 'object' &&\n message !== null &&\n 'jsonrpc' in message &&\n (message as JsonRpcNotification).jsonrpc === '2.0' &&\n 'method' in message &&\n !('id' in message)\n );\n}\n\n/**\n * Validates if a message is a JSON-RPC response\n * @param message - Message to validate\n * @returns True if message is a JSON-RPC response\n */\nexport function isJsonRpcResponse(message: unknown): message is JsonRpcResponse {\n return (\n typeof message === 'object' &&\n message !== null &&\n 'jsonrpc' in message &&\n (message as { jsonrpc: string }).jsonrpc === '2.0' &&\n 'id' in message &&\n ('result' in message || 'error' in message)\n );\n}\n\n/**\n * Validates MCP server instance with type checking\n * @param instance - Object to validate as MCP server instance\n * @returns True if instance has required MCP server methods\n */\nexport function validateMcpServerInstance(instance: unknown): boolean {\n if (\n typeof instance === 'object' &&\n instance !== null &&\n 'resource' in instance &&\n 'tool' in instance &&\n 'prompt' in instance &&\n 'connect' in instance\n ) {\n return true;\n }\n DEBUG_BUILD && debug.warn('Did not patch MCP server. Interface is incompatible.');\n return false;\n}\n\n/**\n * Check if the item is a valid content item\n * @param item - The item to check\n * @returns True if the item is a valid content item, false otherwise\n */\nexport function isValidContentItem(item: unknown): item is Record {\n return item != null && typeof item === 'object';\n}\n","/**\n * Result extraction functions for MCP server instrumentation\n *\n * Handles extraction of attributes from tool and prompt execution results.\n */\n\nimport {\n MCP_PROMPT_RESULT_DESCRIPTION_ATTRIBUTE,\n MCP_PROMPT_RESULT_MESSAGE_COUNT_ATTRIBUTE,\n MCP_TOOL_RESULT_CONTENT_COUNT_ATTRIBUTE,\n MCP_TOOL_RESULT_IS_ERROR_ATTRIBUTE,\n} from './attributes';\nimport { isValidContentItem } from './validation';\n\n/**\n * Build attributes for tool result content items\n * @param content - Array of content items from tool result\n * @param includeContent - Whether to include actual content (text, URIs) or just metadata\n * @returns Attributes extracted from each content item\n */\nfunction buildAllContentItemAttributes(\n content: unknown[],\n includeContent: boolean,\n): Record {\n const attributes: Record = {\n [MCP_TOOL_RESULT_CONTENT_COUNT_ATTRIBUTE]: content.length,\n };\n\n for (const [i, item] of content.entries()) {\n if (!isValidContentItem(item)) {\n continue;\n }\n\n const prefix = content.length === 1 ? 'mcp.tool.result' : `mcp.tool.result.${i}`;\n\n if (typeof item.type === 'string') {\n attributes[`${prefix}.content_type`] = item.type;\n }\n\n if (includeContent) {\n const safeSet = (key: string, value: unknown): void => {\n if (typeof value === 'string') {\n attributes[`${prefix}.${key}`] = value;\n }\n };\n\n safeSet('mime_type', item.mimeType);\n safeSet('uri', item.uri);\n safeSet('name', item.name);\n\n if (typeof item.text === 'string') {\n attributes[`${prefix}.content`] = item.text;\n }\n\n if (typeof item.data === 'string') {\n attributes[`${prefix}.data_size`] = item.data.length;\n }\n\n const resource = item.resource;\n if (isValidContentItem(resource)) {\n safeSet('resource_uri', resource.uri);\n safeSet('resource_mime_type', resource.mimeType);\n }\n }\n }\n\n return attributes;\n}\n\n/**\n * Extract tool result attributes for span instrumentation\n * @param result - Tool execution result\n * @param recordOutputs - Whether to include actual content or just metadata (counts, error status)\n * @returns Attributes extracted from tool result content\n */\nexport function extractToolResultAttributes(\n result: unknown,\n recordOutputs: boolean,\n): Record {\n if (!isValidContentItem(result)) {\n return {};\n }\n\n const attributes = Array.isArray(result.content) ? buildAllContentItemAttributes(result.content, recordOutputs) : {};\n\n if (typeof result.isError === 'boolean') {\n attributes[MCP_TOOL_RESULT_IS_ERROR_ATTRIBUTE] = result.isError;\n }\n\n return attributes;\n}\n\n/**\n * Extract prompt result attributes for span instrumentation\n * @param result - Prompt execution result\n * @param recordOutputs - Whether to include actual content or just metadata (counts)\n * @returns Attributes extracted from prompt result\n */\nexport function extractPromptResultAttributes(\n result: unknown,\n recordOutputs: boolean,\n): Record {\n const attributes: Record = {};\n if (!isValidContentItem(result)) {\n return attributes;\n }\n\n if (recordOutputs && typeof result.description === 'string') {\n attributes[MCP_PROMPT_RESULT_DESCRIPTION_ATTRIBUTE] = result.description;\n }\n\n if (Array.isArray(result.messages)) {\n attributes[MCP_PROMPT_RESULT_MESSAGE_COUNT_ATTRIBUTE] = result.messages.length;\n\n if (recordOutputs) {\n const messages = result.messages;\n for (const [i, message] of messages.entries()) {\n if (!isValidContentItem(message)) {\n continue;\n }\n\n const prefix = messages.length === 1 ? 'mcp.prompt.result' : `mcp.prompt.result.${i}`;\n\n const safeSet = (key: string, value: unknown): void => {\n if (typeof value === 'string') {\n const attrName = messages.length === 1 ? `${prefix}.message_${key}` : `${prefix}.${key}`;\n attributes[attrName] = value;\n }\n };\n\n safeSet('role', message.role);\n\n if (isValidContentItem(message.content)) {\n const content = message.content;\n if (typeof content.text === 'string') {\n const attrName = messages.length === 1 ? `${prefix}.message_content` : `${prefix}.content`;\n attributes[attrName] = content.text;\n }\n }\n }\n }\n }\n\n return attributes;\n}\n","/**\n * Session data management for MCP server instrumentation\n *\n * Uses sessionId as the primary key for stateful transports. This handles the wrapper\n * transport pattern (e.g., NodeStreamableHTTPServerTransport wrapping WebStandardStreamableHTTPServerTransport)\n * where different methods may receive different `this` values but share the same sessionId.\n *\n * Falls back to WeakMap by transport instance for stateless transports (no sessionId).\n */\n\nimport type { MCPTransport, PartyInfo, SessionData } from './types';\n\n/**\n * Session-scoped data storage for stateful transports (with sessionId)\n * @internal Using sessionId as key handles wrapper transport patterns\n */\nconst sessionToSessionData = new Map();\n\n/**\n * Transport-scoped data storage fallback for stateless transports (no sessionId)\n * @internal WeakMap allows automatic cleanup when transport is garbage collected\n */\nconst statelessSessionData = new WeakMap();\n\n/**\n * Gets session data for a transport, checking sessionId first then fallback\n * @internal\n */\nfunction getSessionData(transport: MCPTransport): SessionData | undefined {\n const sessionId = transport.sessionId;\n if (sessionId) {\n return sessionToSessionData.get(sessionId);\n }\n return statelessSessionData.get(transport);\n}\n\n/**\n * Sets session data for a transport, using sessionId when available\n * @internal\n */\nfunction setSessionData(transport: MCPTransport, data: SessionData): void {\n const sessionId = transport.sessionId;\n if (sessionId) {\n sessionToSessionData.set(sessionId, data);\n } else {\n statelessSessionData.set(transport, data);\n }\n}\n\n/**\n * Stores session data for a transport\n * @param transport - MCP transport instance\n * @param sessionData - Session data to store\n */\nexport function storeSessionDataForTransport(transport: MCPTransport, sessionData: SessionData): void {\n // For stateful transports, always store (sessionId is the key)\n // For stateless transports, also store (transport instance is the key)\n setSessionData(transport, sessionData);\n}\n\n/**\n * Updates session data for a transport (merges with existing data)\n * @param transport - MCP transport instance\n * @param partialSessionData - Partial session data to merge with existing data\n */\nexport function updateSessionDataForTransport(transport: MCPTransport, partialSessionData: Partial): void {\n const existingData = getSessionData(transport) || {};\n setSessionData(transport, { ...existingData, ...partialSessionData });\n}\n\n/**\n * Retrieves client information for a transport\n * @param transport - MCP transport instance\n * @returns Client information if available\n */\nexport function getClientInfoForTransport(transport: MCPTransport): PartyInfo | undefined {\n return getSessionData(transport)?.clientInfo;\n}\n\n/**\n * Retrieves protocol version for a transport\n * @param transport - MCP transport instance\n * @returns Protocol version if available\n */\nexport function getProtocolVersionForTransport(transport: MCPTransport): string | undefined {\n return getSessionData(transport)?.protocolVersion;\n}\n\n/**\n * Retrieves full session data for a transport\n * @param transport - MCP transport instance\n * @returns Complete session data if available\n */\nexport function getSessionDataForTransport(transport: MCPTransport): SessionData | undefined {\n return getSessionData(transport);\n}\n\n/**\n * Cleans up session data for a specific transport (when that transport closes)\n * @param transport - MCP transport instance\n */\nexport function cleanupSessionDataForTransport(transport: MCPTransport): void {\n const sessionId = transport.sessionId;\n if (sessionId) {\n sessionToSessionData.delete(sessionId);\n }\n // Note: WeakMap entries are automatically cleaned up when transport is GC'd\n // No explicit delete needed for statelessSessionData\n}\n","/**\n * Session and party info extraction functions for MCP server instrumentation\n *\n * Handles extraction of client/server info and session data from MCP messages.\n */\n\nimport {\n CLIENT_ADDRESS_ATTRIBUTE,\n CLIENT_PORT_ATTRIBUTE,\n MCP_PROTOCOL_VERSION_ATTRIBUTE,\n MCP_SERVER_NAME_ATTRIBUTE,\n MCP_SERVER_TITLE_ATTRIBUTE,\n MCP_SERVER_VERSION_ATTRIBUTE,\n MCP_SESSION_ID_ATTRIBUTE,\n MCP_TRANSPORT_ATTRIBUTE,\n NETWORK_PROTOCOL_VERSION_ATTRIBUTE,\n NETWORK_TRANSPORT_ATTRIBUTE,\n} from './attributes';\nimport {\n getClientInfoForTransport,\n getProtocolVersionForTransport,\n getSessionDataForTransport,\n} from './sessionManagement';\nimport type { ExtraHandlerData, JsonRpcRequest, MCPTransport, PartyInfo, SessionData } from './types';\nimport { isValidContentItem } from './validation';\n\n/**\n * Extracts and validates PartyInfo from an unknown object\n * @param obj - Unknown object that might contain party info\n * @returns Validated PartyInfo object with only string properties\n */\nfunction extractPartyInfo(obj: unknown): PartyInfo {\n const partyInfo: PartyInfo = {};\n\n if (isValidContentItem(obj)) {\n if (typeof obj.name === 'string') {\n partyInfo.name = obj.name;\n }\n if (typeof obj.title === 'string') {\n partyInfo.title = obj.title;\n }\n if (typeof obj.version === 'string') {\n partyInfo.version = obj.version;\n }\n }\n\n return partyInfo;\n}\n\n/**\n * Extracts session data from \"initialize\" requests\n * @param request - JSON-RPC \"initialize\" request containing client info and protocol version\n * @returns Session data extracted from request parameters including protocol version and client info\n */\nexport function extractSessionDataFromInitializeRequest(request: JsonRpcRequest): SessionData {\n const sessionData: SessionData = {};\n if (isValidContentItem(request.params)) {\n if (typeof request.params.protocolVersion === 'string') {\n sessionData.protocolVersion = request.params.protocolVersion;\n }\n if (request.params.clientInfo) {\n sessionData.clientInfo = extractPartyInfo(request.params.clientInfo);\n }\n }\n return sessionData;\n}\n\n/**\n * Extracts session data from \"initialize\" response\n * @param result - \"initialize\" response result containing server info and protocol version\n * @returns Partial session data extracted from response including protocol version and server info\n */\nexport function extractSessionDataFromInitializeResponse(result: unknown): Partial {\n const sessionData: Partial = {};\n if (isValidContentItem(result)) {\n if (typeof result.protocolVersion === 'string') {\n sessionData.protocolVersion = result.protocolVersion;\n }\n if (result.serverInfo) {\n sessionData.serverInfo = extractPartyInfo(result.serverInfo);\n }\n }\n return sessionData;\n}\n\n/**\n * Build client attributes from stored client info\n * @param transport - MCP transport instance\n * @returns Client attributes for span instrumentation\n */\nexport function getClientAttributes(transport: MCPTransport): Record {\n const clientInfo = getClientInfoForTransport(transport);\n const attributes: Record = {};\n\n if (clientInfo?.name) {\n attributes['mcp.client.name'] = clientInfo.name;\n }\n if (clientInfo?.title) {\n attributes['mcp.client.title'] = clientInfo.title;\n }\n if (clientInfo?.version) {\n attributes['mcp.client.version'] = clientInfo.version;\n }\n\n return attributes;\n}\n\n/**\n * Build client attributes from PartyInfo directly\n * @param clientInfo - Client party info\n * @returns Client attributes for span instrumentation\n */\nexport function buildClientAttributesFromInfo(clientInfo?: PartyInfo): Record {\n const attributes: Record = {};\n\n if (clientInfo?.name) {\n attributes['mcp.client.name'] = clientInfo.name;\n }\n if (clientInfo?.title) {\n attributes['mcp.client.title'] = clientInfo.title;\n }\n if (clientInfo?.version) {\n attributes['mcp.client.version'] = clientInfo.version;\n }\n\n return attributes;\n}\n\n/**\n * Build server attributes from stored server info\n * @param transport - MCP transport instance\n * @returns Server attributes for span instrumentation\n */\nexport function getServerAttributes(transport: MCPTransport): Record {\n const serverInfo = getSessionDataForTransport(transport)?.serverInfo;\n const attributes: Record = {};\n\n if (serverInfo?.name) {\n attributes[MCP_SERVER_NAME_ATTRIBUTE] = serverInfo.name;\n }\n if (serverInfo?.title) {\n attributes[MCP_SERVER_TITLE_ATTRIBUTE] = serverInfo.title;\n }\n if (serverInfo?.version) {\n attributes[MCP_SERVER_VERSION_ATTRIBUTE] = serverInfo.version;\n }\n\n return attributes;\n}\n\n/**\n * Build server attributes from PartyInfo directly\n * @param serverInfo - Server party info\n * @returns Server attributes for span instrumentation\n */\nexport function buildServerAttributesFromInfo(serverInfo?: PartyInfo): Record {\n const attributes: Record = {};\n\n if (serverInfo?.name) {\n attributes[MCP_SERVER_NAME_ATTRIBUTE] = serverInfo.name;\n }\n if (serverInfo?.title) {\n attributes[MCP_SERVER_TITLE_ATTRIBUTE] = serverInfo.title;\n }\n if (serverInfo?.version) {\n attributes[MCP_SERVER_VERSION_ATTRIBUTE] = serverInfo.version;\n }\n\n return attributes;\n}\n\n/**\n * Extracts client connection info from extra handler data\n * @param extra - Extra handler data containing connection info\n * @returns Client address and port information\n */\nexport function extractClientInfo(extra: ExtraHandlerData): {\n address?: string;\n port?: number;\n} {\n return {\n address:\n extra?.requestInfo?.remoteAddress ||\n extra?.clientAddress ||\n extra?.request?.ip ||\n extra?.request?.connection?.remoteAddress,\n port: extra?.requestInfo?.remotePort || extra?.clientPort || extra?.request?.connection?.remotePort,\n };\n}\n\n/**\n * Extracts transport types based on transport constructor name\n * @param transport - MCP transport instance\n * @returns Transport type mapping for span attributes\n */\nexport function getTransportTypes(transport: MCPTransport): { mcpTransport: string; networkTransport: string } {\n if (!transport?.constructor) {\n return { mcpTransport: 'unknown', networkTransport: 'unknown' };\n }\n const transportName = typeof transport.constructor?.name === 'string' ? transport.constructor.name : 'unknown';\n let networkTransport = 'unknown';\n\n const lowerTransportName = transportName.toLowerCase();\n if (lowerTransportName.includes('stdio')) {\n networkTransport = 'pipe';\n } else if (lowerTransportName.includes('http') || lowerTransportName.includes('sse')) {\n networkTransport = 'tcp';\n }\n\n return {\n mcpTransport: transportName,\n networkTransport,\n };\n}\n\n/**\n * Build transport and network attributes\n * @param transport - MCP transport instance\n * @param extra - Optional extra handler data\n * @returns Transport attributes for span instrumentation\n * @note sessionId may be undefined during initial setup - session should be established by client during initialize flow\n */\nexport function buildTransportAttributes(\n transport: MCPTransport,\n extra?: ExtraHandlerData,\n): Record {\n const sessionId = transport && 'sessionId' in transport ? transport.sessionId : undefined;\n const clientInfo = extra ? extractClientInfo(extra) : {};\n const { mcpTransport, networkTransport } = getTransportTypes(transport);\n const clientAttributes = getClientAttributes(transport);\n const serverAttributes = getServerAttributes(transport);\n const protocolVersion = getProtocolVersionForTransport(transport);\n\n const attributes = {\n ...(sessionId && { [MCP_SESSION_ID_ATTRIBUTE]: sessionId }),\n ...(clientInfo.address && { [CLIENT_ADDRESS_ATTRIBUTE]: clientInfo.address }),\n ...(clientInfo.port && { [CLIENT_PORT_ATTRIBUTE]: clientInfo.port }),\n [MCP_TRANSPORT_ATTRIBUTE]: mcpTransport,\n [NETWORK_TRANSPORT_ATTRIBUTE]: networkTransport,\n [NETWORK_PROTOCOL_VERSION_ATTRIBUTE]: '2.0',\n ...(protocolVersion && { [MCP_PROTOCOL_VERSION_ATTRIBUTE]: protocolVersion }),\n ...clientAttributes,\n ...serverAttributes,\n };\n\n return attributes;\n}\n","/**\n * Request-span correlation system for MCP server instrumentation\n *\n * Handles mapping requestId to span data for correlation with handler execution.\n *\n * Uses sessionId as the primary key for stateful transports. This handles the wrapper\n * transport pattern (e.g., NodeStreamableHTTPServerTransport wrapping WebStandardStreamableHTTPServerTransport)\n * where onmessage and send may receive different `this` values but share the same sessionId.\n *\n * Falls back to WeakMap by transport instance for stateless transports (no sessionId).\n */\n\nimport { SPAN_STATUS_ERROR } from '../../tracing';\nimport type { Span } from '../../types-hoist/span';\nimport { MCP_PROTOCOL_VERSION_ATTRIBUTE } from './attributes';\nimport { extractPromptResultAttributes, extractToolResultAttributes } from './resultExtraction';\nimport { buildServerAttributesFromInfo, extractSessionDataFromInitializeResponse } from './sessionExtraction';\nimport type { MCPTransport, RequestId, RequestSpanMapValue, ResolvedMcpOptions } from './types';\n\n/**\n * Session-scoped correlation for stateful transports (with sessionId)\n * @internal Using sessionId as key handles wrapper transport patterns where\n * different transport objects share the same logical session\n */\nconst sessionToSpanMap = new Map>();\n\n/**\n * Transport-scoped correlation fallback for stateless transports (no sessionId)\n * @internal WeakMap allows automatic cleanup when transport is garbage collected\n */\nconst statelessSpanMap = new WeakMap>();\n\n/**\n * Gets or creates the span map for a transport, using sessionId when available\n * @internal\n * @param transport - MCP transport instance\n * @returns Span map for the transport/session\n */\nfunction getOrCreateSpanMap(transport: MCPTransport): Map {\n const sessionId = transport.sessionId;\n\n if (sessionId) {\n // Stateful transport - use sessionId as key (handles wrapper pattern)\n let spanMap = sessionToSpanMap.get(sessionId);\n if (!spanMap) {\n spanMap = new Map();\n sessionToSpanMap.set(sessionId, spanMap);\n }\n return spanMap;\n }\n\n // Stateless fallback - use transport instance as key\n let spanMap = statelessSpanMap.get(transport);\n if (!spanMap) {\n spanMap = new Map();\n statelessSpanMap.set(transport, spanMap);\n }\n return spanMap;\n}\n\n/**\n * Stores span context for later correlation with handler execution\n * @param transport - MCP transport instance\n * @param requestId - Request identifier\n * @param span - Active span to correlate\n * @param method - MCP method name\n */\nexport function storeSpanForRequest(transport: MCPTransport, requestId: RequestId, span: Span, method: string): void {\n const spanMap = getOrCreateSpanMap(transport);\n spanMap.set(requestId, {\n span,\n method,\n // oxlint-disable-next-line sdk/no-unsafe-random-apis\n startTime: Date.now(),\n });\n}\n\n/**\n * Completes span with results and cleans up correlation\n * @param transport - MCP transport instance\n * @param requestId - Request identifier\n * @param result - Execution result for attribute extraction\n * @param options - Resolved MCP options\n */\nexport function completeSpanWithResults(\n transport: MCPTransport,\n requestId: RequestId,\n result: unknown,\n options: ResolvedMcpOptions,\n): void {\n const spanMap = getOrCreateSpanMap(transport);\n const spanData = spanMap.get(requestId);\n if (spanData) {\n const { span, method } = spanData;\n\n if (method === 'initialize') {\n const sessionData = extractSessionDataFromInitializeResponse(result);\n const serverAttributes = buildServerAttributesFromInfo(sessionData.serverInfo);\n\n const initAttributes: Record = {\n ...serverAttributes,\n };\n if (sessionData.protocolVersion) {\n initAttributes[MCP_PROTOCOL_VERSION_ATTRIBUTE] = sessionData.protocolVersion;\n }\n\n span.setAttributes(initAttributes);\n } else if (method === 'tools/call') {\n const toolAttributes = extractToolResultAttributes(result, options.recordOutputs);\n span.setAttributes(toolAttributes);\n } else if (method === 'prompts/get') {\n const promptAttributes = extractPromptResultAttributes(result, options.recordOutputs);\n span.setAttributes(promptAttributes);\n }\n\n span.end();\n spanMap.delete(requestId);\n }\n}\n\n/**\n * Cleans up pending spans for a specific transport (when that transport closes)\n * @param transport - MCP transport instance\n */\nexport function cleanupPendingSpansForTransport(transport: MCPTransport): void {\n const sessionId = transport.sessionId;\n\n // Try sessionId-based cleanup first (for stateful transports)\n if (sessionId) {\n const spanMap = sessionToSpanMap.get(sessionId);\n if (spanMap) {\n for (const [, spanData] of spanMap) {\n spanData.span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: 'cancelled',\n });\n spanData.span.end();\n }\n sessionToSpanMap.delete(sessionId);\n }\n return;\n }\n\n // Fallback to transport-based cleanup (for stateless transports)\n const spanMap = statelessSpanMap.get(transport);\n if (spanMap) {\n for (const [, spanData] of spanMap) {\n spanData.span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: 'cancelled',\n });\n spanData.span.end();\n }\n spanMap.clear();\n // Note: WeakMap entries are automatically cleaned up when transport is GC'd\n }\n}\n","/**\n * Method configuration and request processing for MCP server instrumentation\n */\n\nimport {\n MCP_PROMPT_NAME_ATTRIBUTE,\n MCP_REQUEST_ARGUMENT,\n MCP_RESOURCE_URI_ATTRIBUTE,\n MCP_TOOL_NAME_ATTRIBUTE,\n} from './attributes';\nimport type { MethodConfig } from './types';\n\n/**\n * Configuration for MCP methods to extract targets and arguments\n * @internal Maps method names to their extraction configuration\n */\nconst METHOD_CONFIGS: Record = {\n 'tools/call': {\n targetField: 'name',\n targetAttribute: MCP_TOOL_NAME_ATTRIBUTE,\n captureArguments: true,\n argumentsField: 'arguments',\n },\n 'resources/read': {\n targetField: 'uri',\n targetAttribute: MCP_RESOURCE_URI_ATTRIBUTE,\n captureUri: true,\n },\n 'resources/subscribe': {\n targetField: 'uri',\n targetAttribute: MCP_RESOURCE_URI_ATTRIBUTE,\n },\n 'resources/unsubscribe': {\n targetField: 'uri',\n targetAttribute: MCP_RESOURCE_URI_ATTRIBUTE,\n },\n 'prompts/get': {\n targetField: 'name',\n targetAttribute: MCP_PROMPT_NAME_ATTRIBUTE,\n captureName: true,\n captureArguments: true,\n argumentsField: 'arguments',\n },\n};\n\n/**\n * Extracts target info from method and params based on method type\n * @param method - MCP method name\n * @param params - Method parameters\n * @returns Target name and attributes for span instrumentation\n */\nexport function extractTargetInfo(\n method: string,\n params: Record,\n): {\n target?: string;\n attributes: Record;\n} {\n const config = METHOD_CONFIGS[method];\n if (!config) {\n return { attributes: {} };\n }\n\n const target =\n config.targetField && typeof params?.[config.targetField] === 'string'\n ? (params[config.targetField] as string)\n : undefined;\n\n return {\n target,\n attributes: target && config.targetAttribute ? { [config.targetAttribute]: target } : {},\n };\n}\n\n/**\n * Extracts request arguments based on method type\n * @param method - MCP method name\n * @param params - Method parameters\n * @returns Arguments as span attributes with mcp.request.argument prefix\n */\nexport function getRequestArguments(method: string, params: Record): Record {\n const args: Record = {};\n const config = METHOD_CONFIGS[method];\n\n if (!config) {\n return args;\n }\n\n if (config.captureArguments && config.argumentsField && params?.[config.argumentsField]) {\n const argumentsObj = params[config.argumentsField];\n if (typeof argumentsObj === 'object' && argumentsObj !== null) {\n for (const [key, value] of Object.entries(argumentsObj as Record)) {\n args[`${MCP_REQUEST_ARGUMENT}.${key.toLowerCase()}`] = JSON.stringify(value);\n }\n }\n }\n\n if (config.captureUri && params?.uri) {\n args[`${MCP_REQUEST_ARGUMENT}.uri`] = JSON.stringify(params.uri);\n }\n\n if (config.captureName && params?.name) {\n args[`${MCP_REQUEST_ARGUMENT}.name`] = JSON.stringify(params.name);\n }\n\n return args;\n}\n","/**\n * Core attribute extraction and building functions for MCP server instrumentation\n */\n\nimport { isURLObjectRelative, parseStringToURLObject } from '../../utils/url';\nimport {\n MCP_LOGGING_DATA_TYPE_ATTRIBUTE,\n MCP_LOGGING_LEVEL_ATTRIBUTE,\n MCP_LOGGING_LOGGER_ATTRIBUTE,\n MCP_LOGGING_MESSAGE_ATTRIBUTE,\n MCP_REQUEST_ID_ATTRIBUTE,\n MCP_RESOURCE_URI_ATTRIBUTE,\n} from './attributes';\nimport { extractTargetInfo, getRequestArguments } from './methodConfig';\nimport type { JsonRpcNotification, JsonRpcRequest, McpSpanType } from './types';\n\n/**\n * Formats logging data for span attributes\n * @internal\n */\nfunction formatLoggingData(data: unknown): string {\n return typeof data === 'string' ? data : JSON.stringify(data);\n}\n\n/**\n * Extracts additional attributes for specific notification types\n * @param method - Notification method name\n * @param params - Notification parameters\n * @param recordInputs - Whether to include actual content or just metadata\n * @returns Method-specific attributes for span instrumentation\n */\nexport function getNotificationAttributes(\n method: string,\n params: Record,\n recordInputs?: boolean,\n): Record {\n const attributes: Record = {};\n\n switch (method) {\n case 'notifications/cancelled':\n if (params?.requestId) {\n attributes['mcp.cancelled.request_id'] = String(params.requestId);\n }\n if (params?.reason) {\n attributes['mcp.cancelled.reason'] = String(params.reason);\n }\n break;\n\n case 'notifications/message':\n if (params?.level) {\n attributes[MCP_LOGGING_LEVEL_ATTRIBUTE] = String(params.level);\n }\n if (params?.logger) {\n attributes[MCP_LOGGING_LOGGER_ATTRIBUTE] = String(params.logger);\n }\n if (params?.data !== undefined) {\n attributes[MCP_LOGGING_DATA_TYPE_ATTRIBUTE] = typeof params.data;\n if (recordInputs) {\n attributes[MCP_LOGGING_MESSAGE_ATTRIBUTE] = formatLoggingData(params.data);\n }\n }\n break;\n\n case 'notifications/progress':\n if (params?.progressToken) {\n attributes['mcp.progress.token'] = String(params.progressToken);\n }\n if (typeof params?.progress === 'number') {\n attributes['mcp.progress.current'] = params.progress;\n }\n if (typeof params?.total === 'number') {\n attributes['mcp.progress.total'] = params.total;\n if (typeof params?.progress === 'number') {\n attributes['mcp.progress.percentage'] = (params.progress / params.total) * 100;\n }\n }\n if (params?.message) {\n attributes['mcp.progress.message'] = String(params.message);\n }\n break;\n\n case 'notifications/resources/updated':\n if (params?.uri) {\n attributes[MCP_RESOURCE_URI_ATTRIBUTE] = String(params.uri);\n const urlObject = parseStringToURLObject(String(params.uri));\n if (urlObject && !isURLObjectRelative(urlObject)) {\n attributes['mcp.resource.protocol'] = urlObject.protocol.replace(':', '');\n }\n }\n break;\n\n case 'notifications/initialized':\n attributes['mcp.lifecycle.phase'] = 'initialization_complete';\n attributes['mcp.protocol.ready'] = 1;\n break;\n }\n\n return attributes;\n}\n\n/**\n * Build type-specific attributes based on message type\n * @param type - Span type (request or notification)\n * @param message - JSON-RPC message\n * @param params - Optional parameters for attribute extraction\n * @param recordInputs - Whether to capture input arguments in spans\n * @returns Type-specific attributes for span instrumentation\n */\nexport function buildTypeSpecificAttributes(\n type: McpSpanType,\n message: JsonRpcRequest | JsonRpcNotification,\n params?: Record,\n recordInputs?: boolean,\n): Record {\n if (type === 'request') {\n const request = message as JsonRpcRequest;\n const targetInfo = extractTargetInfo(request.method, params || {});\n\n return {\n ...(request.id !== undefined && { [MCP_REQUEST_ID_ATTRIBUTE]: String(request.id) }),\n ...targetInfo.attributes,\n ...(recordInputs ? getRequestArguments(request.method, params || {}) : {}),\n };\n }\n\n return getNotificationAttributes(message.method, params || {}, recordInputs);\n}\n\n// Re-export buildTransportAttributes for spans.ts\nexport { buildTransportAttributes } from './sessionExtraction';\n","/**\n * PII filtering for MCP server spans\n *\n * Removes network-level sensitive data when sendDefaultPii is false.\n * Input/output data (request arguments, tool/prompt results) is controlled\n * separately via recordInputs/recordOutputs options.\n */\nimport type { SpanAttributeValue } from '../../types-hoist/span';\nimport { CLIENT_ADDRESS_ATTRIBUTE, CLIENT_PORT_ATTRIBUTE, MCP_RESOURCE_URI_ATTRIBUTE } from './attributes';\n\n/**\n * Network PII attributes that should be removed when sendDefaultPii is false\n * @internal\n */\nconst NETWORK_PII_ATTRIBUTES = new Set([CLIENT_ADDRESS_ATTRIBUTE, CLIENT_PORT_ATTRIBUTE, MCP_RESOURCE_URI_ATTRIBUTE]);\n\n/**\n * Checks if an attribute key should be considered network PII.\n *\n * Returns true for:\n * - client.address (IP address)\n * - client.port (port number)\n * - mcp.resource.uri (potentially sensitive URIs)\n *\n * @param key - Attribute key to evaluate\n * @returns true if the attribute should be filtered out (is network PII), false if it should be preserved\n * @internal\n */\nfunction isNetworkPiiAttribute(key: string): boolean {\n return NETWORK_PII_ATTRIBUTES.has(key);\n}\n\n/**\n * Removes network PII attributes from span data when sendDefaultPii is false\n * @param spanData - Raw span attributes\n * @param sendDefaultPii - Whether to include PII data\n * @returns Filtered span attributes\n */\nexport function filterMcpPiiFromSpanData(\n spanData: Record,\n sendDefaultPii: boolean,\n): Record {\n if (sendDefaultPii) {\n return spanData as Record;\n }\n\n return Object.entries(spanData).reduce(\n (acc, [key, value]) => {\n if (!isNetworkPiiAttribute(key)) {\n acc[key] = value as SpanAttributeValue;\n }\n return acc;\n },\n {} as Record,\n );\n}\n","/**\n * Span creation and management functions for MCP server instrumentation\n *\n * Provides unified span creation following OpenTelemetry MCP semantic conventions and our opinitionated take on MCP.\n * Handles both request and notification spans with attribute extraction.\n */\n\nimport { getClient } from '../../currentScopes';\nimport {\n SEMANTIC_ATTRIBUTE_SENTRY_OP,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n} from '../../semanticAttributes';\nimport { startSpan } from '../../tracing';\nimport { buildTransportAttributes, buildTypeSpecificAttributes } from './attributeExtraction';\nimport {\n MCP_FUNCTION_ORIGIN_VALUE,\n MCP_METHOD_NAME_ATTRIBUTE,\n MCP_NOTIFICATION_CLIENT_TO_SERVER_OP_VALUE,\n MCP_NOTIFICATION_ORIGIN_VALUE,\n MCP_NOTIFICATION_SERVER_TO_CLIENT_OP_VALUE,\n MCP_ROUTE_SOURCE_VALUE,\n MCP_SERVER_OP_VALUE,\n} from './attributes';\nimport { extractTargetInfo } from './methodConfig';\nimport { filterMcpPiiFromSpanData } from './piiFiltering';\nimport type {\n ExtraHandlerData,\n JsonRpcNotification,\n JsonRpcRequest,\n McpSpanConfig,\n MCPTransport,\n ResolvedMcpOptions,\n} from './types';\n\n/**\n * Creates a span name based on the method and target\n * @internal\n * @param method - MCP method name\n * @param target - Optional target identifier\n * @returns Formatted span name\n */\nfunction createSpanName(method: string, target?: string): string {\n return target ? `${method} ${target}` : method;\n}\n\n/**\n * Build Sentry-specific attributes based on span type\n * @internal\n * @param type - Span type configuration\n * @returns Sentry-specific attributes\n */\nfunction buildSentryAttributes(type: McpSpanConfig['type']): Record {\n let op: string;\n let origin: string;\n\n switch (type) {\n case 'request':\n op = MCP_SERVER_OP_VALUE;\n origin = MCP_FUNCTION_ORIGIN_VALUE;\n break;\n case 'notification-incoming':\n op = MCP_NOTIFICATION_CLIENT_TO_SERVER_OP_VALUE;\n origin = MCP_NOTIFICATION_ORIGIN_VALUE;\n break;\n case 'notification-outgoing':\n op = MCP_NOTIFICATION_SERVER_TO_CLIENT_OP_VALUE;\n origin = MCP_NOTIFICATION_ORIGIN_VALUE;\n break;\n }\n\n return {\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: op,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: origin,\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: MCP_ROUTE_SOURCE_VALUE,\n };\n}\n\n/**\n * Unified builder for creating MCP spans\n * @internal\n * @param config - Span configuration\n * @returns Created span\n */\nfunction createMcpSpan(config: McpSpanConfig): unknown {\n const { type, message, transport, extra, callback, options } = config;\n const { method } = message;\n const params = message.params;\n\n // Determine span name based on type and OTEL conventions\n let spanName: string;\n if (type === 'request') {\n const targetInfo = extractTargetInfo(method, params || {});\n spanName = createSpanName(method, targetInfo.target);\n } else {\n // For notifications, use method name directly per OpenTelemetry conventions\n spanName = method;\n }\n\n const rawAttributes: Record = {\n ...buildTransportAttributes(transport, extra),\n [MCP_METHOD_NAME_ATTRIBUTE]: method,\n ...buildTypeSpecificAttributes(type, message, params, options?.recordInputs),\n ...buildSentryAttributes(type),\n };\n\n const client = getClient();\n const sendDefaultPii = Boolean(client?.getOptions().sendDefaultPii);\n const attributes = filterMcpPiiFromSpanData(rawAttributes, sendDefaultPii) as Record;\n\n return startSpan(\n {\n name: spanName,\n forceTransaction: true,\n attributes,\n },\n callback,\n );\n}\n\n/**\n * Creates a span for incoming MCP notifications\n * @param jsonRpcMessage - Notification message\n * @param transport - MCP transport instance\n * @param extra - Extra handler data\n * @param options - Resolved MCP options\n * @param callback - Span execution callback\n * @returns Span execution result\n */\nexport function createMcpNotificationSpan(\n jsonRpcMessage: JsonRpcNotification,\n transport: MCPTransport,\n extra: ExtraHandlerData,\n options: ResolvedMcpOptions,\n callback: () => unknown,\n): unknown {\n return createMcpSpan({\n type: 'notification-incoming',\n message: jsonRpcMessage,\n transport,\n extra,\n callback,\n options,\n });\n}\n\n/**\n * Creates a span for outgoing MCP notifications\n * @param jsonRpcMessage - Notification message\n * @param transport - MCP transport instance\n * @param options - Resolved MCP options\n * @param callback - Span execution callback\n * @returns Span execution result\n */\nexport function createMcpOutgoingNotificationSpan(\n jsonRpcMessage: JsonRpcNotification,\n transport: MCPTransport,\n options: ResolvedMcpOptions,\n callback: () => unknown,\n): unknown {\n return createMcpSpan({\n type: 'notification-outgoing',\n message: jsonRpcMessage,\n transport,\n options,\n callback,\n });\n}\n\n/**\n * Builds span configuration for MCP server requests\n * @param jsonRpcMessage - Request message\n * @param transport - MCP transport instance\n * @param extra - Optional extra handler data\n * @param options - Resolved MCP options\n * @returns Span configuration object\n */\nexport function buildMcpServerSpanConfig(\n jsonRpcMessage: JsonRpcRequest,\n transport: MCPTransport,\n extra?: ExtraHandlerData,\n options?: ResolvedMcpOptions,\n): {\n name: string;\n op: string;\n forceTransaction: boolean;\n attributes: Record;\n} {\n const { method } = jsonRpcMessage;\n const params = jsonRpcMessage.params;\n\n const targetInfo = extractTargetInfo(method, params || {});\n const spanName = createSpanName(method, targetInfo.target);\n\n const rawAttributes: Record = {\n ...buildTransportAttributes(transport, extra),\n [MCP_METHOD_NAME_ATTRIBUTE]: method,\n ...buildTypeSpecificAttributes('request', jsonRpcMessage, params, options?.recordInputs),\n ...buildSentryAttributes('request'),\n };\n\n const client = getClient();\n const sendDefaultPii = Boolean(client?.getOptions().sendDefaultPii);\n const attributes = filterMcpPiiFromSpanData(rawAttributes, sendDefaultPii) as Record;\n\n return {\n name: spanName,\n op: MCP_SERVER_OP_VALUE,\n forceTransaction: true,\n attributes,\n };\n}\n","/**\n * Transport layer instrumentation for MCP server\n *\n * Handles message interception and response correlation.\n * @see https://modelcontextprotocol.io/specification/2025-06-18/basic/transports\n */\n\nimport { getIsolationScope, withIsolationScope } from '../../currentScopes';\nimport { startInactiveSpan, withActiveSpan } from '../../tracing';\nimport { fill } from '../../utils/object';\nimport { MCP_PROTOCOL_VERSION_ATTRIBUTE } from './attributes';\nimport { cleanupPendingSpansForTransport, completeSpanWithResults, storeSpanForRequest } from './correlation';\nimport { captureError } from './errorCapture';\nimport {\n buildClientAttributesFromInfo,\n extractSessionDataFromInitializeRequest,\n extractSessionDataFromInitializeResponse,\n} from './sessionExtraction';\nimport {\n cleanupSessionDataForTransport,\n storeSessionDataForTransport,\n updateSessionDataForTransport,\n} from './sessionManagement';\nimport { buildMcpServerSpanConfig, createMcpNotificationSpan, createMcpOutgoingNotificationSpan } from './spans';\nimport type { ExtraHandlerData, MCPTransport, ResolvedMcpOptions, SessionData } from './types';\nimport { isJsonRpcNotification, isJsonRpcRequest, isJsonRpcResponse, isValidContentItem } from './validation';\n\n/**\n * Wraps transport.onmessage to create spans for incoming messages.\n * For \"initialize\" requests, extracts and stores client info and protocol version\n * in the session data for the transport.\n * @param transport - MCP transport instance to wrap\n * @param options - Resolved MCP options\n */\nexport function wrapTransportOnMessage(transport: MCPTransport, options: ResolvedMcpOptions): void {\n if (transport.onmessage) {\n fill(transport, 'onmessage', originalOnMessage => {\n return function (this: MCPTransport, message: unknown, extra?: unknown) {\n if (isJsonRpcRequest(message)) {\n const isInitialize = message.method === 'initialize';\n let initSessionData: SessionData | undefined;\n\n if (isInitialize) {\n try {\n initSessionData = extractSessionDataFromInitializeRequest(message);\n storeSessionDataForTransport(this, initSessionData);\n } catch {\n // noop\n }\n }\n\n const isolationScope = getIsolationScope().clone();\n\n return withIsolationScope(isolationScope, () => {\n const spanConfig = buildMcpServerSpanConfig(message, this, extra as ExtraHandlerData, options);\n const span = startInactiveSpan(spanConfig);\n\n // For initialize requests, add client info directly to span (works even for stateless transports)\n if (isInitialize && initSessionData) {\n span.setAttributes({\n ...buildClientAttributesFromInfo(initSessionData.clientInfo),\n ...(initSessionData.protocolVersion && {\n [MCP_PROTOCOL_VERSION_ATTRIBUTE]: initSessionData.protocolVersion,\n }),\n });\n }\n\n storeSpanForRequest(this, message.id, span, message.method);\n\n return withActiveSpan(span, () => {\n return (originalOnMessage as (...args: unknown[]) => unknown).call(this, message, extra);\n });\n });\n }\n\n if (isJsonRpcNotification(message)) {\n return createMcpNotificationSpan(message, this, extra as ExtraHandlerData, options, () => {\n return (originalOnMessage as (...args: unknown[]) => unknown).call(this, message, extra);\n });\n }\n\n return (originalOnMessage as (...args: unknown[]) => unknown).call(this, message, extra);\n };\n });\n }\n}\n\n/**\n * Wraps transport.send to handle outgoing messages and response correlation.\n * For \"initialize\" responses, extracts and stores protocol version and server info\n * in the session data for the transport.\n * @param transport - MCP transport instance to wrap\n * @param options - Resolved MCP options\n */\nexport function wrapTransportSend(transport: MCPTransport, options: ResolvedMcpOptions): void {\n if (transport.send) {\n fill(transport, 'send', originalSend => {\n return async function (this: MCPTransport, ...args: unknown[]) {\n const [message] = args;\n\n if (isJsonRpcNotification(message)) {\n return createMcpOutgoingNotificationSpan(message, this, options, () => {\n return (originalSend as (...args: unknown[]) => unknown).call(this, ...args);\n });\n }\n\n if (isJsonRpcResponse(message)) {\n if (message.id !== null && message.id !== undefined) {\n if (message.error) {\n captureJsonRpcErrorResponse(message.error);\n }\n\n if (isValidContentItem(message.result)) {\n if (message.result.protocolVersion || message.result.serverInfo) {\n try {\n const serverData = extractSessionDataFromInitializeResponse(message.result);\n updateSessionDataForTransport(this, serverData);\n } catch {\n // noop\n }\n }\n }\n\n completeSpanWithResults(this, message.id, message.result, options);\n }\n }\n\n return (originalSend as (...args: unknown[]) => unknown).call(this, ...args);\n };\n });\n }\n}\n\n/**\n * Wraps transport.onclose to clean up pending spans for this transport only\n * @param transport - MCP transport instance to wrap\n */\nexport function wrapTransportOnClose(transport: MCPTransport): void {\n if (transport.onclose) {\n fill(transport, 'onclose', originalOnClose => {\n return function (this: MCPTransport, ...args: unknown[]) {\n cleanupPendingSpansForTransport(this);\n cleanupSessionDataForTransport(this);\n return (originalOnClose as (...args: unknown[]) => unknown).call(this, ...args);\n };\n });\n }\n}\n\n/**\n * Wraps transport error handlers to capture connection errors\n * @param transport - MCP transport instance to wrap\n */\nexport function wrapTransportError(transport: MCPTransport): void {\n if (transport.onerror) {\n fill(transport, 'onerror', (originalOnError: (error: Error) => void) => {\n return function (this: MCPTransport, error: Error) {\n captureTransportError(error);\n return originalOnError.call(this, error);\n };\n });\n }\n}\n\n/**\n * Captures JSON-RPC error responses for server-side errors.\n * @see https://www.jsonrpc.org/specification#error_object\n * @internal\n * @param errorResponse - JSON-RPC error response\n */\nfunction captureJsonRpcErrorResponse(errorResponse: unknown): void {\n try {\n if (errorResponse && typeof errorResponse === 'object' && 'code' in errorResponse && 'message' in errorResponse) {\n const jsonRpcError = errorResponse as { code: number; message: string; data?: unknown };\n\n const isServerError =\n jsonRpcError.code === -32603 || (jsonRpcError.code >= -32099 && jsonRpcError.code <= -32000);\n\n if (isServerError) {\n const error = new Error(jsonRpcError.message);\n error.name = `JsonRpcError_${jsonRpcError.code}`;\n\n captureError(error, 'protocol');\n }\n }\n } catch {\n // noop\n }\n}\n\n/**\n * Captures transport connection errors\n * @internal\n * @param error - Transport error\n */\nfunction captureTransportError(error: Error): void {\n try {\n captureError(error, 'transport');\n } catch {\n // noop\n }\n}\n","import { getClient } from '../../currentScopes';\nimport { fill } from '../../utils/object';\nimport { wrapAllMCPHandlers } from './handlers';\nimport { wrapTransportError, wrapTransportOnClose, wrapTransportOnMessage, wrapTransportSend } from './transport';\nimport type { MCPServerInstance, McpServerWrapperOptions, MCPTransport, ResolvedMcpOptions } from './types';\nimport { validateMcpServerInstance } from './validation';\n\n/**\n * Tracks wrapped MCP server instances to prevent double-wrapping\n * @internal\n */\nconst wrappedMcpServerInstances = new WeakSet();\n\n/**\n * Wraps a MCP Server instance from the `@modelcontextprotocol/sdk` package with Sentry instrumentation.\n *\n * Compatible with versions `^1.9.0` of the `@modelcontextprotocol/sdk` package.\n * Automatically instruments transport methods and handler functions for comprehensive monitoring.\n *\n * @example\n * ```typescript\n * import * as Sentry from '@sentry/core';\n * import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\n * import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';\n *\n * // Default: inputs/outputs captured based on sendDefaultPii option\n * const server = Sentry.wrapMcpServerWithSentry(\n * new McpServer({ name: \"my-server\", version: \"1.0.0\" })\n * );\n *\n * // Explicitly control input/output capture\n * const server = Sentry.wrapMcpServerWithSentry(\n * new McpServer({ name: \"my-server\", version: \"1.0.0\" }),\n * { recordInputs: true, recordOutputs: false }\n * );\n *\n * const transport = new StreamableHTTPServerTransport();\n * await server.connect(transport);\n * ```\n *\n * @param mcpServerInstance - MCP server instance to instrument\n * @param options - Optional configuration for recording inputs and outputs\n * @returns Instrumented server instance (same reference)\n */\nexport function wrapMcpServerWithSentry(mcpServerInstance: S, options?: McpServerWrapperOptions): S {\n if (wrappedMcpServerInstances.has(mcpServerInstance)) {\n return mcpServerInstance;\n }\n\n if (!validateMcpServerInstance(mcpServerInstance)) {\n return mcpServerInstance;\n }\n\n const serverInstance = mcpServerInstance as MCPServerInstance;\n const client = getClient();\n const sendDefaultPii = Boolean(client?.getOptions().sendDefaultPii);\n\n const resolvedOptions: ResolvedMcpOptions = {\n recordInputs: options?.recordInputs ?? sendDefaultPii,\n recordOutputs: options?.recordOutputs ?? sendDefaultPii,\n };\n\n fill(serverInstance, 'connect', originalConnect => {\n return async function (this: MCPServerInstance, transport: MCPTransport, ...restArgs: unknown[]) {\n const result = await (originalConnect as (...args: unknown[]) => Promise).call(\n this,\n transport,\n ...restArgs,\n );\n\n wrapTransportOnMessage(transport, resolvedOptions);\n wrapTransportSend(transport, resolvedOptions);\n wrapTransportOnClose(transport);\n wrapTransportError(transport);\n\n return result;\n };\n });\n\n wrapAllMCPHandlers(serverInstance);\n\n wrappedMcpServerInstances.add(mcpServerInstance);\n return mcpServerInstance;\n}\n","import { getClient, getCurrentScope } from './currentScopes';\nimport type { EventHint } from './types-hoist/event';\nimport type { FeedbackEvent, SendFeedbackParams } from './types-hoist/feedback';\n\n/**\n * Send user feedback to Sentry.\n */\nexport function captureFeedback(\n params: SendFeedbackParams,\n hint: EventHint & { includeReplay?: boolean } = {},\n scope = getCurrentScope(),\n): string {\n const { message, name, email, url, source, associatedEventId, tags } = params;\n\n const feedbackEvent: FeedbackEvent = {\n contexts: {\n feedback: {\n contact_email: email,\n name,\n message,\n url,\n source,\n associated_event_id: associatedEventId,\n },\n },\n type: 'feedback',\n level: 'info',\n tags,\n };\n\n const client = scope?.getClient() || getClient();\n\n if (client) {\n client.emit('beforeSendFeedback', feedbackEvent, hint);\n }\n\n const eventId = scope.captureEvent(feedbackEvent, hint);\n\n return eventId;\n}\n","import type { Scope } from '../scope';\nimport type { Log, LogSeverityLevel } from '../types-hoist/log';\nimport type { ParameterizedString } from '../types-hoist/parameterize';\nimport { _INTERNAL_captureLog } from './internal';\n\n/**\n * Capture a log with the given level.\n *\n * @param level - The level of the log.\n * @param message - The message to log.\n * @param attributes - Arbitrary structured data that stores information about the log - e.g., userId: 100.\n * @param scope - The scope to capture the log with.\n * @param severityNumber - The severity number of the log.\n */\nfunction captureLog(\n level: LogSeverityLevel,\n message: ParameterizedString,\n attributes?: Log['attributes'],\n scope?: Scope,\n severityNumber?: Log['severityNumber'],\n): void {\n _INTERNAL_captureLog({ level, message, attributes, severityNumber }, scope);\n}\n\n/**\n * Additional metadata to capture the log with.\n */\ninterface CaptureLogMetadata {\n scope?: Scope;\n}\n\n/**\n * @summary Capture a log with the `trace` level. Requires the `enableLogs` option to be enabled.\n *\n * @param message - The message to log.\n * @param attributes - Arbitrary structured data that stores information about the log - e.g., { userId: 100, route: '/dashboard' }.\n * @param metadata - additional metadata to capture the log with.\n *\n * @example\n *\n * ```\n * Sentry.logger.trace('User clicked submit button', {\n * buttonId: 'submit-form',\n * formId: 'user-profile',\n * timestamp: Date.now()\n * });\n * ```\n *\n * @example With template strings\n *\n * ```\n * Sentry.logger.trace(Sentry.logger.fmt`User ${user} navigated to ${page}`, {\n * userId: '123',\n * sessionId: 'abc-xyz'\n * });\n * ```\n */\nexport function trace(\n message: ParameterizedString,\n attributes?: Log['attributes'],\n { scope }: CaptureLogMetadata = {},\n): void {\n captureLog('trace', message, attributes, scope);\n}\n\n/**\n * @summary Capture a log with the `debug` level. Requires the `enableLogs` option to be enabled.\n *\n * @param message - The message to log.\n * @param attributes - Arbitrary structured data that stores information about the log - e.g., { component: 'Header', state: 'loading' }.\n * @param metadata - additional metadata to capture the log with.\n *\n * @example\n *\n * ```\n * Sentry.logger.debug('Component mounted', {\n * component: 'UserProfile',\n * props: { userId: 123 },\n * renderTime: 150\n * });\n * ```\n *\n * @example With template strings\n *\n * ```\n * Sentry.logger.debug(Sentry.logger.fmt`API request to ${endpoint} failed`, {\n * statusCode: 404,\n * requestId: 'req-123',\n * duration: 250\n * });\n * ```\n */\nexport function debug(\n message: ParameterizedString,\n attributes?: Log['attributes'],\n { scope }: CaptureLogMetadata = {},\n): void {\n captureLog('debug', message, attributes, scope);\n}\n\n/**\n * @summary Capture a log with the `info` level. Requires the `enableLogs` option to be enabled.\n *\n * @param message - The message to log.\n * @param attributes - Arbitrary structured data that stores information about the log - e.g., { feature: 'checkout', status: 'completed' }.\n * @param metadata - additional metadata to capture the log with.\n *\n * @example\n *\n * ```\n * Sentry.logger.info('User completed checkout', {\n * orderId: 'order-123',\n * amount: 99.99,\n * paymentMethod: 'credit_card'\n * });\n * ```\n *\n * @example With template strings\n *\n * ```\n * Sentry.logger.info(Sentry.logger.fmt`User ${user} updated profile picture`, {\n * userId: 'user-123',\n * imageSize: '2.5MB',\n * timestamp: Date.now()\n * });\n * ```\n */\nexport function info(\n message: ParameterizedString,\n attributes?: Log['attributes'],\n { scope }: CaptureLogMetadata = {},\n): void {\n captureLog('info', message, attributes, scope);\n}\n\n/**\n * @summary Capture a log with the `warn` level. Requires the `enableLogs` option to be enabled.\n *\n * @param message - The message to log.\n * @param attributes - Arbitrary structured data that stores information about the log - e.g., { browser: 'Chrome', version: '91.0' }.\n * @param metadata - additional metadata to capture the log with.\n *\n * @example\n *\n * ```\n * Sentry.logger.warn('Browser compatibility issue detected', {\n * browser: 'Safari',\n * version: '14.0',\n * feature: 'WebRTC',\n * fallback: 'enabled'\n * });\n * ```\n *\n * @example With template strings\n *\n * ```\n * Sentry.logger.warn(Sentry.logger.fmt`API endpoint ${endpoint} is deprecated`, {\n * recommendedEndpoint: '/api/v2/users',\n * sunsetDate: '2024-12-31',\n * clientVersion: '1.2.3'\n * });\n * ```\n */\nexport function warn(\n message: ParameterizedString,\n attributes?: Log['attributes'],\n { scope }: CaptureLogMetadata = {},\n): void {\n captureLog('warn', message, attributes, scope);\n}\n\n/**\n * @summary Capture a log with the `error` level. Requires the `enableLogs` option to be enabled.\n *\n * @param message - The message to log.\n * @param attributes - Arbitrary structured data that stores information about the log - e.g., { error: 'NetworkError', url: '/api/data' }.\n * @param metadata - additional metadata to capture the log with.\n *\n * @example\n *\n * ```\n * Sentry.logger.error('Failed to load user data', {\n * error: 'NetworkError',\n * url: '/api/users/123',\n * statusCode: 500,\n * retryCount: 3\n * });\n * ```\n *\n * @example With template strings\n *\n * ```\n * Sentry.logger.error(Sentry.logger.fmt`Payment processing failed for order ${orderId}`, {\n * error: 'InsufficientFunds',\n * amount: 100.00,\n * currency: 'USD',\n * userId: 'user-456'\n * });\n * ```\n */\nexport function error(\n message: ParameterizedString,\n attributes?: Log['attributes'],\n { scope }: CaptureLogMetadata = {},\n): void {\n captureLog('error', message, attributes, scope);\n}\n\n/**\n * @summary Capture a log with the `fatal` level. Requires the `enableLogs` option to be enabled.\n *\n * @param message - The message to log.\n * @param attributes - Arbitrary structured data that stores information about the log - e.g., { appState: 'corrupted', sessionId: 'abc-123' }.\n * @param metadata - additional metadata to capture the log with.\n *\n * @example\n *\n * ```\n * Sentry.logger.fatal('Application state corrupted', {\n * lastKnownState: 'authenticated',\n * sessionId: 'session-123',\n * timestamp: Date.now(),\n * recoveryAttempted: true\n * });\n * ```\n *\n * @example With template strings\n *\n * ```\n * Sentry.logger.fatal(Sentry.logger.fmt`Critical system failure in ${service}`, {\n * service: 'payment-processor',\n * errorCode: 'CRITICAL_FAILURE',\n * affectedUsers: 150,\n * timestamp: Date.now()\n * });\n * ```\n */\nexport function fatal(\n message: ParameterizedString,\n attributes?: Log['attributes'],\n { scope }: CaptureLogMetadata = {},\n): void {\n captureLog('fatal', message, attributes, scope);\n}\n\nexport { fmt } from '../utils/parameterize';\n","import { isPrimitive } from '../utils/is';\nimport { normalize } from '../utils/normalize';\nimport { GLOBAL_OBJ } from '../utils/worldwide';\n\ntype GlobalObjectWithUtil = typeof GLOBAL_OBJ & {\n util: {\n format: (...args: unknown[]) => string;\n };\n};\n\n/**\n * Formats the given values into a string.\n *\n * @param values - The values to format.\n * @param normalizeDepth - The depth to normalize the values.\n * @param normalizeMaxBreadth - The max breadth to normalize the values.\n * @returns The formatted string.\n */\nexport function formatConsoleArgs(values: unknown[], normalizeDepth: number, normalizeMaxBreadth: number): string {\n return 'util' in GLOBAL_OBJ && typeof (GLOBAL_OBJ as GlobalObjectWithUtil).util.format === 'function'\n ? (GLOBAL_OBJ as GlobalObjectWithUtil).util.format(...values)\n : safeJoinConsoleArgs(values, normalizeDepth, normalizeMaxBreadth);\n}\n\n/**\n * Joins the given values into a string.\n *\n * @param values - The values to join.\n * @param normalizeDepth - The depth to normalize the values.\n * @param normalizeMaxBreadth - The max breadth to normalize the values.\n * @returns The joined string.\n */\nexport function safeJoinConsoleArgs(values: unknown[], normalizeDepth: number, normalizeMaxBreadth: number): string {\n return values\n .map(value =>\n isPrimitive(value) ? String(value) : JSON.stringify(normalize(value, normalizeDepth, normalizeMaxBreadth)),\n )\n .join(' ');\n}\n\n/**\n * Checks if a string contains console substitution patterns like %s, %d, %i, %f, %o, %O, %c.\n *\n * @param str - The string to check\n * @returns true if the string contains console substitution patterns\n */\nexport function hasConsoleSubstitutions(str: string): boolean {\n // Match console substitution patterns: %s, %d, %i, %f, %o, %O, %c\n return /%[sdifocO]/.test(str);\n}\n\n/**\n * Creates template attributes for multiple console arguments.\n *\n * @param args - The console arguments\n * @returns An object with template and parameter attributes\n */\nexport function createConsoleTemplateAttributes(firstArg: unknown, followingArgs: unknown[]): Record {\n const attributes: Record = {};\n\n // Create template with placeholders for each argument\n const template = new Array(followingArgs.length).fill('{}').join(' ');\n attributes['sentry.message.template'] = `${firstArg} ${template}`;\n\n // Add each argument as a parameter\n followingArgs.forEach((arg, index) => {\n attributes[`sentry.message.parameter.${index}`] = arg;\n });\n\n return attributes;\n}\n","import { getClient } from '../currentScopes';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { addConsoleInstrumentationHandler } from '../instrument/console';\nimport { defineIntegration } from '../integration';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../semanticAttributes';\nimport type { ConsoleLevel } from '../types-hoist/instrument';\nimport type { IntegrationFn } from '../types-hoist/integration';\nimport { CONSOLE_LEVELS, debug } from '../utils/debug-logger';\nimport { _INTERNAL_captureLog } from './internal';\nimport { createConsoleTemplateAttributes, formatConsoleArgs, hasConsoleSubstitutions } from './utils';\n\ninterface CaptureConsoleOptions {\n levels: ConsoleLevel[];\n}\n\nconst INTEGRATION_NAME = 'ConsoleLogs';\n\nconst DEFAULT_ATTRIBUTES = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.log.console',\n};\n\nconst _consoleLoggingIntegration = ((options: Partial = {}) => {\n const levels = options.levels || CONSOLE_LEVELS;\n\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n const { enableLogs, normalizeDepth = 3, normalizeMaxBreadth = 1_000 } = client.getOptions();\n if (!enableLogs) {\n DEBUG_BUILD && debug.warn('`enableLogs` is not enabled, ConsoleLogs integration disabled');\n return;\n }\n\n addConsoleInstrumentationHandler(({ args, level }) => {\n if (getClient() !== client || !levels.includes(level)) {\n return;\n }\n\n const firstArg = args[0];\n const followingArgs = args.slice(1);\n\n if (level === 'assert') {\n if (!firstArg) {\n const assertionMessage =\n followingArgs.length > 0\n ? `Assertion failed: ${formatConsoleArgs(followingArgs, normalizeDepth, normalizeMaxBreadth)}`\n : 'Assertion failed';\n _INTERNAL_captureLog({ level: 'error', message: assertionMessage, attributes: DEFAULT_ATTRIBUTES });\n }\n return;\n }\n\n const isLevelLog = level === 'log';\n\n const shouldGenerateTemplate =\n args.length > 1 && typeof args[0] === 'string' && !hasConsoleSubstitutions(args[0]);\n const attributes = {\n ...DEFAULT_ATTRIBUTES,\n ...(shouldGenerateTemplate ? createConsoleTemplateAttributes(firstArg, followingArgs) : {}),\n };\n\n _INTERNAL_captureLog({\n level: isLevelLog ? 'info' : level,\n message: formatConsoleArgs(args, normalizeDepth, normalizeMaxBreadth),\n severityNumber: isLevelLog ? 10 : undefined,\n attributes,\n });\n });\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Captures calls to the `console` API as logs in Sentry. Requires the `enableLogs` option to be enabled.\n *\n * @experimental This feature is experimental and may be changed or removed in future versions.\n *\n * By default the integration instruments `console.debug`, `console.info`, `console.warn`, `console.error`,\n * `console.log`, `console.trace`, and `console.assert`. You can use the `levels` option to customize which\n * levels are captured.\n *\n * @example\n *\n * ```ts\n * import * as Sentry from '@sentry/browser';\n *\n * Sentry.init({\n * enableLogs: true,\n * integrations: [Sentry.consoleLoggingIntegration({ levels: ['error', 'warn'] })],\n * });\n * ```\n */\nexport const consoleLoggingIntegration = defineIntegration(_consoleLoggingIntegration);\n","import type { Scope } from '../scope';\nimport type { Metric, MetricType } from '../types-hoist/metric';\nimport { _INTERNAL_captureMetric } from './internal';\n\n/**\n * Options for capturing a metric.\n */\nexport interface MetricOptions {\n /**\n * The unit of the metric value.\n */\n unit?: string;\n\n /**\n * Arbitrary structured data that stores information about the metric.\n */\n attributes?: Metric['attributes'];\n\n /**\n * The scope to capture the metric with.\n */\n scope?: Scope;\n}\n\n/**\n * Capture a metric with the given type, name, and value.\n *\n * @param type - The type of the metric.\n * @param name - The name of the metric.\n * @param value - The value of the metric.\n * @param options - Options for capturing the metric.\n */\nfunction captureMetric(type: MetricType, name: string, value: number, options?: MetricOptions): void {\n _INTERNAL_captureMetric(\n { type, name, value, unit: options?.unit, attributes: options?.attributes },\n { scope: options?.scope },\n );\n}\n\n/**\n * @summary Increment a counter metric.\n *\n * @param name - The name of the counter metric.\n * @param value - The value to increment by (defaults to 1).\n * @param options - Options for capturing the metric.\n *\n * @example\n *\n * ```\n * Sentry.metrics.count('api.requests', 1, {\n * attributes: {\n * endpoint: '/api/users',\n * method: 'GET',\n * status: 200\n * }\n * });\n * ```\n *\n * @example With custom value\n *\n * ```\n * Sentry.metrics.count('items.processed', 5, {\n * attributes: {\n * processor: 'batch-processor',\n * queue: 'high-priority'\n * }\n * });\n * ```\n */\nexport function count(name: string, value: number = 1, options?: MetricOptions): void {\n captureMetric('counter', name, value, options);\n}\n\n/**\n * @summary Set a gauge metric to a specific value.\n *\n * @param name - The name of the gauge metric.\n * @param value - The current value of the gauge.\n * @param options - Options for capturing the metric.\n *\n * @example\n *\n * ```\n * Sentry.metrics.gauge('memory.usage', 1024, {\n * unit: 'megabyte',\n * attributes: {\n * process: 'web-server',\n * region: 'us-east-1'\n * }\n * });\n * ```\n *\n * @example Without unit\n *\n * ```\n * Sentry.metrics.gauge('active.connections', 42, {\n * attributes: {\n * server: 'api-1',\n * protocol: 'websocket'\n * }\n * });\n * ```\n */\nexport function gauge(name: string, value: number, options?: MetricOptions): void {\n captureMetric('gauge', name, value, options);\n}\n\n/**\n * @summary Record a value in a distribution metric.\n *\n * @param name - The name of the distribution metric.\n * @param value - The value to record in the distribution.\n * @param options - Options for capturing the metric.\n *\n * @example\n *\n * ```\n * Sentry.metrics.distribution('task.duration', 500, {\n * unit: 'millisecond',\n * attributes: {\n * task: 'data-processing',\n * priority: 'high'\n * }\n * });\n * ```\n *\n * @example Without unit\n *\n * ```\n * Sentry.metrics.distribution('batch.size', 100, {\n * attributes: {\n * processor: 'batch-1',\n * type: 'async'\n * }\n * });\n * ```\n */\nexport function distribution(name: string, value: number, options?: MetricOptions): void {\n captureMetric('distribution', name, value, options);\n}\n","import type { Client } from '../client';\nimport { getClient } from '../currentScopes';\nimport { _INTERNAL_captureLog } from '../logs/internal';\nimport { createConsoleTemplateAttributes, formatConsoleArgs, hasConsoleSubstitutions } from '../logs/utils';\nimport type { LogSeverityLevel } from '../types-hoist/log';\nimport { isPlainObject } from '../utils/is';\nimport { normalize } from '../utils/normalize';\n\n/**\n * Result of extracting structured attributes from console arguments.\n */\ninterface ExtractAttributesResult {\n /**\n * The log message to use for the log entry, typically constructed from the console arguments.\n */\n message?: string;\n\n /**\n * The parameterized template string which is added as `sentry.message.template` attribute if applicable.\n */\n messageTemplate?: string;\n\n /**\n * Remaining arguments to process as attributes with keys like `sentry.message.parameter.0`, `sentry.message.parameter.1`, etc.\n */\n messageParameters?: unknown[];\n\n /**\n * Additional attributes to add to the log.\n */\n attributes?: Record;\n}\n\n/**\n * Options for the Sentry Consola reporter.\n */\ninterface ConsolaReporterOptions {\n /**\n * Use this option to filter which levels should be captured. By default, all levels are captured.\n *\n * @example\n * ```ts\n * const sentryReporter = Sentry.createConsolaReporter({\n * // Only capture error and warn logs\n * levels: ['error', 'warn'],\n * });\n * consola.addReporter(sentryReporter);\n * ```\n */\n levels?: Array;\n\n /**\n * Optionally provide a specific Sentry client instance to use for capturing logs.\n * If not provided, the current client will be retrieved using `getClient()`.\n *\n * This is useful when you want to use specific client options for log normalization\n * or when working with multiple client instances.\n *\n * @example\n * ```ts\n * const sentryReporter = Sentry.createConsolaReporter({\n * client: myCustomClient,\n * });\n * ```\n */\n client?: Client;\n}\n\nexport interface ConsolaReporter {\n log: (logObj: ConsolaLogObject) => void;\n}\n\n/**\n * Represents a log object that Consola reporters receive.\n *\n * This interface matches the structure of log objects passed to Consola reporters.\n * See: https://github.com/unjs/consola#custom-reporters\n *\n * @example\n * ```ts\n * const reporter = {\n * log(logObj: ConsolaLogObject) {\n * console.log(`[${logObj.type}] ${logObj.message || logObj.args?.join(' ')}`);\n * }\n * };\n * consola.addReporter(reporter);\n * ```\n */\nexport interface ConsolaLogObject {\n /**\n * Allows additional custom properties to be set on the log object. These properties will be captured as log attributes.\n *\n * Additional properties are set when passing a single object with a `message` (`consola.[type]({ message: '', ... })`) or if the reporter is called directly\n *\n * @example\n * ```ts\n * const reporter = Sentry.createConsolaReporter();\n * reporter.log({\n * type: 'info',\n * message: 'User action',\n * userId: 123,\n * sessionId: 'abc-123'\n * });\n * // Will create attributes: `userId` and `sessionId`\n * ```\n */\n [key: string]: unknown;\n\n /**\n * The numeric log level (0-5) or null.\n *\n * Consola log levels:\n * - 0: Fatal and Error\n * - 1: Warnings\n * - 2: Normal logs\n * - 3: Informational logs, success, fail, ready, start, box, ...\n * - 4: Debug logs\n * - 5: Trace logs\n * - null: Some special types like 'verbose'\n *\n * See: https://github.com/unjs/consola/blob/main/README.md#log-level\n */\n level?: number | null;\n\n /**\n * The log type/method name (e.g., 'error', 'warn', 'info', 'debug', 'trace', 'success', 'fail', etc.).\n *\n * Consola built-in types include:\n * - Standard: silent, fatal, error, warn, log, info, success, fail, ready, start, box, debug, trace, verbose\n * - Custom types can also be defined\n *\n * See: https://github.com/unjs/consola/blob/main/README.md#log-types\n */\n type?: string;\n\n /**\n * An optional tag/scope for the log entry.\n *\n * Tags are created using `consola.withTag('scope')` and help categorize logs.\n *\n * @example\n * ```ts\n * const scopedLogger = consola.withTag('auth');\n * scopedLogger.info('User logged in'); // tag will be 'auth'\n * ```\n *\n * See: https://github.com/unjs/consola/blob/main/README.md#withtagtag\n */\n tag?: string;\n\n /**\n * The raw arguments passed to the log method.\n *\n * These args are typically formatted into the final `message`. In Consola reporters, `message` is not provided. See: https://github.com/unjs/consola/issues/406#issuecomment-3684792551\n *\n * @example\n * ```ts\n * consola.info('Hello', 'world', { user: 'john' });\n * // args = ['Hello', 'world', { user: 'john' }]\n * ```\n *\n * @example\n * ```ts\n * // `message` is a reserved property in Consola\n * consola.log({ message: 'Hello' });\n * // args = ['Hello']\n * ```\n */\n args?: unknown[];\n\n /**\n * The timestamp when the log was created.\n *\n * This is automatically set by Consola when the log is created.\n */\n date?: Date;\n\n /**\n * The formatted log message.\n *\n * When provided, this is the final formatted message. When not provided,\n * the message should be constructed from the `args` array.\n *\n * Note: In reporters, `message` is typically undefined. It is primarily for\n * `consola.[type]({ message: 'xxx' })` usage and is normalized into `args` before\n * reporters receive the log object. See: https://github.com/unjs/consola/issues/406#issuecomment-3684792551\n */\n message?: string;\n}\n\nconst DEFAULT_CAPTURED_LEVELS: Array = ['trace', 'debug', 'info', 'warn', 'error', 'fatal'];\n\n/**\n * Creates a new Sentry reporter for Consola that forwards logs to Sentry. Requires the `enableLogs` option to be enabled.\n *\n * **Note: This integration supports Consola v3.x only.** The reporter interface and log object structure\n * may differ in other versions of Consola.\n *\n * @param options - Configuration options for the reporter.\n * @returns A Consola reporter that can be added to consola instances.\n *\n * @example\n * ```ts\n * import * as Sentry from '@sentry/node';\n * import { consola } from 'consola';\n *\n * Sentry.init({\n * enableLogs: true,\n * });\n *\n * const sentryReporter = Sentry.createConsolaReporter({\n * // Optional: filter levels to capture\n * levels: ['error', 'warn', 'info'],\n * });\n *\n * consola.addReporter(sentryReporter);\n *\n * // Now consola logs will be captured by Sentry\n * consola.info('This will be sent to Sentry');\n * consola.error('This error will also be sent to Sentry');\n * ```\n */\nexport function createConsolaReporter(options: ConsolaReporterOptions = {}): ConsolaReporter {\n const levels = new Set(options.levels ?? DEFAULT_CAPTURED_LEVELS);\n const providedClient = options.client;\n\n return {\n log(logObj: ConsolaLogObject) {\n // We need to exclude certain known properties from being added as additional attributes\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { type, level, message: consolaMessage, args, tag, date: _date, ...rest } = logObj;\n\n // Get client - use provided client or current client\n const client = providedClient || getClient();\n if (!client) {\n return;\n }\n\n // Determine the log severity level\n const logSeverityLevel = getLogSeverityLevel(type, level);\n\n // Early exit if this level should not be captured\n if (!levels.has(logSeverityLevel)) {\n return;\n }\n\n const { normalizeDepth = 3, normalizeMaxBreadth = 1_000 } = client.getOptions();\n\n const attributes: Record = {};\n\n // Build attributes\n for (const [key, value] of Object.entries(rest)) {\n attributes[key] = normalize(value, normalizeDepth, normalizeMaxBreadth);\n }\n\n attributes['sentry.origin'] = 'auto.log.consola';\n\n if (tag) {\n attributes['consola.tag'] = tag;\n }\n\n if (type) {\n attributes['consola.type'] = type;\n }\n\n // Only add level if it's a valid number (not null/undefined)\n if (level != null && typeof level === 'number') {\n attributes['consola.level'] = level;\n }\n\n const extractionResult = processExtractedAttributes(\n defaultExtractAttributes(args, normalizeDepth, normalizeMaxBreadth),\n normalizeDepth,\n normalizeMaxBreadth,\n );\n\n if (extractionResult?.attributes) {\n Object.assign(attributes, extractionResult.attributes);\n }\n\n _INTERNAL_captureLog({\n level: logSeverityLevel,\n message:\n extractionResult?.message ||\n consolaMessage ||\n (args && formatConsoleArgs(args, normalizeDepth, normalizeMaxBreadth)) ||\n '',\n attributes,\n });\n },\n };\n}\n\n// Mapping from consola log types to Sentry log severity levels\nconst CONSOLA_TYPE_TO_LOG_SEVERITY_LEVEL_MAP: Record = {\n // Consola built-in types\n silent: 'trace',\n fatal: 'fatal',\n error: 'error',\n warn: 'warn',\n log: 'info',\n info: 'info',\n success: 'info',\n fail: 'error',\n ready: 'info',\n start: 'info',\n box: 'info',\n debug: 'debug',\n trace: 'trace',\n verbose: 'debug',\n // Custom types that might exist\n critical: 'fatal',\n notice: 'info',\n};\n\n// Mapping from consola log levels (numbers) to Sentry log severity levels\nconst CONSOLA_LEVEL_TO_LOG_SEVERITY_LEVEL_MAP: Record = {\n 0: 'fatal', // Fatal and Error\n 1: 'warn', // Warnings\n 2: 'info', // Normal logs\n 3: 'info', // Informational logs, success, fail, ready, start, ...\n 4: 'debug', // Debug logs\n 5: 'trace', // Trace logs\n};\n\n/**\n * Determines the log severity level from Consola type and level.\n *\n * @param type - The Consola log type (e.g., 'error', 'warn', 'info')\n * @param level - The Consola numeric log level (0-5) or null for some types like 'verbose'\n * @returns The corresponding Sentry log severity level\n */\nfunction getLogSeverityLevel(type?: string, level?: number | null): LogSeverityLevel {\n // Handle special case for verbose logs (level can be null with infinite level in Consola)\n if (type === 'verbose') {\n return 'debug';\n }\n\n // Handle silent logs - these should be at trace level\n if (type === 'silent') {\n return 'trace';\n }\n\n // First try to map by type (more specific)\n if (type) {\n const mappedLevel = CONSOLA_TYPE_TO_LOG_SEVERITY_LEVEL_MAP[type];\n if (mappedLevel) {\n return mappedLevel;\n }\n }\n\n // Fallback to level mapping (handle null level)\n if (typeof level === 'number') {\n const mappedLevel = CONSOLA_LEVEL_TO_LOG_SEVERITY_LEVEL_MAP[level];\n if (mappedLevel) {\n return mappedLevel;\n }\n }\n\n // Default fallback\n return 'info';\n}\n\n/**\n * Extracts structured attributes from console arguments. If the first argument is a plain object, its properties are extracted as attributes.\n */\nfunction defaultExtractAttributes(\n args: unknown[] | undefined,\n normalizeDepth: number,\n normalizeMaxBreadth: number,\n): ExtractAttributesResult {\n if (!args?.length) {\n return { message: '' };\n }\n\n // Message looks like how consola logs the message to the console (all args stringified and joined)\n const message = formatConsoleArgs(args, normalizeDepth, normalizeMaxBreadth);\n\n const firstArg = args[0];\n\n if (isPlainObject(firstArg)) {\n // Remaining args start from index 2 i f we used second arg as message, otherwise from index 1\n const remainingArgsStartIndex = typeof args[1] === 'string' ? 2 : 1;\n const remainingArgs = args.slice(remainingArgsStartIndex);\n\n return {\n message,\n // Object content from first arg is added as attributes\n attributes: firstArg,\n // Add remaining args as message parameters\n messageParameters: remainingArgs,\n };\n } else {\n const followingArgs = args.slice(1);\n\n const shouldAddTemplateAttr =\n followingArgs.length > 0 && typeof firstArg === 'string' && !hasConsoleSubstitutions(firstArg);\n\n return {\n message,\n messageTemplate: shouldAddTemplateAttr ? firstArg : undefined,\n messageParameters: shouldAddTemplateAttr ? followingArgs : undefined,\n };\n }\n}\n\n/**\n * Processes extracted attributes by normalizing them and preparing message parameter attributes if a template is present.\n */\nfunction processExtractedAttributes(\n extractionResult: ExtractAttributesResult,\n normalizeDepth: number,\n normalizeMaxBreadth: number,\n): { message: string | undefined; attributes: Record } {\n const { message, attributes, messageTemplate, messageParameters } = extractionResult;\n\n const messageParamAttributes: Record = {};\n\n if (messageTemplate && messageParameters) {\n const templateAttrs = createConsoleTemplateAttributes(messageTemplate, messageParameters);\n\n for (const [key, value] of Object.entries(templateAttrs)) {\n messageParamAttributes[key] = key.startsWith('sentry.message.parameter.')\n ? normalize(value, normalizeDepth, normalizeMaxBreadth)\n : value;\n }\n } else if (messageParameters && messageParameters.length > 0) {\n messageParameters.forEach((arg, index) => {\n messageParamAttributes[`sentry.message.parameter.${index}`] = normalize(arg, normalizeDepth, normalizeMaxBreadth);\n });\n }\n\n return {\n message: message,\n attributes: {\n ...normalize(attributes, normalizeDepth, normalizeMaxBreadth),\n ...messageParamAttributes,\n },\n };\n}\n","/**\n * OpenAI Integration Telemetry Attributes\n * Based on OpenTelemetry Semantic Conventions for Generative AI\n * @see https://opentelemetry.io/docs/specs/semconv/gen-ai/\n */\n\n// =============================================================================\n// OPENTELEMETRY SEMANTIC CONVENTIONS FOR GENAI\n// =============================================================================\n\n/**\n * The input messages sent to the model\n */\nexport const GEN_AI_PROMPT_ATTRIBUTE = 'gen_ai.prompt';\n\n/**\n * The Generative AI system being used\n * For OpenAI, this should always be \"openai\"\n */\nexport const GEN_AI_SYSTEM_ATTRIBUTE = 'gen_ai.system';\n\n/**\n * The name of the model as requested\n * Examples: \"gpt-4\", \"gpt-3.5-turbo\"\n */\nexport const GEN_AI_REQUEST_MODEL_ATTRIBUTE = 'gen_ai.request.model';\n\n/**\n * Whether streaming was enabled for the request\n */\nexport const GEN_AI_REQUEST_STREAM_ATTRIBUTE = 'gen_ai.request.stream';\n\n/**\n * The temperature setting for the model request\n */\nexport const GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE = 'gen_ai.request.temperature';\n\n/**\n * The maximum number of tokens requested\n */\nexport const GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE = 'gen_ai.request.max_tokens';\n\n/**\n * The frequency penalty setting for the model request\n */\nexport const GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE = 'gen_ai.request.frequency_penalty';\n\n/**\n * The presence penalty setting for the model request\n */\nexport const GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE = 'gen_ai.request.presence_penalty';\n\n/**\n * The top_p (nucleus sampling) setting for the model request\n */\nexport const GEN_AI_REQUEST_TOP_P_ATTRIBUTE = 'gen_ai.request.top_p';\n\n/**\n * The top_k setting for the model request\n */\nexport const GEN_AI_REQUEST_TOP_K_ATTRIBUTE = 'gen_ai.request.top_k';\n\n/**\n * Stop sequences for the model request\n */\nexport const GEN_AI_REQUEST_STOP_SEQUENCES_ATTRIBUTE = 'gen_ai.request.stop_sequences';\n\n/**\n * The encoding format for the model request\n */\nexport const GEN_AI_REQUEST_ENCODING_FORMAT_ATTRIBUTE = 'gen_ai.request.encoding_format';\n\n/**\n * The dimensions for the model request\n */\nexport const GEN_AI_REQUEST_DIMENSIONS_ATTRIBUTE = 'gen_ai.request.dimensions';\n\n/**\n * Array of reasons why the model stopped generating tokens\n */\nexport const GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE = 'gen_ai.response.finish_reasons';\n\n/**\n * The name of the model that generated the response\n */\nexport const GEN_AI_RESPONSE_MODEL_ATTRIBUTE = 'gen_ai.response.model';\n\n/**\n * The unique identifier for the response\n */\nexport const GEN_AI_RESPONSE_ID_ATTRIBUTE = 'gen_ai.response.id';\n\n/**\n * The reason why the model stopped generating tokens\n */\nexport const GEN_AI_RESPONSE_STOP_REASON_ATTRIBUTE = 'gen_ai.response.stop_reason';\n\n/**\n * The number of tokens used in the prompt\n */\nexport const GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE = 'gen_ai.usage.input_tokens';\n\n/**\n * The number of tokens used in the response\n */\nexport const GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE = 'gen_ai.usage.output_tokens';\n\n/**\n * The total number of tokens used (input + output)\n */\nexport const GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE = 'gen_ai.usage.total_tokens';\n\n/**\n * The operation name\n */\nexport const GEN_AI_OPERATION_NAME_ATTRIBUTE = 'gen_ai.operation.name';\n\n/**\n * Original length of messages array, used to indicate truncations had occured\n */\nexport const GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE = 'sentry.sdk_meta.gen_ai.input.messages.original_length';\n\n/**\n * The prompt messages\n * Only recorded when recordInputs is enabled\n */\nexport const GEN_AI_INPUT_MESSAGES_ATTRIBUTE = 'gen_ai.input.messages';\n\n/**\n * The model's response messages including text and tool calls\n * Only recorded when recordOutputs is enabled\n * Format: stringified array of message objects with role, parts, and finish_reason\n * @see https://opentelemetry.io/docs/specs/semconv/registry/attributes/gen-ai/#gen-ai-output-messages\n */\nexport const GEN_AI_OUTPUT_MESSAGES_ATTRIBUTE = 'gen_ai.output.messages';\n\n/**\n * The system instructions extracted from system messages\n * Only recorded when recordInputs is enabled\n * According to OpenTelemetry spec: https://opentelemetry.io/docs/specs/semconv/registry/attributes/gen-ai/#gen-ai-system-instructions\n */\nexport const GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE = 'gen_ai.system_instructions';\n\n/**\n * The response text\n * Only recorded when recordOutputs is enabled\n */\nexport const GEN_AI_RESPONSE_TEXT_ATTRIBUTE = 'gen_ai.response.text';\n\n/**\n * The available tools from incoming request\n * Only recorded when recordInputs is enabled\n */\nexport const GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE = 'gen_ai.request.available_tools';\n\n/**\n * Whether the response is a streaming response\n */\nexport const GEN_AI_RESPONSE_STREAMING_ATTRIBUTE = 'gen_ai.response.streaming';\n\n/**\n * The tool calls from the response\n * Only recorded when recordOutputs is enabled\n */\nexport const GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE = 'gen_ai.response.tool_calls';\n\n/**\n * The agent name\n */\nexport const GEN_AI_AGENT_NAME_ATTRIBUTE = 'gen_ai.agent.name';\n\n/**\n * The pipeline name\n */\nexport const GEN_AI_PIPELINE_NAME_ATTRIBUTE = 'gen_ai.pipeline.name';\n\n/**\n * The conversation ID for linking messages across API calls\n * For OpenAI Assistants API: thread_id\n * For LangGraph: configurable.thread_id\n */\nexport const GEN_AI_CONVERSATION_ID_ATTRIBUTE = 'gen_ai.conversation.id';\n\n/**\n * The number of cache creation input tokens used\n */\nexport const GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS_ATTRIBUTE = 'gen_ai.usage.cache_creation_input_tokens';\n\n/**\n * The number of cache read input tokens used\n */\nexport const GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS_ATTRIBUTE = 'gen_ai.usage.cache_read_input_tokens';\n\n/**\n * The number of cache write input tokens used\n */\nexport const GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE_ATTRIBUTE = 'gen_ai.usage.input_tokens.cache_write';\n\n/**\n * The number of cached input tokens that were used\n */\nexport const GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE = 'gen_ai.usage.input_tokens.cached';\n\n/**\n * The span operation name for invoking an agent\n */\nexport const GEN_AI_INVOKE_AGENT_OPERATION_ATTRIBUTE = 'gen_ai.invoke_agent';\n\n/**\n * The span operation name for generating text\n */\nexport const GEN_AI_GENERATE_TEXT_DO_GENERATE_OPERATION_ATTRIBUTE = 'gen_ai.generate_text';\n\n/**\n * The span operation name for streaming text\n */\nexport const GEN_AI_STREAM_TEXT_DO_STREAM_OPERATION_ATTRIBUTE = 'gen_ai.stream_text';\n\n/**\n * The span operation name for generating object\n */\nexport const GEN_AI_GENERATE_OBJECT_DO_GENERATE_OPERATION_ATTRIBUTE = 'gen_ai.generate_object';\n\n/**\n * The span operation name for streaming object\n */\nexport const GEN_AI_STREAM_OBJECT_DO_STREAM_OPERATION_ATTRIBUTE = 'gen_ai.stream_object';\n\n/**\n * The embeddings input\n * Only recorded when recordInputs is enabled\n */\nexport const GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE = 'gen_ai.embeddings.input';\n\n/**\n * The span operation name for embedding\n */\nexport const GEN_AI_EMBED_DO_EMBED_OPERATION_ATTRIBUTE = 'gen_ai.embeddings';\n\n/**\n * The span operation name for embedding many\n */\nexport const GEN_AI_EMBED_MANY_DO_EMBED_OPERATION_ATTRIBUTE = 'gen_ai.embeddings';\n\n/**\n * The span operation name for reranking\n */\nexport const GEN_AI_RERANK_DO_RERANK_OPERATION_ATTRIBUTE = 'gen_ai.rerank';\n\n/**\n * The span operation name for executing a tool\n */\nexport const GEN_AI_EXECUTE_TOOL_OPERATION_ATTRIBUTE = 'gen_ai.execute_tool';\n\n/**\n * The tool name for tool call spans\n */\nexport const GEN_AI_TOOL_NAME_ATTRIBUTE = 'gen_ai.tool.name';\n\n/**\n * The tool call ID\n */\nexport const GEN_AI_TOOL_CALL_ID_ATTRIBUTE = 'gen_ai.tool.call.id';\n\n/**\n * The tool type (e.g., 'function')\n */\nexport const GEN_AI_TOOL_TYPE_ATTRIBUTE = 'gen_ai.tool.type';\n\n/**\n * The tool input/arguments\n */\nexport const GEN_AI_TOOL_INPUT_ATTRIBUTE = 'gen_ai.tool.input';\n\n/**\n * The tool output/result\n */\nexport const GEN_AI_TOOL_OUTPUT_ATTRIBUTE = 'gen_ai.tool.output';\n\n/**\n * The description of the tool being used\n * @see https://opentelemetry.io/docs/specs/semconv/registry/attributes/gen-ai/#gen-ai-tool-description\n */\nexport const GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE = 'gen_ai.tool.description';\n\n// =============================================================================\n// OPENAI-SPECIFIC ATTRIBUTES\n// =============================================================================\n\n/**\n * The response ID from OpenAI\n */\nexport const OPENAI_RESPONSE_ID_ATTRIBUTE = 'openai.response.id';\n\n/**\n * The response model from OpenAI\n */\nexport const OPENAI_RESPONSE_MODEL_ATTRIBUTE = 'openai.response.model';\n\n/**\n * The response timestamp from OpenAI (ISO string)\n */\nexport const OPENAI_RESPONSE_TIMESTAMP_ATTRIBUTE = 'openai.response.timestamp';\n\n/**\n * The number of completion tokens used\n */\nexport const OPENAI_USAGE_COMPLETION_TOKENS_ATTRIBUTE = 'openai.usage.completion_tokens';\n\n/**\n * The number of prompt tokens used\n */\nexport const OPENAI_USAGE_PROMPT_TOKENS_ATTRIBUTE = 'openai.usage.prompt_tokens';\n\n// =============================================================================\n// ANTHROPIC AI OPERATIONS\n// =============================================================================\n\n/**\n * The response timestamp from Anthropic AI (ISO string)\n */\nexport const ANTHROPIC_AI_RESPONSE_TIMESTAMP_ATTRIBUTE = 'anthropic.response.timestamp';\n","import type { ToolCallSpanContext } from './types';\n\n// Global map to track tool call IDs to their corresponding span contexts.\n// This allows us to capture tool errors and link them to the correct span\n// without keeping full Span objects (and their potentially large attributes) alive.\nexport const toolCallSpanContextMap = new Map();\n\n// Operation sets for efficient mapping to OpenTelemetry semantic convention values\nexport const INVOKE_AGENT_OPS = new Set(['ai.generateText', 'ai.streamText', 'ai.generateObject', 'ai.streamObject']);\n\nexport const GENERATE_CONTENT_OPS = new Set([\n 'ai.generateText.doGenerate',\n 'ai.streamText.doStream',\n 'ai.generateObject.doGenerate',\n 'ai.streamObject.doStream',\n]);\n\nexport const EMBEDDINGS_OPS = new Set(['ai.embed.doEmbed', 'ai.embedMany.doEmbed']);\n\nexport const RERANK_OPS = new Set(['ai.rerank.doRerank']);\n\nexport const DO_SPAN_NAME_PREFIX: Record = {\n 'ai.embed.doEmbed': 'embeddings',\n 'ai.embedMany.doEmbed': 'embeddings',\n 'ai.rerank.doRerank': 'rerank',\n};\n","/**\n * Inline media content source, with a potentially very large base64\n * blob or data: uri.\n */\nexport type ContentMedia = Record &\n (\n | {\n media_type: string;\n data: string;\n }\n | {\n image_url: `data:${string}`;\n }\n | {\n image_url: { url: `data:${string}` };\n }\n | {\n type: 'blob' | 'base64';\n content: string;\n }\n | {\n b64_json: string;\n }\n | {\n uri: `data:${string}`;\n }\n | {\n type: 'input_audio';\n input_audio: { data: string };\n }\n | {\n type: 'file';\n file: { file_data?: string };\n }\n );\n\n/**\n * Check if a content part is an OpenAI/Anthropic media source\n */\nexport function isContentMedia(part: unknown): part is ContentMedia {\n if (!part || typeof part !== 'object') return false;\n\n return (\n isContentMediaSource(part) ||\n hasInlineData(part) ||\n hasImageUrl(part) ||\n hasInputAudio(part) ||\n hasFileData(part) ||\n hasMediaTypeData(part) ||\n hasVercelFileData(part) ||\n hasVercelImageData(part) ||\n hasBlobOrBase64Type(part) ||\n hasB64Json(part) ||\n hasImageGenerationResult(part) ||\n hasDataUri(part)\n );\n}\n\nfunction hasImageUrl(part: NonNullable): boolean {\n if (!('image_url' in part)) return false;\n if (typeof part.image_url === 'string') return part.image_url.startsWith('data:');\n return hasNestedImageUrl(part);\n}\n\nfunction hasNestedImageUrl(part: NonNullable): part is { image_url: { url: string } } {\n return (\n 'image_url' in part &&\n !!part.image_url &&\n typeof part.image_url === 'object' &&\n 'url' in part.image_url &&\n typeof part.image_url.url === 'string' &&\n part.image_url.url.startsWith('data:')\n );\n}\n\nfunction isContentMediaSource(part: NonNullable): boolean {\n return 'type' in part && typeof part.type === 'string' && 'source' in part && isContentMedia(part.source);\n}\n\nfunction hasInlineData(part: NonNullable): part is { inlineData: { data?: string } } {\n return (\n 'inlineData' in part &&\n !!part.inlineData &&\n typeof part.inlineData === 'object' &&\n 'data' in part.inlineData &&\n typeof part.inlineData.data === 'string'\n );\n}\n\nfunction hasInputAudio(part: NonNullable): part is { type: 'input_audio'; input_audio: { data: string } } {\n return (\n 'type' in part &&\n part.type === 'input_audio' &&\n 'input_audio' in part &&\n !!part.input_audio &&\n typeof part.input_audio === 'object' &&\n 'data' in part.input_audio &&\n typeof part.input_audio.data === 'string'\n );\n}\n\nfunction hasFileData(part: NonNullable): part is { type: 'file'; file: { file_data: string } } {\n return (\n 'type' in part &&\n part.type === 'file' &&\n 'file' in part &&\n !!part.file &&\n typeof part.file === 'object' &&\n 'file_data' in part.file &&\n typeof part.file.file_data === 'string'\n );\n}\n\nfunction hasMediaTypeData(part: NonNullable): part is { media_type: string; data: string } {\n return 'media_type' in part && typeof part.media_type === 'string' && 'data' in part;\n}\n\n/**\n * Check for Vercel AI SDK file format: { type: \"file\", mediaType: \"...\", data: \"...\" }\n * Only matches base64/binary data, not HTTP/HTTPS URLs (which should be preserved).\n */\nfunction hasVercelFileData(part: NonNullable): part is { type: 'file'; mediaType: string; data: string } {\n return (\n 'type' in part &&\n part.type === 'file' &&\n 'mediaType' in part &&\n typeof part.mediaType === 'string' &&\n 'data' in part &&\n typeof part.data === 'string' &&\n // Only strip base64/binary data, not HTTP/HTTPS URLs which should be preserved as references\n !part.data.startsWith('http://') &&\n !part.data.startsWith('https://')\n );\n}\n\n/**\n * Check for Vercel AI SDK image format: { type: \"image\", image: \"base64...\", mimeType?: \"...\" }\n * Only matches base64/data URIs, not HTTP/HTTPS URLs (which should be preserved).\n * Note: mimeType is optional in Vercel AI SDK image parts.\n */\nfunction hasVercelImageData(part: NonNullable): part is { type: 'image'; image: string; mimeType?: string } {\n return (\n 'type' in part &&\n part.type === 'image' &&\n 'image' in part &&\n typeof part.image === 'string' &&\n // Only strip base64/data URIs, not HTTP/HTTPS URLs which should be preserved as references\n !part.image.startsWith('http://') &&\n !part.image.startsWith('https://')\n );\n}\n\nfunction hasBlobOrBase64Type(part: NonNullable): part is { type: 'blob' | 'base64'; content: string } {\n return 'type' in part && (part.type === 'blob' || part.type === 'base64');\n}\n\nfunction hasB64Json(part: NonNullable): part is { b64_json: string } {\n return 'b64_json' in part;\n}\n\nfunction hasImageGenerationResult(part: NonNullable): part is { type: 'image_generation'; result: string } {\n return 'type' in part && 'result' in part && part.type === 'image_generation';\n}\n\nfunction hasDataUri(part: NonNullable): part is { uri: string } {\n return 'uri' in part && typeof part.uri === 'string' && part.uri.startsWith('data:');\n}\n\nconst REMOVED_STRING = '[Blob substitute]';\n\nconst MEDIA_FIELDS = ['image_url', 'data', 'content', 'b64_json', 'result', 'uri', 'image'] as const;\n\n/**\n * Replace inline binary data in a single media content part with a placeholder.\n */\nexport function stripInlineMediaFromSingleMessage(part: ContentMedia): ContentMedia {\n const strip = { ...part };\n if (isContentMedia(strip.source)) {\n strip.source = stripInlineMediaFromSingleMessage(strip.source);\n }\n if (hasInlineData(part)) {\n strip.inlineData = { ...part.inlineData, data: REMOVED_STRING };\n }\n if (hasNestedImageUrl(part)) {\n strip.image_url = { ...part.image_url, url: REMOVED_STRING };\n }\n if (hasInputAudio(part)) {\n strip.input_audio = { ...part.input_audio, data: REMOVED_STRING };\n }\n if (hasFileData(part)) {\n strip.file = { ...part.file, file_data: REMOVED_STRING };\n }\n for (const field of MEDIA_FIELDS) {\n if (typeof strip[field] === 'string') strip[field] = REMOVED_STRING;\n }\n return strip;\n}\n","import { isContentMedia, stripInlineMediaFromSingleMessage } from './mediaStripping';\n\n/**\n * Default maximum size in bytes for GenAI messages.\n * Messages exceeding this limit will be truncated.\n */\nexport const DEFAULT_GEN_AI_MESSAGES_BYTE_LIMIT = 20000;\n\n/**\n * Message format used by OpenAI and Anthropic APIs.\n */\ntype ContentMessage = {\n [key: string]: unknown;\n content: string;\n};\n\n/**\n * One block inside OpenAI / Anthropic `content: [...]` arrays (text, image_url, etc.).\n */\ntype ContentArrayBlock = {\n [key: string]: unknown;\n type: string;\n};\n\n/**\n * Message format used by OpenAI and Anthropic APIs for media.\n */\ntype ContentArrayMessage = {\n [key: string]: unknown;\n content: ContentArrayBlock[];\n};\n\n/**\n * Message format used by Google GenAI API.\n * Parts can be strings or objects with a text property.\n */\ntype PartsMessage = {\n [key: string]: unknown;\n parts: Array;\n};\n\n/**\n * A part in a Google GenAI message that contains text.\n */\ntype TextPart = string | { text: string };\n\n/**\n * A part in a Google GenAI that contains media.\n */\ntype MediaPart = {\n type: string;\n content: string;\n};\n\n/**\n * One element of an array-based message: OpenAI/Anthropic `content[]` or Google `parts`.\n */\ntype ArrayMessageItem = TextPart | MediaPart | ContentArrayBlock;\n\n/**\n * Calculate the UTF-8 byte length of a string.\n */\nconst utf8Bytes = (text: string): number => {\n return new TextEncoder().encode(text).length;\n};\n\n/**\n * Calculate the UTF-8 byte length of a value's JSON representation.\n */\nconst jsonBytes = (value: unknown): number => {\n return utf8Bytes(JSON.stringify(value));\n};\n\n/**\n * Truncate a string to fit within maxBytes (inclusive) when encoded as UTF-8.\n * Uses binary search for efficiency with multi-byte characters.\n *\n * @param text - The string to truncate\n * @param maxBytes - Maximum byte length (inclusive, UTF-8 encoded)\n * @returns Truncated string whose UTF-8 byte length is at most maxBytes\n */\nfunction truncateTextByBytes(text: string, maxBytes: number): string {\n if (utf8Bytes(text) <= maxBytes) {\n return text;\n }\n\n let low = 0;\n let high = text.length;\n let bestFit = '';\n\n while (low <= high) {\n const mid = Math.floor((low + high) / 2);\n const candidate = text.slice(0, mid);\n const byteSize = utf8Bytes(candidate);\n\n if (byteSize <= maxBytes) {\n bestFit = candidate;\n low = mid + 1;\n } else {\n high = mid - 1;\n }\n }\n\n return bestFit;\n}\n\n/**\n * Extract text content from a message item.\n * Handles plain strings and objects with a text property.\n *\n * @returns The text content\n */\nfunction getItemText(item: ArrayMessageItem): string {\n if (typeof item === 'string') {\n return item;\n }\n if ('text' in item && typeof item.text === 'string') {\n return item.text;\n }\n return '';\n}\n\n/**\n * Create a new item with updated text content while preserving the original structure.\n *\n * @param item - Original item (string or object)\n * @param text - New text content\n * @returns New item with updated text\n */\nfunction withItemText(item: ArrayMessageItem, text: string): ArrayMessageItem {\n if (typeof item === 'string') {\n return text;\n }\n return { ...item, text };\n}\n\n/**\n * Check if a message has the OpenAI/Anthropic content format.\n */\nfunction isContentMessage(message: unknown): message is ContentMessage {\n return (\n message !== null &&\n typeof message === 'object' &&\n 'content' in message &&\n typeof (message as ContentMessage).content === 'string'\n );\n}\n\n/**\n * Check if a message has the OpenAI/Anthropic content array format.\n */\nfunction isContentArrayMessage(message: unknown): message is ContentArrayMessage {\n return message !== null && typeof message === 'object' && 'content' in message && Array.isArray(message.content);\n}\n\n/**\n * Check if a message has the Google GenAI parts format.\n */\nfunction isPartsMessage(message: unknown): message is PartsMessage {\n return (\n message !== null &&\n typeof message === 'object' &&\n 'parts' in message &&\n Array.isArray((message as PartsMessage).parts) &&\n (message as PartsMessage).parts.length > 0\n );\n}\n\n/**\n * Truncate a message with `content: string` format (OpenAI/Anthropic).\n *\n * @param message - Message with content property\n * @param maxBytes - Maximum byte limit\n * @returns Array with truncated message, or empty array if it doesn't fit\n */\nfunction truncateContentMessage(message: ContentMessage, maxBytes: number): unknown[] {\n // Calculate overhead (message structure without content)\n const emptyMessage = { ...message, content: '' };\n const overhead = jsonBytes(emptyMessage);\n const availableForContent = maxBytes - overhead;\n\n if (availableForContent <= 0) {\n return [];\n }\n\n const truncatedContent = truncateTextByBytes(message.content, availableForContent);\n return [{ ...message, content: truncatedContent }];\n}\n\n/**\n * Extracts the array items and their key from an array-based message.\n * Returns `null` key if neither `parts` nor `content` is a valid array.\n */\nfunction getArrayItems(message: PartsMessage | ContentArrayMessage): {\n key: 'parts' | 'content' | null;\n items: ArrayMessageItem[];\n} {\n if ('parts' in message && Array.isArray(message.parts)) {\n return { key: 'parts', items: message.parts };\n }\n if ('content' in message && Array.isArray(message.content)) {\n return { key: 'content', items: message.content };\n }\n return { key: null, items: [] };\n}\n\n/**\n * Truncate a message with an array-based format.\n * Handles both `parts: [...]` (Google GenAI) and `content: [...]` (OpenAI/Anthropic multimodal).\n * Keeps as many complete items as possible, only truncating the first item if needed.\n *\n * @param message - Message with parts or content array\n * @param maxBytes - Maximum byte limit\n * @returns Array with truncated message, or empty array if it doesn't fit\n */\nfunction truncateArrayMessage(message: PartsMessage | ContentArrayMessage, maxBytes: number): unknown[] {\n const { key, items } = getArrayItems(message);\n\n if (key === null || items.length === 0) {\n return [];\n }\n\n // Calculate overhead by creating empty text items\n const emptyItems = items.map(item => withItemText(item, ''));\n const overhead = jsonBytes({ ...message, [key]: emptyItems });\n let remainingBytes = maxBytes - overhead;\n\n if (remainingBytes <= 0) {\n return [];\n }\n\n // Include items until we run out of space\n const includedItems: ArrayMessageItem[] = [];\n\n for (const item of items) {\n const text = getItemText(item);\n const textSize = utf8Bytes(text);\n\n if (textSize <= remainingBytes) {\n // Item fits: include it as-is\n includedItems.push(item);\n remainingBytes -= textSize;\n } else if (includedItems.length === 0) {\n // First item doesn't fit: truncate it\n const truncated = truncateTextByBytes(text, remainingBytes);\n if (truncated) {\n includedItems.push(withItemText(item, truncated));\n }\n break;\n } else {\n // Subsequent item doesn't fit: stop here\n break;\n }\n }\n\n /* c8 ignore start\n * for type safety only, algorithm guarantees SOME text included */\n if (includedItems.length <= 0) {\n return [];\n } else {\n /* c8 ignore stop */\n return [{ ...message, [key]: includedItems }];\n }\n}\n\n/**\n * Truncate a single message to fit within maxBytes.\n *\n * Supports three message formats:\n * - OpenAI/Anthropic: `{ ..., content: string }`\n * - Vercel AI/OpenAI multimodal: `{ ..., content: Array<{type, text?, ...}> }`\n * - Google GenAI: `{ ..., parts: Array }`\n *\n * @param message - The message to truncate\n * @param maxBytes - Maximum byte limit for the message\n * @returns Array containing the truncated message, or empty array if truncation fails\n */\nfunction truncateSingleMessage(message: unknown, maxBytes: number): unknown[] {\n if (!message) return [];\n\n // Handle plain strings (e.g., embeddings input)\n if (typeof message === 'string') {\n const truncated = truncateTextByBytes(message, maxBytes);\n return truncated ? [truncated] : [];\n }\n\n if (typeof message !== 'object') {\n return [];\n }\n\n if (isContentMessage(message)) {\n return truncateContentMessage(message, maxBytes);\n }\n\n if (isContentArrayMessage(message) || isPartsMessage(message)) {\n return truncateArrayMessage(message, maxBytes);\n }\n\n // Unknown message format: cannot truncate safely\n return [];\n}\n\n/**\n * Strip the inline media from message arrays.\n *\n * This returns a stripped message. We do NOT want to mutate the data in place,\n * because of course we still want the actual API/client to handle the media.\n */\nfunction stripInlineMediaFromMessages(messages: unknown[]): unknown[] {\n const stripped = messages.map(message => {\n let newMessage: Record | undefined = undefined;\n if (!!message && typeof message === 'object') {\n if (isContentArrayMessage(message)) {\n newMessage = {\n ...message,\n content: stripInlineMediaFromMessages(message.content),\n };\n } else if ('content' in message && isContentMedia(message.content)) {\n newMessage = {\n ...message,\n content: stripInlineMediaFromSingleMessage(message.content),\n };\n }\n if (isPartsMessage(message)) {\n newMessage = {\n // might have to strip content AND parts\n ...(newMessage ?? message),\n parts: stripInlineMediaFromMessages(message.parts),\n };\n }\n if (isContentMedia(newMessage)) {\n newMessage = stripInlineMediaFromSingleMessage(newMessage);\n } else if (isContentMedia(message)) {\n newMessage = stripInlineMediaFromSingleMessage(message);\n }\n }\n return newMessage ?? message;\n });\n return stripped;\n}\n\n/**\n * Truncate an array of messages to fit within a byte limit.\n *\n * Strategy:\n * - Always keeps only the last (newest) message\n * - Strips inline media from the message\n * - Truncates the message content if it exceeds the byte limit\n *\n * @param messages - Array of messages to truncate\n * @param maxBytes - Maximum total byte limit for the message\n * @returns Array containing only the last message (possibly truncated)\n *\n * @example\n * ```ts\n * const messages = [msg1, msg2, msg3, msg4]; // newest is msg4\n * const truncated = truncateMessagesByBytes(messages, 10000);\n * // Returns [msg4] (truncated if needed)\n * ```\n */\nfunction truncateMessagesByBytes(messages: unknown[], maxBytes: number): unknown[] {\n // Early return for empty or invalid input\n if (!Array.isArray(messages) || messages.length === 0) {\n return messages;\n }\n\n // The result is always a single-element array that callers wrap with\n // JSON.stringify([message]), so subtract the 2-byte array wrapper (\"[\" and \"]\")\n // to ensure the final serialized value stays under the limit.\n const effectiveMaxBytes = maxBytes - 2;\n\n // Always keep only the last message\n const lastMessage = messages[messages.length - 1];\n\n // Strip inline media from the single message\n const stripped = stripInlineMediaFromMessages([lastMessage]);\n const strippedMessage = stripped[0];\n\n // Check if it fits\n const messageBytes = jsonBytes(strippedMessage);\n if (messageBytes <= effectiveMaxBytes) {\n return stripped;\n }\n\n // Truncate the single message if needed\n return truncateSingleMessage(strippedMessage, effectiveMaxBytes);\n}\n\n/**\n * Truncate GenAI messages using the default byte limit.\n *\n * Convenience wrapper around `truncateMessagesByBytes` with the default limit.\n *\n * @param messages - Array of messages to truncate\n * @returns Truncated array of messages\n */\nexport function truncateGenAiMessages(messages: unknown[]): unknown[] {\n return truncateMessagesByBytes(messages, DEFAULT_GEN_AI_MESSAGES_BYTE_LIMIT);\n}\n\n/**\n * Truncate GenAI string input using the default byte limit.\n *\n * @param input - The string to truncate\n * @returns Truncated string\n */\nexport function truncateGenAiStringInput(input: string): string {\n return truncateTextByBytes(input, DEFAULT_GEN_AI_MESSAGES_BYTE_LIMIT);\n}\n","/**\n * Shared utils for AI integrations (OpenAI, Anthropic, Verce.AI, etc.)\n */\nimport { captureException } from '../../exports';\nimport { getClient } from '../../currentScopes';\nimport type { Span } from '../../types-hoist/span';\nimport { isThenable } from '../../utils/is';\nimport {\n GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE,\n GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE,\n GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE,\n} from './gen-ai-attributes';\nimport { truncateGenAiMessages, truncateGenAiStringInput } from './messageTruncation';\n\nexport interface AIRecordingOptions {\n recordInputs?: boolean;\n recordOutputs?: boolean;\n}\n\n/**\n * A method registry entry describes a single instrumented method:\n * which gen_ai operation it maps to and whether it is intrinsically streaming.\n */\nexport interface InstrumentedMethodEntry {\n /** Operation name (e.g. 'chat', 'embeddings', 'generate_content') */\n operation: string;\n /** True if the method itself is always streaming (not param-based) */\n streaming?: boolean;\n}\n\n/**\n * Maps method paths to their registry entries.\n * Used by proxy-based AI client instrumentations to determine which methods\n * to instrument, what operation name to use, and whether they stream.\n */\nexport type InstrumentedMethodRegistry = Record;\n\n/**\n * Resolves AI recording options by falling back to the client's `sendDefaultPii` setting.\n * Precedence: explicit option > sendDefaultPii > false\n */\nexport function resolveAIRecordingOptions(options?: T): T & Required {\n const sendDefaultPii = Boolean(getClient()?.getOptions().sendDefaultPii);\n return {\n ...options,\n recordInputs: options?.recordInputs ?? sendDefaultPii,\n recordOutputs: options?.recordOutputs ?? sendDefaultPii,\n } as T & Required;\n}\n\n/**\n * Build method path from current traversal\n */\nexport function buildMethodPath(currentPath: string, prop: string): string {\n return currentPath ? `${currentPath}.${prop}` : prop;\n}\n\n/**\n * Set token usage attributes\n * @param span - The span to add attributes to\n * @param promptTokens - The number of prompt tokens\n * @param completionTokens - The number of completion tokens\n * @param cachedInputTokens - The number of cached input tokens\n * @param cachedOutputTokens - The number of cached output tokens\n */\nexport function setTokenUsageAttributes(\n span: Span,\n promptTokens?: number,\n completionTokens?: number,\n cachedInputTokens?: number,\n cachedOutputTokens?: number,\n): void {\n if (promptTokens !== undefined) {\n span.setAttributes({\n [GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE]: promptTokens,\n });\n }\n if (completionTokens !== undefined) {\n span.setAttributes({\n [GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE]: completionTokens,\n });\n }\n if (\n promptTokens !== undefined ||\n completionTokens !== undefined ||\n cachedInputTokens !== undefined ||\n cachedOutputTokens !== undefined\n ) {\n /**\n * Total input tokens in a request is the summation of `input_tokens`,\n * `cache_creation_input_tokens`, and `cache_read_input_tokens`.\n */\n const totalTokens =\n (promptTokens ?? 0) + (completionTokens ?? 0) + (cachedInputTokens ?? 0) + (cachedOutputTokens ?? 0);\n\n span.setAttributes({\n [GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE]: totalTokens,\n });\n }\n}\n\n/**\n * Get the truncated JSON string for a string or array of strings.\n *\n * @param value - The string or array of strings to truncate\n * @returns The truncated JSON string\n */\nexport function getTruncatedJsonString(value: T | T[]): string {\n if (typeof value === 'string') {\n // Some values are already JSON strings, so we don't need to duplicate the JSON parsing\n return truncateGenAiStringInput(value);\n }\n if (Array.isArray(value)) {\n // truncateGenAiMessages returns an array of strings, so we need to stringify it\n const truncatedMessages = truncateGenAiMessages(value);\n return JSON.stringify(truncatedMessages);\n }\n // value is an object, so we need to stringify it\n return JSON.stringify(value);\n}\n\n/**\n * Extract system instructions from messages array.\n * Finds the first system message and formats it according to OpenTelemetry semantic conventions.\n *\n * @param messages - Array of messages to extract system instructions from\n * @returns systemInstructions (JSON string) and filteredMessages (without system message)\n */\nexport function extractSystemInstructions(messages: unknown[] | unknown): {\n systemInstructions: string | undefined;\n filteredMessages: unknown[] | unknown;\n} {\n if (!Array.isArray(messages)) {\n return { systemInstructions: undefined, filteredMessages: messages };\n }\n\n const systemMessageIndex = messages.findIndex(\n msg => msg && typeof msg === 'object' && 'role' in msg && (msg as { role: string }).role === 'system',\n );\n\n if (systemMessageIndex === -1) {\n return { systemInstructions: undefined, filteredMessages: messages };\n }\n\n const systemMessage = messages[systemMessageIndex] as { role: string; content?: string | unknown };\n const systemContent =\n typeof systemMessage.content === 'string'\n ? systemMessage.content\n : systemMessage.content !== undefined\n ? JSON.stringify(systemMessage.content)\n : undefined;\n\n if (!systemContent) {\n return { systemInstructions: undefined, filteredMessages: messages };\n }\n\n const systemInstructions = JSON.stringify([{ type: 'text', content: systemContent }]);\n const filteredMessages = [...messages.slice(0, systemMessageIndex), ...messages.slice(systemMessageIndex + 1)];\n\n return { systemInstructions, filteredMessages };\n}\n\n/**\n * Creates a wrapped version of .withResponse() that replaces the data field\n * with the instrumented result while preserving metadata (response, request_id).\n */\nasync function createWithResponseWrapper(\n originalWithResponse: Promise,\n instrumentedPromise: Promise,\n mechanismType: string,\n): Promise {\n // Attach catch handler to originalWithResponse immediately to prevent unhandled rejection\n // If instrumentedPromise rejects first, we still need this handled\n const safeOriginalWithResponse = originalWithResponse.catch(error => {\n captureException(error, {\n mechanism: {\n handled: false,\n type: mechanismType,\n },\n });\n throw error;\n });\n\n const instrumentedResult = await instrumentedPromise;\n const originalWrapper = await safeOriginalWithResponse;\n\n // Combine instrumented result with original metadata\n if (originalWrapper && typeof originalWrapper === 'object' && 'data' in originalWrapper) {\n return {\n ...originalWrapper,\n data: instrumentedResult,\n };\n }\n return instrumentedResult;\n}\n\n/**\n * Wraps a promise-like object to preserve additional methods (like .withResponse())\n * that AI SDK clients (OpenAI, Anthropic) attach to their APIPromise return values.\n *\n * Standard Promise methods (.then, .catch, .finally) are routed to the instrumented\n * promise to preserve Sentry's span instrumentation, while custom SDK methods are\n * forwarded to the original promise to maintain the SDK's API surface.\n */\nexport function wrapPromiseWithMethods(\n originalPromiseLike: Promise,\n instrumentedPromise: Promise,\n mechanismType: string,\n): Promise {\n // If the original result is not thenable, return the instrumented promise\n if (!isThenable(originalPromiseLike)) {\n return instrumentedPromise;\n }\n\n // Create a proxy that forwards Promise methods to instrumentedPromise\n // and preserves additional methods from the original result\n return new Proxy(originalPromiseLike, {\n get(target: object, prop: string | symbol): unknown {\n // For standard Promise methods (.then, .catch, .finally, Symbol.toStringTag),\n // use instrumentedPromise to preserve Sentry instrumentation.\n // For custom methods (like .withResponse()), use the original target.\n const useInstrumentedPromise = prop in Promise.prototype || prop === Symbol.toStringTag;\n const source = useInstrumentedPromise ? instrumentedPromise : target;\n\n const value = Reflect.get(source, prop) as unknown;\n\n // Special handling for .withResponse() to preserve instrumentation\n // .withResponse() returns { data: T, response: Response, request_id: string }\n if (prop === 'withResponse' && typeof value === 'function') {\n return function wrappedWithResponse(this: unknown): unknown {\n const originalWithResponse = (value as (...args: unknown[]) => unknown).call(target);\n return createWithResponseWrapper(originalWithResponse, instrumentedPromise, mechanismType);\n };\n }\n\n return typeof value === 'function' ? value.bind(source) : value;\n },\n }) as Promise;\n}\n","/* eslint-disable max-lines */\n/**\n * AI SDK Telemetry Attributes\n * Based on https://ai-sdk.dev/docs/ai-sdk-core/telemetry#collected-data\n */\n\n// =============================================================================\n// COMMON ATTRIBUTES\n// =============================================================================\n\n/**\n * Common attribute for operation name across all functions and spans\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#collected-data\n */\nexport const OPERATION_NAME_ATTRIBUTE = 'operation.name';\n\n/**\n * Common attribute for AI operation ID across all functions and spans\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#collected-data\n */\nexport const AI_OPERATION_ID_ATTRIBUTE = 'ai.operationId';\n\n// =============================================================================\n// SHARED ATTRIBUTES\n// =============================================================================\n\n/**\n * `generateText` function - `ai.generateText` span\n * `streamText` function - `ai.streamText` span\n *\n * The prompt that was used when calling the function\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generatetext-function\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#streamtext-function\n */\nexport const AI_PROMPT_ATTRIBUTE = 'ai.prompt';\n\n/**\n * `generateObject` function - `ai.generateObject` span\n * `streamObject` function - `ai.streamObject` span\n *\n * The JSON schema version of the schema that was passed into the function\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generateobject-function\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#streamobject-function\n */\nexport const AI_SCHEMA_ATTRIBUTE = 'ai.schema';\n\n/**\n * `generateObject` function - `ai.generateObject` span\n * `streamObject` function - `ai.streamObject` span\n *\n * The name of the schema that was passed into the function\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generateobject-function\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#streamobject-function\n */\nexport const AI_SCHEMA_NAME_ATTRIBUTE = 'ai.schema.name';\n\n/**\n * `generateObject` function - `ai.generateObject` span\n * `streamObject` function - `ai.streamObject` span\n *\n * The description of the schema that was passed into the function\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generateobject-function\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#streamobject-function\n */\nexport const AI_SCHEMA_DESCRIPTION_ATTRIBUTE = 'ai.schema.description';\n\n/**\n * `generateObject` function - `ai.generateObject` span\n * `streamObject` function - `ai.streamObject` span\n *\n * The object that was generated (stringified JSON)\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generateobject-function\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#streamobject-function\n */\nexport const AI_RESPONSE_OBJECT_ATTRIBUTE = 'ai.response.object';\n\n/**\n * `generateObject` function - `ai.generateObject` span\n * `streamObject` function - `ai.streamObject` span\n *\n * The object generation mode, e.g. `json`\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generateobject-function\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#streamobject-function\n */\nexport const AI_SETTINGS_MODE_ATTRIBUTE = 'ai.settings.mode';\n\n/**\n * `generateObject` function - `ai.generateObject` span\n * `streamObject` function - `ai.streamObject` span\n *\n * The output type that was used, e.g. `object` or `no-schema`\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generateobject-function\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#streamobject-function\n */\nexport const AI_SETTINGS_OUTPUT_ATTRIBUTE = 'ai.settings.output';\n\n/**\n * `embed` function - `ai.embed.doEmbed` span\n * `embedMany` function - `ai.embedMany` span\n *\n * The values that were passed into the function (array)\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#embed-function\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#embedmany-function\n */\nexport const AI_VALUES_ATTRIBUTE = 'ai.values';\n\n/**\n * `embed` function - `ai.embed.doEmbed` span\n * `embedMany` function - `ai.embedMany` span\n *\n * An array of JSON-stringified embeddings\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#embed-function\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#embedmany-function\n */\nexport const AI_EMBEDDINGS_ATTRIBUTE = 'ai.embeddings';\n\n// =============================================================================\n// GENERATETEXT FUNCTION - UNIQUE ATTRIBUTES\n// =============================================================================\n\n/**\n * `generateText` function - `ai.generateText` span\n *\n * The text that was generated\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generatetext-function\n */\nexport const AI_RESPONSE_TEXT_ATTRIBUTE = 'ai.response.text';\n\n/**\n * `generateText` function - `ai.generateText` span\n *\n * The tool calls that were made as part of the generation (stringified JSON)\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generatetext-function\n */\nexport const AI_RESPONSE_TOOL_CALLS_ATTRIBUTE = 'ai.response.toolCalls';\n\n/**\n * `generateText` function - `ai.generateText` span\n *\n * The reason why the generation finished\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generatetext-function\n */\nexport const AI_RESPONSE_FINISH_REASON_ATTRIBUTE = 'ai.response.finishReason';\n\n/**\n * `generateText` function - `ai.generateText` span\n *\n * The maximum number of steps that were set\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generatetext-function\n */\nexport const AI_SETTINGS_MAX_STEPS_ATTRIBUTE = 'ai.settings.maxSteps';\n\n/**\n * `generateText` function - `ai.generateText.doGenerate` span\n *\n * The format of the prompt\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generatetext-function\n */\nexport const AI_PROMPT_FORMAT_ATTRIBUTE = 'ai.prompt.format';\n\n/**\n * `generateText` function - `ai.generateText.doGenerate` span\n *\n * The messages that were passed into the provider\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generatetext-function\n */\nexport const AI_PROMPT_MESSAGES_ATTRIBUTE = 'ai.prompt.messages';\n\n/**\n * `generateText` function - `ai.generateText.doGenerate` span\n *\n * Array of stringified tool definitions\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generatetext-function\n */\nexport const AI_PROMPT_TOOLS_ATTRIBUTE = 'ai.prompt.tools';\n\n/**\n * `generateText` function - `ai.generateText.doGenerate` span\n *\n * The stringified tool choice setting (JSON)\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generatetext-function\n */\nexport const AI_PROMPT_TOOL_CHOICE_ATTRIBUTE = 'ai.prompt.toolChoice';\n\n// =============================================================================\n// STREAMTEXT FUNCTION - UNIQUE ATTRIBUTES\n// =============================================================================\n\n/**\n * `streamText` function - `ai.streamText.doStream` span\n *\n * The time it took to receive the first chunk in milliseconds\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#streamtext-function\n */\nexport const AI_RESPONSE_MS_TO_FIRST_CHUNK_ATTRIBUTE = 'ai.response.msToFirstChunk';\n\n/**\n * `streamText` function - `ai.streamText.doStream` span\n *\n * The time it took to receive the finish part of the LLM stream in milliseconds\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#streamtext-function\n */\nexport const AI_RESPONSE_MS_TO_FINISH_ATTRIBUTE = 'ai.response.msToFinish';\n\n/**\n * `streamText` function - `ai.streamText.doStream` span\n *\n * The average completion tokens per second\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#streamtext-function\n */\nexport const AI_RESPONSE_AVG_COMPLETION_TOKENS_PER_SECOND_ATTRIBUTE = 'ai.response.avgCompletionTokensPerSecond';\n\n// =============================================================================\n// EMBED FUNCTION - UNIQUE ATTRIBUTES\n// =============================================================================\n\n/**\n * `embed` function - `ai.embed` span\n *\n * The value that was passed into the `embed` function\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#embed-function\n */\nexport const AI_VALUE_ATTRIBUTE = 'ai.value';\n\n/**\n * `embed` function - `ai.embed` span\n *\n * A JSON-stringified embedding\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#embed-function\n */\nexport const AI_EMBEDDING_ATTRIBUTE = 'ai.embedding';\n\n// =============================================================================\n// BASIC LLM SPAN INFORMATION\n// =============================================================================\n\n/**\n * Basic LLM span information\n * Multiple spans\n *\n * The functionId that was set through `telemetry.functionId`\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#basic-llm-span-information\n */\nexport const RESOURCE_NAME_ATTRIBUTE = 'resource.name';\n\n/**\n * Basic LLM span information\n * Multiple spans\n *\n * The id of the model\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#basic-llm-span-information\n */\nexport const AI_MODEL_ID_ATTRIBUTE = 'ai.model.id';\n\n/**\n * Basic LLM span information\n * Multiple spans\n *\n * The provider of the model\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#basic-llm-span-information\n */\nexport const AI_MODEL_PROVIDER_ATTRIBUTE = 'ai.model.provider';\n\n/**\n * Basic LLM span information\n * Multiple spans\n *\n * The request headers that were passed in through `headers`\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#basic-llm-span-information\n */\nexport const AI_REQUEST_HEADERS_ATTRIBUTE = 'ai.request.headers';\n\n/**\n * Basic LLM span information\n * Multiple spans\n *\n * Provider specific metadata returned with the generation response\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#basic-llm-span-information\n */\nexport const AI_RESPONSE_PROVIDER_METADATA_ATTRIBUTE = 'ai.response.providerMetadata';\n\n/**\n * Basic LLM span information\n * Multiple spans\n *\n * The maximum number of retries that were set\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#basic-llm-span-information\n */\nexport const AI_SETTINGS_MAX_RETRIES_ATTRIBUTE = 'ai.settings.maxRetries';\n\n/**\n * Basic LLM span information\n * Multiple spans\n *\n * The number of cached input tokens that were used\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#basic-llm-span-information\n */\nexport const AI_USAGE_CACHED_INPUT_TOKENS_ATTRIBUTE = 'ai.usage.cachedInputTokens';\n/**\n * Basic LLM span information\n * Multiple spans\n *\n * The functionId that was set through `telemetry.functionId`\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#basic-llm-span-information\n */\nexport const AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE = 'ai.telemetry.functionId';\n\n/**\n * Basic LLM span information\n * Multiple spans\n *\n * The metadata that was passed in through `telemetry.metadata`\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#basic-llm-span-information\n */\nexport const AI_TELEMETRY_METADATA_ATTRIBUTE = 'ai.telemetry.metadata';\n\n/**\n * Basic LLM span information\n * Multiple spans\n *\n * The number of completion tokens that were used\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#basic-llm-span-information\n */\nexport const AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE = 'ai.usage.completionTokens';\n\n/**\n * Basic LLM span information\n * Multiple spans\n *\n * The number of prompt tokens that were used\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#basic-llm-span-information\n */\nexport const AI_USAGE_PROMPT_TOKENS_ATTRIBUTE = 'ai.usage.promptTokens';\n\n// =============================================================================\n// CALL LLM SPAN INFORMATION\n// =============================================================================\n\n/**\n * Call LLM span information\n * Individual LLM call spans\n *\n * The model that was used to generate the response\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#call-llm-span-information\n */\nexport const AI_RESPONSE_MODEL_ATTRIBUTE = 'ai.response.model';\n\n/**\n * Call LLM span information\n * Individual LLM call spans\n *\n * The id of the response\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#call-llm-span-information\n */\nexport const AI_RESPONSE_ID_ATTRIBUTE = 'ai.response.id';\n\n/**\n * Call LLM span information\n * Individual LLM call spans\n *\n * The timestamp of the response\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#call-llm-span-information\n */\nexport const AI_RESPONSE_TIMESTAMP_ATTRIBUTE = 'ai.response.timestamp';\n\n// =============================================================================\n// SEMANTIC CONVENTIONS FOR GENAI OPERATIONS\n// =============================================================================\n\n/**\n * Semantic Conventions for GenAI operations\n * Individual LLM call spans\n *\n * The provider that was used\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#call-llm-span-information\n */\nexport const GEN_AI_SYSTEM_ATTRIBUTE = 'gen_ai.system';\n\n/**\n * Semantic Conventions for GenAI operations\n * Individual LLM call spans\n *\n * The model that was requested\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#call-llm-span-information\n */\nexport const GEN_AI_REQUEST_MODEL_ATTRIBUTE = 'gen_ai.request.model';\n\n/**\n * Semantic Conventions for GenAI operations\n * Individual LLM call spans\n *\n * The temperature that was set\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#call-llm-span-information\n */\nexport const GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE = 'gen_ai.request.temperature';\n\n/**\n * Semantic Conventions for GenAI operations\n * Individual LLM call spans\n *\n * The maximum number of tokens that were set\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#call-llm-span-information\n */\nexport const GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE = 'gen_ai.request.max_tokens';\n\n/**\n * Semantic Conventions for GenAI operations\n * Individual LLM call spans\n *\n * The frequency penalty that was set\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#call-llm-span-information\n */\nexport const GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE = 'gen_ai.request.frequency_penalty';\n\n/**\n * Semantic Conventions for GenAI operations\n * Individual LLM call spans\n *\n * The presence penalty that was set\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#call-llm-span-information\n */\nexport const GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE = 'gen_ai.request.presence_penalty';\n\n/**\n * Semantic Conventions for GenAI operations\n * Individual LLM call spans\n *\n * The topK parameter value that was set\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#call-llm-span-information\n */\nexport const GEN_AI_REQUEST_TOP_K_ATTRIBUTE = 'gen_ai.request.top_k';\n\n/**\n * Semantic Conventions for GenAI operations\n * Individual LLM call spans\n *\n * The topP parameter value that was set\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#call-llm-span-information\n */\nexport const GEN_AI_REQUEST_TOP_P_ATTRIBUTE = 'gen_ai.request.top_p';\n\n/**\n * Semantic Conventions for GenAI operations\n * Individual LLM call spans\n *\n * The stop sequences\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#call-llm-span-information\n */\nexport const GEN_AI_REQUEST_STOP_SEQUENCES_ATTRIBUTE = 'gen_ai.request.stop_sequences';\n\n/**\n * Semantic Conventions for GenAI operations\n * Individual LLM call spans\n *\n * The finish reasons that were returned by the provider\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#call-llm-span-information\n */\nexport const GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE = 'gen_ai.response.finish_reasons';\n\n/**\n * Semantic Conventions for GenAI operations\n * Individual LLM call spans\n *\n * The model that was used to generate the response\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#call-llm-span-information\n */\nexport const GEN_AI_RESPONSE_MODEL_ATTRIBUTE = 'gen_ai.response.model';\n\n/**\n * Semantic Conventions for GenAI operations\n * Individual LLM call spans\n *\n * The id of the response\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#call-llm-span-information\n */\nexport const GEN_AI_RESPONSE_ID_ATTRIBUTE = 'gen_ai.response.id';\n\n/**\n * Semantic Conventions for GenAI operations\n * Individual LLM call spans\n *\n * The number of prompt tokens that were used\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#call-llm-span-information\n */\nexport const GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE = 'gen_ai.usage.input_tokens';\n\n/**\n * Semantic Conventions for GenAI operations\n * Individual LLM call spans\n *\n * The number of completion tokens that were used\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#call-llm-span-information\n */\nexport const GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE = 'gen_ai.usage.output_tokens';\n\n// =============================================================================\n// BASIC EMBEDDING SPAN INFORMATION\n// =============================================================================\n\n/**\n * Basic embedding span information\n * Embedding spans\n *\n * The number of tokens that were used\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#basic-embedding-span-information\n */\nexport const AI_USAGE_TOKENS_ATTRIBUTE = 'ai.usage.tokens';\n\n// =============================================================================\n// TOOL CALL SPANS\n// =============================================================================\n\n/**\n * Tool call spans\n * `ai.toolCall` span\n *\n * The name of the tool\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#tool-call-spans\n */\nexport const AI_TOOL_CALL_NAME_ATTRIBUTE = 'ai.toolCall.name';\n\n/**\n * Tool call spans\n * `ai.toolCall` span\n *\n * The id of the tool call\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#tool-call-spans\n */\nexport const AI_TOOL_CALL_ID_ATTRIBUTE = 'ai.toolCall.id';\n\n/**\n * Tool call spans\n * `ai.toolCall` span\n *\n * The parameters of the tool call\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#tool-call-spans\n */\nexport const AI_TOOL_CALL_ARGS_ATTRIBUTE = 'ai.toolCall.args';\n\n/**\n * Tool call spans\n * `ai.toolCall` span\n *\n * The result of the tool call\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#tool-call-spans\n */\nexport const AI_TOOL_CALL_RESULT_ATTRIBUTE = 'ai.toolCall.result';\n\n// =============================================================================\n// SPAN ATTRIBUTE OBJECTS\n// =============================================================================\n\n/**\n * Attributes collected for `ai.generateText` span\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generatetext-function\n */\nexport const AI_GENERATE_TEXT_SPAN_ATTRIBUTES = {\n OPERATION_NAME: OPERATION_NAME_ATTRIBUTE,\n AI_OPERATION_ID: AI_OPERATION_ID_ATTRIBUTE,\n AI_PROMPT: AI_PROMPT_ATTRIBUTE,\n AI_RESPONSE_TEXT: AI_RESPONSE_TEXT_ATTRIBUTE,\n AI_RESPONSE_TOOL_CALLS: AI_RESPONSE_TOOL_CALLS_ATTRIBUTE,\n AI_RESPONSE_FINISH_REASON: AI_RESPONSE_FINISH_REASON_ATTRIBUTE,\n AI_SETTINGS_MAX_STEPS: AI_SETTINGS_MAX_STEPS_ATTRIBUTE,\n // Basic LLM span information\n RESOURCE_NAME: RESOURCE_NAME_ATTRIBUTE,\n AI_MODEL_ID: AI_MODEL_ID_ATTRIBUTE,\n AI_MODEL_PROVIDER: AI_MODEL_PROVIDER_ATTRIBUTE,\n AI_REQUEST_HEADERS: AI_REQUEST_HEADERS_ATTRIBUTE,\n AI_SETTINGS_MAX_RETRIES: AI_SETTINGS_MAX_RETRIES_ATTRIBUTE,\n AI_TELEMETRY_FUNCTION_ID: AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE,\n AI_TELEMETRY_METADATA: AI_TELEMETRY_METADATA_ATTRIBUTE,\n AI_USAGE_COMPLETION_TOKENS: AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE,\n AI_USAGE_PROMPT_TOKENS: AI_USAGE_PROMPT_TOKENS_ATTRIBUTE,\n} as const;\n\n/**\n * Attributes collected for `ai.generateText.doGenerate` span\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generatetext-function\n */\nexport const AI_GENERATE_TEXT_DO_GENERATE_SPAN_ATTRIBUTES = {\n OPERATION_NAME: OPERATION_NAME_ATTRIBUTE,\n AI_OPERATION_ID: AI_OPERATION_ID_ATTRIBUTE,\n AI_PROMPT_FORMAT: AI_PROMPT_FORMAT_ATTRIBUTE,\n AI_PROMPT_MESSAGES: AI_PROMPT_MESSAGES_ATTRIBUTE,\n AI_PROMPT_TOOLS: AI_PROMPT_TOOLS_ATTRIBUTE,\n AI_PROMPT_TOOL_CHOICE: AI_PROMPT_TOOL_CHOICE_ATTRIBUTE,\n // Basic LLM span information\n RESOURCE_NAME: RESOURCE_NAME_ATTRIBUTE,\n AI_MODEL_ID: AI_MODEL_ID_ATTRIBUTE,\n AI_MODEL_PROVIDER: AI_MODEL_PROVIDER_ATTRIBUTE,\n AI_REQUEST_HEADERS: AI_REQUEST_HEADERS_ATTRIBUTE,\n AI_SETTINGS_MAX_RETRIES: AI_SETTINGS_MAX_RETRIES_ATTRIBUTE,\n AI_TELEMETRY_FUNCTION_ID: AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE,\n AI_TELEMETRY_METADATA: AI_TELEMETRY_METADATA_ATTRIBUTE,\n AI_USAGE_COMPLETION_TOKENS: AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE,\n AI_USAGE_PROMPT_TOKENS: AI_USAGE_PROMPT_TOKENS_ATTRIBUTE,\n // Call LLM span information\n AI_RESPONSE_MODEL: AI_RESPONSE_MODEL_ATTRIBUTE,\n AI_RESPONSE_ID: AI_RESPONSE_ID_ATTRIBUTE,\n AI_RESPONSE_TIMESTAMP: AI_RESPONSE_TIMESTAMP_ATTRIBUTE,\n // Semantic Conventions for GenAI operations\n GEN_AI_SYSTEM: GEN_AI_SYSTEM_ATTRIBUTE,\n GEN_AI_REQUEST_MODEL: GEN_AI_REQUEST_MODEL_ATTRIBUTE,\n GEN_AI_REQUEST_TEMPERATURE: GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE,\n GEN_AI_REQUEST_MAX_TOKENS: GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE,\n GEN_AI_REQUEST_FREQUENCY_PENALTY: GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE,\n GEN_AI_REQUEST_PRESENCE_PENALTY: GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE,\n GEN_AI_REQUEST_TOP_K: GEN_AI_REQUEST_TOP_K_ATTRIBUTE,\n GEN_AI_REQUEST_TOP_P: GEN_AI_REQUEST_TOP_P_ATTRIBUTE,\n GEN_AI_REQUEST_STOP_SEQUENCES: GEN_AI_REQUEST_STOP_SEQUENCES_ATTRIBUTE,\n GEN_AI_RESPONSE_FINISH_REASONS: GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE,\n GEN_AI_RESPONSE_MODEL: GEN_AI_RESPONSE_MODEL_ATTRIBUTE,\n GEN_AI_RESPONSE_ID: GEN_AI_RESPONSE_ID_ATTRIBUTE,\n GEN_AI_USAGE_INPUT_TOKENS: GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE,\n GEN_AI_USAGE_OUTPUT_TOKENS: GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE,\n} as const;\n\n/**\n * Attributes collected for `ai.streamText` span\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#streamtext-function\n */\nexport const AI_STREAM_TEXT_SPAN_ATTRIBUTES = {\n OPERATION_NAME: OPERATION_NAME_ATTRIBUTE,\n AI_OPERATION_ID: AI_OPERATION_ID_ATTRIBUTE,\n AI_PROMPT: AI_PROMPT_ATTRIBUTE,\n // Basic LLM span information\n RESOURCE_NAME: RESOURCE_NAME_ATTRIBUTE,\n AI_MODEL_ID: AI_MODEL_ID_ATTRIBUTE,\n AI_MODEL_PROVIDER: AI_MODEL_PROVIDER_ATTRIBUTE,\n AI_REQUEST_HEADERS: AI_REQUEST_HEADERS_ATTRIBUTE,\n AI_SETTINGS_MAX_RETRIES: AI_SETTINGS_MAX_RETRIES_ATTRIBUTE,\n AI_TELEMETRY_FUNCTION_ID: AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE,\n AI_TELEMETRY_METADATA: AI_TELEMETRY_METADATA_ATTRIBUTE,\n AI_USAGE_COMPLETION_TOKENS: AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE,\n AI_USAGE_PROMPT_TOKENS: AI_USAGE_PROMPT_TOKENS_ATTRIBUTE,\n} as const;\n\n/**\n * Attributes collected for `ai.streamText.doStream` span\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#streamtext-function\n */\nexport const AI_STREAM_TEXT_DO_STREAM_SPAN_ATTRIBUTES = {\n OPERATION_NAME: OPERATION_NAME_ATTRIBUTE,\n AI_OPERATION_ID: AI_OPERATION_ID_ATTRIBUTE,\n AI_RESPONSE_MS_TO_FIRST_CHUNK: AI_RESPONSE_MS_TO_FIRST_CHUNK_ATTRIBUTE,\n AI_RESPONSE_MS_TO_FINISH: AI_RESPONSE_MS_TO_FINISH_ATTRIBUTE,\n AI_RESPONSE_AVG_COMPLETION_TOKENS_PER_SECOND: AI_RESPONSE_AVG_COMPLETION_TOKENS_PER_SECOND_ATTRIBUTE,\n // Basic LLM span information\n RESOURCE_NAME: RESOURCE_NAME_ATTRIBUTE,\n AI_MODEL_ID: AI_MODEL_ID_ATTRIBUTE,\n AI_MODEL_PROVIDER: AI_MODEL_PROVIDER_ATTRIBUTE,\n AI_REQUEST_HEADERS: AI_REQUEST_HEADERS_ATTRIBUTE,\n AI_SETTINGS_MAX_RETRIES: AI_SETTINGS_MAX_RETRIES_ATTRIBUTE,\n AI_TELEMETRY_FUNCTION_ID: AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE,\n AI_TELEMETRY_METADATA: AI_TELEMETRY_METADATA_ATTRIBUTE,\n AI_USAGE_COMPLETION_TOKENS: AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE,\n AI_USAGE_PROMPT_TOKENS: AI_USAGE_PROMPT_TOKENS_ATTRIBUTE,\n // Call LLM span information\n AI_RESPONSE_MODEL: AI_RESPONSE_MODEL_ATTRIBUTE,\n AI_RESPONSE_ID: AI_RESPONSE_ID_ATTRIBUTE,\n AI_RESPONSE_TIMESTAMP: AI_RESPONSE_TIMESTAMP_ATTRIBUTE,\n // Semantic Conventions for GenAI operations\n GEN_AI_SYSTEM: GEN_AI_SYSTEM_ATTRIBUTE,\n GEN_AI_REQUEST_MODEL: GEN_AI_REQUEST_MODEL_ATTRIBUTE,\n GEN_AI_REQUEST_TEMPERATURE: GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE,\n GEN_AI_REQUEST_MAX_TOKENS: GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE,\n GEN_AI_REQUEST_FREQUENCY_PENALTY: GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE,\n GEN_AI_REQUEST_PRESENCE_PENALTY: GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE,\n GEN_AI_REQUEST_TOP_K: GEN_AI_REQUEST_TOP_K_ATTRIBUTE,\n GEN_AI_REQUEST_TOP_P: GEN_AI_REQUEST_TOP_P_ATTRIBUTE,\n GEN_AI_REQUEST_STOP_SEQUENCES: GEN_AI_REQUEST_STOP_SEQUENCES_ATTRIBUTE,\n GEN_AI_RESPONSE_FINISH_REASONS: GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE,\n GEN_AI_RESPONSE_MODEL: GEN_AI_RESPONSE_MODEL_ATTRIBUTE,\n GEN_AI_RESPONSE_ID: GEN_AI_RESPONSE_ID_ATTRIBUTE,\n GEN_AI_USAGE_INPUT_TOKENS: GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE,\n GEN_AI_USAGE_OUTPUT_TOKENS: GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE,\n} as const;\n\n/**\n * Attributes collected for `ai.generateObject` span\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#generateobject-function\n */\nexport const AI_GENERATE_OBJECT_SPAN_ATTRIBUTES = {\n OPERATION_NAME: OPERATION_NAME_ATTRIBUTE,\n AI_OPERATION_ID: AI_OPERATION_ID_ATTRIBUTE,\n AI_SCHEMA: AI_SCHEMA_ATTRIBUTE,\n AI_SCHEMA_NAME: AI_SCHEMA_NAME_ATTRIBUTE,\n AI_SCHEMA_DESCRIPTION: AI_SCHEMA_DESCRIPTION_ATTRIBUTE,\n AI_RESPONSE_OBJECT: AI_RESPONSE_OBJECT_ATTRIBUTE,\n AI_SETTINGS_MODE: AI_SETTINGS_MODE_ATTRIBUTE,\n AI_SETTINGS_OUTPUT: AI_SETTINGS_OUTPUT_ATTRIBUTE,\n // Basic LLM span information\n RESOURCE_NAME: RESOURCE_NAME_ATTRIBUTE,\n AI_MODEL_ID: AI_MODEL_ID_ATTRIBUTE,\n AI_MODEL_PROVIDER: AI_MODEL_PROVIDER_ATTRIBUTE,\n AI_REQUEST_HEADERS: AI_REQUEST_HEADERS_ATTRIBUTE,\n AI_SETTINGS_MAX_RETRIES: AI_SETTINGS_MAX_RETRIES_ATTRIBUTE,\n AI_TELEMETRY_FUNCTION_ID: AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE,\n AI_TELEMETRY_METADATA: AI_TELEMETRY_METADATA_ATTRIBUTE,\n AI_USAGE_COMPLETION_TOKENS: AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE,\n AI_USAGE_PROMPT_TOKENS: AI_USAGE_PROMPT_TOKENS_ATTRIBUTE,\n} as const;\n\n/**\n * Attributes collected for `ai.streamObject` span\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#streamobject-function\n */\nexport const AI_STREAM_OBJECT_SPAN_ATTRIBUTES = {\n OPERATION_NAME: OPERATION_NAME_ATTRIBUTE,\n AI_OPERATION_ID: AI_OPERATION_ID_ATTRIBUTE,\n AI_SCHEMA: AI_SCHEMA_ATTRIBUTE,\n AI_SCHEMA_NAME: AI_SCHEMA_NAME_ATTRIBUTE,\n AI_SCHEMA_DESCRIPTION: AI_SCHEMA_DESCRIPTION_ATTRIBUTE,\n AI_RESPONSE_OBJECT: AI_RESPONSE_OBJECT_ATTRIBUTE,\n AI_SETTINGS_MODE: AI_SETTINGS_MODE_ATTRIBUTE,\n AI_SETTINGS_OUTPUT: AI_SETTINGS_OUTPUT_ATTRIBUTE,\n // Basic LLM span information\n RESOURCE_NAME: RESOURCE_NAME_ATTRIBUTE,\n AI_MODEL_ID: AI_MODEL_ID_ATTRIBUTE,\n AI_MODEL_PROVIDER: AI_MODEL_PROVIDER_ATTRIBUTE,\n AI_REQUEST_HEADERS: AI_REQUEST_HEADERS_ATTRIBUTE,\n AI_SETTINGS_MAX_RETRIES: AI_SETTINGS_MAX_RETRIES_ATTRIBUTE,\n AI_TELEMETRY_FUNCTION_ID: AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE,\n AI_TELEMETRY_METADATA: AI_TELEMETRY_METADATA_ATTRIBUTE,\n AI_USAGE_COMPLETION_TOKENS: AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE,\n AI_USAGE_PROMPT_TOKENS: AI_USAGE_PROMPT_TOKENS_ATTRIBUTE,\n} as const;\n\n/**\n * Attributes collected for `ai.embed` span\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#embed-function\n */\nexport const AI_EMBED_SPAN_ATTRIBUTES = {\n OPERATION_NAME: OPERATION_NAME_ATTRIBUTE,\n AI_OPERATION_ID: AI_OPERATION_ID_ATTRIBUTE,\n AI_VALUE: AI_VALUE_ATTRIBUTE,\n AI_EMBEDDING: AI_EMBEDDING_ATTRIBUTE,\n // Basic LLM span information\n RESOURCE_NAME: RESOURCE_NAME_ATTRIBUTE,\n AI_MODEL_ID: AI_MODEL_ID_ATTRIBUTE,\n AI_MODEL_PROVIDER: AI_MODEL_PROVIDER_ATTRIBUTE,\n AI_REQUEST_HEADERS: AI_REQUEST_HEADERS_ATTRIBUTE,\n AI_SETTINGS_MAX_RETRIES: AI_SETTINGS_MAX_RETRIES_ATTRIBUTE,\n AI_TELEMETRY_FUNCTION_ID: AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE,\n AI_TELEMETRY_METADATA: AI_TELEMETRY_METADATA_ATTRIBUTE,\n // Basic embedding span information\n AI_USAGE_TOKENS: AI_USAGE_TOKENS_ATTRIBUTE,\n} as const;\n\n/**\n * Attributes collected for `ai.embed.doEmbed` span\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#embed-function\n */\nexport const AI_EMBED_DO_EMBED_SPAN_ATTRIBUTES = {\n OPERATION_NAME: OPERATION_NAME_ATTRIBUTE,\n AI_OPERATION_ID: AI_OPERATION_ID_ATTRIBUTE,\n AI_VALUES: AI_VALUES_ATTRIBUTE,\n AI_EMBEDDINGS: AI_EMBEDDINGS_ATTRIBUTE,\n // Basic LLM span information\n RESOURCE_NAME: RESOURCE_NAME_ATTRIBUTE,\n AI_MODEL_ID: AI_MODEL_ID_ATTRIBUTE,\n AI_MODEL_PROVIDER: AI_MODEL_PROVIDER_ATTRIBUTE,\n AI_REQUEST_HEADERS: AI_REQUEST_HEADERS_ATTRIBUTE,\n AI_SETTINGS_MAX_RETRIES: AI_SETTINGS_MAX_RETRIES_ATTRIBUTE,\n AI_TELEMETRY_FUNCTION_ID: AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE,\n AI_TELEMETRY_METADATA: AI_TELEMETRY_METADATA_ATTRIBUTE,\n // Basic embedding span information\n AI_USAGE_TOKENS: AI_USAGE_TOKENS_ATTRIBUTE,\n} as const;\n\n/**\n * Attributes collected for `ai.embedMany` span\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#embedmany-function\n */\nexport const AI_EMBED_MANY_SPAN_ATTRIBUTES = {\n OPERATION_NAME: OPERATION_NAME_ATTRIBUTE,\n AI_OPERATION_ID: AI_OPERATION_ID_ATTRIBUTE,\n AI_VALUES: AI_VALUES_ATTRIBUTE,\n AI_EMBEDDINGS: AI_EMBEDDINGS_ATTRIBUTE,\n // Basic LLM span information\n RESOURCE_NAME: RESOURCE_NAME_ATTRIBUTE,\n AI_MODEL_ID: AI_MODEL_ID_ATTRIBUTE,\n AI_MODEL_PROVIDER: AI_MODEL_PROVIDER_ATTRIBUTE,\n AI_REQUEST_HEADERS: AI_REQUEST_HEADERS_ATTRIBUTE,\n AI_SETTINGS_MAX_RETRIES: AI_SETTINGS_MAX_RETRIES_ATTRIBUTE,\n AI_TELEMETRY_FUNCTION_ID: AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE,\n AI_TELEMETRY_METADATA: AI_TELEMETRY_METADATA_ATTRIBUTE,\n // Basic embedding span information\n AI_USAGE_TOKENS: AI_USAGE_TOKENS_ATTRIBUTE,\n} as const;\n\n/**\n * Attributes collected for `ai.toolCall` span\n * @see https://ai-sdk.dev/docs/ai-sdk-core/telemetry#tool-call-spans\n */\nexport const AI_TOOL_CALL_SPAN_ATTRIBUTES = {\n OPERATION_NAME: OPERATION_NAME_ATTRIBUTE,\n AI_OPERATION_ID: AI_OPERATION_ID_ATTRIBUTE,\n AI_TOOL_CALL_NAME: AI_TOOL_CALL_NAME_ATTRIBUTE,\n AI_TOOL_CALL_ID: AI_TOOL_CALL_ID_ATTRIBUTE,\n AI_TOOL_CALL_ARGS: AI_TOOL_CALL_ARGS_ATTRIBUTE,\n AI_TOOL_CALL_RESULT: AI_TOOL_CALL_RESULT_ATTRIBUTE,\n // Basic LLM span information\n RESOURCE_NAME: RESOURCE_NAME_ATTRIBUTE,\n AI_MODEL_ID: AI_MODEL_ID_ATTRIBUTE,\n AI_MODEL_PROVIDER: AI_MODEL_PROVIDER_ATTRIBUTE,\n AI_REQUEST_HEADERS: AI_REQUEST_HEADERS_ATTRIBUTE,\n AI_SETTINGS_MAX_RETRIES: AI_SETTINGS_MAX_RETRIES_ATTRIBUTE,\n AI_TELEMETRY_FUNCTION_ID: AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE,\n AI_TELEMETRY_METADATA: AI_TELEMETRY_METADATA_ATTRIBUTE,\n} as const;\n\n// =============================================================================\n// PROVIDER METADATA\n// =============================================================================\n\n/**\n * OpenAI Provider Metadata\n * @see https://ai-sdk.dev/providers/ai-sdk-providers/openai\n * @see https://github.com/vercel/ai/blob/65e042afde6aad4da9d7a62526ece839eb34f9a5/packages/openai/src/openai-chat-language-model.ts#L397-L416\n * @see https://github.com/vercel/ai/blob/65e042afde6aad4da9d7a62526ece839eb34f9a5/packages/openai/src/responses/openai-responses-language-model.ts#L377C7-L384\n */\nexport interface OpenAiProviderMetadata {\n /**\n * The number of predicted output tokens that were accepted.\n * @see https://ai-sdk.dev/providers/ai-sdk-providers/openai#predicted-outputs\n */\n acceptedPredictionTokens?: number;\n\n /**\n * The number of predicted output tokens that were rejected.\n * @see https://ai-sdk.dev/providers/ai-sdk-providers/openai#predicted-outputs\n */\n rejectedPredictionTokens?: number;\n\n /**\n * The number of reasoning tokens that the model generated.\n * @see https://ai-sdk.dev/providers/ai-sdk-providers/openai#responses-models\n */\n reasoningTokens?: number;\n\n /**\n * The number of prompt tokens that were a cache hit.\n * @see https://ai-sdk.dev/providers/ai-sdk-providers/openai#responses-models\n */\n cachedPromptTokens?: number;\n\n /**\n * @see https://ai-sdk.dev/providers/ai-sdk-providers/openai#responses-models\n *\n * The ID of the response. Can be used to continue a conversation.\n */\n responseId?: string;\n}\n\n/**\n * Anthropic Provider Metadata\n * @see https://ai-sdk.dev/providers/ai-sdk-providers/anthropic\n * @see https://github.com/vercel/ai/blob/65e042afde6aad4da9d7a62526ece839eb34f9a5/packages/anthropic/src/anthropic-messages-language-model.ts#L346-L352\n */\ninterface AnthropicProviderMetadata {\n /**\n * The number of tokens that were used to create the cache.\n * @see https://ai-sdk.dev/providers/ai-sdk-providers/anthropic#cache-control\n */\n cacheCreationInputTokens?: number;\n\n /**\n * The number of tokens that were read from the cache.\n * @see https://ai-sdk.dev/providers/ai-sdk-providers/anthropic#cache-control\n */\n cacheReadInputTokens?: number;\n\n /**\n * Usage metrics for the Anthropic model.\n */\n usage?: {\n input_tokens: number;\n cache_creation_input_tokens?: number;\n cache_read_input_tokens?: number;\n cache_creation?: {\n ephemeral_5m_input_tokens?: number;\n ephemeral_1h_input_tokens?: number;\n };\n output_tokens?: number;\n service_tier?: string;\n };\n}\n\n/**\n * Amazon Bedrock Provider Metadata\n * @see https://ai-sdk.dev/providers/ai-sdk-providers/amazon-bedrock\n * @see https://github.com/vercel/ai/blob/65e042afde6aad4da9d7a62526ece839eb34f9a5/packages/amazon-bedrock/src/bedrock-chat-language-model.ts#L263-L280\n */\ninterface AmazonBedrockProviderMetadata {\n /**\n * @see https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ConverseTrace.html\n */\n trace?: {\n /**\n * The guardrail trace object.\n * @see https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_GuardrailTraceAssessment.html\n *\n * This was purposely left as unknown as it's a complex object. This can be typed in the future\n * if the SDK decides to support bedrock in a more advanced way.\n */\n guardrail?: unknown;\n /**\n * The request's prompt router.\n * @see https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_PromptRouterTrace.html\n */\n promptRouter?: {\n /**\n * The ID of the invoked model.\n */\n invokedModelId?: string;\n };\n };\n usage?: {\n /**\n * The number of tokens that were read from the cache.\n * @see https://ai-sdk.dev/providers/ai-sdk-providers/amazon-bedrock#cache-points\n */\n cacheReadInputTokens?: number;\n\n /**\n * The number of tokens that were written to the cache.\n * @see https://ai-sdk.dev/providers/ai-sdk-providers/amazon-bedrock#cache-points\n */\n cacheWriteInputTokens?: number;\n };\n}\n\n/**\n * Google Generative AI Provider Metadata\n * @see https://ai-sdk.dev/providers/ai-sdk-providers/google-generative-ai\n */\nexport interface GoogleGenerativeAIProviderMetadata {\n /**\n * @see https://github.com/vercel/ai/blob/65e042afde6aad4da9d7a62526ece839eb34f9a5/packages/google/src/google-generative-ai-prompt.ts#L28-L30\n */\n groundingMetadata: null | {\n /**\n * Array of search queries used to retrieve information\n * @example [\"What's the weather in Chicago this weekend?\"]\n *\n * @see https://ai-sdk.dev/providers/ai-sdk-providers/google-generative-ai#search-grounding\n */\n webSearchQueries: string[] | null;\n /**\n * Contains the main search result content used as an entry point\n * The `renderedContent` field contains the formatted content\n * @see https://ai-sdk.dev/providers/ai-sdk-providers/google-generative-ai#search-grounding\n */\n searchEntryPoint?: {\n renderedContent: string;\n } | null;\n /**\n * Contains details about how specific response parts are supported by search results\n * @see https://ai-sdk.dev/providers/ai-sdk-providers/google-generative-ai#search-grounding\n */\n groundingSupports: Array<{\n /**\n * Information about the grounded text segment.\n */\n segment: {\n /**\n * The start index of the text segment.\n */\n startIndex?: number | null;\n /**\n * The end index of the text segment.\n */\n endIndex?: number | null;\n /**\n * The actual text segment.\n */\n text?: string | null;\n };\n /**\n * References to supporting search result chunks.\n */\n groundingChunkIndices?: number[] | null;\n /**\n * Confidence scores (0-1) for each supporting chunk.\n */\n confidenceScores?: number[] | null;\n }> | null;\n };\n /**\n * @see https://github.com/vercel/ai/blob/65e042afde6aad4da9d7a62526ece839eb34f9a5/packages/google/src/google-generative-ai-language-model.ts#L620-L627\n * @see https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters\n */\n safetyRatings?: null | unknown;\n}\n\n/**\n * DeepSeek Provider Metadata\n * @see https://ai-sdk.dev/providers/ai-sdk-providers/deepseek\n */\ninterface DeepSeekProviderMetadata {\n /**\n * The number of tokens that were cache hits.\n * @see https://ai-sdk.dev/providers/ai-sdk-providers/deepseek#cache-token-usage\n */\n promptCacheHitTokens?: number;\n\n /**\n * The number of tokens that were cache misses.\n * @see https://ai-sdk.dev/providers/ai-sdk-providers/deepseek#cache-token-usage\n */\n promptCacheMissTokens?: number;\n}\n\n/**\n * Perplexity Provider Metadata\n * @see https://ai-sdk.dev/providers/ai-sdk-providers/perplexity\n */\ninterface PerplexityProviderMetadata {\n /**\n * Object containing citationTokens and numSearchQueries metrics\n */\n usage?: {\n citationTokens?: number;\n numSearchQueries?: number;\n };\n /**\n * Array of image URLs when return_images is enabled.\n *\n * You can enable image responses by setting return_images: true in the provider options.\n * This feature is only available to Perplexity Tier-2 users and above.\n */\n images?: Array<{\n imageUrl?: string;\n originUrl?: string;\n height?: number;\n width?: number;\n }>;\n}\n\nexport interface ProviderMetadata {\n openai?: OpenAiProviderMetadata;\n azure?: OpenAiProviderMetadata; // v6: Azure Responses API uses 'azure' key instead of 'openai'\n anthropic?: AnthropicProviderMetadata;\n bedrock?: AmazonBedrockProviderMetadata;\n google?: GoogleGenerativeAIProviderMetadata;\n vertex?: GoogleGenerativeAIProviderMetadata; // v6: Google Vertex uses 'vertex' key instead of 'google'\n deepseek?: DeepSeekProviderMetadata;\n perplexity?: PerplexityProviderMetadata;\n}\n","import type { TraceContext } from '../../types-hoist/context';\nimport type { Span, SpanAttributes, SpanJSON } from '../../types-hoist/span';\nimport {\n GEN_AI_EMBED_DO_EMBED_OPERATION_ATTRIBUTE,\n GEN_AI_EMBED_MANY_DO_EMBED_OPERATION_ATTRIBUTE,\n GEN_AI_EXECUTE_TOOL_OPERATION_ATTRIBUTE,\n GEN_AI_GENERATE_OBJECT_DO_GENERATE_OPERATION_ATTRIBUTE,\n GEN_AI_GENERATE_TEXT_DO_GENERATE_OPERATION_ATTRIBUTE,\n GEN_AI_INPUT_MESSAGES_ATTRIBUTE,\n GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE,\n GEN_AI_INVOKE_AGENT_OPERATION_ATTRIBUTE,\n GEN_AI_RERANK_DO_RERANK_OPERATION_ATTRIBUTE,\n GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE,\n GEN_AI_STREAM_OBJECT_DO_STREAM_OPERATION_ATTRIBUTE,\n GEN_AI_STREAM_TEXT_DO_STREAM_OPERATION_ATTRIBUTE,\n GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE,\n GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE,\n GEN_AI_TOOL_NAME_ATTRIBUTE,\n GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE,\n GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE,\n} from '../ai/gen-ai-attributes';\nimport { extractSystemInstructions, getTruncatedJsonString } from '../ai/utils';\nimport { toolCallSpanContextMap } from './constants';\nimport type { TokenSummary, ToolCallSpanContext } from './types';\nimport { AI_PROMPT_ATTRIBUTE, AI_PROMPT_MESSAGES_ATTRIBUTE } from './vercel-ai-attributes';\n\n/**\n * Accumulates token data from a span to its parent in the token accumulator map.\n * This function extracts token usage from the current span and adds it to the\n * accumulated totals for its parent span.\n */\nexport function accumulateTokensForParent(span: SpanJSON, tokenAccumulator: Map): void {\n const parentSpanId = span.parent_span_id;\n if (!parentSpanId) {\n return;\n }\n\n const inputTokens = span.data[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE];\n const outputTokens = span.data[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE];\n\n if (typeof inputTokens === 'number' || typeof outputTokens === 'number') {\n const existing = tokenAccumulator.get(parentSpanId) || { inputTokens: 0, outputTokens: 0 };\n\n if (typeof inputTokens === 'number') {\n existing.inputTokens += inputTokens;\n }\n if (typeof outputTokens === 'number') {\n existing.outputTokens += outputTokens;\n }\n\n tokenAccumulator.set(parentSpanId, existing);\n }\n}\n\n/**\n * Applies accumulated token data to the `gen_ai.invoke_agent` span.\n * Only immediate children of the `gen_ai.invoke_agent` span are considered,\n * since aggregation will automatically occur for each parent span.\n */\nexport function applyAccumulatedTokens(\n spanOrTrace: SpanJSON | TraceContext,\n tokenAccumulator: Map,\n): void {\n const accumulated = tokenAccumulator.get(spanOrTrace.span_id);\n if (!accumulated || !spanOrTrace.data) {\n return;\n }\n\n if (accumulated.inputTokens > 0) {\n spanOrTrace.data[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] = accumulated.inputTokens;\n }\n if (accumulated.outputTokens > 0) {\n spanOrTrace.data[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE] = accumulated.outputTokens;\n }\n if (accumulated.inputTokens > 0 || accumulated.outputTokens > 0) {\n spanOrTrace.data['gen_ai.usage.total_tokens'] = accumulated.inputTokens + accumulated.outputTokens;\n }\n}\n\n/**\n * Builds a map of tool name -> description from all spans with available_tools.\n * This avoids O(n²) iteration and repeated JSON parsing.\n */\nfunction buildToolDescriptionMap(spans: SpanJSON[]): Map {\n const toolDescriptions = new Map();\n\n for (const span of spans) {\n const availableTools = span.data[GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE];\n if (typeof availableTools !== 'string') {\n continue;\n }\n try {\n const tools = JSON.parse(availableTools) as Array<{ name?: string; description?: string }>;\n for (const tool of tools) {\n if (tool.name && tool.description && !toolDescriptions.has(tool.name)) {\n toolDescriptions.set(tool.name, tool.description);\n }\n }\n } catch {\n // ignore parse errors\n }\n }\n\n return toolDescriptions;\n}\n\n/**\n * Applies tool descriptions and accumulated tokens to spans in a single pass.\n *\n * - For `gen_ai.execute_tool` spans: looks up tool description from\n * `gen_ai.request.available_tools` on sibling spans\n * - For `gen_ai.invoke_agent` spans: applies accumulated token data from children\n */\nexport function applyToolDescriptionsAndTokens(spans: SpanJSON[], tokenAccumulator: Map): void {\n // Build lookup map once to avoid O(n²) iteration and repeated JSON parsing\n const toolDescriptions = buildToolDescriptionMap(spans);\n\n for (const span of spans) {\n if (span.op === 'gen_ai.execute_tool') {\n const toolName = span.data[GEN_AI_TOOL_NAME_ATTRIBUTE];\n if (typeof toolName === 'string') {\n const description = toolDescriptions.get(toolName);\n if (description) {\n span.data[GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE] = description;\n }\n }\n }\n\n if (span.op === 'gen_ai.invoke_agent') {\n applyAccumulatedTokens(span, tokenAccumulator);\n }\n }\n}\n\n/**\n * Get the span context associated with a tool call ID.\n */\nexport function _INTERNAL_getSpanContextForToolCallId(toolCallId: string): ToolCallSpanContext | undefined {\n return toolCallSpanContextMap.get(toolCallId);\n}\n\n/**\n * Clean up the span mapping for a tool call ID\n */\nexport function _INTERNAL_cleanupToolCallSpanContext(toolCallId: string): void {\n toolCallSpanContextMap.delete(toolCallId);\n}\n\n/**\n * Convert an array of tool strings to a JSON string\n */\nexport function convertAvailableToolsToJsonString(tools: unknown[]): string {\n const toolObjects = tools.map(tool => {\n if (typeof tool === 'string') {\n try {\n return JSON.parse(tool);\n } catch {\n return tool;\n }\n }\n return tool;\n });\n return JSON.stringify(toolObjects);\n}\n\n/**\n * Filter out invalid entries in messages array\n * @param input - The input array to filter\n * @returns The filtered array\n */\nfunction filterMessagesArray(input: unknown[]): { role: string; content: string }[] {\n return input.filter(\n (m: unknown): m is { role: string; content: string } =>\n !!m && typeof m === 'object' && 'role' in m && 'content' in m,\n );\n}\n\n/**\n * Normalize the user input (stringified object with prompt, system, messages) to messages array\n */\nexport function convertUserInputToMessagesFormat(userInput: string): { role: string; content: string }[] {\n try {\n const p = JSON.parse(userInput);\n if (!!p && typeof p === 'object') {\n let { messages } = p;\n const { prompt, system } = p;\n const result: { role: string; content: string }[] = [];\n\n // prepend top-level system instruction if present\n if (typeof system === 'string') {\n result.push({ role: 'system', content: system });\n }\n\n // stringified messages array\n if (typeof messages === 'string') {\n try {\n messages = JSON.parse(messages);\n } catch {\n // ignore parse errors\n }\n }\n\n // messages array format: { messages: [...] }\n if (Array.isArray(messages)) {\n result.push(...filterMessagesArray(messages));\n return result;\n }\n\n // prompt array format: { prompt: [...] }\n if (Array.isArray(prompt)) {\n result.push(...filterMessagesArray(prompt));\n return result;\n }\n\n // prompt string format: { prompt: \"...\" }\n if (typeof prompt === 'string') {\n result.push({ role: 'user', content: prompt });\n }\n\n if (result.length > 0) {\n return result;\n }\n }\n // eslint-disable-next-line no-empty\n } catch {}\n return [];\n}\n\n/**\n * Generate a request.messages JSON array from the prompt field in the\n * invoke_agent op\n */\nexport function requestMessagesFromPrompt(span: Span, attributes: SpanAttributes): void {\n if (\n typeof attributes[AI_PROMPT_ATTRIBUTE] === 'string' &&\n !attributes[GEN_AI_INPUT_MESSAGES_ATTRIBUTE] &&\n !attributes[AI_PROMPT_MESSAGES_ATTRIBUTE]\n ) {\n // No messages array is present, so we need to convert the prompt to the proper messages format\n // This is the case for ai.generateText spans\n // The ai.prompt attribute is a stringified object with prompt, system, messages attributes\n // The format of these is described in the vercel docs, for instance: https://ai-sdk.dev/docs/reference/ai-sdk-core/stream-object#parameters\n const userInput = attributes[AI_PROMPT_ATTRIBUTE];\n const messages = convertUserInputToMessagesFormat(userInput);\n if (messages.length) {\n const { systemInstructions, filteredMessages } = extractSystemInstructions(messages);\n\n if (systemInstructions) {\n span.setAttribute(GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 0;\n const truncatedMessages = getTruncatedJsonString(filteredMessages);\n\n span.setAttributes({\n [AI_PROMPT_ATTRIBUTE]: truncatedMessages,\n [GEN_AI_INPUT_MESSAGES_ATTRIBUTE]: truncatedMessages,\n [GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE]: filteredLength,\n });\n }\n } else if (typeof attributes[AI_PROMPT_MESSAGES_ATTRIBUTE] === 'string') {\n // In this case we already get a properly formatted messages array, this is the preferred way to get the messages\n // This is the case for ai.generateText.doGenerate spans\n try {\n const messages = JSON.parse(attributes[AI_PROMPT_MESSAGES_ATTRIBUTE]);\n if (Array.isArray(messages)) {\n const { systemInstructions, filteredMessages } = extractSystemInstructions(messages);\n\n if (systemInstructions) {\n span.setAttribute(GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 0;\n const truncatedMessages = getTruncatedJsonString(filteredMessages);\n\n span.setAttributes({\n [AI_PROMPT_MESSAGES_ATTRIBUTE]: truncatedMessages,\n [GEN_AI_INPUT_MESSAGES_ATTRIBUTE]: truncatedMessages,\n [GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE]: filteredLength,\n });\n }\n // eslint-disable-next-line no-empty\n } catch {}\n }\n}\n\n/**\n * Maps a Vercel AI span name to the corresponding Sentry op.\n */\nexport function getSpanOpFromName(name: string): string | undefined {\n switch (name) {\n case 'ai.generateText':\n case 'ai.streamText':\n case 'ai.generateObject':\n case 'ai.streamObject':\n return GEN_AI_INVOKE_AGENT_OPERATION_ATTRIBUTE;\n case 'ai.generateText.doGenerate':\n return GEN_AI_GENERATE_TEXT_DO_GENERATE_OPERATION_ATTRIBUTE;\n case 'ai.streamText.doStream':\n return GEN_AI_STREAM_TEXT_DO_STREAM_OPERATION_ATTRIBUTE;\n case 'ai.generateObject.doGenerate':\n return GEN_AI_GENERATE_OBJECT_DO_GENERATE_OPERATION_ATTRIBUTE;\n case 'ai.streamObject.doStream':\n return GEN_AI_STREAM_OBJECT_DO_STREAM_OPERATION_ATTRIBUTE;\n case 'ai.embed.doEmbed':\n return GEN_AI_EMBED_DO_EMBED_OPERATION_ATTRIBUTE;\n case 'ai.embedMany.doEmbed':\n return GEN_AI_EMBED_MANY_DO_EMBED_OPERATION_ATTRIBUTE;\n case 'ai.rerank.doRerank':\n return GEN_AI_RERANK_DO_RERANK_OPERATION_ATTRIBUTE;\n case 'ai.toolCall':\n return GEN_AI_EXECUTE_TOOL_OPERATION_ATTRIBUTE;\n default:\n if (name.startsWith('ai.stream')) {\n return 'ai.run';\n }\n return undefined;\n }\n}\n","/* eslint-disable max-lines */\nimport type { Client } from '../../client';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes';\nimport type { Event } from '../../types-hoist/event';\nimport type { Span, SpanAttributes, SpanAttributeValue, SpanJSON } from '../../types-hoist/span';\nimport { spanToJSON } from '../../utils/spanUtils';\nimport {\n GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE,\n GEN_AI_INPUT_MESSAGES_ATTRIBUTE,\n GEN_AI_OPERATION_NAME_ATTRIBUTE,\n GEN_AI_OUTPUT_MESSAGES_ATTRIBUTE,\n GEN_AI_REQUEST_MODEL_ATTRIBUTE,\n GEN_AI_RESPONSE_MODEL_ATTRIBUTE,\n GEN_AI_TOOL_CALL_ID_ATTRIBUTE,\n GEN_AI_TOOL_INPUT_ATTRIBUTE,\n GEN_AI_TOOL_NAME_ATTRIBUTE,\n GEN_AI_TOOL_OUTPUT_ATTRIBUTE,\n GEN_AI_TOOL_TYPE_ATTRIBUTE,\n GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE,\n GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE_ATTRIBUTE,\n GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE,\n GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE,\n GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE,\n} from '../ai/gen-ai-attributes';\nimport {\n DO_SPAN_NAME_PREFIX,\n EMBEDDINGS_OPS,\n GENERATE_CONTENT_OPS,\n INVOKE_AGENT_OPS,\n RERANK_OPS,\n toolCallSpanContextMap,\n} from './constants';\nimport type { TokenSummary } from './types';\nimport {\n accumulateTokensForParent,\n applyAccumulatedTokens,\n applyToolDescriptionsAndTokens,\n convertAvailableToolsToJsonString,\n getSpanOpFromName,\n requestMessagesFromPrompt,\n} from './utils';\nimport type { OpenAiProviderMetadata, ProviderMetadata } from './vercel-ai-attributes';\nimport {\n AI_MODEL_ID_ATTRIBUTE,\n AI_OPERATION_ID_ATTRIBUTE,\n AI_PROMPT_MESSAGES_ATTRIBUTE,\n AI_PROMPT_TOOLS_ATTRIBUTE,\n AI_RESPONSE_FINISH_REASON_ATTRIBUTE,\n AI_RESPONSE_OBJECT_ATTRIBUTE,\n AI_RESPONSE_PROVIDER_METADATA_ATTRIBUTE,\n AI_RESPONSE_TEXT_ATTRIBUTE,\n AI_RESPONSE_TOOL_CALLS_ATTRIBUTE,\n AI_SCHEMA_ATTRIBUTE,\n AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE,\n AI_TOOL_CALL_ARGS_ATTRIBUTE,\n AI_TOOL_CALL_ID_ATTRIBUTE,\n AI_TOOL_CALL_NAME_ATTRIBUTE,\n AI_TOOL_CALL_RESULT_ATTRIBUTE,\n AI_USAGE_CACHED_INPUT_TOKENS_ATTRIBUTE,\n AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE,\n AI_USAGE_PROMPT_TOKENS_ATTRIBUTE,\n AI_USAGE_TOKENS_ATTRIBUTE,\n AI_VALUES_ATTRIBUTE,\n OPERATION_NAME_ATTRIBUTE,\n} from './vercel-ai-attributes';\n\n/**\n * Maps Vercel AI SDK operation names to OpenTelemetry semantic convention values\n * @see https://opentelemetry.io/docs/specs/semconv/gen-ai/gen-ai-spans/#llm-request-spans\n */\nfunction mapVercelAiOperationName(operationName: string): string {\n // Top-level pipeline operations map to invoke_agent\n if (INVOKE_AGENT_OPS.has(operationName)) {\n return 'invoke_agent';\n }\n // .do* operations are the actual LLM calls\n if (GENERATE_CONTENT_OPS.has(operationName)) {\n return 'generate_content';\n }\n if (EMBEDDINGS_OPS.has(operationName)) {\n return 'embeddings';\n }\n if (RERANK_OPS.has(operationName)) {\n return 'rerank';\n }\n if (operationName === 'ai.toolCall') {\n return 'execute_tool';\n }\n // Return the original value for unknown operations\n return operationName;\n}\n\n/**\n * Post-process spans emitted by the Vercel AI SDK.\n * This is supposed to be used in `client.on('spanStart', ...)\n */\nfunction onVercelAiSpanStart(span: Span): void {\n const { data: attributes, description: name } = spanToJSON(span);\n\n if (!name) {\n return;\n }\n\n // Tool call spans\n // https://ai-sdk.dev/docs/ai-sdk-core/telemetry#tool-call-spans\n if (attributes[AI_TOOL_CALL_NAME_ATTRIBUTE] && attributes[AI_TOOL_CALL_ID_ATTRIBUTE] && name === 'ai.toolCall') {\n processToolCallSpan(span, attributes);\n return;\n }\n\n // V6+ Check if this is a Vercel AI span by checking if the operation ID attribute is present.\n // V5+ Check if this is a Vercel AI span by name pattern.\n if (!attributes[AI_OPERATION_ID_ATTRIBUTE] && !name.startsWith('ai.')) {\n return;\n }\n\n processGenerateSpan(span, name, attributes);\n}\n\nfunction vercelAiEventProcessor(event: Event): Event {\n if (event.type === 'transaction' && event.spans) {\n // Map to accumulate token data by parent span ID\n const tokenAccumulator: Map = new Map();\n\n // First pass: process all spans and accumulate token data\n for (const span of event.spans) {\n processEndedVercelAiSpan(span);\n\n // Accumulate token data for parent spans\n accumulateTokensForParent(span, tokenAccumulator);\n }\n\n // Second pass: apply tool descriptions and accumulated tokens\n applyToolDescriptionsAndTokens(event.spans, tokenAccumulator);\n\n // Also apply to root when it is the invoke_agent pipeline\n const trace = event.contexts?.trace;\n if (trace?.op === 'gen_ai.invoke_agent') {\n applyAccumulatedTokens(trace, tokenAccumulator);\n }\n }\n\n return event;\n}\n\n/**\n * Tool call structure from Vercel AI SDK\n * Note: V5/V6 use 'input' for arguments, V4 and earlier use 'args'\n */\ninterface VercelToolCall {\n toolCallId: string;\n toolName: string;\n input?: Record | string; // V5/V6\n args?: string; // V4 and earlier\n}\n\n/**\n * Normalize finish reason to match OpenTelemetry semantic conventions.\n * Valid values: \"stop\", \"length\", \"content_filter\", \"tool_call\", \"error\"\n *\n * Vercel AI SDK uses \"tool-calls\" (plural, with hyphen) which we map to \"tool_call\".\n */\nfunction normalizeFinishReason(finishReason: unknown): string {\n if (typeof finishReason !== 'string') {\n return 'stop';\n }\n\n // Map Vercel AI SDK finish reasons to OpenTelemetry semantic convention values\n switch (finishReason) {\n case 'tool-calls':\n return 'tool_call';\n case 'stop':\n case 'length':\n case 'content_filter':\n case 'error':\n return finishReason;\n default:\n // For unknown values, return as-is (schema allows arbitrary strings)\n return finishReason;\n }\n}\n\n/**\n * Build gen_ai.output.messages from ai.response.text and/or ai.response.toolCalls\n *\n * Format follows OpenTelemetry semantic conventions:\n * [{\"role\": \"assistant\", \"parts\": [...], \"finish_reason\": \"stop\"}]\n *\n * Parts can be:\n * - {\"type\": \"text\", \"content\": \"...\"}\n * - {\"type\": \"tool_call\", \"id\": \"...\", \"name\": \"...\", \"arguments\": \"...\"}\n */\nfunction buildOutputMessages(attributes: Record): void {\n const responseText = attributes[AI_RESPONSE_TEXT_ATTRIBUTE];\n const responseToolCalls = attributes[AI_RESPONSE_TOOL_CALLS_ATTRIBUTE];\n const finishReason = attributes[AI_RESPONSE_FINISH_REASON_ATTRIBUTE];\n\n // Skip if neither text nor tool calls are present\n if (responseText == null && responseToolCalls == null) {\n return;\n }\n\n const parts: Array> = [];\n\n // Add text part if present\n if (typeof responseText === 'string' && responseText.length > 0) {\n parts.push({\n type: 'text',\n content: responseText,\n });\n }\n\n // Add tool call parts if present\n if (responseToolCalls != null) {\n try {\n // Tool calls can be a string (JSON) or already parsed array\n const toolCalls: VercelToolCall[] =\n typeof responseToolCalls === 'string' ? JSON.parse(responseToolCalls) : responseToolCalls;\n\n if (Array.isArray(toolCalls)) {\n for (const toolCall of toolCalls) {\n // V5/V6 use 'input', V4 and earlier use 'args'\n const args = toolCall.input ?? toolCall.args;\n parts.push({\n type: 'tool_call',\n id: toolCall.toolCallId,\n name: toolCall.toolName,\n // Handle undefined args: JSON.stringify(undefined) returns undefined, not a string,\n // which would cause the property to be omitted from the final JSON output\n arguments: typeof args === 'string' ? args : JSON.stringify(args ?? {}),\n });\n }\n // Only delete tool calls attribute if we successfully processed them\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete attributes[AI_RESPONSE_TOOL_CALLS_ATTRIBUTE];\n }\n } catch {\n // Ignore parsing errors - tool calls attribute is preserved\n }\n }\n\n // Only set output messages and delete text attribute if we have parts\n if (parts.length > 0) {\n const outputMessage = {\n role: 'assistant',\n parts,\n finish_reason: normalizeFinishReason(finishReason),\n };\n\n attributes[GEN_AI_OUTPUT_MESSAGES_ATTRIBUTE] = JSON.stringify([outputMessage]);\n\n // Remove the text attribute since it's now captured in gen_ai.output.messages\n // Note: tool calls attribute is deleted above only if successfully parsed\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete attributes[AI_RESPONSE_TEXT_ATTRIBUTE];\n }\n}\n\n/**\n * Post-process spans emitted by the Vercel AI SDK.\n */\nfunction processEndedVercelAiSpan(span: SpanJSON): void {\n const { data: attributes, origin } = span;\n\n if (origin !== 'auto.vercelai.otel') {\n return;\n }\n\n // The Vercel AI SDK sets span status to raw error message strings.\n // Any such value should be normalized to a SpanStatusType value. We pick internal_error as it is the most generic.\n if (span.status && span.status !== 'ok') {\n span.status = 'internal_error';\n }\n\n renameAttributeKey(attributes, AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE);\n renameAttributeKey(attributes, AI_USAGE_PROMPT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE);\n renameAttributeKey(attributes, AI_USAGE_CACHED_INPUT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE);\n\n // Parent spans (ai.streamText, ai.streamObject, etc.) use inputTokens/outputTokens instead of promptTokens/completionTokens\n renameAttributeKey(attributes, 'ai.usage.inputTokens', GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE);\n renameAttributeKey(attributes, 'ai.usage.outputTokens', GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE);\n\n // Embedding spans use ai.usage.tokens instead of promptTokens/completionTokens\n renameAttributeKey(attributes, AI_USAGE_TOKENS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE);\n\n // AI SDK uses avgOutputTokensPerSecond, map to our expected attribute name\n renameAttributeKey(attributes, 'ai.response.avgOutputTokensPerSecond', 'ai.response.avgCompletionTokensPerSecond');\n\n // Input tokens is the sum of prompt tokens and cached input tokens\n if (\n typeof attributes[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] === 'number' &&\n typeof attributes[GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE] === 'number'\n ) {\n attributes[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] =\n attributes[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] + attributes[GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE];\n }\n\n // Compute total tokens from input + output (embeddings may only have input tokens)\n if (typeof attributes[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] === 'number') {\n const outputTokens =\n typeof attributes[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE] === 'number'\n ? attributes[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE]\n : 0;\n attributes[GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE] = outputTokens + attributes[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE];\n }\n\n // Convert the available tools array to a JSON string\n if (attributes[AI_PROMPT_TOOLS_ATTRIBUTE] && Array.isArray(attributes[AI_PROMPT_TOOLS_ATTRIBUTE])) {\n attributes[AI_PROMPT_TOOLS_ATTRIBUTE] = convertAvailableToolsToJsonString(\n attributes[AI_PROMPT_TOOLS_ATTRIBUTE] as unknown[],\n );\n }\n\n // Rename AI SDK attributes to standardized gen_ai attributes\n // Map operation.name to OpenTelemetry semantic convention values\n if (attributes[OPERATION_NAME_ATTRIBUTE]) {\n const operationName = mapVercelAiOperationName(attributes[OPERATION_NAME_ATTRIBUTE] as string);\n attributes[GEN_AI_OPERATION_NAME_ATTRIBUTE] = operationName;\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete attributes[OPERATION_NAME_ATTRIBUTE];\n }\n renameAttributeKey(attributes, AI_PROMPT_MESSAGES_ATTRIBUTE, GEN_AI_INPUT_MESSAGES_ATTRIBUTE);\n\n // Build gen_ai.output.messages from response text and/or tool calls\n // Note: buildOutputMessages also removes the source attributes when output is successfully generated\n buildOutputMessages(attributes);\n\n renameAttributeKey(attributes, AI_RESPONSE_OBJECT_ATTRIBUTE, 'gen_ai.response.object');\n renameAttributeKey(attributes, AI_PROMPT_TOOLS_ATTRIBUTE, 'gen_ai.request.available_tools');\n\n renameAttributeKey(attributes, AI_TOOL_CALL_ARGS_ATTRIBUTE, GEN_AI_TOOL_INPUT_ATTRIBUTE);\n renameAttributeKey(attributes, AI_TOOL_CALL_RESULT_ATTRIBUTE, GEN_AI_TOOL_OUTPUT_ATTRIBUTE);\n\n renameAttributeKey(attributes, AI_SCHEMA_ATTRIBUTE, 'gen_ai.request.schema');\n renameAttributeKey(attributes, AI_MODEL_ID_ATTRIBUTE, GEN_AI_REQUEST_MODEL_ATTRIBUTE);\n\n // Map embedding input: ai.values → gen_ai.embeddings.input\n // Vercel AI SDK JSON-stringifies each value individually, so we parse each element back.\n // Single embed gets unwrapped to a plain value; batch embedMany stays as a JSON array.\n if (Array.isArray(attributes[AI_VALUES_ATTRIBUTE])) {\n const parsed = (attributes[AI_VALUES_ATTRIBUTE] as string[]).map(v => {\n try {\n return JSON.parse(v);\n } catch {\n return v;\n }\n });\n attributes[GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE] = parsed.length === 1 ? parsed[0] : JSON.stringify(parsed);\n }\n\n addProviderMetadataToAttributes(attributes);\n\n // Change attributes namespaced with `ai.X` to `vercel.ai.X`\n for (const key of Object.keys(attributes)) {\n if (key.startsWith('ai.')) {\n renameAttributeKey(attributes, key, `vercel.${key}`);\n }\n }\n}\n\n/**\n * Renames an attribute key in the provided attributes object if the old key exists.\n * This function safely handles null and undefined values.\n */\nfunction renameAttributeKey(attributes: Record, oldKey: string, newKey: string): void {\n if (attributes[oldKey] != null) {\n attributes[newKey] = attributes[oldKey];\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete attributes[oldKey];\n }\n}\n\nfunction processToolCallSpan(span: Span, attributes: SpanAttributes): void {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, 'auto.vercelai.otel');\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'gen_ai.execute_tool');\n span.setAttribute(GEN_AI_OPERATION_NAME_ATTRIBUTE, 'execute_tool');\n renameAttributeKey(attributes, AI_TOOL_CALL_NAME_ATTRIBUTE, GEN_AI_TOOL_NAME_ATTRIBUTE);\n renameAttributeKey(attributes, AI_TOOL_CALL_ID_ATTRIBUTE, GEN_AI_TOOL_CALL_ID_ATTRIBUTE);\n\n // Store the span context in our global map using the tool call ID.\n // This allows us to capture tool errors and link them to the correct span\n // without retaining the full Span object in memory.\n const toolCallId = attributes[GEN_AI_TOOL_CALL_ID_ATTRIBUTE];\n\n if (typeof toolCallId === 'string') {\n toolCallSpanContextMap.set(toolCallId, span.spanContext());\n }\n\n // https://opentelemetry.io/docs/specs/semconv/registry/attributes/gen-ai/#gen-ai-tool-type\n if (!attributes[GEN_AI_TOOL_TYPE_ATTRIBUTE]) {\n span.setAttribute(GEN_AI_TOOL_TYPE_ATTRIBUTE, 'function');\n }\n const toolName = attributes[GEN_AI_TOOL_NAME_ATTRIBUTE];\n if (toolName) {\n span.updateName(`execute_tool ${toolName}`);\n }\n}\n\nfunction processGenerateSpan(span: Span, name: string, attributes: SpanAttributes): void {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, 'auto.vercelai.otel');\n\n const nameWthoutAi = name.replace('ai.', '');\n span.setAttribute('ai.pipeline.name', nameWthoutAi);\n span.updateName(nameWthoutAi);\n\n const functionId = attributes[AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE];\n if (functionId && typeof functionId === 'string') {\n span.setAttribute('gen_ai.function_id', functionId);\n }\n\n requestMessagesFromPrompt(span, attributes);\n\n if (attributes[AI_MODEL_ID_ATTRIBUTE] && !attributes[GEN_AI_RESPONSE_MODEL_ATTRIBUTE]) {\n span.setAttribute(GEN_AI_RESPONSE_MODEL_ATTRIBUTE, attributes[AI_MODEL_ID_ATTRIBUTE]);\n }\n span.setAttribute('ai.streaming', name.includes('stream'));\n\n // Set the op based on the span name\n const op = getSpanOpFromName(name);\n if (op) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, op);\n }\n\n // For invoke_agent pipeline spans, use 'invoke_agent' as the description\n // to be consistent with other AI integrations (e.g. LangGraph)\n if (INVOKE_AGENT_OPS.has(name)) {\n if (functionId && typeof functionId === 'string') {\n span.updateName(`invoke_agent ${functionId}`);\n } else {\n span.updateName('invoke_agent');\n }\n return;\n }\n\n const modelId = attributes[AI_MODEL_ID_ATTRIBUTE];\n if (modelId) {\n const doSpanPrefix = GENERATE_CONTENT_OPS.has(name) ? 'generate_content' : DO_SPAN_NAME_PREFIX[name];\n if (doSpanPrefix) {\n span.updateName(`${doSpanPrefix} ${modelId}`);\n }\n }\n}\n\n/**\n * Add event processors to the given client to process Vercel AI spans.\n */\nexport function addVercelAiProcessors(client: Client): void {\n client.on('spanStart', onVercelAiSpanStart);\n // Note: We cannot do this on `spanEnd`, because the span cannot be mutated anymore at this point\n client.addEventProcessor(Object.assign(vercelAiEventProcessor, { id: 'VercelAiEventProcessor' }));\n}\n\nfunction addProviderMetadataToAttributes(attributes: SpanAttributes): void {\n const providerMetadata = attributes[AI_RESPONSE_PROVIDER_METADATA_ATTRIBUTE] as string | undefined;\n if (providerMetadata) {\n try {\n const providerMetadataObject = JSON.parse(providerMetadata) as ProviderMetadata;\n\n // Handle OpenAI metadata (v5 uses 'openai', v6 Azure Responses API uses 'azure')\n const openaiMetadata: OpenAiProviderMetadata | undefined =\n providerMetadataObject.openai ?? providerMetadataObject.azure;\n if (openaiMetadata) {\n setAttributeIfDefined(\n attributes,\n GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE,\n openaiMetadata.cachedPromptTokens,\n );\n setAttributeIfDefined(attributes, 'gen_ai.usage.output_tokens.reasoning', openaiMetadata.reasoningTokens);\n setAttributeIfDefined(\n attributes,\n 'gen_ai.usage.output_tokens.prediction_accepted',\n openaiMetadata.acceptedPredictionTokens,\n );\n setAttributeIfDefined(\n attributes,\n 'gen_ai.usage.output_tokens.prediction_rejected',\n openaiMetadata.rejectedPredictionTokens,\n );\n if (!attributes['gen_ai.conversation.id']) {\n setAttributeIfDefined(attributes, 'gen_ai.conversation.id', openaiMetadata.responseId);\n }\n }\n\n if (providerMetadataObject.anthropic) {\n const cachedInputTokens =\n providerMetadataObject.anthropic.usage?.cache_read_input_tokens ??\n providerMetadataObject.anthropic.cacheReadInputTokens;\n setAttributeIfDefined(attributes, GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE, cachedInputTokens);\n\n const cacheWriteInputTokens =\n providerMetadataObject.anthropic.usage?.cache_creation_input_tokens ??\n providerMetadataObject.anthropic.cacheCreationInputTokens;\n setAttributeIfDefined(attributes, GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE_ATTRIBUTE, cacheWriteInputTokens);\n }\n\n if (providerMetadataObject.bedrock?.usage) {\n setAttributeIfDefined(\n attributes,\n GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE,\n providerMetadataObject.bedrock.usage.cacheReadInputTokens,\n );\n setAttributeIfDefined(\n attributes,\n GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE_ATTRIBUTE,\n providerMetadataObject.bedrock.usage.cacheWriteInputTokens,\n );\n }\n\n if (providerMetadataObject.deepseek) {\n setAttributeIfDefined(\n attributes,\n GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE,\n providerMetadataObject.deepseek.promptCacheHitTokens,\n );\n setAttributeIfDefined(\n attributes,\n 'gen_ai.usage.input_tokens.cache_miss',\n providerMetadataObject.deepseek.promptCacheMissTokens,\n );\n }\n } catch {\n // Ignore\n }\n }\n}\n\n/**\n * Sets an attribute only if the value is not null or undefined.\n */\nfunction setAttributeIfDefined(attributes: SpanAttributes, key: string, value: SpanAttributeValue | undefined): void {\n if (value != null) {\n attributes[key] = value;\n }\n}\n","import type { InstrumentedMethodRegistry } from '../ai/utils';\n\nexport const OPENAI_INTEGRATION_NAME = 'OpenAI';\n\n// https://platform.openai.com/docs/quickstart?api-mode=responses\n// https://platform.openai.com/docs/quickstart?api-mode=chat\n// https://platform.openai.com/docs/api-reference/conversations\nexport const OPENAI_METHOD_REGISTRY = {\n 'responses.create': { operation: 'chat' },\n 'chat.completions.create': { operation: 'chat' },\n 'embeddings.create': { operation: 'embeddings' },\n // Conversations API - for conversation state management\n // https://platform.openai.com/docs/guides/conversation-state\n 'conversations.create': { operation: 'chat' },\n} as const satisfies InstrumentedMethodRegistry;\nexport const RESPONSES_TOOL_CALL_EVENT_TYPES = [\n 'response.output_item.added',\n 'response.function_call_arguments.delta',\n 'response.function_call_arguments.done',\n 'response.output_item.done',\n] as const;\nexport const RESPONSE_EVENT_TYPES = [\n 'response.created',\n 'response.in_progress',\n 'response.failed',\n 'response.completed',\n 'response.incomplete',\n 'response.queued',\n 'response.output_text.delta',\n ...RESPONSES_TOOL_CALL_EVENT_TYPES,\n] as const;\n","import type { Span } from '../../types-hoist/span';\nimport {\n GEN_AI_CONVERSATION_ID_ATTRIBUTE,\n GEN_AI_REQUEST_DIMENSIONS_ATTRIBUTE,\n GEN_AI_REQUEST_ENCODING_FORMAT_ATTRIBUTE,\n GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE,\n GEN_AI_REQUEST_MODEL_ATTRIBUTE,\n GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE,\n GEN_AI_REQUEST_STREAM_ATTRIBUTE,\n GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE,\n GEN_AI_REQUEST_TOP_P_ATTRIBUTE,\n GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE,\n GEN_AI_RESPONSE_ID_ATTRIBUTE,\n GEN_AI_RESPONSE_MODEL_ATTRIBUTE,\n GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE,\n GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE,\n GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE,\n GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE,\n OPENAI_RESPONSE_ID_ATTRIBUTE,\n OPENAI_RESPONSE_MODEL_ATTRIBUTE,\n OPENAI_RESPONSE_TIMESTAMP_ATTRIBUTE,\n OPENAI_USAGE_COMPLETION_TOKENS_ATTRIBUTE,\n OPENAI_USAGE_PROMPT_TOKENS_ATTRIBUTE,\n} from '../ai/gen-ai-attributes';\nimport type {\n ChatCompletionChunk,\n OpenAiChatCompletionObject,\n OpenAIConversationObject,\n OpenAICreateEmbeddingsObject,\n OpenAIResponseObject,\n ResponseStreamingEvent,\n} from './types';\n\n/**\n * Check if response is a Chat Completion object\n */\nexport function isChatCompletionResponse(response: unknown): response is OpenAiChatCompletionObject {\n return (\n response !== null &&\n typeof response === 'object' &&\n 'object' in response &&\n (response as Record).object === 'chat.completion'\n );\n}\n\n/**\n * Check if response is a Responses API object\n */\nexport function isResponsesApiResponse(response: unknown): response is OpenAIResponseObject {\n return (\n response !== null &&\n typeof response === 'object' &&\n 'object' in response &&\n (response as Record).object === 'response'\n );\n}\n\n/**\n * Check if response is an Embeddings API object\n */\nexport function isEmbeddingsResponse(response: unknown): response is OpenAICreateEmbeddingsObject {\n if (response === null || typeof response !== 'object' || !('object' in response)) {\n return false;\n }\n const responseObject = response as Record;\n return (\n responseObject.object === 'list' &&\n typeof responseObject.model === 'string' &&\n responseObject.model.toLowerCase().includes('embedding')\n );\n}\n\n/**\n * Check if response is a Conversations API object\n * @see https://platform.openai.com/docs/api-reference/conversations\n */\nexport function isConversationResponse(response: unknown): response is OpenAIConversationObject {\n return (\n response !== null &&\n typeof response === 'object' &&\n 'object' in response &&\n (response as Record).object === 'conversation'\n );\n}\n\n/**\n * Check if streaming event is from the Responses API\n */\nexport function isResponsesApiStreamEvent(event: unknown): event is ResponseStreamingEvent {\n return (\n event !== null &&\n typeof event === 'object' &&\n 'type' in event &&\n typeof (event as Record).type === 'string' &&\n ((event as Record).type as string).startsWith('response.')\n );\n}\n\n/**\n * Check if streaming event is a chat completion chunk\n */\nexport function isChatCompletionChunk(event: unknown): event is ChatCompletionChunk {\n return (\n event !== null &&\n typeof event === 'object' &&\n 'object' in event &&\n (event as Record).object === 'chat.completion.chunk'\n );\n}\n\n/**\n * Add attributes for Chat Completion responses\n */\nexport function addChatCompletionAttributes(\n span: Span,\n response: OpenAiChatCompletionObject,\n recordOutputs?: boolean,\n): void {\n setCommonResponseAttributes(span, response.id, response.model, response.created);\n if (response.usage) {\n setTokenUsageAttributes(\n span,\n response.usage.prompt_tokens,\n response.usage.completion_tokens,\n response.usage.total_tokens,\n );\n }\n if (Array.isArray(response.choices)) {\n const finishReasons = response.choices\n .map(choice => choice.finish_reason)\n .filter((reason): reason is string => reason !== null);\n if (finishReasons.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE]: JSON.stringify(finishReasons),\n });\n }\n\n // Extract tool calls from all choices (only if recordOutputs is true)\n if (recordOutputs) {\n const toolCalls = response.choices\n .map(choice => choice.message?.tool_calls)\n .filter(calls => Array.isArray(calls) && calls.length > 0)\n .flat();\n\n if (toolCalls.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE]: JSON.stringify(toolCalls),\n });\n }\n }\n }\n}\n\n/**\n * Add attributes for Responses API responses\n */\nexport function addResponsesApiAttributes(span: Span, response: OpenAIResponseObject, recordOutputs?: boolean): void {\n setCommonResponseAttributes(span, response.id, response.model, response.created_at);\n if (response.status) {\n span.setAttributes({\n [GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE]: JSON.stringify([response.status]),\n });\n }\n if (response.usage) {\n setTokenUsageAttributes(\n span,\n response.usage.input_tokens,\n response.usage.output_tokens,\n response.usage.total_tokens,\n );\n }\n\n // Extract function calls from output (only if recordOutputs is true)\n if (recordOutputs) {\n const responseWithOutput = response as OpenAIResponseObject & { output?: unknown[] };\n if (Array.isArray(responseWithOutput.output) && responseWithOutput.output.length > 0) {\n // Filter for function_call type objects in the output array\n const functionCalls = responseWithOutput.output.filter(\n (item): unknown =>\n // oxlint-disable-next-line typescript/prefer-optional-chain\n typeof item === 'object' && item !== null && (item as Record).type === 'function_call',\n );\n\n if (functionCalls.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE]: JSON.stringify(functionCalls),\n });\n }\n }\n }\n}\n\n/**\n * Add attributes for Embeddings API responses\n */\nexport function addEmbeddingsAttributes(span: Span, response: OpenAICreateEmbeddingsObject): void {\n span.setAttributes({\n [OPENAI_RESPONSE_MODEL_ATTRIBUTE]: response.model,\n [GEN_AI_RESPONSE_MODEL_ATTRIBUTE]: response.model,\n });\n\n if (response.usage) {\n setTokenUsageAttributes(span, response.usage.prompt_tokens, undefined, response.usage.total_tokens);\n }\n}\n\n/**\n * Add attributes for Conversations API responses\n * @see https://platform.openai.com/docs/api-reference/conversations\n */\nexport function addConversationAttributes(span: Span, response: OpenAIConversationObject): void {\n const { id, created_at } = response;\n\n span.setAttributes({\n [OPENAI_RESPONSE_ID_ATTRIBUTE]: id,\n [GEN_AI_RESPONSE_ID_ATTRIBUTE]: id,\n // The conversation id is used to link messages across API calls\n [GEN_AI_CONVERSATION_ID_ATTRIBUTE]: id,\n });\n\n if (created_at) {\n span.setAttributes({\n [OPENAI_RESPONSE_TIMESTAMP_ATTRIBUTE]: new Date(created_at * 1000).toISOString(),\n });\n }\n}\n\n/**\n * Set token usage attributes\n * @param span - The span to add attributes to\n * @param promptTokens - The number of prompt tokens\n * @param completionTokens - The number of completion tokens\n * @param totalTokens - The number of total tokens\n */\nexport function setTokenUsageAttributes(\n span: Span,\n promptTokens?: number,\n completionTokens?: number,\n totalTokens?: number,\n): void {\n if (promptTokens !== undefined) {\n span.setAttributes({\n [OPENAI_USAGE_PROMPT_TOKENS_ATTRIBUTE]: promptTokens,\n [GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE]: promptTokens,\n });\n }\n if (completionTokens !== undefined) {\n span.setAttributes({\n [OPENAI_USAGE_COMPLETION_TOKENS_ATTRIBUTE]: completionTokens,\n [GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE]: completionTokens,\n });\n }\n if (totalTokens !== undefined) {\n span.setAttributes({\n [GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE]: totalTokens,\n });\n }\n}\n\n/**\n * Set common response attributes\n * @param span - The span to add attributes to\n * @param id - The response id\n * @param model - The response model\n * @param timestamp - The response timestamp\n */\nexport function setCommonResponseAttributes(span: Span, id: string, model: string, timestamp: number): void {\n span.setAttributes({\n [OPENAI_RESPONSE_ID_ATTRIBUTE]: id,\n [GEN_AI_RESPONSE_ID_ATTRIBUTE]: id,\n });\n span.setAttributes({\n [OPENAI_RESPONSE_MODEL_ATTRIBUTE]: model,\n [GEN_AI_RESPONSE_MODEL_ATTRIBUTE]: model,\n });\n span.setAttributes({\n [OPENAI_RESPONSE_TIMESTAMP_ATTRIBUTE]: new Date(timestamp * 1000).toISOString(),\n });\n}\n\n/**\n * Extract conversation ID from request parameters\n * Supports both Conversations API and previous_response_id chaining\n * @see https://platform.openai.com/docs/guides/conversation-state\n */\nfunction extractConversationId(params: Record): string | undefined {\n // Conversations API: conversation parameter (e.g., \"conv_...\")\n if ('conversation' in params && typeof params.conversation === 'string') {\n return params.conversation;\n }\n // Responses chaining: previous_response_id links to parent response\n if ('previous_response_id' in params && typeof params.previous_response_id === 'string') {\n return params.previous_response_id;\n }\n return undefined;\n}\n\n/**\n * Extract request parameters including model settings and conversation context\n */\nexport function extractRequestParameters(params: Record): Record {\n const attributes: Record = {\n [GEN_AI_REQUEST_MODEL_ATTRIBUTE]: params.model ?? 'unknown',\n };\n\n if ('temperature' in params) attributes[GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE] = params.temperature;\n if ('top_p' in params) attributes[GEN_AI_REQUEST_TOP_P_ATTRIBUTE] = params.top_p;\n if ('frequency_penalty' in params) attributes[GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE] = params.frequency_penalty;\n if ('presence_penalty' in params) attributes[GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE] = params.presence_penalty;\n if ('stream' in params) attributes[GEN_AI_REQUEST_STREAM_ATTRIBUTE] = params.stream;\n if ('encoding_format' in params) attributes[GEN_AI_REQUEST_ENCODING_FORMAT_ATTRIBUTE] = params.encoding_format;\n if ('dimensions' in params) attributes[GEN_AI_REQUEST_DIMENSIONS_ATTRIBUTE] = params.dimensions;\n\n // Capture conversation ID for linking messages across API calls\n const conversationId = extractConversationId(params);\n if (conversationId) {\n attributes[GEN_AI_CONVERSATION_ID_ATTRIBUTE] = conversationId;\n }\n\n return attributes;\n}\n","import { captureException } from '../../exports';\nimport { SPAN_STATUS_ERROR } from '../../tracing';\nimport type { Span } from '../../types-hoist/span';\nimport {\n GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE,\n GEN_AI_RESPONSE_STREAMING_ATTRIBUTE,\n GEN_AI_RESPONSE_TEXT_ATTRIBUTE,\n GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE,\n} from '../ai/gen-ai-attributes';\nimport { RESPONSE_EVENT_TYPES } from './constants';\nimport type {\n ChatCompletionChunk,\n ChatCompletionToolCall,\n OpenAIResponseObject,\n ResponseFunctionCall,\n ResponseStreamingEvent,\n} from './types';\nimport {\n isChatCompletionChunk,\n isResponsesApiStreamEvent,\n setCommonResponseAttributes,\n setTokenUsageAttributes,\n} from './utils';\n\n/**\n * State object used to accumulate information from a stream of OpenAI events/chunks.\n */\ninterface StreamingState {\n /** Types of events encountered in the stream. */\n eventTypes: string[];\n /** Collected response text fragments (for output recording). */\n responseTexts: string[];\n /** Reasons for finishing the response, as reported by the API. */\n finishReasons: string[];\n /** The response ID. */\n responseId: string;\n /** The model name. */\n responseModel: string;\n /** The timestamp of the response. */\n responseTimestamp: number;\n /** Number of prompt/input tokens used. */\n promptTokens: number | undefined;\n /** Number of completion/output tokens used. */\n completionTokens: number | undefined;\n /** Total number of tokens used (prompt + completion). */\n totalTokens: number | undefined;\n /**\n * Accumulated tool calls from Chat Completion streaming, indexed by tool call index.\n * @see https://platform.openai.com/docs/guides/function-calling?api-mode=chat#streaming\n */\n chatCompletionToolCalls: Record;\n /**\n * Accumulated function calls from Responses API streaming.\n * @see https://platform.openai.com/docs/guides/function-calling?api-mode=responses#streaming\n */\n responsesApiToolCalls: Array;\n}\n\n/**\n * Processes tool calls from a chat completion chunk delta.\n * Follows the pattern: accumulate by index, then convert to array at the end.\n *\n * @param toolCalls - Array of tool calls from the delta.\n * @param state - The current streaming state to update.\n *\n * @see https://platform.openai.com/docs/guides/function-calling#streaming\n */\nfunction processChatCompletionToolCalls(toolCalls: ChatCompletionToolCall[], state: StreamingState): void {\n for (const toolCall of toolCalls) {\n const index = toolCall.index;\n if (index === undefined || !toolCall.function) continue;\n\n // Initialize tool call if this is the first chunk for this index\n if (!(index in state.chatCompletionToolCalls)) {\n state.chatCompletionToolCalls[index] = {\n ...toolCall,\n function: {\n name: toolCall.function.name,\n arguments: toolCall.function.arguments || '',\n },\n };\n } else {\n // Accumulate function arguments from subsequent chunks\n const existingToolCall = state.chatCompletionToolCalls[index];\n if (toolCall.function.arguments && existingToolCall?.function) {\n existingToolCall.function.arguments += toolCall.function.arguments;\n }\n }\n }\n}\n\n/**\n * Processes a single OpenAI ChatCompletionChunk event, updating the streaming state.\n *\n * @param chunk - The ChatCompletionChunk event to process.\n * @param state - The current streaming state to update.\n * @param recordOutputs - Whether to record output text fragments.\n */\nfunction processChatCompletionChunk(chunk: ChatCompletionChunk, state: StreamingState, recordOutputs: boolean): void {\n state.responseId = chunk.id ?? state.responseId;\n state.responseModel = chunk.model ?? state.responseModel;\n state.responseTimestamp = chunk.created ?? state.responseTimestamp;\n\n if (chunk.usage) {\n // For stream responses, the input tokens remain constant across all events in the stream.\n // Output tokens, however, are only finalized in the last event.\n // Since we can't guarantee that the last event will include usage data or even be a typed event,\n // we update the output token values on every event that includes them.\n // This ensures that output token usage is always set, even if the final event lacks it.\n state.promptTokens = chunk.usage.prompt_tokens;\n state.completionTokens = chunk.usage.completion_tokens;\n state.totalTokens = chunk.usage.total_tokens;\n }\n\n for (const choice of chunk.choices ?? []) {\n if (recordOutputs) {\n if (choice.delta?.content) {\n state.responseTexts.push(choice.delta.content);\n }\n\n // Handle tool calls from delta\n if (choice.delta?.tool_calls) {\n processChatCompletionToolCalls(choice.delta.tool_calls, state);\n }\n }\n if (choice.finish_reason) {\n state.finishReasons.push(choice.finish_reason);\n }\n }\n}\n\n/**\n * Processes a single OpenAI Responses API streaming event, updating the streaming state and span.\n *\n * @param streamEvent - The event to process (may be an error or unknown object).\n * @param state - The current streaming state to update.\n * @param recordOutputs - Whether to record output text fragments.\n * @param span - The span to update with error status if needed.\n */\nfunction processResponsesApiEvent(\n streamEvent: ResponseStreamingEvent | unknown | Error,\n state: StreamingState,\n recordOutputs: boolean,\n span: Span,\n): void {\n if (!(streamEvent && typeof streamEvent === 'object')) {\n state.eventTypes.push('unknown:non-object');\n return;\n }\n if (streamEvent instanceof Error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n captureException(streamEvent, {\n mechanism: {\n handled: false,\n type: 'auto.ai.openai.stream-response',\n },\n });\n return;\n }\n\n if (!('type' in streamEvent)) return;\n const event = streamEvent as ResponseStreamingEvent;\n\n if (!RESPONSE_EVENT_TYPES.includes(event.type)) {\n state.eventTypes.push(event.type);\n return;\n }\n\n // Handle output text delta\n if (recordOutputs) {\n // Handle tool call events for Responses API\n if (event.type === 'response.output_item.done' && 'item' in event) {\n state.responsesApiToolCalls.push(event.item);\n }\n\n if (event.type === 'response.output_text.delta' && 'delta' in event && event.delta) {\n state.responseTexts.push(event.delta);\n return;\n }\n }\n\n if ('response' in event) {\n const { response } = event as { response: OpenAIResponseObject };\n state.responseId = response.id ?? state.responseId;\n state.responseModel = response.model ?? state.responseModel;\n state.responseTimestamp = response.created_at ?? state.responseTimestamp;\n\n if (response.usage) {\n // For stream responses, the input tokens remain constant across all events in the stream.\n // Output tokens, however, are only finalized in the last event.\n // Since we can't guarantee that the last event will include usage data or even be a typed event,\n // we update the output token values on every event that includes them.\n // This ensures that output token usage is always set, even if the final event lacks it.\n state.promptTokens = response.usage.input_tokens;\n state.completionTokens = response.usage.output_tokens;\n state.totalTokens = response.usage.total_tokens;\n }\n\n if (response.status) {\n state.finishReasons.push(response.status);\n }\n\n if (recordOutputs && response.output_text) {\n state.responseTexts.push(response.output_text);\n }\n }\n}\n\n/**\n * Instruments a stream of OpenAI events, updating the provided span with relevant attributes and\n * optionally recording output text. This function yields each event from the input stream as it is processed.\n *\n * @template T - The type of events in the stream.\n * @param stream - The async iterable stream of events to instrument.\n * @param span - The span to add attributes to and to finish at the end of the stream.\n * @param recordOutputs - Whether to record output text fragments in the span.\n * @returns An async generator yielding each event from the input stream.\n */\nexport async function* instrumentStream(\n stream: AsyncIterable,\n span: Span,\n recordOutputs: boolean,\n): AsyncGenerator {\n const state: StreamingState = {\n eventTypes: [],\n responseTexts: [],\n finishReasons: [],\n responseId: '',\n responseModel: '',\n responseTimestamp: 0,\n promptTokens: undefined,\n completionTokens: undefined,\n totalTokens: undefined,\n chatCompletionToolCalls: {},\n responsesApiToolCalls: [],\n };\n\n try {\n for await (const event of stream) {\n if (isChatCompletionChunk(event)) {\n processChatCompletionChunk(event as ChatCompletionChunk, state, recordOutputs);\n } else if (isResponsesApiStreamEvent(event)) {\n processResponsesApiEvent(event as ResponseStreamingEvent, state, recordOutputs, span);\n }\n yield event;\n }\n } finally {\n setCommonResponseAttributes(span, state.responseId, state.responseModel, state.responseTimestamp);\n setTokenUsageAttributes(span, state.promptTokens, state.completionTokens, state.totalTokens);\n\n span.setAttributes({\n [GEN_AI_RESPONSE_STREAMING_ATTRIBUTE]: true,\n });\n\n if (state.finishReasons.length) {\n span.setAttributes({\n [GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE]: JSON.stringify(state.finishReasons),\n });\n }\n\n if (recordOutputs && state.responseTexts.length) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: state.responseTexts.join(''),\n });\n }\n\n // Set tool calls attribute if any were accumulated\n const chatCompletionToolCallsArray = Object.values(state.chatCompletionToolCalls);\n const allToolCalls = [...chatCompletionToolCallsArray, ...state.responsesApiToolCalls];\n\n if (allToolCalls.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE]: JSON.stringify(allToolCalls),\n });\n }\n\n span.end();\n }\n}\n","import { DEBUG_BUILD } from '../../debug-build';\nimport { captureException } from '../../exports';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes';\nimport { SPAN_STATUS_ERROR } from '../../tracing';\nimport { startSpan, startSpanManual } from '../../tracing/trace';\nimport type { Span, SpanAttributeValue } from '../../types-hoist/span';\nimport { debug } from '../../utils/debug-logger';\nimport {\n GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE,\n GEN_AI_INPUT_MESSAGES_ATTRIBUTE,\n GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE,\n GEN_AI_OPERATION_NAME_ATTRIBUTE,\n GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE,\n GEN_AI_REQUEST_MODEL_ATTRIBUTE,\n GEN_AI_RESPONSE_TEXT_ATTRIBUTE,\n GEN_AI_SYSTEM_ATTRIBUTE,\n GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE,\n} from '../ai/gen-ai-attributes';\nimport type { InstrumentedMethodEntry } from '../ai/utils';\nimport {\n buildMethodPath,\n extractSystemInstructions,\n getTruncatedJsonString,\n resolveAIRecordingOptions,\n wrapPromiseWithMethods,\n} from '../ai/utils';\nimport { OPENAI_METHOD_REGISTRY } from './constants';\nimport { instrumentStream } from './streaming';\nimport type { ChatCompletionChunk, OpenAiOptions, OpenAiResponse, OpenAIStream, ResponseStreamingEvent } from './types';\nimport {\n addChatCompletionAttributes,\n addConversationAttributes,\n addEmbeddingsAttributes,\n addResponsesApiAttributes,\n extractRequestParameters,\n isChatCompletionResponse,\n isConversationResponse,\n isEmbeddingsResponse,\n isResponsesApiResponse,\n} from './utils';\n\n/**\n * Extract available tools from request parameters\n */\nfunction extractAvailableTools(params: Record): string | undefined {\n const tools = Array.isArray(params.tools) ? params.tools : [];\n const hasWebSearchOptions = params.web_search_options && typeof params.web_search_options === 'object';\n const webSearchOptions = hasWebSearchOptions\n ? [{ type: 'web_search_options', ...(params.web_search_options as Record) }]\n : [];\n\n const availableTools = [...tools, ...webSearchOptions];\n if (availableTools.length === 0) {\n return undefined;\n }\n\n try {\n return JSON.stringify(availableTools);\n } catch (error) {\n DEBUG_BUILD && debug.error('Failed to serialize OpenAI tools:', error);\n return undefined;\n }\n}\n\n/**\n * Extract request attributes from method arguments\n */\nfunction extractRequestAttributes(args: unknown[], operationName: string): Record {\n const attributes: Record = {\n [GEN_AI_SYSTEM_ATTRIBUTE]: 'openai',\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: operationName,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.openai',\n };\n\n if (args.length > 0 && typeof args[0] === 'object' && args[0] !== null) {\n const params = args[0] as Record;\n\n const availableTools = extractAvailableTools(params);\n if (availableTools) {\n attributes[GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE] = availableTools;\n }\n\n Object.assign(attributes, extractRequestParameters(params));\n } else {\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = 'unknown';\n }\n\n return attributes;\n}\n\n/**\n * Add response attributes to spans\n * This supports Chat Completion, Responses API, Embeddings, and Conversations API responses\n */\nfunction addResponseAttributes(span: Span, result: unknown, recordOutputs?: boolean): void {\n if (!result || typeof result !== 'object') return;\n\n const response = result as OpenAiResponse;\n\n if (isChatCompletionResponse(response)) {\n addChatCompletionAttributes(span, response, recordOutputs);\n if (recordOutputs && response.choices?.length) {\n const responseTexts = response.choices.map(choice => choice.message?.content || '');\n span.setAttributes({ [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: JSON.stringify(responseTexts) });\n }\n } else if (isResponsesApiResponse(response)) {\n addResponsesApiAttributes(span, response, recordOutputs);\n if (recordOutputs && response.output_text) {\n span.setAttributes({ [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: response.output_text });\n }\n } else if (isEmbeddingsResponse(response)) {\n addEmbeddingsAttributes(span, response);\n } else if (isConversationResponse(response)) {\n addConversationAttributes(span, response);\n }\n}\n\n// Extract and record AI request inputs, if present. This is intentionally separate from response attributes.\nfunction addRequestAttributes(span: Span, params: Record, operationName: string): void {\n // Store embeddings input on a separate attribute and do not truncate it\n if (operationName === 'embeddings' && 'input' in params) {\n const input = params.input;\n\n // No input provided\n if (input == null) {\n return;\n }\n\n // Empty input string\n if (typeof input === 'string' && input.length === 0) {\n return;\n }\n\n // Empty array input\n if (Array.isArray(input) && input.length === 0) {\n return;\n }\n\n // Store strings as-is, arrays/objects as JSON\n span.setAttribute(GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE, typeof input === 'string' ? input : JSON.stringify(input));\n return;\n }\n\n const src = 'input' in params ? params.input : 'messages' in params ? params.messages : undefined;\n\n if (!src) {\n return;\n }\n\n if (Array.isArray(src) && src.length === 0) {\n return;\n }\n\n const { systemInstructions, filteredMessages } = extractSystemInstructions(src);\n\n if (systemInstructions) {\n span.setAttribute(GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n\n const truncatedInput = getTruncatedJsonString(filteredMessages);\n span.setAttribute(GEN_AI_INPUT_MESSAGES_ATTRIBUTE, truncatedInput);\n\n if (Array.isArray(filteredMessages)) {\n span.setAttribute(GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, filteredMessages.length);\n } else {\n span.setAttribute(GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, 1);\n }\n}\n\n/**\n * Instrument a method with Sentry spans\n * Following Sentry AI Agents Manual Instrumentation conventions\n * @see https://docs.sentry.io/platforms/javascript/guides/node/tracing/instrumentation/ai-agents-module/#manual-instrumentation\n */\nfunction instrumentMethod(\n originalMethod: (...args: T) => Promise,\n methodPath: string,\n instrumentedMethod: InstrumentedMethodEntry,\n context: unknown,\n options: OpenAiOptions,\n): (...args: T) => Promise {\n return function instrumentedCall(...args: T): Promise {\n const operationName = instrumentedMethod.operation;\n const requestAttributes = extractRequestAttributes(args, operationName);\n const model = (requestAttributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] as string) || 'unknown';\n\n const params = args[0] as Record | undefined;\n const isStreamRequested = params && typeof params === 'object' && params.stream === true;\n\n const spanConfig = {\n name: `${operationName} ${model}`,\n op: `gen_ai.${operationName}`,\n attributes: requestAttributes as Record,\n };\n\n if (isStreamRequested) {\n let originalResult!: Promise;\n\n const instrumentedPromise = startSpanManual(spanConfig, (span: Span) => {\n originalResult = originalMethod.apply(context, args);\n\n if (options.recordInputs && params) {\n addRequestAttributes(span, params, operationName);\n }\n\n // Return async processing\n return (async () => {\n try {\n const result = await originalResult;\n return instrumentStream(\n result as OpenAIStream,\n span,\n options.recordOutputs ?? false,\n ) as unknown as R;\n } catch (error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n captureException(error, {\n mechanism: {\n handled: false,\n type: 'auto.ai.openai.stream',\n data: { function: methodPath },\n },\n });\n span.end();\n throw error;\n }\n })();\n });\n\n return wrapPromiseWithMethods(originalResult, instrumentedPromise, 'auto.ai.openai');\n }\n\n // Non-streaming\n let originalResult!: Promise;\n\n const instrumentedPromise = startSpan(spanConfig, (span: Span) => {\n // Call synchronously to capture the promise\n originalResult = originalMethod.apply(context, args);\n\n if (options.recordInputs && params) {\n addRequestAttributes(span, params, operationName);\n }\n\n return originalResult.then(\n result => {\n addResponseAttributes(span, result, options.recordOutputs);\n return result;\n },\n error => {\n captureException(error, {\n mechanism: {\n handled: false,\n type: 'auto.ai.openai',\n data: { function: methodPath },\n },\n });\n throw error;\n },\n );\n });\n\n return wrapPromiseWithMethods(originalResult, instrumentedPromise, 'auto.ai.openai');\n };\n}\n\n/**\n * Create a deep proxy for OpenAI client instrumentation\n */\nfunction createDeepProxy(target: T, currentPath = '', options: OpenAiOptions): T {\n return new Proxy(target, {\n get(obj: object, prop: string): unknown {\n const value = (obj as Record)[prop];\n const methodPath = buildMethodPath(currentPath, String(prop));\n\n const instrumentedMethod = OPENAI_METHOD_REGISTRY[methodPath as keyof typeof OPENAI_METHOD_REGISTRY];\n if (typeof value === 'function' && instrumentedMethod) {\n return instrumentMethod(\n value as (...args: unknown[]) => Promise,\n methodPath,\n instrumentedMethod,\n obj,\n options,\n );\n }\n\n if (typeof value === 'function') {\n // Bind non-instrumented functions to preserve the original `this` context,\n // which is required for accessing private class fields (e.g. #baseURL) in OpenAI SDK v5.\n return value.bind(obj);\n }\n\n if (value && typeof value === 'object') {\n return createDeepProxy(value, methodPath, options);\n }\n\n return value;\n },\n }) as T;\n}\n\n/**\n * Instrument an OpenAI client with Sentry tracing\n * Can be used across Node.js, Cloudflare Workers, and Vercel Edge\n */\nexport function instrumentOpenAiClient(client: T, options?: OpenAiOptions): T {\n return createDeepProxy(client, '', resolveAIRecordingOptions(options));\n}\n","import type { InstrumentedMethodRegistry } from '../ai/utils';\n\nexport const ANTHROPIC_AI_INTEGRATION_NAME = 'Anthropic_AI';\n\n// https://docs.anthropic.com/en/api/messages\n// https://docs.anthropic.com/en/api/models-list\nexport const ANTHROPIC_METHOD_REGISTRY = {\n 'messages.create': { operation: 'chat' },\n 'messages.stream': { operation: 'chat', streaming: true },\n 'messages.countTokens': { operation: 'chat' },\n 'models.get': { operation: 'models' },\n 'completions.create': { operation: 'chat' },\n 'models.retrieve': { operation: 'models' },\n 'beta.messages.create': { operation: 'chat' },\n} as const satisfies InstrumentedMethodRegistry;\n","import { captureException } from '../../exports';\nimport { SPAN_STATUS_ERROR } from '../../tracing';\nimport type { Span } from '../../types-hoist/span';\nimport type { SpanStatusType } from '../../types-hoist/spanStatus';\nimport {\n GEN_AI_INPUT_MESSAGES_ATTRIBUTE,\n GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE,\n GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE,\n} from '../ai/gen-ai-attributes';\nimport { extractSystemInstructions, getTruncatedJsonString } from '../ai/utils';\nimport type { AnthropicAiResponse } from './types';\n\n/**\n * Set the messages and messages original length attributes.\n * Extracts system instructions before truncation.\n */\nexport function setMessagesAttribute(span: Span, messages: unknown): void {\n if (Array.isArray(messages) && messages.length === 0) {\n return;\n }\n\n const { systemInstructions, filteredMessages } = extractSystemInstructions(messages);\n\n if (systemInstructions) {\n span.setAttributes({\n [GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE]: systemInstructions,\n });\n }\n\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 1;\n span.setAttributes({\n [GEN_AI_INPUT_MESSAGES_ATTRIBUTE]: getTruncatedJsonString(filteredMessages),\n [GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE]: filteredLength,\n });\n}\n\nconst ANTHROPIC_ERROR_TYPE_TO_SPAN_STATUS: Record = {\n invalid_request_error: 'invalid_argument',\n authentication_error: 'unauthenticated',\n permission_error: 'permission_denied',\n not_found_error: 'not_found',\n request_too_large: 'failed_precondition',\n rate_limit_error: 'resource_exhausted',\n api_error: 'internal_error',\n overloaded_error: 'unavailable',\n};\n\n/**\n * Map an Anthropic API error type to a SpanStatusType value.\n * @see https://docs.anthropic.com/en/api/errors#error-shapes\n */\nexport function mapAnthropicErrorToStatusMessage(errorType: string | undefined): SpanStatusType {\n if (!errorType) {\n return 'internal_error';\n }\n return ANTHROPIC_ERROR_TYPE_TO_SPAN_STATUS[errorType] || 'internal_error';\n}\n\n/**\n * Capture error information from the response\n * @see https://docs.anthropic.com/en/api/errors#error-shapes\n */\nexport function handleResponseError(span: Span, response: AnthropicAiResponse): void {\n if (response.error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: mapAnthropicErrorToStatusMessage(response.error.type) });\n\n captureException(response.error, {\n mechanism: {\n handled: false,\n type: 'auto.ai.anthropic.anthropic_error',\n },\n });\n }\n}\n\n/**\n * Include the system prompt in the messages list, if available\n */\nexport function messagesFromParams(params: Record): unknown[] {\n const { system, messages, input } = params;\n\n const systemMessages = typeof system === 'string' ? [{ role: 'system', content: params.system }] : [];\n\n const inputParamMessages = Array.isArray(input) ? input : input != null ? [input] : undefined;\n\n const messagesParamMessages = Array.isArray(messages) ? messages : messages != null ? [messages] : [];\n\n const userMessages = inputParamMessages ?? messagesParamMessages;\n\n return [...systemMessages, ...userMessages];\n}\n","import { captureException } from '../../exports';\nimport { SPAN_STATUS_ERROR } from '../../tracing';\nimport type { Span } from '../../types-hoist/span';\nimport {\n GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE,\n GEN_AI_RESPONSE_ID_ATTRIBUTE,\n GEN_AI_RESPONSE_MODEL_ATTRIBUTE,\n GEN_AI_RESPONSE_STREAMING_ATTRIBUTE,\n GEN_AI_RESPONSE_TEXT_ATTRIBUTE,\n GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE,\n} from '../ai/gen-ai-attributes';\nimport { setTokenUsageAttributes } from '../ai/utils';\nimport type { AnthropicAiStreamingEvent } from './types';\nimport { mapAnthropicErrorToStatusMessage } from './utils';\n\n/**\n * State object used to accumulate information from a stream of Anthropic AI events.\n */\ninterface StreamingState {\n /** Collected response text fragments (for output recording). */\n responseTexts: string[];\n /** Reasons for finishing the response, as reported by the API. */\n finishReasons: string[];\n /** The response ID. */\n responseId: string;\n /** The model name. */\n responseModel: string;\n /** Number of prompt/input tokens used. */\n promptTokens: number | undefined;\n /** Number of completion/output tokens used. */\n completionTokens: number | undefined;\n /** Number of cache creation input tokens used. */\n cacheCreationInputTokens: number | undefined;\n /** Number of cache read input tokens used. */\n cacheReadInputTokens: number | undefined;\n /** Accumulated tool calls (finalized) */\n toolCalls: Array>;\n /** In-progress tool call blocks keyed by index */\n activeToolBlocks: Record<\n number,\n {\n id?: string;\n name?: string;\n inputJsonParts: string[];\n }\n >;\n}\n\n/**\n * Checks if an event is an error event\n * @param event - The event to process\n * @param state - The state of the streaming process\n * @param recordOutputs - Whether to record outputs\n * @param span - The span to update\n * @returns Whether an error occurred\n */\n\nfunction isErrorEvent(event: AnthropicAiStreamingEvent, span: Span): boolean {\n if ('type' in event && typeof event.type === 'string') {\n // If the event is an error, set the span status and capture the error\n // These error events are not rejected by the API by default, but are sent as metadata of the response\n if (event.type === 'error') {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: mapAnthropicErrorToStatusMessage(event.error?.type) });\n captureException(event.error, {\n mechanism: {\n handled: false,\n type: 'auto.ai.anthropic.anthropic_error',\n },\n });\n return true;\n }\n }\n return false;\n}\n\n/**\n * Processes the message metadata of an event\n * @param event - The event to process\n * @param state - The state of the streaming process\n */\n\nfunction handleMessageMetadata(event: AnthropicAiStreamingEvent, state: StreamingState): void {\n // The token counts shown in the usage field of the message_delta event are cumulative.\n // @see https://docs.anthropic.com/en/docs/build-with-claude/streaming#event-types\n if (event.type === 'message_delta' && event.usage) {\n if ('output_tokens' in event.usage && typeof event.usage.output_tokens === 'number') {\n state.completionTokens = event.usage.output_tokens;\n }\n }\n\n if (event.message) {\n const message = event.message;\n\n if (message.id) state.responseId = message.id;\n if (message.model) state.responseModel = message.model;\n if (message.stop_reason) state.finishReasons.push(message.stop_reason);\n\n if (message.usage) {\n if (typeof message.usage.input_tokens === 'number') state.promptTokens = message.usage.input_tokens;\n if (typeof message.usage.cache_creation_input_tokens === 'number')\n state.cacheCreationInputTokens = message.usage.cache_creation_input_tokens;\n if (typeof message.usage.cache_read_input_tokens === 'number')\n state.cacheReadInputTokens = message.usage.cache_read_input_tokens;\n }\n }\n}\n\n/**\n * Handle start of a content block (e.g., tool_use)\n */\nfunction handleContentBlockStart(event: AnthropicAiStreamingEvent, state: StreamingState): void {\n if (event.type !== 'content_block_start' || typeof event.index !== 'number' || !event.content_block) return;\n if (event.content_block.type === 'tool_use' || event.content_block.type === 'server_tool_use') {\n state.activeToolBlocks[event.index] = {\n id: event.content_block.id,\n name: event.content_block.name,\n inputJsonParts: [],\n };\n }\n}\n\n/**\n * Handle deltas of a content block, including input_json_delta for tool_use\n */\nfunction handleContentBlockDelta(\n event: AnthropicAiStreamingEvent,\n state: StreamingState,\n recordOutputs: boolean,\n): void {\n if (event.type !== 'content_block_delta' || !event.delta) return;\n\n // Accumulate tool_use input JSON deltas only when we have an index and an active tool block\n if (\n typeof event.index === 'number' &&\n 'partial_json' in event.delta &&\n typeof event.delta.partial_json === 'string'\n ) {\n const active = state.activeToolBlocks[event.index];\n if (active) {\n active.inputJsonParts.push(event.delta.partial_json);\n }\n }\n\n // Accumulate streamed response text regardless of index\n if (recordOutputs && typeof event.delta.text === 'string') {\n state.responseTexts.push(event.delta.text);\n }\n}\n\n/**\n * Handle stop of a content block; finalize tool_use entries\n */\nfunction handleContentBlockStop(event: AnthropicAiStreamingEvent, state: StreamingState): void {\n if (event.type !== 'content_block_stop' || typeof event.index !== 'number') return;\n\n const active = state.activeToolBlocks[event.index];\n if (!active) return;\n\n const raw = active.inputJsonParts.join('');\n let parsedInput: unknown;\n\n try {\n parsedInput = raw ? JSON.parse(raw) : {};\n } catch {\n parsedInput = { __unparsed: raw };\n }\n\n state.toolCalls.push({\n type: 'tool_use',\n id: active.id,\n name: active.name,\n input: parsedInput,\n });\n\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete state.activeToolBlocks[event.index];\n}\n\n/**\n * Processes an event\n * @param event - The event to process\n * @param state - The state of the streaming process\n * @param recordOutputs - Whether to record outputs\n * @param span - The span to update\n */\nfunction processEvent(\n event: AnthropicAiStreamingEvent,\n state: StreamingState,\n recordOutputs: boolean,\n span: Span,\n): void {\n if (!(event && typeof event === 'object')) {\n return;\n }\n\n const isError = isErrorEvent(event, span);\n if (isError) return;\n\n handleMessageMetadata(event, state);\n\n // Tool call events are sent via 3 separate events:\n // - content_block_start (start of the tool call)\n // - content_block_delta (delta aka input of the tool call)\n // - content_block_stop (end of the tool call)\n // We need to handle them all to capture the full tool call.\n handleContentBlockStart(event, state);\n handleContentBlockDelta(event, state, recordOutputs);\n handleContentBlockStop(event, state);\n}\n\n/**\n * Finalizes span attributes when stream processing completes\n */\nfunction finalizeStreamSpan(state: StreamingState, span: Span, recordOutputs: boolean): void {\n if (!span.isRecording()) {\n return;\n }\n\n // Set common response attributes if available\n if (state.responseId) {\n span.setAttributes({\n [GEN_AI_RESPONSE_ID_ATTRIBUTE]: state.responseId,\n });\n }\n if (state.responseModel) {\n span.setAttributes({\n [GEN_AI_RESPONSE_MODEL_ATTRIBUTE]: state.responseModel,\n });\n }\n\n setTokenUsageAttributes(\n span,\n state.promptTokens,\n state.completionTokens,\n state.cacheCreationInputTokens,\n state.cacheReadInputTokens,\n );\n\n span.setAttributes({\n [GEN_AI_RESPONSE_STREAMING_ATTRIBUTE]: true,\n });\n\n if (state.finishReasons.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE]: JSON.stringify(state.finishReasons),\n });\n }\n\n if (recordOutputs && state.responseTexts.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: state.responseTexts.join(''),\n });\n }\n\n // Set tool calls if any were captured\n if (recordOutputs && state.toolCalls.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE]: JSON.stringify(state.toolCalls),\n });\n }\n\n span.end();\n}\n\n/**\n * Instruments an async iterable stream of Anthropic events, updates the span with\n * streaming attributes and (optionally) the aggregated output text, and yields\n * each event from the input stream unchanged.\n */\nexport async function* instrumentAsyncIterableStream(\n stream: AsyncIterable,\n span: Span,\n recordOutputs: boolean,\n): AsyncGenerator {\n const state: StreamingState = {\n responseTexts: [],\n finishReasons: [],\n responseId: '',\n responseModel: '',\n promptTokens: undefined,\n completionTokens: undefined,\n cacheCreationInputTokens: undefined,\n cacheReadInputTokens: undefined,\n toolCalls: [],\n activeToolBlocks: {},\n };\n\n try {\n for await (const event of stream) {\n processEvent(event, state, recordOutputs, span);\n yield event;\n }\n } finally {\n // Set common response attributes if available\n if (state.responseId) {\n span.setAttributes({\n [GEN_AI_RESPONSE_ID_ATTRIBUTE]: state.responseId,\n });\n }\n if (state.responseModel) {\n span.setAttributes({\n [GEN_AI_RESPONSE_MODEL_ATTRIBUTE]: state.responseModel,\n });\n }\n\n setTokenUsageAttributes(\n span,\n state.promptTokens,\n state.completionTokens,\n state.cacheCreationInputTokens,\n state.cacheReadInputTokens,\n );\n\n span.setAttributes({\n [GEN_AI_RESPONSE_STREAMING_ATTRIBUTE]: true,\n });\n\n if (state.finishReasons.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE]: JSON.stringify(state.finishReasons),\n });\n }\n\n if (recordOutputs && state.responseTexts.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: state.responseTexts.join(''),\n });\n }\n\n // Set tool calls if any were captured\n if (recordOutputs && state.toolCalls.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE]: JSON.stringify(state.toolCalls),\n });\n }\n\n span.end();\n }\n}\n\n/**\n * Instruments a MessageStream by registering event handlers and preserving the original stream API.\n */\nexport function instrumentMessageStream void }>(\n stream: R,\n span: Span,\n recordOutputs: boolean,\n): R {\n const state: StreamingState = {\n responseTexts: [],\n finishReasons: [],\n responseId: '',\n responseModel: '',\n promptTokens: undefined,\n completionTokens: undefined,\n cacheCreationInputTokens: undefined,\n cacheReadInputTokens: undefined,\n toolCalls: [],\n activeToolBlocks: {},\n };\n\n stream.on('streamEvent', (event: unknown) => {\n processEvent(event as AnthropicAiStreamingEvent, state, recordOutputs, span);\n });\n\n // The event fired when a message is done being streamed by the API. Corresponds to the message_stop SSE event.\n // @see https://github.com/anthropics/anthropic-sdk-typescript/blob/d3be31f5a4e6ebb4c0a2f65dbb8f381ae73a9166/helpers.md?plain=1#L42-L44\n stream.on('message', () => {\n finalizeStreamSpan(state, span, recordOutputs);\n });\n\n stream.on('error', (error: unknown) => {\n captureException(error, {\n mechanism: {\n handled: false,\n type: 'auto.ai.anthropic.stream_error',\n },\n });\n\n if (span.isRecording()) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n span.end();\n }\n });\n\n return stream;\n}\n","import { captureException } from '../../exports';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes';\nimport { SPAN_STATUS_ERROR } from '../../tracing';\nimport { startSpan, startSpanManual } from '../../tracing/trace';\nimport type { Span, SpanAttributeValue } from '../../types-hoist/span';\nimport {\n ANTHROPIC_AI_RESPONSE_TIMESTAMP_ATTRIBUTE,\n GEN_AI_OPERATION_NAME_ATTRIBUTE,\n GEN_AI_PROMPT_ATTRIBUTE,\n GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE,\n GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE,\n GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE,\n GEN_AI_REQUEST_MODEL_ATTRIBUTE,\n GEN_AI_REQUEST_STREAM_ATTRIBUTE,\n GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE,\n GEN_AI_REQUEST_TOP_K_ATTRIBUTE,\n GEN_AI_REQUEST_TOP_P_ATTRIBUTE,\n GEN_AI_RESPONSE_ID_ATTRIBUTE,\n GEN_AI_RESPONSE_MODEL_ATTRIBUTE,\n GEN_AI_RESPONSE_TEXT_ATTRIBUTE,\n GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE,\n GEN_AI_SYSTEM_ATTRIBUTE,\n} from '../ai/gen-ai-attributes';\nimport type { InstrumentedMethodEntry } from '../ai/utils';\nimport {\n buildMethodPath,\n resolveAIRecordingOptions,\n setTokenUsageAttributes,\n wrapPromiseWithMethods,\n} from '../ai/utils';\nimport { ANTHROPIC_METHOD_REGISTRY } from './constants';\nimport { instrumentAsyncIterableStream, instrumentMessageStream } from './streaming';\nimport type { AnthropicAiOptions, AnthropicAiResponse, AnthropicAiStreamingEvent, ContentBlock } from './types';\nimport { handleResponseError, messagesFromParams, setMessagesAttribute } from './utils';\n\n/**\n * Extract request attributes from method arguments\n */\nfunction extractRequestAttributes(args: unknown[], methodPath: string, operationName: string): Record {\n const attributes: Record = {\n [GEN_AI_SYSTEM_ATTRIBUTE]: 'anthropic',\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: operationName,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.anthropic',\n };\n\n if (args.length > 0 && typeof args[0] === 'object' && args[0] !== null) {\n const params = args[0] as Record;\n if (params.tools && Array.isArray(params.tools)) {\n attributes[GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE] = JSON.stringify(params.tools);\n }\n\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = params.model ?? 'unknown';\n if ('temperature' in params) attributes[GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE] = params.temperature;\n if ('top_p' in params) attributes[GEN_AI_REQUEST_TOP_P_ATTRIBUTE] = params.top_p;\n if ('stream' in params) attributes[GEN_AI_REQUEST_STREAM_ATTRIBUTE] = params.stream;\n if ('top_k' in params) attributes[GEN_AI_REQUEST_TOP_K_ATTRIBUTE] = params.top_k;\n if ('frequency_penalty' in params)\n attributes[GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE] = params.frequency_penalty;\n if ('max_tokens' in params) attributes[GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE] = params.max_tokens;\n } else {\n if (methodPath === 'models.retrieve' || methodPath === 'models.get') {\n // models.retrieve(model-id) and models.get(model-id)\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = args[0];\n } else {\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = 'unknown';\n }\n }\n\n return attributes;\n}\n\n/**\n * Add private request attributes to spans.\n * This is only recorded if recordInputs is true.\n */\nfunction addPrivateRequestAttributes(span: Span, params: Record): void {\n const messages = messagesFromParams(params);\n setMessagesAttribute(span, messages);\n\n if ('prompt' in params) {\n span.setAttributes({ [GEN_AI_PROMPT_ATTRIBUTE]: JSON.stringify(params.prompt) });\n }\n}\n\n/**\n * Add content attributes when recordOutputs is enabled\n */\nfunction addContentAttributes(span: Span, response: AnthropicAiResponse): void {\n // Messages.create\n if ('content' in response) {\n if (Array.isArray(response.content)) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: response.content\n .map((item: ContentBlock) => item.text)\n .filter(text => !!text)\n .join(''),\n });\n\n const toolCalls: Array = [];\n\n for (const item of response.content) {\n if (item.type === 'tool_use' || item.type === 'server_tool_use') {\n toolCalls.push(item);\n }\n }\n if (toolCalls.length > 0) {\n span.setAttributes({ [GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE]: JSON.stringify(toolCalls) });\n }\n }\n }\n // Completions.create\n if ('completion' in response) {\n span.setAttributes({ [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: response.completion });\n }\n // Models.countTokens\n if ('input_tokens' in response) {\n span.setAttributes({ [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: JSON.stringify(response.input_tokens) });\n }\n}\n\n/**\n * Add basic metadata attributes from the response\n */\nfunction addMetadataAttributes(span: Span, response: AnthropicAiResponse): void {\n if ('id' in response && 'model' in response) {\n span.setAttributes({\n [GEN_AI_RESPONSE_ID_ATTRIBUTE]: response.id,\n [GEN_AI_RESPONSE_MODEL_ATTRIBUTE]: response.model,\n });\n\n if ('created' in response && typeof response.created === 'number') {\n span.setAttributes({\n [ANTHROPIC_AI_RESPONSE_TIMESTAMP_ATTRIBUTE]: new Date(response.created * 1000).toISOString(),\n });\n }\n if ('created_at' in response && typeof response.created_at === 'number') {\n span.setAttributes({\n [ANTHROPIC_AI_RESPONSE_TIMESTAMP_ATTRIBUTE]: new Date(response.created_at * 1000).toISOString(),\n });\n }\n\n if ('usage' in response && response.usage) {\n setTokenUsageAttributes(\n span,\n response.usage.input_tokens,\n response.usage.output_tokens,\n response.usage.cache_creation_input_tokens,\n response.usage.cache_read_input_tokens,\n );\n }\n }\n}\n\n/**\n * Add response attributes to spans\n */\nfunction addResponseAttributes(span: Span, response: AnthropicAiResponse, recordOutputs?: boolean): void {\n if (!response || typeof response !== 'object') return;\n\n // capture error, do not add attributes if error (they shouldn't exist)\n if ('type' in response && response.type === 'error') {\n handleResponseError(span, response);\n return;\n }\n\n // Private response attributes that are only recorded if recordOutputs is true.\n if (recordOutputs) {\n addContentAttributes(span, response);\n }\n\n // Add basic metadata attributes\n addMetadataAttributes(span, response);\n}\n\n/**\n * Handle common error catching and reporting for streaming requests\n */\nfunction handleStreamingError(error: unknown, span: Span, methodPath: string): never {\n captureException(error, {\n mechanism: { handled: false, type: 'auto.ai.anthropic', data: { function: methodPath } },\n });\n\n if (span.isRecording()) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n span.end();\n }\n throw error;\n}\n\n/**\n * Handle streaming cases with common logic\n */\nfunction handleStreamingRequest(\n originalMethod: (...args: T) => R | Promise,\n target: (...args: T) => R | Promise,\n context: unknown,\n args: T,\n requestAttributes: Record,\n operationName: string,\n methodPath: string,\n params: Record | undefined,\n options: AnthropicAiOptions,\n isStreamRequested: boolean,\n isStreamingMethod: boolean,\n): R | Promise {\n const model = requestAttributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] ?? 'unknown';\n const spanConfig = {\n name: `${operationName} ${model}`,\n op: `gen_ai.${operationName}`,\n attributes: requestAttributes as Record,\n };\n\n // messages.stream() always returns a sync MessageStream, even with stream: true param\n if (isStreamRequested && !isStreamingMethod) {\n let originalResult!: Promise;\n\n const instrumentedPromise = startSpanManual(spanConfig, (span: Span) => {\n originalResult = originalMethod.apply(context, args) as Promise;\n\n if (options.recordInputs && params) {\n addPrivateRequestAttributes(span, params);\n }\n\n return (async () => {\n try {\n const result = await originalResult;\n return instrumentAsyncIterableStream(\n result as AsyncIterable,\n span,\n options.recordOutputs ?? false,\n ) as unknown as R;\n } catch (error) {\n return handleStreamingError(error, span, methodPath);\n }\n })();\n });\n\n return wrapPromiseWithMethods(originalResult, instrumentedPromise, 'auto.ai.anthropic');\n } else {\n return startSpanManual(spanConfig, span => {\n try {\n if (options.recordInputs && params) {\n addPrivateRequestAttributes(span, params);\n }\n const messageStream = target.apply(context, args);\n return instrumentMessageStream(messageStream, span, options.recordOutputs ?? false);\n } catch (error) {\n return handleStreamingError(error, span, methodPath);\n }\n });\n }\n}\n\n/**\n * Instrument a method with Sentry spans\n * Following Sentry AI Agents Manual Instrumentation conventions\n * @see https://docs.sentry.io/platforms/javascript/guides/node/tracing/instrumentation/ai-agents-module/#manual-instrumentation\n */\nfunction instrumentMethod(\n originalMethod: (...args: T) => R | Promise,\n methodPath: string,\n instrumentedMethod: InstrumentedMethodEntry,\n context: unknown,\n options: AnthropicAiOptions,\n): (...args: T) => R | Promise {\n return new Proxy(originalMethod, {\n apply(target, thisArg, args: T): R | Promise {\n const operationName = instrumentedMethod.operation;\n const requestAttributes = extractRequestAttributes(args, methodPath, operationName);\n const model = requestAttributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] ?? 'unknown';\n\n const params = typeof args[0] === 'object' ? (args[0] as Record) : undefined;\n const isStreamRequested = Boolean(params?.stream);\n const isStreamingMethod = instrumentedMethod.streaming === true;\n\n if (isStreamRequested || isStreamingMethod) {\n return handleStreamingRequest(\n originalMethod,\n target,\n context,\n args,\n requestAttributes,\n operationName,\n methodPath,\n params,\n options,\n isStreamRequested,\n isStreamingMethod,\n );\n }\n\n let originalResult!: Promise;\n\n const instrumentedPromise = startSpan(\n {\n name: `${operationName} ${model}`,\n op: `gen_ai.${operationName}`,\n attributes: requestAttributes as Record,\n },\n span => {\n originalResult = target.apply(context, args) as Promise;\n\n if (options.recordInputs && params) {\n addPrivateRequestAttributes(span, params);\n }\n\n return originalResult.then(\n result => {\n addResponseAttributes(span, result as AnthropicAiResponse, options.recordOutputs);\n return result;\n },\n error => {\n captureException(error, {\n mechanism: {\n handled: false,\n type: 'auto.ai.anthropic',\n data: {\n function: methodPath,\n },\n },\n });\n throw error;\n },\n );\n },\n );\n\n return wrapPromiseWithMethods(originalResult, instrumentedPromise, 'auto.ai.anthropic');\n },\n }) as (...args: T) => R | Promise;\n}\n\n/**\n * Create a deep proxy for Anthropic AI client instrumentation\n */\nfunction createDeepProxy(target: T, currentPath = '', options: AnthropicAiOptions): T {\n return new Proxy(target, {\n get(obj: object, prop: string): unknown {\n const value = (obj as Record)[prop];\n const methodPath = buildMethodPath(currentPath, String(prop));\n\n const instrumentedMethod = ANTHROPIC_METHOD_REGISTRY[methodPath as keyof typeof ANTHROPIC_METHOD_REGISTRY];\n if (typeof value === 'function' && instrumentedMethod) {\n return instrumentMethod(\n value as (...args: unknown[]) => unknown | Promise,\n methodPath,\n instrumentedMethod,\n obj,\n options,\n );\n }\n\n if (typeof value === 'function') {\n // Bind non-instrumented functions to preserve the original `this` context,\n return value.bind(obj);\n }\n\n if (value && typeof value === 'object') {\n return createDeepProxy(value, methodPath, options);\n }\n\n return value;\n },\n }) as T;\n}\n\n/**\n * Instrument an Anthropic AI client with Sentry tracing\n * Can be used across Node.js, Cloudflare Workers, and Vercel Edge\n *\n * @template T - The type of the client that extends object\n * @param client - The Anthropic AI client to instrument\n * @param options - Optional configuration for recording inputs and outputs\n * @returns The instrumented client with the same type as the input\n */\nexport function instrumentAnthropicAiClient(anthropicAiClient: T, options?: AnthropicAiOptions): T {\n return createDeepProxy(anthropicAiClient, '', resolveAIRecordingOptions(options));\n}\n","import type { InstrumentedMethodRegistry } from '../ai/utils';\n\nexport const GOOGLE_GENAI_INTEGRATION_NAME = 'Google_GenAI';\n\n// https://ai.google.dev/api/rest/v1/models/generateContent\n// https://ai.google.dev/api/rest/v1/chats/sendMessage\n// https://googleapis.github.io/js-genai/release_docs/classes/models.Models.html#generatecontentstream\n// https://googleapis.github.io/js-genai/release_docs/classes/chats.Chat.html#sendmessagestream\nexport const GOOGLE_GENAI_METHOD_REGISTRY = {\n 'models.generateContent': { operation: 'generate_content' },\n 'models.generateContentStream': { operation: 'generate_content', streaming: true },\n 'models.embedContent': { operation: 'embeddings' },\n 'chats.create': { operation: 'chat' },\n // chat.* paths are built by createDeepProxy when it proxies the chat instance with CHAT_PATH as base\n 'chat.sendMessage': { operation: 'chat' },\n 'chat.sendMessageStream': { operation: 'chat', streaming: true },\n} as const satisfies InstrumentedMethodRegistry;\n\n// Constants for internal use\nexport const GOOGLE_GENAI_SYSTEM_NAME = 'google_genai';\nexport const CHATS_CREATE_METHOD = 'chats.create';\nexport const CHAT_PATH = 'chat';\n","import { captureException } from '../../exports';\nimport { SPAN_STATUS_ERROR } from '../../tracing';\nimport type { Span, SpanAttributeValue } from '../../types-hoist/span';\nimport {\n GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE,\n GEN_AI_RESPONSE_ID_ATTRIBUTE,\n GEN_AI_RESPONSE_MODEL_ATTRIBUTE,\n GEN_AI_RESPONSE_STREAMING_ATTRIBUTE,\n GEN_AI_RESPONSE_TEXT_ATTRIBUTE,\n GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE,\n GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE,\n GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE,\n GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE,\n} from '../ai/gen-ai-attributes';\nimport type { GoogleGenAIResponse } from './types';\n\n/**\n * State object used to accumulate information from a stream of Google GenAI events.\n */\ninterface StreamingState {\n /** Collected response text fragments (for output recording). */\n responseTexts: string[];\n /** Reasons for finishing the response, as reported by the API. */\n finishReasons: string[];\n /** The response ID. */\n responseId?: string;\n /** The model name. */\n responseModel?: string;\n /** Number of prompt/input tokens used. */\n promptTokens?: number;\n /** Number of completion/output tokens used. */\n completionTokens?: number;\n /** Number of total tokens used. */\n totalTokens?: number;\n /** Accumulated tool calls (finalized) */\n toolCalls: Array>;\n}\n\n/**\n * Checks if a response chunk contains an error\n * @param chunk - The response chunk to check\n * @param span - The span to update if error is found\n * @returns Whether an error occurred\n */\nfunction isErrorChunk(chunk: GoogleGenAIResponse, span: Span): boolean {\n const feedback = chunk?.promptFeedback;\n if (feedback?.blockReason) {\n const message = feedback.blockReasonMessage ?? feedback.blockReason;\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n captureException(`Content blocked: ${message}`, {\n mechanism: { handled: false, type: 'auto.ai.google_genai' },\n });\n return true;\n }\n return false;\n}\n\n/**\n * Processes response metadata from a chunk\n * @param chunk - The response chunk to process\n * @param state - The state of the streaming process\n */\nfunction handleResponseMetadata(chunk: GoogleGenAIResponse, state: StreamingState): void {\n if (typeof chunk.responseId === 'string') state.responseId = chunk.responseId;\n if (typeof chunk.modelVersion === 'string') state.responseModel = chunk.modelVersion;\n\n const usage = chunk.usageMetadata;\n if (usage) {\n if (typeof usage.promptTokenCount === 'number') state.promptTokens = usage.promptTokenCount;\n if (typeof usage.candidatesTokenCount === 'number') state.completionTokens = usage.candidatesTokenCount;\n if (typeof usage.totalTokenCount === 'number') state.totalTokens = usage.totalTokenCount;\n }\n}\n\n/**\n * Processes candidate content from a response chunk\n * @param chunk - The response chunk to process\n * @param state - The state of the streaming process\n * @param recordOutputs - Whether to record outputs\n */\nfunction handleCandidateContent(chunk: GoogleGenAIResponse, state: StreamingState, recordOutputs: boolean): void {\n if (Array.isArray(chunk.functionCalls)) {\n state.toolCalls.push(...chunk.functionCalls);\n }\n\n for (const candidate of chunk.candidates ?? []) {\n if (candidate?.finishReason && !state.finishReasons.includes(candidate.finishReason)) {\n state.finishReasons.push(candidate.finishReason);\n }\n\n for (const part of candidate?.content?.parts ?? []) {\n if (recordOutputs && part.text) state.responseTexts.push(part.text);\n if (part.functionCall) {\n state.toolCalls.push({\n type: 'function',\n id: part.functionCall.id,\n name: part.functionCall.name,\n arguments: part.functionCall.args,\n });\n }\n }\n }\n}\n\n/**\n * Processes a single chunk from the Google GenAI stream\n * @param chunk - The chunk to process\n * @param state - The state of the streaming process\n * @param recordOutputs - Whether to record outputs\n * @param span - The span to update\n */\nfunction processChunk(chunk: GoogleGenAIResponse, state: StreamingState, recordOutputs: boolean, span: Span): void {\n if (!chunk || isErrorChunk(chunk, span)) return;\n handleResponseMetadata(chunk, state);\n handleCandidateContent(chunk, state, recordOutputs);\n}\n\n/**\n * Instruments an async iterable stream of Google GenAI response chunks, updates the span with\n * streaming attributes and (optionally) the aggregated output text, and yields\n * each chunk from the input stream unchanged.\n */\nexport async function* instrumentStream(\n stream: AsyncIterable,\n span: Span,\n recordOutputs: boolean,\n): AsyncGenerator {\n const state: StreamingState = {\n responseTexts: [],\n finishReasons: [],\n toolCalls: [],\n };\n\n try {\n for await (const chunk of stream) {\n processChunk(chunk, state, recordOutputs, span);\n yield chunk;\n }\n } finally {\n const attrs: Record = {\n [GEN_AI_RESPONSE_STREAMING_ATTRIBUTE]: true,\n };\n\n if (state.responseId) attrs[GEN_AI_RESPONSE_ID_ATTRIBUTE] = state.responseId;\n if (state.responseModel) attrs[GEN_AI_RESPONSE_MODEL_ATTRIBUTE] = state.responseModel;\n if (state.promptTokens !== undefined) attrs[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] = state.promptTokens;\n if (state.completionTokens !== undefined) attrs[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE] = state.completionTokens;\n if (state.totalTokens !== undefined) attrs[GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE] = state.totalTokens;\n\n if (state.finishReasons.length) {\n attrs[GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE] = JSON.stringify(state.finishReasons);\n }\n if (recordOutputs && state.responseTexts.length) {\n attrs[GEN_AI_RESPONSE_TEXT_ATTRIBUTE] = state.responseTexts.join('');\n }\n if (recordOutputs && state.toolCalls.length) {\n attrs[GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE] = JSON.stringify(state.toolCalls);\n }\n\n span.setAttributes(attrs);\n span.end();\n }\n}\n","// Copied from https://googleapis.github.io/js-genai/release_docs/index.html\nexport type ContentListUnion = Content | Content[] | PartListUnion;\nexport type ContentUnion = Content | PartUnion[] | PartUnion;\nexport type Content = {\n parts?: Part[];\n role?: string;\n};\nexport type PartUnion = Part | string;\nexport type Part = Record & {\n inlineData?: {\n data?: string;\n displayName?: string;\n mimeType?: string;\n };\n text?: string;\n};\nexport type PartListUnion = PartUnion[] | PartUnion;\n\n// our consistent span message shape\nexport type Message = Record & {\n role: string;\n content?: PartListUnion;\n parts?: PartListUnion;\n};\n\n/**\n *\n */\nexport function contentUnionToMessages(content: ContentListUnion, role = 'user'): Message[] {\n if (typeof content === 'string') {\n return [{ role, content }];\n }\n if (Array.isArray(content)) {\n return content.flatMap(content => contentUnionToMessages(content, role));\n }\n if (typeof content !== 'object' || !content) return [];\n if ('role' in content && typeof content.role === 'string') {\n return [content as Message];\n }\n if ('parts' in content) {\n return [{ ...content, role } as Message];\n }\n return [{ role, content }];\n}\n","/* eslint-disable max-lines */\nimport { captureException } from '../../exports';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes';\nimport { SPAN_STATUS_ERROR } from '../../tracing';\nimport { startSpan, startSpanManual } from '../../tracing/trace';\nimport type { Span, SpanAttributeValue } from '../../types-hoist/span';\nimport { handleCallbackErrors } from '../../utils/handleCallbackErrors';\nimport {\n GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE,\n GEN_AI_INPUT_MESSAGES_ATTRIBUTE,\n GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE,\n GEN_AI_OPERATION_NAME_ATTRIBUTE,\n GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE,\n GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE,\n GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE,\n GEN_AI_REQUEST_MODEL_ATTRIBUTE,\n GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE,\n GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE,\n GEN_AI_REQUEST_TOP_K_ATTRIBUTE,\n GEN_AI_REQUEST_TOP_P_ATTRIBUTE,\n GEN_AI_RESPONSE_MODEL_ATTRIBUTE,\n GEN_AI_RESPONSE_TEXT_ATTRIBUTE,\n GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE,\n GEN_AI_SYSTEM_ATTRIBUTE,\n GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE,\n GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE,\n GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE,\n GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE,\n} from '../ai/gen-ai-attributes';\nimport { truncateGenAiMessages } from '../ai/messageTruncation';\nimport type { InstrumentedMethodEntry } from '../ai/utils';\nimport { buildMethodPath, extractSystemInstructions, resolveAIRecordingOptions } from '../ai/utils';\nimport { CHAT_PATH, CHATS_CREATE_METHOD, GOOGLE_GENAI_METHOD_REGISTRY, GOOGLE_GENAI_SYSTEM_NAME } from './constants';\nimport { instrumentStream } from './streaming';\nimport type { Candidate, ContentPart, GoogleGenAIOptions, GoogleGenAIResponse } from './types';\nimport type { ContentListUnion, ContentUnion, Message, PartListUnion } from './utils';\nimport { contentUnionToMessages } from './utils';\n\n/**\n * Extract model from parameters or chat context object\n * For chat instances, the model is available on the chat object as 'model' (older versions) or 'modelVersion' (newer versions)\n */\nexport function extractModel(params: Record, context?: unknown): string {\n if ('model' in params && typeof params.model === 'string') {\n return params.model;\n }\n\n // Try to get model from chat context object (chat instance has model property)\n if (context && typeof context === 'object') {\n const contextObj = context as Record;\n\n // Check for 'model' property (older versions, and streaming)\n if ('model' in contextObj && typeof contextObj.model === 'string') {\n return contextObj.model;\n }\n\n // Check for 'modelVersion' property (newer versions)\n if ('modelVersion' in contextObj && typeof contextObj.modelVersion === 'string') {\n return contextObj.modelVersion;\n }\n }\n\n return 'unknown';\n}\n\n/**\n * Extract generation config parameters\n */\nfunction extractConfigAttributes(config: Record): Record {\n const attributes: Record = {};\n\n if ('temperature' in config && typeof config.temperature === 'number') {\n attributes[GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE] = config.temperature;\n }\n if ('topP' in config && typeof config.topP === 'number') {\n attributes[GEN_AI_REQUEST_TOP_P_ATTRIBUTE] = config.topP;\n }\n if ('topK' in config && typeof config.topK === 'number') {\n attributes[GEN_AI_REQUEST_TOP_K_ATTRIBUTE] = config.topK;\n }\n if ('maxOutputTokens' in config && typeof config.maxOutputTokens === 'number') {\n attributes[GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE] = config.maxOutputTokens;\n }\n if ('frequencyPenalty' in config && typeof config.frequencyPenalty === 'number') {\n attributes[GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE] = config.frequencyPenalty;\n }\n if ('presencePenalty' in config && typeof config.presencePenalty === 'number') {\n attributes[GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE] = config.presencePenalty;\n }\n\n return attributes;\n}\n\n/**\n * Extract request attributes from method arguments\n * Builds the base attributes for span creation including system info, model, and config\n */\nfunction extractRequestAttributes(\n operationName: string,\n params?: Record,\n context?: unknown,\n): Record {\n const attributes: Record = {\n [GEN_AI_SYSTEM_ATTRIBUTE]: GOOGLE_GENAI_SYSTEM_NAME,\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: operationName,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.google_genai',\n };\n\n if (params) {\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = extractModel(params, context);\n\n // Extract generation config parameters\n if ('config' in params && typeof params.config === 'object' && params.config) {\n const config = params.config as Record;\n Object.assign(attributes, extractConfigAttributes(config));\n\n // Extract available tools from config\n if ('tools' in config && Array.isArray(config.tools)) {\n const functionDeclarations = config.tools.flatMap(\n (tool: { functionDeclarations: unknown[] }) => tool.functionDeclarations,\n );\n attributes[GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE] = JSON.stringify(functionDeclarations);\n }\n }\n } else {\n attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] = extractModel({}, context);\n }\n\n return attributes;\n}\n\n/**\n * Add private request attributes to spans.\n * This is only recorded if recordInputs is true.\n * Handles different parameter formats for different Google GenAI methods.\n */\nfunction addPrivateRequestAttributes(span: Span, params: Record, isEmbeddings: boolean): void {\n if (isEmbeddings) {\n const contents = params.contents;\n if (contents != null) {\n span.setAttribute(\n GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE,\n typeof contents === 'string' ? contents : JSON.stringify(contents),\n );\n }\n return;\n }\n\n const messages: Message[] = [];\n\n // config.systemInstruction: ContentUnion\n if (\n 'config' in params &&\n params.config &&\n typeof params.config === 'object' &&\n 'systemInstruction' in params.config &&\n params.config.systemInstruction\n ) {\n messages.push(...contentUnionToMessages(params.config.systemInstruction as ContentUnion, 'system'));\n }\n\n // For chats.create: history contains the conversation history\n if ('history' in params) {\n messages.push(...contentUnionToMessages(params.history as PartListUnion, 'user'));\n }\n\n // For models.generateContent: ContentListUnion\n if ('contents' in params) {\n messages.push(...contentUnionToMessages(params.contents as ContentListUnion, 'user'));\n }\n\n // For chat.sendMessage: message can be PartListUnion\n if ('message' in params) {\n messages.push(...contentUnionToMessages(params.message as PartListUnion, 'user'));\n }\n\n if (Array.isArray(messages) && messages.length) {\n const { systemInstructions, filteredMessages } = extractSystemInstructions(messages);\n\n if (systemInstructions) {\n span.setAttribute(GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 0;\n span.setAttributes({\n [GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE]: filteredLength,\n [GEN_AI_INPUT_MESSAGES_ATTRIBUTE]: JSON.stringify(truncateGenAiMessages(filteredMessages as unknown[])),\n });\n }\n}\n\n/**\n * Add response attributes from the Google GenAI response\n * @see https://github.com/googleapis/js-genai/blob/v1.19.0/src/types.ts#L2313\n */\nfunction addResponseAttributes(span: Span, response: GoogleGenAIResponse, recordOutputs?: boolean): void {\n if (!response || typeof response !== 'object') return;\n\n if (response.modelVersion) {\n span.setAttribute(GEN_AI_RESPONSE_MODEL_ATTRIBUTE, response.modelVersion);\n }\n\n // Add usage metadata if present\n if (response.usageMetadata && typeof response.usageMetadata === 'object') {\n const usage = response.usageMetadata;\n if (typeof usage.promptTokenCount === 'number') {\n span.setAttributes({\n [GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE]: usage.promptTokenCount,\n });\n }\n if (typeof usage.candidatesTokenCount === 'number') {\n span.setAttributes({\n [GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE]: usage.candidatesTokenCount,\n });\n }\n if (typeof usage.totalTokenCount === 'number') {\n span.setAttributes({\n [GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE]: usage.totalTokenCount,\n });\n }\n }\n\n // Add response text if recordOutputs is enabled\n if (recordOutputs && Array.isArray(response.candidates) && response.candidates.length > 0) {\n const responseTexts = response.candidates\n .map((candidate: Candidate) => {\n if (candidate.content?.parts && Array.isArray(candidate.content.parts)) {\n return candidate.content.parts\n .map((part: ContentPart) => (typeof part.text === 'string' ? part.text : ''))\n .filter((text: string) => text.length > 0)\n .join('');\n }\n return '';\n })\n .filter((text: string) => text.length > 0);\n\n if (responseTexts.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TEXT_ATTRIBUTE]: responseTexts.join(''),\n });\n }\n }\n\n // Add tool calls if recordOutputs is enabled\n if (recordOutputs && response.functionCalls) {\n const functionCalls = response.functionCalls;\n if (Array.isArray(functionCalls) && functionCalls.length > 0) {\n span.setAttributes({\n [GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE]: JSON.stringify(functionCalls),\n });\n }\n }\n}\n\n/**\n * Instrument any async or synchronous genai method with Sentry spans\n * Handles operations like models.generateContent and chat.sendMessage and chats.create\n * @see https://docs.sentry.io/platforms/javascript/guides/node/tracing/instrumentation/ai-agents-module/#manual-instrumentation\n */\nfunction instrumentMethod(\n originalMethod: (...args: T) => R | Promise,\n methodPath: string,\n instrumentedMethod: InstrumentedMethodEntry,\n context: unknown,\n options: GoogleGenAIOptions,\n): (...args: T) => R | Promise {\n const isSyncCreate = methodPath === CHATS_CREATE_METHOD;\n const isEmbeddings = instrumentedMethod.operation === 'embeddings';\n\n return new Proxy(originalMethod, {\n apply(target, _, args: T): R | Promise {\n const operationName = instrumentedMethod.operation;\n const params = args[0] as Record | undefined;\n const requestAttributes = extractRequestAttributes(operationName, params, context);\n const model = requestAttributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] ?? 'unknown';\n\n // Check if this is a streaming method\n if (instrumentedMethod.streaming) {\n // Use startSpanManual for streaming methods to control span lifecycle\n return startSpanManual(\n {\n name: `${operationName} ${model}`,\n op: `gen_ai.${operationName}`,\n attributes: requestAttributes,\n },\n async (span: Span) => {\n try {\n if (options.recordInputs && params) {\n addPrivateRequestAttributes(span, params, isEmbeddings);\n }\n const stream = await target.apply(context, args);\n return instrumentStream(stream, span, Boolean(options.recordOutputs)) as R;\n } catch (error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n captureException(error, {\n mechanism: {\n handled: false,\n type: 'auto.ai.google_genai',\n data: { function: methodPath },\n },\n });\n span.end();\n throw error;\n }\n },\n );\n }\n // Single span for both sync and async operations\n return startSpan(\n {\n name: isSyncCreate ? `${operationName} ${model} create` : `${operationName} ${model}`,\n op: `gen_ai.${operationName}`,\n attributes: requestAttributes,\n },\n (span: Span) => {\n if (options.recordInputs && params) {\n addPrivateRequestAttributes(span, params, isEmbeddings);\n }\n\n return handleCallbackErrors(\n () => target.apply(context, args),\n error => {\n captureException(error, {\n mechanism: { handled: false, type: 'auto.ai.google_genai', data: { function: methodPath } },\n });\n },\n () => {},\n result => {\n // Only add response attributes for content-producing methods, not for chats.create or embeddings\n if (!isSyncCreate && !isEmbeddings) {\n addResponseAttributes(span, result, options.recordOutputs);\n }\n },\n );\n },\n );\n },\n }) as (...args: T) => R | Promise;\n}\n\n/**\n * Create a deep proxy for Google GenAI client instrumentation\n * Recursively instruments methods and handles special cases like chats.create\n */\nfunction createDeepProxy(target: T, currentPath = '', options: GoogleGenAIOptions): T {\n return new Proxy(target, {\n get: (t, prop, receiver) => {\n const value = Reflect.get(t, prop, receiver);\n const methodPath = buildMethodPath(currentPath, String(prop));\n\n const instrumentedMethod = GOOGLE_GENAI_METHOD_REGISTRY[methodPath as keyof typeof GOOGLE_GENAI_METHOD_REGISTRY];\n if (typeof value === 'function' && instrumentedMethod) {\n // Special case: chats.create is synchronous but needs both instrumentation AND result proxying\n if (methodPath === CHATS_CREATE_METHOD) {\n const wrappedMethod = instrumentMethod(\n value as (...args: unknown[]) => unknown,\n methodPath,\n instrumentedMethod,\n t,\n options,\n );\n return function instrumentedAndProxiedCreate(...args: unknown[]): unknown {\n const result = wrappedMethod(...args);\n // If the result is an object (like a chat instance), proxy it too\n if (result && typeof result === 'object') {\n return createDeepProxy(result, CHAT_PATH, options);\n }\n return result;\n };\n }\n\n return instrumentMethod(\n value as (...args: unknown[]) => Promise,\n methodPath,\n instrumentedMethod,\n t,\n options,\n );\n }\n\n if (typeof value === 'function') {\n // Bind non-instrumented functions to preserve the original `this` context\n return value.bind(t);\n }\n\n if (value && typeof value === 'object') {\n return createDeepProxy(value, methodPath, options);\n }\n\n return value;\n },\n });\n}\n\n/**\n * Instrument a Google GenAI client with Sentry tracing\n * Can be used across Node.js, Cloudflare Workers, and Vercel Edge\n *\n * @template T - The type of the client that extends client object\n * @param client - The Google GenAI client to instrument\n * @param options - Optional configuration for recording inputs and outputs\n * @returns The instrumented client with the same type as the input\n *\n * @example\n * ```typescript\n * import { GoogleGenAI } from '@google/genai';\n * import { instrumentGoogleGenAIClient } from '@sentry/core';\n *\n * const genAI = new GoogleGenAI({ apiKey: process.env.GOOGLE_GENAI_API_KEY });\n * const instrumentedClient = instrumentGoogleGenAIClient(genAI);\n *\n * // Now both chats.create and sendMessage will be instrumented\n * const chat = instrumentedClient.chats.create({ model: 'gemini-1.5-pro' });\n * const response = await chat.sendMessage({ message: 'Hello' });\n * ```\n */\nexport function instrumentGoogleGenAIClient(client: T, options?: GoogleGenAIOptions): T {\n return createDeepProxy(client, '', resolveAIRecordingOptions(options));\n}\n","export const LANGCHAIN_INTEGRATION_NAME = 'LangChain';\nexport const LANGCHAIN_ORIGIN = 'auto.ai.langchain';\n\nexport const ROLE_MAP: Record = {\n human: 'user',\n ai: 'assistant',\n assistant: 'assistant',\n system: 'system',\n function: 'function',\n tool: 'tool',\n};\n","import { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes';\nimport type { SpanAttributeValue } from '../../types-hoist/span';\nimport {\n GEN_AI_INPUT_MESSAGES_ATTRIBUTE,\n GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE,\n GEN_AI_OPERATION_NAME_ATTRIBUTE,\n GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE,\n GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE,\n GEN_AI_REQUEST_MODEL_ATTRIBUTE,\n GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE,\n GEN_AI_REQUEST_STREAM_ATTRIBUTE,\n GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE,\n GEN_AI_REQUEST_TOP_P_ATTRIBUTE,\n GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE,\n GEN_AI_RESPONSE_ID_ATTRIBUTE,\n GEN_AI_RESPONSE_MODEL_ATTRIBUTE,\n GEN_AI_RESPONSE_STOP_REASON_ATTRIBUTE,\n GEN_AI_RESPONSE_TEXT_ATTRIBUTE,\n GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE,\n GEN_AI_SYSTEM_ATTRIBUTE,\n GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE,\n GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS_ATTRIBUTE,\n GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS_ATTRIBUTE,\n GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE,\n GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE,\n GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE,\n} from '../ai/gen-ai-attributes';\nimport { isContentMedia, stripInlineMediaFromSingleMessage } from '../ai/mediaStripping';\nimport { truncateGenAiMessages } from '../ai/messageTruncation';\nimport { extractSystemInstructions } from '../ai/utils';\nimport { LANGCHAIN_ORIGIN, ROLE_MAP } from './constants';\nimport type { LangChainLLMResult, LangChainMessage, LangChainSerialized } from './types';\n\n/**\n * Assigns an attribute only when the value is neither `undefined` nor `null`.\n *\n * We keep this tiny helper because call sites are repetitive and easy to miswrite.\n * It also preserves falsy-but-valid values like `0` and `\"\"`.\n */\nconst setIfDefined = (target: Record, key: string, value: unknown): void => {\n if (value != null) target[key] = value as SpanAttributeValue;\n};\n\n/**\n * Like `setIfDefined`, but converts the value with `Number()` and skips only when the\n * result is `NaN`. This ensures numeric 0 makes it through (unlike truthy checks).\n */\nconst setNumberIfDefined = (target: Record, key: string, value: unknown): void => {\n const n = Number(value);\n if (!Number.isNaN(n)) target[key] = n;\n};\n\n/**\n * Converts a value to a string. Avoids double-quoted JSON strings where a plain\n * string is desired, but still handles objects/arrays safely.\n */\nfunction asString(v: unknown): string {\n if (typeof v === 'string') return v;\n try {\n return JSON.stringify(v);\n } catch {\n return String(v);\n }\n}\n\n/**\n * Converts message content to a string, stripping inline media (base64 images, audio, etc.)\n * from multimodal content before stringification so downstream media stripping can't miss it.\n *\n * @example\n * // String content passes through unchanged:\n * normalizeContent(\"Hello\") // => \"Hello\"\n *\n * // Multimodal array content — media is replaced with \"[Blob substitute]\" before JSON.stringify:\n * normalizeContent([\n * { type: \"text\", text: \"What color?\" },\n * { type: \"image_url\", image_url: { url: \"data:image/png;base64,iVBOR...\" } }\n * ])\n * // => '[{\"type\":\"text\",\"text\":\"What color?\"},{\"type\":\"image_url\",\"image_url\":{\"url\":\"[Blob substitute]\"}}]'\n *\n * // Without this, asString() would JSON.stringify the raw array and the base64 blob\n * // would end up in span attributes, since downstream stripping only works on objects.\n */\nfunction normalizeContent(v: unknown): string {\n if (Array.isArray(v)) {\n try {\n const stripped = v.map(part =>\n part && typeof part === 'object' && isContentMedia(part) ? stripInlineMediaFromSingleMessage(part) : part,\n );\n return JSON.stringify(stripped);\n } catch {\n return String(v);\n }\n }\n return asString(v);\n}\n\n/**\n * Normalizes a single role token to our canonical set.\n *\n * @param role Incoming role value (free-form, any casing)\n * @returns Canonical role: 'user' | 'assistant' | 'system' | 'function' | 'tool' | \n */\nfunction normalizeMessageRole(role: string): string {\n const normalized = role.toLowerCase();\n return ROLE_MAP[normalized] ?? normalized;\n}\n\n/**\n * Infers a role from a LangChain message constructor name.\n *\n * Checks for substrings like \"System\", \"Human\", \"AI\", etc.\n */\nfunction normalizeRoleNameFromCtor(name: string): string {\n if (name.includes('System')) return 'system';\n if (name.includes('Human')) return 'user';\n if (name.includes('AI') || name.includes('Assistant')) return 'assistant';\n if (name.includes('Function')) return 'function';\n if (name.includes('Tool')) return 'tool';\n return 'user';\n}\n\n/**\n * Returns invocation params from a LangChain `tags` object.\n *\n * LangChain often passes runtime parameters (model, temperature, etc.) via the\n * `tags.invocation_params` bag. If `tags` is an array (LangChain sometimes uses\n * string tags), we return `undefined`.\n *\n * @param tags LangChain tags (string[] or record)\n * @returns The `invocation_params` object, if present\n */\nexport function getInvocationParams(tags?: string[] | Record): Record | undefined {\n if (!tags || Array.isArray(tags)) return undefined;\n return tags.invocation_params as Record | undefined;\n}\n\n/**\n * Normalizes a heterogeneous set of LangChain messages to `{ role, content }`.\n *\n * Why so many branches? LangChain messages can arrive in several shapes:\n * - Message classes with `_getType()` (most reliable)\n * - Classes with meaningful constructor names (e.g. `SystemMessage`)\n * - Plain objects with `type`, or `{ role, content }`\n * - Serialized format with `{ lc: 1, id: [...], kwargs: { content } }`\n * We preserve the prioritization to minimize behavioral drift.\n *\n * @param messages Mixed LangChain messages\n * @returns Array of normalized `{ role, content }`\n */\nexport function normalizeLangChainMessages(messages: LangChainMessage[]): Array<{ role: string; content: string }> {\n return messages.map(message => {\n // 1) Prefer _getType() when present\n const maybeGetType = (message as { _getType?: () => string })._getType;\n if (typeof maybeGetType === 'function') {\n const messageType = maybeGetType.call(message);\n return {\n role: normalizeMessageRole(messageType),\n content: normalizeContent(message.content),\n };\n }\n\n // 2) Serialized LangChain format (lc: 1) - check before constructor name\n // This is more reliable than constructor.name which can be lost during serialization\n if (message.lc === 1 && message.kwargs) {\n const id = message.id;\n const messageType = Array.isArray(id) && id.length > 0 ? id[id.length - 1] : '';\n const role = typeof messageType === 'string' ? normalizeRoleNameFromCtor(messageType) : 'user';\n\n return {\n role: normalizeMessageRole(role),\n content: normalizeContent(message.kwargs?.content),\n };\n }\n\n // 3) Then objects with `type`\n if (message.type) {\n const role = String(message.type).toLowerCase();\n return {\n role: normalizeMessageRole(role),\n content: normalizeContent(message.content),\n };\n }\n\n // 4) Then objects with `{ role, content }` - check before constructor name\n // Plain objects have constructor.name=\"Object\" which would incorrectly default to \"user\"\n if (message.role) {\n return {\n role: normalizeMessageRole(String(message.role)),\n content: normalizeContent(message.content),\n };\n }\n\n // 5) Then try constructor name (SystemMessage / HumanMessage / ...)\n // Only use this if we haven't matched a more specific case\n const ctor = (message as { constructor?: { name?: string } }).constructor?.name;\n if (ctor && ctor !== 'Object') {\n return {\n role: normalizeMessageRole(normalizeRoleNameFromCtor(ctor)),\n content: normalizeContent(message.content),\n };\n }\n\n // 6) Fallback: treat as user text\n return {\n role: 'user',\n content: normalizeContent(message.content),\n };\n });\n}\n\n/**\n * Extracts request attributes common to both LLM and ChatModel invocations.\n *\n * Source precedence:\n * 1) `invocationParams` (highest)\n * 2) `langSmithMetadata`\n *\n * Numeric values are set even when 0 (e.g. `temperature: 0`), but skipped if `NaN`.\n */\nfunction extractCommonRequestAttributes(\n serialized: LangChainSerialized,\n invocationParams?: Record,\n langSmithMetadata?: Record,\n): Record {\n const attrs: Record = {};\n\n // Get kwargs if available (from constructor type)\n const kwargs = 'kwargs' in serialized ? serialized.kwargs : undefined;\n\n const temperature = invocationParams?.temperature ?? langSmithMetadata?.ls_temperature ?? kwargs?.temperature;\n setNumberIfDefined(attrs, GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE, temperature);\n\n const maxTokens = invocationParams?.max_tokens ?? langSmithMetadata?.ls_max_tokens ?? kwargs?.max_tokens;\n setNumberIfDefined(attrs, GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE, maxTokens);\n\n const topP = invocationParams?.top_p ?? kwargs?.top_p;\n setNumberIfDefined(attrs, GEN_AI_REQUEST_TOP_P_ATTRIBUTE, topP);\n\n const frequencyPenalty = invocationParams?.frequency_penalty;\n setNumberIfDefined(attrs, GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE, frequencyPenalty);\n\n const presencePenalty = invocationParams?.presence_penalty;\n setNumberIfDefined(attrs, GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE, presencePenalty);\n\n // LangChain uses `stream`. We only set the attribute if the key actually exists\n // (some callbacks report `false` even on streamed requests, this stems from LangChain's callback handler).\n if (invocationParams && 'stream' in invocationParams) {\n setIfDefined(attrs, GEN_AI_REQUEST_STREAM_ATTRIBUTE, Boolean(invocationParams.stream));\n }\n\n return attrs;\n}\n\n/**\n * Small helper to assemble boilerplate attributes shared by both request extractors.\n * Always uses 'chat' as the operation type for all LLM and chat model operations.\n */\nfunction baseRequestAttributes(\n system: unknown,\n modelName: unknown,\n serialized: LangChainSerialized,\n invocationParams?: Record,\n langSmithMetadata?: Record,\n): Record {\n return {\n [GEN_AI_SYSTEM_ATTRIBUTE]: asString(system ?? 'langchain'),\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'chat',\n [GEN_AI_REQUEST_MODEL_ATTRIBUTE]: asString(modelName),\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: LANGCHAIN_ORIGIN,\n ...extractCommonRequestAttributes(serialized, invocationParams, langSmithMetadata),\n };\n}\n\n/**\n * Extracts attributes for plain LLM invocations (string prompts).\n *\n * - Operation is tagged as `chat` following OpenTelemetry semantic conventions.\n * LangChain LLM operations are treated as chat operations.\n * - When `recordInputs` is true, string prompts are wrapped into `{role:\"user\"}`\n * messages to align with the chat schema used elsewhere.\n */\nexport function extractLLMRequestAttributes(\n llm: LangChainSerialized,\n prompts: string[],\n recordInputs: boolean,\n invocationParams?: Record,\n langSmithMetadata?: Record,\n): Record {\n const system = langSmithMetadata?.ls_provider;\n const modelName = invocationParams?.model ?? langSmithMetadata?.ls_model_name ?? 'unknown';\n\n const attrs = baseRequestAttributes(system, modelName, llm, invocationParams, langSmithMetadata);\n\n if (recordInputs && Array.isArray(prompts) && prompts.length > 0) {\n setIfDefined(attrs, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, prompts.length);\n const messages = prompts.map(p => ({ role: 'user', content: p }));\n setIfDefined(attrs, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, asString(messages));\n }\n\n return attrs;\n}\n\n/**\n * Extracts attributes for ChatModel invocations (array-of-arrays of messages).\n *\n * - Operation is tagged as `chat` following OpenTelemetry semantic conventions.\n * LangChain chat model operations are chat operations.\n * - We flatten LangChain's `LangChainMessage[][]` and normalize shapes into a\n * consistent `{ role, content }` array when `recordInputs` is true.\n * - Provider system value falls back to `serialized.id?.[2]`.\n */\nexport function extractChatModelRequestAttributes(\n llm: LangChainSerialized,\n langChainMessages: LangChainMessage[][],\n recordInputs: boolean,\n invocationParams?: Record,\n langSmithMetadata?: Record,\n): Record {\n const system = langSmithMetadata?.ls_provider ?? llm.id?.[2];\n const modelName = invocationParams?.model ?? langSmithMetadata?.ls_model_name ?? 'unknown';\n\n const attrs = baseRequestAttributes(system, modelName, llm, invocationParams, langSmithMetadata);\n\n if (recordInputs && Array.isArray(langChainMessages) && langChainMessages.length > 0) {\n const normalized = normalizeLangChainMessages(langChainMessages.flat());\n\n const { systemInstructions, filteredMessages } = extractSystemInstructions(normalized);\n\n if (systemInstructions) {\n setIfDefined(attrs, GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 0;\n setIfDefined(attrs, GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE, filteredLength);\n\n const truncated = truncateGenAiMessages(filteredMessages as unknown[]);\n setIfDefined(attrs, GEN_AI_INPUT_MESSAGES_ATTRIBUTE, asString(truncated));\n }\n\n return attrs;\n}\n\n/**\n * Scans generations for Anthropic-style `tool_use` items and records them.\n *\n * LangChain represents some provider messages (e.g., Anthropic) with a `message.content`\n * array that may include objects `{ type: 'tool_use', ... }`. We collect and attach\n * them as a JSON array on `gen_ai.response.tool_calls` for downstream consumers.\n */\nfunction addToolCallsAttributes(generations: LangChainMessage[][], attrs: Record): void {\n const toolCalls: unknown[] = [];\n const flatGenerations = generations.flat();\n\n for (const gen of flatGenerations) {\n const content = gen.message?.content;\n if (Array.isArray(content)) {\n for (const item of content) {\n const t = item as { type: string };\n if (t.type === 'tool_use') toolCalls.push(t);\n }\n }\n }\n\n if (toolCalls.length > 0) {\n setIfDefined(attrs, GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, asString(toolCalls));\n }\n}\n\n/**\n * Adds token usage attributes, supporting both OpenAI (`tokenUsage`) and Anthropic (`usage`) formats.\n * - Preserve zero values (0 tokens) by avoiding truthy checks.\n * - Compute a total for Anthropic when not explicitly provided.\n * - Include cache token metrics when present.\n */\nfunction addTokenUsageAttributes(\n llmOutput: LangChainLLMResult['llmOutput'],\n attrs: Record,\n): void {\n if (!llmOutput) return;\n\n const tokenUsage = llmOutput.tokenUsage as\n | { promptTokens?: number; completionTokens?: number; totalTokens?: number }\n | undefined;\n const anthropicUsage = llmOutput.usage as\n | {\n input_tokens?: number;\n output_tokens?: number;\n cache_creation_input_tokens?: number;\n cache_read_input_tokens?: number;\n }\n | undefined;\n\n if (tokenUsage) {\n setNumberIfDefined(attrs, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, tokenUsage.promptTokens);\n setNumberIfDefined(attrs, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, tokenUsage.completionTokens);\n setNumberIfDefined(attrs, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, tokenUsage.totalTokens);\n } else if (anthropicUsage) {\n setNumberIfDefined(attrs, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, anthropicUsage.input_tokens);\n setNumberIfDefined(attrs, GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, anthropicUsage.output_tokens);\n\n // Compute total when not provided by the provider.\n const input = Number(anthropicUsage.input_tokens);\n const output = Number(anthropicUsage.output_tokens);\n const total = (Number.isNaN(input) ? 0 : input) + (Number.isNaN(output) ? 0 : output);\n if (total > 0) setNumberIfDefined(attrs, GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, total);\n\n // Extra Anthropic cache metrics (present only when caching is enabled)\n if (anthropicUsage.cache_creation_input_tokens !== undefined)\n setNumberIfDefined(\n attrs,\n GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS_ATTRIBUTE,\n anthropicUsage.cache_creation_input_tokens,\n );\n if (anthropicUsage.cache_read_input_tokens !== undefined)\n setNumberIfDefined(attrs, GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS_ATTRIBUTE, anthropicUsage.cache_read_input_tokens);\n }\n}\n\n/**\n * Extracts response-related attributes based on a `LangChainLLMResult`.\n *\n * - Records finish reasons when present on generations (e.g., OpenAI)\n * - When `recordOutputs` is true, captures textual response content and any\n * tool calls.\n * - Also propagates model name (`model_name` or `model`), response `id`, and\n * `stop_reason` (for providers that use it).\n */\nexport function extractLlmResponseAttributes(\n llmResult: LangChainLLMResult,\n recordOutputs: boolean,\n): Record | undefined {\n if (!llmResult) return;\n\n const attrs: Record = {};\n\n if (Array.isArray(llmResult.generations)) {\n const finishReasons = llmResult.generations\n .flat()\n .map(g => {\n // v1 uses generationInfo.finish_reason\n if (g.generationInfo?.finish_reason) {\n return g.generationInfo.finish_reason;\n }\n // v0.3+ uses generation_info.finish_reason\n if (g.generation_info?.finish_reason) {\n return g.generation_info.finish_reason;\n }\n return null;\n })\n .filter((r): r is string => typeof r === 'string');\n\n if (finishReasons.length > 0) {\n setIfDefined(attrs, GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, asString(finishReasons));\n }\n\n // Tool calls metadata (names, IDs) are not PII, so capture them regardless of recordOutputs\n addToolCallsAttributes(llmResult.generations as LangChainMessage[][], attrs);\n\n if (recordOutputs) {\n const texts = llmResult.generations\n .flat()\n .map(gen => gen.text ?? gen.message?.content)\n .filter(t => typeof t === 'string');\n\n if (texts.length > 0) {\n setIfDefined(attrs, GEN_AI_RESPONSE_TEXT_ATTRIBUTE, asString(texts));\n }\n }\n }\n\n addTokenUsageAttributes(llmResult.llmOutput, attrs);\n\n const llmOutput = llmResult.llmOutput;\n\n // Extract from v1 generations structure if available\n const firstGeneration = llmResult.generations?.[0]?.[0];\n const v1Message = firstGeneration?.message;\n\n // Provider model identifier: `model_name` (OpenAI-style) or `model` (others)\n // v1 stores this in message.response_metadata.model_name\n const modelName = llmOutput?.model_name ?? llmOutput?.model ?? v1Message?.response_metadata?.model_name;\n if (modelName) setIfDefined(attrs, GEN_AI_RESPONSE_MODEL_ATTRIBUTE, modelName);\n\n // Response ID: v1 stores this in message.id\n const responseId = llmOutput?.id ?? v1Message?.id;\n if (responseId) {\n setIfDefined(attrs, GEN_AI_RESPONSE_ID_ATTRIBUTE, responseId);\n }\n\n // Stop reason: v1 stores this in message.response_metadata.finish_reason\n const stopReason = llmOutput?.stop_reason ?? v1Message?.response_metadata?.finish_reason;\n if (stopReason) {\n setIfDefined(attrs, GEN_AI_RESPONSE_STOP_REASON_ATTRIBUTE, asString(stopReason));\n }\n\n return attrs;\n}\n","import { captureException } from '../../exports';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes';\nimport { SPAN_STATUS_ERROR } from '../../tracing';\nimport { startSpanManual } from '../../tracing/trace';\nimport type { Span, SpanAttributeValue } from '../../types-hoist/span';\nimport {\n GEN_AI_OPERATION_NAME_ATTRIBUTE,\n GEN_AI_REQUEST_MODEL_ATTRIBUTE,\n GEN_AI_TOOL_INPUT_ATTRIBUTE,\n GEN_AI_TOOL_NAME_ATTRIBUTE,\n GEN_AI_TOOL_OUTPUT_ATTRIBUTE,\n} from '../ai/gen-ai-attributes';\nimport { resolveAIRecordingOptions } from '../ai/utils';\nimport { LANGCHAIN_ORIGIN } from './constants';\nimport type {\n LangChainCallbackHandler,\n LangChainLLMResult,\n LangChainMessage,\n LangChainOptions,\n LangChainSerialized,\n} from './types';\nimport {\n extractChatModelRequestAttributes,\n extractLLMRequestAttributes,\n extractLlmResponseAttributes,\n getInvocationParams,\n} from './utils';\n\n/**\n * Creates a Sentry callback handler for LangChain\n * Returns a plain object that LangChain will call via duck-typing\n *\n * This is a stateful handler that tracks spans across multiple LangChain executions.\n */\nexport function createLangChainCallbackHandler(options: LangChainOptions = {}): LangChainCallbackHandler {\n const { recordInputs, recordOutputs } = resolveAIRecordingOptions(options);\n\n // Internal state - single instance tracks all spans\n const spanMap = new Map();\n\n /**\n * Exit a span and clean up\n */\n const exitSpan = (runId: string): void => {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n span.end();\n spanMap.delete(runId);\n }\n };\n\n /**\n * Handler for LLM Start\n * This handler will be called by LangChain's callback handler when an LLM event is detected.\n */\n const handler: LangChainCallbackHandler = {\n // Required LangChain BaseCallbackHandler properties\n lc_serializable: false,\n lc_namespace: ['langchain_core', 'callbacks', 'sentry'],\n lc_secrets: undefined,\n lc_attributes: undefined,\n lc_aliases: undefined,\n lc_serializable_keys: undefined,\n lc_id: ['langchain_core', 'callbacks', 'sentry'],\n lc_kwargs: {},\n name: 'SentryCallbackHandler',\n\n // BaseCallbackHandlerInput boolean flags\n ignoreLLM: false,\n ignoreChain: false,\n ignoreAgent: false,\n ignoreRetriever: false,\n ignoreCustomEvent: false,\n raiseError: false,\n awaitHandlers: true,\n\n handleLLMStart(\n llm: unknown,\n prompts: string[],\n runId: string,\n _parentRunId?: string,\n _extraParams?: Record,\n tags?: string[],\n metadata?: Record,\n _runName?: string,\n ) {\n const invocationParams = getInvocationParams(tags);\n const attributes = extractLLMRequestAttributes(\n llm as LangChainSerialized,\n prompts,\n recordInputs,\n invocationParams,\n metadata,\n );\n const modelName = attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE];\n const operationName = attributes[GEN_AI_OPERATION_NAME_ATTRIBUTE];\n\n startSpanManual(\n {\n name: `${operationName} ${modelName}`,\n op: 'gen_ai.chat',\n attributes: {\n ...attributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.chat',\n },\n },\n span => {\n spanMap.set(runId, span);\n return span;\n },\n );\n },\n\n // Chat Model Start Handler\n handleChatModelStart(\n llm: unknown,\n messages: unknown,\n runId: string,\n _parentRunId?: string,\n _extraParams?: Record,\n tags?: string[],\n metadata?: Record,\n _runName?: string,\n ) {\n const invocationParams = getInvocationParams(tags);\n const attributes = extractChatModelRequestAttributes(\n llm as LangChainSerialized,\n messages as LangChainMessage[][],\n recordInputs,\n invocationParams,\n metadata,\n );\n const modelName = attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE];\n const operationName = attributes[GEN_AI_OPERATION_NAME_ATTRIBUTE];\n\n startSpanManual(\n {\n name: `${operationName} ${modelName}`,\n op: 'gen_ai.chat',\n attributes: {\n ...attributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.chat',\n },\n },\n span => {\n spanMap.set(runId, span);\n return span;\n },\n );\n },\n\n // LLM End Handler - note: handleLLMEnd with capital LLM (used by both LLMs and chat models!)\n handleLLMEnd(\n output: unknown,\n runId: string,\n _parentRunId?: string,\n _tags?: string[],\n _extraParams?: Record,\n ) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n const attributes = extractLlmResponseAttributes(output as LangChainLLMResult, recordOutputs);\n if (attributes) {\n span.setAttributes(attributes);\n }\n exitSpan(runId);\n }\n },\n\n // LLM Error Handler - note: handleLLMError with capital LLM\n handleLLMError(error: Error, runId: string) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n exitSpan(runId);\n }\n\n captureException(error, {\n mechanism: {\n handled: false,\n type: `${LANGCHAIN_ORIGIN}.llm_error_handler`,\n },\n });\n },\n\n // Chain Start Handler\n handleChainStart(\n chain: { name?: string },\n inputs: Record,\n runId: string,\n _parentRunId?: string,\n _tags?: string[],\n _metadata?: Record,\n _runType?: string,\n runName?: string,\n ) {\n const chainName = runName || chain.name || 'unknown_chain';\n const attributes: Record = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.ai.langchain',\n 'langchain.chain.name': chainName,\n };\n\n // Add inputs if recordInputs is enabled\n if (recordInputs) {\n attributes['langchain.chain.inputs'] = JSON.stringify(inputs);\n }\n\n startSpanManual(\n {\n name: `chain ${chainName}`,\n op: 'gen_ai.invoke_agent',\n attributes: {\n ...attributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.invoke_agent',\n },\n },\n span => {\n spanMap.set(runId, span);\n return span;\n },\n );\n },\n\n // Chain End Handler\n handleChainEnd(outputs: unknown, runId: string) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n // Add outputs if recordOutputs is enabled\n if (recordOutputs) {\n span.setAttributes({\n 'langchain.chain.outputs': JSON.stringify(outputs),\n });\n }\n exitSpan(runId);\n }\n },\n\n // Chain Error Handler\n handleChainError(error: Error, runId: string) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n exitSpan(runId);\n }\n\n captureException(error, {\n mechanism: {\n handled: false,\n type: `${LANGCHAIN_ORIGIN}.chain_error_handler`,\n },\n });\n },\n\n // Tool Start Handler\n handleToolStart(tool: { name?: string }, input: string, runId: string, _parentRunId?: string) {\n const toolName = tool.name || 'unknown_tool';\n const attributes: Record = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: LANGCHAIN_ORIGIN,\n [GEN_AI_TOOL_NAME_ATTRIBUTE]: toolName,\n };\n\n // Add input if recordInputs is enabled\n if (recordInputs) {\n attributes[GEN_AI_TOOL_INPUT_ATTRIBUTE] = input;\n }\n\n startSpanManual(\n {\n name: `execute_tool ${toolName}`,\n op: 'gen_ai.execute_tool',\n attributes: {\n ...attributes,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.execute_tool',\n },\n },\n span => {\n spanMap.set(runId, span);\n return span;\n },\n );\n },\n\n // Tool End Handler\n handleToolEnd(output: unknown, runId: string) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n // Add output if recordOutputs is enabled\n if (recordOutputs) {\n span.setAttributes({\n [GEN_AI_TOOL_OUTPUT_ATTRIBUTE]: JSON.stringify(output),\n });\n }\n exitSpan(runId);\n }\n },\n\n // Tool Error Handler\n handleToolError(error: Error, runId: string) {\n const span = spanMap.get(runId);\n if (span?.isRecording()) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n exitSpan(runId);\n }\n\n captureException(error, {\n mechanism: {\n handled: false,\n type: `${LANGCHAIN_ORIGIN}.tool_error_handler`,\n },\n });\n },\n\n // LangChain BaseCallbackHandler required methods\n copy() {\n return handler;\n },\n\n toJSON() {\n return {\n lc: 1,\n type: 'not_implemented',\n id: handler.lc_id,\n };\n },\n\n toJSONNotImplemented() {\n return {\n lc: 1,\n type: 'not_implemented',\n id: handler.lc_id,\n };\n },\n };\n\n return handler;\n}\n","export const LANGGRAPH_INTEGRATION_NAME = 'LangGraph';\nexport const LANGGRAPH_ORIGIN = 'auto.ai.langgraph';\n","import type { Span } from '../../types-hoist/span';\nimport {\n GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE,\n GEN_AI_RESPONSE_MODEL_ATTRIBUTE,\n GEN_AI_RESPONSE_TEXT_ATTRIBUTE,\n GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE,\n GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE,\n GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE,\n GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE,\n} from '../ai/gen-ai-attributes';\nimport type { LangChainMessage } from '../langchain/types';\nimport { normalizeLangChainMessages } from '../langchain/utils';\nimport type { CompiledGraph, LangGraphTool } from './types';\n\n/**\n * Extract tool calls from messages\n */\nexport function extractToolCalls(messages: Array> | null): unknown[] | null {\n if (!messages || messages.length === 0) {\n return null;\n }\n\n const toolCalls: unknown[] = [];\n\n for (const message of messages) {\n if (message && typeof message === 'object') {\n const msgToolCalls = message.tool_calls;\n if (msgToolCalls && Array.isArray(msgToolCalls)) {\n toolCalls.push(...msgToolCalls);\n }\n }\n }\n\n return toolCalls.length > 0 ? toolCalls : null;\n}\n\n/**\n * Extract token usage from a message's usage_metadata or response_metadata\n * Returns token counts without setting span attributes\n */\nexport function extractTokenUsageFromMessage(message: LangChainMessage): {\n inputTokens: number;\n outputTokens: number;\n totalTokens: number;\n} {\n const msg = message as Record;\n let inputTokens = 0;\n let outputTokens = 0;\n let totalTokens = 0;\n\n // Extract from usage_metadata (newer format)\n if (msg.usage_metadata && typeof msg.usage_metadata === 'object') {\n const usage = msg.usage_metadata as Record;\n if (typeof usage.input_tokens === 'number') {\n inputTokens = usage.input_tokens;\n }\n if (typeof usage.output_tokens === 'number') {\n outputTokens = usage.output_tokens;\n }\n if (typeof usage.total_tokens === 'number') {\n totalTokens = usage.total_tokens;\n }\n return { inputTokens, outputTokens, totalTokens };\n }\n\n // Fallback: Extract from response_metadata.tokenUsage\n if (msg.response_metadata && typeof msg.response_metadata === 'object') {\n const metadata = msg.response_metadata as Record;\n if (metadata.tokenUsage && typeof metadata.tokenUsage === 'object') {\n const tokenUsage = metadata.tokenUsage as Record;\n if (typeof tokenUsage.promptTokens === 'number') {\n inputTokens = tokenUsage.promptTokens;\n }\n if (typeof tokenUsage.completionTokens === 'number') {\n outputTokens = tokenUsage.completionTokens;\n }\n if (typeof tokenUsage.totalTokens === 'number') {\n totalTokens = tokenUsage.totalTokens;\n }\n }\n }\n\n return { inputTokens, outputTokens, totalTokens };\n}\n\n/**\n * Extract model and finish reason from a message's response_metadata\n */\nexport function extractModelMetadata(span: Span, message: LangChainMessage): void {\n const msg = message as Record;\n\n if (msg.response_metadata && typeof msg.response_metadata === 'object') {\n const metadata = msg.response_metadata as Record;\n\n if (metadata.model_name && typeof metadata.model_name === 'string') {\n span.setAttribute(GEN_AI_RESPONSE_MODEL_ATTRIBUTE, metadata.model_name);\n }\n\n if (metadata.finish_reason && typeof metadata.finish_reason === 'string') {\n span.setAttribute(GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE, [metadata.finish_reason]);\n }\n }\n}\n\n/**\n * Extract tools from compiled graph structure\n *\n * Tools are stored in: compiledGraph.builder.nodes.tools.runnable.tools\n */\nexport function extractToolsFromCompiledGraph(compiledGraph: CompiledGraph): unknown[] | null {\n if (!compiledGraph.builder?.nodes?.tools?.runnable?.tools) {\n return null;\n }\n\n const tools = compiledGraph.builder?.nodes?.tools?.runnable?.tools;\n\n if (!tools || !Array.isArray(tools) || tools.length === 0) {\n return null;\n }\n\n // Extract name, description, and schema from each tool's lc_kwargs\n return tools.map((tool: LangGraphTool) => ({\n name: tool.lc_kwargs?.name,\n description: tool.lc_kwargs?.description,\n schema: tool.lc_kwargs?.schema,\n }));\n}\n\n/**\n * Set response attributes on the span\n */\nexport function setResponseAttributes(span: Span, inputMessages: LangChainMessage[] | null, result: unknown): void {\n // Extract messages from result\n const resultObj = result as { messages?: LangChainMessage[] } | undefined;\n const outputMessages = resultObj?.messages;\n\n if (!outputMessages || !Array.isArray(outputMessages)) {\n return;\n }\n\n // Get new messages (delta between input and output)\n const inputCount = inputMessages?.length ?? 0;\n const newMessages = outputMessages.length > inputCount ? outputMessages.slice(inputCount) : [];\n\n if (newMessages.length === 0) {\n return;\n }\n\n // Extract and set tool calls from new messages BEFORE normalization\n // (normalization strips tool_calls, so we need to extract them first)\n const toolCalls = extractToolCalls(newMessages as Array>);\n if (toolCalls) {\n span.setAttribute(GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, JSON.stringify(toolCalls));\n }\n\n // Normalize the new messages\n const normalizedNewMessages = normalizeLangChainMessages(newMessages);\n span.setAttribute(GEN_AI_RESPONSE_TEXT_ATTRIBUTE, JSON.stringify(normalizedNewMessages));\n\n // Accumulate token usage across all messages\n let totalInputTokens = 0;\n let totalOutputTokens = 0;\n let totalTokens = 0;\n\n // Extract metadata from messages\n for (const message of newMessages) {\n // Accumulate token usage\n const tokens = extractTokenUsageFromMessage(message);\n totalInputTokens += tokens.inputTokens;\n totalOutputTokens += tokens.outputTokens;\n totalTokens += tokens.totalTokens;\n\n // Extract model metadata (last message's metadata wins for model/finish_reason)\n extractModelMetadata(span, message);\n }\n\n // Set accumulated token usage on span\n if (totalInputTokens > 0) {\n span.setAttribute(GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE, totalInputTokens);\n }\n if (totalOutputTokens > 0) {\n span.setAttribute(GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE, totalOutputTokens);\n }\n if (totalTokens > 0) {\n span.setAttribute(GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE, totalTokens);\n }\n}\n","import { captureException } from '../../exports';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../../semanticAttributes';\nimport { SPAN_STATUS_ERROR } from '../../tracing';\nimport {\n GEN_AI_AGENT_NAME_ATTRIBUTE,\n GEN_AI_CONVERSATION_ID_ATTRIBUTE,\n GEN_AI_INPUT_MESSAGES_ATTRIBUTE,\n GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE,\n GEN_AI_INVOKE_AGENT_OPERATION_ATTRIBUTE,\n GEN_AI_OPERATION_NAME_ATTRIBUTE,\n GEN_AI_PIPELINE_NAME_ATTRIBUTE,\n GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE,\n GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE,\n} from '../ai/gen-ai-attributes';\nimport { truncateGenAiMessages } from '../ai/messageTruncation';\nimport { extractSystemInstructions, resolveAIRecordingOptions } from '../ai/utils';\nimport type { LangChainMessage } from '../langchain/types';\nimport { normalizeLangChainMessages } from '../langchain/utils';\nimport { startSpan } from '../trace';\nimport { LANGGRAPH_ORIGIN } from './constants';\nimport type { CompiledGraph, LangGraphOptions } from './types';\nimport { extractToolsFromCompiledGraph, setResponseAttributes } from './utils';\n\n/**\n * Instruments StateGraph's compile method to create spans for agent creation and invocation\n *\n * Wraps the compile() method to:\n * - Create a `gen_ai.create_agent` span when compile() is called\n * - Automatically wrap the invoke() method on the returned compiled graph with a `gen_ai.invoke_agent` span\n *\n */\nexport function instrumentStateGraphCompile(\n originalCompile: (...args: unknown[]) => CompiledGraph,\n options: LangGraphOptions,\n): (...args: unknown[]) => CompiledGraph {\n return new Proxy(originalCompile, {\n apply(target, thisArg, args: unknown[]): CompiledGraph {\n return startSpan(\n {\n op: 'gen_ai.create_agent',\n name: 'create_agent',\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: LANGGRAPH_ORIGIN,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'gen_ai.create_agent',\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'create_agent',\n },\n },\n span => {\n try {\n const compiledGraph = Reflect.apply(target, thisArg, args);\n const compileOptions = args.length > 0 ? (args[0] as Record) : {};\n\n // Extract graph name\n if (compileOptions?.name && typeof compileOptions.name === 'string') {\n span.setAttribute(GEN_AI_AGENT_NAME_ATTRIBUTE, compileOptions.name);\n span.updateName(`create_agent ${compileOptions.name}`);\n }\n\n // Instrument agent invoke method on the compiled graph\n const originalInvoke = compiledGraph.invoke;\n if (originalInvoke && typeof originalInvoke === 'function') {\n compiledGraph.invoke = instrumentCompiledGraphInvoke(\n originalInvoke.bind(compiledGraph) as (...args: unknown[]) => Promise,\n compiledGraph,\n compileOptions,\n options,\n ) as typeof originalInvoke;\n }\n\n return compiledGraph;\n } catch (error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n captureException(error, {\n mechanism: {\n handled: false,\n type: 'auto.ai.langgraph.error',\n },\n });\n throw error;\n }\n },\n );\n },\n }) as (...args: unknown[]) => CompiledGraph;\n}\n\n/**\n * Instruments CompiledGraph's invoke method to create spans for agent invocation\n *\n * Creates a `gen_ai.invoke_agent` span when invoke() is called\n */\nfunction instrumentCompiledGraphInvoke(\n originalInvoke: (...args: unknown[]) => Promise,\n graphInstance: CompiledGraph,\n compileOptions: Record,\n options: LangGraphOptions,\n): (...args: unknown[]) => Promise {\n return new Proxy(originalInvoke, {\n apply(target, thisArg, args: unknown[]): Promise {\n return startSpan(\n {\n op: 'gen_ai.invoke_agent',\n name: 'invoke_agent',\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: LANGGRAPH_ORIGIN,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: GEN_AI_INVOKE_AGENT_OPERATION_ATTRIBUTE,\n [GEN_AI_OPERATION_NAME_ATTRIBUTE]: 'invoke_agent',\n },\n },\n async span => {\n try {\n const graphName = compileOptions?.name;\n\n if (graphName && typeof graphName === 'string') {\n span.setAttribute(GEN_AI_PIPELINE_NAME_ATTRIBUTE, graphName);\n span.setAttribute(GEN_AI_AGENT_NAME_ATTRIBUTE, graphName);\n span.updateName(`invoke_agent ${graphName}`);\n }\n\n // Extract thread_id from the config (second argument)\n // LangGraph uses config.configurable.thread_id for conversation/session linking\n const config = args.length > 1 ? (args[1] as Record | undefined) : undefined;\n const configurable = config?.configurable as Record | undefined;\n const threadId = configurable?.thread_id;\n if (threadId && typeof threadId === 'string') {\n span.setAttribute(GEN_AI_CONVERSATION_ID_ATTRIBUTE, threadId);\n }\n\n // Extract available tools from the graph instance\n const tools = extractToolsFromCompiledGraph(graphInstance);\n if (tools) {\n span.setAttribute(GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE, JSON.stringify(tools));\n }\n\n // Parse input messages\n const recordInputs = options.recordInputs;\n const recordOutputs = options.recordOutputs;\n const inputMessages =\n args.length > 0 ? ((args[0] as { messages?: LangChainMessage[] } | null)?.messages ?? []) : [];\n\n if (inputMessages && recordInputs) {\n const normalizedMessages = normalizeLangChainMessages(inputMessages);\n const { systemInstructions, filteredMessages } = extractSystemInstructions(normalizedMessages);\n\n if (systemInstructions) {\n span.setAttribute(GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE, systemInstructions);\n }\n\n const truncatedMessages = truncateGenAiMessages(filteredMessages as unknown[]);\n const filteredLength = Array.isArray(filteredMessages) ? filteredMessages.length : 0;\n span.setAttributes({\n [GEN_AI_INPUT_MESSAGES_ATTRIBUTE]: JSON.stringify(truncatedMessages),\n [GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE]: filteredLength,\n });\n }\n\n // Call original invoke\n const result = await Reflect.apply(target, thisArg, args);\n\n // Set response attributes\n if (recordOutputs) {\n setResponseAttributes(span, inputMessages ?? null, result);\n }\n\n return result;\n } catch (error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n captureException(error, {\n mechanism: {\n handled: false,\n type: 'auto.ai.langgraph.error',\n },\n });\n throw error;\n }\n },\n );\n },\n }) as (...args: unknown[]) => Promise;\n}\n\n/**\n * Directly instruments a StateGraph instance to add tracing spans\n *\n * This function can be used to manually instrument LangGraph StateGraph instances\n * in environments where automatic instrumentation is not available or desired.\n *\n * @param stateGraph - The StateGraph instance to instrument\n * @param options - Optional configuration for recording inputs/outputs\n *\n * @example\n * ```typescript\n * import { instrumentLangGraph } from '@sentry/cloudflare';\n * import { StateGraph } from '@langchain/langgraph';\n *\n * const graph = new StateGraph(MessagesAnnotation)\n * .addNode('agent', mockLlm)\n * .addEdge(START, 'agent')\n * .addEdge('agent', END);\n *\n * instrumentLangGraph(graph, { recordInputs: true, recordOutputs: true });\n * const compiled = graph.compile({ name: 'my_agent' });\n * ```\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function instrumentLangGraph any }>(\n stateGraph: T,\n options?: LangGraphOptions,\n): T {\n stateGraph.compile = instrumentStateGraphCompile(stateGraph.compile, resolveAIRecordingOptions(options));\n\n return stateGraph;\n}\n","import type { SeverityLevel } from '../types-hoist/severity';\n\n/**\n * Determine a breadcrumb's log level (only `warning` or `error`) based on an HTTP status code.\n */\nexport function getBreadcrumbLogLevelFromHttpStatusCode(statusCode: number | undefined): SeverityLevel | undefined {\n // NOTE: undefined defaults to 'info' in Sentry\n if (statusCode === undefined) {\n return undefined;\n } else if (statusCode >= 400 && statusCode < 500) {\n return 'warning';\n } else if (statusCode >= 500) {\n return 'error';\n } else {\n return undefined;\n }\n}\n","import type { ConsoleLevel } from '../types-hoist/instrument';\n\n/**\n * An error emitted by Sentry SDKs and related utilities.\n * @deprecated This class is no longer used and will be removed in a future version. Use `Error` instead.\n */\nexport class SentryError extends Error {\n public logLevel: ConsoleLevel;\n\n public constructor(\n public message: string,\n logLevel: ConsoleLevel = 'warn',\n ) {\n super(message);\n\n this.logLevel = logLevel;\n }\n}\n","import { DEBUG_BUILD } from '../debug-build';\nimport { debug } from './debug-logger';\nimport { GLOBAL_OBJ } from './worldwide';\n\nconst WINDOW = GLOBAL_OBJ as unknown as Window;\n\ndeclare const EdgeRuntime: string | undefined;\n\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsErrorEvent(): boolean {\n try {\n new ErrorEvent('');\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMError(): boolean {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-expect-error It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMException(): boolean {\n try {\n new DOMException('');\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsHistory(): boolean {\n return 'history' in WINDOW && !!WINDOW.history;\n}\n\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n * @deprecated This is no longer used and will be removed in a future major version.\n */\nexport const supportsFetch = _isFetchSupported;\n\nfunction _isFetchSupported(): boolean {\n if (!('fetch' in WINDOW)) {\n return false;\n }\n\n try {\n new Headers();\n // Deno requires a valid URL so '' cannot be used as an argument\n new Request('data:,');\n new Response();\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * isNative checks if the given function is a native implementation\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isNativeFunction(func: Function): boolean {\n return func && /^function\\s+\\w+\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nexport function supportsNativeFetch(): boolean {\n if (typeof EdgeRuntime === 'string') {\n return true;\n }\n\n if (!_isFetchSupported()) {\n return false;\n }\n\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFunction(WINDOW.fetch)) {\n return true;\n }\n\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n let result = false;\n const doc = WINDOW.document;\n // eslint-disable-next-line deprecation/deprecation\n if (doc && typeof (doc.createElement as unknown) === 'function') {\n try {\n const sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow?.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFunction(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n } catch (err) {\n DEBUG_BUILD && debug.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n\n return result;\n}\n\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReportingObserver(): boolean {\n return 'ReportingObserver' in WINDOW;\n}\n\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n * @deprecated This is no longer used and will be removed in a future major version.\n */\nexport function supportsReferrerPolicy(): boolean {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n\n if (!_isFetchSupported()) {\n return false;\n }\n\n try {\n new Request('_', {\n referrerPolicy: 'origin' as ReferrerPolicy,\n });\n return true;\n } catch {\n return false;\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { getClient } from '../currentScopes';\nimport type { HandlerDataFetch } from '../types-hoist/instrument';\nimport type { WebFetchHeaders } from '../types-hoist/webfetchapi';\nimport { isError, isRequest } from '../utils/is';\nimport { addNonEnumerableProperty, fill } from '../utils/object';\nimport { supportsNativeFetch } from '../utils/supports';\nimport { timestampInSeconds } from '../utils/time';\nimport { GLOBAL_OBJ } from '../utils/worldwide';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers';\n\ntype FetchResource = string | { toString(): string } | { url: string };\n\n/**\n * Add an instrumentation handler for when a fetch request happens.\n * The handler function is called once when the request starts and once when it ends,\n * which can be identified by checking if it has an `endTimestamp`.\n *\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addFetchInstrumentationHandler(\n handler: (data: HandlerDataFetch) => void,\n skipNativeFetchCheck?: boolean,\n): void {\n const type = 'fetch';\n addHandler(type, handler);\n maybeInstrument(type, () => instrumentFetch(undefined, skipNativeFetchCheck));\n}\n\n/**\n * Add an instrumentation handler for long-lived fetch requests, like consuming server-sent events (SSE) via fetch.\n * The handler will resolve the request body and emit the actual `endTimestamp`, so that the\n * span can be updated accordingly.\n *\n * Only used internally\n * @hidden\n */\nexport function addFetchEndInstrumentationHandler(handler: (data: HandlerDataFetch) => void): void {\n const type = 'fetch-body-resolved';\n addHandler(type, handler);\n maybeInstrument(type, () => instrumentFetch(streamHandler));\n}\n\nfunction instrumentFetch(onFetchResolved?: (response: Response) => void, skipNativeFetchCheck: boolean = false): void {\n if (skipNativeFetchCheck && !supportsNativeFetch()) {\n return;\n }\n\n fill(GLOBAL_OBJ, 'fetch', function (originalFetch: () => void): () => void {\n return function (...args: any[]): void {\n // We capture the error right here and not in the Promise error callback because Safari (and probably other\n // browsers too) will wipe the stack trace up to this point, only leaving us with this file which is useless.\n\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the error, that was caused by your fetch call did not\n // have a stack trace, so the SDK backfilled the stack trace so\n // you can see which fetch call failed.\n const virtualError = new Error();\n\n const { method, url } = parseFetchArgs(args);\n const handlerData: HandlerDataFetch = {\n args,\n fetchData: {\n method,\n url,\n },\n startTimestamp: timestampInSeconds() * 1000,\n // // Adding the error to be able to fingerprint the failed fetch event in HttpClient instrumentation\n virtualError,\n headers: getHeadersFromFetchArgs(args),\n };\n\n // if there is no callback, fetch is instrumented directly\n if (!onFetchResolved) {\n triggerHandlers('fetch', {\n ...handlerData,\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalFetch.apply(GLOBAL_OBJ, args).then(\n async (response: Response) => {\n if (onFetchResolved) {\n onFetchResolved(response);\n } else {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: timestampInSeconds() * 1000,\n response,\n });\n }\n\n return response;\n },\n (error: Error) => {\n triggerHandlers('fetch', {\n ...handlerData,\n endTimestamp: timestampInSeconds() * 1000,\n error,\n });\n\n if (isError(error) && error.stack === undefined) {\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the error, that was caused by your fetch call did not\n // have a stack trace, so the SDK backfilled the stack trace so\n // you can see which fetch call failed.\n error.stack = virtualError.stack;\n addNonEnumerableProperty(error, 'framesToPop', 1);\n }\n\n // We enhance fetch error messages with hostname information based on the configuration.\n // Possible messages we handle here:\n // * \"Failed to fetch\" (chromium)\n // * \"Load failed\" (webkit)\n // * \"NetworkError when attempting to fetch resource.\" (firefox)\n const client = getClient();\n const enhanceOption = client?.getOptions().enhanceFetchErrorMessages ?? 'always';\n const shouldEnhance = enhanceOption !== false;\n\n if (\n shouldEnhance &&\n error instanceof TypeError &&\n (error.message === 'Failed to fetch' ||\n error.message === 'Load failed' ||\n error.message === 'NetworkError when attempting to fetch resource.')\n ) {\n try {\n const url = new URL(handlerData.fetchData.url);\n const hostname = url.host;\n\n if (enhanceOption === 'always') {\n // Modify the error message directly\n error.message = `${error.message} (${hostname})`;\n } else {\n // Store hostname as non-enumerable property for Sentry-only enhancement\n // This preserves the original error message for third-party packages\n addNonEnumerableProperty(error, '__sentry_fetch_url_host__', hostname);\n }\n } catch {\n // ignore it if errors happen here\n }\n }\n\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n },\n );\n };\n });\n}\n\nasync function resolveResponse(res: Response | undefined, onFinishedResolving: () => void): Promise {\n if (res?.body) {\n const body = res.body;\n const responseReader = body.getReader();\n\n // Define a maximum duration after which we just cancel\n const maxFetchDurationTimeout = setTimeout(\n () => {\n body.cancel().then(null, () => {\n // noop\n });\n },\n 90 * 1000, // 90s\n );\n\n let readingActive = true;\n while (readingActive) {\n let chunkTimeout;\n try {\n // abort reading if read op takes more than 5s\n chunkTimeout = setTimeout(() => {\n body.cancel().then(null, () => {\n // noop on error\n });\n }, 5000);\n\n // This .read() call will reject/throw when we abort due to timeouts through `body.cancel()`\n const { done } = await responseReader.read();\n\n clearTimeout(chunkTimeout);\n\n if (done) {\n onFinishedResolving();\n readingActive = false;\n }\n } catch {\n readingActive = false;\n } finally {\n clearTimeout(chunkTimeout);\n }\n }\n\n clearTimeout(maxFetchDurationTimeout);\n\n responseReader.releaseLock();\n body.cancel().then(null, () => {\n // noop on error\n });\n }\n}\n\nfunction streamHandler(response: Response): void {\n // clone response for awaiting stream\n let clonedResponseForResolving: Response;\n try {\n clonedResponseForResolving = response.clone();\n } catch {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n resolveResponse(clonedResponseForResolving, () => {\n triggerHandlers('fetch-body-resolved', {\n endTimestamp: timestampInSeconds() * 1000,\n response,\n });\n });\n}\n\nfunction hasProp(obj: unknown, prop: T): obj is Record {\n return !!obj && typeof obj === 'object' && !!(obj as Record)[prop];\n}\n\nfunction getUrlFromResource(resource: FetchResource): string {\n if (typeof resource === 'string') {\n return resource;\n }\n\n if (!resource) {\n return '';\n }\n\n if (hasProp(resource, 'url')) {\n return resource.url;\n }\n\n if (resource.toString) {\n return resource.toString();\n }\n\n return '';\n}\n\n/**\n * Parses the fetch arguments to find the used Http method and the url of the request.\n * Exported for tests only.\n */\nexport function parseFetchArgs(fetchArgs: unknown[]): { method: string; url: string } {\n if (fetchArgs.length === 0) {\n return { method: 'GET', url: '' };\n }\n\n if (fetchArgs.length === 2) {\n const [resource, options] = fetchArgs as [FetchResource, object];\n\n return {\n url: getUrlFromResource(resource),\n method: hasProp(options, 'method')\n ? String(options.method).toUpperCase()\n : // Request object as first argument\n isRequest(resource) && hasProp(resource, 'method')\n ? String(resource.method).toUpperCase()\n : 'GET',\n };\n }\n\n const arg = fetchArgs[0];\n return {\n url: getUrlFromResource(arg as FetchResource),\n method: hasProp(arg, 'method') ? String(arg.method).toUpperCase() : 'GET',\n };\n}\n\nfunction getHeadersFromFetchArgs(fetchArgs: unknown[]): WebFetchHeaders | undefined {\n const [requestArgument, optionsArgument] = fetchArgs;\n\n try {\n if (\n typeof optionsArgument === 'object' &&\n optionsArgument !== null &&\n 'headers' in optionsArgument &&\n optionsArgument.headers\n ) {\n return new Headers(optionsArgument.headers as any);\n }\n\n if (isRequest(requestArgument)) {\n return new Headers(requestArgument.headers);\n }\n } catch {\n // noop\n }\n\n return;\n}\n","/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `debug` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These flags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n\ndeclare const __SENTRY_BROWSER_BUNDLE__: boolean | undefined;\n\nexport type SdkSource = 'npm' | 'cdn' | 'loader' | 'aws-lambda-layer';\n\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nexport function isBrowserBundle(): boolean {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n\n/**\n * Get source of SDK.\n */\nexport function getSDKSource(): SdkSource {\n // This comment is used to identify this line in the CDN bundle build step and replace this with \"return 'cdn';\"\n /* __SENTRY_SDK_SOURCE__ */ return 'npm';\n}\n","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the `debug` singleton, or b) put your function elsewhere.\n */\n\nimport { isBrowserBundle } from './env';\n\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nexport function isNodeEnv(): boolean {\n // explicitly check for browser bundles as those can be optimized statically\n // by terser/rollup.\n return (\n !isBrowserBundle() &&\n Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'\n );\n}\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction dynamicRequire(mod: any, request: string): any {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @param existingModule module to use for requiring\n * @returns possibly required module\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function loadModule(moduleName: string, existingModule: any = module): T | undefined {\n let mod: T | undefined;\n\n try {\n mod = dynamicRequire(existingModule, moduleName);\n } catch {\n // no-empty\n }\n\n if (!mod) {\n try {\n const { cwd } = dynamicRequire(existingModule, 'process');\n mod = dynamicRequire(existingModule, `${cwd()}/node_modules/${moduleName}`) as T;\n } catch {\n // no-empty\n }\n }\n\n return mod;\n}\n","import { isNodeEnv } from './node';\nimport { GLOBAL_OBJ } from './worldwide';\n\n/**\n * Returns true if we are in the browser.\n */\nexport function isBrowser(): boolean {\n // eslint-disable-next-line no-restricted-globals\n return typeof window !== 'undefined' && (!isNodeEnv() || isElectronNodeRenderer());\n}\n\ntype ElectronProcess = { type?: string };\n\n// Electron renderers with nodeIntegration enabled are detected as Node.js so we specifically test for them\nfunction isElectronNodeRenderer(): boolean {\n const process = (GLOBAL_OBJ as typeof GLOBAL_OBJ & { process?: ElectronProcess }).process;\n return process?.type === 'renderer';\n}\n","/**\n * Replaces constructor functions in module exports, handling read-only properties,\n * and both default and named exports by wrapping them with the constructor.\n *\n * @param exports The module exports object to modify\n * @param exportName The name of the export to replace (e.g., 'GoogleGenAI', 'Anthropic', 'OpenAI')\n * @param wrappedConstructor The wrapped constructor function to replace the original with\n * @returns void\n */\nexport function replaceExports(\n exports: { [key: string]: unknown },\n exportName: string,\n wrappedConstructor: unknown,\n): void {\n const original = exports[exportName];\n\n if (typeof original !== 'function') {\n return;\n }\n\n // Replace the named export - handle read-only properties\n try {\n exports[exportName] = wrappedConstructor;\n } catch {\n // If direct assignment fails, override the property descriptor\n Object.defineProperty(exports, exportName, {\n value: wrappedConstructor,\n writable: true,\n configurable: true,\n enumerable: true,\n });\n }\n\n // Replace the default export if it points to the original constructor\n if (exports.default === original) {\n try {\n exports.default = wrappedConstructor;\n } catch {\n Object.defineProperty(exports, 'default', {\n value: wrappedConstructor,\n writable: true,\n configurable: true,\n enumerable: true,\n });\n }\n }\n}\n","// This code was originally forked from https://github.com/felixge/node-stack-trace\n// Since then it has been highly modified to fit our needs.\n\n// Copyright (c) 2011 Felix Geisendörfer (felix@debuggable.com)//\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions://\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.//\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nimport type { StackLineParser, StackLineParserFn } from '../types-hoist/stacktrace';\nimport { normalizeStackTracePath, UNKNOWN_FUNCTION } from './stacktrace';\n\nexport type GetModuleFn = (filename: string | undefined) => string | undefined;\n\n/**\n * Does this filename look like it's part of the app code?\n */\nexport function filenameIsInApp(filename: string, isNative: boolean = false): boolean {\n const isInternal =\n isNative ||\n (filename &&\n // It's not internal if it's an absolute linux path\n !filename.startsWith('/') &&\n // It's not internal if it's an absolute windows path\n !filename.match(/^[A-Z]:/) &&\n // It's not internal if the path is starting with a dot\n !filename.startsWith('.') &&\n // It's not internal if the frame has a protocol. In node, this is usually the case if the file got pre-processed with a bundler like webpack\n !filename.match(/^[a-zA-Z]([a-zA-Z0-9.\\-+])*:\\/\\//)); // Schema from: https://stackoverflow.com/a/3641782\n\n // in_app is all that's not an internal Node function or a module within node_modules\n // note that isNative appears to return true even for node core libraries\n // see https://github.com/getsentry/raven-node/issues/176\n\n return !isInternal && filename !== undefined && !filename.includes('node_modules/');\n}\n\n/** Node Stack line parser */\nexport function node(getModule?: GetModuleFn): StackLineParserFn {\n const FILENAME_MATCH = /^\\s*[-]{4,}$/;\n const FULL_MATCH = /at (?:async )?(?:(.+?)\\s+\\()?(?:(.+):(\\d+):(\\d+)?|([^)]+))\\)?/;\n const DATA_URI_MATCH = /at (?:async )?(.+?) \\(data:(.*?),/;\n\n return (line: string) => {\n const dataUriMatch = line.match(DATA_URI_MATCH);\n if (dataUriMatch) {\n return {\n filename: ``,\n function: dataUriMatch[1],\n };\n }\n\n const lineMatch = line.match(FULL_MATCH);\n\n if (lineMatch) {\n let object: string | undefined;\n let method: string | undefined;\n let functionName: string | undefined;\n let typeName: string | undefined;\n let methodName: string | undefined;\n\n if (lineMatch[1]) {\n functionName = lineMatch[1];\n\n let methodStart = functionName.lastIndexOf('.');\n if (functionName[methodStart - 1] === '.') {\n methodStart--;\n }\n\n if (methodStart > 0) {\n object = functionName.slice(0, methodStart);\n method = functionName.slice(methodStart + 1);\n const objectEnd = object.indexOf('.Module');\n if (objectEnd > 0) {\n functionName = functionName.slice(objectEnd + 1);\n object = object.slice(0, objectEnd);\n }\n }\n typeName = undefined;\n }\n\n if (method) {\n typeName = object;\n methodName = method;\n }\n\n if (method === '') {\n methodName = undefined;\n functionName = undefined;\n }\n\n if (functionName === undefined) {\n methodName = methodName || UNKNOWN_FUNCTION;\n functionName = typeName ? `${typeName}.${methodName}` : methodName;\n }\n\n let filename = normalizeStackTracePath(lineMatch[2]);\n const isNative = lineMatch[5] === 'native';\n\n if (!filename && lineMatch[5] && !isNative) {\n filename = lineMatch[5];\n }\n\n const maybeDecodedFilename = filename ? _safeDecodeURI(filename) : undefined;\n return {\n filename: maybeDecodedFilename ?? filename,\n module: maybeDecodedFilename && getModule?.(maybeDecodedFilename),\n function: functionName,\n lineno: _parseIntOrUndefined(lineMatch[3]),\n colno: _parseIntOrUndefined(lineMatch[4]),\n in_app: filenameIsInApp(filename || '', isNative),\n };\n }\n\n if (line.match(FILENAME_MATCH)) {\n return {\n filename: line,\n };\n }\n\n return undefined;\n };\n}\n\n/**\n * Node.js stack line parser\n *\n * This is in @sentry/core so it can be used from the Electron SDK in the browser for when `nodeIntegration == true`.\n * This allows it to be used without referencing or importing any node specific code which causes bundlers to complain\n */\nexport function nodeStackLineParser(getModule?: GetModuleFn): StackLineParser {\n return [90, node(getModule)];\n}\n\nfunction _parseIntOrUndefined(input: string | undefined): number | undefined {\n return parseInt(input || '', 10) || undefined;\n}\n\nfunction _safeDecodeURI(filename: string): string | undefined {\n try {\n return decodeURI(filename);\n } catch {\n return undefined;\n }\n}\n","import type { StackFrame } from '../types-hoist/stackframe';\nimport { filenameIsInApp } from './node-stack-trace';\nimport { UNKNOWN_FUNCTION } from './stacktrace';\n\ntype WatchdogReturn = {\n /** Resets the watchdog timer */\n poll: () => void;\n /** Enables or disables the watchdog timer */\n enabled: (state: boolean) => void;\n};\n\ntype CreateTimerImpl = () => { getTimeMs: () => number; reset: () => void };\n\n/**\n * A node.js watchdog timer\n * @param pollInterval The interval that we expect to get polled at\n * @param anrThreshold The threshold for when we consider ANR\n * @param callback The callback to call for ANR\n * @returns An object with `poll` and `enabled` functions {@link WatchdogReturn}\n */\nexport function watchdogTimer(\n createTimer: CreateTimerImpl,\n pollInterval: number,\n anrThreshold: number,\n callback: () => void,\n): WatchdogReturn {\n const timer = createTimer();\n let triggered = false;\n let enabled = true;\n\n setInterval(() => {\n const diffMs = timer.getTimeMs();\n\n if (triggered === false && diffMs > pollInterval + anrThreshold) {\n triggered = true;\n if (enabled) {\n callback();\n }\n }\n\n if (diffMs < pollInterval + anrThreshold) {\n triggered = false;\n }\n }, 20);\n\n return {\n poll: () => {\n timer.reset();\n },\n enabled: (state: boolean) => {\n enabled = state;\n },\n };\n}\n\n// types copied from inspector.d.ts\ninterface Location {\n scriptId: string;\n lineNumber: number;\n columnNumber?: number;\n}\n\ninterface CallFrame {\n functionName: string;\n location: Location;\n url: string;\n}\n\n/**\n * Converts Debugger.CallFrame to Sentry StackFrame\n */\nexport function callFrameToStackFrame(\n frame: CallFrame,\n url: string | undefined,\n getModuleFromFilename: (filename: string | undefined) => string | undefined,\n): StackFrame {\n const filename = url ? url.replace(/^file:\\/\\//, '') : undefined;\n\n // CallFrame row/col are 0 based, whereas StackFrame are 1 based\n const colno = frame.location.columnNumber ? frame.location.columnNumber + 1 : undefined;\n const lineno = frame.location.lineNumber ? frame.location.lineNumber + 1 : undefined;\n\n return {\n filename,\n module: getModuleFromFilename(filename),\n function: frame.functionName || UNKNOWN_FUNCTION,\n colno,\n lineno,\n in_app: filename ? filenameIsInApp(filename) : undefined,\n };\n}\n","/** A simple Least Recently Used map */\nexport class LRUMap {\n private readonly _cache: Map;\n\n public constructor(private readonly _maxSize: number) {\n this._cache = new Map();\n }\n\n /** Get the current size of the cache */\n public get size(): number {\n return this._cache.size;\n }\n\n /** Get an entry or undefined if it was not in the cache. Re-inserts to update the recently used order */\n public get(key: K): V | undefined {\n const value = this._cache.get(key);\n if (value === undefined) {\n return undefined;\n }\n // Remove and re-insert to update the order\n this._cache.delete(key);\n this._cache.set(key, value);\n return value;\n }\n\n /** Insert an entry and evict an older entry if we've reached maxSize */\n public set(key: K, value: V): void {\n if (this._cache.size >= this._maxSize) {\n // keys() returns an iterator in insertion order so keys().next() gives us the oldest key\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const nextKey = this._cache.keys().next().value!;\n this._cache.delete(nextKey);\n }\n this._cache.set(key, value);\n }\n\n /** Remove an entry and return the entry if it was in the cache */\n public remove(key: K): V | undefined {\n const value = this._cache.get(key);\n if (value) {\n this._cache.delete(key);\n }\n return value;\n }\n\n /** Clear all entries */\n public clear(): void {\n this._cache.clear();\n }\n\n /** Get all the keys */\n public keys(): Array {\n return Array.from(this._cache.keys());\n }\n\n /** Get all the values */\n public values(): Array {\n const values: V[] = [];\n this._cache.forEach(value => values.push(value));\n return values;\n }\n}\n","import { GLOBAL_OBJ } from './worldwide';\n\ndeclare const EdgeRuntime: string | undefined;\n\ninterface VercelRequestContextGlobal {\n get?():\n | {\n waitUntil?: (task: Promise) => void;\n }\n | undefined;\n}\n\n/**\n * Function that delays closing of a Vercel lambda until the provided promise is resolved.\n *\n * Vendored from https://www.npmjs.com/package/@vercel/functions\n */\nexport function vercelWaitUntil(task: Promise): void {\n // We only flush manually in Vercel Edge runtime\n // In Node runtime, we use process.on('SIGTERM') instead\n if (typeof EdgeRuntime !== 'string') {\n return;\n }\n const vercelRequestContextGlobal: VercelRequestContextGlobal | undefined =\n // @ts-expect-error This is not typed\n GLOBAL_OBJ[Symbol.for('@vercel/request-context')];\n\n const ctx = vercelRequestContextGlobal?.get?.();\n\n if (ctx?.waitUntil) {\n ctx.waitUntil(task);\n }\n}\n","import { flush } from '../exports';\nimport { debug } from './debug-logger';\nimport { vercelWaitUntil } from './vercelWaitUntil';\nimport { GLOBAL_OBJ } from './worldwide';\n\ntype MinimalCloudflareContext = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n waitUntil(promise: Promise): void;\n};\n\nasync function flushWithTimeout(timeout: number): Promise {\n try {\n debug.log('Flushing events...');\n await flush(timeout);\n debug.log('Done flushing events');\n } catch (e) {\n debug.log('Error while flushing events:\\n', e);\n }\n}\n\n/**\n * Flushes the event queue with a timeout in serverless environments to ensure that events are sent to Sentry before the\n * serverless function execution ends.\n *\n * The function is async, but in environments that support a `waitUntil` mechanism, it will run synchronously.\n *\n * This function is aware of the following serverless platforms:\n * - Cloudflare: If a Cloudflare context is provided, it will use `ctx.waitUntil()` to flush events (keeps the `this` context of `ctx`).\n * If a `cloudflareWaitUntil` function is provided, it will use that to flush events (looses the `this` context of `ctx`).\n * - Vercel: It detects the Vercel environment and uses Vercel's `waitUntil` function.\n * - Other Serverless (AWS Lambda, Google Cloud, etc.): It detects the environment via environment variables\n * and uses a regular `await flush()`.\n *\n * @internal This function is supposed for internal Sentry SDK usage only.\n * @hidden\n */\nexport async function flushIfServerless(\n params: // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | { timeout?: number; cloudflareWaitUntil?: (task: Promise) => void }\n | { timeout?: number; cloudflareCtx?: MinimalCloudflareContext } = {},\n): Promise {\n const { timeout = 2000 } = params;\n\n if ('cloudflareWaitUntil' in params && typeof params?.cloudflareWaitUntil === 'function') {\n params.cloudflareWaitUntil(flushWithTimeout(timeout));\n return;\n }\n\n if ('cloudflareCtx' in params && typeof params.cloudflareCtx?.waitUntil === 'function') {\n params.cloudflareCtx.waitUntil(flushWithTimeout(timeout));\n return;\n }\n\n // Note: vercelWaitUntil only does something in Vercel Edge runtime\n // In Node runtime, we use process.on('SIGTERM') instead\n // @ts-expect-error This is not typed\n if (GLOBAL_OBJ[Symbol.for('@vercel/request-context')]) {\n // Vercel has a waitUntil equivalent that works without execution context\n vercelWaitUntil(flushWithTimeout(timeout));\n return;\n }\n\n if (typeof process === 'undefined') {\n return;\n }\n\n const isServerless =\n !!process.env.FUNCTIONS_WORKER_RUNTIME || // Azure Functions\n !!process.env.LAMBDA_TASK_ROOT || // AWS Lambda\n !!process.env.K_SERVICE || // Google Cloud Run\n !!process.env.CF_PAGES || // Cloudflare Pages\n !!process.env.VERCEL ||\n !!process.env.NETLIFY;\n\n if (isServerless) {\n // Use regular flush for environments without a generic waitUntil mechanism\n await flushWithTimeout(timeout);\n }\n}\n","// Based on https://github.com/sindresorhus/escape-string-regexp but with modifications to:\n// a) reduce the size by skipping the runtime type - checking\n// b) ensure it gets down - compiled for old versions of Node(the published package only supports Node 14+).\n//\n// MIT License\n//\n// Copyright (c) Sindre Sorhus (https://sindresorhus.com)\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated\n// documentation files(the \"Software\"), to deal in the Software without restriction, including without limitation\n// the rights to use, copy, modify, merge, publish, distribute, sublicense, and / or sell copies of the Software, and\n// to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all copies or substantial portions of\n// the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO\n// THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n// IN THE SOFTWARE.\n\n/**\n * Given a string, escape characters which have meaning in the regex grammar, such that the result is safe to feed to\n * `new RegExp()`.\n *\n * @param regexString The string to escape\n * @returns An version of the string with all special regex characters escaped\n */\nexport function escapeStringForRegex(regexString: string): string {\n // escape the hyphen separately so we can also replace it with a unicode literal hyphen, to avoid the problems\n // discussed in https://github.com/sindresorhus/escape-string-regexp/issues/20.\n return regexString.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&').replace(/-/g, '\\\\x2d');\n}\n","import { parseSemver } from '@sentry/core';\nimport * as fs from 'fs';\nimport { createRequire } from 'module';\nimport * as path from 'path';\n\n/**\n * Returns the version of Next.js installed in the project, or undefined if it cannot be determined.\n */\nexport function getNextjsVersion(): string | undefined {\n const nextjsPackageJsonPath = resolveNextjsPackageJson();\n if (nextjsPackageJsonPath) {\n try {\n const nextjsPackageJson: { version: string } = JSON.parse(\n fs.readFileSync(nextjsPackageJsonPath, { encoding: 'utf-8' }),\n );\n return nextjsPackageJson.version;\n } catch {\n // noop\n }\n }\n\n return undefined;\n}\n\nfunction resolveNextjsPackageJson(): string | undefined {\n try {\n return createRequire(`${process.cwd()}/`).resolve('next/package.json');\n } catch {\n return undefined;\n }\n}\n\n/**\n * Checks if the current Next.js version supports the runAfterProductionCompile hook.\n * This hook was introduced in Next.js 15.4.1. (https://github.com/vercel/next.js/pull/77345)\n *\n * @param version - version string to check.\n * @returns true if Next.js version is 15.4.1 or higher\n */\nexport function supportsProductionCompileHook(version: string): boolean {\n const versionToCheck = version;\n if (!versionToCheck) {\n return false;\n }\n\n const { major, minor, patch } = parseSemver(versionToCheck);\n\n if (major === undefined || minor === undefined || patch === undefined) {\n return false;\n }\n\n if (major > 15) {\n return true;\n }\n\n // For major version 15, check if it's 15.4.1 or higher\n if (major === 15) {\n if (minor > 4) {\n return true;\n }\n if (minor === 4 && patch >= 1) {\n return true;\n }\n return false;\n }\n\n return false;\n}\n\n/**\n * Checks if the current Next.js version supports the `condition` field in Turbopack rules.\n * This field was introduced in Next.js 16.\n *\n * @param version - version string to check.\n * @returns true if Next.js version is 16 or higher\n */\nexport function supportsTurbopackRuleCondition(version: string): boolean {\n if (!version) {\n return false;\n }\n\n const { major } = parseSemver(version);\n\n if (major === undefined) {\n return false;\n }\n\n return major >= 16;\n}\n\n/**\n * Checks if the current Next.js version supports native debug ids for turbopack.\n * This feature was first introduced in Next.js v15.6.0-canary.36 and marked stable in Next.js v16\n *\n * @param version - version string to check.\n * @returns true if Next.js version supports native debug ids for turbopack builds\n */\nexport function supportsNativeDebugIds(version: string): boolean {\n if (!version) {\n return false;\n }\n\n const { major, minor, prerelease } = parseSemver(version);\n\n if (major === undefined || minor === undefined) {\n return false;\n }\n\n // Next.js 16+ supports native debug ids\n if (major >= 16) {\n return true;\n }\n\n // For Next.js 15, check if it's 15.6.0-canary.36+\n if (major === 15 && prerelease?.startsWith('canary.')) {\n // Any canary version 15.7+ supports native debug ids\n if (minor > 6) {\n return true;\n }\n\n // For 15.6 canary versions, check if it's canary.36 or higher\n if (minor === 6) {\n const canaryNumber = parseInt(prerelease.split('.')[1] || '0', 10);\n if (canaryNumber >= 36) {\n return true;\n }\n }\n }\n\n return false;\n}\n\n/**\n * Checks if the given Next.js version requires the `experimental.instrumentationHook` option.\n * Next.js 15.0.0 and higher (including certain RC and canary versions) no longer require this option\n * and will print a warning if it is set.\n *\n * @param version - version string to check.\n * @returns true if the version requires the instrumentationHook option to be set\n */\nexport function requiresInstrumentationHook(version: string): boolean {\n if (!version) {\n return true; // Default to requiring it if version cannot be determined\n }\n\n const { major, minor, patch, prerelease } = parseSemver(version);\n\n if (major === undefined || minor === undefined || patch === undefined) {\n return true; // Default to requiring it if parsing fails\n }\n\n // Next.js 16+ never requires the hook\n if (major >= 16) {\n return false;\n }\n\n // Next.js 14 and below always require the hook\n if (major < 15) {\n return true;\n }\n\n // At this point, we know it's Next.js 15.x.y\n // Stable releases (15.0.0+) don't require the hook\n if (!prerelease) {\n return false;\n }\n\n // Next.js 15.x.y with x > 0 or y > 0 don't require the hook\n if (minor > 0 || patch > 0) {\n return false;\n }\n\n // Check specific prerelease versions that don't require the hook\n if (prerelease.startsWith('rc.')) {\n const rcNumber = parseInt(prerelease.split('.')[1] || '0', 10);\n return rcNumber === 0; // Only rc.0 requires the hook\n }\n\n if (prerelease.startsWith('canary.')) {\n const canaryNumber = parseInt(prerelease.split('.')[1] || '0', 10);\n return canaryNumber < 124; // canary.124+ doesn't require the hook\n }\n\n // All other 15.0.0 prerelease versions (alpha, beta, etc.) require the hook\n return true;\n}\n\n/**\n * Determines which bundler is actually being used based on environment variables,\n * and CLI flags.\n *\n * @returns 'turbopack' or 'webpack'\n */\nexport function detectActiveBundler(): 'turbopack' | 'webpack' {\n const turbopackEnv = process.env.TURBOPACK;\n\n // Check if TURBOPACK env var is set to a truthy value (excluding falsy strings like 'false', '0', '')\n const isTurbopackEnabled = turbopackEnv && turbopackEnv !== 'false' && turbopackEnv !== '0';\n\n if (isTurbopackEnabled || process.argv.includes('--turbo')) {\n return 'turbopack';\n } else {\n return 'webpack';\n }\n}\n\n/**\n * Extract modules from project directory's package.json\n */\nexport function getPackageModules(projectDir: string): Record {\n try {\n const packageJson = path.join(projectDir, 'package.json');\n const packageJsonContent = fs.readFileSync(packageJson, 'utf8');\n const packageJsonObject = JSON.parse(packageJsonContent) as {\n dependencies?: Record;\n devDependencies?: Record;\n };\n\n return {\n ...packageJsonObject.dependencies,\n ...packageJsonObject.devDependencies,\n };\n } catch {\n return {};\n }\n}\n","import * as childProcess from 'child_process';\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport type { NextConfigObject, SentryBuildOptions } from '../types';\n\n/**\n * Adds Sentry-related build-time variables to `nextConfig.env`.\n *\n * Note: this mutates `userNextConfig`.\n *\n * @param userNextConfig - The user's Next.js config object\n * @param userSentryOptions - The Sentry build options passed to `withSentryConfig`\n * @param releaseName - The resolved release name, if any\n */\nexport function setUpBuildTimeVariables(\n userNextConfig: NextConfigObject,\n userSentryOptions: SentryBuildOptions,\n releaseName: string | undefined,\n): void {\n const assetPrefix = userNextConfig.assetPrefix || userNextConfig.basePath || '';\n const basePath = userNextConfig.basePath ?? '';\n\n const rewritesTunnelPath =\n userSentryOptions.tunnelRoute !== undefined &&\n userNextConfig.output !== 'export' &&\n typeof userSentryOptions.tunnelRoute === 'string'\n ? `${basePath}${userSentryOptions.tunnelRoute}`\n : undefined;\n\n const buildTimeVariables: Record = {\n // Make sure that if we have a windows path, the backslashes are interpreted as such (rather than as escape\n // characters)\n _sentryRewriteFramesDistDir: userNextConfig.distDir?.replace(/\\\\/g, '\\\\\\\\') || '.next',\n // Get the path part of `assetPrefix`, minus any trailing slash. (We use a placeholder for the origin if\n // `assetPrefix` doesn't include one. Since we only care about the path, it doesn't matter what it is.)\n _sentryRewriteFramesAssetPrefixPath: assetPrefix\n ? new URL(assetPrefix, 'http://dogs.are.great').pathname.replace(/\\/$/, '')\n : '',\n };\n\n if (userNextConfig.assetPrefix) {\n buildTimeVariables._assetsPrefix = userNextConfig.assetPrefix;\n }\n\n if (userSentryOptions._experimental?.thirdPartyOriginStackFrames) {\n buildTimeVariables._experimentalThirdPartyOriginStackFrames = 'true';\n }\n\n if (rewritesTunnelPath) {\n buildTimeVariables._sentryRewritesTunnelPath = rewritesTunnelPath;\n }\n\n if (basePath) {\n buildTimeVariables._sentryBasePath = basePath;\n }\n\n if (userNextConfig.assetPrefix) {\n buildTimeVariables._sentryAssetPrefix = userNextConfig.assetPrefix;\n }\n\n if (userSentryOptions._experimental?.thirdPartyOriginStackFrames) {\n buildTimeVariables._experimentalThirdPartyOriginStackFrames = 'true';\n }\n\n if (releaseName) {\n buildTimeVariables._sentryRelease = releaseName;\n }\n\n if (typeof userNextConfig.env === 'object') {\n userNextConfig.env = { ...buildTimeVariables, ...userNextConfig.env };\n } else if (userNextConfig.env === undefined) {\n userNextConfig.env = buildTimeVariables;\n }\n}\n\n/**\n * Returns the current git SHA (HEAD), if available.\n *\n * This is a best-effort helper and returns `undefined` if git isn't available or the cwd isn't a git repo.\n */\nexport function getGitRevision(): string | undefined {\n let gitRevision: string | undefined;\n try {\n gitRevision = childProcess\n .execSync('git rev-parse HEAD', { stdio: ['ignore', 'pipe', 'ignore'] })\n .toString()\n .trim();\n } catch {\n // noop\n }\n return gitRevision;\n}\n\n/**\n * Reads the project's `instrumentation-client.(js|ts)` file contents, if present.\n *\n * @returns The file contents, or `undefined` if the file can't be found/read\n */\nexport function getInstrumentationClientFileContents(): string | void {\n const potentialInstrumentationClientFileLocations = [\n ['src', 'instrumentation-client.ts'],\n ['src', 'instrumentation-client.js'],\n ['instrumentation-client.ts'],\n ['instrumentation-client.js'],\n ];\n\n for (const pathSegments of potentialInstrumentationClientFileLocations) {\n try {\n return fs.readFileSync(path.join(process.cwd(), ...pathSegments), 'utf-8');\n } catch {\n // noop\n }\n }\n}\n","import type { SentryBuildOptions } from '../types';\nimport { detectActiveBundler } from '../util';\n\n/**\n * Migrates deprecated top-level webpack options to the new `webpack.*` path for backward compatibility.\n * The new path takes precedence over deprecated options. This mutates the userSentryOptions object.\n */\nexport function migrateDeprecatedWebpackOptions(userSentryOptions: SentryBuildOptions): void {\n // Initialize webpack options if not present\n userSentryOptions.webpack = userSentryOptions.webpack || {};\n\n const webpack = userSentryOptions.webpack;\n\n const withDeprecatedFallback = (\n newValue: T | undefined,\n deprecatedValue: T | undefined,\n message: string,\n ): T | undefined => {\n if (deprecatedValue !== undefined) {\n // eslint-disable-next-line no-console\n console.warn(message);\n }\n\n return newValue ?? deprecatedValue;\n };\n\n const deprecatedMessage = (deprecatedPath: string, newPath: string): string => {\n const message = `[@sentry/nextjs] DEPRECATION WARNING: ${deprecatedPath} is deprecated and will be removed in a future version. Use ${newPath} instead.`;\n\n // In Turbopack builds, webpack configuration is not applied, so webpack-scoped options won't have any effect.\n if (detectActiveBundler() === 'turbopack' && newPath.startsWith('webpack.')) {\n return `${message} (Not supported with Turbopack.)`;\n }\n\n return message;\n };\n\n /* eslint-disable deprecation/deprecation */\n // Migrate each deprecated option to the new path, but only if the new path isn't already set\n webpack.autoInstrumentServerFunctions = withDeprecatedFallback(\n webpack.autoInstrumentServerFunctions,\n userSentryOptions.autoInstrumentServerFunctions,\n deprecatedMessage('autoInstrumentServerFunctions', 'webpack.autoInstrumentServerFunctions'),\n );\n\n webpack.autoInstrumentMiddleware = withDeprecatedFallback(\n webpack.autoInstrumentMiddleware,\n userSentryOptions.autoInstrumentMiddleware,\n deprecatedMessage('autoInstrumentMiddleware', 'webpack.autoInstrumentMiddleware'),\n );\n\n webpack.autoInstrumentAppDirectory = withDeprecatedFallback(\n webpack.autoInstrumentAppDirectory,\n userSentryOptions.autoInstrumentAppDirectory,\n deprecatedMessage('autoInstrumentAppDirectory', 'webpack.autoInstrumentAppDirectory'),\n );\n\n webpack.excludeServerRoutes = withDeprecatedFallback(\n webpack.excludeServerRoutes,\n userSentryOptions.excludeServerRoutes,\n deprecatedMessage('excludeServerRoutes', 'webpack.excludeServerRoutes'),\n );\n\n webpack.unstable_sentryWebpackPluginOptions = withDeprecatedFallback(\n webpack.unstable_sentryWebpackPluginOptions,\n userSentryOptions.unstable_sentryWebpackPluginOptions,\n deprecatedMessage('unstable_sentryWebpackPluginOptions', 'webpack.unstable_sentryWebpackPluginOptions'),\n );\n\n webpack.disableSentryConfig = withDeprecatedFallback(\n webpack.disableSentryConfig,\n userSentryOptions.disableSentryWebpackConfig,\n deprecatedMessage('disableSentryWebpackConfig', 'webpack.disableSentryConfig'),\n );\n\n // Handle treeshake.removeDebugLogging specially since it's nested\n if (userSentryOptions.disableLogger !== undefined) {\n webpack.treeshake = webpack.treeshake || {};\n webpack.treeshake.removeDebugLogging = withDeprecatedFallback(\n webpack.treeshake.removeDebugLogging,\n userSentryOptions.disableLogger,\n deprecatedMessage('disableLogger', 'webpack.treeshake.removeDebugLogging'),\n );\n }\n\n webpack.automaticVercelMonitors = withDeprecatedFallback(\n webpack.automaticVercelMonitors,\n userSentryOptions.automaticVercelMonitors,\n deprecatedMessage('automaticVercelMonitors', 'webpack.automaticVercelMonitors'),\n );\n\n webpack.reactComponentAnnotation = withDeprecatedFallback(\n webpack.reactComponentAnnotation,\n userSentryOptions.reactComponentAnnotation,\n deprecatedMessage('reactComponentAnnotation', 'webpack.reactComponentAnnotation'),\n );\n}\n","import type { Options as SentryBuildPluginOptions } from '@sentry/bundler-plugin-core';\nimport * as path from 'path';\nimport type { SentryBuildOptions } from './types';\n\nconst LOGGER_PREFIXES = {\n 'webpack-nodejs': '[@sentry/nextjs - Node.js]',\n 'webpack-edge': '[@sentry/nextjs - Edge]',\n 'webpack-client': '[@sentry/nextjs - Client]',\n 'after-production-compile-webpack': '[@sentry/nextjs - After Production Compile (Webpack)]',\n 'after-production-compile-turbopack': '[@sentry/nextjs - After Production Compile (Turbopack)]',\n} as const;\n\n// File patterns for source map operations\n// We use both glob patterns and directory paths for the sourcemap upload and deletion\n// -> Direct CLI invocation handles file paths better than glob patterns\n// -> Webpack/Bundler needs glob patterns as this is the format that is used by the plugin\nconst FILE_PATTERNS = {\n SERVER: {\n GLOB: 'server/**',\n PATH: 'server',\n },\n SERVERLESS: 'serverless/**',\n STATIC_CHUNKS: {\n GLOB: 'static/chunks/**',\n PATH: 'static/chunks',\n },\n STATIC_CHUNKS_PAGES: {\n GLOB: 'static/chunks/pages/**',\n PATH: 'static/chunks/pages',\n },\n STATIC_CHUNKS_APP: {\n GLOB: 'static/chunks/app/**',\n PATH: 'static/chunks/app',\n },\n MAIN_CHUNKS: 'static/chunks/main-*',\n FRAMEWORK_CHUNKS: 'static/chunks/framework-*',\n FRAMEWORK_CHUNKS_DOT: 'static/chunks/framework.*',\n POLYFILLS_CHUNKS: 'static/chunks/polyfills-*',\n WEBPACK_CHUNKS: 'static/chunks/webpack-*',\n PAGE_CLIENT_REFERENCE_MANIFEST: '**/page_client-reference-manifest.js',\n SERVER_REFERENCE_MANIFEST: '**/server-reference-manifest.js',\n NEXT_FONT_MANIFEST: '**/next-font-manifest.js',\n MIDDLEWARE_BUILD_MANIFEST: '**/middleware-build-manifest.js',\n INTERCEPTION_ROUTE_REWRITE_MANIFEST: '**/interception-route-rewrite-manifest.js',\n ROUTE_CLIENT_REFERENCE_MANIFEST: '**/route_client-reference-manifest.js',\n MIDDLEWARE_REACT_LOADABLE_MANIFEST: '**/middleware-react-loadable-manifest.js',\n} as const;\n\n// Source map file extensions to delete\nconst SOURCEMAP_EXTENSIONS = ['*.js.map', '*.mjs.map', '*.cjs.map', '*.css.map'] as const;\n\ntype BuildTool = keyof typeof LOGGER_PREFIXES;\n\n/**\n * Normalizes Windows paths to POSIX format for glob patterns\n */\nexport function normalizePathForGlob(distPath: string): string {\n return distPath.replace(/\\\\/g, '/');\n}\n\n/**\n * These functions are used to get the correct pattern for the sourcemap upload based on the build tool and the usage context\n * -> Direct CLI invocation handles file paths better than glob patterns\n */\nfunction getServerPattern({ useDirectoryPath = false }: { useDirectoryPath?: boolean }): string {\n return useDirectoryPath ? FILE_PATTERNS.SERVER.PATH : FILE_PATTERNS.SERVER.GLOB;\n}\n\nfunction getStaticChunksPattern({ useDirectoryPath = false }: { useDirectoryPath?: boolean }): string {\n return useDirectoryPath ? FILE_PATTERNS.STATIC_CHUNKS.PATH : FILE_PATTERNS.STATIC_CHUNKS.GLOB;\n}\n\nfunction getStaticChunksPagesPattern({ useDirectoryPath = false }: { useDirectoryPath?: boolean }): string {\n return useDirectoryPath ? FILE_PATTERNS.STATIC_CHUNKS_PAGES.PATH : FILE_PATTERNS.STATIC_CHUNKS_PAGES.GLOB;\n}\n\nfunction getStaticChunksAppPattern({ useDirectoryPath = false }: { useDirectoryPath?: boolean }): string {\n return useDirectoryPath ? FILE_PATTERNS.STATIC_CHUNKS_APP.PATH : FILE_PATTERNS.STATIC_CHUNKS_APP.GLOB;\n}\n\n/**\n * Creates file patterns for source map uploads based on build tool and options\n */\nfunction createSourcemapUploadAssetPatterns(\n normalizedDistPath: string,\n buildTool: BuildTool,\n widenClientFileUpload: boolean = false,\n): string[] {\n const assets: string[] = [];\n\n if (buildTool.startsWith('after-production-compile')) {\n assets.push(path.posix.join(normalizedDistPath, getServerPattern({ useDirectoryPath: true })));\n\n if (buildTool === 'after-production-compile-turbopack') {\n // In turbopack we always want to upload the full static chunks directory\n // as the build output is not split into pages|app chunks\n assets.push(path.posix.join(normalizedDistPath, getStaticChunksPattern({ useDirectoryPath: true })));\n } else {\n // Webpack client builds in after-production-compile mode\n if (widenClientFileUpload) {\n assets.push(path.posix.join(normalizedDistPath, getStaticChunksPattern({ useDirectoryPath: true })));\n } else {\n assets.push(\n path.posix.join(normalizedDistPath, getStaticChunksPagesPattern({ useDirectoryPath: true })),\n path.posix.join(normalizedDistPath, getStaticChunksAppPattern({ useDirectoryPath: true })),\n );\n }\n }\n } else {\n if (buildTool === 'webpack-nodejs' || buildTool === 'webpack-edge') {\n // Server builds\n assets.push(\n path.posix.join(normalizedDistPath, getServerPattern({ useDirectoryPath: false })),\n path.posix.join(normalizedDistPath, FILE_PATTERNS.SERVERLESS),\n );\n } else if (buildTool === 'webpack-client') {\n // Client builds\n if (widenClientFileUpload) {\n assets.push(path.posix.join(normalizedDistPath, getStaticChunksPattern({ useDirectoryPath: false })));\n } else {\n assets.push(\n path.posix.join(normalizedDistPath, getStaticChunksPagesPattern({ useDirectoryPath: false })),\n path.posix.join(normalizedDistPath, getStaticChunksAppPattern({ useDirectoryPath: false })),\n );\n }\n }\n }\n\n return assets;\n}\n\n/**\n * Creates ignore patterns for source map uploads\n */\nfunction createSourcemapUploadIgnorePattern(\n normalizedDistPath: string,\n widenClientFileUpload: boolean = false,\n): string[] {\n const ignore: string[] = [];\n\n // We only add main-* files if the user has not opted into it\n if (!widenClientFileUpload) {\n ignore.push(path.posix.join(normalizedDistPath, FILE_PATTERNS.MAIN_CHUNKS));\n }\n\n // Always ignore these patterns\n ignore.push(\n path.posix.join(normalizedDistPath, FILE_PATTERNS.FRAMEWORK_CHUNKS),\n path.posix.join(normalizedDistPath, FILE_PATTERNS.FRAMEWORK_CHUNKS_DOT),\n path.posix.join(normalizedDistPath, FILE_PATTERNS.POLYFILLS_CHUNKS),\n path.posix.join(normalizedDistPath, FILE_PATTERNS.WEBPACK_CHUNKS),\n // Next.js internal manifest files that don't have source maps\n // These files are auto-generated by Next.js and do not contain user code.\n // Ignoring them prevents \"Could not determine source map reference\" warnings.\n FILE_PATTERNS.PAGE_CLIENT_REFERENCE_MANIFEST,\n FILE_PATTERNS.SERVER_REFERENCE_MANIFEST,\n FILE_PATTERNS.NEXT_FONT_MANIFEST,\n FILE_PATTERNS.MIDDLEWARE_BUILD_MANIFEST,\n FILE_PATTERNS.INTERCEPTION_ROUTE_REWRITE_MANIFEST,\n FILE_PATTERNS.ROUTE_CLIENT_REFERENCE_MANIFEST,\n FILE_PATTERNS.MIDDLEWARE_REACT_LOADABLE_MANIFEST,\n );\n\n return ignore;\n}\n\n/**\n * Creates file patterns for deletion after source map upload\n */\nfunction createFilesToDeleteAfterUploadPattern(\n normalizedDistPath: string,\n buildTool: BuildTool,\n deleteSourcemapsAfterUpload: boolean,\n useRunAfterProductionCompileHook: boolean = false,\n): string[] | undefined {\n if (!deleteSourcemapsAfterUpload) {\n return undefined;\n }\n\n // We don't want to delete source maps for server builds as this led to errors on Vercel in the past\n // See: https://github.com/getsentry/sentry-javascript/issues/13099\n if (buildTool === 'webpack-nodejs' || buildTool === 'webpack-edge') {\n return undefined;\n }\n\n // Skip deletion for webpack client builds when using the experimental hook\n if (buildTool === 'webpack-client' && useRunAfterProductionCompileHook) {\n return undefined;\n }\n\n return SOURCEMAP_EXTENSIONS.map(ext => path.posix.join(normalizedDistPath, 'static', '**', ext));\n}\n\n/**\n * Determines if sourcemap uploads should be skipped\n */\nfunction shouldSkipSourcemapUpload(buildTool: BuildTool, useRunAfterProductionCompileHook: boolean = false): boolean {\n return useRunAfterProductionCompileHook && buildTool.startsWith('webpack');\n}\n\n/**\n * Source rewriting function for webpack sources\n */\nfunction rewriteWebpackSources(source: string): string {\n return source.replace(/^webpack:\\/\\/(?:_N_E\\/)?/, '');\n}\n\n/**\n * Creates release configuration\n */\nfunction createReleaseConfig(\n releaseName: string | undefined,\n sentryBuildOptions: SentryBuildOptions,\n): SentryBuildPluginOptions['release'] {\n if (releaseName !== undefined) {\n return {\n inject: false, // The webpack plugin's release injection breaks the `app` directory - we inject the release manually with the value injection loader instead.\n name: releaseName,\n create: sentryBuildOptions.release?.create,\n finalize: sentryBuildOptions.release?.finalize,\n dist: sentryBuildOptions.release?.dist,\n vcsRemote: sentryBuildOptions.release?.vcsRemote,\n setCommits: sentryBuildOptions.release?.setCommits,\n deploy: sentryBuildOptions.release?.deploy,\n ...sentryBuildOptions.webpack?.unstable_sentryWebpackPluginOptions?.release,\n };\n }\n\n return {\n inject: false,\n create: false,\n finalize: false,\n };\n}\n\n/**\n * Merges default ignore patterns with user-provided ignore patterns.\n * User patterns are appended to the defaults to ensure internal Next.js\n * files are always ignored while allowing users to add additional patterns.\n */\nfunction mergeIgnorePatterns(defaultPatterns: string[], userPatterns: string | string[] | undefined): string[] {\n if (!userPatterns) {\n return defaultPatterns;\n }\n\n const userPatternsArray = Array.isArray(userPatterns) ? userPatterns : [userPatterns];\n return [...defaultPatterns, ...userPatternsArray];\n}\n\n/**\n * Get Sentry Build Plugin options for both webpack and turbopack builds.\n * These options can be used in two ways:\n * 1. The options can be built in a single operation after the production build completes\n * 2. The options can be built in multiple operations, one for each webpack build\n */\nexport function getBuildPluginOptions({\n sentryBuildOptions,\n releaseName,\n distDirAbsPath,\n buildTool,\n useRunAfterProductionCompileHook,\n}: {\n sentryBuildOptions: SentryBuildOptions;\n releaseName: string | undefined;\n distDirAbsPath: string;\n buildTool: BuildTool;\n useRunAfterProductionCompileHook?: boolean; // Whether the user has opted into using the experimental hook\n}): SentryBuildPluginOptions {\n // We need to convert paths to posix because Glob patterns use `\\` to escape\n // glob characters. This clashes with Windows path separators.\n // See: https://www.npmjs.com/package/glob\n const normalizedDistDirAbsPath = normalizePathForGlob(distDirAbsPath);\n const loggerPrefix = LOGGER_PREFIXES[buildTool];\n const widenClientFileUpload = sentryBuildOptions.widenClientFileUpload ?? false;\n const deleteSourcemapsAfterUpload = sentryBuildOptions.sourcemaps?.deleteSourcemapsAfterUpload ?? false;\n\n const sourcemapUploadAssets = createSourcemapUploadAssetPatterns(\n normalizedDistDirAbsPath,\n buildTool,\n widenClientFileUpload,\n );\n\n const sourcemapUploadIgnore = createSourcemapUploadIgnorePattern(normalizedDistDirAbsPath, widenClientFileUpload);\n\n const finalIgnorePatterns = mergeIgnorePatterns(sourcemapUploadIgnore, sentryBuildOptions.sourcemaps?.ignore);\n\n const userFilesToDeleteAfterUpload = sentryBuildOptions.sourcemaps?.filesToDeleteAfterUpload;\n\n if (sentryBuildOptions.debug && userFilesToDeleteAfterUpload !== undefined) {\n // eslint-disable-next-line no-console\n console.debug(\n '[@sentry/nextjs] Skipping auto-deletion of source maps as user has provided filesToDeleteAfterUpload:',\n userFilesToDeleteAfterUpload,\n );\n }\n\n const filesToDeleteAfterUpload =\n userFilesToDeleteAfterUpload !== undefined\n ? Array.isArray(userFilesToDeleteAfterUpload)\n ? userFilesToDeleteAfterUpload\n : [userFilesToDeleteAfterUpload]\n : createFilesToDeleteAfterUploadPattern(\n normalizedDistDirAbsPath,\n buildTool,\n deleteSourcemapsAfterUpload,\n useRunAfterProductionCompileHook,\n );\n\n const skipSourcemapsUpload = shouldSkipSourcemapUpload(buildTool, useRunAfterProductionCompileHook);\n\n return {\n authToken: sentryBuildOptions.authToken,\n headers: sentryBuildOptions.headers,\n org: sentryBuildOptions.org,\n project: sentryBuildOptions.project,\n telemetry: sentryBuildOptions.telemetry,\n debug: sentryBuildOptions.debug,\n errorHandler: sentryBuildOptions.errorHandler,\n reactComponentAnnotation: buildTool.startsWith('after-production-compile')\n ? undefined\n : {\n ...sentryBuildOptions.webpack?.reactComponentAnnotation,\n ...sentryBuildOptions.webpack?.unstable_sentryWebpackPluginOptions?.reactComponentAnnotation,\n },\n silent: sentryBuildOptions.silent,\n url: sentryBuildOptions.sentryUrl,\n sourcemaps: {\n disable: skipSourcemapsUpload ? true : (sentryBuildOptions.sourcemaps?.disable ?? false),\n rewriteSources: rewriteWebpackSources,\n assets: sentryBuildOptions.sourcemaps?.assets ?? sourcemapUploadAssets,\n ignore: finalIgnorePatterns,\n filesToDeleteAfterUpload,\n ...sentryBuildOptions.webpack?.unstable_sentryWebpackPluginOptions?.sourcemaps,\n },\n release: createReleaseConfig(releaseName, sentryBuildOptions),\n bundleSizeOptimizations: {\n ...sentryBuildOptions.bundleSizeOptimizations,\n },\n _metaOptions: {\n loggerPrefixOverride: loggerPrefix,\n telemetry: {\n metaFramework: 'nextjs',\n },\n },\n ...sentryBuildOptions.webpack?.unstable_sentryWebpackPluginOptions,\n };\n}\n","import type { createSentryBuildPluginManager as createSentryBuildPluginManagerType } from '@sentry/bundler-plugin-core';\nimport { loadModule } from '@sentry/core';\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport { getBuildPluginOptions } from './getBuildPluginOptions';\nimport type { SentryBuildOptions } from './types';\n\n/**\n * This function is called by Next.js after the production build is complete.\n * It is used to upload sourcemaps to Sentry.\n */\nexport async function handleRunAfterProductionCompile(\n {\n releaseName,\n distDir,\n buildTool,\n usesNativeDebugIds,\n }: { releaseName?: string; distDir: string; buildTool: 'webpack' | 'turbopack'; usesNativeDebugIds?: boolean },\n sentryBuildOptions: SentryBuildOptions,\n): Promise {\n if (sentryBuildOptions.debug) {\n // eslint-disable-next-line no-console\n console.debug('[@sentry/nextjs] Running runAfterProductionCompile logic.');\n }\n\n const { createSentryBuildPluginManager } =\n loadModule<{ createSentryBuildPluginManager: typeof createSentryBuildPluginManagerType }>(\n '@sentry/bundler-plugin-core',\n module,\n ) ?? {};\n\n if (!createSentryBuildPluginManager) {\n // eslint-disable-next-line no-console\n console.warn(\n '[@sentry/nextjs] Could not load build manager package. Will not run runAfterProductionCompile logic.',\n );\n return;\n }\n\n const options = getBuildPluginOptions({\n sentryBuildOptions,\n releaseName,\n distDirAbsPath: distDir,\n buildTool: `after-production-compile-${buildTool}`,\n });\n\n const sentryBuildPluginManager = createSentryBuildPluginManager(options, {\n buildTool,\n loggerPrefix: '[@sentry/nextjs - After Production Compile]',\n });\n\n await sentryBuildPluginManager.telemetry.emitBundlerPluginExecutionSignal();\n await sentryBuildPluginManager.createRelease();\n\n // Skip debug ID injection if sourcemaps are disabled which are only relevant for sourcemap correlation\n if (!usesNativeDebugIds && sentryBuildOptions.sourcemaps?.disable !== true) {\n await sentryBuildPluginManager.injectDebugIds([distDir]);\n }\n\n await sentryBuildPluginManager.uploadSourcemaps([distDir], {\n // We don't want to prepare the artifacts because we injected debug ids manually before\n prepareArtifacts: false,\n });\n await sentryBuildPluginManager.deleteArtifacts();\n\n // After deleting source map files in turbopack builds, strip any remaining\n // sourceMappingURL comments from client JS files. Without this, browsers request\n // the deleted .map files, and in Next.js 16 (turbopack) those requests fall through\n // to the app router instead of returning 404, which can break middleware-dependent\n // features like Clerk auth.\n const deleteSourcemapsAfterUpload = sentryBuildOptions.sourcemaps?.deleteSourcemapsAfterUpload ?? false;\n if (deleteSourcemapsAfterUpload && buildTool === 'turbopack') {\n await stripSourceMappingURLComments(path.join(distDir, 'static'), sentryBuildOptions.debug);\n }\n}\n\nconst SOURCEMAPPING_URL_COMMENT_REGEX = /\\n?\\/\\/[#@] sourceMappingURL=[^\\n]+$/;\nconst CSS_SOURCEMAPPING_URL_COMMENT_REGEX = /\\n?\\/\\*[#@] sourceMappingURL=[^\\n]+\\*\\/$/;\n\n/**\n * Strips sourceMappingURL comments from all JS/MJS/CJS/CSS files in the given directory.\n * This prevents browsers from requesting deleted .map files.\n */\nexport async function stripSourceMappingURLComments(staticDir: string, debug?: boolean): Promise {\n let entries: string[];\n try {\n entries = await fs.promises.readdir(staticDir, { recursive: true }).then(e => e.map(f => String(f)));\n } catch {\n // Directory may not exist (e.g., no static output)\n return;\n }\n\n const filesToProcess = entries.filter(\n f => f.endsWith('.js') || f.endsWith('.mjs') || f.endsWith('.cjs') || f.endsWith('.css'),\n );\n\n const results = await Promise.all(\n filesToProcess.map(async file => {\n const filePath = path.join(staticDir, file);\n try {\n const content = await fs.promises.readFile(filePath, 'utf-8');\n\n const isCSS = file.endsWith('.css');\n const regex = isCSS ? CSS_SOURCEMAPPING_URL_COMMENT_REGEX : SOURCEMAPPING_URL_COMMENT_REGEX;\n\n const strippedContent = content.replace(regex, '');\n if (strippedContent !== content) {\n await fs.promises.writeFile(filePath, strippedContent, 'utf-8');\n return file;\n }\n } catch {\n // Skip files that can't be read/written\n }\n return undefined;\n }),\n );\n\n const strippedCount = results.filter(Boolean).length;\n\n if (debug && strippedCount > 0) {\n // eslint-disable-next-line no-console\n console.debug(\n `[@sentry/nextjs] Stripped sourceMappingURL comments from ${String(strippedCount)} file(s) to prevent requests for deleted source maps.`,\n );\n }\n}\n","import * as path from 'path';\nimport type { VercelCronsConfig } from '../../common/types';\nimport type { RouteManifest } from '../manifest/types';\nimport type { JSONValue, TurbopackMatcherWithRule } from '../types';\nimport { getPackageModules, supportsTurbopackRuleCondition } from '../util';\n\n/**\n * Generate the value injection rules for client and server in turbopack config.\n */\nexport function generateValueInjectionRules({\n routeManifest,\n nextJsVersion,\n tunnelPath,\n vercelCronsConfig,\n}: {\n routeManifest?: RouteManifest;\n nextJsVersion?: string;\n tunnelPath?: string;\n vercelCronsConfig?: VercelCronsConfig;\n}): TurbopackMatcherWithRule[] {\n const rules: TurbopackMatcherWithRule[] = [];\n const isomorphicValues: Record = {};\n let clientValues: Record = {};\n let serverValues: Record = {};\n\n if (nextJsVersion) {\n // This is used to determine version-based dev-symbolication behavior\n isomorphicValues._sentryNextJsVersion = nextJsVersion;\n }\n\n if (routeManifest) {\n clientValues._sentryRouteManifest = JSON.stringify(routeManifest);\n }\n\n // Inject tunnel route path for both client and server\n if (tunnelPath) {\n isomorphicValues._sentryRewritesTunnelPath = tunnelPath;\n }\n\n // Inject Vercel crons config for server-side cron auto-instrumentation\n if (vercelCronsConfig) {\n serverValues._sentryVercelCronsConfig = JSON.stringify(vercelCronsConfig);\n }\n // Inject server modules (matching webpack's __SENTRY_SERVER_MODULES__ behavior)\n // Use process.cwd() to get the project directory at build time\n serverValues.__SENTRY_SERVER_MODULES__ = getPackageModules(process.cwd());\n\n if (Object.keys(isomorphicValues).length > 0) {\n clientValues = { ...clientValues, ...isomorphicValues };\n serverValues = { ...serverValues, ...isomorphicValues };\n }\n\n const hasConditionSupport = nextJsVersion ? supportsTurbopackRuleCondition(nextJsVersion) : false;\n\n // Client value injection\n if (Object.keys(clientValues).length > 0) {\n rules.push({\n matcher: '**/instrumentation-client.*',\n rule: {\n // Only run on user code, not node_modules or Next.js internals\n // condition field is only supported in Next.js 16+\n ...(hasConditionSupport ? { condition: { not: 'foreign' } } : {}),\n loaders: [\n {\n loader: path.resolve(__dirname, '..', 'loaders', 'valueInjectionLoader.js'),\n options: {\n values: clientValues,\n },\n },\n ],\n },\n });\n }\n\n // Server value injection\n if (Object.keys(serverValues).length > 0) {\n rules.push({\n matcher: '**/instrumentation.*',\n rule: {\n // Only run on user code, not node_modules or Next.js internals\n // condition field is only supported in Next.js 16+\n ...(hasConditionSupport ? { condition: { not: 'foreign' } } : {}),\n loaders: [\n {\n loader: path.resolve(__dirname, '..', 'loaders', 'valueInjectionLoader.js'),\n options: {\n values: serverValues,\n },\n },\n ],\n },\n });\n }\n\n return rules;\n}\n","import { debug } from '@sentry/core';\nimport * as path from 'path';\nimport type { VercelCronsConfig } from '../../common/types';\nimport type { RouteManifest } from '../manifest/types';\nimport type { NextConfigObject, SentryBuildOptions, TurbopackMatcherWithRule, TurbopackOptions } from '../types';\nimport { supportsNativeDebugIds, supportsTurbopackRuleCondition } from '../util';\nimport { generateValueInjectionRules } from './generateValueInjectionRules';\n\n/**\n * Construct a Turbopack config object from a Next.js config object and a Turbopack options object.\n *\n * @param userNextConfig - The Next.js config object.\n * @param userSentryOptions - The Sentry build options object.\n * @param routeManifest - The route manifest object.\n * @param nextJsVersion - The Next.js version.\n * @param vercelCronsConfig - The Vercel crons configuration from vercel.json.\n * @returns The Turbopack config object.\n */\nexport function constructTurbopackConfig({\n userNextConfig,\n userSentryOptions,\n routeManifest,\n nextJsVersion,\n vercelCronsConfig,\n}: {\n userNextConfig: NextConfigObject;\n userSentryOptions?: SentryBuildOptions;\n routeManifest?: RouteManifest;\n nextJsVersion?: string;\n vercelCronsConfig?: VercelCronsConfig;\n}): TurbopackOptions {\n // If sourcemaps are disabled, we don't need to enable native debug ids as this will add build time.\n const shouldEnableNativeDebugIds =\n (supportsNativeDebugIds(nextJsVersion ?? '') && userNextConfig?.turbopack?.debugIds) ??\n userSentryOptions?.sourcemaps?.disable !== true;\n\n const newConfig: TurbopackOptions = {\n ...userNextConfig.turbopack,\n ...(shouldEnableNativeDebugIds ? { debugIds: true } : {}),\n };\n\n const tunnelPath =\n userSentryOptions?.tunnelRoute !== undefined &&\n userNextConfig.output !== 'export' &&\n typeof userSentryOptions.tunnelRoute === 'string'\n ? `${userNextConfig.basePath ?? ''}${userSentryOptions.tunnelRoute}`\n : undefined;\n\n const valueInjectionRules = generateValueInjectionRules({\n routeManifest,\n nextJsVersion,\n tunnelPath,\n vercelCronsConfig,\n });\n\n for (const { matcher, rule } of valueInjectionRules) {\n newConfig.rules = safelyAddTurbopackRule(newConfig.rules, { matcher, rule });\n }\n\n // Add module metadata injection loader for thirdPartyErrorFilterIntegration support.\n // This loader tags modules with `_sentryModuleMetadata` so the integration can tell\n // first-party code from third-party code. We intentionally do NOT use\n // `condition: { not: 'foreign' }` so that node_modules are also tagged as first-party,\n // matching the webpack plugin's BannerPlugin behavior (which injects into all chunks\n // without excluding node_modules). The injected code is wrapped in a try-catch IIFE\n // so it is safe even for node_modules with strict initialization order.\n // We only exclude Next.js build polyfills which contain non-standard syntax that causes\n // parse errors when any code is prepended (Turbopack re-parses the loader output).\n const applicationKey = userSentryOptions?._experimental?.turbopackApplicationKey;\n if (applicationKey && nextJsVersion && supportsTurbopackRuleCondition(nextJsVersion)) {\n newConfig.rules = safelyAddTurbopackRule(newConfig.rules, {\n matcher: '*.{ts,tsx,js,jsx,mjs,cjs}',\n rule: {\n condition: { not: { path: /next\\/dist\\/build\\/polyfills/ } },\n loaders: [\n {\n loader: path.resolve(__dirname, '..', 'loaders', 'moduleMetadataInjectionLoader.js'),\n options: {\n applicationKey,\n },\n },\n ],\n },\n });\n }\n\n // Add component annotation loader for react component name annotation in Turbopack builds.\n // This is only added when turbopackReactComponentAnnotation.enabled is set AND the Next.js\n // version supports the `condition` field in Turbopack rules (Next.js 16+).\n const turbopackReactComponentAnnotation = userSentryOptions?._experimental?.turbopackReactComponentAnnotation;\n if (turbopackReactComponentAnnotation?.enabled && nextJsVersion && supportsTurbopackRuleCondition(nextJsVersion)) {\n newConfig.rules = safelyAddTurbopackRule(newConfig.rules, {\n matcher: '*.{tsx,jsx}',\n rule: {\n condition: { not: 'foreign' },\n loaders: [\n {\n loader: path.resolve(__dirname, '..', 'loaders', 'componentAnnotationLoader.js'),\n options: {\n ignoredComponents: turbopackReactComponentAnnotation.ignoredComponents ?? [],\n },\n },\n ],\n },\n });\n }\n\n return newConfig;\n}\n\n/**\n * Safely add a Turbopack rule to the existing rules.\n *\n * @param existingRules - The existing rules.\n * @param matcher - The matcher for the rule.\n * @param rule - The rule to add.\n * @returns The updated rules object.\n */\nexport function safelyAddTurbopackRule(\n existingRules: TurbopackOptions['rules'],\n { matcher, rule }: TurbopackMatcherWithRule,\n): TurbopackOptions['rules'] {\n if (!existingRules) {\n return {\n [matcher]: rule,\n };\n }\n\n // If the rule already exists, we don't want to mess with it.\n if (existingRules[matcher]) {\n debug.log(\n `[@sentry/nextjs] - Turbopack rule already exists for ${matcher}. Please remove it from your Next.js config in order for Sentry to work properly.`,\n );\n return existingRules;\n }\n\n return {\n ...existingRules,\n [matcher]: rule,\n };\n}\n","/* eslint-disable complexity */\n/* eslint-disable max-lines */\n\nimport { debug, escapeStringForRegex, loadModule, parseSemver } from '@sentry/core';\nimport * as fs from 'fs';\nimport { createRequire } from 'module';\nimport * as path from 'path';\nimport type { VercelCronsConfig } from '../common/types';\nimport { getBuildPluginOptions, normalizePathForGlob } from './getBuildPluginOptions';\nimport type { RouteManifest } from './manifest/types';\n// Note: If you need to import a type from Webpack, do it in `types.ts` and export it from there. Otherwise, our\n// circular dependency check thinks this file is importing from itself. See https://github.com/pahen/madge/issues/306.\nimport type {\n BuildContext,\n EntryPropertyObject,\n IgnoreWarningsOption,\n NextConfigObject,\n SentryBuildOptions,\n WebpackConfigFunction,\n WebpackConfigObject,\n WebpackConfigObjectWithModuleRules,\n WebpackEntryProperty,\n} from './types';\nimport { getNextjsVersion, getPackageModules } from './util';\nimport type { VercelCronsConfigResult } from './withSentryConfig/getFinalConfigObjectUtils';\n\n// Next.js runs webpack 3 times, once for the client, the server, and for edge. Because we don't want to print certain\n// warnings 3 times, we keep track of them here.\nlet showedMissingGlobalErrorWarningMsg = false;\n\n/**\n * Construct the function which will be used as the nextjs config's `webpack` value.\n *\n * Sets:\n * - `devtool`, to ensure high-quality sourcemaps are generated\n * - `entry`, to include user's sentry config files (where `Sentry.init` is called) in the build\n * - `plugins`, to add SentryWebpackPlugin\n *\n * @param userNextConfig The user's existing nextjs config, as passed to `withSentryConfig`\n * @param userSentryOptions The user's SentryWebpackPlugin config, as passed to `withSentryConfig`\n * @returns The function to set as the nextjs config's `webpack` value\n */\nexport function constructWebpackConfigFunction({\n userNextConfig = {},\n userSentryOptions = {},\n releaseName,\n routeManifest,\n nextJsVersion,\n useRunAfterProductionCompileHook,\n vercelCronsConfigResult,\n}: {\n userNextConfig: NextConfigObject;\n userSentryOptions: SentryBuildOptions;\n releaseName: string | undefined;\n routeManifest: RouteManifest | undefined;\n nextJsVersion: string | undefined;\n useRunAfterProductionCompileHook: boolean | undefined;\n vercelCronsConfigResult: VercelCronsConfigResult;\n}): WebpackConfigFunction {\n // Will be called by nextjs and passed its default webpack configuration and context data about the build (whether\n // we're building server or client, whether we're in dev, what version of webpack we're using, etc). Note that\n // `incomingConfig` and `buildContext` are referred to as `config` and `options` in the nextjs docs.\n return function newWebpackFunction(\n incomingConfig: WebpackConfigObject,\n buildContext: BuildContext,\n ): WebpackConfigObject {\n const { isServer, dev: isDev, dir: projectDir } = buildContext;\n const runtime = isServer ? (buildContext.nextRuntime === 'edge' ? 'edge' : 'server') : 'client';\n // Default page extensions per https://github.com/vercel/next.js/blob/f1dbc9260d48c7995f6c52f8fbcc65f08e627992/packages/next/server/config-shared.ts#L161\n const pageExtensions = userNextConfig.pageExtensions || ['tsx', 'ts', 'jsx', 'js'];\n const dotPrefixedPageExtensions = pageExtensions.map(ext => `.${ext}`);\n const pageExtensionRegex = pageExtensions.map(escapeStringForRegex).join('|');\n const nextVersion = nextJsVersion || getNextjsVersion();\n const { major } = parseSemver(nextVersion || '');\n\n // We add `.ts` and `.js` back in because `pageExtensions` might not be relevant to the instrumentation file\n // e.g. user's setting `.mdx`. In that case we still want to default look up\n // `instrumentation.ts` and `instrumentation.js`\n const instrumentationFile = getInstrumentationFile(projectDir, dotPrefixedPageExtensions.concat(['.ts', '.js']));\n\n if (runtime !== 'client') {\n warnAboutDeprecatedConfigFiles(projectDir, instrumentationFile, runtime);\n }\n if (runtime === 'server') {\n // was added in v15 (https://github.com/vercel/next.js/pull/67539)\n if (major && major >= 15) {\n warnAboutMissingOnRequestErrorHandler(instrumentationFile);\n }\n }\n\n let rawNewConfig = { ...incomingConfig };\n\n // if user has custom webpack config (which always takes the form of a function), run it so we have actual values to\n // work with\n if ('webpack' in userNextConfig && typeof userNextConfig.webpack === 'function') {\n rawNewConfig = userNextConfig.webpack(rawNewConfig, buildContext);\n }\n\n // This mutates `rawNewConfig` in place, but also returns it in order to switch its type to one in which\n // `newConfig.module.rules` is required, so we don't have to keep asserting its existence\n const newConfig = setUpModuleRules(rawNewConfig);\n\n // Determine which cron config to use based on strategy\n // - 'spans': injected as global for span-based detection (App Router + Pages Router)\n // - 'wrapper': passed to wrapping loader for Pages Router API handler wrapping\n const { strategy: cronsStrategy, config: cronsConfig } = vercelCronsConfigResult;\n const vercelCronsConfigForGlobal = cronsStrategy === 'spans' ? cronsConfig : undefined;\n const vercelCronsConfigForWrapper = cronsStrategy === 'wrapper' ? cronsConfig : undefined;\n\n // Add a loader which will inject code that sets global values\n addValueInjectionLoader({\n newConfig,\n userNextConfig,\n userSentryOptions,\n buildContext,\n releaseName,\n routeManifest,\n nextJsVersion,\n vercelCronsConfig: vercelCronsConfigForGlobal,\n });\n\n addOtelWarningIgnoreRule(newConfig);\n\n // Add edge runtime polyfills when building for edge in dev mode\n if (major && major === 13 && runtime === 'edge' && isDev) {\n addEdgeRuntimePolyfills(newConfig, buildContext);\n }\n\n let pagesDirPath: string | undefined;\n const maybePagesDirPath = path.join(projectDir, 'pages');\n const maybeSrcPagesDirPath = path.join(projectDir, 'src', 'pages');\n if (fs.existsSync(maybePagesDirPath) && fs.lstatSync(maybePagesDirPath).isDirectory()) {\n pagesDirPath = maybePagesDirPath;\n } else if (fs.existsSync(maybeSrcPagesDirPath) && fs.lstatSync(maybeSrcPagesDirPath).isDirectory()) {\n pagesDirPath = maybeSrcPagesDirPath;\n }\n\n let appDirPath: string | undefined;\n const maybeAppDirPath = path.join(projectDir, 'app');\n const maybeSrcAppDirPath = path.join(projectDir, 'src', 'app');\n if (fs.existsSync(maybeAppDirPath) && fs.lstatSync(maybeAppDirPath).isDirectory()) {\n appDirPath = maybeAppDirPath;\n } else if (fs.existsSync(maybeSrcAppDirPath) && fs.lstatSync(maybeSrcAppDirPath).isDirectory()) {\n appDirPath = maybeSrcAppDirPath;\n }\n\n const apiRoutesPath = pagesDirPath ? path.join(pagesDirPath, 'api') : undefined;\n\n const middlewareLocationFolder = pagesDirPath\n ? path.join(pagesDirPath, '..')\n : appDirPath\n ? path.join(appDirPath, '..')\n : projectDir;\n\n const staticWrappingLoaderOptions = {\n appDir: appDirPath,\n pagesDir: pagesDirPath,\n pageExtensionRegex,\n excludeServerRoutes: userSentryOptions.webpack?.excludeServerRoutes,\n nextjsRequestAsyncStorageModulePath: getRequestAsyncStorageModuleLocation(\n projectDir,\n rawNewConfig.resolve?.modules,\n ),\n isDev,\n };\n\n const normalizeLoaderResourcePath = (resourcePath: string): string => {\n // `resourcePath` may be an absolute path or a path relative to the context of the webpack config\n let absoluteResourcePath: string;\n if (path.isAbsolute(resourcePath)) {\n absoluteResourcePath = resourcePath;\n } else {\n absoluteResourcePath = path.join(projectDir, resourcePath);\n }\n\n return path.normalize(absoluteResourcePath);\n };\n\n const isPageResource = (resourcePath: string): boolean => {\n const normalizedAbsoluteResourcePath = normalizeLoaderResourcePath(resourcePath);\n return (\n pagesDirPath !== undefined &&\n normalizedAbsoluteResourcePath.startsWith(pagesDirPath + path.sep) &&\n !normalizedAbsoluteResourcePath.startsWith(apiRoutesPath + path.sep) &&\n dotPrefixedPageExtensions.some(ext => normalizedAbsoluteResourcePath.endsWith(ext))\n );\n };\n\n const isApiRouteResource = (resourcePath: string): boolean => {\n const normalizedAbsoluteResourcePath = normalizeLoaderResourcePath(resourcePath);\n return (\n normalizedAbsoluteResourcePath.startsWith(apiRoutesPath + path.sep) &&\n dotPrefixedPageExtensions.some(ext => normalizedAbsoluteResourcePath.endsWith(ext))\n );\n };\n\n const possibleMiddlewareLocations = pageExtensions.flatMap(middlewareFileEnding => {\n return [\n path.join(middlewareLocationFolder, `middleware.${middlewareFileEnding}`),\n path.join(middlewareLocationFolder, `proxy.${middlewareFileEnding}`),\n ];\n });\n const isMiddlewareResource = (resourcePath: string): boolean => {\n const normalizedAbsoluteResourcePath = normalizeLoaderResourcePath(resourcePath);\n return possibleMiddlewareLocations.includes(normalizedAbsoluteResourcePath);\n };\n\n const isServerComponentResource = (resourcePath: string): boolean => {\n const normalizedAbsoluteResourcePath = normalizeLoaderResourcePath(resourcePath);\n\n // \".js, .jsx, or .tsx file extensions can be used for Pages\"\n // https://beta.nextjs.org/docs/routing/pages-and-layouts#pages:~:text=.js%2C%20.jsx%2C%20or%20.tsx%20file%20extensions%20can%20be%20used%20for%20Pages.\n return (\n appDirPath !== undefined &&\n normalizedAbsoluteResourcePath.startsWith(appDirPath + path.sep) &&\n !!normalizedAbsoluteResourcePath.match(\n // oxlint-disable-next-line sdk/no-regexp-constructor\n new RegExp(`[\\\\\\\\/](page|layout|loading|head|not-found)\\\\.(${pageExtensionRegex})$`),\n )\n );\n };\n\n const isRouteHandlerResource = (resourcePath: string): boolean => {\n const normalizedAbsoluteResourcePath = normalizeLoaderResourcePath(resourcePath);\n return (\n appDirPath !== undefined &&\n normalizedAbsoluteResourcePath.startsWith(appDirPath + path.sep) &&\n !!normalizedAbsoluteResourcePath.match(\n // oxlint-disable-next-line sdk/no-regexp-constructor\n new RegExp(`[\\\\\\\\/]route\\\\.(${pageExtensionRegex})$`),\n )\n );\n };\n\n if (isServer && userSentryOptions.webpack?.autoInstrumentServerFunctions !== false) {\n // It is very important that we insert our loaders at the beginning of the array because we expect any sort of transformations/transpilations (e.g. TS -> JS) to already have happened.\n\n // Wrap pages\n newConfig.module.rules.unshift({\n test: isPageResource,\n use: [\n {\n loader: path.resolve(__dirname, 'loaders', 'wrappingLoader.js'),\n options: {\n ...staticWrappingLoaderOptions,\n wrappingTargetKind: 'page',\n },\n },\n ],\n });\n\n // Wrap api routes\n newConfig.module.rules.unshift({\n test: isApiRouteResource,\n use: [\n {\n loader: path.resolve(__dirname, 'loaders', 'wrappingLoader.js'),\n options: {\n ...staticWrappingLoaderOptions,\n vercelCronsConfig: vercelCronsConfigForWrapper,\n wrappingTargetKind: 'api-route',\n },\n },\n ],\n });\n\n // Wrap middleware\n const canWrapStandaloneMiddleware = userNextConfig.output !== 'standalone' || !major || major < 16;\n if ((userSentryOptions.webpack?.autoInstrumentMiddleware ?? true) && canWrapStandaloneMiddleware) {\n newConfig.module.rules.unshift({\n test: isMiddlewareResource,\n use: [\n {\n loader: path.resolve(__dirname, 'loaders', 'wrappingLoader.js'),\n options: {\n ...staticWrappingLoaderOptions,\n wrappingTargetKind: 'middleware',\n },\n },\n ],\n });\n }\n }\n\n if (isServer && userSentryOptions.webpack?.autoInstrumentAppDirectory !== false) {\n // Wrap server components\n newConfig.module.rules.unshift({\n test: isServerComponentResource,\n use: [\n {\n loader: path.resolve(__dirname, 'loaders', 'wrappingLoader.js'),\n options: {\n ...staticWrappingLoaderOptions,\n wrappingTargetKind: 'server-component',\n },\n },\n ],\n });\n\n // Wrap route handlers\n newConfig.module.rules.unshift({\n test: isRouteHandlerResource,\n use: [\n {\n loader: path.resolve(__dirname, 'loaders', 'wrappingLoader.js'),\n options: {\n ...staticWrappingLoaderOptions,\n wrappingTargetKind: 'route-handler',\n },\n },\n ],\n });\n }\n\n if (appDirPath) {\n const hasGlobalErrorFile = pageExtensions\n .map(extension => `global-error.${extension}`)\n .some(globalErrorFile => fs.existsSync(path.join(appDirPath, globalErrorFile)));\n\n if (\n !hasGlobalErrorFile &&\n !showedMissingGlobalErrorWarningMsg &&\n !process.env.SENTRY_SUPPRESS_GLOBAL_ERROR_HANDLER_FILE_WARNING\n ) {\n // eslint-disable-next-line no-console\n console.log(\n \"[@sentry/nextjs] It seems like you don't have a global error handler set up. It is recommended that you add a 'global-error.js' file with Sentry instrumentation so that React rendering errors are reported to Sentry. Read more: https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/#react-render-errors-in-app-router (you can suppress this warning by setting SENTRY_SUPPRESS_GLOBAL_ERROR_HANDLER_FILE_WARNING=1 as environment variable)\",\n );\n showedMissingGlobalErrorWarningMsg = true;\n }\n }\n\n if (!isServer) {\n // Tell webpack to inject the client config files (containing the client-side `Sentry.init()` call) into the appropriate output\n // bundles. Store a separate reference to the original `entry` value to avoid an infinite loop. (If we don't do\n // this, we'll have a statement of the form `x.y = () => f(x.y)`, where one of the things `f` does is call `x.y`.\n // Since we're setting `x.y` to be a callback (which, by definition, won't run until some time later), by the time\n // the function runs (causing `f` to run, causing `x.y` to run), `x.y` will point to the callback itself, rather\n // than its original value. So calling it will call the callback which will call `f` which will call `x.y` which\n // will call the callback which will call `f` which will call `x.y`... and on and on. Theoretically this could also\n // be fixed by using `bind`, but this is way simpler.)\n const origEntryProperty = newConfig.entry;\n newConfig.entry = async () => addSentryToClientEntryProperty(origEntryProperty, buildContext);\n\n const clientSentryConfigFileName = getClientSentryConfigFile(projectDir);\n if (clientSentryConfigFileName) {\n // eslint-disable-next-line no-console\n console.warn(\n `[@sentry/nextjs] DEPRECATION WARNING: It is recommended renaming your \\`${clientSentryConfigFileName}\\` file, or moving its content to \\`instrumentation-client.ts\\`. When using Turbopack \\`${clientSentryConfigFileName}\\` will no longer work. Read more about the \\`instrumentation-client.ts\\` file: https://nextjs.org/docs/app/api-reference/file-conventions/instrumentation-client`,\n );\n }\n }\n\n const isStaticExport = userNextConfig?.output === 'export';\n\n // We don't want to do any webpack plugin stuff OR any source maps stuff in dev mode or for the server on static-only builds.\n // Symbolication for dev-mode errors is done elsewhere.\n if (!(isDev || (isStaticExport && isServer))) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const { sentryWebpackPlugin } = loadModule<{ sentryWebpackPlugin: any }>('@sentry/webpack-plugin', module) ?? {};\n\n if (sentryWebpackPlugin) {\n if (!userSentryOptions.sourcemaps?.disable) {\n // Source maps can be configured in 3 ways:\n // 1. (next config): productionBrowserSourceMaps\n // 2. (next config): experimental.serverSourceMaps\n // 3. custom webpack configuration\n //\n // We only update this if no explicit value is set\n // (Next.js defaults to `false`: https://github.com/vercel/next.js/blob/5f4f96c133bd6b10954812cc2fef6af085b82aa5/packages/next/src/build/webpack/config/blocks/base.ts#L61)\n if (!newConfig.devtool) {\n debug.log(`[@sentry/nextjs] Automatically enabling source map generation for ${runtime} build.`);\n // `hidden-source-map` produces the same sourcemaps as `source-map`, but doesn't include the `sourceMappingURL`\n // comment at the bottom. For folks who aren't publicly hosting their sourcemaps, this is helpful because then\n // the browser won't look for them and throw errors into the console when it can't find them. Because this is a\n // front-end-only problem, and because `sentry-cli` handles sourcemaps more reliably with the comment than\n // without, the option to use `hidden-source-map` only applies to the client-side build.\n if (isServer) {\n newConfig.devtool = 'source-map';\n } else {\n newConfig.devtool = 'hidden-source-map';\n }\n }\n\n // enable source map deletion if not explicitly disabled\n if (!isServer && userSentryOptions.sourcemaps?.deleteSourcemapsAfterUpload === undefined) {\n debug.warn(\n '[@sentry/nextjs] Source maps will be automatically deleted after being uploaded to Sentry. If you want to keep the source maps, set the `sourcemaps.deleteSourcemapsAfterUpload` option to false in `withSentryConfig()`. If you do not want to generate and upload sourcemaps at all, set the `sourcemaps.disable` option to true.',\n );\n userSentryOptions.sourcemaps = {\n ...userSentryOptions.sourcemaps,\n deleteSourcemapsAfterUpload: true,\n };\n }\n }\n\n newConfig.plugins = newConfig.plugins || [];\n const { config: userNextConfig, dir, nextRuntime } = buildContext;\n const buildTool = isServer ? (nextRuntime === 'edge' ? 'webpack-edge' : 'webpack-nodejs') : 'webpack-client';\n const projectDir = normalizePathForGlob(dir);\n const distDir = normalizePathForGlob((userNextConfig as NextConfigObject).distDir ?? '.next');\n const distDirAbsPath = path.posix.join(projectDir, distDir);\n\n const sentryWebpackPluginInstance = sentryWebpackPlugin(\n getBuildPluginOptions({\n sentryBuildOptions: userSentryOptions,\n releaseName,\n distDirAbsPath,\n buildTool,\n useRunAfterProductionCompileHook,\n }),\n );\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n sentryWebpackPluginInstance._name = 'sentry-webpack-plugin'; // For tests and debugging. Serves no other purpose.\n newConfig.plugins.push(sentryWebpackPluginInstance);\n }\n }\n\n if (userSentryOptions.webpack?.treeshake) {\n setupTreeshakingFromConfig(userSentryOptions, newConfig, buildContext);\n }\n\n // We inject a map of dependencies that the nextjs app has, as we cannot reliably extract them at runtime, sadly\n newConfig.plugins = newConfig.plugins || [];\n newConfig.plugins.push(\n new buildContext.webpack.DefinePlugin({\n __SENTRY_SERVER_MODULES__: JSON.stringify(getPackageModules(projectDir)),\n }),\n );\n\n return newConfig;\n };\n}\n\n/**\n * Modify the webpack `entry` property so that the code in `sentry.client.config.js` is\n * included in the the necessary bundles.\n *\n * @param currentEntryProperty The value of the property before Sentry code has been injected\n * @param buildContext Object passed by nextjs containing metadata about the build\n * @returns The value which the new `entry` property (which will be a function) will return (TODO: this should return\n * the function, rather than the function's return value)\n */\nasync function addSentryToClientEntryProperty(\n currentEntryProperty: WebpackEntryProperty,\n buildContext: BuildContext,\n): Promise {\n // The `entry` entry in a webpack config can be a string, array of strings, object, or function. By default, nextjs\n // sets it to an async function which returns the promise of an object of string arrays. Because we don't know whether\n // someone else has come along before us and changed that, we need to check a few things along the way. The one thing\n // we know is that it won't have gotten *simpler* in form, so we only need to worry about the object and function\n // options. See https://webpack.js.org/configuration/entry-context/#entry.\n\n const { dir: projectDir, dev: isDevMode } = buildContext;\n\n const newEntryProperty =\n typeof currentEntryProperty === 'function' ? await currentEntryProperty() : { ...currentEntryProperty };\n\n const clientSentryConfigFileName = getClientSentryConfigFile(projectDir);\n const instrumentationClientFileName = getInstrumentationClientFile(projectDir);\n\n const filesToInject = [];\n if (clientSentryConfigFileName) {\n // we need to turn the filename into a path so webpack can find it\n filesToInject.push(`./${clientSentryConfigFileName}`);\n }\n if (instrumentationClientFileName) {\n // we need to turn the filename into a path so webpack can find it\n filesToInject.push(`./${instrumentationClientFileName}`);\n }\n\n // inject into all entry points which might contain user's code\n for (const entryPointName in newEntryProperty) {\n if (\n entryPointName === 'pages/_app' ||\n // entrypoint for `/app` pages\n entryPointName === 'main-app'\n ) {\n addFilesToWebpackEntryPoint(newEntryProperty, entryPointName, filesToInject, isDevMode);\n }\n }\n\n return newEntryProperty;\n}\n\n/**\n * Gets the content of the user's instrumentation file\n */\nfunction getInstrumentationFile(projectDir: string, dotPrefixedExtensions: string[]): string | null {\n const paths = dotPrefixedExtensions.flatMap(extension => [\n ['src', `instrumentation${extension}`],\n [`instrumentation${extension}`],\n ]);\n\n for (const pathSegments of paths) {\n try {\n return fs.readFileSync(path.resolve(projectDir, ...pathSegments), { encoding: 'utf-8' });\n } catch {\n // no-op\n }\n }\n\n return null;\n}\n\n/**\n * Make sure the instrumentation file has a `onRequestError` Handler\n */\nfunction warnAboutMissingOnRequestErrorHandler(instrumentationFile: string | null): void {\n if (!instrumentationFile) {\n if (!process.env.SENTRY_SUPPRESS_INSTRUMENTATION_FILE_WARNING) {\n // eslint-disable-next-line no-console\n console.warn(\n '[@sentry/nextjs] Could not find a Next.js instrumentation file. This indicates an incomplete configuration of the Sentry SDK. An instrumentation file is required for the Sentry SDK to be initialized on the server: https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/#create-initialization-config-files (you can suppress this warning by setting SENTRY_SUPPRESS_INSTRUMENTATION_FILE_WARNING=1 as environment variable)',\n );\n }\n return;\n }\n\n if (!instrumentationFile.includes('onRequestError')) {\n // eslint-disable-next-line no-console\n console.warn(\n '[@sentry/nextjs] Could not find `onRequestError` hook in instrumentation file. This indicates outdated configuration of the Sentry SDK. Use `Sentry.captureRequestError` to instrument the `onRequestError` hook: https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/#errors-from-nested-react-server-components',\n );\n }\n}\n\n/**\n * Searches for old `sentry.(server|edge).config.ts` files and Next.js instrumentation hooks and warns if there are \"old\"\n * config files and no signs of them inside the instrumentation hook.\n *\n * @param projectDir The root directory of the project, where config files would be located\n * @param platform Either \"server\" or \"edge\", so that we know which file to look for\n */\nfunction warnAboutDeprecatedConfigFiles(\n projectDir: string,\n instrumentationFile: string | null,\n platform: 'server' | 'edge',\n): void {\n const hasInstrumentationHookWithIndicationsOfSentry =\n instrumentationFile &&\n (instrumentationFile.includes('@sentry/') ||\n instrumentationFile.match(/sentry\\.(server|edge)\\.config(\\.(ts|js))?/));\n\n if (hasInstrumentationHookWithIndicationsOfSentry) {\n return;\n }\n\n for (const filename of [`sentry.${platform}.config.ts`, `sentry.${platform}.config.js`]) {\n if (fs.existsSync(path.resolve(projectDir, filename))) {\n // eslint-disable-next-line no-console\n console.warn(\n `[@sentry/nextjs] It appears you've configured a \\`${filename}\\` file. Please ensure to put this file's content into the \\`register()\\` function of a Next.js instrumentation file instead. To ensure correct functionality of the SDK, \\`Sentry.init\\` must be called inside of an instrumentation file. Learn more about setting up an instrumentation file in Next.js: https://nextjs.org/docs/app/building-your-application/optimizing/instrumentation. You can safely delete the \\`${filename}\\` file afterward.`,\n );\n }\n }\n}\n\n/**\n * Searches for a `sentry.client.config.ts|js` file and returns its file name if it finds one. (ts being prioritized)\n *\n * @param projectDir The root directory of the project, where config files would be located\n */\nfunction getClientSentryConfigFile(projectDir: string): string | void {\n const possibilities = ['sentry.client.config.ts', 'sentry.client.config.js'];\n\n for (const filename of possibilities) {\n if (fs.existsSync(path.resolve(projectDir, filename))) {\n return filename;\n }\n }\n}\n\n/**\n * Searches for a `instrumentation-client.ts|js` file and returns its file name if it finds one. (ts being prioritized)\n *\n * @param projectDir The root directory of the project, where config files would be located\n */\nfunction getInstrumentationClientFile(projectDir: string): string | void {\n const possibilities = [\n ['src', 'instrumentation-client.js'],\n ['src', 'instrumentation-client.ts'],\n ['instrumentation-client.js'],\n ['instrumentation-client.ts'],\n ];\n\n for (const pathParts of possibilities) {\n if (fs.existsSync(path.resolve(projectDir, ...pathParts))) {\n return path.join(...pathParts);\n }\n }\n}\n\n/**\n * Add files to a specific element of the given `entry` webpack config property.\n *\n * @param entryProperty The existing `entry` config object\n * @param entryPointName The key where the file should be injected\n * @param filesToInsert An array of paths to the injected files\n */\nfunction addFilesToWebpackEntryPoint(\n entryProperty: EntryPropertyObject,\n entryPointName: string,\n filesToInsert: string[],\n isDevMode: boolean,\n): void {\n // BIG FAT NOTE: Order of insertion seems to matter here. If we insert the new files before the `currentEntrypoint`s,\n // the Next.js dev server breaks. Because we generally still want the SDK to be initialized as early as possible we\n // still keep it at the start of the entrypoints if we are not in dev mode.\n\n // can be a string, array of strings, or object whose `import` property is one of those two\n const currentEntryPoint = entryProperty[entryPointName];\n let newEntryPoint = currentEntryPoint;\n\n if (typeof currentEntryPoint === 'string' || Array.isArray(currentEntryPoint)) {\n newEntryPoint = Array.isArray(currentEntryPoint) ? currentEntryPoint : [currentEntryPoint];\n if (newEntryPoint.some(entry => filesToInsert.includes(entry))) {\n return;\n }\n\n if (isDevMode) {\n // Inserting at beginning breaks dev mode so we insert at the end\n newEntryPoint.push(...filesToInsert);\n } else {\n // In other modes we insert at the beginning so that the SDK initializes as early as possible\n newEntryPoint.unshift(...filesToInsert);\n }\n }\n // descriptor object (webpack 5+)\n else if (typeof currentEntryPoint === 'object' && 'import' in currentEntryPoint) {\n const currentImportValue = currentEntryPoint.import;\n const newImportValue = Array.isArray(currentImportValue) ? currentImportValue : [currentImportValue];\n if (newImportValue.some(entry => filesToInsert.includes(entry))) {\n return;\n }\n\n if (isDevMode) {\n // Inserting at beginning breaks dev mode so we insert at the end\n newImportValue.push(...filesToInsert);\n } else {\n // In other modes we insert at the beginning so that the SDK initializes as early as possible\n newImportValue.unshift(...filesToInsert);\n }\n\n newEntryPoint = {\n ...currentEntryPoint,\n import: newImportValue,\n };\n }\n // malformed entry point (use `console.error` rather than `debug.error` because it will always be printed, regardless\n // of SDK settings)\n else {\n // eslint-disable-next-line no-console\n console.error(\n 'Sentry Logger [Error]:',\n `Could not inject SDK initialization code into entry point ${entryPointName}, as its current value is not in a recognized format.\\n`,\n 'Expected: string | Array | { [key:string]: any, import: string | Array }\\n',\n `Got: ${currentEntryPoint}`,\n );\n }\n\n if (newEntryPoint) {\n entryProperty[entryPointName] = newEntryPoint;\n }\n}\n\n/**\n * Ensure that `newConfig.module.rules` exists. Modifies the given config in place but also returns it in order to\n * change its type.\n *\n * @param newConfig A webpack config object which may or may not contain `module` and `module.rules`\n * @returns The same object, with an empty `module.rules` array added if necessary\n */\nfunction setUpModuleRules(newConfig: WebpackConfigObject): WebpackConfigObjectWithModuleRules {\n newConfig.module = {\n ...newConfig.module,\n rules: [...(newConfig.module?.rules || [])],\n };\n // Surprising that we have to assert the type here, since we've demonstrably guaranteed the existence of\n // `newConfig.module.rules` just above, but ¯\\_(ツ)_/¯\n return newConfig as WebpackConfigObjectWithModuleRules;\n}\n\n/**\n * Adds loaders to inject values on the global object based on user configuration.\n */\n// TODO: Remove this loader and replace it with a nextConfig.env (https://web.archive.org/web/20240917153554/https://nextjs.org/docs/app/api-reference/next-config-js/env) or define based (https://github.com/vercel/next.js/discussions/71476) approach.\n// In order to remove this loader though we need to make sure the minimum supported Next.js version includes this PR (https://github.com/vercel/next.js/pull/61194), otherwise the nextConfig.env based approach will not work, as our SDK code is not processed by Next.js.\nfunction addValueInjectionLoader({\n newConfig,\n userNextConfig,\n userSentryOptions,\n buildContext,\n releaseName,\n routeManifest,\n nextJsVersion,\n vercelCronsConfig,\n}: {\n newConfig: WebpackConfigObjectWithModuleRules;\n userNextConfig: NextConfigObject;\n userSentryOptions: SentryBuildOptions;\n buildContext: BuildContext;\n releaseName: string | undefined;\n routeManifest: RouteManifest | undefined;\n nextJsVersion: string | undefined;\n vercelCronsConfig: VercelCronsConfig;\n}): void {\n const assetPrefix = userNextConfig.assetPrefix || userNextConfig.basePath || '';\n\n // Check if release creation is disabled to prevent injection that breaks build determinism\n const shouldCreateRelease = userSentryOptions.release?.create !== false;\n const releaseToInject = releaseName && shouldCreateRelease ? releaseName : undefined;\n\n const isomorphicValues = {\n // `rewritesTunnel` set by the user in Next.js config\n _sentryRewritesTunnelPath:\n userSentryOptions.tunnelRoute !== undefined &&\n userNextConfig.output !== 'export' &&\n typeof userSentryOptions.tunnelRoute === 'string'\n ? `${userNextConfig.basePath ?? ''}${userSentryOptions.tunnelRoute}`\n : undefined,\n\n // The webpack plugin's release injection breaks the `app` directory so we inject the release manually here instead.\n // Having a release defined in dev-mode spams releases in Sentry so we only set one in non-dev mode\n // Only inject if release creation is not explicitly disabled (to maintain build determinism)\n SENTRY_RELEASE: releaseToInject && !buildContext.dev ? { id: releaseToInject } : undefined,\n _sentryBasePath: buildContext.dev ? userNextConfig.basePath : undefined,\n // This is used to determine version-based dev-symbolication behavior\n _sentryNextJsVersion: nextJsVersion,\n };\n\n const serverValues = {\n ...isomorphicValues,\n // Make sure that if we have a windows path, the backslashes are interpreted as such (rather than as escape\n // characters)\n _sentryRewriteFramesDistDir: userNextConfig.distDir?.replace(/\\\\/g, '\\\\\\\\') || '.next',\n // Inject Vercel crons config for server-side cron auto-instrumentation\n _sentryVercelCronsConfig: vercelCronsConfig ? JSON.stringify(vercelCronsConfig) : undefined,\n };\n\n const clientValues = {\n ...isomorphicValues,\n // Get the path part of `assetPrefix`, minus any trailing slash. (We use a placeholder for the origin if\n // `assetPrefix` doesn't include one. Since we only care about the path, it doesn't matter what it is.)\n _sentryRewriteFramesAssetPrefixPath: assetPrefix\n ? new URL(assetPrefix, 'http://dogs.are.great').pathname.replace(/\\/$/, '')\n : '',\n _sentryAssetPrefix: userNextConfig.assetPrefix,\n _sentryExperimentalThirdPartyOriginStackFrames: userSentryOptions._experimental?.thirdPartyOriginStackFrames\n ? 'true'\n : undefined,\n _sentryRouteManifest: JSON.stringify(routeManifest),\n };\n\n if (buildContext.isServer) {\n newConfig.module.rules.push({\n // TODO: Find a more bulletproof way of matching. For now this is fine and doesn't hurt anyone. It merely sets some globals.\n test: /(src[\\\\/])?instrumentation.(js|ts)/,\n use: [\n {\n loader: path.resolve(__dirname, 'loaders/valueInjectionLoader.js'),\n options: {\n values: serverValues,\n },\n },\n ],\n });\n } else {\n newConfig.module.rules.push({\n test: /(?:sentry\\.client\\.config\\.(jsx?|tsx?)|(?:src[\\\\/])?instrumentation-client\\.(js|ts))$/,\n use: [\n {\n loader: path.resolve(__dirname, 'loaders/valueInjectionLoader.js'),\n options: {\n values: clientValues,\n },\n },\n ],\n });\n }\n}\n\nfunction resolveNextPackageDirFromDirectory(basedir: string): string | undefined {\n try {\n return path.dirname(createRequire(`${basedir}/`).resolve('next/package.json'));\n } catch {\n // Should not happen in theory\n return undefined;\n }\n}\n\nconst POTENTIAL_REQUEST_ASYNC_STORAGE_LOCATIONS = [\n // Original location of RequestAsyncStorage\n // https://github.com/vercel/next.js/blob/46151dd68b417e7850146d00354f89930d10b43b/packages/next/src/client/components/request-async-storage.ts\n 'next/dist/client/components/request-async-storage.js',\n // Introduced in Next.js 13.4.20\n // https://github.com/vercel/next.js/blob/e1bc270830f2fc2df3542d4ef4c61b916c802df3/packages/next/src/client/components/request-async-storage.external.ts\n 'next/dist/client/components/request-async-storage.external.js',\n // Introduced in Next.js 15.0.0-canary.180\n // https://github.com/vercel/next.js/blob/541167b9b0fed6af9f36472e632863ffec41f18c/packages/next/src/server/app-render/work-unit-async-storage.external.ts\n 'next/dist/server/app-render/work-unit-async-storage.external.js',\n // Introduced in Next.js 15.0.0-canary.182\n // https://github.com/vercel/next.js/blob/f35159e5e80138ca7373f57b47edcaae3bcf1728/packages/next/src/client/components/work-unit-async-storage.external.ts\n 'next/dist/client/components/work-unit-async-storage.external.js',\n];\n\nfunction getRequestAsyncStorageModuleLocation(\n webpackContextDir: string,\n webpackResolvableModuleLocations: string[] | undefined,\n): string | undefined {\n if (webpackResolvableModuleLocations === undefined) {\n return undefined;\n }\n\n const absoluteWebpackResolvableModuleLocations = webpackResolvableModuleLocations.map(loc =>\n path.resolve(webpackContextDir, loc),\n );\n\n for (const webpackResolvableLocation of absoluteWebpackResolvableModuleLocations) {\n const nextPackageDir = resolveNextPackageDirFromDirectory(webpackResolvableLocation);\n if (nextPackageDir) {\n const asyncLocalStorageLocation = POTENTIAL_REQUEST_ASYNC_STORAGE_LOCATIONS.find(loc =>\n fs.existsSync(path.join(nextPackageDir, '..', loc)),\n );\n if (asyncLocalStorageLocation) {\n return asyncLocalStorageLocation;\n }\n }\n }\n\n return undefined;\n}\n\nfunction addOtelWarningIgnoreRule(newConfig: WebpackConfigObjectWithModuleRules): void {\n const ignoreRules = [\n // Inspired by @matmannion: https://github.com/getsentry/sentry-javascript/issues/12077#issuecomment-2180307072\n (warning, compilation) => {\n // This is wrapped in try-catch because we are vendoring types for this hook and we can't be 100% sure that we are accessing API that is there\n try {\n if (!warning.module) {\n return false;\n }\n\n const isDependencyThatMayRaiseCriticalDependencyMessage =\n /@opentelemetry\\/instrumentation/.test(warning.module.readableIdentifier(compilation.requestShortener)) ||\n /@prisma\\/instrumentation/.test(warning.module.readableIdentifier(compilation.requestShortener));\n const isCriticalDependencyMessage = /Critical dependency/.test(warning.message);\n\n return isDependencyThatMayRaiseCriticalDependencyMessage && isCriticalDependencyMessage;\n } catch {\n return false;\n }\n },\n // We provide these objects in addition to the hook above to provide redundancy in case the hook fails.\n { module: /@opentelemetry\\/instrumentation/, message: /Critical dependency/ },\n { module: /@prisma\\/instrumentation/, message: /Critical dependency/ },\n { module: /require-in-the-middle/, message: /Critical dependency/ },\n ] satisfies IgnoreWarningsOption;\n\n if (newConfig.ignoreWarnings === undefined) {\n newConfig.ignoreWarnings = ignoreRules;\n } else if (Array.isArray(newConfig.ignoreWarnings)) {\n newConfig.ignoreWarnings.push(...ignoreRules);\n }\n}\n\nfunction addEdgeRuntimePolyfills(newConfig: WebpackConfigObjectWithModuleRules, buildContext: BuildContext): void {\n // Use ProvidePlugin to inject performance global only when accessed\n newConfig.plugins = newConfig.plugins || [];\n newConfig.plugins.push(\n new buildContext.webpack.ProvidePlugin({\n performance: [path.resolve(__dirname, 'polyfills', 'perf_hooks.js'), 'performance'],\n }),\n );\n\n // Add module resolution aliases for problematic Node.js modules in edge runtime\n newConfig.resolve = newConfig.resolve || {};\n newConfig.resolve.alias = {\n ...newConfig.resolve.alias,\n // Redirect perf_hooks imports to a polyfilled version\n perf_hooks: path.resolve(__dirname, 'polyfills', 'perf_hooks.js'),\n };\n}\n\n/**\n * Sets up the tree-shaking flags based on the user's configuration.\n * https://docs.sentry.io/platforms/javascript/guides/nextjs/configuration/tree-shaking/\n */\nfunction setupTreeshakingFromConfig(\n userSentryOptions: SentryBuildOptions,\n newConfig: WebpackConfigObjectWithModuleRules,\n buildContext: BuildContext,\n): void {\n const defines: Record = {};\n\n newConfig.plugins = newConfig.plugins || [];\n\n if (userSentryOptions.webpack?.treeshake?.removeDebugLogging) {\n defines.__SENTRY_DEBUG__ = false;\n }\n\n if (userSentryOptions.webpack?.treeshake?.removeTracing) {\n defines.__SENTRY_TRACING__ = false;\n }\n\n if (userSentryOptions.webpack?.treeshake?.excludeReplayIframe) {\n defines.__RRWEB_EXCLUDE_IFRAME__ = true;\n }\n\n if (userSentryOptions.webpack?.treeshake?.excludeReplayShadowDOM) {\n defines.__RRWEB_EXCLUDE_SHADOW_DOM__ = true;\n }\n\n if (userSentryOptions.webpack?.treeshake?.excludeReplayCompressionWorker) {\n defines.__SENTRY_EXCLUDE_REPLAY_WORKER__ = true;\n }\n\n // Only add DefinePlugin if there are actual defines to set\n if (Object.keys(defines).length > 0) {\n newConfig.plugins.push(new buildContext.webpack.DefinePlugin(defines));\n }\n}\n","// Packages we auto-instrument need to be external for instrumentation to work\n// Next.js externalizes some packages by default, see: https://nextjs.org/docs/app/api-reference/config/next-config-js/serverExternalPackages\n// Others we need to add ourselves\n//\n// NOTE: 'ai' (Vercel AI SDK) is intentionally NOT included in this list.\n// When externalized, Next.js doesn't properly handle the package's conditional exports,\n// specifically the \"react-server\" export condition. This causes client-side code to be\n// loaded in server components instead of the appropriate server-side functions.\nexport const DEFAULT_SERVER_EXTERNAL_PACKAGES = [\n 'amqplib',\n 'connect',\n 'dataloader',\n 'express',\n 'generic-pool',\n 'graphql',\n '@hapi/hapi',\n 'ioredis',\n 'kafkajs',\n 'koa',\n 'lru-memoizer',\n 'mongodb',\n 'mongoose',\n 'mysql',\n 'mysql2',\n 'knex',\n 'pg',\n 'pg-pool',\n '@node-redis/client',\n '@redis/client',\n 'redis',\n 'tedious',\n];\n","import { handleRunAfterProductionCompile } from '../handleRunAfterProductionCompile';\nimport type { RouteManifest } from '../manifest/types';\nimport { constructTurbopackConfig } from '../turbopack';\nimport type { NextConfigObject, SentryBuildOptions, TurbopackOptions } from '../types';\nimport { detectActiveBundler, supportsProductionCompileHook } from '../util';\nimport { constructWebpackConfigFunction } from '../webpack';\nimport { DEFAULT_SERVER_EXTERNAL_PACKAGES } from './constants';\nimport type { VercelCronsConfigResult } from './getFinalConfigObjectUtils';\n\n/**\n * Information about the active bundler and feature support based on Next.js version.\n */\nexport type BundlerInfo = {\n isTurbopack: boolean;\n isWebpack: boolean;\n isTurbopackSupported: boolean;\n};\n\n/**\n * Detects which bundler is active (webpack vs turbopack) and whether turbopack features are supported.\n */\nexport function getBundlerInfo(nextJsVersion: string | undefined): BundlerInfo {\n const activeBundler = detectActiveBundler();\n const isTurbopack = activeBundler === 'turbopack';\n const isWebpack = activeBundler === 'webpack';\n const isTurbopackSupported = supportsProductionCompileHook(nextJsVersion ?? '');\n\n return { isTurbopack, isWebpack, isTurbopackSupported };\n}\n\n/**\n * Warns if turbopack is in use but the detected Next.js version is unsupported.\n */\nexport function maybeWarnAboutUnsupportedTurbopack(nextJsVersion: string | undefined, bundlerInfo: BundlerInfo): void {\n // Warn if using turbopack with an unsupported Next.js version\n if (!bundlerInfo.isTurbopackSupported && bundlerInfo.isTurbopack) {\n // eslint-disable-next-line no-console\n console.warn(\n `[@sentry/nextjs] WARNING: You are using the Sentry SDK with Turbopack. The Sentry SDK is compatible with Turbopack on Next.js version 15.4.1 or later. You are currently on ${nextJsVersion}. Please upgrade to a newer Next.js version to use the Sentry SDK with Turbopack.`,\n );\n }\n}\n\n/**\n * Warns if `useRunAfterProductionCompileHook` is enabled in webpack mode but the Next.js version is unsupported.\n */\nexport function maybeWarnAboutUnsupportedRunAfterProductionCompileHook(\n nextJsVersion: string | undefined,\n userSentryOptions: SentryBuildOptions,\n bundlerInfo: BundlerInfo,\n): void {\n // Webpack case - warn if trying to use runAfterProductionCompile hook with unsupported Next.js version\n if (\n userSentryOptions.useRunAfterProductionCompileHook &&\n !supportsProductionCompileHook(nextJsVersion ?? '') &&\n bundlerInfo.isWebpack\n ) {\n // eslint-disable-next-line no-console\n console.warn(\n '[@sentry/nextjs] The configured `useRunAfterProductionCompileHook` option is not compatible with your current Next.js version. This option is only supported on Next.js version 15.4.1 or later. Will not run source map and release management logic.',\n );\n }\n}\n\n/**\n * Constructs turbopack config when turbopack is active.\n */\nexport function maybeConstructTurbopackConfig(\n incomingUserNextConfigObject: NextConfigObject,\n userSentryOptions: SentryBuildOptions,\n routeManifest: RouteManifest | undefined,\n nextJsVersion: string | undefined,\n bundlerInfo: BundlerInfo,\n vercelCronsConfigResult: VercelCronsConfigResult,\n): TurbopackOptions | undefined {\n if (!bundlerInfo.isTurbopack) {\n return undefined;\n }\n\n // Only pass crons config if the span-based approach is enabled\n const vercelCronsConfig = vercelCronsConfigResult.strategy === 'spans' ? vercelCronsConfigResult.config : undefined;\n\n return constructTurbopackConfig({\n userNextConfig: incomingUserNextConfigObject,\n userSentryOptions,\n routeManifest,\n nextJsVersion,\n vercelCronsConfig,\n });\n}\n\n/**\n * Resolves whether to use the `runAfterProductionCompile` hook based on options and bundler.\n */\nexport function resolveUseRunAfterProductionCompileHookOption(\n userSentryOptions: SentryBuildOptions,\n bundlerInfo: BundlerInfo,\n): boolean {\n // If not explicitly set, turbopack uses the runAfterProductionCompile hook (as there are no alternatives), webpack does not.\n return userSentryOptions.useRunAfterProductionCompileHook ?? (bundlerInfo.isTurbopack ? true : false);\n}\n\n/**\n * Hooks into Next.js' `compiler.runAfterProductionCompile` to run Sentry release/sourcemap handling.\n *\n * Note: this mutates `incomingUserNextConfigObject`.\n */\nexport function maybeSetUpRunAfterProductionCompileHook({\n incomingUserNextConfigObject,\n userSentryOptions,\n releaseName,\n nextJsVersion,\n bundlerInfo,\n turboPackConfig,\n shouldUseRunAfterProductionCompileHook,\n}: {\n incomingUserNextConfigObject: NextConfigObject;\n userSentryOptions: SentryBuildOptions;\n releaseName: string | undefined;\n nextJsVersion: string | undefined;\n bundlerInfo: BundlerInfo;\n turboPackConfig: TurbopackOptions | undefined;\n shouldUseRunAfterProductionCompileHook: boolean;\n}): void {\n if (!shouldUseRunAfterProductionCompileHook) {\n return;\n }\n\n if (!supportsProductionCompileHook(nextJsVersion ?? '')) {\n return;\n }\n\n if (incomingUserNextConfigObject?.compiler?.runAfterProductionCompile === undefined) {\n incomingUserNextConfigObject.compiler ??= {};\n\n incomingUserNextConfigObject.compiler.runAfterProductionCompile = async ({ distDir }) => {\n await handleRunAfterProductionCompile(\n {\n releaseName,\n distDir,\n buildTool: bundlerInfo.isTurbopack ? 'turbopack' : 'webpack',\n usesNativeDebugIds: bundlerInfo.isTurbopack ? turboPackConfig?.debugIds : undefined,\n },\n userSentryOptions,\n );\n };\n return;\n }\n\n if (typeof incomingUserNextConfigObject.compiler.runAfterProductionCompile === 'function') {\n incomingUserNextConfigObject.compiler.runAfterProductionCompile = new Proxy(\n incomingUserNextConfigObject.compiler.runAfterProductionCompile,\n {\n async apply(target, thisArg, argArray) {\n const { distDir }: { distDir: string } = argArray[0] ?? { distDir: '.next' };\n await target.apply(thisArg, argArray);\n await handleRunAfterProductionCompile(\n {\n releaseName,\n distDir,\n buildTool: bundlerInfo.isTurbopack ? 'turbopack' : 'webpack',\n usesNativeDebugIds: bundlerInfo.isTurbopack ? turboPackConfig?.debugIds : undefined,\n },\n userSentryOptions,\n );\n },\n },\n );\n return;\n }\n\n // eslint-disable-next-line no-console\n console.warn(\n '[@sentry/nextjs] The configured `compiler.runAfterProductionCompile` option is not a function. Will not run source map and release management logic.',\n );\n}\n\n/**\n * For supported turbopack builds, auto-enables browser sourcemaps and defaults to deleting them after upload.\n *\n * Note: this mutates both `incomingUserNextConfigObject` and `userSentryOptions`.\n */\nexport function maybeEnableTurbopackSourcemaps(\n incomingUserNextConfigObject: NextConfigObject,\n userSentryOptions: SentryBuildOptions,\n bundlerInfo: BundlerInfo,\n): void {\n // Enable source maps for turbopack builds\n if (!bundlerInfo.isTurbopackSupported || !bundlerInfo.isTurbopack || userSentryOptions.sourcemaps?.disable) {\n return;\n }\n\n // Only set if not already configured by user\n if (incomingUserNextConfigObject.productionBrowserSourceMaps !== undefined) {\n return;\n }\n\n if (userSentryOptions.debug) {\n // eslint-disable-next-line no-console\n console.log('[@sentry/nextjs] Automatically enabling browser source map generation for turbopack build.');\n }\n incomingUserNextConfigObject.productionBrowserSourceMaps = true;\n\n // Enable source map deletion if not explicitly disabled\n if (userSentryOptions.sourcemaps?.deleteSourcemapsAfterUpload !== undefined) {\n return;\n }\n\n if (userSentryOptions.debug) {\n // eslint-disable-next-line no-console\n console.warn(\n '[@sentry/nextjs] Source maps will be automatically deleted after being uploaded to Sentry. If you want to keep the source maps, set the `sourcemaps.deleteSourcemapsAfterUpload` option to false in `withSentryConfig()`. If you do not want to generate and upload sourcemaps at all, set the `sourcemaps.disable` option to true.',\n );\n }\n\n userSentryOptions.sourcemaps = {\n ...userSentryOptions.sourcemaps,\n deleteSourcemapsAfterUpload: true,\n };\n}\n\n/**\n * Returns the patch which ensures server-side auto-instrumented packages are externalized.\n */\nexport function getServerExternalPackagesPatch(\n incomingUserNextConfigObject: NextConfigObject,\n nextMajor: number | undefined,\n): Partial {\n if (nextMajor && nextMajor >= 15) {\n return {\n serverExternalPackages: [\n ...(incomingUserNextConfigObject.serverExternalPackages || []),\n ...DEFAULT_SERVER_EXTERNAL_PACKAGES,\n ],\n };\n }\n\n return {\n experimental: {\n ...incomingUserNextConfigObject.experimental,\n serverComponentsExternalPackages: [\n ...(incomingUserNextConfigObject.experimental?.serverComponentsExternalPackages || []),\n ...DEFAULT_SERVER_EXTERNAL_PACKAGES,\n ],\n },\n };\n}\n\n/**\n * Returns the patch for injecting Sentry's webpack config function (if enabled and applicable).\n */\nexport function getWebpackPatch({\n incomingUserNextConfigObject,\n userSentryOptions,\n releaseName,\n routeManifest,\n nextJsVersion,\n shouldUseRunAfterProductionCompileHook,\n bundlerInfo,\n vercelCronsConfigResult,\n}: {\n incomingUserNextConfigObject: NextConfigObject;\n userSentryOptions: SentryBuildOptions;\n releaseName: string | undefined;\n routeManifest: RouteManifest | undefined;\n nextJsVersion: string | undefined;\n shouldUseRunAfterProductionCompileHook: boolean;\n bundlerInfo: BundlerInfo;\n vercelCronsConfigResult: VercelCronsConfigResult;\n}): Partial {\n if (!bundlerInfo.isWebpack || userSentryOptions.webpack?.disableSentryConfig) {\n return {};\n }\n\n return {\n webpack: constructWebpackConfigFunction({\n userNextConfig: incomingUserNextConfigObject,\n userSentryOptions,\n releaseName,\n routeManifest,\n nextJsVersion,\n useRunAfterProductionCompileHook: shouldUseRunAfterProductionCompileHook,\n vercelCronsConfigResult,\n }),\n };\n}\n\n/**\n * Returns the patch for adding turbopack config (if enabled and supported).\n */\nexport function getTurbopackPatch(\n bundlerInfo: BundlerInfo,\n turboPackConfig: TurbopackOptions | undefined,\n): Partial {\n if (!bundlerInfo.isTurbopackSupported || !bundlerInfo.isTurbopack) {\n return {};\n }\n\n return { turbopack: turboPackConfig };\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n//----------------------------------------------------------------------------------------------------------\n// DO NOT EDIT, this is an Auto-generated file from scripts/semconv/templates/registry/stable/attributes.ts.j2\n//----------------------------------------------------------------------------------------------------------\n\n/**\n * ASP.NET Core exception middleware handling result.\n *\n * @example handled\n * @example unhandled\n */\nexport const ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT = 'aspnetcore.diagnostics.exception.result' as const;\n\n/**\n * Enum value \"aborted\" for attribute {@link ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT}.\n *\n * Exception handling didn't run because the request was aborted.\n */\nexport const ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_ABORTED = \"aborted\" as const;\n\n/**\n * Enum value \"handled\" for attribute {@link ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT}.\n *\n * Exception was handled by the exception handling middleware.\n */\nexport const ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_HANDLED = \"handled\" as const;\n\n/**\n * Enum value \"skipped\" for attribute {@link ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT}.\n *\n * Exception handling was skipped because the response had started.\n */\nexport const ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_SKIPPED = \"skipped\" as const;\n\n/**\n * Enum value \"unhandled\" for attribute {@link ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT}.\n *\n * Exception was not handled by the exception handling middleware.\n */\nexport const ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_UNHANDLED = \"unhandled\" as const;\n\n/**\n * Full type name of the [`IExceptionHandler`](https://learn.microsoft.com/dotnet/api/microsoft.aspnetcore.diagnostics.iexceptionhandler) implementation that handled the exception.\n *\n * @example Contoso.MyHandler\n */\nexport const ATTR_ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE = 'aspnetcore.diagnostics.handler.type' as const;\n\n/**\n * Rate limiting policy name.\n *\n * @example fixed\n * @example sliding\n * @example token\n */\nexport const ATTR_ASPNETCORE_RATE_LIMITING_POLICY = 'aspnetcore.rate_limiting.policy' as const;\n\n/**\n * Rate-limiting result, shows whether the lease was acquired or contains a rejection reason\n *\n * @example acquired\n * @example request_canceled\n */\nexport const ATTR_ASPNETCORE_RATE_LIMITING_RESULT = 'aspnetcore.rate_limiting.result' as const;\n\n/**\n * Enum value \"acquired\" for attribute {@link ATTR_ASPNETCORE_RATE_LIMITING_RESULT}.\n *\n * Lease was acquired\n */\nexport const ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ACQUIRED = \"acquired\" as const;\n\n/**\n * Enum value \"endpoint_limiter\" for attribute {@link ATTR_ASPNETCORE_RATE_LIMITING_RESULT}.\n *\n * Lease request was rejected by the endpoint limiter\n */\nexport const ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ENDPOINT_LIMITER = \"endpoint_limiter\" as const;\n\n/**\n * Enum value \"global_limiter\" for attribute {@link ATTR_ASPNETCORE_RATE_LIMITING_RESULT}.\n *\n * Lease request was rejected by the global limiter\n */\nexport const ASPNETCORE_RATE_LIMITING_RESULT_VALUE_GLOBAL_LIMITER = \"global_limiter\" as const;\n\n/**\n * Enum value \"request_canceled\" for attribute {@link ATTR_ASPNETCORE_RATE_LIMITING_RESULT}.\n *\n * Lease request was canceled\n */\nexport const ASPNETCORE_RATE_LIMITING_RESULT_VALUE_REQUEST_CANCELED = \"request_canceled\" as const;\n\n/**\n * Flag indicating if request was handled by the application pipeline.\n *\n * @example true\n */\nexport const ATTR_ASPNETCORE_REQUEST_IS_UNHANDLED = 'aspnetcore.request.is_unhandled' as const;\n\n/**\n * A value that indicates whether the matched route is a fallback route.\n *\n * @example true\n */\nexport const ATTR_ASPNETCORE_ROUTING_IS_FALLBACK = 'aspnetcore.routing.is_fallback' as const;\n\n/**\n * Match result - success or failure\n *\n * @example success\n * @example failure\n */\nexport const ATTR_ASPNETCORE_ROUTING_MATCH_STATUS = 'aspnetcore.routing.match_status' as const;\n\n/**\n * Enum value \"failure\" for attribute {@link ATTR_ASPNETCORE_ROUTING_MATCH_STATUS}.\n *\n * Match failed\n */\nexport const ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_FAILURE = \"failure\" as const;\n\n/**\n * Enum value \"success\" for attribute {@link ATTR_ASPNETCORE_ROUTING_MATCH_STATUS}.\n *\n * Match succeeded\n */\nexport const ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_SUCCESS = \"success\" as const;\n\n/**\n * A value that indicates whether the user is authenticated.\n *\n * @example true\n */\nexport const ATTR_ASPNETCORE_USER_IS_AUTHENTICATED = 'aspnetcore.user.is_authenticated' as const;\n\n/**\n * Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.\n *\n * @example client.example.com\n * @example 10.1.2.80\n * @example /tmp/my.sock\n *\n * @note When observed from the server side, and when communicating through an intermediary, `client.address` **SHOULD** represent the client address behind any intermediaries, for example proxies, if it's available.\n */\nexport const ATTR_CLIENT_ADDRESS = 'client.address' as const;\n\n/**\n * Client port number.\n *\n * @example 65123\n *\n * @note When observed from the server side, and when communicating through an intermediary, `client.port` **SHOULD** represent the client port behind any intermediaries, for example proxies, if it's available.\n */\nexport const ATTR_CLIENT_PORT = 'client.port' as const;\n\n/**\n * The column number in `code.file.path` best representing the operation. It **SHOULD** point within the code unit named in `code.function.name`. This attribute **MUST NOT** be used on the Profile signal since the data is already captured in 'message Line'. This constraint is imposed to prevent redundancy and maintain data integrity.\n *\n * @example 16\n */\nexport const ATTR_CODE_COLUMN_NUMBER = 'code.column.number' as const;\n\n/**\n * The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path). This attribute **MUST NOT** be used on the Profile signal since the data is already captured in 'message Function'. This constraint is imposed to prevent redundancy and maintain data integrity.\n *\n * @example \"/usr/local/MyApplication/content_root/app/index.php\"\n */\nexport const ATTR_CODE_FILE_PATH = 'code.file.path' as const;\n\n/**\n * The method or function fully-qualified name without arguments. The value should fit the natural representation of the language runtime, which is also likely the same used within `code.stacktrace` attribute value. This attribute **MUST NOT** be used on the Profile signal since the data is already captured in 'message Function'. This constraint is imposed to prevent redundancy and maintain data integrity.\n *\n * @example com.example.MyHttpService.serveRequest\n * @example GuzzleHttp\\\\Client::transfer\n * @example fopen\n *\n * @note Values and format depends on each language runtime, thus it is impossible to provide an exhaustive list of examples.\n * The values are usually the same (or prefixes of) the ones found in native stack trace representation stored in\n * `code.stacktrace` without information on arguments.\n *\n * Examples:\n *\n * - Java method: `com.example.MyHttpService.serveRequest`\n * - Java anonymous class method: `com.mycompany.Main$1.myMethod`\n * - Java lambda method: `com.mycompany.Main$$Lambda/0x0000748ae4149c00.myMethod`\n * - PHP function: `GuzzleHttp\\Client::transfer`\n * - Go function: `github.com/my/repo/pkg.foo.func5`\n * - Elixir: `OpenTelemetry.Ctx.new`\n * - Erlang: `opentelemetry_ctx:new`\n * - Rust: `playground::my_module::my_cool_func`\n * - C function: `fopen`\n */\nexport const ATTR_CODE_FUNCTION_NAME = 'code.function.name' as const;\n\n/**\n * The line number in `code.file.path` best representing the operation. It **SHOULD** point within the code unit named in `code.function.name`. This attribute **MUST NOT** be used on the Profile signal since the data is already captured in 'message Line'. This constraint is imposed to prevent redundancy and maintain data integrity.\n *\n * @example 42\n */\nexport const ATTR_CODE_LINE_NUMBER = 'code.line.number' as const;\n\n/**\n * A stacktrace as a string in the natural representation for the language runtime. The representation is identical to [`exception.stacktrace`](/docs/exceptions/exceptions-spans.md#stacktrace-representation). This attribute **MUST NOT** be used on the Profile signal since the data is already captured in 'message Location'. This constraint is imposed to prevent redundancy and maintain data integrity.\n *\n * @example \"at com.example.GenerateTrace.methodB(GenerateTrace.java:13)\\\\n at com.example.GenerateTrace.methodA(GenerateTrace.java:9)\\\\n at com.example.GenerateTrace.main(GenerateTrace.java:5)\\\\n\"\n */\nexport const ATTR_CODE_STACKTRACE = 'code.stacktrace' as const;\n\n/**\n * The name of a collection (table, container) within the database.\n *\n * @example public.users\n * @example customers\n *\n * @note It is **RECOMMENDED** to capture the value as provided by the application\n * without attempting to do any case normalization.\n *\n * The collection name **SHOULD NOT** be extracted from `db.query.text`,\n * when the database system supports query text with multiple collections\n * in non-batch operations.\n *\n * For batch operations, if the individual operations are known to have the same\n * collection name then that collection name **SHOULD** be used.\n */\nexport const ATTR_DB_COLLECTION_NAME = 'db.collection.name' as const;\n\n/**\n * The name of the database, fully qualified within the server address and port.\n *\n * @example customers\n * @example test.users\n *\n * @note If a database system has multiple namespace components, they **SHOULD** be concatenated from the most general to the most specific namespace component, using `|` as a separator between the components. Any missing components (and their associated separators) **SHOULD** be omitted.\n * Semantic conventions for individual database systems **SHOULD** document what `db.namespace` means in the context of that system.\n * It is **RECOMMENDED** to capture the value as provided by the application without attempting to do any case normalization.\n */\nexport const ATTR_DB_NAMESPACE = 'db.namespace' as const;\n\n/**\n * The number of queries included in a batch operation.\n *\n * @example 2\n * @example 3\n * @example 4\n *\n * @note Operations are only considered batches when they contain two or more operations, and so `db.operation.batch.size` **SHOULD** never be `1`.\n */\nexport const ATTR_DB_OPERATION_BATCH_SIZE = 'db.operation.batch.size' as const;\n\n/**\n * The name of the operation or command being executed.\n *\n * @example findAndModify\n * @example HMSET\n * @example SELECT\n *\n * @note It is **RECOMMENDED** to capture the value as provided by the application\n * without attempting to do any case normalization.\n *\n * The operation name **SHOULD NOT** be extracted from `db.query.text`,\n * when the database system supports query text with multiple operations\n * in non-batch operations.\n *\n * If spaces can occur in the operation name, multiple consecutive spaces\n * **SHOULD** be normalized to a single space.\n *\n * For batch operations, if the individual operations are known to have the same operation name\n * then that operation name **SHOULD** be used prepended by `BATCH `,\n * otherwise `db.operation.name` **SHOULD** be `BATCH` or some other database\n * system specific term if more applicable.\n */\nexport const ATTR_DB_OPERATION_NAME = 'db.operation.name' as const;\n\n/**\n * Low cardinality summary of a database query.\n *\n * @example SELECT wuser_table\n * @example INSERT shipping_details SELECT orders\n * @example get user by id\n *\n * @note The query summary describes a class of database queries and is useful\n * as a grouping key, especially when analyzing telemetry for database\n * calls involving complex queries.\n *\n * Summary may be available to the instrumentation through\n * instrumentation hooks or other means. If it is not available, instrumentations\n * that support query parsing **SHOULD** generate a summary following\n * [Generating query summary](/docs/db/database-spans.md#generating-a-summary-of-the-query)\n * section.\n *\n * For batch operations, if the individual operations are known to have the same query summary\n * then that query summary **SHOULD** be used prepended by `BATCH `,\n * otherwise `db.query.summary` **SHOULD** be `BATCH` or some other database\n * system specific term if more applicable.\n */\nexport const ATTR_DB_QUERY_SUMMARY = 'db.query.summary' as const;\n\n/**\n * The database query being executed.\n *\n * @example SELECT * FROM wuser_table where username = ?\n * @example SET mykey ?\n *\n * @note For sanitization see [Sanitization of `db.query.text`](/docs/db/database-spans.md#sanitization-of-dbquerytext).\n * For batch operations, if the individual operations are known to have the same query text then that query text **SHOULD** be used, otherwise all of the individual query texts **SHOULD** be concatenated with separator `; ` or some other database system specific separator if more applicable.\n * Parameterized query text **SHOULD NOT** be sanitized. Even though parameterized query text can potentially have sensitive data, by using a parameterized query the user is giving a strong signal that any sensitive data will be passed as parameter values, and the benefit to observability of capturing the static part of the query text by default outweighs the risk.\n */\nexport const ATTR_DB_QUERY_TEXT = 'db.query.text' as const;\n\n/**\n * Database response status code.\n *\n * @example 102\n * @example ORA-17002\n * @example 08P01\n * @example 404\n *\n * @note The status code returned by the database. Usually it represents an error code, but may also represent partial success, warning, or differentiate between various types of successful outcomes.\n * Semantic conventions for individual database systems **SHOULD** document what `db.response.status_code` means in the context of that system.\n */\nexport const ATTR_DB_RESPONSE_STATUS_CODE = 'db.response.status_code' as const;\n\n/**\n * The name of a stored procedure within the database.\n *\n * @example GetCustomer\n *\n * @note It is **RECOMMENDED** to capture the value as provided by the application\n * without attempting to do any case normalization.\n *\n * For batch operations, if the individual operations are known to have the same\n * stored procedure name then that stored procedure name **SHOULD** be used.\n */\nexport const ATTR_DB_STORED_PROCEDURE_NAME = 'db.stored_procedure.name' as const;\n\n/**\n * The database management system (DBMS) product as identified by the client instrumentation.\n *\n * @note The actual DBMS may differ from the one identified by the client. For example, when using PostgreSQL client libraries to connect to a CockroachDB, the `db.system.name` is set to `postgresql` based on the instrumentation's best knowledge.\n */\nexport const ATTR_DB_SYSTEM_NAME = 'db.system.name' as const;\n\n/**\n * Enum value \"mariadb\" for attribute {@link ATTR_DB_SYSTEM_NAME}.\n *\n * [MariaDB](https://mariadb.org/)\n */\nexport const DB_SYSTEM_NAME_VALUE_MARIADB = \"mariadb\" as const;\n\n/**\n * Enum value \"microsoft.sql_server\" for attribute {@link ATTR_DB_SYSTEM_NAME}.\n *\n * [Microsoft SQL Server](https://www.microsoft.com/sql-server)\n */\nexport const DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER = \"microsoft.sql_server\" as const;\n\n/**\n * Enum value \"mysql\" for attribute {@link ATTR_DB_SYSTEM_NAME}.\n *\n * [MySQL](https://www.mysql.com/)\n */\nexport const DB_SYSTEM_NAME_VALUE_MYSQL = \"mysql\" as const;\n\n/**\n * Enum value \"postgresql\" for attribute {@link ATTR_DB_SYSTEM_NAME}.\n *\n * [PostgreSQL](https://www.postgresql.org/)\n */\nexport const DB_SYSTEM_NAME_VALUE_POSTGRESQL = \"postgresql\" as const;\n\n/**\n * Name of the garbage collector managed heap generation.\n *\n * @example gen0\n * @example gen1\n * @example gen2\n */\nexport const ATTR_DOTNET_GC_HEAP_GENERATION = 'dotnet.gc.heap.generation' as const;\n\n/**\n * Enum value \"gen0\" for attribute {@link ATTR_DOTNET_GC_HEAP_GENERATION}.\n *\n * Generation 0\n */\nexport const DOTNET_GC_HEAP_GENERATION_VALUE_GEN0 = \"gen0\" as const;\n\n/**\n * Enum value \"gen1\" for attribute {@link ATTR_DOTNET_GC_HEAP_GENERATION}.\n *\n * Generation 1\n */\nexport const DOTNET_GC_HEAP_GENERATION_VALUE_GEN1 = \"gen1\" as const;\n\n/**\n * Enum value \"gen2\" for attribute {@link ATTR_DOTNET_GC_HEAP_GENERATION}.\n *\n * Generation 2\n */\nexport const DOTNET_GC_HEAP_GENERATION_VALUE_GEN2 = \"gen2\" as const;\n\n/**\n * Enum value \"loh\" for attribute {@link ATTR_DOTNET_GC_HEAP_GENERATION}.\n *\n * Large Object Heap\n */\nexport const DOTNET_GC_HEAP_GENERATION_VALUE_LOH = \"loh\" as const;\n\n/**\n * Enum value \"poh\" for attribute {@link ATTR_DOTNET_GC_HEAP_GENERATION}.\n *\n * Pinned Object Heap\n */\nexport const DOTNET_GC_HEAP_GENERATION_VALUE_POH = \"poh\" as const;\n\n/**\n * Describes a class of error the operation ended with.\n *\n * @example timeout\n * @example java.net.UnknownHostException\n * @example server_certificate_invalid\n * @example 500\n *\n * @note The `error.type` **SHOULD** be predictable, and **SHOULD** have low cardinality.\n *\n * When `error.type` is set to a type (e.g., an exception type), its\n * canonical class name identifying the type within the artifact **SHOULD** be used.\n *\n * Instrumentations **SHOULD** document the list of errors they report.\n *\n * The cardinality of `error.type` within one instrumentation library **SHOULD** be low.\n * Telemetry consumers that aggregate data from multiple instrumentation libraries and applications\n * should be prepared for `error.type` to have high cardinality at query time when no\n * additional filters are applied.\n *\n * If the operation has completed successfully, instrumentations **SHOULD NOT** set `error.type`.\n *\n * If a specific domain defines its own set of error identifiers (such as HTTP or RPC status codes),\n * it's **RECOMMENDED** to:\n *\n * - Use a domain-specific attribute\n * - Set `error.type` to capture all errors, regardless of whether they are defined within the domain-specific set or not.\n */\nexport const ATTR_ERROR_TYPE = 'error.type' as const;\n\n/**\n * Enum value \"_OTHER\" for attribute {@link ATTR_ERROR_TYPE}.\n *\n * A fallback error value to be used when the instrumentation doesn't define a custom value.\n */\nexport const ERROR_TYPE_VALUE_OTHER = \"_OTHER\" as const;\n\n/**\n * Indicates that the exception is escaping the scope of the span.\n *\n * @deprecated It's no longer recommended to record exceptions that are handled and do not escape the scope of a span.\n */\nexport const ATTR_EXCEPTION_ESCAPED = 'exception.escaped' as const;\n\n/**\n * The exception message.\n *\n * @example Division by zero\n * @example Can't convert 'int' object to str implicitly\n *\n * @note > [!WARNING]\n *\n * > This attribute may contain sensitive information.\n */\nexport const ATTR_EXCEPTION_MESSAGE = 'exception.message' as const;\n\n/**\n * A stacktrace as a string in the natural representation for the language runtime. The representation is to be determined and documented by each language SIG.\n *\n * @example \"Exception in thread \"main\" java.lang.RuntimeException: Test exception\\\\n at com.example.GenerateTrace.methodB(GenerateTrace.java:13)\\\\n at com.example.GenerateTrace.methodA(GenerateTrace.java:9)\\\\n at com.example.GenerateTrace.main(GenerateTrace.java:5)\\\\n\"\n */\nexport const ATTR_EXCEPTION_STACKTRACE = 'exception.stacktrace' as const;\n\n/**\n * The type of the exception (its fully-qualified class name, if applicable). The dynamic type of the exception should be preferred over the static type in languages that support it.\n *\n * @example java.net.ConnectException\n * @example OSError\n */\nexport const ATTR_EXCEPTION_TYPE = 'exception.type' as const;\n\n/**\n * HTTP request headers, `` being the normalized HTTP Header name (lowercase), the value being the header values.\n *\n * @example [\"application/json\"]\n * @example [\"1.2.3.4\", \"1.2.3.5\"]\n *\n * @note Instrumentations **SHOULD** require an explicit configuration of which headers are to be captured.\n * Including all request headers can be a security risk - explicit configuration helps avoid leaking sensitive information.\n *\n * The `User-Agent` header is already captured in the `user_agent.original` attribute.\n * Users **MAY** explicitly configure instrumentations to capture them even though it is not recommended.\n *\n * The attribute value **MUST** consist of either multiple header values as an array of strings\n * or a single-item array containing a possibly comma-concatenated string, depending on the way\n * the HTTP library provides access to headers.\n *\n * Examples:\n *\n * - A header `Content-Type: application/json` **SHOULD** be recorded as the `http.request.header.content-type`\n * attribute with value `[\"application/json\"]`.\n * - A header `X-Forwarded-For: 1.2.3.4, 1.2.3.5` **SHOULD** be recorded as the `http.request.header.x-forwarded-for`\n * attribute with value `[\"1.2.3.4\", \"1.2.3.5\"]` or `[\"1.2.3.4, 1.2.3.5\"]` depending on the HTTP library.\n */\nexport const ATTR_HTTP_REQUEST_HEADER = (key: string) => `http.request.header.${key}`;\n\n/**\n * HTTP request method.\n *\n * @example GET\n * @example POST\n * @example HEAD\n *\n * @note HTTP request method value **SHOULD** be \"known\" to the instrumentation.\n * By default, this convention defines \"known\" methods as the ones listed in [RFC9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-methods),\n * the PATCH method defined in [RFC5789](https://www.rfc-editor.org/rfc/rfc5789.html)\n * and the QUERY method defined in [httpbis-safe-method-w-body](https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/?include_text=1).\n *\n * If the HTTP request method is not known to instrumentation, it **MUST** set the `http.request.method` attribute to `_OTHER`.\n *\n * If the HTTP instrumentation could end up converting valid HTTP request methods to `_OTHER`, then it **MUST** provide a way to override\n * the list of known HTTP methods. If this override is done via environment variable, then the environment variable **MUST** be named\n * OTEL_INSTRUMENTATION_HTTP_KNOWN_METHODS and support a comma-separated list of case-sensitive known HTTP methods.\n *\n *\n * If this override is done via declarative configuration, then the list **MUST** be configurable via the `known_methods` property\n * (an array of case-sensitive strings with minimum items 0) under `.instrumentation/development.general.http.client` and/or\n * `.instrumentation/development.general.http.server`.\n *\n * In either case, this list **MUST** be a full override of the default known methods,\n * it is not a list of known methods in addition to the defaults.\n *\n * HTTP method names are case-sensitive and `http.request.method` attribute value **MUST** match a known HTTP method name exactly.\n * Instrumentations for specific web frameworks that consider HTTP methods to be case insensitive, **SHOULD** populate a canonical equivalent.\n * Tracing instrumentations that do so, **MUST** also set `http.request.method_original` to the original value.\n */\nexport const ATTR_HTTP_REQUEST_METHOD = 'http.request.method' as const;\n\n/**\n * Enum value \"_OTHER\" for attribute {@link ATTR_HTTP_REQUEST_METHOD}.\n *\n * Any HTTP method that the instrumentation has no prior knowledge of.\n */\nexport const HTTP_REQUEST_METHOD_VALUE_OTHER = \"_OTHER\" as const;\n\n/**\n * Enum value \"CONNECT\" for attribute {@link ATTR_HTTP_REQUEST_METHOD}.\n *\n * CONNECT method.\n */\nexport const HTTP_REQUEST_METHOD_VALUE_CONNECT = \"CONNECT\" as const;\n\n/**\n * Enum value \"DELETE\" for attribute {@link ATTR_HTTP_REQUEST_METHOD}.\n *\n * DELETE method.\n */\nexport const HTTP_REQUEST_METHOD_VALUE_DELETE = \"DELETE\" as const;\n\n/**\n * Enum value \"GET\" for attribute {@link ATTR_HTTP_REQUEST_METHOD}.\n *\n * GET method.\n */\nexport const HTTP_REQUEST_METHOD_VALUE_GET = \"GET\" as const;\n\n/**\n * Enum value \"HEAD\" for attribute {@link ATTR_HTTP_REQUEST_METHOD}.\n *\n * HEAD method.\n */\nexport const HTTP_REQUEST_METHOD_VALUE_HEAD = \"HEAD\" as const;\n\n/**\n * Enum value \"OPTIONS\" for attribute {@link ATTR_HTTP_REQUEST_METHOD}.\n *\n * OPTIONS method.\n */\nexport const HTTP_REQUEST_METHOD_VALUE_OPTIONS = \"OPTIONS\" as const;\n\n/**\n * Enum value \"PATCH\" for attribute {@link ATTR_HTTP_REQUEST_METHOD}.\n *\n * PATCH method.\n */\nexport const HTTP_REQUEST_METHOD_VALUE_PATCH = \"PATCH\" as const;\n\n/**\n * Enum value \"POST\" for attribute {@link ATTR_HTTP_REQUEST_METHOD}.\n *\n * POST method.\n */\nexport const HTTP_REQUEST_METHOD_VALUE_POST = \"POST\" as const;\n\n/**\n * Enum value \"PUT\" for attribute {@link ATTR_HTTP_REQUEST_METHOD}.\n *\n * PUT method.\n */\nexport const HTTP_REQUEST_METHOD_VALUE_PUT = \"PUT\" as const;\n\n/**\n * Enum value \"TRACE\" for attribute {@link ATTR_HTTP_REQUEST_METHOD}.\n *\n * TRACE method.\n */\nexport const HTTP_REQUEST_METHOD_VALUE_TRACE = \"TRACE\" as const;\n\n/**\n * Original HTTP method sent by the client in the request line.\n *\n * @example GeT\n * @example ACL\n * @example foo\n */\nexport const ATTR_HTTP_REQUEST_METHOD_ORIGINAL = 'http.request.method_original' as const;\n\n/**\n * The ordinal number of request resending attempt (for any reason, including redirects).\n *\n * @example 3\n *\n * @note The resend count **SHOULD** be updated each time an HTTP request gets resent by the client, regardless of what was the cause of the resending (e.g. redirection, authorization failure, 503 Server Unavailable, network issues, or any other).\n */\nexport const ATTR_HTTP_REQUEST_RESEND_COUNT = 'http.request.resend_count' as const;\n\n/**\n * HTTP response headers, `` being the normalized HTTP Header name (lowercase), the value being the header values.\n *\n * @example [\"application/json\"]\n * @example [\"abc\", \"def\"]\n *\n * @note Instrumentations **SHOULD** require an explicit configuration of which headers are to be captured.\n * Including all response headers can be a security risk - explicit configuration helps avoid leaking sensitive information.\n *\n * Users **MAY** explicitly configure instrumentations to capture them even though it is not recommended.\n *\n * The attribute value **MUST** consist of either multiple header values as an array of strings\n * or a single-item array containing a possibly comma-concatenated string, depending on the way\n * the HTTP library provides access to headers.\n *\n * Examples:\n *\n * - A header `Content-Type: application/json` header **SHOULD** be recorded as the `http.request.response.content-type`\n * attribute with value `[\"application/json\"]`.\n * - A header `My-custom-header: abc, def` header **SHOULD** be recorded as the `http.response.header.my-custom-header`\n * attribute with value `[\"abc\", \"def\"]` or `[\"abc, def\"]` depending on the HTTP library.\n */\nexport const ATTR_HTTP_RESPONSE_HEADER = (key: string) => `http.response.header.${key}`;\n\n/**\n * [HTTP response status code](https://tools.ietf.org/html/rfc7231#section-6).\n *\n * @example 200\n */\nexport const ATTR_HTTP_RESPONSE_STATUS_CODE = 'http.response.status_code' as const;\n\n/**\n * The matched route template for the request. This **MUST** be low-cardinality and include all static path segments, with dynamic path segments represented with placeholders.\n *\n * @example /users/:userID?\n * @example my-controller/my-action/{id?}\n *\n * @note **MUST NOT** be populated when this is not supported by the HTTP server framework as the route attribute should have low-cardinality and the URI path can NOT substitute it.\n * **SHOULD** include the [application root](/docs/http/http-spans.md#http-server-definitions) if there is one.\n *\n * A static path segment is a part of the route template with a fixed, low-cardinality value. This includes literal strings like `/users/` and placeholders that\n * are constrained to a finite, predefined set of values, e.g. `{controller}` or `{action}`.\n *\n * A dynamic path segment is a placeholder for a value that can have high cardinality and is not constrained to a predefined list like static path segments.\n *\n * Instrumentations **SHOULD** use routing information provided by the corresponding web framework. They **SHOULD** pick the most precise source of routing information and **MAY**\n * support custom route formatting. Instrumentations **SHOULD** document the format and the API used to obtain the route string.\n */\nexport const ATTR_HTTP_ROUTE = 'http.route' as const;\n\n/**\n * Name of the garbage collector action.\n *\n * @example end of minor GC\n * @example end of major GC\n *\n * @note Garbage collector action is generally obtained via [GarbageCollectionNotificationInfo#getGcAction()](https://docs.oracle.com/en/java/javase/11/docs/api/jdk.management/com/sun/management/GarbageCollectionNotificationInfo.html#getGcAction()).\n */\nexport const ATTR_JVM_GC_ACTION = 'jvm.gc.action' as const;\n\n/**\n * Name of the garbage collector.\n *\n * @example G1 Young Generation\n * @example G1 Old Generation\n *\n * @note Garbage collector name is generally obtained via [GarbageCollectionNotificationInfo#getGcName()](https://docs.oracle.com/en/java/javase/11/docs/api/jdk.management/com/sun/management/GarbageCollectionNotificationInfo.html#getGcName()).\n */\nexport const ATTR_JVM_GC_NAME = 'jvm.gc.name' as const;\n\n/**\n * Name of the memory pool.\n *\n * @example G1 Old Gen\n * @example G1 Eden space\n * @example G1 Survivor Space\n *\n * @note Pool names are generally obtained via [MemoryPoolMXBean#getName()](https://docs.oracle.com/en/java/javase/11/docs/api/java.management/java/lang/management/MemoryPoolMXBean.html#getName()).\n */\nexport const ATTR_JVM_MEMORY_POOL_NAME = 'jvm.memory.pool.name' as const;\n\n/**\n * The type of memory.\n *\n * @example heap\n * @example non_heap\n */\nexport const ATTR_JVM_MEMORY_TYPE = 'jvm.memory.type' as const;\n\n/**\n * Enum value \"heap\" for attribute {@link ATTR_JVM_MEMORY_TYPE}.\n *\n * Heap memory.\n */\nexport const JVM_MEMORY_TYPE_VALUE_HEAP = \"heap\" as const;\n\n/**\n * Enum value \"non_heap\" for attribute {@link ATTR_JVM_MEMORY_TYPE}.\n *\n * Non-heap memory\n */\nexport const JVM_MEMORY_TYPE_VALUE_NON_HEAP = \"non_heap\" as const;\n\n/**\n * Whether the thread is daemon or not.\n */\nexport const ATTR_JVM_THREAD_DAEMON = 'jvm.thread.daemon' as const;\n\n/**\n * State of the thread.\n *\n * @example runnable\n * @example blocked\n */\nexport const ATTR_JVM_THREAD_STATE = 'jvm.thread.state' as const;\n\n/**\n * Enum value \"blocked\" for attribute {@link ATTR_JVM_THREAD_STATE}.\n *\n * A thread that is blocked waiting for a monitor lock is in this state.\n */\nexport const JVM_THREAD_STATE_VALUE_BLOCKED = \"blocked\" as const;\n\n/**\n * Enum value \"new\" for attribute {@link ATTR_JVM_THREAD_STATE}.\n *\n * A thread that has not yet started is in this state.\n */\nexport const JVM_THREAD_STATE_VALUE_NEW = \"new\" as const;\n\n/**\n * Enum value \"runnable\" for attribute {@link ATTR_JVM_THREAD_STATE}.\n *\n * A thread executing in the Java virtual machine is in this state.\n */\nexport const JVM_THREAD_STATE_VALUE_RUNNABLE = \"runnable\" as const;\n\n/**\n * Enum value \"terminated\" for attribute {@link ATTR_JVM_THREAD_STATE}.\n *\n * A thread that has exited is in this state.\n */\nexport const JVM_THREAD_STATE_VALUE_TERMINATED = \"terminated\" as const;\n\n/**\n * Enum value \"timed_waiting\" for attribute {@link ATTR_JVM_THREAD_STATE}.\n *\n * A thread that is waiting for another thread to perform an action for up to a specified waiting time is in this state.\n */\nexport const JVM_THREAD_STATE_VALUE_TIMED_WAITING = \"timed_waiting\" as const;\n\n/**\n * Enum value \"waiting\" for attribute {@link ATTR_JVM_THREAD_STATE}.\n *\n * A thread that is waiting indefinitely for another thread to perform a particular action is in this state.\n */\nexport const JVM_THREAD_STATE_VALUE_WAITING = \"waiting\" as const;\n\n/**\n * Local address of the network connection - IP address or Unix domain socket name.\n *\n * @example 10.1.2.80\n * @example /tmp/my.sock\n */\nexport const ATTR_NETWORK_LOCAL_ADDRESS = 'network.local.address' as const;\n\n/**\n * Local port number of the network connection.\n *\n * @example 65123\n */\nexport const ATTR_NETWORK_LOCAL_PORT = 'network.local.port' as const;\n\n/**\n * Peer address of the network connection - IP address or Unix domain socket name.\n *\n * @example 10.1.2.80\n * @example /tmp/my.sock\n */\nexport const ATTR_NETWORK_PEER_ADDRESS = 'network.peer.address' as const;\n\n/**\n * Peer port number of the network connection.\n *\n * @example 65123\n */\nexport const ATTR_NETWORK_PEER_PORT = 'network.peer.port' as const;\n\n/**\n * [OSI application layer](https://wikipedia.org/wiki/Application_layer) or non-OSI equivalent.\n *\n * @example amqp\n * @example http\n * @example mqtt\n *\n * @note The value **SHOULD** be normalized to lowercase.\n */\nexport const ATTR_NETWORK_PROTOCOL_NAME = 'network.protocol.name' as const;\n\n/**\n * The actual version of the protocol used for network communication.\n *\n * @example 1.1\n * @example 2\n *\n * @note If protocol version is subject to negotiation (for example using [ALPN](https://www.rfc-editor.org/rfc/rfc7301.html)), this attribute **SHOULD** be set to the negotiated version. If the actual protocol version is not known, this attribute **SHOULD NOT** be set.\n */\nexport const ATTR_NETWORK_PROTOCOL_VERSION = 'network.protocol.version' as const;\n\n/**\n * [OSI transport layer](https://wikipedia.org/wiki/Transport_layer) or [inter-process communication method](https://wikipedia.org/wiki/Inter-process_communication).\n *\n * @example tcp\n * @example udp\n *\n * @note The value **SHOULD** be normalized to lowercase.\n *\n * Consider always setting the transport when setting a port number, since\n * a port number is ambiguous without knowing the transport. For example\n * different processes could be listening on TCP port 12345 and UDP port 12345.\n */\nexport const ATTR_NETWORK_TRANSPORT = 'network.transport' as const;\n\n/**\n * Enum value \"pipe\" for attribute {@link ATTR_NETWORK_TRANSPORT}.\n *\n * Named or anonymous pipe.\n */\nexport const NETWORK_TRANSPORT_VALUE_PIPE = \"pipe\" as const;\n\n/**\n * Enum value \"quic\" for attribute {@link ATTR_NETWORK_TRANSPORT}.\n *\n * QUIC\n */\nexport const NETWORK_TRANSPORT_VALUE_QUIC = \"quic\" as const;\n\n/**\n * Enum value \"tcp\" for attribute {@link ATTR_NETWORK_TRANSPORT}.\n *\n * TCP\n */\nexport const NETWORK_TRANSPORT_VALUE_TCP = \"tcp\" as const;\n\n/**\n * Enum value \"udp\" for attribute {@link ATTR_NETWORK_TRANSPORT}.\n *\n * UDP\n */\nexport const NETWORK_TRANSPORT_VALUE_UDP = \"udp\" as const;\n\n/**\n * Enum value \"unix\" for attribute {@link ATTR_NETWORK_TRANSPORT}.\n *\n * Unix domain socket\n */\nexport const NETWORK_TRANSPORT_VALUE_UNIX = \"unix\" as const;\n\n/**\n * [OSI network layer](https://wikipedia.org/wiki/Network_layer) or non-OSI equivalent.\n *\n * @example ipv4\n * @example ipv6\n *\n * @note The value **SHOULD** be normalized to lowercase.\n */\nexport const ATTR_NETWORK_TYPE = 'network.type' as const;\n\n/**\n * Enum value \"ipv4\" for attribute {@link ATTR_NETWORK_TYPE}.\n *\n * IPv4\n */\nexport const NETWORK_TYPE_VALUE_IPV4 = \"ipv4\" as const;\n\n/**\n * Enum value \"ipv6\" for attribute {@link ATTR_NETWORK_TYPE}.\n *\n * IPv6\n */\nexport const NETWORK_TYPE_VALUE_IPV6 = \"ipv6\" as const;\n\n/**\n * The name of the instrumentation scope - (`InstrumentationScope.Name` in OTLP).\n *\n * @example io.opentelemetry.contrib.mongodb\n */\nexport const ATTR_OTEL_SCOPE_NAME = 'otel.scope.name' as const;\n\n/**\n * The version of the instrumentation scope - (`InstrumentationScope.Version` in OTLP).\n *\n * @example 1.0.0\n */\nexport const ATTR_OTEL_SCOPE_VERSION = 'otel.scope.version' as const;\n\n/**\n * Name of the code, either \"OK\" or \"ERROR\". **MUST NOT** be set if the status code is UNSET.\n */\nexport const ATTR_OTEL_STATUS_CODE = 'otel.status_code' as const;\n\n/**\n * Enum value \"ERROR\" for attribute {@link ATTR_OTEL_STATUS_CODE}.\n *\n * The operation contains an error.\n */\nexport const OTEL_STATUS_CODE_VALUE_ERROR = \"ERROR\" as const;\n\n/**\n * Enum value \"OK\" for attribute {@link ATTR_OTEL_STATUS_CODE}.\n *\n * The operation has been validated by an Application developer or Operator to have completed successfully.\n */\nexport const OTEL_STATUS_CODE_VALUE_OK = \"OK\" as const;\n\n/**\n * Description of the Status if it has a value, otherwise not set.\n *\n * @example resource not found\n */\nexport const ATTR_OTEL_STATUS_DESCRIPTION = 'otel.status_description' as const;\n\n/**\n * Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.\n *\n * @example example.com\n * @example 10.1.2.80\n * @example /tmp/my.sock\n *\n * @note When observed from the client side, and when communicating through an intermediary, `server.address` **SHOULD** represent the server address behind any intermediaries, for example proxies, if it's available.\n */\nexport const ATTR_SERVER_ADDRESS = 'server.address' as const;\n\n/**\n * Server port number.\n *\n * @example 80\n * @example 8080\n * @example 443\n *\n * @note When observed from the client side, and when communicating through an intermediary, `server.port` **SHOULD** represent the server port behind any intermediaries, for example proxies, if it's available.\n */\nexport const ATTR_SERVER_PORT = 'server.port' as const;\n\n/**\n * The string ID of the service instance.\n *\n * @example 627cc493-f310-47de-96bd-71410b7dec09\n *\n * @note **MUST** be unique for each instance of the same `service.namespace,service.name` pair (in other words\n * `service.namespace,service.name,service.instance.id` triplet **MUST** be globally unique). The ID helps to\n * distinguish instances of the same service that exist at the same time (e.g. instances of a horizontally scaled\n * service).\n *\n * Implementations, such as SDKs, are recommended to generate a random Version 1 or Version 4 [RFC\n * 4122](https://www.ietf.org/rfc/rfc4122.txt) UUID, but are free to use an inherent unique ID as the source of\n * this value if stability is desirable. In that case, the ID **SHOULD** be used as source of a UUID Version 5 and\n * **SHOULD** use the following UUID as the namespace: `4d63009a-8d0f-11ee-aad7-4c796ed8e320`.\n *\n * UUIDs are typically recommended, as only an opaque value for the purposes of identifying a service instance is\n * needed. Similar to what can be seen in the man page for the\n * [`/etc/machine-id`](https://www.freedesktop.org/software/systemd/man/latest/machine-id.html) file, the underlying\n * data, such as pod name and namespace should be treated as confidential, being the user's choice to expose it\n * or not via another resource attribute.\n *\n * For applications running behind an application server (like unicorn), we do not recommend using one identifier\n * for all processes participating in the application. Instead, it's recommended each division (e.g. a worker\n * thread in unicorn) to have its own instance.id.\n *\n * It's not recommended for a Collector to set `service.instance.id` if it can't unambiguously determine the\n * service instance that is generating that telemetry. For instance, creating an UUID based on `pod.name` will\n * likely be wrong, as the Collector might not know from which container within that pod the telemetry originated.\n * However, Collectors can set the `service.instance.id` if they can unambiguously determine the service instance\n * for that telemetry. This is typically the case for scraping receivers, as they know the target address and\n * port.\n */\nexport const ATTR_SERVICE_INSTANCE_ID = 'service.instance.id' as const;\n\n/**\n * Logical name of the service.\n *\n * @example shoppingcart\n *\n * @note **MUST** be the same for all instances of horizontally scaled services. If the value was not specified, SDKs **MUST** fallback to `unknown_service:` concatenated with [`process.executable.name`](process.md), e.g. `unknown_service:bash`. If `process.executable.name` is not available, the value **MUST** be set to `unknown_service`.\n */\nexport const ATTR_SERVICE_NAME = 'service.name' as const;\n\n/**\n * A namespace for `service.name`.\n *\n * @example Shop\n *\n * @note A string value having a meaning that helps to distinguish a group of services, for example the team name that owns a group of services. `service.name` is expected to be unique within the same namespace. If `service.namespace` is not specified in the Resource then `service.name` is expected to be unique for all services that have no explicit namespace defined (so the empty/unspecified namespace is simply one more valid namespace). Zero-length namespace string is assumed equal to unspecified namespace.\n */\nexport const ATTR_SERVICE_NAMESPACE = 'service.namespace' as const;\n\n/**\n * The version string of the service component. The format is not defined by these conventions.\n *\n * @example 2.0.0\n * @example a01dbef8a\n */\nexport const ATTR_SERVICE_VERSION = 'service.version' as const;\n\n/**\n * SignalR HTTP connection closure status.\n *\n * @example app_shutdown\n * @example timeout\n */\nexport const ATTR_SIGNALR_CONNECTION_STATUS = 'signalr.connection.status' as const;\n\n/**\n * Enum value \"app_shutdown\" for attribute {@link ATTR_SIGNALR_CONNECTION_STATUS}.\n *\n * The connection was closed because the app is shutting down.\n */\nexport const SIGNALR_CONNECTION_STATUS_VALUE_APP_SHUTDOWN = \"app_shutdown\" as const;\n\n/**\n * Enum value \"normal_closure\" for attribute {@link ATTR_SIGNALR_CONNECTION_STATUS}.\n *\n * The connection was closed normally.\n */\nexport const SIGNALR_CONNECTION_STATUS_VALUE_NORMAL_CLOSURE = \"normal_closure\" as const;\n\n/**\n * Enum value \"timeout\" for attribute {@link ATTR_SIGNALR_CONNECTION_STATUS}.\n *\n * The connection was closed due to a timeout.\n */\nexport const SIGNALR_CONNECTION_STATUS_VALUE_TIMEOUT = \"timeout\" as const;\n\n/**\n * [SignalR transport type](https://github.com/dotnet/aspnetcore/blob/main/src/SignalR/docs/specs/TransportProtocols.md)\n *\n * @example web_sockets\n * @example long_polling\n */\nexport const ATTR_SIGNALR_TRANSPORT = 'signalr.transport' as const;\n\n/**\n * Enum value \"long_polling\" for attribute {@link ATTR_SIGNALR_TRANSPORT}.\n *\n * LongPolling protocol\n */\nexport const SIGNALR_TRANSPORT_VALUE_LONG_POLLING = \"long_polling\" as const;\n\n/**\n * Enum value \"server_sent_events\" for attribute {@link ATTR_SIGNALR_TRANSPORT}.\n *\n * ServerSentEvents protocol\n */\nexport const SIGNALR_TRANSPORT_VALUE_SERVER_SENT_EVENTS = \"server_sent_events\" as const;\n\n/**\n * Enum value \"web_sockets\" for attribute {@link ATTR_SIGNALR_TRANSPORT}.\n *\n * WebSockets protocol\n */\nexport const SIGNALR_TRANSPORT_VALUE_WEB_SOCKETS = \"web_sockets\" as const;\n\n/**\n * The language of the telemetry SDK.\n */\nexport const ATTR_TELEMETRY_SDK_LANGUAGE = 'telemetry.sdk.language' as const;\n\n/**\n * Enum value \"cpp\" for attribute {@link ATTR_TELEMETRY_SDK_LANGUAGE}.\n */\nexport const TELEMETRY_SDK_LANGUAGE_VALUE_CPP = \"cpp\" as const;\n\n/**\n * Enum value \"dotnet\" for attribute {@link ATTR_TELEMETRY_SDK_LANGUAGE}.\n */\nexport const TELEMETRY_SDK_LANGUAGE_VALUE_DOTNET = \"dotnet\" as const;\n\n/**\n * Enum value \"erlang\" for attribute {@link ATTR_TELEMETRY_SDK_LANGUAGE}.\n */\nexport const TELEMETRY_SDK_LANGUAGE_VALUE_ERLANG = \"erlang\" as const;\n\n/**\n * Enum value \"go\" for attribute {@link ATTR_TELEMETRY_SDK_LANGUAGE}.\n */\nexport const TELEMETRY_SDK_LANGUAGE_VALUE_GO = \"go\" as const;\n\n/**\n * Enum value \"java\" for attribute {@link ATTR_TELEMETRY_SDK_LANGUAGE}.\n */\nexport const TELEMETRY_SDK_LANGUAGE_VALUE_JAVA = \"java\" as const;\n\n/**\n * Enum value \"nodejs\" for attribute {@link ATTR_TELEMETRY_SDK_LANGUAGE}.\n */\nexport const TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS = \"nodejs\" as const;\n\n/**\n * Enum value \"php\" for attribute {@link ATTR_TELEMETRY_SDK_LANGUAGE}.\n */\nexport const TELEMETRY_SDK_LANGUAGE_VALUE_PHP = \"php\" as const;\n\n/**\n * Enum value \"python\" for attribute {@link ATTR_TELEMETRY_SDK_LANGUAGE}.\n */\nexport const TELEMETRY_SDK_LANGUAGE_VALUE_PYTHON = \"python\" as const;\n\n/**\n * Enum value \"ruby\" for attribute {@link ATTR_TELEMETRY_SDK_LANGUAGE}.\n */\nexport const TELEMETRY_SDK_LANGUAGE_VALUE_RUBY = \"ruby\" as const;\n\n/**\n * Enum value \"rust\" for attribute {@link ATTR_TELEMETRY_SDK_LANGUAGE}.\n */\nexport const TELEMETRY_SDK_LANGUAGE_VALUE_RUST = \"rust\" as const;\n\n/**\n * Enum value \"swift\" for attribute {@link ATTR_TELEMETRY_SDK_LANGUAGE}.\n */\nexport const TELEMETRY_SDK_LANGUAGE_VALUE_SWIFT = \"swift\" as const;\n\n/**\n * Enum value \"webjs\" for attribute {@link ATTR_TELEMETRY_SDK_LANGUAGE}.\n */\nexport const TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS = \"webjs\" as const;\n\n/**\n * The name of the telemetry SDK as defined above.\n *\n * @example opentelemetry\n *\n * @note The OpenTelemetry SDK **MUST** set the `telemetry.sdk.name` attribute to `opentelemetry`.\n * If another SDK, like a fork or a vendor-provided implementation, is used, this SDK **MUST** set the\n * `telemetry.sdk.name` attribute to the fully-qualified class or module name of this SDK's main entry point\n * or another suitable identifier depending on the language.\n * The identifier `opentelemetry` is reserved and **MUST NOT** be used in this case.\n * All custom identifiers **SHOULD** be stable across different versions of an implementation.\n */\nexport const ATTR_TELEMETRY_SDK_NAME = 'telemetry.sdk.name' as const;\n\n/**\n * The version string of the telemetry SDK.\n *\n * @example 1.2.3\n */\nexport const ATTR_TELEMETRY_SDK_VERSION = 'telemetry.sdk.version' as const;\n\n/**\n * The [URI fragment](https://www.rfc-editor.org/rfc/rfc3986#section-3.5) component\n *\n * @example SemConv\n */\nexport const ATTR_URL_FRAGMENT = 'url.fragment' as const;\n\n/**\n * Absolute URL describing a network resource according to [RFC3986](https://www.rfc-editor.org/rfc/rfc3986)\n *\n * @example https://www.foo.bar/search?q=OpenTelemetry#SemConv\n * @example //localhost\n *\n * @note For network calls, URL usually has `scheme://host[:port][path][?query][#fragment]` format, where the fragment\n * is not transmitted over HTTP, but if it is known, it **SHOULD** be included nevertheless.\n *\n * `url.full` **MUST NOT** contain credentials passed via URL in form of `https://username:password@www.example.com/`.\n * In such case username and password **SHOULD** be redacted and attribute's value **SHOULD** be `https://REDACTED:REDACTED@www.example.com/`.\n *\n * `url.full` **SHOULD** capture the absolute URL when it is available (or can be reconstructed).\n *\n * Sensitive content provided in `url.full` **SHOULD** be scrubbed when instrumentations can identify it.\n *\n *\n * Query string values for the following keys **SHOULD** be redacted by default and replaced by the\n * value `REDACTED`:\n *\n * - [`AWSAccessKeyId`](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RESTAuthentication.html#RESTAuthenticationQueryStringAuth)\n * - [`Signature`](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RESTAuthentication.html#RESTAuthenticationQueryStringAuth)\n * - [`sig`](https://learn.microsoft.com/azure/storage/common/storage-sas-overview#sas-token)\n * - [`X-Goog-Signature`](https://cloud.google.com/storage/docs/access-control/signed-urls)\n *\n * This list is subject to change over time.\n *\n * Matching of query parameter keys against the sensitive list **SHOULD** be case-sensitive.\n *\n *\n * Instrumentation **MAY** provide a way to override this list via declarative configuration.\n * If so, it **SHOULD** use the `sensitive_query_parameters` property\n * (an array of case-sensitive strings with minimum items 0) under\n * `.instrumentation/development.general.sanitization.url`.\n * This list is a full override of the default sensitive query parameter keys,\n * it is not a list of keys in addition to the defaults.\n *\n * When a query string value is redacted, the query string key **SHOULD** still be preserved, e.g.\n * `https://www.example.com/path?color=blue&sig=REDACTED`.\n */\nexport const ATTR_URL_FULL = 'url.full' as const;\n\n/**\n * The [URI path](https://www.rfc-editor.org/rfc/rfc3986#section-3.3) component\n *\n * @example /search\n *\n * @note Sensitive content provided in `url.path` **SHOULD** be scrubbed when instrumentations can identify it.\n */\nexport const ATTR_URL_PATH = 'url.path' as const;\n\n/**\n * The [URI query](https://www.rfc-editor.org/rfc/rfc3986#section-3.4) component\n *\n * @example q=OpenTelemetry\n *\n * @note Sensitive content provided in `url.query` **SHOULD** be scrubbed when instrumentations can identify it.\n *\n *\n * Query string values for the following keys **SHOULD** be redacted by default and replaced by the value `REDACTED`:\n *\n * - [`AWSAccessKeyId`](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RESTAuthentication.html#RESTAuthenticationQueryStringAuth)\n * - [`Signature`](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RESTAuthentication.html#RESTAuthenticationQueryStringAuth)\n * - [`sig`](https://learn.microsoft.com/azure/storage/common/storage-sas-overview#sas-token)\n * - [`X-Goog-Signature`](https://cloud.google.com/storage/docs/access-control/signed-urls)\n *\n * This list is subject to change over time.\n *\n * Matching of query parameter keys against the sensitive list **SHOULD** be case-sensitive.\n *\n * Instrumentation **MAY** provide a way to override this list via declarative configuration.\n * If so, it **SHOULD** use the `sensitive_query_parameters` property\n * (an array of case-sensitive strings with minimum items 0) under\n * `.instrumentation/development.general.sanitization.url`.\n * This list is a full override of the default sensitive query parameter keys,\n * it is not a list of keys in addition to the defaults.\n *\n * When a query string value is redacted, the query string key **SHOULD** still be preserved, e.g.\n * `q=OpenTelemetry&sig=REDACTED`.\n */\nexport const ATTR_URL_QUERY = 'url.query' as const;\n\n/**\n * The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol.\n *\n * @example https\n * @example ftp\n * @example telnet\n */\nexport const ATTR_URL_SCHEME = 'url.scheme' as const;\n\n/**\n * Value of the [HTTP User-Agent](https://www.rfc-editor.org/rfc/rfc9110.html#field.user-agent) header sent by the client.\n *\n * @example CERN-LineMode/2.15 libwww/2.17b3\n * @example Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1\n * @example YourApp/1.0.0 grpc-java-okhttp/1.27.2\n */\nexport const ATTR_USER_AGENT_ORIGINAL = 'user_agent.original' as const;\n\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { diag } from '@opentelemetry/api';\nimport { inspect } from 'util';\n\n/**\n * Retrieves a number from an environment variable.\n * - Returns `undefined` if the environment variable is empty, unset, contains only whitespace, or is not a number.\n * - Returns a number in all other cases.\n *\n * @param {string} key - The name of the environment variable to retrieve.\n * @returns {number | undefined} - The number value or `undefined`.\n */\nexport function getNumberFromEnv(key: string): number | undefined {\n const raw = process.env[key];\n if (raw == null || raw.trim() === '') {\n return undefined;\n }\n\n const value = Number(raw);\n if (isNaN(value)) {\n diag.warn(\n `Unknown value ${inspect(raw)} for ${key}, expected a number, using defaults`\n );\n return undefined;\n }\n\n return value;\n}\n\n/**\n * Retrieves a string from an environment variable.\n * - Returns `undefined` if the environment variable is empty, unset, or contains only whitespace.\n *\n * @param {string} key - The name of the environment variable to retrieve.\n * @returns {string | undefined} - The string value or `undefined`.\n */\nexport function getStringFromEnv(key: string): string | undefined {\n const raw = process.env[key];\n if (raw == null || raw.trim() === '') {\n return undefined;\n }\n return raw;\n}\n\n/**\n * Retrieves a boolean value from an environment variable.\n * - Trims leading and trailing whitespace and ignores casing.\n * - Returns `false` if the environment variable is empty, unset, or contains only whitespace.\n * - Returns `false` for strings that cannot be mapped to a boolean.\n *\n * @param {string} key - The name of the environment variable to retrieve.\n * @returns {boolean} - The boolean value or `false` if the environment variable is unset empty, unset, or contains only whitespace.\n */\nexport function getBooleanFromEnv(key: string): boolean {\n const raw = process.env[key]?.trim().toLowerCase();\n if (raw == null || raw === '') {\n // NOTE: falling back to `false` instead of `undefined` as required by the specification.\n // If you have a use-case that requires `undefined`, consider using `getStringFromEnv()` and applying the necessary\n // normalizations in the consuming code.\n return false;\n }\n if (raw === 'true') {\n return true;\n } else if (raw === 'false') {\n return false;\n } else {\n diag.warn(\n `Unknown value ${inspect(raw)} for ${key}, expected 'true' or 'false', falling back to 'false' (default)`\n );\n return false;\n }\n}\n\n/**\n * Retrieves a list of strings from an environment variable.\n * - Uses ',' as the delimiter.\n * - Trims leading and trailing whitespace from each entry.\n * - Excludes empty entries.\n * - Returns `undefined` if the environment variable is empty or contains only whitespace.\n * - Returns an empty array if all entries are empty or whitespace.\n *\n * @param {string} key - The name of the environment variable to retrieve.\n * @returns {string[] | undefined} - The list of strings or `undefined`.\n */\nexport function getStringListFromEnv(key: string): string[] | undefined {\n return getStringFromEnv(key)\n ?.split(',')\n .map(v => v.trim())\n .filter(s => s !== '');\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const VERSION = '2.6.1';\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { VERSION } from '../../version';\nimport {\n ATTR_TELEMETRY_SDK_NAME,\n ATTR_TELEMETRY_SDK_LANGUAGE,\n TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS,\n ATTR_TELEMETRY_SDK_VERSION,\n} from '@opentelemetry/semantic-conventions';\nimport { ATTR_PROCESS_RUNTIME_NAME } from '../../semconv';\n\n/** Constants describing the SDK in use */\nexport const SDK_INFO = {\n [ATTR_TELEMETRY_SDK_NAME]: 'opentelemetry',\n [ATTR_PROCESS_RUNTIME_NAME]: 'node',\n [ATTR_TELEMETRY_SDK_LANGUAGE]: TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS,\n [ATTR_TELEMETRY_SDK_VERSION]: VERSION,\n};\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n\n/**\n * The name of the runtime of this process.\n *\n * @example OpenJDK Runtime Environment\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_PROCESS_RUNTIME_NAME = 'process.runtime.name' as const;\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport interface ExportResult {\n code: ExportResultCode;\n error?: Error;\n}\n\nexport enum ExportResultCode {\n SUCCESS,\n FAILED,\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport class Deferred {\n private _promise: Promise;\n private _resolve!: (val: T) => void;\n private _reject!: (error: unknown) => void;\n constructor() {\n this._promise = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n }\n\n get promise() {\n return this._promise;\n }\n\n resolve(val: T) {\n this._resolve(val);\n }\n\n reject(err: unknown) {\n this._reject(err);\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { AttributeValue, Attributes } from '@opentelemetry/api';\nimport { diag } from '@opentelemetry/api';\n\nexport function sanitizeAttributes(attributes: unknown): Attributes {\n const out: Attributes = {};\n\n if (typeof attributes !== 'object' || attributes == null) {\n return out;\n }\n\n for (const key in attributes) {\n if (!Object.prototype.hasOwnProperty.call(attributes, key)) {\n continue;\n }\n if (!isAttributeKey(key)) {\n diag.warn(`Invalid attribute key: ${key}`);\n continue;\n }\n const val = (attributes as Record)[key];\n if (!isAttributeValue(val)) {\n diag.warn(`Invalid attribute value set for key: ${key}`);\n continue;\n }\n if (Array.isArray(val)) {\n out[key] = val.slice();\n } else {\n out[key] = val;\n }\n }\n\n return out;\n}\n\nexport function isAttributeKey(key: unknown): key is string {\n return typeof key === 'string' && key !== '';\n}\n\nexport function isAttributeValue(val: unknown): val is AttributeValue {\n if (val == null) {\n return true;\n }\n\n if (Array.isArray(val)) {\n return isHomogeneousAttributeValueArray(val);\n }\n\n return isValidPrimitiveAttributeValueType(typeof val);\n}\n\nfunction isHomogeneousAttributeValueArray(arr: unknown[]): boolean {\n let type: string | undefined;\n\n for (const element of arr) {\n // null/undefined elements are allowed\n if (element == null) continue;\n const elementType = typeof element;\n\n if (elementType === type) {\n continue;\n }\n\n if (!type) {\n if (isValidPrimitiveAttributeValueType(elementType)) {\n type = elementType;\n continue;\n }\n // encountered an invalid primitive\n return false;\n }\n\n return false;\n }\n\n return true;\n}\n\nfunction isValidPrimitiveAttributeValueType(valType: string): boolean {\n switch (valType) {\n case 'number':\n case 'boolean':\n case 'string':\n return true;\n }\n\n return false;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport {\n getStringFromEnv,\n getBooleanFromEnv,\n getNumberFromEnv,\n getStringListFromEnv,\n} from './environment';\nexport { _globalThis } from '../../common/globalThis';\nexport { SDK_INFO } from './sdk-info';\n\n/**\n * @deprecated Use performance directly.\n */\nexport const otperformance: { now(): number; readonly timeOrigin: number } =\n performance;\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport { isPlainObject } from './lodash.merge';\n\nconst MAX_LEVEL = 20;\n\ninterface ObjectInto {\n obj: any;\n key: string;\n}\n\n/**\n * Merges objects together\n * @param args - objects / values to be merged\n */\nexport function merge(...args: any[]): any {\n let result: any = args.shift();\n const objects: WeakMap | undefined = new WeakMap<\n any,\n ObjectInto[]\n >();\n while (args.length > 0) {\n result = mergeTwoObjects(result, args.shift(), 0, objects);\n }\n\n return result;\n}\n\nfunction takeValue(value: any): any {\n if (isArray(value)) {\n return value.slice();\n }\n return value;\n}\n\n/**\n * Merges two objects\n * @param one - first object\n * @param two - second object\n * @param level - current deep level\n * @param objects - objects holder that has been already referenced - to prevent\n * cyclic dependency\n */\nfunction mergeTwoObjects(\n one: any,\n two: any,\n level = 0,\n objects: WeakMap\n): any {\n let result: any;\n if (level > MAX_LEVEL) {\n return undefined;\n }\n level++;\n if (isPrimitive(one) || isPrimitive(two) || isFunction(two)) {\n result = takeValue(two);\n } else if (isArray(one)) {\n result = one.slice();\n if (isArray(two)) {\n for (let i = 0, j = two.length; i < j; i++) {\n result.push(takeValue(two[i]));\n }\n } else if (isObject(two)) {\n const keys = Object.keys(two);\n for (let i = 0, j = keys.length; i < j; i++) {\n const key = keys[i];\n result[key] = takeValue(two[key]);\n }\n }\n } else if (isObject(one)) {\n if (isObject(two)) {\n if (!shouldMerge(one, two)) {\n return two;\n }\n result = Object.assign({}, one);\n const keys = Object.keys(two);\n\n for (let i = 0, j = keys.length; i < j; i++) {\n const key = keys[i];\n const twoValue = two[key];\n\n if (isPrimitive(twoValue)) {\n if (typeof twoValue === 'undefined') {\n delete result[key];\n } else {\n // result[key] = takeValue(twoValue);\n result[key] = twoValue;\n }\n } else {\n const obj1 = result[key];\n const obj2 = twoValue;\n\n if (\n wasObjectReferenced(one, key, objects) ||\n wasObjectReferenced(two, key, objects)\n ) {\n delete result[key];\n } else {\n if (isObject(obj1) && isObject(obj2)) {\n const arr1 = objects.get(obj1) || [];\n const arr2 = objects.get(obj2) || [];\n arr1.push({ obj: one, key });\n arr2.push({ obj: two, key });\n objects.set(obj1, arr1);\n objects.set(obj2, arr2);\n }\n\n result[key] = mergeTwoObjects(\n result[key],\n twoValue,\n level,\n objects\n );\n }\n }\n }\n } else {\n result = two;\n }\n }\n\n return result;\n}\n\n/**\n * Function to check if object has been already reference\n * @param obj\n * @param key\n * @param objects\n */\nfunction wasObjectReferenced(\n obj: any,\n key: string,\n objects: WeakMap\n): boolean {\n const arr = objects.get(obj[key]) || [];\n for (let i = 0, j = arr.length; i < j; i++) {\n const info = arr[i];\n if (info.key === key && info.obj === obj) {\n return true;\n }\n }\n return false;\n}\n\nfunction isArray(value: any): boolean {\n return Array.isArray(value);\n}\n\nfunction isFunction(value: any): boolean {\n return typeof value === 'function';\n}\n\nfunction isObject(value: any): boolean {\n return (\n !isPrimitive(value) &&\n !isArray(value) &&\n !isFunction(value) &&\n typeof value === 'object'\n );\n}\n\nfunction isPrimitive(value: any): boolean {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean' ||\n typeof value === 'undefined' ||\n value instanceof Date ||\n value instanceof RegExp ||\n value === null\n );\n}\n\nfunction shouldMerge(one: any, two: any): boolean {\n if (!isPlainObject(one) || !isPlainObject(two)) {\n return false;\n }\n\n return true;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport { W3CBaggagePropagator } from './baggage/propagation/W3CBaggagePropagator';\nexport { AnchoredClock } from './common/anchored-clock';\nexport type { Clock } from './common/anchored-clock';\nexport { isAttributeValue, sanitizeAttributes } from './common/attributes';\nexport {\n globalErrorHandler,\n setGlobalErrorHandler,\n} from './common/global-error-handler';\nexport { loggingErrorHandler } from './common/logging-error-handler';\nexport {\n addHrTimes,\n getTimeOrigin,\n hrTime,\n hrTimeDuration,\n hrTimeToMicroseconds,\n hrTimeToMilliseconds,\n hrTimeToNanoseconds,\n hrTimeToTimeStamp,\n isTimeInput,\n isTimeInputHrTime,\n millisToHrTime,\n timeInputToHrTime,\n} from './common/time';\nexport { unrefTimer } from './common/timer-util';\nexport type { ErrorHandler, InstrumentationScope } from './common/types';\nexport { ExportResultCode } from './ExportResult';\nexport type { ExportResult } from './ExportResult';\nexport { parseKeyPairsIntoRecord } from './baggage/utils';\nexport {\n SDK_INFO,\n _globalThis,\n getStringFromEnv,\n getBooleanFromEnv,\n getNumberFromEnv,\n getStringListFromEnv,\n otperformance,\n} from './platform';\nexport { CompositePropagator } from './propagation/composite';\nexport type { CompositePropagatorConfig } from './propagation/composite';\nexport {\n TRACE_PARENT_HEADER,\n TRACE_STATE_HEADER,\n W3CTraceContextPropagator,\n parseTraceParent,\n} from './trace/W3CTraceContextPropagator';\nexport {\n RPCType,\n deleteRPCMetadata,\n getRPCMetadata,\n setRPCMetadata,\n} from './trace/rpc-metadata';\nexport type { RPCMetadata } from './trace/rpc-metadata';\nexport {\n isTracingSuppressed,\n suppressTracing,\n unsuppressTracing,\n} from './trace/suppress-tracing';\nexport { TraceState } from './trace/TraceState';\nexport { merge } from './utils/merge';\nexport { TimeoutError, callWithTimeout } from './utils/timeout';\nexport { isUrlIgnored, urlMatches } from './utils/url';\nexport { BindOnceFuture } from './utils/callback';\nexport { diagLogLevelFromString } from './utils/configuration';\nimport { _export } from './internal/exporter';\nexport const internal = {\n _export,\n};\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type * as api from '@opentelemetry/api';\nimport { otperformance as performance } from '../platform';\n\nconst NANOSECOND_DIGITS = 9;\nconst NANOSECOND_DIGITS_IN_MILLIS = 6;\nconst MILLISECONDS_TO_NANOSECONDS = Math.pow(10, NANOSECOND_DIGITS_IN_MILLIS);\nconst SECOND_TO_NANOSECONDS = Math.pow(10, NANOSECOND_DIGITS);\n\n/**\n * Converts a number of milliseconds from epoch to HrTime([seconds, remainder in nanoseconds]).\n * @param epochMillis\n */\nexport function millisToHrTime(epochMillis: number): api.HrTime {\n const epochSeconds = epochMillis / 1000;\n // Decimals only.\n const seconds = Math.trunc(epochSeconds);\n // Round sub-nanosecond accuracy to nanosecond.\n const nanos = Math.round((epochMillis % 1000) * MILLISECONDS_TO_NANOSECONDS);\n return [seconds, nanos];\n}\n\n/**\n * @deprecated Use `performance.timeOrigin` directly.\n */\nexport function getTimeOrigin(): number {\n return performance.timeOrigin;\n}\n\n/**\n * Returns an hrtime calculated via performance component.\n * @param performanceNow\n */\nexport function hrTime(performanceNow?: number): api.HrTime {\n const timeOrigin = millisToHrTime(performance.timeOrigin);\n const now = millisToHrTime(\n typeof performanceNow === 'number' ? performanceNow : performance.now()\n );\n\n return addHrTimes(timeOrigin, now);\n}\n\n/**\n *\n * Converts a TimeInput to an HrTime, defaults to _hrtime().\n * @param time\n */\nexport function timeInputToHrTime(time: api.TimeInput): api.HrTime {\n // process.hrtime\n if (isTimeInputHrTime(time)) {\n return time as api.HrTime;\n } else if (typeof time === 'number') {\n // Must be a performance.now() if it's smaller than process start time.\n if (time < performance.timeOrigin) {\n return hrTime(time);\n } else {\n // epoch milliseconds or performance.timeOrigin\n return millisToHrTime(time);\n }\n } else if (time instanceof Date) {\n return millisToHrTime(time.getTime());\n } else {\n throw TypeError('Invalid input type');\n }\n}\n\n/**\n * Returns a duration of two hrTime.\n * @param startTime\n * @param endTime\n */\nexport function hrTimeDuration(\n startTime: api.HrTime,\n endTime: api.HrTime\n): api.HrTime {\n let seconds = endTime[0] - startTime[0];\n let nanos = endTime[1] - startTime[1];\n\n // overflow\n if (nanos < 0) {\n seconds -= 1;\n // negate\n nanos += SECOND_TO_NANOSECONDS;\n }\n\n return [seconds, nanos];\n}\n\n/**\n * Convert hrTime to timestamp, for example \"2019-05-14T17:00:00.000123456Z\"\n * @param time\n */\nexport function hrTimeToTimeStamp(time: api.HrTime): string {\n const precision = NANOSECOND_DIGITS;\n const tmp = `${'0'.repeat(precision)}${time[1]}Z`;\n const nanoString = tmp.substring(tmp.length - precision - 1);\n const date = new Date(time[0] * 1000).toISOString();\n return date.replace('000Z', nanoString);\n}\n\n/**\n * Convert hrTime to nanoseconds.\n * @param time\n */\nexport function hrTimeToNanoseconds(time: api.HrTime): number {\n return time[0] * SECOND_TO_NANOSECONDS + time[1];\n}\n\n/**\n * Convert hrTime to milliseconds.\n * @param time\n */\nexport function hrTimeToMilliseconds(time: api.HrTime): number {\n return time[0] * 1e3 + time[1] / 1e6;\n}\n\n/**\n * Convert hrTime to microseconds.\n * @param time\n */\nexport function hrTimeToMicroseconds(time: api.HrTime): number {\n return time[0] * 1e6 + time[1] / 1e3;\n}\n\n/**\n * check if time is HrTime\n * @param value\n */\nexport function isTimeInputHrTime(value: unknown): value is api.HrTime {\n return (\n Array.isArray(value) &&\n value.length === 2 &&\n typeof value[0] === 'number' &&\n typeof value[1] === 'number'\n );\n}\n\n/**\n * check if input value is a correct types.TimeInput\n * @param value\n */\nexport function isTimeInput(\n value: unknown\n): value is api.HrTime | number | Date {\n return (\n isTimeInputHrTime(value) ||\n typeof value === 'number' ||\n value instanceof Date\n );\n}\n\n/**\n * Given 2 HrTime formatted times, return their sum as an HrTime.\n */\nexport function addHrTimes(time1: api.HrTime, time2: api.HrTime): api.HrTime {\n const out = [time1[0] + time2[0], time1[1] + time2[1]] as api.HrTime;\n\n // Nanoseconds\n if (out[1] >= SECOND_TO_NANOSECONDS) {\n out[1] -= SECOND_TO_NANOSECONDS;\n out[0] += 1;\n }\n\n return out;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { context } from '@opentelemetry/api';\nimport type { ExportResult } from '../ExportResult';\nimport { suppressTracing } from '../trace/suppress-tracing';\n\nexport interface Exporter {\n export(arg: T, resultCallback: (result: ExportResult) => void): void;\n}\n\n/**\n * @internal\n * Shared functionality used by Exporters while exporting data, including suppression of Traces.\n */\nexport function _export(\n exporter: Exporter,\n arg: T\n): Promise {\n return new Promise(resolve => {\n // prevent downstream exporter calls from generating spans\n context.with(suppressTracing(context.active()), () => {\n exporter.export(arg, resolve);\n });\n });\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Context } from '@opentelemetry/api';\nimport { createContextKey } from '@opentelemetry/api';\n\nconst SUPPRESS_TRACING_KEY = createContextKey(\n 'OpenTelemetry SDK Context Key SUPPRESS_TRACING'\n);\n\nexport function suppressTracing(context: Context): Context {\n return context.setValue(SUPPRESS_TRACING_KEY, true);\n}\n\nexport function unsuppressTracing(context: Context): Context {\n return context.deleteValue(SUPPRESS_TRACING_KEY);\n}\n\nexport function isTracingSuppressed(context: Context): boolean {\n return context.getValue(SUPPRESS_TRACING_KEY) === true;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Exception } from '@opentelemetry/api';\nimport { loggingErrorHandler } from './logging-error-handler';\nimport type { ErrorHandler } from './types';\n\n/** The global error handler delegate */\nlet delegateHandler = loggingErrorHandler();\n\n/**\n * Set the global error handler\n * @param {ErrorHandler} handler\n */\nexport function setGlobalErrorHandler(handler: ErrorHandler): void {\n delegateHandler = handler;\n}\n\n/**\n * Return the global error handler\n * @param {Exception} ex\n */\nexport function globalErrorHandler(ex: Exception): void {\n try {\n delegateHandler(ex);\n } catch {} // eslint-disable-line no-empty\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { Deferred } from './promise';\n\n/**\n * Bind the callback and only invoke the callback once regardless how many times `BindOnceFuture.call` is invoked.\n */\nexport class BindOnceFuture<\n R,\n This = unknown,\n T extends (this: This, ...args: unknown[]) => R = () => R,\n> {\n private _isCalled = false;\n private _deferred = new Deferred();\n private _callback: T;\n private _that: This;\n\n constructor(callback: T, that: This) {\n this._callback = callback;\n this._that = that;\n }\n\n get isCalled() {\n return this._isCalled;\n }\n\n get promise() {\n return this._deferred.promise;\n }\n\n call(...args: Parameters): Promise {\n if (!this._isCalled) {\n this._isCalled = true;\n try {\n Promise.resolve(this._callback.call(this._that, ...args)).then(\n val => this._deferred.resolve(val),\n err => this._deferred.reject(err)\n );\n } catch (err) {\n this._deferred.reject(err);\n }\n }\n return this._deferred.promise;\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * based on lodash in order to support esm builds without esModuleInterop.\n * lodash is using MIT License.\n **/\n\nconst objectTag = '[object Object]';\nconst nullTag = '[object Null]';\nconst undefinedTag = '[object Undefined]';\nconst funcProto = Function.prototype;\nconst funcToString = funcProto.toString;\nconst objectCtorString = funcToString.call(Object);\nconst getPrototypeOf = Object.getPrototypeOf;\nconst objectProto = Object.prototype;\nconst hasOwnProperty = objectProto.hasOwnProperty;\nconst symToStringTag = Symbol ? Symbol.toStringTag : undefined;\nconst nativeObjectToString = objectProto.toString;\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nexport function isPlainObject(value: any) {\n if (!isObjectLike(value) || baseGetTag(value) !== objectTag) {\n return false;\n }\n const proto = getPrototypeOf(value);\n if (proto === null) {\n return true;\n }\n const Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return (\n typeof Ctor == 'function' &&\n Ctor instanceof Ctor &&\n funcToString.call(Ctor) === objectCtorString\n );\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value: any) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value: any) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return symToStringTag && symToStringTag in Object(value)\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value: any) {\n const isOwn = hasOwnProperty.call(value, symToStringTag as any),\n tag = value[symToStringTag as any];\n let unmasked = false;\n\n try {\n value[symToStringTag as any] = undefined;\n unmasked = true;\n } catch {\n // silence\n }\n\n const result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag as any] = tag;\n } else {\n delete value[symToStringTag as any];\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value: any) {\n return nativeObjectToString.call(value);\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Exception } from '@opentelemetry/api';\nimport { diag } from '@opentelemetry/api';\nimport type { ErrorHandler } from './types';\n\n/**\n * Returns a function that logs an error using the provided logger, or a\n * console logger if one was not provided.\n */\nexport function loggingErrorHandler(): ErrorHandler {\n return (ex: Exception) => {\n diag.error(stringifyException(ex));\n };\n}\n\n/**\n * Converts an exception into a string representation\n * @param {Exception} ex\n */\nfunction stringifyException(ex: Exception | string): string {\n if (typeof ex === 'string') {\n return ex;\n } else {\n return JSON.stringify(flattenException(ex));\n }\n}\n\n/**\n * Flattens an exception into key-value pairs by traversing the prototype chain\n * and coercing values to strings. Duplicate properties will not be overwritten;\n * the first insert wins.\n */\nfunction flattenException(ex: Exception): Record {\n const result = {} as Record;\n let current = ex;\n\n while (current !== null) {\n Object.getOwnPropertyNames(current).forEach(propertyName => {\n if (result[propertyName]) return;\n const value = current[propertyName as keyof typeof current];\n if (value) {\n result[propertyName] = String(value);\n }\n });\n current = Object.getPrototypeOf(current);\n }\n\n return result;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nimport type { Baggage, BaggageEntryMetadata } from '@opentelemetry/api';\nimport { baggageEntryMetadataFromString } from '@opentelemetry/api';\nimport {\n BAGGAGE_ITEMS_SEPARATOR,\n BAGGAGE_PROPERTIES_SEPARATOR,\n BAGGAGE_KEY_PAIR_SEPARATOR,\n BAGGAGE_MAX_TOTAL_LENGTH,\n} from './constants';\n\ntype ParsedBaggageKeyValue = {\n key: string;\n value: string;\n metadata: BaggageEntryMetadata | undefined;\n};\n\nexport function serializeKeyPairs(keyPairs: string[]): string {\n return keyPairs.reduce((hValue: string, current: string) => {\n const value = `${hValue}${\n hValue !== '' ? BAGGAGE_ITEMS_SEPARATOR : ''\n }${current}`;\n return value.length > BAGGAGE_MAX_TOTAL_LENGTH ? hValue : value;\n }, '');\n}\n\nexport function getKeyPairs(baggage: Baggage): string[] {\n return baggage.getAllEntries().map(([key, value]) => {\n let entry = `${encodeURIComponent(key)}=${encodeURIComponent(value.value)}`;\n\n // include opaque metadata if provided\n // NOTE: we intentionally don't URI-encode the metadata - that responsibility falls on the metadata implementation\n if (value.metadata !== undefined) {\n entry += BAGGAGE_PROPERTIES_SEPARATOR + value.metadata.toString();\n }\n\n return entry;\n });\n}\n\nexport function parsePairKeyValue(\n entry: string\n): ParsedBaggageKeyValue | undefined {\n if (!entry) return;\n const metadataSeparatorIndex = entry.indexOf(BAGGAGE_PROPERTIES_SEPARATOR);\n const keyPairPart =\n metadataSeparatorIndex === -1\n ? entry\n : entry.substring(0, metadataSeparatorIndex);\n\n const separatorIndex = keyPairPart.indexOf(BAGGAGE_KEY_PAIR_SEPARATOR);\n if (separatorIndex <= 0) return;\n\n const rawKey = keyPairPart.substring(0, separatorIndex).trim();\n const rawValue = keyPairPart.substring(separatorIndex + 1).trim();\n\n if (!rawKey || !rawValue) return;\n let key: string;\n let value: string;\n try {\n key = decodeURIComponent(rawKey);\n value = decodeURIComponent(rawValue);\n } catch {\n return;\n }\n\n let metadata;\n if (\n metadataSeparatorIndex !== -1 &&\n metadataSeparatorIndex < entry.length - 1\n ) {\n const metadataString = entry.substring(metadataSeparatorIndex + 1);\n metadata = baggageEntryMetadataFromString(metadataString);\n }\n\n return { key, value, metadata };\n}\n\n/**\n * Parse a string serialized in the baggage HTTP Format (without metadata):\n * https://github.com/w3c/baggage/blob/master/baggage/HTTP_HEADER_FORMAT.md\n */\nexport function parseKeyPairsIntoRecord(\n value?: string\n): Record {\n const result: Record = {};\n\n if (typeof value === 'string' && value.length > 0) {\n value.split(BAGGAGE_ITEMS_SEPARATOR).forEach(entry => {\n const keyPair = parsePairKeyValue(entry);\n\n if (keyPair !== undefined && keyPair.value.length > 0) {\n result[keyPair.key] = keyPair.value;\n }\n });\n }\n\n return result;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n BaggageEntry,\n Context,\n TextMapGetter,\n TextMapPropagator,\n TextMapSetter,\n} from '@opentelemetry/api';\nimport { propagation } from '@opentelemetry/api';\n\nimport { isTracingSuppressed } from '../../trace/suppress-tracing';\nimport {\n BAGGAGE_HEADER,\n BAGGAGE_ITEMS_SEPARATOR,\n BAGGAGE_MAX_NAME_VALUE_PAIRS,\n BAGGAGE_MAX_PER_NAME_VALUE_PAIRS,\n} from '../constants';\nimport { getKeyPairs, parsePairKeyValue, serializeKeyPairs } from '../utils';\n\n/**\n * Propagates {@link Baggage} through Context format propagation.\n *\n * Based on the Baggage specification:\n * https://w3c.github.io/baggage/\n */\nexport class W3CBaggagePropagator implements TextMapPropagator {\n inject(context: Context, carrier: unknown, setter: TextMapSetter): void {\n const baggage = propagation.getBaggage(context);\n if (!baggage || isTracingSuppressed(context)) return;\n const keyPairs = getKeyPairs(baggage)\n .filter((pair: string) => {\n return pair.length <= BAGGAGE_MAX_PER_NAME_VALUE_PAIRS;\n })\n .slice(0, BAGGAGE_MAX_NAME_VALUE_PAIRS);\n const headerValue = serializeKeyPairs(keyPairs);\n if (headerValue.length > 0) {\n setter.set(carrier, BAGGAGE_HEADER, headerValue);\n }\n }\n\n extract(context: Context, carrier: unknown, getter: TextMapGetter): Context {\n const headerValue = getter.get(carrier, BAGGAGE_HEADER);\n const baggageString = Array.isArray(headerValue)\n ? headerValue.join(BAGGAGE_ITEMS_SEPARATOR)\n : headerValue;\n if (!baggageString) return context;\n const baggage: Record = {};\n if (baggageString.length === 0) {\n return context;\n }\n const pairs = baggageString.split(BAGGAGE_ITEMS_SEPARATOR);\n pairs.forEach(entry => {\n const keyPair = parsePairKeyValue(entry);\n if (keyPair) {\n const baggageEntry: BaggageEntry = { value: keyPair.value };\n if (keyPair.metadata) {\n baggageEntry.metadata = keyPair.metadata;\n }\n baggage[keyPair.key] = baggageEntry;\n }\n });\n if (Object.entries(baggage).length === 0) {\n return context;\n }\n return propagation.setBaggage(context, propagation.createBaggage(baggage));\n }\n\n fields(): string[] {\n return [BAGGAGE_HEADER];\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n Context,\n SpanContext,\n TextMapGetter,\n TextMapPropagator,\n TextMapSetter,\n} from '@opentelemetry/api';\nimport { isSpanContextValid, trace, TraceFlags } from '@opentelemetry/api';\nimport { isTracingSuppressed } from './suppress-tracing';\nimport { TraceState } from './TraceState';\n\nexport const TRACE_PARENT_HEADER = 'traceparent';\nexport const TRACE_STATE_HEADER = 'tracestate';\n\nconst VERSION = '00';\nconst VERSION_PART = '(?!ff)[\\\\da-f]{2}';\nconst TRACE_ID_PART = '(?![0]{32})[\\\\da-f]{32}';\nconst PARENT_ID_PART = '(?![0]{16})[\\\\da-f]{16}';\nconst FLAGS_PART = '[\\\\da-f]{2}';\nconst TRACE_PARENT_REGEX = new RegExp(\n `^\\\\s?(${VERSION_PART})-(${TRACE_ID_PART})-(${PARENT_ID_PART})-(${FLAGS_PART})(-.*)?\\\\s?$`\n);\n\n/**\n * Parses information from the [traceparent] span tag and converts it into {@link SpanContext}\n * @param traceParent - A meta property that comes from server.\n * It should be dynamically generated server side to have the server's request trace Id,\n * a parent span Id that was set on the server's request span,\n * and the trace flags to indicate the server's sampling decision\n * (01 = sampled, 00 = not sampled).\n * for example: '{version}-{traceId}-{spanId}-{sampleDecision}'\n * For more information see {@link https://www.w3.org/TR/trace-context/}\n */\nexport function parseTraceParent(traceParent: string): SpanContext | null {\n const match = TRACE_PARENT_REGEX.exec(traceParent);\n if (!match) return null;\n\n // According to the specification the implementation should be compatible\n // with future versions. If there are more parts, we only reject it if it's using version 00\n // See https://www.w3.org/TR/trace-context/#versioning-of-traceparent\n if (match[1] === '00' && match[5]) return null;\n\n return {\n traceId: match[2],\n spanId: match[3],\n traceFlags: parseInt(match[4], 16),\n };\n}\n\n/**\n * Propagates {@link SpanContext} through Trace Context format propagation.\n *\n * Based on the Trace Context specification:\n * https://www.w3.org/TR/trace-context/\n */\nexport class W3CTraceContextPropagator implements TextMapPropagator {\n inject(context: Context, carrier: unknown, setter: TextMapSetter): void {\n const spanContext = trace.getSpanContext(context);\n if (\n !spanContext ||\n isTracingSuppressed(context) ||\n !isSpanContextValid(spanContext)\n )\n return;\n\n const traceParent = `${VERSION}-${spanContext.traceId}-${\n spanContext.spanId\n }-0${Number(spanContext.traceFlags || TraceFlags.NONE).toString(16)}`;\n\n setter.set(carrier, TRACE_PARENT_HEADER, traceParent);\n if (spanContext.traceState) {\n setter.set(\n carrier,\n TRACE_STATE_HEADER,\n spanContext.traceState.serialize()\n );\n }\n }\n\n extract(context: Context, carrier: unknown, getter: TextMapGetter): Context {\n const traceParentHeader = getter.get(carrier, TRACE_PARENT_HEADER);\n if (!traceParentHeader) return context;\n const traceParent = Array.isArray(traceParentHeader)\n ? traceParentHeader[0]\n : traceParentHeader;\n if (typeof traceParent !== 'string') return context;\n const spanContext = parseTraceParent(traceParent);\n if (!spanContext) return context;\n\n spanContext.isRemote = true;\n\n const traceStateHeader = getter.get(carrier, TRACE_STATE_HEADER);\n if (traceStateHeader) {\n // If more than one `tracestate` header is found, we merge them into a\n // single header.\n const state = Array.isArray(traceStateHeader)\n ? traceStateHeader.join(',')\n : traceStateHeader;\n spanContext.traceState = new TraceState(\n typeof state === 'string' ? state : undefined\n );\n }\n return trace.setSpanContext(context, spanContext);\n }\n\n fields(): string[] {\n return [TRACE_PARENT_HEADER, TRACE_STATE_HEADER];\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Context, Span } from '@opentelemetry/api';\nimport { createContextKey } from '@opentelemetry/api';\n\nconst RPC_METADATA_KEY = createContextKey(\n 'OpenTelemetry SDK Context Key RPC_METADATA'\n);\n\nexport enum RPCType {\n HTTP = 'http',\n}\n\ntype HTTPMetadata = {\n type: RPCType.HTTP;\n route?: string;\n span: Span;\n};\n\n/**\n * Allows for future rpc metadata to be used with this mechanism\n */\nexport type RPCMetadata = HTTPMetadata;\n\nexport function setRPCMetadata(context: Context, meta: RPCMetadata): Context {\n return context.setValue(RPC_METADATA_KEY, meta);\n}\n\nexport function deleteRPCMetadata(context: Context): Context {\n return context.deleteValue(RPC_METADATA_KEY);\n}\n\nexport function getRPCMetadata(context: Context): RPCMetadata | undefined {\n return context.getValue(RPC_METADATA_KEY) as RPCMetadata | undefined;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n Context,\n TextMapGetter,\n TextMapPropagator,\n TextMapSetter,\n} from '@opentelemetry/api';\nimport { diag } from '@opentelemetry/api';\n\n/** Configuration object for composite propagator */\nexport interface CompositePropagatorConfig {\n /**\n * List of propagators to run. Propagators run in the\n * list order. If a propagator later in the list writes the same context\n * key as a propagator earlier in the list, the later on will \"win\".\n */\n propagators?: TextMapPropagator[];\n}\n\n/** Combines multiple propagators into a single propagator. */\nexport class CompositePropagator implements TextMapPropagator {\n private readonly _propagators: TextMapPropagator[];\n private readonly _fields: string[];\n\n /**\n * Construct a composite propagator from a list of propagators.\n *\n * @param [config] Configuration object for composite propagator\n */\n constructor(config: CompositePropagatorConfig = {}) {\n this._propagators = config.propagators ?? [];\n\n this._fields = Array.from(\n new Set(\n this._propagators\n // older propagators may not have fields function, null check to be sure\n .map(p => (typeof p.fields === 'function' ? p.fields() : []))\n .reduce((x, y) => x.concat(y), [])\n )\n );\n }\n\n /**\n * Run each of the configured propagators with the given context and carrier.\n * Propagators are run in the order they are configured, so if multiple\n * propagators write the same carrier key, the propagator later in the list\n * will \"win\".\n *\n * @param context Context to inject\n * @param carrier Carrier into which context will be injected\n */\n inject(context: Context, carrier: unknown, setter: TextMapSetter): void {\n for (const propagator of this._propagators) {\n try {\n propagator.inject(context, carrier, setter);\n } catch (err) {\n diag.warn(\n `Failed to inject with ${propagator.constructor.name}. Err: ${err.message}`\n );\n }\n }\n }\n\n /**\n * Run each of the configured propagators with the given context and carrier.\n * Propagators are run in the order they are configured, so if multiple\n * propagators write the same context key, the propagator later in the list\n * will \"win\".\n *\n * @param context Context to add values to\n * @param carrier Carrier from which to extract context\n */\n extract(context: Context, carrier: unknown, getter: TextMapGetter): Context {\n return this._propagators.reduce((ctx, propagator) => {\n try {\n return propagator.extract(ctx, carrier, getter);\n } catch (err) {\n diag.warn(\n `Failed to extract with ${propagator.constructor.name}. Err: ${err.message}`\n );\n }\n return ctx;\n }, context);\n }\n\n fields(): string[] {\n // return a new array so our fields cannot be modified\n return this._fields.slice();\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type * as api from '@opentelemetry/api';\nimport { validateKey, validateValue } from '../internal/validators';\n\nconst MAX_TRACE_STATE_ITEMS = 32;\nconst MAX_TRACE_STATE_LEN = 512;\nconst LIST_MEMBERS_SEPARATOR = ',';\nconst LIST_MEMBER_KEY_VALUE_SPLITTER = '=';\n\n/**\n * TraceState must be a class and not a simple object type because of the spec\n * requirement (https://www.w3.org/TR/trace-context/#tracestate-field).\n *\n * Here is the list of allowed mutations:\n * - New key-value pair should be added into the beginning of the list\n * - The value of any key can be updated. Modified keys MUST be moved to the\n * beginning of the list.\n */\nexport class TraceState implements api.TraceState {\n private _internalState: Map = new Map();\n\n constructor(rawTraceState?: string) {\n if (rawTraceState) this._parse(rawTraceState);\n }\n\n set(key: string, value: string): TraceState {\n // TODO: Benchmark the different approaches(map vs list) and\n // use the faster one.\n const traceState = this._clone();\n if (traceState._internalState.has(key)) {\n traceState._internalState.delete(key);\n }\n traceState._internalState.set(key, value);\n return traceState;\n }\n\n unset(key: string): TraceState {\n const traceState = this._clone();\n traceState._internalState.delete(key);\n return traceState;\n }\n\n get(key: string): string | undefined {\n return this._internalState.get(key);\n }\n\n serialize(): string {\n return this._keys()\n .reduce((agg: string[], key) => {\n agg.push(key + LIST_MEMBER_KEY_VALUE_SPLITTER + this.get(key));\n return agg;\n }, [])\n .join(LIST_MEMBERS_SEPARATOR);\n }\n\n private _parse(rawTraceState: string) {\n if (rawTraceState.length > MAX_TRACE_STATE_LEN) return;\n this._internalState = rawTraceState\n .split(LIST_MEMBERS_SEPARATOR)\n .reverse() // Store in reverse so new keys (.set(...)) will be placed at the beginning\n .reduce((agg: Map, part: string) => {\n const listMember = part.trim(); // Optional Whitespace (OWS) handling\n const i = listMember.indexOf(LIST_MEMBER_KEY_VALUE_SPLITTER);\n if (i !== -1) {\n const key = listMember.slice(0, i);\n const value = listMember.slice(i + 1, part.length);\n if (validateKey(key) && validateValue(value)) {\n agg.set(key, value);\n } else {\n // TODO: Consider to add warning log\n }\n }\n return agg;\n }, new Map());\n\n // Because of the reverse() requirement, trunc must be done after map is created\n if (this._internalState.size > MAX_TRACE_STATE_ITEMS) {\n this._internalState = new Map(\n Array.from(this._internalState.entries())\n .reverse() // Use reverse same as original tracestate parse chain\n .slice(0, MAX_TRACE_STATE_ITEMS)\n );\n }\n }\n\n private _keys(): string[] {\n return Array.from(this._internalState.keys()).reverse();\n }\n\n private _clone(): TraceState {\n const traceState = new TraceState();\n traceState._internalState = new Map(this._internalState);\n return traceState;\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { diag, DiagLogLevel } from '@opentelemetry/api';\n\nconst logLevelMap: { [key: string]: DiagLogLevel } = {\n ALL: DiagLogLevel.ALL,\n VERBOSE: DiagLogLevel.VERBOSE,\n DEBUG: DiagLogLevel.DEBUG,\n INFO: DiagLogLevel.INFO,\n WARN: DiagLogLevel.WARN,\n ERROR: DiagLogLevel.ERROR,\n NONE: DiagLogLevel.NONE,\n};\n\n/**\n * Convert a string to a {@link DiagLogLevel}, defaults to {@link DiagLogLevel} if the log level does not exist or undefined if the input is undefined.\n * @param value\n */\nexport function diagLogLevelFromString(\n value: string | undefined\n): DiagLogLevel | undefined {\n if (value == null) {\n // don't fall back to default - no value set has different semantics for ús than an incorrect value (do not set vs. fall back to default)\n return undefined;\n }\n\n const resolvedLogLevel = logLevelMap[value.toUpperCase()];\n\n if (resolvedLogLevel == null) {\n diag.warn(\n `Unknown log level \"${value}\", expected one of ${Object.keys(logLevelMap)}, using default`\n );\n return DiagLogLevel.INFO;\n }\n\n return resolvedLogLevel;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nexport function urlMatches(url: string, urlToMatch: string | RegExp): boolean {\n if (typeof urlToMatch === 'string') {\n return url === urlToMatch;\n } else {\n return !!url.match(urlToMatch);\n }\n}\n/**\n * Check if {@param url} should be ignored when comparing against {@param ignoredUrls}\n * @param url\n * @param ignoredUrls\n */\nexport function isUrlIgnored(\n url: string,\n ignoredUrls?: Array\n): boolean {\n if (!ignoredUrls) {\n return false;\n }\n\n for (const ignoreUrl of ignoredUrls) {\n if (urlMatches(url, ignoreUrl)) {\n return true;\n }\n }\n return false;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nconst VALID_KEY_CHAR_RANGE = '[_0-9a-z-*/]';\nconst VALID_KEY = `[a-z]${VALID_KEY_CHAR_RANGE}{0,255}`;\nconst VALID_VENDOR_KEY = `[a-z0-9]${VALID_KEY_CHAR_RANGE}{0,240}@[a-z]${VALID_KEY_CHAR_RANGE}{0,13}`;\nconst VALID_KEY_REGEX = new RegExp(`^(?:${VALID_KEY}|${VALID_VENDOR_KEY})$`);\nconst VALID_VALUE_BASE_REGEX = /^[ -~]{0,255}[!-~]$/;\nconst INVALID_VALUE_COMMA_EQUAL_REGEX = /,|=/;\n\n/**\n * Key is opaque string up to 256 characters printable. It MUST begin with a\n * lowercase letter, and can only contain lowercase letters a-z, digits 0-9,\n * underscores _, dashes -, asterisks *, and forward slashes /.\n * For multi-tenant vendor scenarios, an at sign (@) can be used to prefix the\n * vendor name. Vendors SHOULD set the tenant ID at the beginning of the key.\n * see https://www.w3.org/TR/trace-context/#key\n */\nexport function validateKey(key: string): boolean {\n return VALID_KEY_REGEX.test(key);\n}\n\n/**\n * Value is opaque string up to 256 characters printable ASCII RFC0020\n * characters (i.e., the range 0x20 to 0x7E) except comma , and =.\n */\nexport function validateValue(value: string): boolean {\n return (\n VALID_VALUE_BASE_REGEX.test(value) &&\n !INVALID_VALUE_COMMA_EQUAL_REGEX.test(value)\n );\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport const BAGGAGE_KEY_PAIR_SEPARATOR = '=';\nexport const BAGGAGE_PROPERTIES_SEPARATOR = ';';\nexport const BAGGAGE_ITEMS_SEPARATOR = ',';\n\n// Name of the http header used to propagate the baggage\nexport const BAGGAGE_HEADER = 'baggage';\n// Maximum number of name-value pairs allowed by w3c spec\nexport const BAGGAGE_MAX_NAME_VALUE_PAIRS = 180;\n// Maximum number of bytes per a single name-value pair allowed by w3c spec\nexport const BAGGAGE_MAX_PER_NAME_VALUE_PAIRS = 4096;\n// Maximum total length of all name-value pairs allowed by w3c spec\nexport const BAGGAGE_MAX_TOTAL_LENGTH = 8192;\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * @deprecated Use globalThis directly instead.\n */\nexport const _globalThis = globalThis;\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Error that is thrown on timeouts.\n */\nexport class TimeoutError extends Error {\n constructor(message?: string) {\n super(message);\n\n // manually adjust prototype to retain `instanceof` functionality when targeting ES5, see:\n // https://github.com/Microsoft/TypeScript-wiki/blob/main/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, TimeoutError.prototype);\n }\n}\n\n/**\n * Adds a timeout to a promise and rejects if the specified timeout has elapsed. Also rejects if the specified promise\n * rejects, and resolves if the specified promise resolves.\n *\n *
// -> 
/\n      if (!this.preserveMultipleSlashes) {\n        for (let i = 1; i < parts.length - 1; i++) {\n          const p = parts[i]\n          // don't squeeze out UNC patterns\n          if (i === 1 && p === '' && parts[0] === '') continue\n          if (p === '.' || p === '') {\n            didSomething = true\n            parts.splice(i, 1)\n            i--\n          }\n        }\n        if (\n          parts[0] === '.' &&\n          parts.length === 2 &&\n          (parts[1] === '.' || parts[1] === '')\n        ) {\n          didSomething = true\n          parts.pop()\n        }\n      }\n\n      // 
/

/../ ->

/\n      let dd: number = 0\n      while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n        const p = parts[dd - 1]\n        if (\n          p &&\n          p !== '.' &&\n          p !== '..' &&\n          p !== '**' &&\n          !(this.isWindows && /^[a-z]:$/i.test(p))\n        ) {\n          didSomething = true\n          parts.splice(dd - 1, 2)\n          dd -= 2\n        }\n      }\n    } while (didSomething)\n    return parts.length === 0 ? [''] : parts\n  }\n\n  // First phase: single-pattern processing\n  // 
 is 1 or more portions\n  //  is 1 or more portions\n  // 

is any portion other than ., .., '', or **\n // is . or ''\n //\n // **/.. is *brutal* for filesystem walking performance, because\n // it effectively resets the recursive walk each time it occurs,\n // and ** cannot be reduced out by a .. pattern part like a regexp\n // or most strings (other than .., ., and '') can be.\n //\n //

/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n //

// -> 
/\n  // 
/

/../ ->

/\n  // **/**/ -> **/\n  //\n  // **/*/ -> */**/ <== not valid because ** doesn't follow\n  // this WOULD be allowed if ** did follow symlinks, or * didn't\n  firstPhasePreProcess(globParts: string[][]) {\n    let didSomething = false\n    do {\n      didSomething = false\n      // 
/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n for (let parts of globParts) {\n let gs: number = -1\n while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n let gss: number = gs\n while (parts[gss + 1] === '**') {\n //

/**/**/ -> 
/**/\n            gss++\n          }\n          // eg, if gs is 2 and gss is 4, that means we have 3 **\n          // parts, and can remove 2 of them.\n          if (gss > gs) {\n            parts.splice(gs + 1, gss - gs)\n          }\n\n          let next = parts[gs + 1]\n          const p = parts[gs + 2]\n          const p2 = parts[gs + 3]\n          if (next !== '..') continue\n          if (\n            !p ||\n            p === '.' ||\n            p === '..' ||\n            !p2 ||\n            p2 === '.' ||\n            p2 === '..'\n          ) {\n            continue\n          }\n          didSomething = true\n          // edit parts in place, and push the new one\n          parts.splice(gs, 1)\n          const other = parts.slice(0)\n          other[gs] = '**'\n          globParts.push(other)\n          gs--\n        }\n\n        // 
// -> 
/\n        if (!this.preserveMultipleSlashes) {\n          for (let i = 1; i < parts.length - 1; i++) {\n            const p = parts[i]\n            // don't squeeze out UNC patterns\n            if (i === 1 && p === '' && parts[0] === '') continue\n            if (p === '.' || p === '') {\n              didSomething = true\n              parts.splice(i, 1)\n              i--\n            }\n          }\n          if (\n            parts[0] === '.' &&\n            parts.length === 2 &&\n            (parts[1] === '.' || parts[1] === '')\n          ) {\n            didSomething = true\n            parts.pop()\n          }\n        }\n\n        // 
/

/../ ->

/\n        let dd: number = 0\n        while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n          const p = parts[dd - 1]\n          if (p && p !== '.' && p !== '..' && p !== '**') {\n            didSomething = true\n            const needDot = dd === 1 && parts[dd + 1] === '**'\n            const splin = needDot ? ['.'] : []\n            parts.splice(dd - 1, 2, ...splin)\n            if (parts.length === 0) parts.push('')\n            dd -= 2\n          }\n        }\n      }\n    } while (didSomething)\n\n    return globParts\n  }\n\n  // second phase: multi-pattern dedupes\n  // {
/*/,
/

/} ->

/*/\n  // {
/,
/} -> 
/\n  // {
/**/,
/} -> 
/**/\n  //\n  // {
/**/,
/**/

/} ->

/**/\n  // ^-- not valid because ** doens't follow symlinks\n  secondPhasePreProcess(globParts: string[][]): string[][] {\n    for (let i = 0; i < globParts.length - 1; i++) {\n      for (let j = i + 1; j < globParts.length; j++) {\n        const matched = this.partsMatch(\n          globParts[i],\n          globParts[j],\n          !this.preserveMultipleSlashes,\n        )\n        if (matched) {\n          globParts[i] = []\n          globParts[j] = matched\n          break\n        }\n      }\n    }\n    return globParts.filter(gs => gs.length)\n  }\n\n  partsMatch(\n    a: string[],\n    b: string[],\n    emptyGSMatch: boolean = false,\n  ): false | string[] {\n    let ai = 0\n    let bi = 0\n    let result: string[] = []\n    let which: string = ''\n    while (ai < a.length && bi < b.length) {\n      if (a[ai] === b[bi]) {\n        result.push(which === 'b' ? b[bi] : a[ai])\n        ai++\n        bi++\n      } else if (emptyGSMatch && a[ai] === '**' && b[bi] === a[ai + 1]) {\n        result.push(a[ai])\n        ai++\n      } else if (emptyGSMatch && b[bi] === '**' && a[ai] === b[bi + 1]) {\n        result.push(b[bi])\n        bi++\n      } else if (\n        a[ai] === '*' &&\n        b[bi] &&\n        (this.options.dot || !b[bi].startsWith('.')) &&\n        b[bi] !== '**'\n      ) {\n        if (which === 'b') return false\n        which = 'a'\n        result.push(a[ai])\n        ai++\n        bi++\n      } else if (\n        b[bi] === '*' &&\n        a[ai] &&\n        (this.options.dot || !a[ai].startsWith('.')) &&\n        a[ai] !== '**'\n      ) {\n        if (which === 'a') return false\n        which = 'b'\n        result.push(b[bi])\n        ai++\n        bi++\n      } else {\n        return false\n      }\n    }\n    // if we fall out of the loop, it means they two are identical\n    // as long as their lengths match\n    return a.length === b.length && result\n  }\n\n  parseNegate() {\n    if (this.nonegate) return\n\n    const pattern = this.pattern\n    let negate = false\n    let negateOffset = 0\n\n    for (let i = 0; i < pattern.length && pattern.charAt(i) === '!'; i++) {\n      negate = !negate\n      negateOffset++\n    }\n\n    if (negateOffset) this.pattern = pattern.slice(negateOffset)\n    this.negate = negate\n  }\n\n  // set partial to true to test if, for example,\n  // \"/a/b\" matches the start of \"/*/b/*/d\"\n  // Partial means, if you run out of file before you run\n  // out of pattern, then that's fine, as long as all\n  // the parts match.\n  matchOne(\n    file: string[],\n    pattern: ParseReturn[],\n    partial: boolean = false,\n  ) {\n    let fileStartIndex = 0\n    let patternStartIndex = 0\n\n    // UNC paths like //?/X:/... can match X:/... and vice versa\n    // Drive letters in absolute drive or unc paths are always compared\n    // case-insensitively.\n    if (this.isWindows) {\n      const fileDrive =\n        typeof file[0] === 'string' && /^[a-z]:$/i.test(file[0])\n      const fileUNC =\n        !fileDrive &&\n        file[0] === '' &&\n        file[1] === '' &&\n        file[2] === '?' &&\n        /^[a-z]:$/i.test(file[3])\n\n      const patternDrive =\n        typeof pattern[0] === 'string' && /^[a-z]:$/i.test(pattern[0])\n      const patternUNC =\n        !patternDrive &&\n        pattern[0] === '' &&\n        pattern[1] === '' &&\n        pattern[2] === '?' &&\n        typeof pattern[3] === 'string' &&\n        /^[a-z]:$/i.test(pattern[3])\n\n      const fdi =\n        fileUNC ? 3\n        : fileDrive ? 0\n        : undefined\n      const pdi =\n        patternUNC ? 3\n        : patternDrive ? 0\n        : undefined\n      if (typeof fdi === 'number' && typeof pdi === 'number') {\n        const [fd, pd]: [string, string] = [\n          file[fdi],\n          pattern[pdi] as string,\n        ]\n        // start matching at the drive letter index of each\n        if (fd.toLowerCase() === pd.toLowerCase()) {\n          pattern[pdi] = fd\n          patternStartIndex = pdi\n          fileStartIndex = fdi\n        }\n      }\n    }\n\n    // resolve and reduce . and .. portions in the file as well.\n    // don't need to do the second phase, because it's only one string[]\n    const { optimizationLevel = 1 } = this.options\n    if (optimizationLevel >= 2) {\n      file = this.levelTwoFileOptimize(file)\n    }\n\n    if (pattern.includes(GLOBSTAR)) {\n      return this.#matchGlobstar(\n        file,\n        pattern,\n        partial,\n        fileStartIndex,\n        patternStartIndex,\n      )\n    }\n\n    return this.#matchOne(\n      file,\n      pattern,\n      partial,\n      fileStartIndex,\n      patternStartIndex,\n    )\n  }\n\n  #matchGlobstar(\n    file: string[],\n    pattern: ParseReturn[],\n    partial: boolean,\n    fileIndex: number,\n    patternIndex: number,\n  ) {\n    // split the pattern into head, tail, and middle of ** delimited parts\n    const firstgs = pattern.indexOf(GLOBSTAR, patternIndex)\n    const lastgs = pattern.lastIndexOf(GLOBSTAR)\n\n    // split the pattern up into globstar-delimited sections\n    // the tail has to be at the end, and the others just have\n    // to be found in order from the head.\n    const [head, body, tail] =\n      partial ?\n        [\n          pattern.slice(patternIndex, firstgs),\n          pattern.slice(firstgs + 1),\n          [],\n        ]\n      : [\n          pattern.slice(patternIndex, firstgs),\n          pattern.slice(firstgs + 1, lastgs),\n          pattern.slice(lastgs + 1),\n        ]\n\n    // check the head, from the current file/pattern index.\n    if (head.length) {\n      const fileHead = file.slice(fileIndex, fileIndex + head.length)\n      if (!this.#matchOne(fileHead, head, partial, 0, 0)) {\n        return false\n      }\n      fileIndex += head.length\n      patternIndex += head.length\n    }\n    // now we know the head matches!\n\n    // if the last portion is not empty, it MUST match the end\n    // check the tail\n    let fileTailMatch: number = 0\n    if (tail.length) {\n      // if head + tail > file, then we cannot possibly match\n      if (tail.length + fileIndex > file.length) return false\n\n      // try to match the tail\n      let tailStart = file.length - tail.length\n      if (this.#matchOne(file, tail, partial, tailStart, 0)) {\n        fileTailMatch = tail.length\n      } else {\n        // affordance for stuff like a/**/* matching a/b/\n        // if the last file portion is '', and there's more to the pattern\n        // then try without the '' bit.\n        if (\n          file[file.length - 1] !== '' ||\n          fileIndex + tail.length === file.length\n        ) {\n          return false\n        }\n        tailStart--\n        if (!this.#matchOne(file, tail, partial, tailStart, 0)) {\n          return false\n        }\n        fileTailMatch = tail.length + 1\n      }\n    }\n\n    // now we know the tail matches!\n\n    // the middle is zero or more portions wrapped in **, possibly\n    // containing more ** sections.\n    // so a/**/b/**/c/**/d has become **/b/**/c/**\n    // if it's empty, it means a/**/b, just verify we have no bad dots\n    // if there's no tail, so it ends on /**, then we must have *something*\n    // after the head, or it's not a matc\n    if (!body.length) {\n      let sawSome = !!fileTailMatch\n      for (let i = fileIndex; i < file.length - fileTailMatch; i++) {\n        const f = String(file[i])\n        sawSome = true\n        if (\n          f === '.' ||\n          f === '..' ||\n          (!this.options.dot && f.startsWith('.'))\n        ) {\n          return false\n        }\n      }\n      // in partial mode, we just need to get past all file parts\n      return partial || sawSome\n    }\n\n    // now we know that there's one or more body sections, which can\n    // be matched anywhere from the 0 index (because the head was pruned)\n    // through to the length-fileTailMatch index.\n    // split the body up into sections, and note the minimum index it can\n    // be found at (start with the length of all previous segments)\n    // [section, before, after]\n    const bodySegments: [ParseReturn[], number][] = [[[], 0]]\n    let currentBody: [ParseReturn[], number] = bodySegments[0]\n    let nonGsParts = 0\n    const nonGsPartsSums: number[] = [0]\n    for (const b of body) {\n      if (b === GLOBSTAR) {\n        nonGsPartsSums.push(nonGsParts)\n        currentBody = [[], 0]\n        bodySegments.push(currentBody)\n      } else {\n        currentBody[0].push(b)\n        nonGsParts++\n      }\n    }\n    let i = bodySegments.length - 1\n    const fileLength = file.length - fileTailMatch\n    for (const b of bodySegments) {\n      b[1] = fileLength - ((nonGsPartsSums[i--] as number) + b[0].length)\n    }\n\n    return !!this.#matchGlobStarBodySections(\n      file,\n      bodySegments,\n      fileIndex,\n      0,\n      partial,\n      0,\n      !!fileTailMatch,\n    )\n  }\n\n  // return false for \"nope, not matching\"\n  // return null for \"not matching, cannot keep trying\"\n  #matchGlobStarBodySections(\n    file: string[],\n    // pattern section, last possible position for it\n    bodySegments: [ParseReturn[], number][],\n    fileIndex: number,\n    bodyIndex: number,\n    partial: boolean,\n    globStarDepth: number,\n    sawTail: boolean,\n  ): boolean | null {\n    // take the first body segment, and walk from fileIndex to its \"after\"\n    // value at the end\n    // If it doesn't match at that position, we increment, until we hit\n    // that final possible position, and give up.\n    // If it does match, then advance and try to rest.\n    // If any of them fail we keep walking forward.\n    // this is still a bit recursively painful, but it's more constrained\n    // than previous implementations, because we never test something that\n    // can't possibly be a valid matching condition.\n    const bs = bodySegments[bodyIndex]\n    if (!bs) {\n      // just make sure that there's no bad dots\n      for (let i = fileIndex; i < file.length; i++) {\n        sawTail = true\n        const f = file[i]\n        if (\n          f === '.' ||\n          f === '..' ||\n          (!this.options.dot && f.startsWith('.'))\n        ) {\n          return false\n        }\n      }\n      return sawTail\n    }\n\n    // have a non-globstar body section to test\n    const [body, after] = bs\n    while (fileIndex <= after) {\n      const m = this.#matchOne(\n        file.slice(0, fileIndex + body.length),\n        body,\n        partial,\n        fileIndex,\n        0,\n      )\n      // if limit exceeded, no match. intentional false negative,\n      // acceptable break in correctness for security.\n      if (m && globStarDepth < this.maxGlobstarRecursion) {\n        // match! see if the rest match. if so, we're done!\n        const sub = this.#matchGlobStarBodySections(\n          file,\n          bodySegments,\n          fileIndex + body.length,\n          bodyIndex + 1,\n          partial,\n          globStarDepth + 1,\n          sawTail,\n        )\n        if (sub !== false) {\n          return sub\n        }\n      }\n      const f = file[fileIndex]\n      if (\n        f === '.' ||\n        f === '..' ||\n        (!this.options.dot && f.startsWith('.'))\n      ) {\n        return false\n      }\n\n      fileIndex++\n    }\n    // walked off. no point continuing\n    return partial || null\n  }\n\n  #matchOne(\n    file: string[],\n    pattern: ParseReturn[],\n    partial: boolean,\n    fileIndex: number,\n    patternIndex: number,\n  ) {\n    let fi: number\n    let pi: number\n    let pl: number\n    let fl: number\n    for (\n      fi = fileIndex,\n        pi = patternIndex,\n        fl = file.length,\n        pl = pattern.length;\n      fi < fl && pi < pl;\n      fi++, pi++\n    ) {\n      this.debug('matchOne loop')\n      let p = pattern[pi]\n      let f = file[fi]\n\n      this.debug(pattern, p, f)\n\n      // should be impossible.\n      // some invalid regexp stuff in the set.\n      /* c8 ignore start */\n      if (p === false || p === GLOBSTAR) {\n        return false\n      }\n      /* c8 ignore stop */\n\n      // something other than **\n      // non-magic patterns just have to match exactly\n      // patterns with magic have been turned into regexps.\n      let hit: boolean\n      if (typeof p === 'string') {\n        hit = f === p\n        this.debug('string match', p, f, hit)\n      } else {\n        hit = p.test(f)\n        this.debug('pattern match', p, f, hit)\n      }\n\n      if (!hit) return false\n    }\n\n    // Note: ending in / means that we'll get a final \"\"\n    // at the end of the pattern.  This can only match a\n    // corresponding \"\" at the end of the file.\n    // If the file ends in /, then it can only match a\n    // a pattern that ends in /, unless the pattern just\n    // doesn't have any more for it. But, a/b/ should *not*\n    // match \"a/b/*\", even though \"\" matches against the\n    // [^/]*? pattern, except in partial mode, where it might\n    // simply not be reached yet.\n    // However, a/b/ should still satisfy a/*\n\n    // now either we fell off the end of the pattern, or we're done.\n    if (fi === fl && pi === pl) {\n      // ran out of pattern and filename at the same time.\n      // an exact hit!\n      return true\n    } else if (fi === fl) {\n      // ran out of file, but still had pattern left.\n      // this is ok if we're doing the match as part of\n      // a glob fs traversal.\n      return partial\n    } else if (pi === pl) {\n      // ran out of pattern, still have file left.\n      // this is only acceptable if we're on the very last\n      // empty segment of a file with a trailing slash.\n      // a/* should match a/b/\n      return fi === fl - 1 && file[fi] === ''\n\n      /* c8 ignore start */\n    } else {\n      // should be unreachable.\n      throw new Error('wtf?')\n    }\n    /* c8 ignore stop */\n  }\n\n  braceExpand() {\n    return braceExpand(this.pattern, this.options)\n  }\n\n  parse(pattern: string): ParseReturn {\n    assertValidPattern(pattern)\n\n    const options = this.options\n\n    // shortcuts\n    if (pattern === '**') return GLOBSTAR\n    if (pattern === '') return ''\n\n    // far and away, the most common glob pattern parts are\n    // *, *.*, and *.  Add a fast check method for those.\n    let m: RegExpMatchArray | null\n    let fastTest: null | ((f: string) => boolean) = null\n    if ((m = pattern.match(starRE))) {\n      fastTest = options.dot ? starTestDot : starTest\n    } else if ((m = pattern.match(starDotExtRE))) {\n      fastTest = (\n        options.nocase ?\n          options.dot ?\n            starDotExtTestNocaseDot\n          : starDotExtTestNocase\n        : options.dot ? starDotExtTestDot\n        : starDotExtTest)(m[1])\n    } else if ((m = pattern.match(qmarksRE))) {\n      fastTest = (\n        options.nocase ?\n          options.dot ?\n            qmarksTestNocaseDot\n          : qmarksTestNocase\n        : options.dot ? qmarksTestDot\n        : qmarksTest)(m)\n    } else if ((m = pattern.match(starDotStarRE))) {\n      fastTest = options.dot ? starDotStarTestDot : starDotStarTest\n    } else if ((m = pattern.match(dotStarRE))) {\n      fastTest = dotStarTest\n    }\n\n    const re = AST.fromGlob(pattern, this.options).toMMPattern()\n    if (fastTest && typeof re === 'object') {\n      // Avoids overriding in frozen environments\n      Reflect.defineProperty(re, 'test', { value: fastTest })\n    }\n    return re\n  }\n\n  makeRe() {\n    if (this.regexp || this.regexp === false) return this.regexp\n\n    // at this point, this.set is a 2d array of partial\n    // pattern strings, or \"**\".\n    //\n    // It's better to use .match().  This function shouldn't\n    // be used, really, but it's pretty convenient sometimes,\n    // when you just want to work with a regex.\n    const set = this.set\n\n    if (!set.length) {\n      this.regexp = false\n      return this.regexp\n    }\n    const options = this.options\n\n    const twoStar =\n      options.noglobstar ? star\n      : options.dot ? twoStarDot\n      : twoStarNoDot\n    const flags = new Set(options.nocase ? ['i'] : [])\n\n    // regexpify non-globstar patterns\n    // if ** is only item, then we just do one twoStar\n    // if ** is first, and there are more, prepend (\\/|twoStar\\/)? to next\n    // if ** is last, append (\\/twoStar|) to previous\n    // if ** is in the middle, append (\\/|\\/twoStar\\/) to previous\n    // then filter out GLOBSTAR symbols\n    let re = set\n      .map(pattern => {\n        const pp: (string | typeof GLOBSTAR)[] = pattern.map(p => {\n          if (p instanceof RegExp) {\n            for (const f of p.flags.split('')) flags.add(f)\n          }\n          return (\n            typeof p === 'string' ? regExpEscape(p)\n            : p === GLOBSTAR ? GLOBSTAR\n            : p._src\n          )\n        }) as (string | typeof GLOBSTAR)[]\n        pp.forEach((p, i) => {\n          const next = pp[i + 1]\n          const prev = pp[i - 1]\n          if (p !== GLOBSTAR || prev === GLOBSTAR) {\n            return\n          }\n          if (prev === undefined) {\n            if (next !== undefined && next !== GLOBSTAR) {\n              pp[i + 1] = '(?:\\\\/|' + twoStar + '\\\\/)?' + next\n            } else {\n              pp[i] = twoStar\n            }\n          } else if (next === undefined) {\n            pp[i - 1] = prev + '(?:\\\\/|\\\\/' + twoStar + ')?'\n          } else if (next !== GLOBSTAR) {\n            pp[i - 1] = prev + '(?:\\\\/|\\\\/' + twoStar + '\\\\/)' + next\n            pp[i + 1] = GLOBSTAR\n          }\n        })\n        const filtered = pp.filter(p => p !== GLOBSTAR)\n\n        // For partial matches, we need to make the pattern match\n        // any prefix of the full path. We do this by generating\n        // alternative patterns that match progressively longer prefixes.\n        if (this.partial && filtered.length >= 1) {\n          const prefixes: string[] = []\n          for (let i = 1; i <= filtered.length; i++) {\n            prefixes.push(filtered.slice(0, i).join('/'))\n          }\n          return '(?:' + prefixes.join('|') + ')'\n        }\n\n        return filtered.join('/')\n      })\n      .join('|')\n\n    // need to wrap in parens if we had more than one thing with |,\n    // otherwise only the first will be anchored to ^ and the last to $\n    const [open, close] = set.length > 1 ? ['(?:', ')'] : ['', '']\n    // must match entire pattern\n    // ending in a * or ** will make it less strict.\n    re = '^' + open + re + close + '$'\n\n    // In partial mode, '/' should always match as it's a valid prefix for any pattern\n    if (this.partial) {\n      re = '^(?:\\\\/|' + open + re.slice(1, -1) + close + ')$'\n    }\n\n    // can match anything, as long as it's not this.\n    if (this.negate) re = '^(?!' + re + ').+$'\n\n    try {\n      this.regexp = new RegExp(re, [...flags].join(''))\n      /* c8 ignore start */\n    } catch {\n      // should be impossible\n      this.regexp = false\n    }\n    /* c8 ignore stop */\n    return this.regexp\n  }\n\n  slashSplit(p: string) {\n    // if p starts with // on windows, we preserve that\n    // so that UNC paths aren't broken.  Otherwise, any number of\n    // / characters are coalesced into one, unless\n    // preserveMultipleSlashes is set to true.\n    if (this.preserveMultipleSlashes) {\n      return p.split('/')\n    } else if (this.isWindows && /^\\/\\/[^/]+/.test(p)) {\n      // add an extra '' for the one we lose\n      return ['', ...p.split(/\\/+/)]\n    } else {\n      return p.split(/\\/+/)\n    }\n  }\n\n  match(f: string, partial = this.partial) {\n    this.debug('match', f, this.pattern)\n    // short-circuit in the case of busted things.\n    // comments, etc.\n    if (this.comment) {\n      return false\n    }\n    if (this.empty) {\n      return f === ''\n    }\n\n    if (f === '/' && partial) {\n      return true\n    }\n\n    const options = this.options\n\n    // windows: need to use /, not \\\n    if (this.isWindows) {\n      f = f.split('\\\\').join('/')\n    }\n\n    // treat the test path as a set of pathparts.\n    const ff = this.slashSplit(f)\n    this.debug(this.pattern, 'split', ff)\n\n    // just ONE of the pattern sets in this.set needs to match\n    // in order for it to be valid.  If negating, then just one\n    // match means that we have failed.\n    // Either way, return on the first hit.\n\n    const set = this.set\n    this.debug(this.pattern, 'set', set)\n\n    // Find the basename of the path by looking for the last non-empty segment\n    let filename: string = ff[ff.length - 1]\n    if (!filename) {\n      for (let i = ff.length - 2; !filename && i >= 0; i--) {\n        filename = ff[i]\n      }\n    }\n\n    for (const pattern of set) {\n      let file = ff\n      if (options.matchBase && pattern.length === 1) {\n        file = [filename]\n      }\n      const hit = this.matchOne(file, pattern, partial)\n      if (hit) {\n        if (options.flipNegate) {\n          return true\n        }\n        return !this.negate\n      }\n    }\n\n    // didn't get any hits.  this is success if it's a negative\n    // pattern, failure otherwise.\n    if (options.flipNegate) {\n      return false\n    }\n    return this.negate\n  }\n\n  static defaults(def: MinimatchOptions) {\n    return minimatch.defaults(def).Minimatch\n  }\n}\n/* c8 ignore start */\nexport { AST } from './ast.js'\nexport { escape } from './escape.js'\nexport { unescape } from './unescape.js'\n/* c8 ignore stop */\nminimatch.AST = AST\nminimatch.Minimatch = Minimatch\nminimatch.escape = escape\nminimatch.unescape = unescape\n","'use strict'\nconst dc = require('node:diagnostics_channel')\nconst { context, trace, SpanStatusCode, propagation, diag } = require('@opentelemetry/api')\nconst { getRPCMetadata, RPCType } = require('@opentelemetry/core')\nconst {\n  ATTR_HTTP_ROUTE,\n  ATTR_HTTP_RESPONSE_STATUS_CODE,\n  ATTR_HTTP_REQUEST_METHOD,\n  ATTR_URL_PATH\n} = require('@opentelemetry/semantic-conventions')\nconst { InstrumentationBase } = require('@opentelemetry/instrumentation')\n\nconst {\n  version: PACKAGE_VERSION,\n  name: PACKAGE_NAME\n} = require('./package.json')\n\n// Constants\nconst SUPPORTED_VERSIONS = '>=4.0.0 <6'\nconst FASTIFY_HOOKS = [\n  'onRequest',\n  'preParsing',\n  'preValidation',\n  'preHandler',\n  'preSerialization',\n  'onSend',\n  'onResponse',\n  'onError'\n]\nconst ATTRIBUTE_NAMES = {\n  HOOK_NAME: 'hook.name',\n  FASTIFY_TYPE: 'fastify.type',\n  HOOK_CALLBACK_NAME: 'hook.callback.name',\n  ROOT: 'fastify.root'\n}\nconst HOOK_TYPES = {\n  ROUTE: 'route-hook',\n  INSTANCE: 'hook',\n  HANDLER: 'request-handler'\n}\nconst ANONYMOUS_FUNCTION_NAME = 'anonymous'\n\n// Symbols\nconst kInstrumentation = Symbol('fastify otel instance')\nconst kRequestSpan = Symbol('fastify otel request spans')\nconst kRequestContext = Symbol('fastify otel request context')\nconst kAddHookOriginal = Symbol('fastify otel addhook original')\nconst kSetNotFoundOriginal = Symbol('fastify otel setnotfound original')\nconst kIgnorePaths = Symbol('fastify otel ignore path')\nconst kRecordExceptions = Symbol('fastify otel record exceptions')\n\nclass FastifyOtelInstrumentation extends InstrumentationBase {\n  logger = null\n  _requestHook = null\n  _lifecycleHook = null\n\n  constructor (config) {\n    super(PACKAGE_NAME, PACKAGE_VERSION, config)\n    this.logger = diag.createComponentLogger({ namespace: PACKAGE_NAME })\n    this[kIgnorePaths] = null\n    this[kRecordExceptions] = true\n\n    if (config?.recordExceptions != null) {\n      if (typeof config.recordExceptions !== 'boolean') {\n        throw new TypeError('recordExceptions must be a boolean')\n      }\n\n      this[kRecordExceptions] = config.recordExceptions\n    }\n    if (typeof config?.requestHook === 'function') {\n      this._requestHook = config.requestHook\n    }\n    if (typeof config?.lifecycleHook === 'function') {\n      this._lifecycleHook = config.lifecycleHook\n    }\n\n    if (config?.ignorePaths != null || process.env.OTEL_FASTIFY_IGNORE_PATHS != null) {\n      const ignorePaths = config?.ignorePaths ?? process.env.OTEL_FASTIFY_IGNORE_PATHS\n\n      if ((typeof ignorePaths !== 'string' || ignorePaths.length === 0) && typeof ignorePaths !== 'function') {\n        throw new TypeError(\n          'ignorePaths must be a string or a function'\n        )\n      }\n\n      let globMatcher = null\n\n      this[kIgnorePaths] = (routeOptions) => {\n        if (typeof ignorePaths === 'function') {\n          return ignorePaths(routeOptions)\n        } else {\n          // Using minimatch to match the path until path.matchesGlob is out of experimental\n          // path.matchesGlob uses minimatch internally\n          if (globMatcher == null) {\n            globMatcher = require('minimatch').minimatch\n          }\n\n          return globMatcher(routeOptions.url, ignorePaths)\n        }\n      }\n    }\n  }\n\n  enable () {\n    if (this._handleInitialization === undefined && this.getConfig().registerOnInitialization) {\n      this._handleInitialization = (message) => {\n        // Cannot use `fastify.register(plugin)` because it is lazily executed and\n        // thus requires user code to await fastify instance first.\n        this.plugin()(message.fastify, undefined, () => {})\n\n        // Add an empty plugin to keep `app.hasPlugin('@fastify/otel')` invariant\n        const emptyPlugin = (_, __, done) => {\n          done()\n        }\n        emptyPlugin[Symbol.for('skip-override')] = true\n        emptyPlugin[Symbol.for('fastify.display-name')] = '@fastify/otel'\n        message.fastify.register(emptyPlugin)\n      }\n      dc.subscribe('fastify.initialization', this._handleInitialization)\n    }\n    return super.enable()\n  }\n\n  disable () {\n    if (this._handleInitialization) {\n      dc.unsubscribe('fastify.initialization', this._handleInitialization)\n      this._handleInitialization = undefined\n    }\n    return super.disable()\n  }\n\n  // We do not do patching in this instrumentation\n  init () {\n    return []\n  }\n\n  plugin () {\n    const instrumentation = this\n\n    FastifyInstrumentationPlugin[Symbol.for('skip-override')] = true\n    FastifyInstrumentationPlugin[Symbol.for('fastify.display-name')] = '@fastify/otel'\n    FastifyInstrumentationPlugin[Symbol.for('plugin-meta')] = {\n      fastify: SUPPORTED_VERSIONS,\n      name: '@fastify/otel',\n    }\n\n    return FastifyInstrumentationPlugin\n\n    function FastifyInstrumentationPlugin (instance, opts, done) {\n      instance.decorate(kInstrumentation, instrumentation)\n      // addHook and notfoundHandler are essentially inherited from the prototype\n      // what is important is to bound it to the right instance\n      instance.decorate(kAddHookOriginal, instance.addHook)\n      instance.decorate(kSetNotFoundOriginal, instance.setNotFoundHandler)\n      instance.decorateRequest('opentelemetry', function openetelemetry () {\n        const ctx = this[kRequestContext]\n        const span = this[kRequestSpan]\n\n        return {\n          enabled: this.routeOptions.config?.otel !== false,\n          span,\n          tracer: instrumentation.tracer,\n          context: ctx,\n          inject: (carrier, setter) => {\n            return propagation.inject(ctx, carrier, setter)\n          },\n          extract: (carrier, getter) => {\n            return propagation.extract(ctx, carrier, getter)\n          }\n        }\n      })\n      instance.decorateRequest(kRequestSpan, null)\n      instance.decorateRequest(kRequestContext, null)\n\n      instance.addHook('onRoute', function otelWireRoute (routeOptions) {\n        if (instrumentation[kIgnorePaths]?.(routeOptions) === true) {\n          instrumentation.logger.debug(\n            `Ignoring route instrumentation ${routeOptions.method} ${routeOptions.url} because it matches the ignore path`\n          )\n          return\n        }\n\n        if (routeOptions.config?.otel === false) {\n          instrumentation.logger.debug(\n            `Ignoring route instrumentation ${routeOptions.method} ${routeOptions.url} because it is disabled`\n          )\n\n          return\n        }\n\n        for (const hook of FASTIFY_HOOKS) {\n          if (routeOptions[hook] != null) {\n            const handlerLike = routeOptions[hook]\n\n            if (typeof handlerLike === 'function') {\n              routeOptions[hook] = handlerWrapper(handlerLike, hook, {\n                [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - route -> ${hook}`,\n                [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.ROUTE,\n                [ATTR_HTTP_ROUTE]: routeOptions.url,\n                [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]:\n                  handlerLike.name?.length > 0\n                    ? handlerLike.name\n                    : ANONYMOUS_FUNCTION_NAME /* c8 ignore next */\n              })\n            } else if (Array.isArray(handlerLike)) {\n              const wrappedHandlers = []\n\n              for (const handler of handlerLike) {\n                wrappedHandlers.push(\n                  handlerWrapper(handler, hook, {\n                    [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - route -> ${hook}`,\n                    [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.ROUTE,\n                    [ATTR_HTTP_ROUTE]: routeOptions.url,\n                    [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]:\n                      handler.name?.length > 0\n                        ? handler.name\n                        : ANONYMOUS_FUNCTION_NAME\n                  })\n                )\n              }\n\n              routeOptions[hook] = wrappedHandlers\n            }\n          }\n        }\n\n        // We always want to add the onSend hook to the route to be executed last\n        if (routeOptions.onSend != null) {\n          routeOptions.onSend = Array.isArray(routeOptions.onSend)\n            ? [...routeOptions.onSend, finalizeResponseSpanHook]\n            : [routeOptions.onSend, finalizeResponseSpanHook]\n        } else {\n          routeOptions.onSend = finalizeResponseSpanHook\n        }\n\n        // We always want to add the onError hook to the route to be executed last\n        if (routeOptions.onError != null) {\n          routeOptions.onError = Array.isArray(routeOptions.onError)\n            ? [...routeOptions.onError, recordErrorInSpanHook]\n            : [routeOptions.onError, recordErrorInSpanHook]\n        } else {\n          routeOptions.onError = recordErrorInSpanHook\n        }\n\n        routeOptions.handler = handlerWrapper(routeOptions.handler, 'handler', {\n          [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - route-handler`,\n          [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.HANDLER,\n          [ATTR_HTTP_ROUTE]: routeOptions.url,\n          [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]:\n            routeOptions.handler.name.length > 0\n              ? routeOptions.handler.name\n              : ANONYMOUS_FUNCTION_NAME\n        })\n      })\n\n      instance.addHook('onRequest', function startRequestSpanHook (request, _reply, hookDone) {\n        if (\n          this[kInstrumentation].isEnabled() === false ||\n          request.routeOptions.config?.otel === false\n        ) {\n          return hookDone()\n        }\n\n        if (this[kInstrumentation][kIgnorePaths]?.({\n          url: request.url,\n          method: request.method,\n        }) === true) {\n          this[kInstrumentation].logger.debug(\n            `Ignoring request ${request.method} ${request.url} because it matches the ignore path`\n          )\n          return hookDone()\n        }\n\n        let ctx = context.active()\n\n        if (trace.getSpan(ctx) == null) {\n          ctx = propagation.extract(ctx, request.headers)\n        }\n\n        const rpcMetadata = getRPCMetadata(ctx)\n\n        if (\n          request.routeOptions.url != null &&\n          rpcMetadata?.type === RPCType.HTTP\n        ) {\n          rpcMetadata.route = request.routeOptions.url\n        }\n\n        const attributes = {\n          [ATTRIBUTE_NAMES.ROOT]: '@fastify/otel',\n          [ATTR_HTTP_REQUEST_METHOD]: request.method,\n          [ATTR_URL_PATH]: request.url\n        }\n\n        if (request.routeOptions.url != null) {\n          attributes[ATTR_HTTP_ROUTE] = request.routeOptions.url\n        }\n\n        /** @type {import('@opentelemetry/api').Span} */\n        const span = this[kInstrumentation].tracer.startSpan('request', {\n          attributes\n        }, ctx)\n\n        try {\n          this[kInstrumentation]._requestHook?.(span, request)\n        } catch (err) {\n          this[kInstrumentation].logger.error({ err }, 'requestHook threw')\n        }\n\n        request[kRequestContext] = trace.setSpan(ctx, span)\n        request[kRequestSpan] = span\n\n        context.with(request[kRequestContext], () => {\n          hookDone()\n        })\n      })\n\n      // onResponse is the last hook to be executed, only added for 404 handlers\n      instance.addHook('onResponse', function finalizeNotFoundSpanHook (request, reply, hookDone) {\n        const span = request[kRequestSpan]\n\n        if (span != null) {\n          span.setAttributes({\n            [ATTR_HTTP_RESPONSE_STATUS_CODE]: reply.statusCode\n          })\n          span.end()\n        }\n\n        request[kRequestSpan] = null\n\n        hookDone()\n      })\n\n      instance.addHook = addHookPatched\n      instance.setNotFoundHandler = setNotFoundHandlerPatched\n\n      done()\n\n      function finalizeResponseSpanHook (request, reply, payload, hookDone) {\n        /** @type {import('@opentelemetry/api').Span} */\n        const span = request[kRequestSpan]\n\n        if (span != null) {\n          if (reply.statusCode >= 500) {\n            span.setStatus({ code: SpanStatusCode.ERROR })\n          }\n\n          span.setAttributes({\n            [ATTR_HTTP_RESPONSE_STATUS_CODE]: reply.statusCode\n          })\n          span.end()\n        }\n\n        request[kRequestSpan] = null\n\n        hookDone(null, payload)\n      }\n\n      function recordErrorInSpanHook (request, reply, error, hookDone) {\n        /** @type {Span} */\n        const span = request[kRequestSpan]\n\n        if (span != null) {\n          span.setStatus({\n            code: SpanStatusCode.ERROR,\n            message: error.message\n          })\n          if (instrumentation[kRecordExceptions] !== false) {\n            span.recordException(error)\n          }\n        }\n\n        hookDone()\n      }\n\n      function addHookPatched (name, hook) {\n        const addHookOriginal = this[kAddHookOriginal]\n\n        if (FASTIFY_HOOKS.includes(name)) {\n          return addHookOriginal.call(\n            this,\n            name,\n            handlerWrapper(hook, name, {\n              [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - ${name}`,\n              [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.INSTANCE,\n              [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]:\n                hook.name?.length > 0\n                  ? hook.name\n                  : ANONYMOUS_FUNCTION_NAME /* c8 ignore next */\n            })\n          )\n        } else {\n          return addHookOriginal.call(this, name, hook)\n        }\n      }\n\n      function setNotFoundHandlerPatched (hooks, handler) {\n        const setNotFoundHandlerOriginal = this[kSetNotFoundOriginal]\n        if (typeof hooks === 'function') {\n          handler = handlerWrapper(hooks, 'notFoundHandler', {\n            [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - not-found-handler`,\n            [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.INSTANCE,\n            [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]:\n              hooks.name?.length > 0\n                ? hooks.name\n                : ANONYMOUS_FUNCTION_NAME /* c8 ignore next */\n          })\n          setNotFoundHandlerOriginal.call(this, handler)\n        } else {\n          if (hooks.preValidation != null) {\n            hooks.preValidation = handlerWrapper(hooks.preValidation, 'notFoundHandler - preValidation', {\n              [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - not-found-handler - preValidation`,\n              [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.INSTANCE,\n              [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]:\n                hooks.preValidation.name?.length > 0\n                  ? hooks.preValidation.name\n                  : ANONYMOUS_FUNCTION_NAME /* c8 ignore next */\n            })\n          }\n\n          if (hooks.preHandler != null) {\n            hooks.preHandler = handlerWrapper(hooks.preHandler, 'notFoundHandler - preHandler', {\n              [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - not-found-handler - preHandler`,\n              [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.INSTANCE,\n              [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]:\n                hooks.preHandler.name?.length > 0\n                  ? hooks.preHandler.name\n                  : ANONYMOUS_FUNCTION_NAME /* c8 ignore next */\n            })\n          }\n\n          handler = handlerWrapper(handler, 'notFoundHandler', {\n            [ATTRIBUTE_NAMES.HOOK_NAME]: `${this.pluginName} - not-found-handler`,\n            [ATTRIBUTE_NAMES.FASTIFY_TYPE]: HOOK_TYPES.INSTANCE,\n            [ATTRIBUTE_NAMES.HOOK_CALLBACK_NAME]:\n              handler.name?.length > 0\n                ? handler.name\n                : ANONYMOUS_FUNCTION_NAME /* c8 ignore next */\n          })\n          setNotFoundHandlerOriginal.call(this, hooks, handler)\n        }\n      }\n\n      // regular handlers are (request, reply), @fastify/websocket handlers are (socket, request)\n      function getRequestFromArgs (args) {\n        for (const arg of args) {\n          if (arg?.routeOptions && arg.url && arg.method) {\n            return arg\n          }\n        }\n        return null\n      }\n\n      function handlerWrapper (handler, hookName, spanAttributes = {}) {\n        return function handlerWrapped (...args) {\n          /** @type {FastifyOtelInstrumentation} */\n          const instrumentation = this[kInstrumentation]\n\n          const request = getRequestFromArgs(args)\n          if (request === null) {\n            instrumentation.logger.debug(\n              `Ignoring route instrumentation because ${hookName} was called without a Fastify request argument`\n            )\n            return handler.call(this, ...args)\n          }\n\n          if (instrumentation.isEnabled() === false || request.routeOptions.config?.otel === false) {\n            instrumentation.logger.debug(\n              `Ignoring route instrumentation ${request.routeOptions.method} ${request.routeOptions.url} because it is disabled`\n            )\n            return handler.call(this, ...args)\n          }\n\n          if (instrumentation[kIgnorePaths]?.({\n            url: request.url,\n            method: request.method,\n          }) === true) {\n            instrumentation.logger.debug(\n              `Ignoring route instrumentation ${request.routeOptions.method} ${request.routeOptions.url} because it matches the ignore path`\n            )\n            return handler.call(this, ...args)\n          }\n\n          /* c8 ignore next */\n          const ctx = request[kRequestContext] ?? context.active()\n          const handlerName = handler.name?.length > 0\n            ? handler.name\n            : this.pluginName /* c8 ignore next */ ?? ANONYMOUS_FUNCTION_NAME /* c8 ignore next */\n\n          const span = instrumentation.tracer.startSpan(\n            `${hookName} - ${handlerName}`,\n            {\n              attributes: spanAttributes\n            },\n            ctx\n          )\n\n          if (instrumentation._lifecycleHook != null) {\n            try {\n              instrumentation._lifecycleHook(span, {\n                hookName,\n                request,\n                handler: handlerName\n              })\n            } catch (err) {\n              instrumentation.logger.error({ err }, 'Execution of lifecycleHook failed')\n            }\n          }\n\n          return context.with(\n            trace.setSpan(ctx, span),\n            function () {\n              try {\n                const res = handler.call(this, ...args)\n\n                if (typeof res?.then === 'function') {\n                  return res.then(\n                    result => {\n                      span.end()\n                      return result\n                    },\n                    error => {\n                      span.setStatus({\n                        code: SpanStatusCode.ERROR,\n                        message: error.message\n                      })\n                      if (instrumentation[kRecordExceptions] !== false) {\n                        span.recordException(error)\n                      }\n                      span.end()\n                      return Promise.reject(error)\n                    }\n                  )\n                }\n\n                span.end()\n                return res\n              } catch (error) {\n                span.setStatus({\n                  code: SpanStatusCode.ERROR,\n                  message: error.message\n                })\n                if (instrumentation[kRecordExceptions] !== false) {\n                  span.recordException(error)\n                }\n                span.end()\n                throw error\n              }\n            },\n            this\n          )\n        }\n      }\n    }\n  }\n}\n\nmodule.exports = FastifyOtelInstrumentation\nmodule.exports.FastifyOtelInstrumentation = FastifyOtelInstrumentation\n","// Vendored from https://github.com/open-telemetry/opentelemetry-js-contrib/blob/407f61591ba69a39a6908264379d4d98a48dbec4/plugins/node/opentelemetry-instrumentation-fastify/src/enums/AttributeNames.ts\n//\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport enum AttributeNames {\n  FASTIFY_NAME = 'fastify.name',\n  FASTIFY_TYPE = 'fastify.type',\n  HOOK_NAME = 'hook.name',\n  PLUGIN_NAME = 'plugin.name',\n}\n\nexport enum FastifyTypes {\n  MIDDLEWARE = 'middleware',\n  REQUEST_HANDLER = 'request_handler',\n}\n\nexport enum FastifyNames {\n  MIDDLEWARE = 'middleware',\n  REQUEST_HANDLER = 'request handler',\n}\n","// Vendored from https://github.com/open-telemetry/opentelemetry-js-contrib/blob/407f61591ba69a39a6908264379d4d98a48dbec4/plugins/node/opentelemetry-instrumentation-fastify/src/constants.ts\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport const spanRequestSymbol = Symbol('opentelemetry.instrumentation.fastify.request_active_span');\n\n// The instrumentation creates a span for invocations of lifecycle hook handlers\n// that take `(request, reply, ...[, done])` arguments. Currently this is all\n// lifecycle hooks except `onRequestAbort`.\n// https://fastify.dev/docs/latest/Reference/Hooks\nexport const hooksNamesToWrap = new Set([\n  'onTimeout',\n  'onRequest',\n  'preParsing',\n  'preValidation',\n  'preSerialization',\n  'preHandler',\n  'onSend',\n  'onResponse',\n  'onError',\n]);\n","// Vendored from: https://github.com/open-telemetry/opentelemetry-js-contrib/blob/407f61591ba69a39a6908264379d4d98a48dbec4/plugins/node/opentelemetry-instrumentation-fastify/src/utils.ts\n/* eslint-disable jsdoc/require-jsdoc */\n/* eslint-disable @typescript-eslint/no-dynamic-delete */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { type Attributes, type Span, SpanStatusCode, type Tracer } from '@opentelemetry/api';\nimport { spanRequestSymbol } from './constants';\nimport type { PluginFastifyReply } from './internal-types';\n\n/**\n * Starts Span\n * @param reply - reply function\n * @param tracer - tracer\n * @param spanName - span name\n * @param spanAttributes - span attributes\n */\nexport function startSpan(\n  reply: PluginFastifyReply,\n  tracer: Tracer,\n  spanName: string,\n  spanAttributes: Attributes = {},\n) {\n  const span = tracer.startSpan(spanName, { attributes: spanAttributes });\n\n  const spans: Span[] = reply[spanRequestSymbol] || [];\n  spans.push(span);\n\n  Object.defineProperty(reply, spanRequestSymbol, {\n    enumerable: false,\n    configurable: true,\n    value: spans,\n  });\n\n  return span;\n}\n\n/**\n * Ends span\n * @param reply - reply function\n * @param err - error\n */\nexport function endSpan(reply: PluginFastifyReply, err?: any) {\n  const spans = reply[spanRequestSymbol] || [];\n  // there is no active span, or it has already ended\n  if (!spans.length) {\n    return;\n  }\n  // biome-ignore lint/complexity/noForEach: \n  spans.forEach((span: Span) => {\n    if (err) {\n      span.setStatus({\n        code: SpanStatusCode.ERROR,\n        message: err.message,\n      });\n      span.recordException(err);\n    }\n    span.end();\n  });\n  delete reply[spanRequestSymbol];\n}\n\n// @TODO after approve add this to instrumentation package and replace usage\n// when it will be released\n\n/**\n * This function handles the missing case from instrumentation package when\n * execute can either return a promise or void. And using async is not an\n * option as it is producing unwanted side effects.\n * @param execute - function to be executed\n * @param onFinish - function called when function executed\n * @param preventThrowingError - prevent to throw error when execute\n * function fails\n */\nexport function safeExecuteInTheMiddleMaybePromise(\n  execute: () => Promise,\n  onFinish: (e: unknown, result?: T) => void,\n  preventThrowingError?: boolean,\n): Promise;\nexport function safeExecuteInTheMiddleMaybePromise(\n  execute: () => T,\n  onFinish: (e: unknown, result?: T) => void,\n  preventThrowingError?: boolean,\n): T;\nexport function safeExecuteInTheMiddleMaybePromise(\n  execute: () => T | Promise,\n  onFinish: (e: unknown, result?: T) => void,\n  preventThrowingError?: boolean,\n): T | Promise | undefined {\n  let error: unknown;\n  let result: T | Promise | undefined = undefined;\n  try {\n    result = execute();\n\n    if (isPromise(result)) {\n      result.then(\n        res => onFinish(undefined, res),\n        err => onFinish(err),\n      );\n    }\n  } catch (e) {\n    error = e;\n  } finally {\n    if (!isPromise(result)) {\n      onFinish(error, result);\n      if (error && !preventThrowingError) {\n        // eslint-disable-next-line no-unsafe-finally\n        throw error;\n      }\n    }\n    // eslint-disable-next-line no-unsafe-finally\n    return result;\n  }\n}\n\nfunction isPromise(val: T | Promise): val is Promise {\n  return (\n    (typeof val === 'object' && val && typeof Object.getOwnPropertyDescriptor(val, 'then')?.value === 'function') ||\n    false\n  );\n}\n","// Vendored from: https://github.com/open-telemetry/opentelemetry-js-contrib/blob/407f61591ba69a39a6908264379d4d98a48dbec4/plugins/node/opentelemetry-instrumentation-fastify/src/instrumentation.ts\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-this-alias */\n/* eslint-disable jsdoc/require-jsdoc */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\n/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { type Attributes, context, SpanStatusCode, trace } from '@opentelemetry/api';\nimport { getRPCMetadata, RPCType } from '@opentelemetry/core';\nimport {\n  InstrumentationBase,\n  InstrumentationNodeModuleDefinition,\n  safeExecuteInTheMiddle,\n} from '@opentelemetry/instrumentation';\nimport { SEMATTRS_HTTP_ROUTE } from '@opentelemetry/semantic-conventions';\nimport type { Span } from '@sentry/core';\nimport {\n  getClient,\n  getIsolationScope,\n  SEMANTIC_ATTRIBUTE_SENTRY_OP,\n  SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n  spanToJSON,\n} from '@sentry/core';\nimport type {\n  FastifyErrorCodes,\n  FastifyInstance,\n  FastifyReply,\n  FastifyRequest,\n  HandlerOriginal,\n  HookHandlerDoneFunction,\n} from '../types';\nimport { AttributeNames, FastifyNames, FastifyTypes } from './enums/AttributeNames';\nimport type { PluginFastifyReply } from './internal-types';\nimport type { FastifyInstrumentationConfig } from './types';\nimport { endSpan, safeExecuteInTheMiddleMaybePromise, startSpan } from './utils';\n/** @knipignore */\n\nconst PACKAGE_VERSION = '0.1.0';\n\nconst PACKAGE_NAME = '@sentry/instrumentation-fastify-v3';\nconst ANONYMOUS_NAME = 'anonymous';\n\n// The instrumentation creates a span for invocations of lifecycle hook handlers\n// that take `(request, reply, ...[, done])` arguments. Currently this is all\n// lifecycle hooks except `onRequestAbort`.\n// https://fastify.dev/docs/latest/Reference/Hooks\nconst hooksNamesToWrap = new Set([\n  'onTimeout',\n  'onRequest',\n  'preParsing',\n  'preValidation',\n  'preSerialization',\n  'preHandler',\n  'onSend',\n  'onResponse',\n  'onError',\n]);\n\n/**\n * Fastify instrumentation for OpenTelemetry\n */\nexport class FastifyInstrumentationV3 extends InstrumentationBase {\n  public constructor(config: FastifyInstrumentationConfig = {}) {\n    super(PACKAGE_NAME, PACKAGE_VERSION, config);\n  }\n\n  public init(): InstrumentationNodeModuleDefinition[] {\n    return [\n      new InstrumentationNodeModuleDefinition('fastify', ['>=3.0.0 <4'], moduleExports => {\n        return this._patchConstructor(moduleExports);\n      }),\n    ];\n  }\n\n  private _hookOnRequest() {\n    const instrumentation = this;\n\n    return function onRequest(request: FastifyRequest, reply: FastifyReply, done: HookHandlerDoneFunction) {\n      if (!instrumentation.isEnabled()) {\n        return done();\n      }\n      instrumentation._wrap(reply, 'send', instrumentation._patchSend());\n\n      const anyRequest = request as any;\n\n      const rpcMetadata = getRPCMetadata(context.active());\n      const routeName = anyRequest.routeOptions\n        ? anyRequest.routeOptions.url // since fastify@4.10.0\n        : request.routerPath;\n      if (routeName && rpcMetadata?.type === RPCType.HTTP) {\n        rpcMetadata.route = routeName;\n      }\n\n      const method = request.method || 'GET';\n\n      getIsolationScope().setTransactionName(`${method} ${routeName}`);\n      done();\n    };\n  }\n\n  private _wrapHandler(\n    pluginName: string,\n    hookName: string,\n    original: HandlerOriginal,\n    syncFunctionWithDone: boolean,\n  ): () => Promise {\n    const instrumentation = this;\n    this._diag.debug('Patching fastify route.handler function');\n\n    return function (this: any, ...args: unknown[]): Promise {\n      if (!instrumentation.isEnabled()) {\n        return original.apply(this, args);\n      }\n\n      const name = original.name || pluginName || ANONYMOUS_NAME;\n      const spanName = `${FastifyNames.MIDDLEWARE} - ${name}`;\n\n      const reply = args[1] as PluginFastifyReply;\n\n      const span = startSpan(reply, instrumentation.tracer, spanName, {\n        [AttributeNames.FASTIFY_TYPE]: FastifyTypes.MIDDLEWARE,\n        [AttributeNames.PLUGIN_NAME]: pluginName,\n        [AttributeNames.HOOK_NAME]: hookName,\n      });\n\n      const origDone = syncFunctionWithDone && (args[args.length - 1] as HookHandlerDoneFunction);\n      if (origDone) {\n        args[args.length - 1] = function (...doneArgs: Parameters) {\n          endSpan(reply);\n          origDone.apply(this, doneArgs);\n        };\n      }\n\n      return context.with(trace.setSpan(context.active(), span), () => {\n        return safeExecuteInTheMiddleMaybePromise(\n          () => {\n            return original.apply(this, args);\n          },\n          err => {\n            if (err instanceof Error) {\n              span.setStatus({\n                code: SpanStatusCode.ERROR,\n                message: err.message,\n              });\n              span.recordException(err);\n            }\n            // async hooks should end the span as soon as the promise is resolved\n            if (!syncFunctionWithDone) {\n              endSpan(reply);\n            }\n          },\n        );\n      });\n    };\n  }\n\n  private _wrapAddHook(): (original: FastifyInstance['addHook']) => () => FastifyInstance {\n    const instrumentation = this;\n    this._diag.debug('Patching fastify server.addHook function');\n\n    // biome-ignore lint/complexity/useArrowFunction: \n    return function (original: FastifyInstance['addHook']): () => FastifyInstance {\n      return function wrappedAddHook(this: any, ...args: any) {\n        const name = args[0] as string;\n        const handler = args[1] as HandlerOriginal;\n        const pluginName = this.pluginName;\n        if (!hooksNamesToWrap.has(name)) {\n          return original.apply(this, args);\n        }\n\n        const syncFunctionWithDone =\n          typeof args[args.length - 1] === 'function' && handler.constructor.name !== 'AsyncFunction';\n\n        return original.apply(this, [\n          name,\n          instrumentation._wrapHandler(pluginName, name, handler, syncFunctionWithDone),\n        ] as never);\n      };\n    };\n  }\n\n  private _patchConstructor(moduleExports: {\n    fastify: () => FastifyInstance;\n    errorCodes: FastifyErrorCodes | undefined;\n  }): () => FastifyInstance {\n    const instrumentation = this;\n\n    function fastify(this: FastifyInstance, ...args: any) {\n      const app: FastifyInstance = moduleExports.fastify.apply(this, args);\n      app.addHook('onRequest', instrumentation._hookOnRequest());\n      app.addHook('preHandler', instrumentation._hookPreHandler());\n\n      instrumentClient();\n\n      instrumentation._wrap(app, 'addHook', instrumentation._wrapAddHook());\n\n      return app;\n    }\n\n    if (moduleExports.errorCodes !== undefined) {\n      fastify.errorCodes = moduleExports.errorCodes;\n    }\n    fastify.fastify = fastify;\n    fastify.default = fastify;\n    return fastify;\n  }\n\n  private _patchSend() {\n    const instrumentation = this;\n    this._diag.debug('Patching fastify reply.send function');\n\n    return function patchSend(original: () => FastifyReply): () => FastifyReply {\n      return function send(this: FastifyReply, ...args: any) {\n        const maybeError: any = args[0];\n\n        if (!instrumentation.isEnabled()) {\n          return original.apply(this, args);\n        }\n\n        return safeExecuteInTheMiddle(\n          () => {\n            return original.apply(this, args);\n          },\n          err => {\n            if (!err && maybeError instanceof Error) {\n              // eslint-disable-next-line no-param-reassign\n              err = maybeError;\n            }\n            endSpan(this, err);\n          },\n        );\n      };\n    };\n  }\n\n  private _hookPreHandler() {\n    const instrumentation = this;\n    this._diag.debug('Patching fastify preHandler function');\n\n    return function preHandler(this: any, request: FastifyRequest, reply: FastifyReply, done: HookHandlerDoneFunction) {\n      if (!instrumentation.isEnabled()) {\n        return done();\n      }\n      const anyRequest = request as any;\n\n      const handler = anyRequest.routeOptions?.handler || anyRequest.context?.handler;\n      const handlerName = handler?.name.startsWith('bound ') ? handler.name.substring(6) : handler?.name;\n      const spanName = `${FastifyNames.REQUEST_HANDLER} - ${handlerName || this.pluginName || ANONYMOUS_NAME}`;\n\n      const spanAttributes: Attributes = {\n        [AttributeNames.PLUGIN_NAME]: this.pluginName,\n        [AttributeNames.FASTIFY_TYPE]: FastifyTypes.REQUEST_HANDLER,\n        // eslint-disable-next-line deprecation/deprecation\n        [SEMATTRS_HTTP_ROUTE]: anyRequest.routeOptions\n          ? anyRequest.routeOptions.url // since fastify@4.10.0\n          : request.routerPath,\n      };\n      if (handlerName) {\n        spanAttributes[AttributeNames.FASTIFY_NAME] = handlerName;\n      }\n      const span = startSpan(reply, instrumentation.tracer, spanName, spanAttributes);\n\n      addFastifyV3SpanAttributes(span);\n\n      const { requestHook } = instrumentation.getConfig();\n      if (requestHook) {\n        safeExecuteInTheMiddle(\n          () => requestHook(span, { request }),\n          e => {\n            if (e) {\n              instrumentation._diag.error('request hook failed', e);\n            }\n          },\n          true,\n        );\n      }\n\n      return context.with(trace.setSpan(context.active(), span), () => {\n        done();\n      });\n    };\n  }\n}\n\nfunction instrumentClient(): void {\n  const client = getClient();\n  if (client) {\n    client.on('spanStart', (span: Span) => {\n      addFastifyV3SpanAttributes(span);\n    });\n  }\n}\n\nfunction addFastifyV3SpanAttributes(span: Span): void {\n  const attributes = spanToJSON(span).data;\n\n  // this is one of: middleware, request_handler\n  const type = attributes['fastify.type'];\n\n  // If this is already set, or we have no fastify span, no need to process again...\n  if (attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] || !type) {\n    return;\n  }\n\n  span.setAttributes({\n    [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.fastify',\n    [SEMANTIC_ATTRIBUTE_SENTRY_OP]: `${type}.fastify`,\n  });\n\n  // Also update the name, we don't need to \"middleware - \" prefix\n  const name = attributes['fastify.name'] || attributes['plugin.name'] || attributes['hook.name'];\n  if (typeof name === 'string') {\n    // Try removing `fastify -> ` and `@fastify/otel -> ` prefixes\n    // This is a bit of a hack, and not always working for all spans\n    // But it's the best we can do without a proper API\n    const updatedName = name.replace(/^fastify -> /, '').replace(/^@fastify\\/otel -> /, '');\n\n    span.updateName(updatedName);\n  }\n}\n","import * as diagnosticsChannel from 'node:diagnostics_channel';\nimport { FastifyOtelInstrumentation } from '@fastify/otel';\nimport type { Instrumentation, InstrumentationConfig } from '@opentelemetry/instrumentation';\nimport type { IntegrationFn, Span } from '@sentry/core';\nimport {\n  captureException,\n  debug,\n  defineIntegration,\n  getClient,\n  getIsolationScope,\n  SEMANTIC_ATTRIBUTE_SENTRY_OP,\n  SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n  spanToJSON,\n} from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { DEBUG_BUILD } from '../../../debug-build';\nimport type { FastifyInstance, FastifyMinimal, FastifyReply, FastifyRequest } from './types';\nimport { FastifyInstrumentationV3 } from './v3/instrumentation';\n\n/**\n * Options for the Fastify integration.\n *\n * `shouldHandleError` - Callback method deciding whether error should be captured and sent to Sentry\n * This is used on Fastify v5 where Sentry handles errors in the diagnostics channel.\n * Fastify v3 and v4 use `setupFastifyErrorHandler` instead.\n *\n * @example\n *\n * ```javascript\n * Sentry.init({\n *   integrations: [\n *     Sentry.fastifyIntegration({\n *       shouldHandleError(_error, _request, reply) {\n *         return reply.statusCode >= 500;\n *       },\n *     });\n *   },\n * });\n * ```\n *\n */\ninterface FastifyIntegrationOptions {\n  /**\n   * Callback method deciding whether error should be captured and sent to Sentry\n   * This is used on Fastify v5 where Sentry handles errors in the diagnostics channel.\n   * Fastify v3 and v4 use `setupFastifyErrorHandler` instead.\n   *\n   * @param error Captured Fastify error\n   * @param request Fastify request (or any object containing at least method, routeOptions.url, and routerPath)\n   * @param reply Fastify reply (or any object containing at least statusCode)\n   */\n  shouldHandleError: (error: Error, request: FastifyRequest, reply: FastifyReply) => boolean;\n}\n\ninterface FastifyHandlerOptions {\n  /**\n   * Callback method deciding whether error should be captured and sent to Sentry\n   *\n   * @param error Captured Fastify error\n   * @param request Fastify request (or any object containing at least method, routeOptions.url, and routerPath)\n   * @param reply Fastify reply (or any object containing at least statusCode)\n   *\n   * @example\n   *\n   *\n   * ```javascript\n   * setupFastifyErrorHandler(app, {\n   *   shouldHandleError(_error, _request, reply) {\n   *     return reply.statusCode >= 400;\n   *   },\n   * });\n   * ```\n   *\n   *\n   * If using TypeScript, you can cast the request and reply to get full type safety.\n   *\n   * ```typescript\n   * import type { FastifyRequest, FastifyReply } from 'fastify';\n   *\n   * setupFastifyErrorHandler(app, {\n   *   shouldHandleError(error, minimalRequest, minimalReply) {\n   *     const request = minimalRequest as FastifyRequest;\n   *     const reply = minimalReply as FastifyReply;\n   *     return reply.statusCode >= 500;\n   *   },\n   * });\n   * ```\n   */\n  shouldHandleError: (error: Error, request: FastifyRequest, reply: FastifyReply) => boolean;\n}\n\nconst INTEGRATION_NAME = 'Fastify';\n\nexport const instrumentFastifyV3 = generateInstrumentOnce(\n  `${INTEGRATION_NAME}.v3`,\n  () => new FastifyInstrumentationV3(),\n);\n\nfunction getFastifyIntegration(): ReturnType | undefined {\n  const client = getClient();\n  if (!client) {\n    return undefined;\n  } else {\n    return client.getIntegrationByName(INTEGRATION_NAME);\n  }\n}\n\nfunction handleFastifyError(\n  this: {\n    diagnosticsChannelExists?: boolean;\n  },\n  error: Error,\n  request: FastifyRequest & { opentelemetry?: () => { span?: Span } },\n  reply: FastifyReply,\n  handlerOrigin: 'diagnostics-channel' | 'onError-hook',\n): void {\n  const shouldHandleError = getFastifyIntegration()?.getShouldHandleError() || defaultShouldHandleError;\n  // Diagnostics channel runs before the onError hook, so we can use it to check if the handler was already registered\n  if (handlerOrigin === 'diagnostics-channel') {\n    this.diagnosticsChannelExists = true;\n  }\n\n  if (this.diagnosticsChannelExists && handlerOrigin === 'onError-hook') {\n    DEBUG_BUILD &&\n      debug.warn(\n        'Fastify error handler was already registered via diagnostics channel.',\n        'You can safely remove `setupFastifyErrorHandler` call and set `shouldHandleError` on the integration options.',\n      );\n\n    // If the diagnostics channel already exists, we don't need to handle the error again\n    return;\n  }\n\n  if (shouldHandleError(error, request, reply)) {\n    captureException(error, { mechanism: { handled: false, type: 'auto.function.fastify' } });\n  }\n}\n\nexport const instrumentFastify = generateInstrumentOnce(`${INTEGRATION_NAME}.v5`, () => {\n  const fastifyOtelInstrumentationInstance = new FastifyOtelInstrumentation();\n  const plugin = fastifyOtelInstrumentationInstance.plugin();\n\n  // This message handler works for Fastify versions 3, 4 and 5\n  diagnosticsChannel.subscribe('fastify.initialization', message => {\n    const fastifyInstance = (message as { fastify?: FastifyInstance }).fastify;\n\n    fastifyInstance?.register(plugin).after(err => {\n      if (err) {\n        DEBUG_BUILD && debug.error('Failed to setup Fastify instrumentation', err);\n      } else {\n        instrumentClient();\n\n        if (fastifyInstance) {\n          instrumentOnRequest(fastifyInstance);\n        }\n      }\n    });\n  });\n\n  // This diagnostics channel only works on Fastify version 5\n  // For versions 3 and 4, we use `setupFastifyErrorHandler` instead\n  diagnosticsChannel.subscribe('tracing:fastify.request.handler:error', message => {\n    const { error, request, reply } = message as {\n      error: Error;\n      request: FastifyRequest & { opentelemetry?: () => { span?: Span } };\n      reply: FastifyReply;\n    };\n\n    handleFastifyError.call(handleFastifyError, error, request, reply, 'diagnostics-channel');\n  });\n\n  // Returning this as Instrumentation to avoid leaking @fastify/otel types into the public API\n  return fastifyOtelInstrumentationInstance as unknown as Instrumentation;\n});\n\nconst _fastifyIntegration = (({ shouldHandleError }: Partial) => {\n  let _shouldHandleError: (error: Error, request: FastifyRequest, reply: FastifyReply) => boolean;\n\n  return {\n    name: INTEGRATION_NAME,\n    setupOnce() {\n      _shouldHandleError = shouldHandleError || defaultShouldHandleError;\n\n      instrumentFastifyV3();\n      instrumentFastify();\n    },\n    getShouldHandleError() {\n      return _shouldHandleError;\n    },\n    setShouldHandleError(fn: (error: Error, request: FastifyRequest, reply: FastifyReply) => boolean): void {\n      _shouldHandleError = fn;\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for [Fastify](https://fastify.dev/).\n *\n * If you also want to capture errors, you need to call `setupFastifyErrorHandler(app)` after you set up your Fastify server.\n *\n * For more information, see the [fastify documentation](https://docs.sentry.io/platforms/javascript/guides/fastify/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n *   integrations: [Sentry.fastifyIntegration()],\n * })\n * ```\n */\nexport const fastifyIntegration = defineIntegration((options: Partial = {}) =>\n  _fastifyIntegration(options),\n);\n\n/**\n * Default function to determine if an error should be sent to Sentry\n *\n * 3xx and 4xx errors are not sent by default.\n */\nfunction defaultShouldHandleError(_error: Error, _request: FastifyRequest, reply: FastifyReply): boolean {\n  const statusCode = reply.statusCode;\n  // 3xx and 4xx errors are not sent by default.\n  return statusCode >= 500 || statusCode <= 299;\n}\n\n/**\n * Add an Fastify error handler to capture errors to Sentry.\n *\n * @param fastify The Fastify instance to which to add the error handler\n * @param options Configuration options for the handler\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n * const Fastify = require(\"fastify\");\n *\n * const app = Fastify();\n *\n * Sentry.setupFastifyErrorHandler(app);\n *\n * // Add your routes, etc.\n *\n * app.listen({ port: 3000 });\n * ```\n */\nexport function setupFastifyErrorHandler(fastify: FastifyMinimal, options?: Partial): void {\n  if (options?.shouldHandleError) {\n    getFastifyIntegration()?.setShouldHandleError(options.shouldHandleError);\n  }\n\n  const plugin = Object.assign(\n    function (fastify: FastifyInstance, _options: unknown, done: () => void): void {\n      fastify.addHook('onError', async (request, reply, error) => {\n        handleFastifyError.call(handleFastifyError, error, request, reply, 'onError-hook');\n      });\n      done();\n    },\n    {\n      [Symbol.for('skip-override')]: true,\n      [Symbol.for('fastify.display-name')]: 'sentry-fastify-error-handler',\n    },\n  );\n\n  fastify.register(plugin);\n}\n\nfunction addFastifySpanAttributes(span: Span): void {\n  const spanJSON = spanToJSON(span);\n  const spanName = spanJSON.description;\n  const attributes = spanJSON.data;\n\n  const type = attributes['fastify.type'];\n\n  const isHook = type === 'hook';\n  const isHandler = type === spanName?.startsWith('handler -');\n  // In @fastify/otel `request-handler` is separated by dash, not underscore\n  const isRequestHandler = spanName === 'request' || type === 'request-handler';\n\n  // If this is already set, or we have no fastify span, no need to process again...\n  if (attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] || (!isHandler && !isRequestHandler && !isHook)) {\n    return;\n  }\n\n  const opPrefix = isHook ? 'hook' : isHandler ? 'middleware' : isRequestHandler ? 'request_handler' : '';\n\n  span.setAttributes({\n    [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.fastify',\n    [SEMANTIC_ATTRIBUTE_SENTRY_OP]: `${opPrefix}.fastify`,\n  });\n\n  const attrName = attributes['fastify.name'] || attributes['plugin.name'] || attributes['hook.name'];\n  if (typeof attrName === 'string') {\n    // Try removing `fastify -> ` and `@fastify/otel -> ` prefixes\n    // This is a bit of a hack, and not always working for all spans\n    // But it's the best we can do without a proper API\n    const updatedName = attrName.replace(/^fastify -> /, '').replace(/^@fastify\\/otel -> /, '');\n\n    span.updateName(updatedName);\n  }\n}\n\nfunction instrumentClient(): void {\n  const client = getClient();\n  if (client) {\n    client.on('spanStart', (span: Span) => {\n      addFastifySpanAttributes(span);\n    });\n  }\n}\n\nfunction instrumentOnRequest(fastify: FastifyInstance): void {\n  fastify.addHook('onRequest', async (request: FastifyRequest & { opentelemetry?: () => { span?: Span } }, _reply) => {\n    if (request.opentelemetry) {\n      const { span } = request.opentelemetry();\n\n      if (span) {\n        addFastifySpanAttributes(span);\n      }\n    }\n\n    const routeName = request.routeOptions?.url;\n    const method = request.method || 'GET';\n\n    getIsolationScope().setTransactionName(`${method} ${routeName}`);\n  });\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport enum AllowedOperationTypes {\n  QUERY = 'query',\n  MUTATION = 'mutation',\n  SUBSCRIPTION = 'subscription',\n}\n\nexport enum TokenKind {\n  SOF = '',\n  EOF = '',\n  BANG = '!',\n  DOLLAR = '$',\n  AMP = '&',\n  PAREN_L = '(',\n  PAREN_R = ')',\n  SPREAD = '...',\n  COLON = ':',\n  EQUALS = '=',\n  AT = '@',\n  BRACKET_L = '[',\n  BRACKET_R = ']',\n  BRACE_L = '{',\n  PIPE = '|',\n  BRACE_R = '}',\n  NAME = 'Name',\n  INT = 'Int',\n  FLOAT = 'Float',\n  STRING = 'String',\n  BLOCK_STRING = 'BlockString',\n  COMMENT = 'Comment',\n}\n\nexport enum SpanNames {\n  EXECUTE = 'graphql.execute',\n  PARSE = 'graphql.parse',\n  RESOLVE = 'graphql.resolve',\n  VALIDATE = 'graphql.validate',\n  SCHEMA_VALIDATE = 'graphql.validateSchema',\n  SCHEMA_PARSE = 'graphql.parseSchema',\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport enum AttributeNames {\n  SOURCE = 'graphql.source',\n  FIELD_NAME = 'graphql.field.name',\n  FIELD_PATH = 'graphql.field.path',\n  FIELD_TYPE = 'graphql.field.type',\n  PARENT_NAME = 'graphql.parent.name',\n  OPERATION_TYPE = 'graphql.operation.type',\n  OPERATION_NAME = 'graphql.operation.name',\n  VARIABLES = 'graphql.variables.',\n  ERROR_VALIDATION_NAME = 'graphql.validation.error',\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport const OTEL_PATCHED_SYMBOL = Symbol.for('opentelemetry.patched');\n\nexport const OTEL_GRAPHQL_DATA_SYMBOL = Symbol.for(\n  'opentelemetry.graphql_data'\n);\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type * as graphqlTypes from 'graphql';\nimport type * as api from '@opentelemetry/api';\nimport type { PromiseOrValue } from 'graphql/jsutils/PromiseOrValue';\nimport type { DocumentNode } from 'graphql/language/ast';\nimport type {\n  GraphQLFieldResolver,\n  GraphQLTypeResolver,\n} from 'graphql/type/definition';\nimport { OTEL_GRAPHQL_DATA_SYMBOL, OTEL_PATCHED_SYMBOL } from './symbols';\n\nexport const OPERATION_NOT_SUPPORTED =\n  'Operation$operationName$not' + ' supported';\n\nexport type executeFunctionWithObj = (\n  args: graphqlTypes.ExecutionArgs\n) => PromiseOrValue;\n\nexport type executeArgumentsArray = [\n  graphqlTypes.GraphQLSchema,\n  graphqlTypes.DocumentNode,\n  any,\n  any,\n  Maybe<{ [key: string]: any }>,\n  Maybe,\n  Maybe>,\n  Maybe>,\n];\n\nexport type executeFunctionWithArgs = (\n  schema: graphqlTypes.GraphQLSchema,\n  document: graphqlTypes.DocumentNode,\n  rootValue?: any,\n  contextValue?: any,\n  variableValues?: Maybe<{ [key: string]: any }>,\n  operationName?: Maybe,\n  fieldResolver?: Maybe>,\n  typeResolver?: Maybe>\n) => PromiseOrValue;\n\nexport interface OtelExecutionArgs {\n  schema: graphqlTypes.GraphQLSchema;\n  document: DocumentNode & ObjectWithGraphQLData;\n  rootValue?: any;\n  contextValue?: any & ObjectWithGraphQLData;\n  variableValues?: Maybe<{ [key: string]: any }>;\n  operationName?: Maybe;\n  fieldResolver?: Maybe & OtelPatched>;\n  typeResolver?: Maybe>;\n}\n\nexport type executeType = executeFunctionWithObj | executeFunctionWithArgs;\n\nexport type parseType = (\n  source: string | graphqlTypes.Source,\n  options?: graphqlTypes.ParseOptions\n) => graphqlTypes.DocumentNode;\n\nexport type validateType = (\n  schema: graphqlTypes.GraphQLSchema,\n  documentAST: graphqlTypes.DocumentNode,\n  rules?: ReadonlyArray,\n  options?: { maxErrors?: number },\n  typeInfo?: graphqlTypes.TypeInfo\n) => ReadonlyArray;\n\nexport interface GraphQLField {\n  span: api.Span;\n}\n\ninterface OtelGraphQLData {\n  source?: any;\n  span: api.Span;\n  fields: { [key: string]: GraphQLField };\n}\n\nexport interface ObjectWithGraphQLData {\n  [OTEL_GRAPHQL_DATA_SYMBOL]?: OtelGraphQLData;\n}\n\nexport interface OtelPatched {\n  [OTEL_PATCHED_SYMBOL]?: boolean;\n}\n\nexport interface GraphQLPath {\n  prev: GraphQLPath | undefined;\n  key: string | number;\n  /**\n   * optional as it didn't exist yet in ver 14\n   */\n  typename?: string | undefined;\n}\n\n/**\n * Moving this type from ver 15 of graphql as it is nto available in ver. 14s\n * this way it can compile against ver 14.\n */\nexport type Maybe = null | undefined | T;\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type * as graphqlTypes from 'graphql';\nimport * as api from '@opentelemetry/api';\nimport { AllowedOperationTypes, SpanNames, TokenKind } from './enum';\nimport { AttributeNames } from './enums/AttributeNames';\nimport { OTEL_GRAPHQL_DATA_SYMBOL, OTEL_PATCHED_SYMBOL } from './symbols';\nimport {\n  GraphQLField,\n  GraphQLPath,\n  ObjectWithGraphQLData,\n  OtelPatched,\n  Maybe,\n} from './internal-types';\nimport { GraphQLInstrumentationParsedConfig } from './types';\n\nconst OPERATION_VALUES = Object.values(AllowedOperationTypes);\n\n// https://github.com/graphql/graphql-js/blob/main/src/jsutils/isPromise.ts\nexport const isPromise = (value: any): value is Promise => {\n  return typeof value?.then === 'function';\n};\n\n// https://github.com/graphql/graphql-js/blob/main/src/jsutils/isObjectLike.ts\nconst isObjectLike = (value: unknown): value is { [key: string]: unknown } => {\n  return typeof value == 'object' && value !== null;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction addInputVariableAttribute(span: api.Span, key: string, variable: any) {\n  if (Array.isArray(variable)) {\n    variable.forEach((value, idx) => {\n      addInputVariableAttribute(span, `${key}.${idx}`, value);\n    });\n  } else if (variable instanceof Object) {\n    Object.entries(variable).forEach(([nestedKey, value]) => {\n      addInputVariableAttribute(span, `${key}.${nestedKey}`, value);\n    });\n  } else {\n    span.setAttribute(`${AttributeNames.VARIABLES}${String(key)}`, variable);\n  }\n}\n\nexport function addInputVariableAttributes(\n  span: api.Span,\n  variableValues: { [key: string]: any }\n) {\n  Object.entries(variableValues).forEach(([key, value]) => {\n    addInputVariableAttribute(span, key, value);\n  });\n}\n\nexport function addSpanSource(\n  span: api.Span,\n  loc?: graphqlTypes.Location,\n  allowValues?: boolean,\n  start?: number,\n  end?: number\n): void {\n  const source = getSourceFromLocation(loc, allowValues, start, end);\n  span.setAttribute(AttributeNames.SOURCE, source);\n}\n\nfunction createFieldIfNotExists(\n  tracer: api.Tracer,\n  getConfig: () => GraphQLInstrumentationParsedConfig,\n  contextValue: any,\n  info: graphqlTypes.GraphQLResolveInfo,\n  path: string[]\n): {\n  field: GraphQLField;\n  spanAdded: boolean;\n} {\n  let field = getField(contextValue, path);\n  if (field) {\n    return { field, spanAdded: false };\n  }\n\n  const config = getConfig();\n  const parentSpan = config.flatResolveSpans\n    ? getRootSpan(contextValue)\n    : getParentFieldSpan(contextValue, path);\n\n  field = {\n    span: createResolverSpan(\n      tracer,\n      getConfig,\n      contextValue,\n      info,\n      path,\n      parentSpan\n    ),\n  };\n\n  addField(contextValue, path, field);\n\n  return { field, spanAdded: true };\n}\n\nfunction createResolverSpan(\n  tracer: api.Tracer,\n  getConfig: () => GraphQLInstrumentationParsedConfig,\n  contextValue: any,\n  info: graphqlTypes.GraphQLResolveInfo,\n  path: string[],\n  parentSpan?: api.Span\n): api.Span {\n  const attributes: api.SpanAttributes = {\n    [AttributeNames.FIELD_NAME]: info.fieldName,\n    [AttributeNames.FIELD_PATH]: path.join('.'),\n    [AttributeNames.FIELD_TYPE]: info.returnType.toString(),\n    [AttributeNames.PARENT_NAME]: info.parentType.name,\n  };\n\n  const span = tracer.startSpan(\n    `${SpanNames.RESOLVE} ${attributes[AttributeNames.FIELD_PATH]}`,\n    {\n      attributes,\n    },\n    parentSpan ? api.trace.setSpan(api.context.active(), parentSpan) : undefined\n  );\n\n  const document = contextValue[OTEL_GRAPHQL_DATA_SYMBOL].source;\n  const fieldNode = info.fieldNodes.find(\n    fieldNode => fieldNode.kind === 'Field'\n  );\n\n  if (fieldNode) {\n    addSpanSource(\n      span,\n      document.loc,\n      getConfig().allowValues,\n      fieldNode.loc?.start,\n      fieldNode.loc?.end\n    );\n  }\n\n  return span;\n}\n\nexport function endSpan(span: api.Span, error?: Error): void {\n  if (error) {\n    span.recordException(error);\n  }\n  span.end();\n}\n\nexport function getOperation(\n  document: graphqlTypes.DocumentNode,\n  operationName?: Maybe\n): graphqlTypes.DefinitionNode | undefined {\n  if (!document || !Array.isArray(document.definitions)) {\n    return undefined;\n  }\n\n  if (operationName) {\n    return document.definitions\n      .filter(\n        definition =>\n          OPERATION_VALUES.indexOf((definition as any)?.operation) !== -1\n      )\n      .find(definition => operationName === (definition as any)?.name?.value);\n  } else {\n    return document.definitions.find(\n      definition =>\n        OPERATION_VALUES.indexOf((definition as any)?.operation) !== -1\n    );\n  }\n}\n\nfunction addField(contextValue: any, path: string[], field: GraphQLField) {\n  return (contextValue[OTEL_GRAPHQL_DATA_SYMBOL].fields[path.join('.')] =\n    field);\n}\n\nfunction getField(contextValue: any, path: string[]): GraphQLField {\n  return contextValue[OTEL_GRAPHQL_DATA_SYMBOL].fields[path.join('.')];\n}\n\nfunction getParentFieldSpan(contextValue: any, path: string[]): api.Span {\n  for (let i = path.length - 1; i > 0; i--) {\n    const field = getField(contextValue, path.slice(0, i));\n\n    if (field) {\n      return field.span;\n    }\n  }\n\n  return getRootSpan(contextValue);\n}\n\nfunction getRootSpan(contextValue: any): api.Span {\n  return contextValue[OTEL_GRAPHQL_DATA_SYMBOL].span;\n}\n\nfunction pathToArray(mergeItems: boolean, path: GraphQLPath): string[] {\n  const flattened: string[] = [];\n  let curr: GraphQLPath | undefined = path;\n  while (curr) {\n    let key = curr.key;\n\n    if (mergeItems && typeof key === 'number') {\n      key = '*';\n    }\n    flattened.push(String(key));\n    curr = curr.prev;\n  }\n  return flattened.reverse();\n}\n\nfunction repeatBreak(i: number): string {\n  return repeatChar('\\n', i);\n}\n\nfunction repeatSpace(i: number): string {\n  return repeatChar(' ', i);\n}\n\nfunction repeatChar(char: string, to: number): string {\n  let text = '';\n  for (let i = 0; i < to; i++) {\n    text += char;\n  }\n  return text;\n}\n\nconst KindsToBeRemoved: string[] = [\n  TokenKind.FLOAT,\n  TokenKind.STRING,\n  TokenKind.INT,\n  TokenKind.BLOCK_STRING,\n];\n\nexport function getSourceFromLocation(\n  loc?: graphqlTypes.Location,\n  allowValues = false,\n  inputStart?: number,\n  inputEnd?: number\n): string {\n  let source = '';\n\n  if (loc?.startToken) {\n    const start = typeof inputStart === 'number' ? inputStart : loc.start;\n    const end = typeof inputEnd === 'number' ? inputEnd : loc.end;\n\n    let next: graphqlTypes.Token | null = loc.startToken.next;\n    let previousLine: number | undefined = 1;\n    while (next) {\n      if (next.start < start) {\n        next = next.next;\n        previousLine = next?.line;\n        continue;\n      }\n      if (next.end > end) {\n        next = next.next;\n        previousLine = next?.line;\n        continue;\n      }\n      let value = next.value || next.kind;\n      let space = '';\n      if (!allowValues && KindsToBeRemoved.indexOf(next.kind) >= 0) {\n        // value = repeatChar('*', value.length);\n        value = '*';\n      }\n      if (next.kind === TokenKind.STRING) {\n        value = `\"${value}\"`;\n      }\n      if (next.kind === TokenKind.EOF) {\n        value = '';\n      }\n      if (next.line > previousLine!) {\n        source += repeatBreak(next.line - previousLine!);\n        previousLine = next.line;\n        space = repeatSpace(next.column - 1);\n      } else {\n        if (next.line === next.prev?.line) {\n          space = repeatSpace(next.start - (next.prev?.end || 0));\n        }\n      }\n      source += space + value;\n      if (next) {\n        next = next.next!;\n      }\n    }\n  }\n\n  return source;\n}\n\nexport function wrapFields(\n  type: Maybe,\n  tracer: api.Tracer,\n  getConfig: () => GraphQLInstrumentationParsedConfig\n): void {\n  if (!type || type[OTEL_PATCHED_SYMBOL]) {\n    return;\n  }\n  const fields = type.getFields();\n\n  type[OTEL_PATCHED_SYMBOL] = true;\n\n  Object.keys(fields).forEach(key => {\n    const field = fields[key];\n\n    if (!field) {\n      return;\n    }\n\n    if (field.resolve) {\n      field.resolve = wrapFieldResolver(tracer, getConfig, field.resolve);\n    }\n\n    if (field.type) {\n      const unwrappedTypes = unwrapType(field.type);\n      for (const unwrappedType of unwrappedTypes) {\n        wrapFields(unwrappedType, tracer, getConfig);\n      }\n    }\n  });\n}\n\nfunction unwrapType(\n  type: graphqlTypes.GraphQLOutputType\n): readonly graphqlTypes.GraphQLObjectType[] {\n  // unwrap wrapping types (non-nullable and list types)\n  if ('ofType' in type) {\n    return unwrapType(type.ofType);\n  }\n\n  // unwrap union types\n  if (isGraphQLUnionType(type)) {\n    return type.getTypes();\n  }\n\n  // return object types\n  if (isGraphQLObjectType(type)) {\n    return [type];\n  }\n\n  return [];\n}\n\nfunction isGraphQLUnionType(\n  type: graphqlTypes.GraphQLType\n): type is graphqlTypes.GraphQLUnionType {\n  return 'getTypes' in type && typeof type.getTypes === 'function';\n}\n\nfunction isGraphQLObjectType(\n  type: graphqlTypes.GraphQLType\n): type is graphqlTypes.GraphQLObjectType {\n  return 'getFields' in type && typeof type.getFields === 'function';\n}\n\nconst handleResolveSpanError = (\n  resolveSpan: api.Span,\n  err: any,\n  shouldEndSpan: boolean\n) => {\n  if (!shouldEndSpan) {\n    return;\n  }\n  resolveSpan.recordException(err);\n  resolveSpan.setStatus({\n    code: api.SpanStatusCode.ERROR,\n    message: err.message,\n  });\n  resolveSpan.end();\n};\n\nconst handleResolveSpanSuccess = (\n  resolveSpan: api.Span,\n  shouldEndSpan: boolean\n) => {\n  if (!shouldEndSpan) {\n    return;\n  }\n  resolveSpan.end();\n};\n\nexport function wrapFieldResolver(\n  tracer: api.Tracer,\n  getConfig: () => GraphQLInstrumentationParsedConfig,\n  fieldResolver: Maybe<\n    graphqlTypes.GraphQLFieldResolver & OtelPatched\n  >,\n  isDefaultResolver = false\n): graphqlTypes.GraphQLFieldResolver<\n  TSource,\n  TContext & ObjectWithGraphQLData,\n  TArgs\n> &\n  OtelPatched {\n  if (\n    (wrappedFieldResolver as OtelPatched)[OTEL_PATCHED_SYMBOL] ||\n    typeof fieldResolver !== 'function'\n  ) {\n    return fieldResolver!;\n  }\n\n  function wrappedFieldResolver(\n    this: graphqlTypes.GraphQLFieldResolver,\n    source: TSource,\n    args: TArgs,\n    contextValue: TContext & ObjectWithGraphQLData,\n    info: graphqlTypes.GraphQLResolveInfo\n  ) {\n    if (!fieldResolver) {\n      return undefined;\n    }\n    const config = getConfig();\n\n    // follows what graphql is doing to decide if this is a trivial resolver\n    // for which we don't need to create a resolve span\n    if (\n      config.ignoreTrivialResolveSpans &&\n      isDefaultResolver &&\n      (isObjectLike(source) || typeof source === 'function')\n    ) {\n      const property = (source as any)[info.fieldName];\n      // a function execution is not trivial and should be recorder.\n      // property which is not a function is just a value and we don't want a \"resolve\" span for it\n      if (typeof property !== 'function') {\n        return fieldResolver.call(this, source, args, contextValue, info);\n      }\n    }\n\n    if (!contextValue[OTEL_GRAPHQL_DATA_SYMBOL]) {\n      return fieldResolver.call(this, source, args, contextValue, info);\n    }\n    const path = pathToArray(config.mergeItems, info && info.path);\n    const depth = path.filter((item: any) => typeof item === 'string').length;\n\n    let span: api.Span;\n    let shouldEndSpan = false;\n    if (config.depth >= 0 && config.depth < depth) {\n      span = getParentFieldSpan(contextValue, path);\n    } else {\n      const { field, spanAdded } = createFieldIfNotExists(\n        tracer,\n        getConfig,\n        contextValue,\n        info,\n        path\n      );\n      span = field.span;\n      shouldEndSpan = spanAdded;\n    }\n\n    return api.context.with(\n      api.trace.setSpan(api.context.active(), span),\n      () => {\n        try {\n          const res = fieldResolver.call(\n            this,\n            source,\n            args,\n            contextValue,\n            info\n          );\n          if (isPromise(res)) {\n            return res.then(\n              (r: any) => {\n                handleResolveSpanSuccess(span, shouldEndSpan);\n                return r;\n              },\n              (err: Error) => {\n                handleResolveSpanError(span, err, shouldEndSpan);\n                throw err;\n              }\n            );\n          } else {\n            handleResolveSpanSuccess(span, shouldEndSpan);\n            return res;\n          }\n        } catch (err: any) {\n          handleResolveSpanError(span, err, shouldEndSpan);\n          throw err;\n        }\n      }\n    );\n  }\n\n  (wrappedFieldResolver as OtelPatched)[OTEL_PATCHED_SYMBOL] = true;\n\n  return wrappedFieldResolver;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const PACKAGE_VERSION = '0.62.0';\nexport const PACKAGE_NAME = '@opentelemetry/instrumentation-graphql';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { context, trace } from '@opentelemetry/api';\nimport {\n  isWrapped,\n  InstrumentationBase,\n  InstrumentationNodeModuleDefinition,\n  InstrumentationNodeModuleFile,\n  safeExecuteInTheMiddle,\n} from '@opentelemetry/instrumentation';\nimport type * as graphqlTypes from 'graphql';\nimport { SpanNames } from './enum';\nimport { AttributeNames } from './enums/AttributeNames';\nimport { OTEL_GRAPHQL_DATA_SYMBOL } from './symbols';\n\nimport {\n  executeFunctionWithObj,\n  executeArgumentsArray,\n  executeType,\n  parseType,\n  validateType,\n  OtelExecutionArgs,\n  ObjectWithGraphQLData,\n  OPERATION_NOT_SUPPORTED,\n  Maybe,\n} from './internal-types';\nimport {\n  addInputVariableAttributes,\n  addSpanSource,\n  endSpan,\n  getOperation,\n  isPromise,\n  wrapFieldResolver,\n  wrapFields,\n} from './utils';\n\n/** @knipignore */\nimport { PACKAGE_NAME, PACKAGE_VERSION } from './version';\nimport * as api from '@opentelemetry/api';\nimport type { PromiseOrValue } from 'graphql/jsutils/PromiseOrValue';\nimport {\n  GraphQLInstrumentationConfig,\n  GraphQLInstrumentationParsedConfig,\n} from './types';\n\nconst DEFAULT_CONFIG: GraphQLInstrumentationParsedConfig = {\n  mergeItems: false,\n  depth: -1,\n  allowValues: false,\n  ignoreResolveSpans: false,\n};\n\nconst supportedVersions = ['>=14.0.0 <17'];\n\nexport class GraphQLInstrumentation extends InstrumentationBase {\n  constructor(config: GraphQLInstrumentationConfig = {}) {\n    super(PACKAGE_NAME, PACKAGE_VERSION, { ...DEFAULT_CONFIG, ...config });\n  }\n\n  override setConfig(config: GraphQLInstrumentationConfig = {}) {\n    super.setConfig({ ...DEFAULT_CONFIG, ...config });\n  }\n\n  protected init() {\n    const module = new InstrumentationNodeModuleDefinition(\n      'graphql',\n      supportedVersions\n    );\n    module.files.push(this._addPatchingExecute());\n    module.files.push(this._addPatchingParser());\n    module.files.push(this._addPatchingValidate());\n\n    return module;\n  }\n\n  private _addPatchingExecute(): InstrumentationNodeModuleFile {\n    return new InstrumentationNodeModuleFile(\n      'graphql/execution/execute.js',\n      supportedVersions,\n      // cannot make it work with appropriate type as execute function has 2\n      //types and/cannot import function but only types\n      (moduleExports: any) => {\n        if (isWrapped(moduleExports.execute)) {\n          this._unwrap(moduleExports, 'execute');\n        }\n        this._wrap(\n          moduleExports,\n          'execute',\n          this._patchExecute(moduleExports.defaultFieldResolver)\n        );\n        return moduleExports;\n      },\n      moduleExports => {\n        if (moduleExports) {\n          this._unwrap(moduleExports, 'execute');\n        }\n      }\n    );\n  }\n\n  private _addPatchingParser(): InstrumentationNodeModuleFile {\n    return new InstrumentationNodeModuleFile(\n      'graphql/language/parser.js',\n      supportedVersions,\n      (moduleExports: typeof graphqlTypes) => {\n        if (isWrapped(moduleExports.parse)) {\n          this._unwrap(moduleExports, 'parse');\n        }\n        this._wrap(moduleExports, 'parse', this._patchParse());\n        return moduleExports;\n      },\n      (moduleExports: typeof graphqlTypes) => {\n        if (moduleExports) {\n          this._unwrap(moduleExports, 'parse');\n        }\n      }\n    );\n  }\n\n  private _addPatchingValidate(): InstrumentationNodeModuleFile {\n    return new InstrumentationNodeModuleFile(\n      'graphql/validation/validate.js',\n      supportedVersions,\n      moduleExports => {\n        if (isWrapped(moduleExports.validate)) {\n          this._unwrap(moduleExports, 'validate');\n        }\n        this._wrap(moduleExports, 'validate', this._patchValidate());\n        return moduleExports;\n      },\n      moduleExports => {\n        if (moduleExports) {\n          this._unwrap(moduleExports, 'validate');\n        }\n      }\n    );\n  }\n\n  private _patchExecute(\n    defaultFieldResolved: graphqlTypes.GraphQLFieldResolver\n  ): (original: executeType) => executeType {\n    const instrumentation = this;\n    return function execute(original) {\n      return function patchExecute(\n        this: executeType\n      ): PromiseOrValue {\n        let processedArgs: OtelExecutionArgs;\n\n        // case when apollo server is used for example\n        if (arguments.length >= 2) {\n          const args = arguments as unknown as executeArgumentsArray;\n          processedArgs = instrumentation._wrapExecuteArgs(\n            args[0],\n            args[1],\n            args[2],\n            args[3],\n            args[4],\n            args[5],\n            args[6],\n            args[7],\n            defaultFieldResolved\n          );\n        } else {\n          const args = arguments[0] as graphqlTypes.ExecutionArgs;\n          processedArgs = instrumentation._wrapExecuteArgs(\n            args.schema,\n            args.document,\n            args.rootValue,\n            args.contextValue,\n            args.variableValues,\n            args.operationName,\n            args.fieldResolver,\n            args.typeResolver,\n            defaultFieldResolved\n          );\n        }\n\n        const operation = getOperation(\n          processedArgs.document,\n          processedArgs.operationName\n        );\n\n        const span = instrumentation._createExecuteSpan(\n          operation,\n          processedArgs\n        );\n\n        processedArgs.contextValue[OTEL_GRAPHQL_DATA_SYMBOL] = {\n          source: processedArgs.document\n            ? processedArgs.document ||\n              (processedArgs.document as ObjectWithGraphQLData)[\n                OTEL_GRAPHQL_DATA_SYMBOL\n              ]\n            : undefined,\n          span,\n          fields: {},\n        };\n\n        return context.with(trace.setSpan(context.active(), span), () => {\n          return safeExecuteInTheMiddle<\n            PromiseOrValue\n          >(\n            () => {\n              return (original as executeFunctionWithObj).apply(this, [\n                processedArgs,\n              ]);\n            },\n            (err, result) => {\n              instrumentation._handleExecutionResult(span, err, result);\n            }\n          );\n        });\n      };\n    };\n  }\n\n  private _handleExecutionResult(\n    span: api.Span,\n    err?: Error,\n    result?: PromiseOrValue\n  ) {\n    const config = this.getConfig();\n    if (result === undefined || err) {\n      endSpan(span, err);\n      return;\n    }\n\n    if (isPromise(result)) {\n      (result as Promise).then(\n        resultData => {\n          if (typeof config.responseHook !== 'function') {\n            endSpan(span);\n            return;\n          }\n          this._executeResponseHook(span, resultData);\n        },\n        error => {\n          endSpan(span, error);\n        }\n      );\n    } else {\n      if (typeof config.responseHook !== 'function') {\n        endSpan(span);\n        return;\n      }\n      this._executeResponseHook(span, result as graphqlTypes.ExecutionResult);\n    }\n  }\n\n  private _executeResponseHook(\n    span: api.Span,\n    result: graphqlTypes.ExecutionResult\n  ) {\n    const { responseHook } = this.getConfig();\n    if (!responseHook) {\n      return;\n    }\n\n    safeExecuteInTheMiddle(\n      () => {\n        responseHook(span, result);\n      },\n      err => {\n        if (err) {\n          this._diag.error('Error running response hook', err);\n        }\n\n        endSpan(span, undefined);\n      },\n      true\n    );\n  }\n\n  private _patchParse(): (original: parseType) => parseType {\n    const instrumentation = this;\n    return function parse(original) {\n      return function patchParse(\n        this: parseType,\n        source: string | graphqlTypes.Source,\n        options?: graphqlTypes.ParseOptions\n      ): graphqlTypes.DocumentNode {\n        return instrumentation._parse(this, original, source, options);\n      };\n    };\n  }\n\n  private _patchValidate(): (original: validateType) => validateType {\n    const instrumentation = this;\n    return function validate(original: validateType) {\n      return function patchValidate(\n        this: validateType,\n        schema: graphqlTypes.GraphQLSchema,\n        documentAST: graphqlTypes.DocumentNode,\n        rules?: ReadonlyArray,\n        options?: { maxErrors?: number },\n        typeInfo?: graphqlTypes.TypeInfo\n      ): ReadonlyArray {\n        return instrumentation._validate(\n          this,\n          original,\n          schema,\n          documentAST,\n          rules,\n          typeInfo,\n          options\n        );\n      };\n    };\n  }\n\n  private _parse(\n    obj: parseType,\n    original: parseType,\n    source: string | graphqlTypes.Source,\n    options?: graphqlTypes.ParseOptions\n  ): graphqlTypes.DocumentNode {\n    const config = this.getConfig();\n    const span = this.tracer.startSpan(SpanNames.PARSE);\n\n    return context.with(trace.setSpan(context.active(), span), () => {\n      return safeExecuteInTheMiddle<\n        graphqlTypes.DocumentNode & ObjectWithGraphQLData\n      >(\n        () => {\n          return original.call(obj, source, options);\n        },\n        (err, result) => {\n          if (result) {\n            const operation = getOperation(result);\n            if (!operation) {\n              span.updateName(SpanNames.SCHEMA_PARSE);\n            } else if (result.loc) {\n              addSpanSource(span, result.loc, config.allowValues);\n            }\n          }\n          endSpan(span, err);\n        }\n      );\n    });\n  }\n\n  private _validate(\n    obj: validateType,\n    original: validateType,\n    schema: graphqlTypes.GraphQLSchema,\n    documentAST: graphqlTypes.DocumentNode,\n    rules?: ReadonlyArray,\n    typeInfo?: graphqlTypes.TypeInfo,\n    options?: { maxErrors?: number }\n  ): ReadonlyArray {\n    const span = this.tracer.startSpan(SpanNames.VALIDATE, {});\n\n    return context.with(trace.setSpan(context.active(), span), () => {\n      return safeExecuteInTheMiddle>(\n        () => {\n          return original.call(\n            obj,\n            schema,\n            documentAST,\n            rules,\n            options,\n            typeInfo\n          );\n        },\n        (err, errors) => {\n          if (!documentAST.loc) {\n            span.updateName(SpanNames.SCHEMA_VALIDATE);\n          }\n          if (errors && errors.length) {\n            span.recordException({\n              name: AttributeNames.ERROR_VALIDATION_NAME,\n              message: JSON.stringify(errors),\n            });\n          }\n          endSpan(span, err);\n        }\n      );\n    });\n  }\n\n  private _createExecuteSpan(\n    operation: graphqlTypes.DefinitionNode | undefined,\n    processedArgs: graphqlTypes.ExecutionArgs\n  ): api.Span {\n    const config = this.getConfig();\n\n    const span = this.tracer.startSpan(SpanNames.EXECUTE, {});\n    if (operation) {\n      const { operation: operationType, name: nameNode } =\n        operation as graphqlTypes.OperationDefinitionNode;\n\n      span.setAttribute(AttributeNames.OPERATION_TYPE, operationType);\n\n      const operationName = nameNode?.value;\n\n      // https://opentelemetry.io/docs/reference/specification/trace/semantic_conventions/instrumentation/graphql/\n      // > The span name MUST be of the format   provided that graphql.operation.type and graphql.operation.name are available.\n      // > If graphql.operation.name is not available, the span SHOULD be named .\n      if (operationName) {\n        span.setAttribute(AttributeNames.OPERATION_NAME, operationName);\n        span.updateName(`${operationType} ${operationName}`);\n      } else {\n        span.updateName(operationType);\n      }\n    } else {\n      let operationName = ' ';\n      if (processedArgs.operationName) {\n        operationName = ` \"${processedArgs.operationName}\" `;\n      }\n      operationName = OPERATION_NOT_SUPPORTED.replace(\n        '$operationName$',\n        operationName\n      );\n      span.setAttribute(AttributeNames.OPERATION_NAME, operationName);\n    }\n\n    if (processedArgs.document?.loc) {\n      addSpanSource(span, processedArgs.document.loc, config.allowValues);\n    }\n\n    if (processedArgs.variableValues && config.allowValues) {\n      addInputVariableAttributes(span, processedArgs.variableValues);\n    }\n\n    return span;\n  }\n\n  private _wrapExecuteArgs(\n    schema: graphqlTypes.GraphQLSchema,\n    document: graphqlTypes.DocumentNode,\n    rootValue: any,\n    contextValue: any,\n    variableValues: Maybe<{ [key: string]: any }>,\n    operationName: Maybe,\n    fieldResolver: Maybe>,\n    typeResolver: Maybe>,\n    defaultFieldResolved: graphqlTypes.GraphQLFieldResolver\n  ): OtelExecutionArgs {\n    if (!contextValue) {\n      contextValue = {};\n    }\n\n    if (\n      contextValue[OTEL_GRAPHQL_DATA_SYMBOL] ||\n      this.getConfig().ignoreResolveSpans\n    ) {\n      return {\n        schema,\n        document,\n        rootValue,\n        contextValue,\n        variableValues,\n        operationName,\n        fieldResolver,\n        typeResolver,\n      };\n    }\n\n    const isUsingDefaultResolver = fieldResolver == null;\n    // follows graphql implementation here:\n    // https://github.com/graphql/graphql-js/blob/0b7daed9811731362c71900e12e5ea0d1ecc7f1f/src/execution/execute.ts#L494\n    const fieldResolverForExecute = fieldResolver ?? defaultFieldResolved;\n    fieldResolver = wrapFieldResolver(\n      this.tracer,\n      () => this.getConfig(),\n      fieldResolverForExecute,\n      isUsingDefaultResolver\n    );\n\n    if (schema) {\n      wrapFields(schema.getQueryType(), this.tracer, () => this.getConfig());\n      wrapFields(schema.getMutationType(), this.tracer, () => this.getConfig());\n    }\n\n    return {\n      schema,\n      document,\n      rootValue,\n      contextValue,\n      variableValues,\n      operationName,\n      fieldResolver,\n      typeResolver,\n    };\n  }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { GraphQLInstrumentation } from './instrumentation';\nexport type {\n  GraphQLInstrumentationConfig,\n  GraphQLInstrumentationExecutionResponseHook,\n  GraphQLInstrumentationParsedConfig,\n} from './types';\n","import type { AttributeValue } from '@opentelemetry/api';\nimport { SpanStatusCode } from '@opentelemetry/api';\nimport { GraphQLInstrumentation } from '@opentelemetry/instrumentation-graphql';\nimport type { IntegrationFn } from '@sentry/core';\nimport { defineIntegration, getRootSpan, spanToJSON } from '@sentry/core';\nimport { addOriginToSpan, generateInstrumentOnce } from '@sentry/node-core';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION } from '@sentry/opentelemetry';\n\ninterface GraphqlOptions {\n  /**\n   * Do not create spans for resolvers.\n   *\n   * Defaults to true.\n   */\n  ignoreResolveSpans?: boolean;\n\n  /**\n   * Don't create spans for the execution of the default resolver on object properties.\n   *\n   * When a resolver function is not defined on the schema for a field, graphql will\n   * use the default resolver which just looks for a property with that name on the object.\n   * If the property is not a function, it's not very interesting to trace.\n   * This option can reduce noise and number of spans created.\n   *\n   * Defaults to true.\n   */\n  ignoreTrivialResolveSpans?: boolean;\n\n  /**\n   * If this is enabled, a http.server root span containing this span will automatically be renamed to include the operation name.\n   * Set this to `false` if you do not want this behavior, and want to keep the default http.server span name.\n   *\n   * Defaults to true.\n   */\n  useOperationNameForRootSpan?: boolean;\n}\n\nconst INTEGRATION_NAME = 'Graphql';\n\nexport const instrumentGraphql = generateInstrumentOnce(\n  INTEGRATION_NAME,\n  GraphQLInstrumentation,\n  (_options: GraphqlOptions) => {\n    const options = getOptionsWithDefaults(_options);\n\n    return {\n      ...options,\n      responseHook(span, result) {\n        addOriginToSpan(span, 'auto.graphql.otel.graphql');\n\n        // We want to ensure spans are marked as errored if there are errors in the result\n        // We only do that if the span is not already marked with a status\n        const resultWithMaybeError = result as { errors?: { message: string }[] };\n        if (resultWithMaybeError.errors?.length && !spanToJSON(span).status) {\n          span.setStatus({ code: SpanStatusCode.ERROR });\n        }\n\n        const attributes = spanToJSON(span).data;\n\n        // If operation.name is not set, we fall back to use operation.type only\n        const operationType = attributes['graphql.operation.type'];\n        const operationName = attributes['graphql.operation.name'];\n\n        if (options.useOperationNameForRootSpan && operationType) {\n          const rootSpan = getRootSpan(span);\n          const rootSpanAttributes = spanToJSON(rootSpan).data;\n\n          const existingOperations = rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION] || [];\n\n          const newOperation = operationName ? `${operationType} ${operationName}` : `${operationType}`;\n\n          // We keep track of each operation on the root span\n          // This can either be a string, or an array of strings (if there are multiple operations)\n          if (Array.isArray(existingOperations)) {\n            (existingOperations as string[]).push(newOperation);\n            rootSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION, existingOperations);\n          } else if (typeof existingOperations === 'string') {\n            rootSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION, [existingOperations, newOperation]);\n          } else {\n            rootSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION, newOperation);\n          }\n\n          if (!spanToJSON(rootSpan).data['original-description']) {\n            rootSpan.setAttribute('original-description', spanToJSON(rootSpan).description);\n          }\n          // Important for e.g. @sentry/aws-serverless because this would otherwise overwrite the name again\n          rootSpan.updateName(\n            `${spanToJSON(rootSpan).data['original-description']} (${getGraphqlOperationNamesFromAttribute(\n              existingOperations,\n            )})`,\n          );\n        }\n      },\n    };\n  },\n);\n\nconst _graphqlIntegration = ((options: GraphqlOptions = {}) => {\n  return {\n    name: INTEGRATION_NAME,\n    setupOnce() {\n      // We set defaults here, too, because otherwise we'd update the instrumentation config\n      // to the config without defaults, as `generateInstrumentOnce` automatically calls `setConfig(options)`\n      // when being called the second time\n      instrumentGraphql(getOptionsWithDefaults(options));\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for the [graphql](https://www.npmjs.com/package/graphql) library.\n *\n * For more information, see the [`graphqlIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/graphql/).\n *\n * @param {GraphqlOptions} options Configuration options for the GraphQL integration.\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n *  integrations: [Sentry.graphqlIntegration()],\n * });\n */\nexport const graphqlIntegration = defineIntegration(_graphqlIntegration);\n\nfunction getOptionsWithDefaults(options?: GraphqlOptions): GraphqlOptions {\n  return {\n    ignoreResolveSpans: true,\n    ignoreTrivialResolveSpans: true,\n    useOperationNameForRootSpan: true,\n    ...options,\n  };\n}\n\n// copy from packages/opentelemetry/utils\nfunction getGraphqlOperationNamesFromAttribute(attr: AttributeValue): string {\n  if (Array.isArray(attr)) {\n    // oxlint-disable-next-line typescript/require-array-sort-compare\n    const sorted = attr.slice().sort();\n\n    // Up to 5 items, we just add all of them\n    if (sorted.length <= 5) {\n      return sorted.join(', ');\n    } else {\n      // Else, we add the first 5 and the diff of other operations\n      return `${sorted.slice(0, 5).join(', ')}, +${sorted.length - 5}`;\n    }\n  }\n\n  return `${attr}`;\n}\n","/*\n * Copyright The OpenTelemetry Authors, Aspecto\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type * as KafkaJSTypes from 'kafkajs';\n\nexport const EVENT_LISTENERS_SET = Symbol(\n  'opentelemetry.instrumentation.kafkajs.eventListenersSet'\n);\n\nexport interface ConsumerExtended extends KafkaJSTypes.Consumer {\n  [EVENT_LISTENERS_SET]?: boolean; // flag to identify if the event listeners for instrumentation have been set\n}\n\nexport interface ProducerExtended extends KafkaJSTypes.Producer {\n  [EVENT_LISTENERS_SET]?: boolean; // flag to identify if the event listeners for instrumentation have been set\n}\n","/*\n * Copyright The OpenTelemetry Authors, Aspecto\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { TextMapGetter } from '@opentelemetry/api';\n\n/*\nsame as open telemetry's `defaultTextMapGetter`,\nbut also handle case where header is buffer,\nadding toString() to make sure string is returned\n*/\nexport const bufferTextMapGetter: TextMapGetter = {\n  get(carrier, key) {\n    if (!carrier) {\n      return undefined;\n    }\n\n    const keys = Object.keys(carrier);\n\n    for (const carrierKey of keys) {\n      if (carrierKey === key || carrierKey.toLowerCase() === key) {\n        return carrier[carrierKey]?.toString();\n      }\n    }\n\n    return undefined;\n  },\n\n  keys(carrier) {\n    return carrier ? Object.keys(carrier) : [];\n  },\n};\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n\n/**\n * The number of messages sent, received, or processed in the scope of the batching operation.\n *\n * @example 0\n * @example 1\n * @example 2\n *\n * @note Instrumentations **SHOULD NOT** set `messaging.batch.message_count` on spans that operate with a single message. When a messaging client library supports both batch and single-message API for the same operation, instrumentations **SHOULD** use `messaging.batch.message_count` for batching APIs and **SHOULD NOT** use it for single-message APIs.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_MESSAGING_BATCH_MESSAGE_COUNT =\n  'messaging.batch.message_count' as const;\n\n/**\n * The message destination name\n *\n * @example MyQueue\n * @example MyTopic\n *\n * @note Destination name **SHOULD** uniquely identify a specific queue, topic or other entity within the broker. If\n * the broker doesn't have such notion, the destination name **SHOULD** uniquely identify the broker.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_MESSAGING_DESTINATION_NAME =\n  'messaging.destination.name' as const;\n\n/**\n * The identifier of the partition messages are sent to or received from, unique within the `messaging.destination.name`.\n *\n * @example \"1\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_MESSAGING_DESTINATION_PARTITION_ID =\n  'messaging.destination.partition.id' as const;\n\n/**\n * Message keys in Kafka are used for grouping alike messages to ensure they're processed on the same partition. They differ from `messaging.message.id` in that they're not unique. If the key is `null`, the attribute **MUST NOT** be set.\n *\n * @example \"myKey\"\n *\n * @note If the key type is not string, it's string representation has to be supplied for the attribute. If the key has no unambiguous, canonical string form, don't include its value.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_MESSAGING_KAFKA_MESSAGE_KEY =\n  'messaging.kafka.message.key' as const;\n\n/**\n * A boolean that is true if the message is a tombstone.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE =\n  'messaging.kafka.message.tombstone' as const;\n\n/**\n * The offset of a record in the corresponding Kafka partition.\n *\n * @example 42\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_MESSAGING_KAFKA_OFFSET = 'messaging.kafka.offset' as const;\n\n/**\n * The system-specific name of the messaging operation.\n *\n * @example ack\n * @example nack\n * @example send\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_MESSAGING_OPERATION_NAME =\n  'messaging.operation.name' as const;\n\n/**\n * A string identifying the type of the messaging operation.\n *\n * @note If a custom value is used, it **MUST** be of low cardinality.\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_MESSAGING_OPERATION_TYPE =\n  'messaging.operation.type' as const;\n\n/**\n * The messaging system as identified by the client instrumentation.\n *\n * @note The actual messaging system may differ from the one known by the client. For example, when using Kafka client libraries to communicate with Azure Event Hubs, the `messaging.system` is set to `kafka` based on the instrumentation's best knowledge.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_MESSAGING_SYSTEM = 'messaging.system' as const;\n\n/**\n * Enum value \"process\" for attribute {@link ATTR_MESSAGING_OPERATION_TYPE}.\n */\nexport const MESSAGING_OPERATION_TYPE_VALUE_PROCESS = 'process' as const;\n\n/**\n * Enum value \"receive\" for attribute {@link ATTR_MESSAGING_OPERATION_TYPE}.\n */\nexport const MESSAGING_OPERATION_TYPE_VALUE_RECEIVE = 'receive' as const;\n\n/**\n * Enum value \"send\" for attribute {@link ATTR_MESSAGING_OPERATION_TYPE}.\n */\nexport const MESSAGING_OPERATION_TYPE_VALUE_SEND = 'send' as const;\n\n/**\n * Enum value \"kafka\" for attribute {@link ATTR_MESSAGING_SYSTEM}.\n */\nexport const MESSAGING_SYSTEM_VALUE_KAFKA = 'kafka' as const;\n\n/**\n * Number of messages that were delivered to the application.\n *\n * @note Records the number of messages pulled from the broker or number of messages dispatched to the application in push-based scenarios.\n * The metric **SHOULD** be reported once per message delivery. For example, if receiving and processing operations are both instrumented for a single message delivery, this counter is incremented when the message is received and not reported when it is processed.\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES =\n  'messaging.client.consumed.messages' as const;\n\n/**\n * Duration of messaging operation initiated by a producer or consumer client.\n *\n * @note This metric **SHOULD NOT** be used to report processing duration - processing duration is reported in `messaging.process.duration` metric.\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const METRIC_MESSAGING_CLIENT_OPERATION_DURATION =\n  'messaging.client.operation.duration' as const;\n\n/**\n * Number of messages producer attempted to send to the broker.\n *\n * @note This metric **MUST NOT** count messages that were created but haven't yet been sent.\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const METRIC_MESSAGING_CLIENT_SENT_MESSAGES =\n  'messaging.client.sent.messages' as const;\n\n/**\n * Duration of processing operation.\n *\n * @note This metric **MUST** be reported for operations with `messaging.operation.type` that matches `process`.\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const METRIC_MESSAGING_PROCESS_DURATION =\n  'messaging.process.duration' as const;\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const PACKAGE_VERSION = '0.23.0';\nexport const PACKAGE_NAME = '@opentelemetry/instrumentation-kafkajs';\n","/*\n * Copyright The OpenTelemetry Authors, Aspecto\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  Attributes,\n  Context,\n  context,\n  Counter,\n  Histogram,\n  Link,\n  propagation,\n  ROOT_CONTEXT,\n  Span,\n  SpanKind,\n  SpanStatusCode,\n  trace,\n} from '@opentelemetry/api';\nimport {\n  InstrumentationBase,\n  InstrumentationNodeModuleDefinition,\n  isWrapped,\n  safeExecuteInTheMiddle,\n} from '@opentelemetry/instrumentation';\nimport {\n  ATTR_ERROR_TYPE,\n  ATTR_SERVER_ADDRESS,\n  ATTR_SERVER_PORT,\n  ERROR_TYPE_VALUE_OTHER,\n} from '@opentelemetry/semantic-conventions';\nimport type * as kafkaJs from 'kafkajs';\nimport type {\n  Consumer,\n  ConsumerRunConfig,\n  EachBatchHandler,\n  EachMessageHandler,\n  KafkaMessage,\n  Message,\n  Producer,\n  RecordMetadata,\n} from 'kafkajs';\nimport { EVENT_LISTENERS_SET } from './internal-types';\nimport { bufferTextMapGetter } from './propagator';\nimport {\n  ATTR_MESSAGING_BATCH_MESSAGE_COUNT,\n  ATTR_MESSAGING_DESTINATION_NAME,\n  ATTR_MESSAGING_DESTINATION_PARTITION_ID,\n  ATTR_MESSAGING_KAFKA_MESSAGE_KEY,\n  ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE,\n  ATTR_MESSAGING_KAFKA_OFFSET,\n  ATTR_MESSAGING_OPERATION_NAME,\n  ATTR_MESSAGING_OPERATION_TYPE,\n  ATTR_MESSAGING_SYSTEM,\n  MESSAGING_OPERATION_TYPE_VALUE_PROCESS,\n  MESSAGING_OPERATION_TYPE_VALUE_RECEIVE,\n  MESSAGING_OPERATION_TYPE_VALUE_SEND,\n  MESSAGING_SYSTEM_VALUE_KAFKA,\n  METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES,\n  METRIC_MESSAGING_CLIENT_OPERATION_DURATION,\n  METRIC_MESSAGING_CLIENT_SENT_MESSAGES,\n  METRIC_MESSAGING_PROCESS_DURATION,\n} from './semconv';\nimport { KafkaJsInstrumentationConfig } from './types';\n/** @knipignore */\nimport { PACKAGE_NAME, PACKAGE_VERSION } from './version';\n\ninterface ConsumerSpanOptions {\n  topic: string;\n  message: KafkaMessage | undefined;\n  operationType: string;\n  attributes: Attributes;\n  ctx?: Context | undefined;\n  link?: Link;\n}\n// This interface acts as a strict subset of the KafkaJS Consumer and\n// Producer interfaces (just for the event we're needing)\ninterface KafkaEventEmitter {\n  on(\n    eventName:\n      | kafkaJs.ConsumerEvents['REQUEST']\n      | kafkaJs.ProducerEvents['REQUEST'],\n    listener: (event: kafkaJs.RequestEvent) => void\n  ): void;\n  events: {\n    REQUEST:\n      | kafkaJs.ConsumerEvents['REQUEST']\n      | kafkaJs.ProducerEvents['REQUEST'];\n  };\n  [EVENT_LISTENERS_SET]?: boolean;\n}\n\ninterface StandardAttributes extends Attributes {\n  [ATTR_MESSAGING_SYSTEM]: string;\n  [ATTR_MESSAGING_OPERATION_NAME]: OP;\n  [ATTR_ERROR_TYPE]?: string;\n}\ninterface TopicAttributes {\n  [ATTR_MESSAGING_DESTINATION_NAME]: string;\n  [ATTR_MESSAGING_DESTINATION_PARTITION_ID]?: string;\n}\n\ninterface ClientDurationAttributes\n  extends StandardAttributes,\n    Partial {\n  [ATTR_SERVER_ADDRESS]: string;\n  [ATTR_SERVER_PORT]: number;\n  [ATTR_MESSAGING_OPERATION_TYPE]?: string;\n}\ninterface SentMessagesAttributes\n  extends StandardAttributes<'send'>,\n    TopicAttributes {\n  [ATTR_ERROR_TYPE]?: string;\n}\ntype ConsumedMessagesAttributes = StandardAttributes<'receive' | 'process'>;\ninterface MessageProcessDurationAttributes\n  extends StandardAttributes<'process'>,\n    TopicAttributes {\n  [ATTR_MESSAGING_SYSTEM]: string;\n  [ATTR_MESSAGING_OPERATION_NAME]: 'process';\n  [ATTR_ERROR_TYPE]?: string;\n}\ntype RecordPendingMetric = (errorType?: string | undefined) => void;\n\nfunction prepareCounter(\n  meter: Counter,\n  value: number,\n  attributes: T\n): RecordPendingMetric {\n  return (errorType?: string | undefined) => {\n    meter.add(value, {\n      ...attributes,\n      ...(errorType ? { [ATTR_ERROR_TYPE]: errorType } : {}),\n    });\n  };\n}\n\nfunction prepareDurationHistogram(\n  meter: Histogram,\n  value: number,\n  attributes: T\n): RecordPendingMetric {\n  return (errorType?: string | undefined) => {\n    meter.record((Date.now() - value) / 1000, {\n      ...attributes,\n      ...(errorType ? { [ATTR_ERROR_TYPE]: errorType } : {}),\n    });\n  };\n}\n\nconst HISTOGRAM_BUCKET_BOUNDARIES = [\n  0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10,\n];\nexport class KafkaJsInstrumentation extends InstrumentationBase {\n  declare private _clientDuration: Histogram;\n  declare private _sentMessages: Counter;\n  declare private _consumedMessages: Counter;\n  declare private _processDuration: Histogram;\n\n  constructor(config: KafkaJsInstrumentationConfig = {}) {\n    super(PACKAGE_NAME, PACKAGE_VERSION, config);\n  }\n\n  override _updateMetricInstruments() {\n    this._clientDuration = this.meter.createHistogram(\n      METRIC_MESSAGING_CLIENT_OPERATION_DURATION,\n      { advice: { explicitBucketBoundaries: HISTOGRAM_BUCKET_BOUNDARIES } }\n    );\n    this._sentMessages = this.meter.createCounter(\n      METRIC_MESSAGING_CLIENT_SENT_MESSAGES\n    );\n    this._consumedMessages = this.meter.createCounter(\n      METRIC_MESSAGING_CLIENT_CONSUMED_MESSAGES\n    );\n    this._processDuration = this.meter.createHistogram(\n      METRIC_MESSAGING_PROCESS_DURATION,\n      { advice: { explicitBucketBoundaries: HISTOGRAM_BUCKET_BOUNDARIES } }\n    );\n  }\n\n  protected init() {\n    const unpatch = (moduleExports: typeof kafkaJs) => {\n      if (isWrapped(moduleExports?.Kafka?.prototype.producer)) {\n        this._unwrap(moduleExports.Kafka.prototype, 'producer');\n      }\n      if (isWrapped(moduleExports?.Kafka?.prototype.consumer)) {\n        this._unwrap(moduleExports.Kafka.prototype, 'consumer');\n      }\n    };\n\n    const module = new InstrumentationNodeModuleDefinition(\n      'kafkajs',\n      ['>=0.3.0 <3'],\n      (moduleExports: typeof kafkaJs) => {\n        unpatch(moduleExports);\n        this._wrap(\n          moduleExports?.Kafka?.prototype,\n          'producer',\n          this._getProducerPatch()\n        );\n        this._wrap(\n          moduleExports?.Kafka?.prototype,\n          'consumer',\n          this._getConsumerPatch()\n        );\n\n        return moduleExports;\n      },\n      unpatch\n    );\n    return module;\n  }\n\n  private _getConsumerPatch() {\n    const instrumentation = this;\n    return (original: kafkaJs.Kafka['consumer']) => {\n      return function consumer(\n        this: kafkaJs.Kafka,\n        ...args: Parameters\n      ) {\n        const newConsumer: Consumer = original.apply(this, args);\n\n        if (isWrapped(newConsumer.run)) {\n          instrumentation._unwrap(newConsumer, 'run');\n        }\n\n        instrumentation._wrap(\n          newConsumer,\n          'run',\n          instrumentation._getConsumerRunPatch()\n        );\n\n        instrumentation._setKafkaEventListeners(newConsumer);\n\n        return newConsumer;\n      };\n    };\n  }\n\n  private _setKafkaEventListeners(kafkaObj: KafkaEventEmitter) {\n    if (kafkaObj[EVENT_LISTENERS_SET]) return;\n\n    // The REQUEST Consumer event was added in kafkajs@1.5.0.\n    if (kafkaObj.events?.REQUEST) {\n      kafkaObj.on(\n        kafkaObj.events.REQUEST,\n        this._recordClientDurationMetric.bind(this)\n      );\n    }\n\n    kafkaObj[EVENT_LISTENERS_SET] = true;\n  }\n\n  private _recordClientDurationMetric(\n    event: Pick\n  ) {\n    const [address, port] = event.payload.broker.split(':');\n    this._clientDuration.record(event.payload.duration / 1000, {\n      [ATTR_MESSAGING_SYSTEM]: MESSAGING_SYSTEM_VALUE_KAFKA,\n      [ATTR_MESSAGING_OPERATION_NAME]: `${event.payload.apiName}`, // potentially suffix with @v${event.payload.apiVersion}?\n      [ATTR_SERVER_ADDRESS]: address,\n      [ATTR_SERVER_PORT]: Number.parseInt(port, 10),\n    });\n  }\n\n  private _getProducerPatch() {\n    const instrumentation = this;\n    return (original: kafkaJs.Kafka['producer']) => {\n      return function consumer(\n        this: kafkaJs.Kafka,\n        ...args: Parameters\n      ) {\n        const newProducer: Producer = original.apply(this, args);\n\n        if (isWrapped(newProducer.sendBatch)) {\n          instrumentation._unwrap(newProducer, 'sendBatch');\n        }\n        instrumentation._wrap(\n          newProducer,\n          'sendBatch',\n          instrumentation._getSendBatchPatch()\n        );\n\n        if (isWrapped(newProducer.send)) {\n          instrumentation._unwrap(newProducer, 'send');\n        }\n        instrumentation._wrap(\n          newProducer,\n          'send',\n          instrumentation._getSendPatch()\n        );\n\n        if (isWrapped(newProducer.transaction)) {\n          instrumentation._unwrap(newProducer, 'transaction');\n        }\n        instrumentation._wrap(\n          newProducer,\n          'transaction',\n          instrumentation._getProducerTransactionPatch()\n        );\n\n        instrumentation._setKafkaEventListeners(newProducer);\n\n        return newProducer;\n      };\n    };\n  }\n\n  private _getConsumerRunPatch() {\n    const instrumentation = this;\n    return (original: Consumer['run']) => {\n      return function run(\n        this: Consumer,\n        ...args: Parameters\n      ): ReturnType {\n        const config = args[0];\n        if (config?.eachMessage) {\n          if (isWrapped(config.eachMessage)) {\n            instrumentation._unwrap(config, 'eachMessage');\n          }\n          instrumentation._wrap(\n            config,\n            'eachMessage',\n            instrumentation._getConsumerEachMessagePatch()\n          );\n        }\n        if (config?.eachBatch) {\n          if (isWrapped(config.eachBatch)) {\n            instrumentation._unwrap(config, 'eachBatch');\n          }\n          instrumentation._wrap(\n            config,\n            'eachBatch',\n            instrumentation._getConsumerEachBatchPatch()\n          );\n        }\n        return original.call(this, config);\n      };\n    };\n  }\n\n  private _getConsumerEachMessagePatch() {\n    const instrumentation = this;\n    return (original: ConsumerRunConfig['eachMessage']) => {\n      return function eachMessage(\n        this: unknown,\n        ...args: Parameters\n      ): Promise {\n        const payload = args[0];\n        const propagatedContext: Context = propagation.extract(\n          ROOT_CONTEXT,\n          payload.message.headers,\n          bufferTextMapGetter\n        );\n        const span = instrumentation._startConsumerSpan({\n          topic: payload.topic,\n          message: payload.message,\n          operationType: MESSAGING_OPERATION_TYPE_VALUE_PROCESS,\n          ctx: propagatedContext,\n          attributes: {\n            [ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(\n              payload.partition\n            ),\n          },\n        });\n\n        const pendingMetrics: RecordPendingMetric[] = [\n          prepareDurationHistogram(\n            instrumentation._processDuration,\n            Date.now(),\n            {\n              [ATTR_MESSAGING_SYSTEM]: MESSAGING_SYSTEM_VALUE_KAFKA,\n              [ATTR_MESSAGING_OPERATION_NAME]: 'process',\n              [ATTR_MESSAGING_DESTINATION_NAME]: payload.topic,\n              [ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(\n                payload.partition\n              ),\n            }\n          ),\n          prepareCounter(instrumentation._consumedMessages, 1, {\n            [ATTR_MESSAGING_SYSTEM]: MESSAGING_SYSTEM_VALUE_KAFKA,\n            [ATTR_MESSAGING_OPERATION_NAME]: 'process',\n            [ATTR_MESSAGING_DESTINATION_NAME]: payload.topic,\n            [ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(\n              payload.partition\n            ),\n          }),\n        ];\n\n        const eachMessagePromise = context.with(\n          trace.setSpan(propagatedContext, span),\n          () => {\n            return original!.apply(this, args);\n          }\n        );\n        return instrumentation._endSpansOnPromise(\n          [span],\n          pendingMetrics,\n          eachMessagePromise\n        );\n      };\n    };\n  }\n\n  private _getConsumerEachBatchPatch() {\n    return (original: ConsumerRunConfig['eachBatch']) => {\n      const instrumentation = this;\n      return function eachBatch(\n        this: unknown,\n        ...args: Parameters\n      ): Promise {\n        const payload = args[0];\n        // https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/semantic_conventions/messaging.md#topic-with-multiple-consumers\n        const receivingSpan = instrumentation._startConsumerSpan({\n          topic: payload.batch.topic,\n          message: undefined,\n          operationType: MESSAGING_OPERATION_TYPE_VALUE_RECEIVE,\n          ctx: ROOT_CONTEXT,\n          attributes: {\n            [ATTR_MESSAGING_BATCH_MESSAGE_COUNT]: payload.batch.messages.length,\n            [ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(\n              payload.batch.partition\n            ),\n          },\n        });\n        return context.with(\n          trace.setSpan(context.active(), receivingSpan),\n          () => {\n            const startTime = Date.now();\n            const spans: Span[] = [];\n            const pendingMetrics: RecordPendingMetric[] = [\n              prepareCounter(\n                instrumentation._consumedMessages,\n                payload.batch.messages.length,\n                {\n                  [ATTR_MESSAGING_SYSTEM]: MESSAGING_SYSTEM_VALUE_KAFKA,\n                  [ATTR_MESSAGING_OPERATION_NAME]: 'process',\n                  [ATTR_MESSAGING_DESTINATION_NAME]: payload.batch.topic,\n                  [ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(\n                    payload.batch.partition\n                  ),\n                }\n              ),\n            ];\n            payload.batch.messages.forEach(message => {\n              const propagatedContext: Context = propagation.extract(\n                ROOT_CONTEXT,\n                message.headers,\n                bufferTextMapGetter\n              );\n              const spanContext = trace\n                .getSpan(propagatedContext)\n                ?.spanContext();\n              let origSpanLink: Link | undefined;\n              if (spanContext) {\n                origSpanLink = {\n                  context: spanContext,\n                };\n              }\n              spans.push(\n                instrumentation._startConsumerSpan({\n                  topic: payload.batch.topic,\n                  message,\n                  operationType: MESSAGING_OPERATION_TYPE_VALUE_PROCESS,\n                  link: origSpanLink,\n                  attributes: {\n                    [ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(\n                      payload.batch.partition\n                    ),\n                  },\n                })\n              );\n              pendingMetrics.push(\n                prepareDurationHistogram(\n                  instrumentation._processDuration,\n                  startTime,\n                  {\n                    [ATTR_MESSAGING_SYSTEM]: MESSAGING_SYSTEM_VALUE_KAFKA,\n                    [ATTR_MESSAGING_OPERATION_NAME]: 'process',\n                    [ATTR_MESSAGING_DESTINATION_NAME]: payload.batch.topic,\n                    [ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(\n                      payload.batch.partition\n                    ),\n                  }\n                )\n              );\n            });\n            const batchMessagePromise: Promise = original!.apply(\n              this,\n              args\n            );\n            spans.unshift(receivingSpan);\n            return instrumentation._endSpansOnPromise(\n              spans,\n              pendingMetrics,\n              batchMessagePromise\n            );\n          }\n        );\n      };\n    };\n  }\n\n  private _getProducerTransactionPatch() {\n    const instrumentation = this;\n    return (original: Producer['transaction']) => {\n      return function transaction(\n        this: Producer,\n        ...args: Parameters\n      ): ReturnType {\n        const transactionSpan = instrumentation.tracer.startSpan('transaction');\n\n        const transactionPromise = original.apply(this, args);\n\n        transactionPromise\n          .then((transaction: kafkaJs.Transaction) => {\n            const originalSend = transaction.send;\n            transaction.send = function send(\n              this: kafkaJs.Transaction,\n              ...args\n            ) {\n              return context.with(\n                trace.setSpan(context.active(), transactionSpan),\n                () => {\n                  const patched = instrumentation._getSendPatch()(originalSend);\n                  return patched.apply(this, args).catch(err => {\n                    transactionSpan.setStatus({\n                      code: SpanStatusCode.ERROR,\n                      message: err?.message,\n                    });\n                    transactionSpan.recordException(err);\n                    throw err;\n                  });\n                }\n              );\n            };\n\n            const originalSendBatch = transaction.sendBatch;\n            transaction.sendBatch = function sendBatch(\n              this: kafkaJs.Transaction,\n              ...args\n            ) {\n              return context.with(\n                trace.setSpan(context.active(), transactionSpan),\n                () => {\n                  const patched =\n                    instrumentation._getSendBatchPatch()(originalSendBatch);\n                  return patched.apply(this, args).catch(err => {\n                    transactionSpan.setStatus({\n                      code: SpanStatusCode.ERROR,\n                      message: err?.message,\n                    });\n                    transactionSpan.recordException(err);\n                    throw err;\n                  });\n                }\n              );\n            };\n\n            const originalCommit = transaction.commit;\n            transaction.commit = function commit(\n              this: kafkaJs.Transaction,\n              ...args\n            ) {\n              const originCommitPromise = originalCommit\n                .apply(this, args)\n                .then(() => {\n                  transactionSpan.setStatus({ code: SpanStatusCode.OK });\n                });\n              return instrumentation._endSpansOnPromise(\n                [transactionSpan],\n                [],\n                originCommitPromise\n              );\n            };\n\n            const originalAbort = transaction.abort;\n            transaction.abort = function abort(\n              this: kafkaJs.Transaction,\n              ...args\n            ) {\n              const originAbortPromise = originalAbort.apply(this, args);\n              return instrumentation._endSpansOnPromise(\n                [transactionSpan],\n                [],\n                originAbortPromise\n              );\n            };\n          })\n          .catch(err => {\n            transactionSpan.setStatus({\n              code: SpanStatusCode.ERROR,\n              message: err?.message,\n            });\n            transactionSpan.recordException(err);\n            transactionSpan.end();\n          });\n\n        return transactionPromise;\n      };\n    };\n  }\n\n  private _getSendBatchPatch() {\n    const instrumentation = this;\n    return (\n      original: Producer['sendBatch'] | kafkaJs.Transaction['sendBatch']\n    ) => {\n      return function sendBatch(\n        this: kafkaJs.Producer | kafkaJs.Transaction,\n        ...args: Parameters\n      ): ReturnType {\n        const batch = args[0];\n        const messages = batch.topicMessages || [];\n\n        const spans: Span[] = [];\n        const pendingMetrics: RecordPendingMetric[] = [];\n\n        messages.forEach(topicMessage => {\n          topicMessage.messages.forEach(message => {\n            spans.push(\n              instrumentation._startProducerSpan(topicMessage.topic, message)\n            );\n            pendingMetrics.push(\n              prepareCounter(instrumentation._sentMessages, 1, {\n                [ATTR_MESSAGING_SYSTEM]: MESSAGING_SYSTEM_VALUE_KAFKA,\n                [ATTR_MESSAGING_OPERATION_NAME]: 'send',\n                [ATTR_MESSAGING_DESTINATION_NAME]: topicMessage.topic,\n                ...(message.partition !== undefined\n                  ? {\n                      [ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(\n                        message.partition\n                      ),\n                    }\n                  : {}),\n              })\n            );\n          });\n        });\n        const origSendResult: Promise = original.apply(\n          this,\n          args\n        );\n        return instrumentation._endSpansOnPromise(\n          spans,\n          pendingMetrics,\n          origSendResult\n        );\n      };\n    };\n  }\n\n  private _getSendPatch() {\n    const instrumentation = this;\n    return (original: Producer['send'] | kafkaJs.Transaction['send']) => {\n      return function send(\n        this: Producer | kafkaJs.Transaction,\n        ...args: Parameters\n      ): ReturnType {\n        const record = args[0];\n        const spans: Span[] = record.messages.map(message => {\n          return instrumentation._startProducerSpan(record.topic, message);\n        });\n\n        const pendingMetrics: RecordPendingMetric[] = record.messages.map(m =>\n          prepareCounter(instrumentation._sentMessages, 1, {\n            [ATTR_MESSAGING_SYSTEM]: MESSAGING_SYSTEM_VALUE_KAFKA,\n            [ATTR_MESSAGING_OPERATION_NAME]: 'send',\n            [ATTR_MESSAGING_DESTINATION_NAME]: record.topic,\n            ...(m.partition !== undefined\n              ? {\n                  [ATTR_MESSAGING_DESTINATION_PARTITION_ID]: String(\n                    m.partition\n                  ),\n                }\n              : {}),\n          })\n        );\n        const origSendResult: Promise = original.apply(\n          this,\n          args\n        );\n        return instrumentation._endSpansOnPromise(\n          spans,\n          pendingMetrics,\n          origSendResult\n        );\n      };\n    };\n  }\n\n  private _endSpansOnPromise(\n    spans: Span[],\n    pendingMetrics: RecordPendingMetric[],\n    sendPromise: Promise\n  ): Promise {\n    return Promise.resolve(sendPromise)\n      .then(result => {\n        pendingMetrics.forEach(m => m());\n        return result;\n      })\n      .catch(reason => {\n        let errorMessage: string | undefined;\n        let errorType: string = ERROR_TYPE_VALUE_OTHER;\n        if (typeof reason === 'string' || reason === undefined) {\n          errorMessage = reason;\n        } else if (\n          typeof reason === 'object' &&\n          Object.prototype.hasOwnProperty.call(reason, 'message')\n        ) {\n          errorMessage = reason.message;\n          errorType = reason.constructor.name;\n        }\n        pendingMetrics.forEach(m => m(errorType));\n\n        spans.forEach(span => {\n          span.setAttribute(ATTR_ERROR_TYPE, errorType);\n          span.setStatus({\n            code: SpanStatusCode.ERROR,\n            message: errorMessage,\n          });\n        });\n\n        throw reason;\n      })\n      .finally(() => {\n        spans.forEach(span => span.end());\n      });\n  }\n\n  private _startConsumerSpan({\n    topic,\n    message,\n    operationType,\n    ctx,\n    link,\n    attributes,\n  }: ConsumerSpanOptions) {\n    const operationName =\n      operationType === MESSAGING_OPERATION_TYPE_VALUE_RECEIVE\n        ? 'poll' // for batch processing spans\n        : operationType; // for individual message processing spans\n\n    const span = this.tracer.startSpan(\n      `${operationName} ${topic}`,\n      {\n        kind:\n          operationType === MESSAGING_OPERATION_TYPE_VALUE_RECEIVE\n            ? SpanKind.CLIENT\n            : SpanKind.CONSUMER,\n        attributes: {\n          ...attributes,\n          [ATTR_MESSAGING_SYSTEM]: MESSAGING_SYSTEM_VALUE_KAFKA,\n          [ATTR_MESSAGING_DESTINATION_NAME]: topic,\n          [ATTR_MESSAGING_OPERATION_TYPE]: operationType,\n          [ATTR_MESSAGING_OPERATION_NAME]: operationName,\n          [ATTR_MESSAGING_KAFKA_MESSAGE_KEY]: message?.key\n            ? String(message.key)\n            : undefined,\n          [ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE]:\n            message?.key && message.value === null ? true : undefined,\n          [ATTR_MESSAGING_KAFKA_OFFSET]: message?.offset,\n        },\n        links: link ? [link] : [],\n      },\n      ctx\n    );\n\n    const { consumerHook } = this.getConfig();\n    if (consumerHook && message) {\n      safeExecuteInTheMiddle(\n        () => consumerHook(span, { topic, message }),\n        e => {\n          if (e) this._diag.error('consumerHook error', e);\n        },\n        true\n      );\n    }\n\n    return span;\n  }\n\n  private _startProducerSpan(topic: string, message: Message) {\n    const span = this.tracer.startSpan(`send ${topic}`, {\n      kind: SpanKind.PRODUCER,\n      attributes: {\n        [ATTR_MESSAGING_SYSTEM]: MESSAGING_SYSTEM_VALUE_KAFKA,\n        [ATTR_MESSAGING_DESTINATION_NAME]: topic,\n        [ATTR_MESSAGING_KAFKA_MESSAGE_KEY]: message.key\n          ? String(message.key)\n          : undefined,\n        [ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE]:\n          message.key && message.value === null ? true : undefined,\n        [ATTR_MESSAGING_DESTINATION_PARTITION_ID]:\n          message.partition !== undefined\n            ? String(message.partition)\n            : undefined,\n        [ATTR_MESSAGING_OPERATION_NAME]: 'send',\n        [ATTR_MESSAGING_OPERATION_TYPE]: MESSAGING_OPERATION_TYPE_VALUE_SEND,\n      },\n    });\n\n    message.headers = message.headers ?? {};\n    propagation.inject(trace.setSpan(context.active(), span), message.headers);\n\n    const { producerHook } = this.getConfig();\n    if (producerHook) {\n      safeExecuteInTheMiddle(\n        () => producerHook(span, { topic, message }),\n        e => {\n          if (e) this._diag.error('producerHook error', e);\n        },\n        true\n      );\n    }\n\n    return span;\n  }\n}\n","/*\n * Copyright The OpenTelemetry Authors, Aspecto\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { KafkaJsInstrumentation } from './instrumentation';\nexport type {\n  KafkaConsumerCustomAttributeFunction,\n  KafkaJsInstrumentationConfig,\n  KafkaProducerCustomAttributeFunction,\n  KafkajsMessage,\n  MessageInfo,\n} from './types';\n","import { KafkaJsInstrumentation } from '@opentelemetry/instrumentation-kafkajs';\nimport type { IntegrationFn } from '@sentry/core';\nimport { defineIntegration } from '@sentry/core';\nimport { addOriginToSpan, generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Kafka';\n\nexport const instrumentKafka = generateInstrumentOnce(\n  INTEGRATION_NAME,\n  () =>\n    new KafkaJsInstrumentation({\n      consumerHook(span) {\n        addOriginToSpan(span, 'auto.kafkajs.otel.consumer');\n      },\n      producerHook(span) {\n        addOriginToSpan(span, 'auto.kafkajs.otel.producer');\n      },\n    }),\n);\n\nconst _kafkaIntegration = (() => {\n  return {\n    name: INTEGRATION_NAME,\n    setupOnce() {\n      instrumentKafka();\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for the [kafkajs](https://www.npmjs.com/package/kafkajs) library.\n *\n * For more information, see the [`kafkaIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/kafka/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n *  integrations: [Sentry.kafkaIntegration()],\n * });\n */\nexport const kafkaIntegration = defineIntegration(_kafkaIntegration);\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const PACKAGE_VERSION = '0.58.0';\nexport const PACKAGE_NAME = '@opentelemetry/instrumentation-lru-memoizer';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { context } from '@opentelemetry/api';\nimport {\n  InstrumentationBase,\n  InstrumentationConfig,\n  InstrumentationNodeModuleDefinition,\n} from '@opentelemetry/instrumentation';\n/** @knipignore */\nimport { PACKAGE_NAME, PACKAGE_VERSION } from './version';\n\nexport class LruMemoizerInstrumentation extends InstrumentationBase {\n  constructor(config: InstrumentationConfig = {}) {\n    super(PACKAGE_NAME, PACKAGE_VERSION, config);\n  }\n\n  init(): InstrumentationNodeModuleDefinition[] {\n    return [\n      new InstrumentationNodeModuleDefinition(\n        'lru-memoizer',\n        ['>=1.3 <4'],\n        moduleExports => {\n          // moduleExports is a function which receives an options object,\n          // and returns a \"memoizer\" function upon invocation.\n          // We want to patch this \"memoizer's\" internal function\n          const asyncMemoizer = function (this: unknown) {\n            // This following function is invoked every time the user wants to get a (possible) memoized value\n            // We replace it with another function in which we bind the current context to the last argument (callback)\n            const origMemoizer = moduleExports.apply(this, arguments);\n            return function (this: unknown) {\n              const modifiedArguments = [...arguments];\n              // last argument is the callback\n              const origCallback = modifiedArguments.pop();\n              const callbackWithContext =\n                typeof origCallback === 'function'\n                  ? context.bind(context.active(), origCallback)\n                  : origCallback;\n              modifiedArguments.push(callbackWithContext);\n              return origMemoizer.apply(this, modifiedArguments);\n            };\n          };\n\n          // sync function preserves context, but we still need to export it\n          // as the lru-memoizer package does\n          asyncMemoizer.sync = moduleExports.sync;\n          return asyncMemoizer;\n        },\n        undefined // no need to disable as this instrumentation does not create any spans\n      ),\n    ];\n  }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { LruMemoizerInstrumentation } from './instrumentation';\n","import { LruMemoizerInstrumentation } from '@opentelemetry/instrumentation-lru-memoizer';\nimport type { IntegrationFn } from '@sentry/core';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'LruMemoizer';\n\nexport const instrumentLruMemoizer = generateInstrumentOnce(INTEGRATION_NAME, () => new LruMemoizerInstrumentation());\n\nconst _lruMemoizerIntegration = (() => {\n  return {\n    name: INTEGRATION_NAME,\n    setupOnce() {\n      instrumentLruMemoizer();\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for the [lru-memoizer](https://www.npmjs.com/package/lru-memoizer) library.\n *\n * For more information, see the [`lruMemoizerIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/lrumemoizer/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n *  integrations: [Sentry.lruMemoizerIntegration()],\n * });\n */\nexport const lruMemoizerIntegration = defineIntegration(_lruMemoizerIntegration);\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n\n/**\n * Deprecated, use `server.address`, `server.port` attributes instead.\n *\n * @example \"Server=(localdb)\\\\v11.0;Integrated Security=true;\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` and `server.port`.\n */\nexport const ATTR_DB_CONNECTION_STRING = 'db.connection_string' as const;\n\n/**\n * Deprecated, use `db.collection.name` instead.\n *\n * @example \"mytable\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.collection.name`.\n */\nexport const ATTR_DB_MONGODB_COLLECTION = 'db.mongodb.collection' as const;\n\n/**\n * Deprecated, use `db.namespace` instead.\n *\n * @example customers\n * @example main\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.namespace`.\n */\nexport const ATTR_DB_NAME = 'db.name' as const;\n\n/**\n * Deprecated, use `db.operation.name` instead.\n *\n * @example findAndModify\n * @example HMSET\n * @example SELECT\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.operation.name`.\n */\nexport const ATTR_DB_OPERATION = 'db.operation' as const;\n\n/**\n * The database statement being executed.\n *\n * @example SELECT * FROM wuser_table\n * @example SET mykey \"WuValue\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.query.text`.\n */\nexport const ATTR_DB_STATEMENT = 'db.statement' as const;\n\n/**\n * Deprecated, use `db.system.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.system.name`.\n */\nexport const ATTR_DB_SYSTEM = 'db.system' as const;\n\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexport const ATTR_NET_PEER_NAME = 'net.peer.name' as const;\n\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexport const ATTR_NET_PEER_PORT = 'net.peer.port' as const;\n\n/**\n * Enum value \"mongodb\" for attribute {@link ATTR_DB_SYSTEM_NAME}.\n *\n * [MongoDB](https://www.mongodb.com/)\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const DB_SYSTEM_NAME_VALUE_MONGODB = 'mongodb' as const;\n\n/**\n * Enum value \"mongodb\" for attribute {@link ATTR_DB_SYSTEM}.\n *\n * MongoDB\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const DB_SYSTEM_VALUE_MONGODB = 'mongodb' as const;\n\n/**\n * Deprecated, use `db.client.connection.count` instead.\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.client.connection.count`.\n */\nexport const METRIC_DB_CLIENT_CONNECTIONS_USAGE =\n  'db.client.connections.usage' as const;\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { InstrumentationConfig } from '@opentelemetry/instrumentation';\nimport { Span } from '@opentelemetry/api';\n\nexport interface MongoDBInstrumentationExecutionResponseHook {\n  (span: Span, responseInfo: MongoResponseHookInformation): void;\n}\n\n/**\n * Function that can be used to serialize db.statement tag\n * @param cmd - MongoDB command object\n *\n * @returns serialized string that will be used as the db.statement attribute.\n */\nexport type DbStatementSerializer = (cmd: Record) => string;\n\nexport interface MongoDBInstrumentationConfig extends InstrumentationConfig {\n  /**\n   * If true, additional information about query parameters and\n   * results will be attached (as `attributes`) to spans representing\n   * database operations.\n   */\n  enhancedDatabaseReporting?: boolean;\n\n  /**\n   * Hook that allows adding custom span attributes based on the data\n   * returned from MongoDB actions.\n   *\n   * @default undefined\n   */\n  responseHook?: MongoDBInstrumentationExecutionResponseHook;\n\n  /**\n   * Custom serializer function for the db.statement tag\n   */\n  dbStatementSerializer?: DbStatementSerializer;\n}\n\nexport type Func = (...args: unknown[]) => T;\nexport type MongoInternalCommand = {\n  findandmodify: boolean;\n  createIndexes: boolean;\n  count: boolean;\n  aggregate: boolean;\n  ismaster: boolean;\n  indexes?: unknown[];\n  query?: Record;\n  limit?: number;\n  q?: Record;\n  u?: Record;\n};\n\nexport type ServerSession = {\n  id: any;\n  lastUse: number;\n  txnNumber: number;\n  isDirty: boolean;\n};\n\nexport type CursorState = { cmd: MongoInternalCommand } & Record<\n  string,\n  unknown\n>;\n\nexport interface MongoResponseHookInformation {\n  data: CommandResult;\n}\n\n// https://github.com/mongodb/node-mongodb-native/blob/3.6/lib/core/connection/command_result.js\nexport type CommandResult = {\n  result?: unknown;\n  connection?: unknown;\n  message?: unknown;\n};\n\n// https://github.com/mongodb/node-mongodb-native/blob/3.6/lib/core/wireprotocol/index.js\nexport type WireProtocolInternal = {\n  insert: (\n    server: MongoInternalTopology,\n    ns: string,\n    ops: unknown[],\n    options: unknown | Function,\n    callback?: Function\n  ) => unknown;\n  update: (\n    server: MongoInternalTopology,\n    ns: string,\n    ops: unknown[],\n    options: unknown | Function,\n    callback?: Function\n  ) => unknown;\n  remove: (\n    server: MongoInternalTopology,\n    ns: string,\n    ops: unknown[],\n    options: unknown | Function,\n    callback?: Function\n  ) => unknown;\n  killCursors: (\n    server: MongoInternalTopology,\n    ns: string,\n    cursorState: CursorState,\n    callback: Function\n  ) => unknown;\n  getMore: (\n    server: MongoInternalTopology,\n    ns: string,\n    cursorState: CursorState,\n    batchSize: number,\n    options: unknown | Function,\n    callback?: Function\n  ) => unknown;\n  query: (\n    server: MongoInternalTopology,\n    ns: string,\n    cmd: MongoInternalCommand,\n    cursorState: CursorState,\n    options: unknown | Function,\n    callback?: Function\n  ) => unknown;\n  command: (\n    server: MongoInternalTopology,\n    ns: string,\n    cmd: MongoInternalCommand,\n    options: unknown | Function,\n    callback?: Function\n  ) => unknown;\n};\n\n// https://github.com/mongodb/node-mongodb-native/blob/3.6/lib/topologies/server.js#L172\n// https://github.com/mongodb/node-mongodb-native/blob/2.2/lib/server.js#L174\nexport type MongoInternalTopology = {\n  s?: {\n    // those are for mongodb@3\n    options?: {\n      host?: string;\n      port?: number;\n      servername?: string;\n    };\n    // those are for mongodb@2\n    host?: string;\n    port?: number;\n  };\n  // mongodb@3 with useUnifiedTopology option\n  description?: {\n    address?: string;\n  };\n};\n\nexport enum MongodbCommandType {\n  CREATE_INDEXES = 'createIndexes',\n  FIND_AND_MODIFY = 'findAndModify',\n  IS_MASTER = 'isMaster',\n  COUNT = 'count',\n  AGGREGATE = 'aggregate',\n  UNKNOWN = 'unknown',\n}\n\n// https://github.com/mongodb/js-bson/blob/main/src/bson.ts\nexport type Document = {\n  [key: string]: any;\n};\n\n// https://github.com/mongodb/node-mongodb-native/blob/v6.4.0/src/utils.ts#L281\nexport interface MongodbNamespace {\n  db: string;\n  collection?: string;\n}\n\nexport type V4Connection = {\n  command: Function;\n  // From version 6.4.0 the method does not expect a callback and returns a promise\n  // https://github.com/mongodb/node-mongodb-native/blob/v6.4.2/src/cmap/connection.ts\n  commandPromise(\n    ns: MongodbNamespace,\n    cmd: Document,\n    options: undefined | unknown,\n    // From v6.6.0 we have this new param which is a constructor function\n    // https://github.com/mongodb/node-mongodb-native/blob/v6.6.0/src/cmap/connection.ts#L588\n    responseType: undefined | unknown\n  ): Promise;\n  // Earlier versions expect a callback param and return void\n  // https://github.com/mongodb/node-mongodb-native/blob/v4.2.2/src/cmap/connection.ts\n  commandCallback(\n    ns: MongodbNamespace,\n    cmd: Document,\n    options: undefined | unknown,\n    callback: any\n  ): void;\n};\n\n// https://github.com/mongodb/node-mongodb-native/blob/v4.2.2/src/cmap/connection_pool.ts\nexport type V4ConnectionPool = {\n  // Instrumentation just cares about carrying the async context so\n  // types of callback params are not needed\n  checkOut: (callback: (error: any, connection: any) => void) => void;\n};\n\nexport type V4Connect = {\n  connect: Function;\n  // From version 6.4.0 the method does not expect a callback and returns a promise\n  // https://github.com/mongodb/node-mongodb-native/blob/v6.4.0/src/cmap/connect.ts\n  connectPromise: (options: any) => Promise;\n  // Earlier versions expect a callback param and return void\n  // https://github.com/mongodb/node-mongodb-native/blob/v4.2.2/src/cmap/connect.ts\n  connectCallback: (options: any, callback: any) => void;\n};\n\n// https://github.com/mongodb/node-mongodb-native/blob/v4.2.2/src/sessions.ts\nexport type V4Session = {\n  acquire: () => ServerSession;\n  release: (session: ServerSession) => void;\n};\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#replacer\n */\nexport type Replacer = (key: string, value: unknown) => unknown;\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const PACKAGE_VERSION = '0.67.0';\nexport const PACKAGE_NAME = '@opentelemetry/instrumentation-mongodb';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n  context,\n  trace,\n  Span,\n  SpanKind,\n  SpanStatusCode,\n  UpDownCounter,\n  type Attributes,\n} from '@opentelemetry/api';\nimport {\n  InstrumentationBase,\n  InstrumentationNodeModuleDefinition,\n  InstrumentationNodeModuleFile,\n  isWrapped,\n  safeExecuteInTheMiddle,\n  SemconvStability,\n  semconvStabilityFromStr,\n} from '@opentelemetry/instrumentation';\nimport {\n  ATTR_DB_COLLECTION_NAME,\n  ATTR_DB_NAMESPACE,\n  ATTR_DB_OPERATION_NAME,\n  ATTR_DB_QUERY_TEXT,\n  ATTR_DB_SYSTEM_NAME,\n  ATTR_SERVER_ADDRESS,\n  ATTR_SERVER_PORT,\n} from '@opentelemetry/semantic-conventions';\nimport {\n  ATTR_DB_CONNECTION_STRING,\n  ATTR_DB_MONGODB_COLLECTION,\n  ATTR_DB_NAME,\n  ATTR_DB_OPERATION,\n  ATTR_DB_STATEMENT,\n  ATTR_DB_SYSTEM,\n  ATTR_NET_PEER_NAME,\n  ATTR_NET_PEER_PORT,\n  DB_SYSTEM_NAME_VALUE_MONGODB,\n  DB_SYSTEM_VALUE_MONGODB,\n  METRIC_DB_CLIENT_CONNECTIONS_USAGE,\n} from './semconv';\nimport { MongoDBInstrumentationConfig, CommandResult } from './types';\nimport {\n  CursorState,\n  ServerSession,\n  MongodbCommandType,\n  MongoInternalCommand,\n  MongodbNamespace,\n  MongoInternalTopology,\n  WireProtocolInternal,\n  V4Connection,\n  V4ConnectionPool,\n  Replacer,\n} from './internal-types';\nimport { V4Connect, V4Session } from './internal-types';\n/** @knipignore */\nimport { PACKAGE_NAME, PACKAGE_VERSION } from './version';\n\nconst DEFAULT_CONFIG: MongoDBInstrumentationConfig = {\n  requireParentSpan: true,\n};\n\n/** mongodb instrumentation plugin for OpenTelemetry */\nexport class MongoDBInstrumentation extends InstrumentationBase {\n  private _netSemconvStability!: SemconvStability;\n  private _dbSemconvStability!: SemconvStability;\n  declare private _connectionsUsage: UpDownCounter;\n  declare private _poolName: string;\n\n  constructor(config: MongoDBInstrumentationConfig = {}) {\n    super(PACKAGE_NAME, PACKAGE_VERSION, { ...DEFAULT_CONFIG, ...config });\n    this._setSemconvStabilityFromEnv();\n  }\n\n  // Used for testing.\n  private _setSemconvStabilityFromEnv() {\n    this._netSemconvStability = semconvStabilityFromStr(\n      'http',\n      process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n    );\n    this._dbSemconvStability = semconvStabilityFromStr(\n      'database',\n      process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n    );\n  }\n\n  override setConfig(config: MongoDBInstrumentationConfig = {}) {\n    super.setConfig({ ...DEFAULT_CONFIG, ...config });\n  }\n\n  override _updateMetricInstruments() {\n    this._connectionsUsage = this.meter.createUpDownCounter(\n      METRIC_DB_CLIENT_CONNECTIONS_USAGE,\n      {\n        description:\n          'The number of connections that are currently in state described by the state attribute.',\n        unit: '{connection}',\n      }\n    );\n  }\n\n  /**\n   * Convenience function for updating the `db.client.connections.usage` metric.\n   * The name \"count\" comes from the eventual replacement for this metric per\n   * https://opentelemetry.io/docs/specs/semconv/non-normative/db-migration/#database-client-connection-count\n   */\n  private _connCountAdd(n: number, poolName: string, state: string) {\n    this._connectionsUsage?.add(n, { 'pool.name': poolName, state });\n  }\n\n  init() {\n    const {\n      v3PatchConnection: v3PatchConnection,\n      v3UnpatchConnection: v3UnpatchConnection,\n    } = this._getV3ConnectionPatches();\n\n    const { v4PatchConnect, v4UnpatchConnect } = this._getV4ConnectPatches();\n    const {\n      v4PatchConnectionCallback,\n      v4PatchConnectionPromise,\n      v4UnpatchConnection,\n    } = this._getV4ConnectionPatches();\n    const { v4PatchConnectionPool, v4UnpatchConnectionPool } =\n      this._getV4ConnectionPoolPatches();\n    const { v4PatchSessions, v4UnpatchSessions } = this._getV4SessionsPatches();\n\n    return [\n      new InstrumentationNodeModuleDefinition(\n        'mongodb',\n        ['>=3.3.0 <4'],\n        undefined,\n        undefined,\n        [\n          new InstrumentationNodeModuleFile(\n            'mongodb/lib/core/wireprotocol/index.js',\n            ['>=3.3.0 <4'],\n            v3PatchConnection,\n            v3UnpatchConnection\n          ),\n        ]\n      ),\n      new InstrumentationNodeModuleDefinition(\n        'mongodb',\n        ['>=4.0.0 <8'],\n        undefined,\n        undefined,\n        [\n          new InstrumentationNodeModuleFile(\n            'mongodb/lib/cmap/connection.js',\n            ['>=4.0.0 <6.4'],\n            v4PatchConnectionCallback,\n            v4UnpatchConnection\n          ),\n          new InstrumentationNodeModuleFile(\n            'mongodb/lib/cmap/connection.js',\n            ['>=6.4.0 <8'],\n            v4PatchConnectionPromise,\n            v4UnpatchConnection\n          ),\n          new InstrumentationNodeModuleFile(\n            'mongodb/lib/cmap/connection_pool.js',\n            ['>=4.0.0 <6.4'],\n            v4PatchConnectionPool,\n            v4UnpatchConnectionPool\n          ),\n          new InstrumentationNodeModuleFile(\n            'mongodb/lib/cmap/connect.js',\n            ['>=4.0.0 <8'],\n            v4PatchConnect,\n            v4UnpatchConnect\n          ),\n          new InstrumentationNodeModuleFile(\n            'mongodb/lib/sessions.js',\n            ['>=4.0.0 <8'],\n            v4PatchSessions,\n            v4UnpatchSessions\n          ),\n        ]\n      ),\n    ];\n  }\n\n  private _getV3ConnectionPatches() {\n    return {\n      v3PatchConnection: (moduleExports: T) => {\n        // patch insert operation\n        if (isWrapped(moduleExports.insert)) {\n          this._unwrap(moduleExports, 'insert');\n        }\n        this._wrap(\n          moduleExports,\n          'insert',\n          this._getV3PatchOperation('insert')\n        );\n        // patch remove operation\n        if (isWrapped(moduleExports.remove)) {\n          this._unwrap(moduleExports, 'remove');\n        }\n        this._wrap(\n          moduleExports,\n          'remove',\n          this._getV3PatchOperation('remove')\n        );\n        // patch update operation\n        if (isWrapped(moduleExports.update)) {\n          this._unwrap(moduleExports, 'update');\n        }\n        this._wrap(\n          moduleExports,\n          'update',\n          this._getV3PatchOperation('update')\n        );\n        // patch other command\n        if (isWrapped(moduleExports.command)) {\n          this._unwrap(moduleExports, 'command');\n        }\n        this._wrap(moduleExports, 'command', this._getV3PatchCommand());\n        // patch query\n        if (isWrapped(moduleExports.query)) {\n          this._unwrap(moduleExports, 'query');\n        }\n        this._wrap(moduleExports, 'query', this._getV3PatchFind());\n        // patch get more operation on cursor\n        if (isWrapped(moduleExports.getMore)) {\n          this._unwrap(moduleExports, 'getMore');\n        }\n        this._wrap(moduleExports, 'getMore', this._getV3PatchCursor());\n        return moduleExports;\n      },\n      v3UnpatchConnection: (moduleExports?: T) => {\n        if (moduleExports === undefined) return;\n        this._unwrap(moduleExports, 'insert');\n        this._unwrap(moduleExports, 'remove');\n        this._unwrap(moduleExports, 'update');\n        this._unwrap(moduleExports, 'command');\n        this._unwrap(moduleExports, 'query');\n        this._unwrap(moduleExports, 'getMore');\n      },\n    };\n  }\n\n  private _getV4SessionsPatches() {\n    return {\n      v4PatchSessions: (moduleExports: any) => {\n        if (isWrapped(moduleExports.acquire)) {\n          this._unwrap(moduleExports, 'acquire');\n        }\n        this._wrap(\n          moduleExports.ServerSessionPool.prototype,\n          'acquire',\n          this._getV4AcquireCommand()\n        );\n\n        if (isWrapped(moduleExports.release)) {\n          this._unwrap(moduleExports, 'release');\n        }\n        this._wrap(\n          moduleExports.ServerSessionPool.prototype,\n          'release',\n          this._getV4ReleaseCommand()\n        );\n        return moduleExports;\n      },\n      v4UnpatchSessions: (moduleExports?: T) => {\n        if (moduleExports === undefined) return;\n        if (isWrapped(moduleExports.acquire)) {\n          this._unwrap(moduleExports, 'acquire');\n        }\n        if (isWrapped(moduleExports.release)) {\n          this._unwrap(moduleExports, 'release');\n        }\n      },\n    };\n  }\n\n  private _getV4AcquireCommand() {\n    const instrumentation = this;\n    return (original: V4Session['acquire']) => {\n      return function patchAcquire(this: any) {\n        const nSessionsBeforeAcquire = this.sessions.length;\n        const session = original.call(this);\n        const nSessionsAfterAcquire = this.sessions.length;\n\n        if (nSessionsBeforeAcquire === nSessionsAfterAcquire) {\n          //no session in the pool. a new session was created and used\n          instrumentation._connCountAdd(1, instrumentation._poolName, 'used');\n        } else if (nSessionsBeforeAcquire - 1 === nSessionsAfterAcquire) {\n          //a session was already in the pool. remove it from the pool and use it.\n          instrumentation._connCountAdd(-1, instrumentation._poolName, 'idle');\n          instrumentation._connCountAdd(1, instrumentation._poolName, 'used');\n        }\n        return session;\n      };\n    };\n  }\n\n  private _getV4ReleaseCommand() {\n    const instrumentation = this;\n    return (original: V4Session['release']) => {\n      return function patchRelease(this: any, session: ServerSession) {\n        const cmdPromise = original.call(this, session);\n\n        instrumentation._connCountAdd(-1, instrumentation._poolName, 'used');\n        instrumentation._connCountAdd(1, instrumentation._poolName, 'idle');\n        return cmdPromise;\n      };\n    };\n  }\n\n  private _getV4ConnectionPoolPatches() {\n    return {\n      v4PatchConnectionPool: (moduleExports: any) => {\n        const poolPrototype = moduleExports.ConnectionPool.prototype;\n\n        if (isWrapped(poolPrototype.checkOut)) {\n          this._unwrap(poolPrototype, 'checkOut');\n        }\n\n        this._wrap(\n          poolPrototype,\n          'checkOut',\n          this._getV4ConnectionPoolCheckOut()\n        );\n        return moduleExports;\n      },\n      v4UnpatchConnectionPool: (moduleExports?: any) => {\n        if (moduleExports === undefined) return;\n\n        this._unwrap(moduleExports.ConnectionPool.prototype, 'checkOut');\n      },\n    };\n  }\n\n  private _getV4ConnectPatches() {\n    return {\n      v4PatchConnect: (moduleExports: any) => {\n        if (isWrapped(moduleExports.connect)) {\n          this._unwrap(moduleExports, 'connect');\n        }\n\n        this._wrap(moduleExports, 'connect', this._getV4ConnectCommand());\n        return moduleExports;\n      },\n      v4UnpatchConnect: (moduleExports?: T) => {\n        if (moduleExports === undefined) return;\n\n        this._unwrap(moduleExports, 'connect');\n      },\n    };\n  }\n\n  // This patch will become unnecessary once\n  // https://jira.mongodb.org/browse/NODE-5639 is done.\n  private _getV4ConnectionPoolCheckOut() {\n    return (original: V4ConnectionPool['checkOut']) => {\n      return function patchedCheckout(this: unknown, callback: any) {\n        const patchedCallback = context.bind(context.active(), callback);\n        return original.call(this, patchedCallback);\n      };\n    };\n  }\n\n  private _getV4ConnectCommand() {\n    const instrumentation = this;\n\n    return (\n      original: V4Connect['connectCallback'] | V4Connect['connectPromise']\n    ) => {\n      return function patchedConnect(\n        this: unknown,\n        options: any,\n        callback: any\n      ) {\n        // from v6.4 `connect` method only accepts an options param and returns a promise\n        // with the connection\n        if (original.length === 1) {\n          const result = (original as V4Connect['connectPromise']).call(\n            this,\n            options\n          );\n          if (result && typeof result.then === 'function') {\n            result.then(\n              () => instrumentation.setPoolName(options),\n              // this handler is set to pass the lint rules\n              () => undefined\n            );\n          }\n          return result;\n        }\n\n        // Earlier versions expects a callback param and return void\n        const patchedCallback = function (err: any, conn: any) {\n          if (err || !conn) {\n            callback(err, conn);\n            return;\n          }\n          instrumentation.setPoolName(options);\n          callback(err, conn);\n        };\n\n        return (original as V4Connect['connectCallback']).call(\n          this,\n          options,\n          patchedCallback\n        );\n      };\n    };\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  private _getV4ConnectionPatches() {\n    return {\n      v4PatchConnectionCallback: (moduleExports: any) => {\n        // patch insert operation\n        if (isWrapped(moduleExports.Connection.prototype.command)) {\n          this._unwrap(moduleExports.Connection.prototype, 'command');\n        }\n\n        this._wrap(\n          moduleExports.Connection.prototype,\n          'command',\n          this._getV4PatchCommandCallback()\n        );\n        return moduleExports;\n      },\n      v4PatchConnectionPromise: (moduleExports: any) => {\n        // patch insert operation\n        if (isWrapped(moduleExports.Connection.prototype.command)) {\n          this._unwrap(moduleExports.Connection.prototype, 'command');\n        }\n\n        this._wrap(\n          moduleExports.Connection.prototype,\n          'command',\n          this._getV4PatchCommandPromise()\n        );\n        return moduleExports;\n      },\n      v4UnpatchConnection: (moduleExports?: any) => {\n        if (moduleExports === undefined) return;\n        this._unwrap(moduleExports.Connection.prototype, 'command');\n      },\n    };\n  }\n\n  /** Creates spans for common operations */\n  private _getV3PatchOperation(operationName: 'insert' | 'update' | 'remove') {\n    const instrumentation = this;\n    return (original: WireProtocolInternal[typeof operationName]) => {\n      return function patchedServerCommand(\n        this: unknown,\n        server: MongoInternalTopology,\n        ns: string,\n        ops: unknown[],\n        options: unknown | Function,\n        callback?: Function\n      ) {\n        const currentSpan = trace.getSpan(context.active());\n        const skipInstrumentation =\n          instrumentation._checkSkipInstrumentation(currentSpan);\n\n        const resultHandler =\n          typeof options === 'function' ? options : callback;\n        if (\n          skipInstrumentation ||\n          typeof resultHandler !== 'function' ||\n          typeof ops !== 'object'\n        ) {\n          if (typeof options === 'function') {\n            return original.call(this, server, ns, ops, options);\n          } else {\n            return original.call(this, server, ns, ops, options, callback);\n          }\n        }\n\n        const attributes = instrumentation._getV3SpanAttributes(\n          ns,\n          server,\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\n          ops[0] as any,\n          operationName\n        );\n        const spanName = instrumentation._spanNameFromAttrs(attributes);\n        const span = instrumentation.tracer.startSpan(spanName, {\n          kind: SpanKind.CLIENT,\n          attributes,\n        });\n\n        const patchedCallback = instrumentation._patchEnd(span, resultHandler);\n        // handle when options is the callback to send the correct number of args\n        if (typeof options === 'function') {\n          return original.call(this, server, ns, ops, patchedCallback);\n        } else {\n          return original.call(this, server, ns, ops, options, patchedCallback);\n        }\n      };\n    };\n  }\n\n  /** Creates spans for command operation */\n  private _getV3PatchCommand() {\n    const instrumentation = this;\n    return (original: WireProtocolInternal['command']) => {\n      return function patchedServerCommand(\n        this: unknown,\n        server: MongoInternalTopology,\n        ns: string,\n        cmd: MongoInternalCommand,\n        options: unknown | Function,\n        callback?: Function\n      ) {\n        const currentSpan = trace.getSpan(context.active());\n        const skipInstrumentation =\n          instrumentation._checkSkipInstrumentation(currentSpan);\n\n        const resultHandler =\n          typeof options === 'function' ? options : callback;\n\n        if (\n          skipInstrumentation ||\n          typeof resultHandler !== 'function' ||\n          typeof cmd !== 'object'\n        ) {\n          if (typeof options === 'function') {\n            return original.call(this, server, ns, cmd, options);\n          } else {\n            return original.call(this, server, ns, cmd, options, callback);\n          }\n        }\n\n        const commandType = MongoDBInstrumentation._getCommandType(cmd);\n        const operationName =\n          commandType === MongodbCommandType.UNKNOWN ? undefined : commandType;\n        const attributes = instrumentation._getV3SpanAttributes(\n          ns,\n          server,\n          cmd,\n          operationName\n        );\n        const spanName = instrumentation._spanNameFromAttrs(attributes);\n        const span = instrumentation.tracer.startSpan(spanName, {\n          kind: SpanKind.CLIENT,\n          attributes,\n        });\n\n        const patchedCallback = instrumentation._patchEnd(span, resultHandler);\n        // handle when options is the callback to send the correct number of args\n        if (typeof options === 'function') {\n          return original.call(this, server, ns, cmd, patchedCallback);\n        } else {\n          return original.call(this, server, ns, cmd, options, patchedCallback);\n        }\n      };\n    };\n  }\n\n  /** Creates spans for command operation */\n  private _getV4PatchCommandCallback() {\n    const instrumentation = this;\n    return (original: V4Connection['commandCallback']) => {\n      return function patchedV4ServerCommand(\n        this: any,\n        ns: MongodbNamespace,\n        cmd: any,\n        options: undefined | unknown,\n        callback: any\n      ) {\n        const currentSpan = trace.getSpan(context.active());\n        const skipInstrumentation =\n          instrumentation._checkSkipInstrumentation(currentSpan);\n        const resultHandler = callback;\n        const commandType = Object.keys(cmd)[0];\n\n        if (typeof cmd !== 'object' || cmd.ismaster || cmd.hello) {\n          return original.call(this, ns, cmd, options, callback);\n        }\n\n        let span = undefined;\n        if (!skipInstrumentation) {\n          const attributes = instrumentation._getV4SpanAttributes(\n            this,\n            ns,\n            cmd,\n            commandType\n          );\n          const spanName = instrumentation._spanNameFromAttrs(attributes);\n          span = instrumentation.tracer.startSpan(spanName, {\n            kind: SpanKind.CLIENT,\n            attributes,\n          });\n        }\n        const patchedCallback = instrumentation._patchEnd(\n          span,\n          resultHandler,\n          this.id,\n          commandType\n        );\n\n        return original.call(this, ns, cmd, options, patchedCallback);\n      };\n    };\n  }\n\n  private _getV4PatchCommandPromise() {\n    const instrumentation = this;\n    return (original: V4Connection['commandPromise']) => {\n      return function patchedV4ServerCommand(\n        this: any,\n        ...args: Parameters\n      ) {\n        const [ns, cmd] = args;\n        const currentSpan = trace.getSpan(context.active());\n        const skipInstrumentation =\n          instrumentation._checkSkipInstrumentation(currentSpan);\n\n        const commandType = Object.keys(cmd)[0];\n        const resultHandler = () => undefined;\n\n        if (typeof cmd !== 'object' || cmd.ismaster || cmd.hello) {\n          return original.apply(this, args);\n        }\n\n        let span = undefined;\n        if (!skipInstrumentation) {\n          const attributes = instrumentation._getV4SpanAttributes(\n            this,\n            ns,\n            cmd,\n            commandType\n          );\n          const spanName = instrumentation._spanNameFromAttrs(attributes);\n          span = instrumentation.tracer.startSpan(spanName, {\n            kind: SpanKind.CLIENT,\n            attributes,\n          });\n        }\n\n        const patchedCallback = instrumentation._patchEnd(\n          span,\n          resultHandler,\n          this.id,\n          commandType\n        );\n\n        const result = original.apply(this, args);\n        result.then(\n          (res: any) => patchedCallback(null, res),\n          (err: any) => patchedCallback(err)\n        );\n\n        return result;\n      };\n    };\n  }\n\n  /** Creates spans for find operation */\n  private _getV3PatchFind() {\n    const instrumentation = this;\n    return (original: WireProtocolInternal['query']) => {\n      return function patchedServerCommand(\n        this: unknown,\n        server: MongoInternalTopology,\n        ns: string,\n        cmd: MongoInternalCommand,\n        cursorState: CursorState,\n        options: unknown | Function,\n        callback?: Function\n      ) {\n        const currentSpan = trace.getSpan(context.active());\n        const skipInstrumentation =\n          instrumentation._checkSkipInstrumentation(currentSpan);\n        const resultHandler =\n          typeof options === 'function' ? options : callback;\n\n        if (\n          skipInstrumentation ||\n          typeof resultHandler !== 'function' ||\n          typeof cmd !== 'object'\n        ) {\n          if (typeof options === 'function') {\n            return original.call(this, server, ns, cmd, cursorState, options);\n          } else {\n            return original.call(\n              this,\n              server,\n              ns,\n              cmd,\n              cursorState,\n              options,\n              callback\n            );\n          }\n        }\n\n        const attributes = instrumentation._getV3SpanAttributes(\n          ns,\n          server,\n          cmd,\n          'find'\n        );\n        const spanName = instrumentation._spanNameFromAttrs(attributes);\n        const span = instrumentation.tracer.startSpan(spanName, {\n          kind: SpanKind.CLIENT,\n          attributes,\n        });\n\n        const patchedCallback = instrumentation._patchEnd(span, resultHandler);\n        // handle when options is the callback to send the correct number of args\n        if (typeof options === 'function') {\n          return original.call(\n            this,\n            server,\n            ns,\n            cmd,\n            cursorState,\n            patchedCallback\n          );\n        } else {\n          return original.call(\n            this,\n            server,\n            ns,\n            cmd,\n            cursorState,\n            options,\n            patchedCallback\n          );\n        }\n      };\n    };\n  }\n\n  /** Creates spans for find operation */\n  private _getV3PatchCursor() {\n    const instrumentation = this;\n    return (original: WireProtocolInternal['getMore']) => {\n      return function patchedServerCommand(\n        this: unknown,\n        server: MongoInternalTopology,\n        ns: string,\n        cursorState: CursorState,\n        batchSize: number,\n        options: unknown | Function,\n        callback?: Function\n      ) {\n        const currentSpan = trace.getSpan(context.active());\n        const skipInstrumentation =\n          instrumentation._checkSkipInstrumentation(currentSpan);\n\n        const resultHandler =\n          typeof options === 'function' ? options : callback;\n\n        if (skipInstrumentation || typeof resultHandler !== 'function') {\n          if (typeof options === 'function') {\n            return original.call(\n              this,\n              server,\n              ns,\n              cursorState,\n              batchSize,\n              options\n            );\n          } else {\n            return original.call(\n              this,\n              server,\n              ns,\n              cursorState,\n              batchSize,\n              options,\n              callback\n            );\n          }\n        }\n\n        const attributes = instrumentation._getV3SpanAttributes(\n          ns,\n          server,\n          cursorState.cmd,\n          'getMore'\n        );\n        const spanName = instrumentation._spanNameFromAttrs(attributes);\n        const span = instrumentation.tracer.startSpan(spanName, {\n          kind: SpanKind.CLIENT,\n          attributes,\n        });\n\n        const patchedCallback = instrumentation._patchEnd(span, resultHandler);\n        // handle when options is the callback to send the correct number of args\n        if (typeof options === 'function') {\n          return original.call(\n            this,\n            server,\n            ns,\n            cursorState,\n            batchSize,\n            patchedCallback\n          );\n        } else {\n          return original.call(\n            this,\n            server,\n            ns,\n            cursorState,\n            batchSize,\n            options,\n            patchedCallback\n          );\n        }\n      };\n    };\n  }\n\n  /**\n   * Get the mongodb command type from the object.\n   * @param command Internal mongodb command object\n   */\n  private static _getCommandType(\n    command: MongoInternalCommand\n  ): MongodbCommandType {\n    if (command.createIndexes !== undefined) {\n      return MongodbCommandType.CREATE_INDEXES;\n    } else if (command.findandmodify !== undefined) {\n      return MongodbCommandType.FIND_AND_MODIFY;\n    } else if (command.ismaster !== undefined) {\n      return MongodbCommandType.IS_MASTER;\n    } else if (command.count !== undefined) {\n      return MongodbCommandType.COUNT;\n    } else if (command.aggregate !== undefined) {\n      return MongodbCommandType.AGGREGATE;\n    } else {\n      return MongodbCommandType.UNKNOWN;\n    }\n  }\n\n  /**\n   * Determine a span's attributes by fetching related metadata from the context\n   * @param connectionCtx mongodb internal connection context\n   * @param ns mongodb namespace\n   * @param command mongodb internal representation of a command\n   */\n  private _getV4SpanAttributes(\n    connectionCtx: any,\n    ns: MongodbNamespace,\n    command?: any,\n    operation?: string\n  ): Attributes {\n    let host, port: undefined | string;\n    if (connectionCtx) {\n      const hostParts =\n        typeof connectionCtx.address === 'string'\n          ? connectionCtx.address.split(':')\n          : '';\n      if (hostParts.length === 2) {\n        host = hostParts[0];\n        port = hostParts[1];\n      }\n    }\n    // capture parameters within the query as well if enhancedDatabaseReporting is enabled.\n    let commandObj: Record;\n    if (command?.documents && command.documents[0]) {\n      commandObj = command.documents[0];\n    } else if (command?.cursors) {\n      commandObj = command.cursors;\n    } else {\n      commandObj = command;\n    }\n\n    return this._getSpanAttributes(\n      ns.db,\n      ns.collection,\n      host,\n      port,\n      commandObj,\n      operation\n    );\n  }\n\n  /**\n   * Determine a span's attributes by fetching related metadata from the context\n   * @param ns mongodb namespace\n   * @param topology mongodb internal representation of the network topology\n   * @param command mongodb internal representation of a command\n   */\n  private _getV3SpanAttributes(\n    ns: string,\n    topology: MongoInternalTopology,\n    command?: MongoInternalCommand,\n    operation?: string | undefined\n  ): Attributes {\n    // Extract host/port info.\n    let host: undefined | string;\n    let port: undefined | string;\n    if (topology && topology.s) {\n      host = topology.s.options?.host ?? topology.s.host;\n      port = (topology.s.options?.port ?? topology.s.port)?.toString();\n      if (host == null || port == null) {\n        const address = topology.description?.address;\n        if (address) {\n          const addressSegments = address.split(':');\n          host = addressSegments[0];\n          port = addressSegments[1];\n        }\n      }\n    }\n\n    // The namespace is a combination of the database name and the name of the\n    // collection or index, like so: [database-name].[collection-or-index-name].\n    // It could be a string or an instance of MongoDBNamespace, as such we\n    // always coerce to a string to extract db and collection.\n    const [dbName, dbCollection] = ns.toString().split('.');\n    // capture parameters within the query as well if enhancedDatabaseReporting is enabled.\n    const commandObj = command?.query ?? command?.q ?? command;\n\n    return this._getSpanAttributes(\n      dbName,\n      dbCollection,\n      host,\n      port,\n      commandObj,\n      operation\n    );\n  }\n\n  private _getSpanAttributes(\n    dbName?: string,\n    dbCollection?: string,\n    host?: undefined | string,\n    port?: undefined | string,\n    commandObj?: any,\n    operation?: string | undefined\n  ): Attributes {\n    const attributes: Attributes = {};\n\n    if (this._dbSemconvStability & SemconvStability.OLD) {\n      attributes[ATTR_DB_SYSTEM] = DB_SYSTEM_VALUE_MONGODB;\n      attributes[ATTR_DB_NAME] = dbName;\n      attributes[ATTR_DB_MONGODB_COLLECTION] = dbCollection;\n      attributes[ATTR_DB_OPERATION] = operation;\n      attributes[ATTR_DB_CONNECTION_STRING] =\n        `mongodb://${host}:${port}/${dbName}`;\n    }\n    if (this._dbSemconvStability & SemconvStability.STABLE) {\n      attributes[ATTR_DB_SYSTEM_NAME] = DB_SYSTEM_NAME_VALUE_MONGODB;\n      attributes[ATTR_DB_NAMESPACE] = dbName;\n      attributes[ATTR_DB_OPERATION_NAME] = operation;\n      attributes[ATTR_DB_COLLECTION_NAME] = dbCollection;\n    }\n\n    if (host && port) {\n      if (this._netSemconvStability & SemconvStability.OLD) {\n        attributes[ATTR_NET_PEER_NAME] = host;\n      }\n      if (this._netSemconvStability & SemconvStability.STABLE) {\n        attributes[ATTR_SERVER_ADDRESS] = host;\n      }\n      const portNumber = parseInt(port, 10);\n      if (!isNaN(portNumber)) {\n        if (this._netSemconvStability & SemconvStability.OLD) {\n          attributes[ATTR_NET_PEER_PORT] = portNumber;\n        }\n        if (this._netSemconvStability & SemconvStability.STABLE) {\n          attributes[ATTR_SERVER_PORT] = portNumber;\n        }\n      }\n    }\n\n    if (commandObj) {\n      const { dbStatementSerializer: configDbStatementSerializer } =\n        this.getConfig();\n      const dbStatementSerializer =\n        typeof configDbStatementSerializer === 'function'\n          ? configDbStatementSerializer\n          : this._defaultDbStatementSerializer.bind(this);\n\n      safeExecuteInTheMiddle(\n        () => {\n          const query = dbStatementSerializer(commandObj);\n          if (this._dbSemconvStability & SemconvStability.OLD) {\n            attributes[ATTR_DB_STATEMENT] = query;\n          }\n          if (this._dbSemconvStability & SemconvStability.STABLE) {\n            attributes[ATTR_DB_QUERY_TEXT] = query;\n          }\n        },\n        err => {\n          if (err) {\n            this._diag.error('Error running dbStatementSerializer hook', err);\n          }\n        },\n        true\n      );\n    }\n\n    return attributes;\n  }\n\n  private _spanNameFromAttrs(attributes: Attributes): string {\n    let spanName;\n    if (this._dbSemconvStability & SemconvStability.STABLE) {\n      // https://opentelemetry.io/docs/specs/semconv/database/database-spans/#name\n      spanName =\n        [\n          attributes[ATTR_DB_OPERATION_NAME],\n          attributes[ATTR_DB_COLLECTION_NAME],\n        ]\n          .filter(attr => attr)\n          .join(' ') || DB_SYSTEM_NAME_VALUE_MONGODB;\n    } else {\n      spanName = `mongodb.${attributes[ATTR_DB_OPERATION] || 'command'}`;\n    }\n    return spanName;\n  }\n\n  private _getDefaultDbStatementReplacer(): Replacer {\n    const seen = new WeakSet();\n    return (_key, value) => {\n      // undefined, boolean, number, bigint, string, symbol, function || null\n      if (typeof value !== 'object' || !value) return '?';\n\n      // objects (including arrays)\n      if (seen.has(value)) return '[Circular]';\n      seen.add(value);\n      return value;\n    };\n  }\n\n  private _defaultDbStatementSerializer(commandObj: Record) {\n    const { enhancedDatabaseReporting } = this.getConfig();\n\n    if (enhancedDatabaseReporting) {\n      return JSON.stringify(commandObj);\n    }\n\n    return JSON.stringify(commandObj, this._getDefaultDbStatementReplacer());\n  }\n\n  /**\n   * Triggers the response hook in case it is defined.\n   * @param span The span to add the results to.\n   * @param result The command result\n   */\n  private _handleExecutionResult(span: Span, result: CommandResult) {\n    const { responseHook } = this.getConfig();\n    if (typeof responseHook === 'function') {\n      safeExecuteInTheMiddle(\n        () => {\n          responseHook(span, { data: result });\n        },\n        err => {\n          if (err) {\n            this._diag.error('Error running response hook', err);\n          }\n        },\n        true\n      );\n    }\n  }\n\n  /**\n   * Ends a created span.\n   * @param span The created span to end.\n   * @param resultHandler A callback function.\n   * @param connectionId: The connection ID of the Command response.\n   */\n  private _patchEnd(\n    span: Span | undefined,\n    resultHandler: Function,\n    connectionId?: number,\n    commandType?: string\n  ): Function {\n    // mongodb is using \"tick\" when calling a callback, this way the context\n    // in final callback (resultHandler) is lost\n    const activeContext = context.active();\n    const instrumentation = this;\n    let spanEnded = false;\n\n    return function patchedEnd(this: {}, ...args: unknown[]) {\n      if (!spanEnded) {\n        spanEnded = true;\n        const error = args[0];\n        if (span) {\n          if (error instanceof Error) {\n            span.setStatus({\n              code: SpanStatusCode.ERROR,\n              message: error.message,\n            });\n          } else {\n            const result = args[1] as CommandResult;\n            instrumentation._handleExecutionResult(span, result);\n          }\n          span.end();\n        }\n\n        if (commandType === 'endSessions') {\n          instrumentation._connCountAdd(-1, instrumentation._poolName, 'idle');\n        }\n      }\n\n      return context.with(activeContext, () => {\n        return resultHandler.apply(this, args);\n      });\n    };\n  }\n  private setPoolName(options: any) {\n    const host = options.hostAddress?.host;\n    const port = options.hostAddress?.port;\n    const database = options.dbName;\n    const poolName = `mongodb://${host}:${port}/${database}`;\n    this._poolName = poolName;\n  }\n\n  private _checkSkipInstrumentation(currentSpan: Span | undefined) {\n    const requireParentSpan = this.getConfig().requireParentSpan;\n    const hasNoParentSpan = currentSpan === undefined;\n    return requireParentSpan === true && hasNoParentSpan;\n  }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { InstrumentationConfig } from '@opentelemetry/instrumentation';\nimport { Span } from '@opentelemetry/api';\n\nexport interface MongoDBInstrumentationExecutionResponseHook {\n  (span: Span, responseInfo: MongoResponseHookInformation): void;\n}\n\n/**\n * Function that can be used to serialize db.statement tag\n * @param cmd - MongoDB command object\n *\n * @returns serialized string that will be used as the db.statement attribute.\n */\nexport type DbStatementSerializer = (cmd: Record) => string;\n\nexport interface MongoDBInstrumentationConfig extends InstrumentationConfig {\n  /**\n   * If true, additional information about query parameters and\n   * results will be attached (as `attributes`) to spans representing\n   * database operations.\n   */\n  enhancedDatabaseReporting?: boolean;\n\n  /**\n   * Hook that allows adding custom span attributes based on the data\n   * returned from MongoDB actions.\n   *\n   * @default undefined\n   */\n  responseHook?: MongoDBInstrumentationExecutionResponseHook;\n\n  /**\n   * Custom serializer function for the db.statement tag\n   */\n  dbStatementSerializer?: DbStatementSerializer;\n\n  /**\n   * Require parent to create mongodb span, default when unset is true\n   */\n  requireParentSpan?: boolean;\n}\n\nexport interface MongoResponseHookInformation {\n  data: CommandResult;\n}\n\n// https://github.com/mongodb/node-mongodb-native/blob/3.6/lib/core/connection/command_result.js\nexport type CommandResult = {\n  result?: unknown;\n  connection?: unknown;\n  message?: unknown;\n};\n\nexport enum MongodbCommandType {\n  CREATE_INDEXES = 'createIndexes',\n  FIND_AND_MODIFY = 'findAndModify',\n  IS_MASTER = 'isMaster',\n  COUNT = 'count',\n  UNKNOWN = 'unknown',\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { MongoDBInstrumentation } from './instrumentation';\nexport { MongodbCommandType } from './types';\nexport type {\n  CommandResult,\n  DbStatementSerializer,\n  MongoDBInstrumentationConfig,\n  MongoDBInstrumentationExecutionResponseHook,\n  MongoResponseHookInformation,\n} from './types';\n","import { MongoDBInstrumentation } from '@opentelemetry/instrumentation-mongodb';\nimport type { IntegrationFn } from '@sentry/core';\nimport { defineIntegration } from '@sentry/core';\nimport { addOriginToSpan, generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Mongo';\n\nexport const instrumentMongo = generateInstrumentOnce(\n  INTEGRATION_NAME,\n  () =>\n    new MongoDBInstrumentation({\n      dbStatementSerializer: _defaultDbStatementSerializer,\n      responseHook(span) {\n        addOriginToSpan(span, 'auto.db.otel.mongo');\n      },\n    }),\n);\n\n/**\n * Replaces values in document with '?', hiding PII and helping grouping.\n */\nexport function _defaultDbStatementSerializer(commandObj: Record): string {\n  const resultObj = _scrubStatement(commandObj);\n  return JSON.stringify(resultObj);\n}\n\nfunction _scrubStatement(value: unknown): unknown {\n  if (Array.isArray(value)) {\n    return value.map(element => _scrubStatement(element));\n  }\n\n  if (isCommandObj(value)) {\n    const initial: Record = {};\n    return Object.entries(value)\n      .map(([key, element]) => [key, _scrubStatement(element)])\n      .reduce((prev, current) => {\n        if (isCommandEntry(current)) {\n          prev[current[0]] = current[1];\n        }\n        return prev;\n      }, initial);\n  }\n\n  // A value like string or number, possible contains PII, scrub it\n  return '?';\n}\n\nfunction isCommandObj(value: Record | unknown): value is Record {\n  return typeof value === 'object' && value !== null && !isBuffer(value);\n}\n\nfunction isBuffer(value: unknown): boolean {\n  let isBuffer = false;\n  if (typeof Buffer !== 'undefined') {\n    isBuffer = Buffer.isBuffer(value);\n  }\n  return isBuffer;\n}\n\nfunction isCommandEntry(value: [string, unknown] | unknown): value is [string, unknown] {\n  return Array.isArray(value);\n}\n\nconst _mongoIntegration = (() => {\n  return {\n    name: INTEGRATION_NAME,\n    setupOnce() {\n      instrumentMongo();\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for the [mongodb](https://www.npmjs.com/package/mongodb) library.\n *\n * For more information, see the [`mongoIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/mongo/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n *  integrations: [Sentry.mongoIntegration()],\n * });\n * ```\n */\nexport const mongoIntegration = defineIntegration(_mongoIntegration);\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n\n/**\n * Deprecated, use `db.collection.name` instead.\n *\n * @example \"mytable\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.collection.name`.\n */\nexport const ATTR_DB_MONGODB_COLLECTION = 'db.mongodb.collection' as const;\n\n/**\n * Deprecated, use `db.namespace` instead.\n *\n * @example customers\n * @example main\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.namespace`.\n */\nexport const ATTR_DB_NAME = 'db.name' as const;\n\n/**\n * Deprecated, use `db.operation.name` instead.\n *\n * @example findAndModify\n * @example HMSET\n * @example SELECT\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.operation.name`.\n */\nexport const ATTR_DB_OPERATION = 'db.operation' as const;\n\n/**\n * The database statement being executed.\n *\n * @example SELECT * FROM wuser_table\n * @example SET mykey \"WuValue\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.query.text`.\n */\nexport const ATTR_DB_STATEMENT = 'db.statement' as const;\n\n/**\n * Deprecated, use `db.system.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.system.name`.\n */\nexport const ATTR_DB_SYSTEM = 'db.system' as const;\n\n/**\n * Deprecated, no replacement at this time.\n *\n * @example readonly_user\n * @example reporting_user\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Removed, no replacement at this time.\n */\nexport const ATTR_DB_USER = 'db.user' as const;\n\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexport const ATTR_NET_PEER_NAME = 'net.peer.name' as const;\n\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexport const ATTR_NET_PEER_PORT = 'net.peer.port' as const;\n\n/**\n * Enum value \"mongodb\" for attribute {@link ATTR_DB_SYSTEM_NAME}.\n *\n * [MongoDB](https://www.mongodb.com/)\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const DB_SYSTEM_NAME_VALUE_MONGODB = 'mongodb' as const;\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Attributes, SpanStatusCode, diag, Span } from '@opentelemetry/api';\nimport type { Collection } from 'mongoose';\nimport { MongooseResponseCustomAttributesFunction } from './types';\nimport {\n  safeExecuteInTheMiddle,\n  SemconvStability,\n} from '@opentelemetry/instrumentation';\nimport {\n  ATTR_DB_MONGODB_COLLECTION,\n  ATTR_DB_NAME,\n  ATTR_DB_USER,\n  ATTR_NET_PEER_NAME,\n  ATTR_NET_PEER_PORT,\n} from './semconv';\nimport {\n  ATTR_DB_COLLECTION_NAME,\n  ATTR_DB_NAMESPACE,\n  ATTR_SERVER_ADDRESS,\n  ATTR_SERVER_PORT,\n} from '@opentelemetry/semantic-conventions';\n\nexport function getAttributesFromCollection(\n  collection: Collection,\n  dbSemconvStability: SemconvStability,\n  netSemconvStability: SemconvStability\n): Attributes {\n  const attrs: Attributes = {};\n\n  if (dbSemconvStability & SemconvStability.OLD) {\n    attrs[ATTR_DB_MONGODB_COLLECTION] = collection.name;\n    attrs[ATTR_DB_NAME] = collection.conn.name;\n    attrs[ATTR_DB_USER] = collection.conn.user;\n  }\n  if (dbSemconvStability & SemconvStability.STABLE) {\n    attrs[ATTR_DB_COLLECTION_NAME] = collection.name;\n    attrs[ATTR_DB_NAMESPACE] = collection.conn.name;\n    // db.user has no stable replacement\n  }\n\n  if (netSemconvStability & SemconvStability.OLD) {\n    attrs[ATTR_NET_PEER_NAME] = collection.conn.host;\n    attrs[ATTR_NET_PEER_PORT] = collection.conn.port;\n  }\n  if (netSemconvStability & SemconvStability.STABLE) {\n    attrs[ATTR_SERVER_ADDRESS] = collection.conn.host;\n    attrs[ATTR_SERVER_PORT] = collection.conn.port;\n  }\n\n  return attrs;\n}\n\nfunction setErrorStatus(span: Span, error: any = {}) {\n  span.recordException(error);\n\n  span.setStatus({\n    code: SpanStatusCode.ERROR,\n    message: `${error.message} ${\n      error.code ? `\\nMongoose Error Code: ${error.code}` : ''\n    }`,\n  });\n}\n\nfunction applyResponseHook(\n  span: Span,\n  response: any,\n  responseHook?: MongooseResponseCustomAttributesFunction,\n  moduleVersion: string | undefined = undefined\n) {\n  if (!responseHook) {\n    return;\n  }\n\n  safeExecuteInTheMiddle(\n    () => responseHook(span, { moduleVersion, response }),\n    e => {\n      if (e) {\n        diag.error('mongoose instrumentation: responseHook error', e);\n      }\n    },\n    true\n  );\n}\n\nexport function handlePromiseResponse(\n  execResponse: any,\n  span: Span,\n  responseHook?: MongooseResponseCustomAttributesFunction,\n  moduleVersion: string | undefined = undefined\n): any {\n  if (!(execResponse instanceof Promise)) {\n    applyResponseHook(span, execResponse, responseHook, moduleVersion);\n    span.end();\n    return execResponse;\n  }\n\n  return execResponse\n    .then(response => {\n      applyResponseHook(span, response, responseHook, moduleVersion);\n      return response;\n    })\n    .catch(err => {\n      setErrorStatus(span, err);\n      throw err;\n    })\n    .finally(() => span.end());\n}\n\nexport function handleCallbackResponse(\n  callback: Function,\n  exec: Function,\n  originalThis: any,\n  span: Span,\n  args: IArguments,\n  responseHook?: MongooseResponseCustomAttributesFunction,\n  moduleVersion: string | undefined = undefined\n) {\n  let callbackArgumentIndex = 0;\n  if (args.length === 2) {\n    callbackArgumentIndex = 1;\n  } else if (args.length === 3) {\n    callbackArgumentIndex = 2;\n  }\n\n  args[callbackArgumentIndex] = (err: Error, response: any): any => {\n    if (err) {\n      setErrorStatus(span, err);\n    } else {\n      applyResponseHook(span, response, responseHook, moduleVersion);\n    }\n\n    span.end();\n    return callback!(err, response);\n  };\n\n  return exec.apply(originalThis, args);\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const PACKAGE_VERSION = '0.60.0';\nexport const PACKAGE_NAME = '@opentelemetry/instrumentation-mongoose';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { context, Span, trace, Attributes, SpanKind } from '@opentelemetry/api';\nimport { suppressTracing } from '@opentelemetry/core';\nimport type * as mongoose from 'mongoose';\nimport { MongooseInstrumentationConfig, SerializerPayload } from './types';\nimport {\n  handleCallbackResponse,\n  handlePromiseResponse,\n  getAttributesFromCollection,\n} from './utils';\nimport {\n  InstrumentationBase,\n  InstrumentationModuleDefinition,\n  InstrumentationNodeModuleDefinition,\n  SemconvStability,\n  semconvStabilityFromStr,\n} from '@opentelemetry/instrumentation';\n/** @knipignore */\nimport { PACKAGE_NAME, PACKAGE_VERSION } from './version';\nimport {\n  ATTR_DB_OPERATION,\n  ATTR_DB_STATEMENT,\n  ATTR_DB_SYSTEM,\n  DB_SYSTEM_NAME_VALUE_MONGODB,\n} from './semconv';\nimport {\n  ATTR_DB_OPERATION_NAME,\n  ATTR_DB_QUERY_TEXT,\n  ATTR_DB_SYSTEM_NAME,\n} from '@opentelemetry/semantic-conventions';\n\nconst contextCaptureFunctionsCommon = [\n  'deleteOne',\n  'deleteMany',\n  'find',\n  'findOne',\n  'estimatedDocumentCount',\n  'countDocuments',\n  'distinct',\n  'where',\n  '$where',\n  'findOneAndUpdate',\n  'findOneAndDelete',\n  'findOneAndReplace',\n];\n\nconst contextCaptureFunctions6 = [\n  'remove',\n  'count',\n  'findOneAndRemove',\n  ...contextCaptureFunctionsCommon,\n];\nconst contextCaptureFunctions7 = [\n  'count',\n  'findOneAndRemove',\n  ...contextCaptureFunctionsCommon,\n];\nconst contextCaptureFunctions8 = [...contextCaptureFunctionsCommon];\n\nfunction getContextCaptureFunctions(\n  moduleVersion: string | undefined\n): string[] {\n  /* istanbul ignore next */\n  if (!moduleVersion) {\n    return contextCaptureFunctionsCommon;\n  } else if (moduleVersion.startsWith('6.') || moduleVersion.startsWith('5.')) {\n    return contextCaptureFunctions6;\n  } else if (moduleVersion.startsWith('7.')) {\n    return contextCaptureFunctions7;\n  } else {\n    return contextCaptureFunctions8;\n  }\n}\n\nfunction instrumentRemove(moduleVersion: string | undefined): boolean {\n  return (\n    (moduleVersion &&\n      (moduleVersion.startsWith('5.') || moduleVersion.startsWith('6.'))) ||\n    false\n  );\n}\n\n/**\n * 8.21.0 changed Document.updateOne/deleteOne so that the Query is not fully built when Query.exec() is called.\n * @param moduleVersion\n */\nfunction needsDocumentMethodPatch(moduleVersion: string | undefined): boolean {\n  if (!moduleVersion || !moduleVersion.startsWith('8.')) {\n    return false;\n  }\n\n  const minor = parseInt(moduleVersion.split('.')[1], 10);\n  return minor >= 21;\n}\n\n// when mongoose functions are called, we store the original call context\n// and then set it as the parent for the spans created by Query/Aggregate exec()\n// calls. this bypass the unlinked spans issue on thenables await operations.\nexport const _STORED_PARENT_SPAN: unique symbol = Symbol('stored-parent-span');\n\n// Prevents double-instrumentation when doc.updateOne/deleteOne (Mongoose 8.21.0+)\n// creates a span and returns a Query that also calls exec()\nexport const _ALREADY_INSTRUMENTED: unique symbol = Symbol(\n  'already-instrumented'\n);\n\nexport class MongooseInstrumentation extends InstrumentationBase {\n  private _netSemconvStability!: SemconvStability;\n  private _dbSemconvStability!: SemconvStability;\n\n  constructor(config: MongooseInstrumentationConfig = {}) {\n    super(PACKAGE_NAME, PACKAGE_VERSION, config);\n    this._setSemconvStabilityFromEnv();\n  }\n\n  // Used for testing.\n  private _setSemconvStabilityFromEnv() {\n    this._netSemconvStability = semconvStabilityFromStr(\n      'http',\n      process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n    );\n    this._dbSemconvStability = semconvStabilityFromStr(\n      'database',\n      process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n    );\n  }\n\n  protected init(): InstrumentationModuleDefinition {\n    const module = new InstrumentationNodeModuleDefinition(\n      'mongoose',\n      ['>=5.9.7 <10'],\n      this.patch.bind(this),\n      this.unpatch.bind(this)\n    );\n    return module;\n  }\n\n  private patch(module: any, moduleVersion: string | undefined) {\n    const moduleExports: typeof mongoose =\n      module[Symbol.toStringTag] === 'Module'\n        ? module.default // ESM\n        : module; // CommonJS\n\n    this._wrap(\n      moduleExports.Model.prototype,\n      'save',\n      this.patchOnModelMethods('save', moduleVersion)\n    );\n    // mongoose applies this code on module require:\n    // Model.prototype.$save = Model.prototype.save;\n    // which captures the save function before it is patched.\n    // so we need to apply the same logic after instrumenting the save function.\n    moduleExports.Model.prototype.$save = moduleExports.Model.prototype.save;\n\n    if (instrumentRemove(moduleVersion)) {\n      this._wrap(\n        moduleExports.Model.prototype,\n        'remove',\n        this.patchOnModelMethods('remove', moduleVersion)\n      );\n    }\n\n    // Mongoose 8.21.0+ changed Document.updateOne()/deleteOne() so that the Query is not fully built when Query.exec() is called.\n    //\n    // See https://github.com/Automattic/mongoose/blob/7dbda12dca1bd7adb9e270d7de8ac5229606ce72/lib/document.js#L861.\n    // - `this` is a Query object\n    // - the update happens in a pre-hook that gets called when Query.exec() is already running.\n    // - when we instrument Query.exec(), we don't have access to the options yet as they get set during Query.exec() only.\n    //\n    // Unfortunately, after Query.exec() is finished, the options are left modified by the library, so just delaying\n    // attaching the attributes after the span is done is not an option. Therefore, we patch Model methods\n    // and grab the data directly where the user provides it.\n    //\n    // ref: https://github.com/Automattic/mongoose/pull/15908 (introduced this behavior)\n    if (needsDocumentMethodPatch(moduleVersion)) {\n      this._wrap(\n        moduleExports.Model.prototype,\n        'updateOne',\n        this._patchDocumentUpdateMethods('updateOne', moduleVersion)\n      );\n      this._wrap(\n        moduleExports.Model.prototype,\n        'deleteOne',\n        this._patchDocumentUpdateMethods('deleteOne', moduleVersion)\n      );\n    }\n\n    this._wrap(\n      moduleExports.Query.prototype,\n      'exec',\n      this.patchQueryExec(moduleVersion)\n    );\n    this._wrap(\n      moduleExports.Aggregate.prototype,\n      'exec',\n      this.patchAggregateExec(moduleVersion)\n    );\n\n    const contextCaptureFunctions = getContextCaptureFunctions(moduleVersion);\n\n    contextCaptureFunctions.forEach((funcName: string) => {\n      this._wrap(\n        moduleExports.Query.prototype,\n        funcName as any,\n        this.patchAndCaptureSpanContext(funcName)\n      );\n    });\n    this._wrap(moduleExports.Model, 'aggregate', this.patchModelAggregate());\n\n    this._wrap(\n      moduleExports.Model,\n      'insertMany',\n      this.patchModelStatic('insertMany', moduleVersion)\n    );\n    this._wrap(\n      moduleExports.Model,\n      'bulkWrite',\n      this.patchModelStatic('bulkWrite', moduleVersion)\n    );\n\n    return moduleExports;\n  }\n\n  private unpatch(module: any, moduleVersion: string | undefined): void {\n    const moduleExports: typeof mongoose =\n      module[Symbol.toStringTag] === 'Module'\n        ? module.default // ESM\n        : module; // CommonJS\n\n    const contextCaptureFunctions = getContextCaptureFunctions(moduleVersion);\n\n    this._unwrap(moduleExports.Model.prototype, 'save');\n    // revert the patch for $save which we applied by aliasing it to patched `save`\n    moduleExports.Model.prototype.$save = moduleExports.Model.prototype.save;\n\n    if (instrumentRemove(moduleVersion)) {\n      this._unwrap(moduleExports.Model.prototype, 'remove');\n    }\n\n    if (needsDocumentMethodPatch(moduleVersion)) {\n      this._unwrap(moduleExports.Model.prototype, 'updateOne');\n      this._unwrap(moduleExports.Model.prototype, 'deleteOne');\n    }\n\n    this._unwrap(moduleExports.Query.prototype, 'exec');\n    this._unwrap(moduleExports.Aggregate.prototype, 'exec');\n\n    contextCaptureFunctions.forEach((funcName: string) => {\n      this._unwrap(moduleExports.Query.prototype, funcName as any);\n    });\n    this._unwrap(moduleExports.Model, 'aggregate');\n\n    this._unwrap(moduleExports.Model, 'insertMany');\n    this._unwrap(moduleExports.Model, 'bulkWrite');\n  }\n\n  private patchAggregateExec(moduleVersion: string | undefined) {\n    const self = this;\n    return (originalAggregate: Function) => {\n      return function exec(this: any, callback?: Function) {\n        if (\n          self.getConfig().requireParentSpan &&\n          trace.getSpan(context.active()) === undefined\n        ) {\n          return originalAggregate.apply(this, arguments);\n        }\n\n        const parentSpan = this[_STORED_PARENT_SPAN];\n        const attributes: Attributes = {};\n        const { dbStatementSerializer } = self.getConfig();\n        if (dbStatementSerializer) {\n          const statement = dbStatementSerializer('aggregate', {\n            options: this.options,\n            aggregatePipeline: this._pipeline,\n          });\n          if (self._dbSemconvStability & SemconvStability.OLD) {\n            attributes[ATTR_DB_STATEMENT] = statement;\n          }\n          if (self._dbSemconvStability & SemconvStability.STABLE) {\n            attributes[ATTR_DB_QUERY_TEXT] = statement;\n          }\n        }\n\n        const span = self._startSpan(\n          this._model.collection,\n          this._model?.modelName,\n          'aggregate',\n          attributes,\n          parentSpan\n        );\n\n        return self._handleResponse(\n          span,\n          originalAggregate,\n          this,\n          arguments,\n          callback,\n          moduleVersion\n        );\n      };\n    };\n  }\n\n  private patchQueryExec(moduleVersion: string | undefined) {\n    const self = this;\n    return (originalExec: Function) => {\n      return function exec(this: any, callback?: Function) {\n        // Skip if already instrumented by document instance method patch\n        if (this[_ALREADY_INSTRUMENTED]) {\n          return originalExec.apply(this, arguments);\n        }\n\n        if (\n          self.getConfig().requireParentSpan &&\n          trace.getSpan(context.active()) === undefined\n        ) {\n          return originalExec.apply(this, arguments);\n        }\n\n        const parentSpan = this[_STORED_PARENT_SPAN];\n        const attributes: Attributes = {};\n        const { dbStatementSerializer } = self.getConfig();\n        if (dbStatementSerializer) {\n          const statement = dbStatementSerializer(this.op, {\n            // Use public API methods (getFilter/getOptions) for better compatibility\n            condition: this.getFilter?.() ?? this._conditions,\n            updates: this._update,\n            options: this.getOptions?.() ?? this.options,\n            fields: this._fields,\n          });\n          if (self._dbSemconvStability & SemconvStability.OLD) {\n            attributes[ATTR_DB_STATEMENT] = statement;\n          }\n          if (self._dbSemconvStability & SemconvStability.STABLE) {\n            attributes[ATTR_DB_QUERY_TEXT] = statement;\n          }\n        }\n        const span = self._startSpan(\n          this.mongooseCollection,\n          this.model.modelName,\n          this.op,\n          attributes,\n          parentSpan\n        );\n\n        return self._handleResponse(\n          span,\n          originalExec,\n          this,\n          arguments,\n          callback,\n          moduleVersion\n        );\n      };\n    };\n  }\n\n  private patchOnModelMethods(op: string, moduleVersion: string | undefined) {\n    const self = this;\n    return (originalOnModelFunction: Function) => {\n      return function method(this: any, options?: any, callback?: Function) {\n        if (\n          self.getConfig().requireParentSpan &&\n          trace.getSpan(context.active()) === undefined\n        ) {\n          return originalOnModelFunction.apply(this, arguments);\n        }\n\n        const serializePayload: SerializerPayload = { document: this };\n        if (options && !(options instanceof Function)) {\n          serializePayload.options = options;\n        }\n        const attributes: Attributes = {};\n        const { dbStatementSerializer } = self.getConfig();\n        if (dbStatementSerializer) {\n          const statement = dbStatementSerializer(op, serializePayload);\n          if (self._dbSemconvStability & SemconvStability.OLD) {\n            attributes[ATTR_DB_STATEMENT] = statement;\n          }\n          if (self._dbSemconvStability & SemconvStability.STABLE) {\n            attributes[ATTR_DB_QUERY_TEXT] = statement;\n          }\n        }\n        const span = self._startSpan(\n          this.constructor.collection,\n          this.constructor.modelName,\n          op,\n          attributes\n        );\n\n        if (options instanceof Function) {\n          callback = options;\n          options = undefined;\n        }\n\n        return self._handleResponse(\n          span,\n          originalOnModelFunction,\n          this,\n          arguments,\n          callback,\n          moduleVersion\n        );\n      };\n    };\n  }\n\n  // Patch document instance methods (doc.updateOne/deleteOne) for Mongoose 8.21.0+.\n  private _patchDocumentUpdateMethods(\n    op: string,\n    moduleVersion: string | undefined\n  ) {\n    const self = this;\n    return (originalMethod: Function) => {\n      return function method(\n        this: any,\n        update?: any,\n        options?: any,\n        callback?: Function\n      ) {\n        if (\n          self.getConfig().requireParentSpan &&\n          trace.getSpan(context.active()) === undefined\n        ) {\n          return originalMethod.apply(this, arguments);\n        }\n\n        // determine actual callback since different argument patterns are allowed\n        let actualCallback: Function | undefined = callback;\n        let actualUpdate = update;\n        let actualOptions = options;\n\n        if (typeof update === 'function') {\n          actualCallback = update;\n          actualUpdate = undefined;\n          actualOptions = undefined;\n        } else if (typeof options === 'function') {\n          actualCallback = options;\n          actualOptions = undefined;\n        }\n\n        const attributes: Attributes = {};\n        const dbStatementSerializer = self.getConfig().dbStatementSerializer;\n        if (dbStatementSerializer) {\n          const statement = dbStatementSerializer(op, {\n            // Document instance methods automatically use the document's _id as filter\n            condition: { _id: this._id },\n            updates: actualUpdate,\n            options: actualOptions,\n          });\n          if (self._dbSemconvStability & SemconvStability.OLD) {\n            attributes[ATTR_DB_STATEMENT] = statement;\n          }\n          if (self._dbSemconvStability & SemconvStability.STABLE) {\n            attributes[ATTR_DB_QUERY_TEXT] = statement;\n          }\n        }\n\n        const span = self._startSpan(\n          this.constructor.collection,\n          this.constructor.modelName,\n          op,\n          attributes\n        );\n\n        const result = self._handleResponse(\n          span,\n          originalMethod,\n          this,\n          arguments,\n          actualCallback,\n          moduleVersion\n        );\n\n        // Mark returned Query to prevent double-instrumentation when exec() is eventually called\n        if (result && typeof result === 'object') {\n          result[_ALREADY_INSTRUMENTED] = true;\n        }\n\n        return result;\n      };\n    };\n  }\n\n  private patchModelStatic(op: string, moduleVersion: string | undefined) {\n    const self = this;\n    return (original: Function) => {\n      return function patchedStatic(\n        this: any,\n        docsOrOps: any,\n        options?: any,\n        callback?: Function\n      ) {\n        if (\n          self.getConfig().requireParentSpan &&\n          trace.getSpan(context.active()) === undefined\n        ) {\n          return original.apply(this, arguments);\n        }\n        if (typeof options === 'function') {\n          callback = options;\n          options = undefined;\n        }\n\n        const serializePayload: SerializerPayload = {};\n        switch (op) {\n          case 'insertMany':\n            serializePayload.documents = docsOrOps;\n            break;\n          case 'bulkWrite':\n            serializePayload.operations = docsOrOps;\n            break;\n          default:\n            serializePayload.document = docsOrOps;\n            break;\n        }\n        if (options !== undefined) {\n          serializePayload.options = options;\n        }\n\n        const attributes: Attributes = {};\n        const { dbStatementSerializer } = self.getConfig();\n        if (dbStatementSerializer) {\n          const statement = dbStatementSerializer(op, serializePayload);\n          if (self._dbSemconvStability & SemconvStability.OLD) {\n            attributes[ATTR_DB_STATEMENT] = statement;\n          }\n          if (self._dbSemconvStability & SemconvStability.STABLE) {\n            attributes[ATTR_DB_QUERY_TEXT] = statement;\n          }\n        }\n\n        const span = self._startSpan(\n          this.collection,\n          this.modelName,\n          op,\n          attributes\n        );\n\n        return self._handleResponse(\n          span,\n          original,\n          this,\n          arguments,\n          callback,\n          moduleVersion\n        );\n      };\n    };\n  }\n\n  // we want to capture the otel span on the object which is calling exec.\n  // in the special case of aggregate, we need have no function to path\n  // on the Aggregate object to capture the context on, so we patch\n  // the aggregate of Model, and set the context on the Aggregate object\n  private patchModelAggregate() {\n    const self = this;\n    return (original: Function) => {\n      return function captureSpanContext(this: any) {\n        const currentSpan = trace.getSpan(context.active());\n        const aggregate = self._callOriginalFunction(() =>\n          original.apply(this, arguments)\n        );\n        if (aggregate) aggregate[_STORED_PARENT_SPAN] = currentSpan;\n        return aggregate;\n      };\n    };\n  }\n\n  private patchAndCaptureSpanContext(funcName: string) {\n    const self = this;\n    return (original: Function) => {\n      return function captureSpanContext(this: any) {\n        this[_STORED_PARENT_SPAN] = trace.getSpan(context.active());\n        return self._callOriginalFunction(() =>\n          original.apply(this, arguments)\n        );\n      };\n    };\n  }\n\n  private _startSpan(\n    collection: mongoose.Collection,\n    modelName: string,\n    operation: string,\n    attributes: Attributes,\n    parentSpan?: Span\n  ): Span {\n    const finalAttributes: Attributes = {\n      ...attributes,\n      ...getAttributesFromCollection(\n        collection,\n        this._dbSemconvStability,\n        this._netSemconvStability\n      ),\n    };\n\n    if (this._dbSemconvStability & SemconvStability.OLD) {\n      finalAttributes[ATTR_DB_OPERATION] = operation;\n      finalAttributes[ATTR_DB_SYSTEM] = 'mongoose'; // keep for backwards compatibility\n    }\n    if (this._dbSemconvStability & SemconvStability.STABLE) {\n      finalAttributes[ATTR_DB_OPERATION_NAME] = operation;\n      finalAttributes[ATTR_DB_SYSTEM_NAME] = DB_SYSTEM_NAME_VALUE_MONGODB; // actual db system name\n    }\n\n    const spanName =\n      this._dbSemconvStability & SemconvStability.STABLE\n        ? `${operation} ${collection.name}`\n        : `mongoose.${modelName}.${operation}`;\n\n    return this.tracer.startSpan(\n      spanName,\n      {\n        kind: SpanKind.CLIENT,\n        attributes: finalAttributes,\n      },\n      parentSpan ? trace.setSpan(context.active(), parentSpan) : undefined\n    );\n  }\n\n  private _handleResponse(\n    span: Span,\n    exec: Function,\n    originalThis: any,\n    args: IArguments,\n    callback?: Function,\n    moduleVersion: string | undefined = undefined\n  ) {\n    const self = this;\n    if (callback instanceof Function) {\n      return self._callOriginalFunction(() =>\n        handleCallbackResponse(\n          callback,\n          exec,\n          originalThis,\n          span,\n          args,\n          self.getConfig().responseHook,\n          moduleVersion\n        )\n      );\n    } else {\n      const response = self._callOriginalFunction(() =>\n        exec.apply(originalThis, args)\n      );\n      return handlePromiseResponse(\n        response,\n        span,\n        self.getConfig().responseHook,\n        moduleVersion\n      );\n    }\n  }\n\n  private _callOriginalFunction(originalFunction: (...args: any[]) => T): T {\n    if (this.getConfig().suppressInternalInstrumentation) {\n      return context.with(suppressTracing(context.active()), originalFunction);\n    } else {\n      return originalFunction();\n    }\n  }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport { MongooseInstrumentation } from './mongoose';\nexport type {\n  DbStatementSerializer,\n  MongooseInstrumentationConfig,\n  MongooseResponseCustomAttributesFunction,\n  ResponseInfo,\n  SerializerPayload,\n} from './types';\n","import { MongooseInstrumentation } from '@opentelemetry/instrumentation-mongoose';\nimport type { IntegrationFn } from '@sentry/core';\nimport { defineIntegration } from '@sentry/core';\nimport { addOriginToSpan, generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Mongoose';\n\nexport const instrumentMongoose = generateInstrumentOnce(\n  INTEGRATION_NAME,\n  () =>\n    new MongooseInstrumentation({\n      responseHook(span) {\n        addOriginToSpan(span, 'auto.db.otel.mongoose');\n      },\n    }),\n);\n\nconst _mongooseIntegration = (() => {\n  return {\n    name: INTEGRATION_NAME,\n    setupOnce() {\n      instrumentMongoose();\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for the [mongoose](https://www.npmjs.com/package/mongoose) library.\n *\n * For more information, see the [`mongooseIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/mongoose/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n *  integrations: [Sentry.mongooseIntegration()],\n * });\n * ```\n */\nexport const mongooseIntegration = defineIntegration(_mongooseIntegration);\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n\n/**\n * Deprecated, use `server.address`, `server.port` attributes instead.\n *\n * @example \"Server=(localdb)\\\\v11.0;Integrated Security=true;\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` and `server.port`.\n */\nexport const ATTR_DB_CONNECTION_STRING = 'db.connection_string' as const;\n\n/**\n * Deprecated, use `db.namespace` instead.\n *\n * @example customers\n * @example main\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.namespace`.\n */\nexport const ATTR_DB_NAME = 'db.name' as const;\n\n/**\n * The database statement being executed.\n *\n * @example SELECT * FROM wuser_table\n * @example SET mykey \"WuValue\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.query.text`.\n */\nexport const ATTR_DB_STATEMENT = 'db.statement' as const;\n\n/**\n * Deprecated, use `db.system.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.system.name`.\n */\nexport const ATTR_DB_SYSTEM = 'db.system' as const;\n\n/**\n * Deprecated, no replacement at this time.\n *\n * @example readonly_user\n * @example reporting_user\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Removed, no replacement at this time.\n */\nexport const ATTR_DB_USER = 'db.user' as const;\n\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexport const ATTR_NET_PEER_NAME = 'net.peer.name' as const;\n\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexport const ATTR_NET_PEER_PORT = 'net.peer.port' as const;\n\n/**\n * Enum value \"mysql\" for attribute {@link ATTR_DB_SYSTEM}.\n *\n * MySQL\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const DB_SYSTEM_VALUE_MYSQL = 'mysql' as const;\n\n/**\n * Deprecated, use `db.client.connection.count` instead.\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.client.connection.count`.\n */\nexport const METRIC_DB_CLIENT_CONNECTIONS_USAGE =\n  'db.client.connections.usage' as const;\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Mysql specific attributes not covered by semantic conventions\nexport enum AttributeNames {\n  MYSQL_VALUES = 'db.mysql.values',\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Pool, Query, QueryOptions } from 'mysql';\n\nexport function getConfig(config: any) {\n  const { host, port, database, user } =\n    (config && config.connectionConfig) || config || {};\n  return { host, port, database, user };\n}\n\nexport function getJDBCString(\n  host: string | undefined,\n  port: number | undefined,\n  database: string | undefined\n) {\n  let jdbcString = `jdbc:mysql://${host || 'localhost'}`;\n\n  if (typeof port === 'number') {\n    jdbcString += `:${port}`;\n  }\n\n  if (typeof database === 'string') {\n    jdbcString += `/${database}`;\n  }\n\n  return jdbcString;\n}\n\n/**\n * @returns the database query being executed.\n */\nexport function getDbQueryText(query: string | Query | QueryOptions): string {\n  if (typeof query === 'string') {\n    return query;\n  } else {\n    return query.sql;\n  }\n}\n\nexport function getDbValues(\n  query: string | Query | QueryOptions,\n  values?: any[]\n): string {\n  if (typeof query === 'string') {\n    return arrayStringifyHelper(values);\n  } else {\n    // According to https://github.com/mysqljs/mysql#performing-queries\n    // The values argument will override the values in the option object.\n    return arrayStringifyHelper(values || query.values);\n  }\n}\n\n/**\n * The span name SHOULD be set to a low cardinality value\n * representing the statement executed on the database.\n *\n * TODO: revisit span name based on https://github.com/open-telemetry/semantic-conventions/blob/v1.33.0/docs/database/database-spans.md#name\n *\n * @returns SQL statement without variable arguments or SQL verb\n */\nexport function getSpanName(query: string | Query | QueryOptions): string {\n  const rawQuery = typeof query === 'object' ? query.sql : query;\n  // Extract the SQL verb\n  const firstSpace = rawQuery?.indexOf(' ');\n  if (typeof firstSpace === 'number' && firstSpace !== -1) {\n    return rawQuery?.substring(0, firstSpace);\n  }\n  return rawQuery;\n}\n\nexport function arrayStringifyHelper(arr: Array | undefined): string {\n  if (arr) return `[${arr.toString()}]`;\n  return '';\n}\n\nexport function getPoolNameOld(pool: Pool): string {\n  const c = pool.config.connectionConfig;\n  let poolName = '';\n  poolName += c.host ? `host: '${c.host}', ` : '';\n  poolName += c.port ? `port: ${c.port}, ` : '';\n  poolName += c.database ? `database: '${c.database}', ` : '';\n  poolName += c.user ? `user: '${c.user}'` : '';\n  if (!c.user) {\n    poolName = poolName.substring(0, poolName.length - 2); //omit last comma\n  }\n  return poolName.trim();\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const PACKAGE_VERSION = '0.60.0';\nexport const PACKAGE_NAME = '@opentelemetry/instrumentation-mysql';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  context,\n  Context,\n  trace,\n  Span,\n  SpanKind,\n  SpanStatusCode,\n  type Attributes,\n} from '@opentelemetry/api';\nimport {\n  InstrumentationBase,\n  InstrumentationNodeModuleDefinition,\n  isWrapped,\n  SemconvStability,\n  semconvStabilityFromStr,\n} from '@opentelemetry/instrumentation';\nimport {\n  ATTR_DB_NAMESPACE,\n  ATTR_DB_QUERY_TEXT,\n  ATTR_DB_SYSTEM_NAME,\n  ATTR_SERVER_ADDRESS,\n  ATTR_SERVER_PORT,\n  DB_SYSTEM_NAME_VALUE_MYSQL,\n} from '@opentelemetry/semantic-conventions';\nimport {\n  ATTR_DB_CONNECTION_STRING,\n  ATTR_DB_NAME,\n  ATTR_DB_STATEMENT,\n  ATTR_DB_SYSTEM,\n  ATTR_DB_USER,\n  ATTR_NET_PEER_NAME,\n  ATTR_NET_PEER_PORT,\n  DB_SYSTEM_VALUE_MYSQL,\n  METRIC_DB_CLIENT_CONNECTIONS_USAGE,\n} from './semconv';\nimport type * as mysqlTypes from 'mysql';\nimport { AttributeNames } from './AttributeNames';\nimport { MySQLInstrumentationConfig } from './types';\nimport {\n  getConfig,\n  getDbQueryText,\n  getDbValues,\n  getJDBCString,\n  getSpanName,\n  getPoolNameOld,\n} from './utils';\n/** @knipignore */\nimport { PACKAGE_NAME, PACKAGE_VERSION } from './version';\nimport { UpDownCounter } from '@opentelemetry/api';\n\ntype getConnectionCallbackType = (\n  err: mysqlTypes.MysqlError,\n  connection: mysqlTypes.PoolConnection\n) => void;\n\nexport class MySQLInstrumentation extends InstrumentationBase {\n  private _netSemconvStability!: SemconvStability;\n  private _dbSemconvStability!: SemconvStability;\n  declare private _connectionsUsageOld: UpDownCounter;\n\n  constructor(config: MySQLInstrumentationConfig = {}) {\n    super(PACKAGE_NAME, PACKAGE_VERSION, config);\n    this._setSemconvStabilityFromEnv();\n  }\n\n  // Used for testing.\n  private _setSemconvStabilityFromEnv() {\n    this._netSemconvStability = semconvStabilityFromStr(\n      'http',\n      process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n    );\n    this._dbSemconvStability = semconvStabilityFromStr(\n      'database',\n      process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n    );\n  }\n\n  protected override _updateMetricInstruments() {\n    this._connectionsUsageOld = this.meter.createUpDownCounter(\n      METRIC_DB_CLIENT_CONNECTIONS_USAGE,\n      {\n        description:\n          'The number of connections that are currently in state described by the state attribute.',\n        unit: '{connection}',\n      }\n    );\n  }\n\n  /**\n   * Convenience function for updating the `db.client.connections.usage` metric.\n   * The name \"count\" comes from the eventually replacement for this metric per\n   * https://opentelemetry.io/docs/specs/semconv/non-normative/db-migration/#database-client-connection-count\n   */\n  private _connCountAdd(n: number, poolNameOld: string, state: string) {\n    this._connectionsUsageOld?.add(n, { state, name: poolNameOld });\n  }\n\n  protected init() {\n    return [\n      new InstrumentationNodeModuleDefinition(\n        'mysql',\n        ['>=2.0.0 <3'],\n        (moduleExports: typeof mysqlTypes) => {\n          if (isWrapped(moduleExports.createConnection)) {\n            this._unwrap(moduleExports, 'createConnection');\n          }\n          this._wrap(\n            moduleExports,\n            'createConnection',\n            this._patchCreateConnection() as any\n          );\n\n          if (isWrapped(moduleExports.createPool)) {\n            this._unwrap(moduleExports, 'createPool');\n          }\n          this._wrap(\n            moduleExports,\n            'createPool',\n            this._patchCreatePool() as any\n          );\n\n          if (isWrapped(moduleExports.createPoolCluster)) {\n            this._unwrap(moduleExports, 'createPoolCluster');\n          }\n          this._wrap(\n            moduleExports,\n            'createPoolCluster',\n            this._patchCreatePoolCluster() as any\n          );\n\n          return moduleExports;\n        },\n        (moduleExports: typeof mysqlTypes) => {\n          if (moduleExports === undefined) return;\n          this._unwrap(moduleExports, 'createConnection');\n          this._unwrap(moduleExports, 'createPool');\n          this._unwrap(moduleExports, 'createPoolCluster');\n        }\n      ),\n    ];\n  }\n\n  // global export function\n  private _patchCreateConnection() {\n    return (originalCreateConnection: Function) => {\n      const thisPlugin = this;\n\n      return function createConnection(\n        _connectionUri: string | mysqlTypes.ConnectionConfig\n      ) {\n        const originalResult = originalCreateConnection(...arguments);\n\n        // This is unwrapped on next call after unpatch\n        thisPlugin._wrap(\n          originalResult,\n          'query',\n          thisPlugin._patchQuery(originalResult) as any\n        );\n\n        return originalResult;\n      };\n    };\n  }\n\n  // global export function\n  private _patchCreatePool() {\n    return (originalCreatePool: Function) => {\n      const thisPlugin = this;\n      return function createPool(_config: string | mysqlTypes.PoolConfig) {\n        const pool = originalCreatePool(...arguments);\n\n        thisPlugin._wrap(pool, 'query', thisPlugin._patchQuery(pool));\n        thisPlugin._wrap(\n          pool,\n          'getConnection',\n          thisPlugin._patchGetConnection(pool)\n        );\n        thisPlugin._wrap(pool, 'end', thisPlugin._patchPoolEnd(pool));\n        thisPlugin._setPoolCallbacks(pool, '');\n\n        return pool;\n      };\n    };\n  }\n\n  private _patchPoolEnd(pool: any) {\n    return (originalPoolEnd: Function) => {\n      const thisPlugin = this;\n      return function end(callback?: unknown) {\n        const nAll = (pool as any)._allConnections.length;\n        const nFree = (pool as any)._freeConnections.length;\n        const nUsed = nAll - nFree;\n        const poolNameOld = getPoolNameOld(pool);\n        thisPlugin._connCountAdd(-nUsed, poolNameOld, 'used');\n        thisPlugin._connCountAdd(-nFree, poolNameOld, 'idle');\n        originalPoolEnd.apply(pool, arguments);\n      };\n    };\n  }\n\n  // global export function\n  private _patchCreatePoolCluster() {\n    return (originalCreatePoolCluster: Function) => {\n      const thisPlugin = this;\n      return function createPool(_config: string | mysqlTypes.PoolConfig) {\n        const cluster = originalCreatePoolCluster(...arguments);\n\n        // This is unwrapped on next call after unpatch\n        thisPlugin._wrap(\n          cluster,\n          'getConnection',\n          thisPlugin._patchGetConnection(cluster)\n        );\n        thisPlugin._wrap(cluster, 'add', thisPlugin._patchAdd(cluster));\n\n        return cluster;\n      };\n    };\n  }\n  private _patchAdd(cluster: mysqlTypes.PoolCluster) {\n    return (originalAdd: Function) => {\n      const thisPlugin = this;\n      return function add(id: string, config: unknown) {\n        // Unwrap if unpatch has been called\n        if (!thisPlugin['_enabled']) {\n          thisPlugin._unwrap(cluster, 'add');\n          return originalAdd.apply(cluster, arguments);\n        }\n        originalAdd.apply(cluster, arguments);\n        const nodes = cluster['_nodes' as keyof mysqlTypes.PoolCluster] as any;\n        if (nodes) {\n          const nodeId =\n            typeof id === 'object'\n              ? 'CLUSTER::' + (cluster as any)._lastId\n              : String(id);\n\n          const pool = nodes[nodeId].pool;\n          thisPlugin._setPoolCallbacks(pool, id);\n        }\n      };\n    };\n  }\n\n  // method on cluster or pool\n  private _patchGetConnection(pool: mysqlTypes.Pool | mysqlTypes.PoolCluster) {\n    return (originalGetConnection: Function) => {\n      const thisPlugin = this;\n\n      return function getConnection(\n        arg1?: unknown,\n        arg2?: unknown,\n        arg3?: unknown\n      ) {\n        // Unwrap if unpatch has been called\n        if (!thisPlugin['_enabled']) {\n          thisPlugin._unwrap(pool, 'getConnection');\n          return originalGetConnection.apply(pool, arguments);\n        }\n\n        if (arguments.length === 1 && typeof arg1 === 'function') {\n          const patchFn = thisPlugin._getConnectionCallbackPatchFn(\n            arg1 as getConnectionCallbackType\n          );\n          return originalGetConnection.call(pool, patchFn);\n        }\n        if (arguments.length === 2 && typeof arg2 === 'function') {\n          const patchFn = thisPlugin._getConnectionCallbackPatchFn(\n            arg2 as getConnectionCallbackType\n          );\n          return originalGetConnection.call(pool, arg1, patchFn);\n        }\n        if (arguments.length === 3 && typeof arg3 === 'function') {\n          const patchFn = thisPlugin._getConnectionCallbackPatchFn(\n            arg3 as getConnectionCallbackType\n          );\n          return originalGetConnection.call(pool, arg1, arg2, patchFn);\n        }\n\n        return originalGetConnection.apply(pool, arguments);\n      };\n    };\n  }\n\n  private _getConnectionCallbackPatchFn(cb: getConnectionCallbackType) {\n    const thisPlugin = this;\n    const activeContext = context.active();\n    return function (\n      this: any,\n      err: mysqlTypes.MysqlError,\n      connection: mysqlTypes.PoolConnection\n    ) {\n      if (connection) {\n        // this is the callback passed into a query\n        // no need to unwrap\n        if (!isWrapped(connection.query)) {\n          thisPlugin._wrap(\n            connection,\n            'query',\n            thisPlugin._patchQuery(connection)\n          );\n        }\n      }\n      if (typeof cb === 'function') {\n        context.with(activeContext, cb, this, err, connection);\n      }\n    };\n  }\n\n  private _patchQuery(connection: mysqlTypes.Connection | mysqlTypes.Pool) {\n    return (originalQuery: Function): mysqlTypes.QueryFunction => {\n      const thisPlugin = this;\n\n      return function query(\n        query: string | mysqlTypes.Query | mysqlTypes.QueryOptions,\n        _valuesOrCallback?: unknown[] | mysqlTypes.queryCallback,\n        _callback?: mysqlTypes.queryCallback\n      ) {\n        if (!thisPlugin['_enabled']) {\n          thisPlugin._unwrap(connection, 'query');\n          return originalQuery.apply(connection, arguments);\n        }\n\n        const attributes: Attributes = {};\n        const { host, port, database, user } = getConfig(connection.config);\n        const portNumber = parseInt(port, 10);\n        const dbQueryText = getDbQueryText(query);\n        if (thisPlugin._dbSemconvStability & SemconvStability.OLD) {\n          attributes[ATTR_DB_SYSTEM] = DB_SYSTEM_VALUE_MYSQL;\n          attributes[ATTR_DB_CONNECTION_STRING] = getJDBCString(\n            host,\n            port,\n            database\n          );\n          attributes[ATTR_DB_NAME] = database;\n          attributes[ATTR_DB_USER] = user;\n          attributes[ATTR_DB_STATEMENT] = dbQueryText;\n        }\n        if (thisPlugin._dbSemconvStability & SemconvStability.STABLE) {\n          attributes[ATTR_DB_SYSTEM_NAME] = DB_SYSTEM_NAME_VALUE_MYSQL;\n          attributes[ATTR_DB_NAMESPACE] = database;\n          attributes[ATTR_DB_QUERY_TEXT] = dbQueryText;\n        }\n        if (thisPlugin._netSemconvStability & SemconvStability.OLD) {\n          attributes[ATTR_NET_PEER_NAME] = host;\n          if (!isNaN(portNumber)) {\n            attributes[ATTR_NET_PEER_PORT] = portNumber;\n          }\n        }\n        if (thisPlugin._netSemconvStability & SemconvStability.STABLE) {\n          attributes[ATTR_SERVER_ADDRESS] = host;\n          if (!isNaN(portNumber)) {\n            attributes[ATTR_SERVER_PORT] = portNumber;\n          }\n        }\n        const span = thisPlugin.tracer.startSpan(getSpanName(query), {\n          kind: SpanKind.CLIENT,\n          attributes,\n        });\n\n        if (thisPlugin.getConfig().enhancedDatabaseReporting) {\n          let values;\n\n          if (Array.isArray(_valuesOrCallback)) {\n            values = _valuesOrCallback;\n          } else if (arguments[2]) {\n            values = [_valuesOrCallback];\n          }\n\n          span.setAttribute(\n            AttributeNames.MYSQL_VALUES,\n            getDbValues(query, values)\n          );\n        }\n\n        const cbIndex = Array.from(arguments).findIndex(\n          arg => typeof arg === 'function'\n        );\n\n        const parentContext = context.active();\n\n        if (cbIndex === -1) {\n          const streamableQuery: mysqlTypes.Query = context.with(\n            trace.setSpan(context.active(), span),\n            () => {\n              return originalQuery.apply(connection, arguments);\n            }\n          );\n          context.bind(parentContext, streamableQuery);\n\n          return streamableQuery\n            .on('error', err =>\n              span.setStatus({\n                code: SpanStatusCode.ERROR,\n                message: err.message,\n              })\n            )\n            .on('end', () => {\n              span.end();\n            });\n        } else {\n          thisPlugin._wrap(\n            arguments,\n            cbIndex,\n            thisPlugin._patchCallbackQuery(span, parentContext)\n          );\n\n          return context.with(trace.setSpan(context.active(), span), () => {\n            return originalQuery.apply(connection, arguments);\n          });\n        }\n      };\n    };\n  }\n\n  private _patchCallbackQuery(span: Span, parentContext: Context) {\n    return (originalCallback: Function) => {\n      return function (\n        err: mysqlTypes.MysqlError | null,\n        results?: any,\n        fields?: mysqlTypes.FieldInfo[]\n      ) {\n        if (err) {\n          span.setStatus({\n            code: SpanStatusCode.ERROR,\n            message: err.message,\n          });\n        }\n        span.end();\n        return context.with(parentContext, () =>\n          originalCallback(...arguments)\n        );\n      };\n    };\n  }\n\n  private _setPoolCallbacks(pool: mysqlTypes.Pool, id: string) {\n    const poolNameOld = id || getPoolNameOld(pool);\n\n    pool.on('connection', _connection => {\n      this._connCountAdd(1, poolNameOld, 'idle');\n    });\n\n    pool.on('acquire', _connection => {\n      this._connCountAdd(-1, poolNameOld, 'idle');\n      this._connCountAdd(1, poolNameOld, 'used');\n    });\n\n    pool.on('release', _connection => {\n      this._connCountAdd(1, poolNameOld, 'idle');\n      this._connCountAdd(-1, poolNameOld, 'used');\n    });\n  }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { MySQLInstrumentation } from './instrumentation';\nexport type { MySQLInstrumentationConfig } from './types';\n","import { MySQLInstrumentation } from '@opentelemetry/instrumentation-mysql';\nimport type { IntegrationFn } from '@sentry/core';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Mysql';\n\nexport const instrumentMysql = generateInstrumentOnce(INTEGRATION_NAME, () => new MySQLInstrumentation({}));\n\nconst _mysqlIntegration = (() => {\n  return {\n    name: INTEGRATION_NAME,\n    setupOnce() {\n      instrumentMysql();\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for the [mysql](https://www.npmjs.com/package/mysql) library.\n *\n * For more information, see the [`mysqlIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/mysql/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n *  integrations: [Sentry.mysqlIntegration()],\n * });\n * ```\n */\nexport const mysqlIntegration = defineIntegration(_mysqlIntegration);\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n\n/**\n * Deprecated, use `server.address`, `server.port` attributes instead.\n *\n * @example \"Server=(localdb)\\\\v11.0;Integrated Security=true;\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` and `server.port`.\n */\nexport const ATTR_DB_CONNECTION_STRING = 'db.connection_string' as const;\n\n/**\n * Deprecated, use `db.namespace` instead.\n *\n * @example customers\n * @example main\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.namespace`.\n */\nexport const ATTR_DB_NAME = 'db.name' as const;\n\n/**\n * The database statement being executed.\n *\n * @example SELECT * FROM wuser_table\n * @example SET mykey \"WuValue\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.query.text`.\n */\nexport const ATTR_DB_STATEMENT = 'db.statement' as const;\n\n/**\n * Deprecated, use `db.system.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.system.name`.\n */\nexport const ATTR_DB_SYSTEM = 'db.system' as const;\n\n/**\n * Deprecated, no replacement at this time.\n *\n * @example readonly_user\n * @example reporting_user\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Removed, no replacement at this time.\n */\nexport const ATTR_DB_USER = 'db.user' as const;\n\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexport const ATTR_NET_PEER_NAME = 'net.peer.name' as const;\n\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexport const ATTR_NET_PEER_PORT = 'net.peer.port' as const;\n\n/**\n * Enum value \"mysql\" for attribute {@link ATTR_DB_SYSTEM}.\n *\n * MySQL\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const DB_SYSTEM_VALUE_MYSQL = 'mysql' as const;\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  trace,\n  Span,\n  ROOT_CONTEXT,\n  defaultTextMapSetter,\n} from '@opentelemetry/api';\nimport { W3CTraceContextPropagator } from '@opentelemetry/core';\n\n// NOTE: This function currently is returning false-positives\n// in cases where comment characters appear in string literals\n// (\"SELECT '-- not a comment';\" would return true, although has no comment)\nfunction hasValidSqlComment(query: string): boolean {\n  const indexOpeningDashDashComment = query.indexOf('--');\n  if (indexOpeningDashDashComment >= 0) {\n    return true;\n  }\n\n  const indexOpeningSlashComment = query.indexOf('/*');\n  if (indexOpeningSlashComment < 0) {\n    return false;\n  }\n\n  const indexClosingSlashComment = query.indexOf('*/');\n  return indexOpeningDashDashComment < indexClosingSlashComment;\n}\n\n// sqlcommenter specification (https://google.github.io/sqlcommenter/spec/#value-serialization)\n// expects us to URL encode based on the RFC 3986 spec (https://en.wikipedia.org/wiki/Percent-encoding),\n// but encodeURIComponent does not handle some characters correctly (! ' ( ) *),\n// which means we need special handling for this\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent\nfunction fixedEncodeURIComponent(str: string) {\n  return encodeURIComponent(str).replace(\n    /[!'()*]/g,\n    c => `%${c.charCodeAt(0).toString(16).toUpperCase()}`\n  );\n}\n\nexport function addSqlCommenterComment(span: Span, query: string): string {\n  if (typeof query !== 'string' || query.length === 0) {\n    return query;\n  }\n\n  // As per sqlcommenter spec we shall not add a comment if there already is a comment\n  // in the query\n  if (hasValidSqlComment(query)) {\n    return query;\n  }\n\n  const propagator = new W3CTraceContextPropagator();\n  const headers: { [key: string]: string } = {};\n  propagator.inject(\n    trace.setSpan(ROOT_CONTEXT, span),\n    headers,\n    defaultTextMapSetter\n  );\n\n  // sqlcommenter spec requires keys in the comment to be sorted lexicographically\n  const sortedKeys = Object.keys(headers).sort();\n\n  if (sortedKeys.length === 0) {\n    return query;\n  }\n\n  const commentString = sortedKeys\n    .map(key => {\n      const encodedValue = fixedEncodeURIComponent(headers[key]);\n      return `${key}='${encodedValue}'`;\n    })\n    .join(',');\n\n  return `${query} /*${commentString}*/`;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Attributes } from '@opentelemetry/api';\nimport {\n  ATTR_DB_CONNECTION_STRING,\n  ATTR_DB_NAME,\n  ATTR_DB_USER,\n  ATTR_NET_PEER_NAME,\n  ATTR_NET_PEER_PORT,\n} from './semconv';\nimport type * as mysqlTypes from 'mysql2';\nimport { MySQL2InstrumentationQueryMaskingHook } from './types';\nimport { SemconvStability } from '@opentelemetry/instrumentation';\nimport {\n  ATTR_DB_NAMESPACE,\n  ATTR_SERVER_ADDRESS,\n  ATTR_SERVER_PORT,\n} from '@opentelemetry/semantic-conventions';\n\ntype formatType = typeof mysqlTypes.format;\n\n/*\n  Following types declare an expectation on mysql2 types and define a subset we\n  use in the instrumentation of the types actually defined in mysql2 package\n\n  We need to import them here so that the installing party of the instrumentation\n  doesn't have to absolutely install the mysql2 package as well - specially\n  important for auto-loaders and meta-packages.\n*/\ninterface QueryOptions {\n  sql: string;\n  values?: any | any[] | { [param: string]: any };\n}\n\ninterface Query {\n  sql: string;\n}\n\ninterface Config {\n  host?: string;\n  port?: number;\n  database?: string;\n  user?: string;\n  connectionConfig?: Config;\n}\n\n/**\n * Get an Attributes map from a mysql connection config object\n *\n * @param config ConnectionConfig\n */\nexport function getConnectionAttributes(\n  config: Config,\n  dbSemconvStability: SemconvStability,\n  netSemconvStability: SemconvStability\n): Attributes {\n  const { host, port, database, user } = getConfig(config);\n\n  const attrs: Attributes = {};\n  if (dbSemconvStability & SemconvStability.OLD) {\n    attrs[ATTR_DB_CONNECTION_STRING] = getJDBCString(host, port, database);\n    attrs[ATTR_DB_NAME] = database;\n    attrs[ATTR_DB_USER] = user;\n  }\n  if (dbSemconvStability & SemconvStability.STABLE) {\n    attrs[ATTR_DB_NAMESPACE] = database;\n  }\n\n  const portNumber = parseInt(port, 10);\n  if (netSemconvStability & SemconvStability.OLD) {\n    attrs[ATTR_NET_PEER_NAME] = host;\n    if (!isNaN(portNumber)) {\n      attrs[ATTR_NET_PEER_PORT] = portNumber;\n    }\n  }\n  if (netSemconvStability & SemconvStability.STABLE) {\n    attrs[ATTR_SERVER_ADDRESS] = host;\n    if (!isNaN(portNumber)) {\n      attrs[ATTR_SERVER_PORT] = portNumber;\n    }\n  }\n\n  return attrs;\n}\n\nfunction getConfig(config: any) {\n  const { host, port, database, user } =\n    (config && config.connectionConfig) || config || {};\n  return { host, port, database, user };\n}\n\nfunction getJDBCString(\n  host: string | undefined,\n  port: number | undefined,\n  database: string | undefined\n) {\n  let jdbcString = `jdbc:mysql://${host || 'localhost'}`;\n\n  if (typeof port === 'number') {\n    jdbcString += `:${port}`;\n  }\n\n  if (typeof database === 'string') {\n    jdbcString += `/${database}`;\n  }\n\n  return jdbcString;\n}\n\n/**\n * Conjures up the value for the db.query.text attribute by formatting a SQL query.\n */\nexport function getQueryText(\n  query: string | Query | QueryOptions,\n  format?: formatType,\n  values?: any[],\n  maskStatement = false,\n  maskStatementHook: MySQL2InstrumentationQueryMaskingHook = defaultMaskingHook\n): string {\n  const [querySql, queryValues] =\n    typeof query === 'string'\n      ? [query, values]\n      : [query.sql, hasValues(query) ? values || query.values : values];\n  try {\n    if (maskStatement) {\n      return maskStatementHook(querySql);\n    } else if (format && queryValues) {\n      return format(querySql, queryValues);\n    } else {\n      return querySql;\n    }\n  } catch (e) {\n    return 'Could not determine the query due to an error in masking or formatting';\n  }\n}\n\n/**\n * Replaces numeric values and quoted strings in the query with placeholders ('?').\n *\n * - `\\b\\d+\\b`: Matches whole numbers (integers) and replaces them with '?'.\n * - `([\"'])(?:(?=(\\\\?))\\2.)*?\\1`:\n *   - Matches quoted strings (both single `'` and double `\"` quotes).\n *   - Uses a lookahead `(?=(\\\\?))` to detect an optional backslash without consuming it immediately.\n *   - Captures the optional backslash `\\2` and ensures escaped quotes inside the string are handled correctly.\n *   - Ensures that only complete quoted strings are replaced with '?'.\n *\n * This prevents accidental replacement of escaped quotes within strings and ensures that the\n * query structure remains intact while masking sensitive data.\n */\nfunction defaultMaskingHook(query: string): string {\n  return query\n    .replace(/\\b\\d+\\b/g, '?')\n    .replace(/([\"'])(?:(?=(\\\\?))\\2.)*?\\1/g, '?');\n}\n\nfunction hasValues(obj: Query | QueryOptions): obj is QueryOptions {\n  return 'values' in obj;\n}\n\n/**\n * The span name SHOULD be set to a low cardinality value\n * representing the statement executed on the database.\n *\n * @returns SQL statement without variable arguments or SQL verb\n */\nexport function getSpanName(query: string | Query | QueryOptions): string {\n  const rawQuery = typeof query === 'object' ? query.sql : query;\n  // Extract the SQL verb\n  const firstSpace = rawQuery?.indexOf(' ');\n  if (typeof firstSpace === 'number' && firstSpace !== -1) {\n    return rawQuery?.substring(0, firstSpace);\n  }\n  return rawQuery;\n}\n\nexport const once = (fn: Function) => {\n  let called = false;\n  return (...args: unknown[]) => {\n    if (called) return;\n    called = true;\n    return fn(...args);\n  };\n};\n\nexport function getConnectionPrototypeToInstrument(connection: any) {\n  const connectionPrototype = connection.prototype;\n  const basePrototype = Object.getPrototypeOf(connectionPrototype);\n\n  // mysql2@3.11.5 included a refactoring, where most code was moved out of the `Connection` class and into a shared base\n  // so we need to instrument that instead, see https://github.com/sidorares/node-mysql2/pull/3081\n  // This checks if the functions we're instrumenting are there on the base - we cannot use the presence of a base\n  // prototype since EventEmitter is the base for mysql2@<=3.11.4\n  if (\n    typeof basePrototype?.query === 'function' &&\n    typeof basePrototype?.execute === 'function'\n  ) {\n    return basePrototype;\n  }\n\n  // otherwise instrument the connection directly.\n  return connectionPrototype;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const PACKAGE_VERSION = '0.60.0';\nexport const PACKAGE_NAME = '@opentelemetry/instrumentation-mysql2';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as api from '@opentelemetry/api';\nimport {\n  InstrumentationBase,\n  InstrumentationNodeModuleDefinition,\n  InstrumentationNodeModuleFile,\n  isWrapped,\n  safeExecuteInTheMiddle,\n  SemconvStability,\n  semconvStabilityFromStr,\n} from '@opentelemetry/instrumentation';\nimport {\n  DB_SYSTEM_VALUE_MYSQL,\n  ATTR_DB_STATEMENT,\n  ATTR_DB_SYSTEM,\n} from './semconv';\nimport { addSqlCommenterComment } from '@opentelemetry/sql-common';\nimport type * as mysqlTypes from 'mysql2';\nimport { MySQL2InstrumentationConfig } from './types';\nimport {\n  getConnectionAttributes,\n  getConnectionPrototypeToInstrument,\n  getQueryText,\n  getSpanName,\n  once,\n} from './utils';\n/** @knipignore */\nimport { PACKAGE_NAME, PACKAGE_VERSION } from './version';\nimport {\n  ATTR_DB_QUERY_TEXT,\n  ATTR_DB_SYSTEM_NAME,\n  DB_SYSTEM_NAME_VALUE_MYSQL,\n} from '@opentelemetry/semantic-conventions';\n\ntype formatType = typeof mysqlTypes.format;\n\nconst supportedVersions = ['>=1.4.2 <4'];\n\nexport class MySQL2Instrumentation extends InstrumentationBase {\n  private _netSemconvStability!: SemconvStability;\n  private _dbSemconvStability!: SemconvStability;\n\n  constructor(config: MySQL2InstrumentationConfig = {}) {\n    super(PACKAGE_NAME, PACKAGE_VERSION, config);\n    this._setSemconvStabilityFromEnv();\n  }\n\n  // Used for testing.\n  private _setSemconvStabilityFromEnv() {\n    this._netSemconvStability = semconvStabilityFromStr(\n      'http',\n      process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n    );\n    this._dbSemconvStability = semconvStabilityFromStr(\n      'database',\n      process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n    );\n  }\n\n  protected init() {\n    let format: formatType | undefined;\n    function setFormatFunction(moduleExports: any) {\n      if (!format && moduleExports.format) {\n        format = moduleExports.format;\n      }\n    }\n    const patch = (ConnectionPrototype: mysqlTypes.Connection) => {\n      if (isWrapped(ConnectionPrototype.query)) {\n        this._unwrap(ConnectionPrototype, 'query');\n      }\n      this._wrap(\n        ConnectionPrototype,\n        'query',\n        this._patchQuery(format, false) as any\n      );\n      if (isWrapped(ConnectionPrototype.execute)) {\n        this._unwrap(ConnectionPrototype, 'execute');\n      }\n      this._wrap(\n        ConnectionPrototype,\n        'execute',\n        this._patchQuery(format, true) as any\n      );\n    };\n    const unpatch = (ConnectionPrototype: mysqlTypes.Connection) => {\n      this._unwrap(ConnectionPrototype, 'query');\n      this._unwrap(ConnectionPrototype, 'execute');\n    };\n    return [\n      new InstrumentationNodeModuleDefinition(\n        'mysql2',\n        supportedVersions,\n        (moduleExports: any) => {\n          setFormatFunction(moduleExports);\n          return moduleExports;\n        },\n        () => {},\n        [\n          new InstrumentationNodeModuleFile(\n            'mysql2/promise.js',\n            supportedVersions,\n            (moduleExports: any) => {\n              setFormatFunction(moduleExports);\n              return moduleExports;\n            },\n            () => {}\n          ),\n          new InstrumentationNodeModuleFile(\n            'mysql2/lib/connection.js',\n            supportedVersions,\n            (moduleExports: any) => {\n              const ConnectionPrototype: mysqlTypes.Connection =\n                getConnectionPrototypeToInstrument(moduleExports);\n              patch(ConnectionPrototype);\n              return moduleExports;\n            },\n            (moduleExports: any) => {\n              if (moduleExports === undefined) return;\n              const ConnectionPrototype: mysqlTypes.Connection =\n                getConnectionPrototypeToInstrument(moduleExports);\n              unpatch(ConnectionPrototype);\n            }\n          ),\n        ]\n      ),\n    ];\n  }\n\n  private _patchQuery(format: formatType | undefined, isPrepared: boolean) {\n    return (originalQuery: Function): Function => {\n      const thisPlugin = this;\n      return function query(\n        this: mysqlTypes.Connection,\n        query: string | mysqlTypes.Query | mysqlTypes.QueryOptions,\n        _valuesOrCallback?: unknown[] | Function,\n        _callback?: Function\n      ) {\n        let values;\n        if (Array.isArray(_valuesOrCallback)) {\n          values = _valuesOrCallback;\n        } else if (arguments[2]) {\n          values = [_valuesOrCallback];\n        }\n        const { maskStatement, maskStatementHook, responseHook } =\n          thisPlugin.getConfig();\n\n        const attributes: api.Attributes = getConnectionAttributes(\n          this.config,\n          thisPlugin._dbSemconvStability,\n          thisPlugin._netSemconvStability\n        );\n        const dbQueryText = getQueryText(\n          query,\n          format,\n          values,\n          maskStatement,\n          maskStatementHook\n        );\n        if (thisPlugin._dbSemconvStability & SemconvStability.OLD) {\n          attributes[ATTR_DB_SYSTEM] = DB_SYSTEM_VALUE_MYSQL;\n          attributes[ATTR_DB_STATEMENT] = dbQueryText;\n        }\n        if (thisPlugin._dbSemconvStability & SemconvStability.STABLE) {\n          attributes[ATTR_DB_SYSTEM_NAME] = DB_SYSTEM_NAME_VALUE_MYSQL;\n          attributes[ATTR_DB_QUERY_TEXT] = dbQueryText;\n        }\n\n        const span = thisPlugin.tracer.startSpan(getSpanName(query), {\n          kind: api.SpanKind.CLIENT,\n          attributes,\n        });\n\n        if (\n          !isPrepared &&\n          thisPlugin.getConfig().addSqlCommenterCommentToQueries\n        ) {\n          arguments[0] = query =\n            typeof query === 'string'\n              ? addSqlCommenterComment(span, query)\n              : Object.assign(query, {\n                  sql: addSqlCommenterComment(span, query.sql),\n                });\n        }\n\n        const endSpan = once((err?: any, results?: any) => {\n          if (err) {\n            span.setStatus({\n              code: api.SpanStatusCode.ERROR,\n              message: err.message,\n            });\n          } else {\n            if (typeof responseHook === 'function') {\n              safeExecuteInTheMiddle(\n                () => {\n                  responseHook(span, {\n                    queryResults: results,\n                  });\n                },\n                err => {\n                  if (err) {\n                    thisPlugin._diag.warn('Failed executing responseHook', err);\n                  }\n                },\n                true\n              );\n            }\n          }\n\n          span.end();\n        });\n\n        if (arguments.length === 1) {\n          if (typeof (query as any).onResult === 'function') {\n            thisPlugin._wrap(\n              query as any,\n              'onResult',\n              thisPlugin._patchCallbackQuery(endSpan)\n            );\n          }\n\n          const streamableQuery: mysqlTypes.Query = originalQuery.apply(\n            this,\n            arguments\n          );\n\n          // `end` in mysql behaves similarly to `result` in mysql2.\n          streamableQuery\n            .once('error', err => {\n              endSpan(err);\n            })\n            .once('result', results => {\n              endSpan(undefined, results);\n            });\n\n          return streamableQuery;\n        }\n\n        if (typeof arguments[1] === 'function') {\n          thisPlugin._wrap(\n            arguments,\n            1,\n            thisPlugin._patchCallbackQuery(endSpan)\n          );\n        } else if (typeof arguments[2] === 'function') {\n          thisPlugin._wrap(\n            arguments,\n            2,\n            thisPlugin._patchCallbackQuery(endSpan)\n          );\n        }\n\n        return originalQuery.apply(this, arguments);\n      };\n    };\n  }\n\n  private _patchCallbackQuery(endSpan: Function) {\n    return (originalCallback: Function) => {\n      return function (\n        err: mysqlTypes.QueryError | null,\n        results?: any,\n        fields?: mysqlTypes.FieldPacket[]\n      ) {\n        endSpan(err, results);\n        return originalCallback(...arguments);\n      };\n    };\n  }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { MySQL2Instrumentation } from './instrumentation';\nexport type {\n  MySQL2InstrumentationConfig,\n  MySQL2InstrumentationExecutionResponseHook,\n  MySQL2ResponseHookInformation,\n} from './types';\n","import { MySQL2Instrumentation } from '@opentelemetry/instrumentation-mysql2';\nimport type { IntegrationFn } from '@sentry/core';\nimport { defineIntegration } from '@sentry/core';\nimport { addOriginToSpan, generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Mysql2';\n\nexport const instrumentMysql2 = generateInstrumentOnce(\n  INTEGRATION_NAME,\n  () =>\n    new MySQL2Instrumentation({\n      responseHook(span) {\n        addOriginToSpan(span, 'auto.db.otel.mysql2');\n      },\n    }),\n);\n\nconst _mysql2Integration = (() => {\n  return {\n    name: INTEGRATION_NAME,\n    setupOnce() {\n      instrumentMysql2();\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for the [mysql2](https://www.npmjs.com/package/mysql2) library.\n *\n * For more information, see the [`mysql2Integration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/mysql2/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n *  integrations: [Sentry.mysqlIntegration()],\n * });\n * ```\n */\nexport const mysql2Integration = defineIntegration(_mysql2Integration);\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n\n/**\n * Deprecated, use `server.address`, `server.port` attributes instead.\n *\n * @example \"Server=(localdb)\\\\v11.0;Integrated Security=true;\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` and `server.port`.\n */\nexport const ATTR_DB_CONNECTION_STRING = 'db.connection_string' as const;\n\n/**\n * The database statement being executed.\n *\n * @example SELECT * FROM wuser_table\n * @example SET mykey \"WuValue\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.query.text`.\n */\nexport const ATTR_DB_STATEMENT = 'db.statement' as const;\n\n/**\n * Deprecated, use `db.system.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.system.name`.\n */\nexport const ATTR_DB_SYSTEM = 'db.system' as const;\n\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexport const ATTR_NET_PEER_NAME = 'net.peer.name' as const;\n\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexport const ATTR_NET_PEER_PORT = 'net.peer.port' as const;\n\n/**\n * Enum value \"redis\" for attribute {@link ATTR_DB_SYSTEM_NAME}.\n *\n * [Redis](https://redis.io/)\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const DB_SYSTEM_NAME_VALUE_REDIS = 'redis' as const;\n\n/**\n * Enum value \"redis\" for attribute {@link ATTR_DB_SYSTEM}.\n *\n * Redis\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const DB_SYSTEM_VALUE_REDIS = 'redis' as const;\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Span, SpanStatusCode } from '@opentelemetry/api';\n\nexport const endSpan = (\n  span: Span,\n  err: NodeJS.ErrnoException | null | undefined\n) => {\n  if (err) {\n    span.recordException(err);\n    span.setStatus({\n      code: SpanStatusCode.ERROR,\n      message: err.message,\n    });\n  }\n  span.end();\n};\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * List of regexes and the number of arguments that should be serialized for matching commands.\n * For example, HSET should serialize which key and field it's operating on, but not its value.\n * Setting the subset to -1 will serialize all arguments.\n * Commands without a match will have their first argument serialized.\n *\n * Refer to https://redis.io/commands/ for the full list.\n */\nconst serializationSubsets = [\n  {\n    regex: /^ECHO/i,\n    args: 0,\n  },\n  {\n    regex: /^(LPUSH|MSET|PFA|PUBLISH|RPUSH|SADD|SET|SPUBLISH|XADD|ZADD)/i,\n    args: 1,\n  },\n  {\n    regex: /^(HSET|HMSET|LSET|LINSERT)/i,\n    args: 2,\n  },\n  {\n    regex:\n      /^(ACL|BIT|B[LRZ]|CLIENT|CLUSTER|CONFIG|COMMAND|DECR|DEL|EVAL|EX|FUNCTION|GEO|GET|HINCR|HMGET|HSCAN|INCR|L[TRLM]|MEMORY|P[EFISTU]|RPOP|S[CDIMORSU]|XACK|X[CDGILPRT]|Z[CDILMPRS])/i,\n    args: -1,\n  },\n];\n\nexport type DbStatementSerializer = (\n  cmdName: string,\n  cmdArgs: Array\n) => string;\n\n/**\n * Given the redis command name and arguments, return a combination of the\n * command name + the allowed arguments according to `serializationSubsets`.\n * @param cmdName The redis command name\n * @param cmdArgs The redis command arguments\n * @returns a combination of the command name + args according to `serializationSubsets`.\n */\nexport const defaultDbStatementSerializer: DbStatementSerializer = (\n  cmdName,\n  cmdArgs\n) => {\n  if (Array.isArray(cmdArgs) && cmdArgs.length) {\n    const nArgsToSerialize =\n      serializationSubsets.find(({ regex }) => {\n        return regex.test(cmdName);\n      })?.args ?? 0;\n    const argsToSerialize =\n      nArgsToSerialize >= 0 ? cmdArgs.slice(0, nArgsToSerialize) : cmdArgs;\n    if (cmdArgs.length > argsToSerialize.length) {\n      argsToSerialize.push(\n        `[${cmdArgs.length - nArgsToSerialize} other arguments]`\n      );\n    }\n    return `${cmdName} ${argsToSerialize.join(' ')}`;\n  }\n  return cmdName;\n};\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const PACKAGE_VERSION = '0.62.0';\nexport const PACKAGE_NAME = '@opentelemetry/instrumentation-ioredis';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  diag,\n  trace,\n  context,\n  SpanKind,\n  type Attributes,\n} from '@opentelemetry/api';\nimport {\n  InstrumentationBase,\n  InstrumentationNodeModuleDefinition,\n  isWrapped,\n  SemconvStability,\n  semconvStabilityFromStr,\n} from '@opentelemetry/instrumentation';\nimport { IORedisInstrumentationConfig } from './types';\nimport { IORedisCommand, RedisInterface } from './internal-types';\nimport {\n  ATTR_DB_QUERY_TEXT,\n  ATTR_DB_SYSTEM_NAME,\n  ATTR_SERVER_ADDRESS,\n  ATTR_SERVER_PORT,\n} from '@opentelemetry/semantic-conventions';\nimport {\n  DB_SYSTEM_VALUE_REDIS,\n  DB_SYSTEM_NAME_VALUE_REDIS,\n  ATTR_DB_CONNECTION_STRING,\n  ATTR_DB_STATEMENT,\n  ATTR_DB_SYSTEM,\n  ATTR_NET_PEER_NAME,\n  ATTR_NET_PEER_PORT,\n} from './semconv';\nimport { safeExecuteInTheMiddle } from '@opentelemetry/instrumentation';\nimport { endSpan } from './utils';\nimport { defaultDbStatementSerializer } from '@opentelemetry/redis-common';\n/** @knipignore */\nimport { PACKAGE_NAME, PACKAGE_VERSION } from './version';\n\nconst DEFAULT_CONFIG: IORedisInstrumentationConfig = {\n  requireParentSpan: true,\n};\n\nexport class IORedisInstrumentation extends InstrumentationBase {\n  private _netSemconvStability!: SemconvStability;\n  private _dbSemconvStability!: SemconvStability;\n\n  constructor(config: IORedisInstrumentationConfig = {}) {\n    super(PACKAGE_NAME, PACKAGE_VERSION, { ...DEFAULT_CONFIG, ...config });\n    this._setSemconvStabilityFromEnv();\n  }\n\n  // Used for testing.\n  private _setSemconvStabilityFromEnv() {\n    this._netSemconvStability = semconvStabilityFromStr(\n      'http',\n      process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n    );\n    this._dbSemconvStability = semconvStabilityFromStr(\n      'database',\n      process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n    );\n  }\n\n  override setConfig(config: IORedisInstrumentationConfig = {}) {\n    super.setConfig({ ...DEFAULT_CONFIG, ...config });\n  }\n\n  init(): InstrumentationNodeModuleDefinition[] {\n    return [\n      new InstrumentationNodeModuleDefinition(\n        'ioredis',\n        ['>=2.0.0 <6'],\n        (module, moduleVersion?: string) => {\n          const moduleExports =\n            module[Symbol.toStringTag] === 'Module'\n              ? module.default // ESM\n              : module; // CommonJS\n          if (isWrapped(moduleExports.prototype.sendCommand)) {\n            this._unwrap(moduleExports.prototype, 'sendCommand');\n          }\n          this._wrap(\n            moduleExports.prototype,\n            'sendCommand',\n            this._patchSendCommand(moduleVersion)\n          );\n          if (isWrapped(moduleExports.prototype.connect)) {\n            this._unwrap(moduleExports.prototype, 'connect');\n          }\n          this._wrap(\n            moduleExports.prototype,\n            'connect',\n            this._patchConnection()\n          );\n          return module;\n        },\n        module => {\n          if (module === undefined) return;\n          const moduleExports =\n            module[Symbol.toStringTag] === 'Module'\n              ? module.default // ESM\n              : module; // CommonJS\n          this._unwrap(moduleExports.prototype, 'sendCommand');\n          this._unwrap(moduleExports.prototype, 'connect');\n        }\n      ),\n    ];\n  }\n\n  /**\n   * Patch send command internal to trace requests\n   */\n  private _patchSendCommand(moduleVersion?: string) {\n    return (original: Function) => {\n      return this._traceSendCommand(original, moduleVersion);\n    };\n  }\n\n  private _patchConnection() {\n    return (original: Function) => {\n      return this._traceConnection(original);\n    };\n  }\n\n  private _traceSendCommand(original: Function, moduleVersion?: string) {\n    const instrumentation = this;\n    return function (this: RedisInterface, cmd?: IORedisCommand) {\n      if (arguments.length < 1 || typeof cmd !== 'object') {\n        return original.apply(this, arguments);\n      }\n      const config = instrumentation.getConfig();\n      const dbStatementSerializer =\n        config.dbStatementSerializer || defaultDbStatementSerializer;\n\n      const hasNoParentSpan = trace.getSpan(context.active()) === undefined;\n      if (config.requireParentSpan === true && hasNoParentSpan) {\n        return original.apply(this, arguments);\n      }\n\n      const attributes: Attributes = {};\n      const { host, port } = this.options;\n      const dbQueryText = dbStatementSerializer(cmd.name, cmd.args);\n      if (instrumentation._dbSemconvStability & SemconvStability.OLD) {\n        attributes[ATTR_DB_SYSTEM] = DB_SYSTEM_VALUE_REDIS;\n        attributes[ATTR_DB_STATEMENT] = dbQueryText;\n        attributes[ATTR_DB_CONNECTION_STRING] = `redis://${host}:${port}`;\n      }\n      if (instrumentation._dbSemconvStability & SemconvStability.STABLE) {\n        attributes[ATTR_DB_SYSTEM_NAME] = DB_SYSTEM_NAME_VALUE_REDIS;\n        attributes[ATTR_DB_QUERY_TEXT] = dbQueryText;\n      }\n      if (instrumentation._netSemconvStability & SemconvStability.OLD) {\n        attributes[ATTR_NET_PEER_NAME] = host;\n        attributes[ATTR_NET_PEER_PORT] = port;\n      }\n      if (instrumentation._netSemconvStability & SemconvStability.STABLE) {\n        attributes[ATTR_SERVER_ADDRESS] = host;\n        attributes[ATTR_SERVER_PORT] = port;\n      }\n      const span = instrumentation.tracer.startSpan(cmd.name, {\n        kind: SpanKind.CLIENT,\n        attributes,\n      });\n\n      const { requestHook } = config;\n      if (requestHook) {\n        safeExecuteInTheMiddle(\n          () =>\n            requestHook(span, {\n              moduleVersion,\n              cmdName: cmd.name,\n              cmdArgs: cmd.args,\n            }),\n          e => {\n            if (e) {\n              diag.error('ioredis instrumentation: request hook failed', e);\n            }\n          },\n          true\n        );\n      }\n\n      try {\n        const result = original.apply(this, arguments);\n\n        const origResolve = cmd.resolve;\n        /* eslint-disable @typescript-eslint/no-explicit-any */\n        cmd.resolve = function (result: any) {\n          safeExecuteInTheMiddle(\n            () => config.responseHook?.(span, cmd.name, cmd.args, result),\n            e => {\n              if (e) {\n                diag.error('ioredis instrumentation: response hook failed', e);\n              }\n            },\n            true\n          );\n\n          endSpan(span, null);\n          origResolve(result);\n        };\n\n        const origReject = cmd.reject;\n        cmd.reject = function (err: Error) {\n          endSpan(span, err);\n          origReject(err);\n        };\n\n        return result;\n      } catch (error: any) {\n        endSpan(span, error);\n        throw error;\n      }\n    };\n  }\n\n  private _traceConnection(original: Function) {\n    const instrumentation = this;\n    return function (this: RedisInterface) {\n      const hasNoParentSpan = trace.getSpan(context.active()) === undefined;\n      if (\n        instrumentation.getConfig().requireParentSpan === true &&\n        hasNoParentSpan\n      ) {\n        return original.apply(this, arguments);\n      }\n\n      const attributes: Attributes = {};\n      const { host, port } = this.options;\n      if (instrumentation._dbSemconvStability & SemconvStability.OLD) {\n        attributes[ATTR_DB_SYSTEM] = DB_SYSTEM_VALUE_REDIS;\n        attributes[ATTR_DB_STATEMENT] = 'connect';\n        attributes[ATTR_DB_CONNECTION_STRING] = `redis://${host}:${port}`;\n      }\n      if (instrumentation._dbSemconvStability & SemconvStability.STABLE) {\n        attributes[ATTR_DB_SYSTEM_NAME] = DB_SYSTEM_NAME_VALUE_REDIS;\n        attributes[ATTR_DB_QUERY_TEXT] = 'connect';\n      }\n      if (instrumentation._netSemconvStability & SemconvStability.OLD) {\n        attributes[ATTR_NET_PEER_NAME] = host;\n        attributes[ATTR_NET_PEER_PORT] = port;\n      }\n      if (instrumentation._netSemconvStability & SemconvStability.STABLE) {\n        attributes[ATTR_SERVER_ADDRESS] = host;\n        attributes[ATTR_SERVER_PORT] = port;\n      }\n      const span = instrumentation.tracer.startSpan('connect', {\n        kind: SpanKind.CLIENT,\n        attributes,\n      });\n\n      try {\n        const client = original.apply(this, arguments);\n        endSpan(span, null);\n        return client;\n      } catch (error: any) {\n        endSpan(span, error);\n        throw error;\n      }\n    };\n  }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { IORedisInstrumentation } from './instrumentation';\nexport type {\n  CommandArgs,\n  DbStatementSerializer,\n  IORedisInstrumentationConfig,\n  IORedisRequestHookInformation,\n  RedisRequestCustomAttributeFunction,\n  RedisResponseCustomAttributeFunction,\n} from './types';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const PACKAGE_VERSION = '0.62.0';\nexport const PACKAGE_NAME = '@opentelemetry/instrumentation-redis';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { context, Span, SpanStatusCode } from '@opentelemetry/api';\nimport { EventEmitter } from 'events';\n\nexport const endSpan = (span: Span, err?: Error | null) => {\n  if (err) {\n    span.setStatus({\n      code: SpanStatusCode.ERROR,\n      message: err.message,\n    });\n  }\n  span.end();\n};\n\nexport const getTracedCreateClient = (original: Function) => {\n  return function createClientTrace(this: any) {\n    const client = original.apply(this, arguments);\n    return context.bind(context.active(), client);\n  };\n};\n\nexport const getTracedCreateStreamTrace = (original: Function) => {\n  return function create_stream_trace(this: any) {\n    if (!Object.prototype.hasOwnProperty.call(this, 'stream')) {\n      Object.defineProperty(this, 'stream', {\n        get() {\n          return this._patched_redis_stream;\n        },\n        set(val: EventEmitter) {\n          context.bind(context.active(), val);\n          this._patched_redis_stream = val;\n        },\n      });\n    }\n    return original.apply(this, arguments);\n  };\n};\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n\n/**\n * Deprecated, use `server.address`, `server.port` attributes instead.\n *\n * @example \"Server=(localdb)\\\\v11.0;Integrated Security=true;\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` and `server.port`.\n */\nexport const ATTR_DB_CONNECTION_STRING = 'db.connection_string' as const;\n\n/**\n * The database statement being executed.\n *\n * @example SELECT * FROM wuser_table\n * @example SET mykey \"WuValue\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.query.text`.\n */\nexport const ATTR_DB_STATEMENT = 'db.statement' as const;\n\n/**\n * Deprecated, use `db.system.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.system.name`.\n */\nexport const ATTR_DB_SYSTEM = 'db.system' as const;\n\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexport const ATTR_NET_PEER_NAME = 'net.peer.name' as const;\n\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexport const ATTR_NET_PEER_PORT = 'net.peer.port' as const;\n\n/**\n * Enum value \"redis\" for attribute {@link ATTR_DB_SYSTEM_NAME}.\n *\n * [Redis](https://redis.io/)\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const DB_SYSTEM_NAME_VALUE_REDIS = 'redis' as const;\n\n/**\n * Enum value \"redis\" for attribute {@link ATTR_DB_SYSTEM}.\n *\n * Redis\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const DB_SYSTEM_VALUE_REDIS = 'redis' as const;\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  isWrapped,\n  InstrumentationBase,\n  InstrumentationNodeModuleDefinition,\n  safeExecuteInTheMiddle,\n  SemconvStability,\n  semconvStabilityFromStr,\n} from '@opentelemetry/instrumentation';\nimport {\n  endSpan,\n  getTracedCreateClient,\n  getTracedCreateStreamTrace,\n} from './utils';\nimport { RedisInstrumentationConfig } from '../types';\n/** @knipignore */\nimport { PACKAGE_NAME, PACKAGE_VERSION } from '../version';\nimport type { RedisCommand, RedisPluginClientTypes } from './internal-types';\nimport { Attributes, SpanKind, context, trace } from '@opentelemetry/api';\nimport {\n  ATTR_DB_SYSTEM_NAME,\n  ATTR_DB_QUERY_TEXT,\n  ATTR_DB_OPERATION_NAME,\n  ATTR_SERVER_ADDRESS,\n  ATTR_SERVER_PORT,\n} from '@opentelemetry/semantic-conventions';\nimport {\n  ATTR_DB_CONNECTION_STRING,\n  ATTR_DB_STATEMENT,\n  ATTR_DB_SYSTEM,\n  ATTR_NET_PEER_NAME,\n  ATTR_NET_PEER_PORT,\n  DB_SYSTEM_NAME_VALUE_REDIS,\n  DB_SYSTEM_VALUE_REDIS,\n} from '../semconv';\nimport { defaultDbStatementSerializer } from '@opentelemetry/redis-common';\n\nexport class RedisInstrumentationV2_V3 extends InstrumentationBase {\n  static readonly COMPONENT = 'redis';\n  private _semconvStability: SemconvStability;\n\n  constructor(config: RedisInstrumentationConfig = {}) {\n    super(PACKAGE_NAME, PACKAGE_VERSION, config);\n    this._semconvStability = config.semconvStability\n      ? config.semconvStability\n      : semconvStabilityFromStr(\n          'database',\n          process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n        );\n  }\n\n  override setConfig(config: RedisInstrumentationConfig = {}) {\n    super.setConfig(config);\n    this._semconvStability = config.semconvStability\n      ? config.semconvStability\n      : semconvStabilityFromStr(\n          'database',\n          process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n        );\n  }\n\n  protected init() {\n    return [\n      new InstrumentationNodeModuleDefinition(\n        'redis',\n        ['>=2.6.0 <4'],\n        moduleExports => {\n          if (\n            isWrapped(\n              moduleExports.RedisClient.prototype['internal_send_command']\n            )\n          ) {\n            this._unwrap(\n              moduleExports.RedisClient.prototype,\n              'internal_send_command'\n            );\n          }\n          this._wrap(\n            moduleExports.RedisClient.prototype,\n            'internal_send_command',\n            this._getPatchInternalSendCommand()\n          );\n\n          if (isWrapped(moduleExports.RedisClient.prototype['create_stream'])) {\n            this._unwrap(moduleExports.RedisClient.prototype, 'create_stream');\n          }\n          this._wrap(\n            moduleExports.RedisClient.prototype,\n            'create_stream',\n            this._getPatchCreateStream()\n          );\n\n          if (isWrapped(moduleExports.createClient)) {\n            this._unwrap(moduleExports, 'createClient');\n          }\n          this._wrap(\n            moduleExports,\n            'createClient',\n            this._getPatchCreateClient()\n          );\n          return moduleExports;\n        },\n        moduleExports => {\n          if (moduleExports === undefined) return;\n          this._unwrap(\n            moduleExports.RedisClient.prototype,\n            'internal_send_command'\n          );\n          this._unwrap(moduleExports.RedisClient.prototype, 'create_stream');\n          this._unwrap(moduleExports, 'createClient');\n        }\n      ),\n    ];\n  }\n\n  /**\n   * Patch internal_send_command(...) to trace requests\n   */\n  private _getPatchInternalSendCommand() {\n    const instrumentation = this;\n    return function internal_send_command(original: Function) {\n      return function internal_send_command_trace(\n        this: RedisPluginClientTypes,\n        cmd?: RedisCommand\n      ) {\n        // Versions of redis (2.4+) use a single options object\n        // instead of named arguments\n        if (arguments.length !== 1 || typeof cmd !== 'object') {\n          // We don't know how to trace this call, so don't start/stop a span\n          return original.apply(this, arguments);\n        }\n\n        const config = instrumentation.getConfig();\n\n        const hasNoParentSpan = trace.getSpan(context.active()) === undefined;\n        if (config.requireParentSpan === true && hasNoParentSpan) {\n          return original.apply(this, arguments);\n        }\n\n        const dbStatementSerializer =\n          config?.dbStatementSerializer || defaultDbStatementSerializer;\n\n        const attributes: Attributes = {};\n\n        if (instrumentation._semconvStability & SemconvStability.OLD) {\n          Object.assign(attributes, {\n            [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_REDIS,\n            [ATTR_DB_STATEMENT]: dbStatementSerializer(cmd.command, cmd.args),\n          });\n        }\n\n        if (instrumentation._semconvStability & SemconvStability.STABLE) {\n          Object.assign(attributes, {\n            [ATTR_DB_SYSTEM_NAME]: DB_SYSTEM_NAME_VALUE_REDIS,\n            [ATTR_DB_OPERATION_NAME]: cmd.command,\n            [ATTR_DB_QUERY_TEXT]: dbStatementSerializer(cmd.command, cmd.args),\n          });\n        }\n\n        const span = instrumentation.tracer.startSpan(\n          `${RedisInstrumentationV2_V3.COMPONENT}-${cmd.command}`,\n          {\n            kind: SpanKind.CLIENT,\n            attributes,\n          }\n        );\n\n        // Set attributes for not explicitly typed RedisPluginClientTypes\n        if (this.connection_options) {\n          const connectionAttributes: Attributes = {};\n\n          if (instrumentation._semconvStability & SemconvStability.OLD) {\n            Object.assign(connectionAttributes, {\n              [ATTR_NET_PEER_NAME]: this.connection_options.host,\n              [ATTR_NET_PEER_PORT]: this.connection_options.port,\n            });\n          }\n\n          if (instrumentation._semconvStability & SemconvStability.STABLE) {\n            Object.assign(connectionAttributes, {\n              [ATTR_SERVER_ADDRESS]: this.connection_options.host,\n              [ATTR_SERVER_PORT]: this.connection_options.port,\n            });\n          }\n\n          span.setAttributes(connectionAttributes);\n        }\n\n        if (\n          this.address &&\n          instrumentation._semconvStability & SemconvStability.OLD\n        ) {\n          span.setAttribute(\n            ATTR_DB_CONNECTION_STRING,\n            `redis://${this.address}`\n          );\n        }\n\n        const originalCallback = arguments[0].callback;\n        if (originalCallback) {\n          const originalContext = context.active();\n          (arguments[0] as RedisCommand).callback = function callback(\n            this: unknown,\n            err: Error | null,\n            reply: T\n          ) {\n            if (config?.responseHook) {\n              const responseHook = config.responseHook;\n              safeExecuteInTheMiddle(\n                () => {\n                  responseHook(span, cmd.command, cmd.args, reply);\n                },\n                err => {\n                  if (err) {\n                    instrumentation._diag.error(\n                      'Error executing responseHook',\n                      err\n                    );\n                  }\n                },\n                true\n              );\n            }\n\n            endSpan(span, err);\n            return context.with(\n              originalContext,\n              originalCallback,\n              this,\n              ...arguments\n            );\n          };\n        }\n        try {\n          // Span will be ended in callback\n          return original.apply(this, arguments);\n        } catch (rethrow: any) {\n          endSpan(span, rethrow);\n          throw rethrow; // rethrow after ending span\n        }\n      };\n    };\n  }\n\n  private _getPatchCreateClient() {\n    return function createClient(original: Function) {\n      return getTracedCreateClient(original);\n    };\n  }\n\n  private _getPatchCreateStream() {\n    return function createReadStream(original: Function) {\n      return getTracedCreateStreamTrace(original);\n    };\n  }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Attributes, DiagLogger } from '@opentelemetry/api';\nimport {\n  ATTR_DB_SYSTEM_NAME,\n  ATTR_SERVER_ADDRESS,\n  ATTR_SERVER_PORT,\n} from '@opentelemetry/semantic-conventions';\nimport {\n  ATTR_DB_SYSTEM,\n  ATTR_DB_CONNECTION_STRING,\n  ATTR_NET_PEER_NAME,\n  ATTR_NET_PEER_PORT,\n  DB_SYSTEM_VALUE_REDIS,\n  DB_SYSTEM_NAME_VALUE_REDIS,\n} from '../semconv';\nimport { SemconvStability } from '@opentelemetry/instrumentation';\n\nexport function getClientAttributes(\n  diag: DiagLogger,\n  options: any,\n  semconvStability: SemconvStability\n): Attributes {\n  const attributes: Attributes = {};\n\n  if (semconvStability & SemconvStability.OLD) {\n    Object.assign(attributes, {\n      [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_REDIS,\n      [ATTR_NET_PEER_NAME]: options?.socket?.host,\n      [ATTR_NET_PEER_PORT]: options?.socket?.port,\n      [ATTR_DB_CONNECTION_STRING]:\n        removeCredentialsFromDBConnectionStringAttribute(diag, options?.url),\n    });\n  }\n\n  if (semconvStability & SemconvStability.STABLE) {\n    Object.assign(attributes, {\n      [ATTR_DB_SYSTEM_NAME]: DB_SYSTEM_NAME_VALUE_REDIS,\n      [ATTR_SERVER_ADDRESS]: options?.socket?.host,\n      [ATTR_SERVER_PORT]: options?.socket?.port,\n    });\n  }\n\n  return attributes;\n}\n\n/**\n * removeCredentialsFromDBConnectionStringAttribute removes basic auth from url and user_pwd from query string\n *\n * Examples:\n *   redis://user:pass@localhost:6379/mydb => redis://localhost:6379/mydb\n *   redis://localhost:6379?db=mydb&user_pwd=pass => redis://localhost:6379?db=mydb\n */\nfunction removeCredentialsFromDBConnectionStringAttribute(\n  diag: DiagLogger,\n  url?: unknown\n): string | undefined {\n  if (typeof url !== 'string' || !url) {\n    return;\n  }\n\n  try {\n    const u = new URL(url);\n    u.searchParams.delete('user_pwd');\n    u.username = '';\n    u.password = '';\n    return u.href;\n  } catch (err) {\n    diag.error('failed to sanitize redis connection url', err);\n  }\n  return;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  trace,\n  context,\n  SpanKind,\n  Span,\n  SpanStatusCode,\n} from '@opentelemetry/api';\nimport {\n  isWrapped,\n  InstrumentationBase,\n  InstrumentationNodeModuleDefinition,\n  InstrumentationNodeModuleFile,\n  SemconvStability,\n  semconvStabilityFromStr,\n} from '@opentelemetry/instrumentation';\nimport { getClientAttributes } from './utils';\nimport { defaultDbStatementSerializer } from '@opentelemetry/redis-common';\nimport { RedisInstrumentationConfig } from '../types';\n/** @knipignore */\nimport { PACKAGE_NAME, PACKAGE_VERSION } from '../version';\nimport {\n  ATTR_DB_OPERATION_NAME,\n  ATTR_DB_QUERY_TEXT,\n} from '@opentelemetry/semantic-conventions';\nimport { ATTR_DB_STATEMENT } from '../semconv';\nimport type { MultiErrorReply } from './internal-types';\n\nconst OTEL_OPEN_SPANS = Symbol(\n  'opentelemetry.instrumentation.redis.open_spans'\n);\nconst MULTI_COMMAND_OPTIONS = Symbol(\n  'opentelemetry.instrumentation.redis.multi_command_options'\n);\n\ninterface MutliCommandInfo {\n  span: Span;\n  commandName: string;\n  commandArgs: Array;\n}\n\nexport class RedisInstrumentationV4_V5 extends InstrumentationBase {\n  static readonly COMPONENT = 'redis';\n  private _semconvStability: SemconvStability;\n\n  constructor(config: RedisInstrumentationConfig = {}) {\n    super(PACKAGE_NAME, PACKAGE_VERSION, config);\n    this._semconvStability = config.semconvStability\n      ? config.semconvStability\n      : semconvStabilityFromStr(\n          'database',\n          process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n        );\n  }\n\n  override setConfig(config: RedisInstrumentationConfig = {}) {\n    super.setConfig(config);\n    this._semconvStability = config.semconvStability\n      ? config.semconvStability\n      : semconvStabilityFromStr(\n          'database',\n          process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n        );\n  }\n\n  protected init() {\n    // @node-redis/client is a new package introduced and consumed by 'redis 4.0.x'\n    // on redis@4.1.0 it was changed to @redis/client.\n    // we will instrument both packages\n    return [\n      this._getInstrumentationNodeModuleDefinition('@redis/client'),\n      this._getInstrumentationNodeModuleDefinition('@node-redis/client'),\n    ];\n  }\n\n  private _getInstrumentationNodeModuleDefinition(\n    basePackageName: string\n  ): InstrumentationNodeModuleDefinition {\n    const commanderModuleFile = new InstrumentationNodeModuleFile(\n      `${basePackageName}/dist/lib/commander.js`,\n      ['^1.0.0'],\n      (moduleExports: any, moduleVersion?: string) => {\n        const transformCommandArguments =\n          moduleExports.transformCommandArguments;\n        if (!transformCommandArguments) {\n          this._diag.error(\n            'internal instrumentation error, missing transformCommandArguments function'\n          );\n          return moduleExports;\n        }\n\n        // function name and signature changed in redis 4.1.0 from 'extendWithCommands' to 'attachCommands'\n        // the matching internal package names starts with 1.0.x (for redis 4.0.x)\n        const functionToPatch = moduleVersion?.startsWith('1.0.')\n          ? 'extendWithCommands'\n          : 'attachCommands';\n        // this is the function that extend a redis client with a list of commands.\n        // the function patches the commandExecutor to record a span\n        if (isWrapped(moduleExports?.[functionToPatch])) {\n          this._unwrap(moduleExports, functionToPatch);\n        }\n        this._wrap(\n          moduleExports,\n          functionToPatch,\n          this._getPatchExtendWithCommands(transformCommandArguments)\n        );\n\n        return moduleExports;\n      },\n      (moduleExports: any) => {\n        if (isWrapped(moduleExports?.extendWithCommands)) {\n          this._unwrap(moduleExports, 'extendWithCommands');\n        }\n        if (isWrapped(moduleExports?.attachCommands)) {\n          this._unwrap(moduleExports, 'attachCommands');\n        }\n      }\n    );\n\n    const multiCommanderModule = new InstrumentationNodeModuleFile(\n      `${basePackageName}/dist/lib/client/multi-command.js`,\n      ['^1.0.0', '^5.0.0'],\n      (moduleExports: any) => {\n        const redisClientMultiCommandPrototype =\n          moduleExports?.default?.prototype;\n\n        if (isWrapped(redisClientMultiCommandPrototype?.exec)) {\n          this._unwrap(redisClientMultiCommandPrototype, 'exec');\n        }\n        this._wrap(\n          redisClientMultiCommandPrototype,\n          'exec',\n          this._getPatchMultiCommandsExec(false)\n        );\n        if (isWrapped(redisClientMultiCommandPrototype?.execAsPipeline)) {\n          this._unwrap(redisClientMultiCommandPrototype, 'execAsPipeline');\n        }\n        this._wrap(\n          redisClientMultiCommandPrototype,\n          'execAsPipeline',\n          this._getPatchMultiCommandsExec(true)\n        );\n\n        if (isWrapped(redisClientMultiCommandPrototype?.addCommand)) {\n          this._unwrap(redisClientMultiCommandPrototype, 'addCommand');\n        }\n        this._wrap(\n          redisClientMultiCommandPrototype,\n          'addCommand',\n          this._getPatchMultiCommandsAddCommand()\n        );\n\n        return moduleExports;\n      },\n      (moduleExports: any) => {\n        const redisClientMultiCommandPrototype =\n          moduleExports?.default?.prototype;\n        if (isWrapped(redisClientMultiCommandPrototype?.exec)) {\n          this._unwrap(redisClientMultiCommandPrototype, 'exec');\n        }\n        if (isWrapped(redisClientMultiCommandPrototype?.addCommand)) {\n          this._unwrap(redisClientMultiCommandPrototype, 'addCommand');\n        }\n      }\n    );\n\n    const clientIndexModule = new InstrumentationNodeModuleFile(\n      `${basePackageName}/dist/lib/client/index.js`,\n      ['^1.0.0', '^5.0.0'],\n      (moduleExports: any) => {\n        const redisClientPrototype = moduleExports?.default?.prototype;\n\n        // In some @redis/client versions 'multi' is a method. In later\n        // versions, as of https://github.com/redis/node-redis/pull/2324,\n        // 'MULTI' is a method and 'multi' is a property defined in the\n        // constructor that points to 'MULTI', and therefore it will not\n        // be defined on the prototype.\n        if (redisClientPrototype?.multi) {\n          if (isWrapped(redisClientPrototype?.multi)) {\n            this._unwrap(redisClientPrototype, 'multi');\n          }\n          this._wrap(\n            redisClientPrototype,\n            'multi',\n            this._getPatchRedisClientMulti()\n          );\n        }\n        if (redisClientPrototype?.MULTI) {\n          if (isWrapped(redisClientPrototype?.MULTI)) {\n            this._unwrap(redisClientPrototype, 'MULTI');\n          }\n          this._wrap(\n            redisClientPrototype,\n            'MULTI',\n            this._getPatchRedisClientMulti()\n          );\n        }\n\n        if (isWrapped(redisClientPrototype?.sendCommand)) {\n          this._unwrap(redisClientPrototype, 'sendCommand');\n        }\n        this._wrap(\n          redisClientPrototype,\n          'sendCommand',\n          this._getPatchRedisClientSendCommand()\n        );\n\n        this._wrap(\n          redisClientPrototype,\n          'connect',\n          this._getPatchedClientConnect()\n        );\n\n        return moduleExports;\n      },\n      (moduleExports: any) => {\n        const redisClientPrototype = moduleExports?.default?.prototype;\n        if (isWrapped(redisClientPrototype?.multi)) {\n          this._unwrap(redisClientPrototype, 'multi');\n        }\n        if (isWrapped(redisClientPrototype?.MULTI)) {\n          this._unwrap(redisClientPrototype, 'MULTI');\n        }\n        if (isWrapped(redisClientPrototype?.sendCommand)) {\n          this._unwrap(redisClientPrototype, 'sendCommand');\n        }\n      }\n    );\n\n    return new InstrumentationNodeModuleDefinition(\n      basePackageName,\n      ['^1.0.0', '^5.0.0'],\n      (moduleExports: any) => {\n        return moduleExports;\n      },\n      () => {},\n      [commanderModuleFile, multiCommanderModule, clientIndexModule]\n    );\n  }\n\n  // serves both for redis 4.0.x where function name is extendWithCommands\n  // and redis ^4.1.0 where function name is attachCommands\n  private _getPatchExtendWithCommands(transformCommandArguments: Function) {\n    const plugin = this;\n    return function extendWithCommandsPatchWrapper(original: Function) {\n      return function extendWithCommandsPatch(this: any, config: any) {\n        if (config?.BaseClass?.name !== 'RedisClient') {\n          return original.apply(this, arguments);\n        }\n\n        const origExecutor = config.executor;\n        config.executor = function (\n          this: any,\n          command: any,\n          args: Array\n        ) {\n          const redisCommandArguments = transformCommandArguments(\n            command,\n            args\n          ).args;\n          return plugin._traceClientCommand(\n            origExecutor,\n            this,\n            arguments,\n            redisCommandArguments\n          );\n        };\n        return original.apply(this, arguments);\n      };\n    };\n  }\n\n  private _getPatchMultiCommandsExec(isPipeline: boolean) {\n    const plugin = this;\n    return function execPatchWrapper(original: Function) {\n      return function execPatch(this: any) {\n        const execRes = original.apply(this, arguments);\n        if (typeof execRes?.then !== 'function') {\n          plugin._diag.error(\n            'non-promise result when patching exec/execAsPipeline'\n          );\n          return execRes;\n        }\n\n        return execRes\n          .then((redisRes: unknown[]) => {\n            const openSpans = this[OTEL_OPEN_SPANS];\n            plugin._endSpansWithRedisReplies(openSpans, redisRes, isPipeline);\n            return redisRes;\n          })\n          .catch((err: Error) => {\n            const openSpans = this[OTEL_OPEN_SPANS];\n            if (!openSpans) {\n              plugin._diag.error(\n                'cannot find open spans to end for multi/pipeline'\n              );\n            } else {\n              const replies =\n                err.constructor.name === 'MultiErrorReply'\n                  ? (err as MultiErrorReply).replies\n                  : new Array(openSpans.length).fill(err);\n              plugin._endSpansWithRedisReplies(openSpans, replies, isPipeline);\n            }\n            return Promise.reject(err);\n          });\n      };\n    };\n  }\n\n  private _getPatchMultiCommandsAddCommand() {\n    const plugin = this;\n    return function addCommandWrapper(original: Function) {\n      return function addCommandPatch(this: any, args: Array) {\n        return plugin._traceClientCommand(original, this, arguments, args);\n      };\n    };\n  }\n\n  private _getPatchRedisClientMulti() {\n    return function multiPatchWrapper(original: Function) {\n      return function multiPatch(this: any) {\n        const multiRes = original.apply(this, arguments);\n        multiRes[MULTI_COMMAND_OPTIONS] = this.options;\n        return multiRes;\n      };\n    };\n  }\n\n  private _getPatchRedisClientSendCommand() {\n    const plugin = this;\n    return function sendCommandWrapper(original: Function) {\n      return function sendCommandPatch(\n        this: any,\n        args: Array\n      ) {\n        return plugin._traceClientCommand(original, this, arguments, args);\n      };\n    };\n  }\n\n  private _getPatchedClientConnect() {\n    const plugin = this;\n    return function connectWrapper(original: Function) {\n      return function patchedConnect(this: any): Promise {\n        const options = this.options;\n        const attributes = getClientAttributes(\n          plugin._diag,\n          options,\n          plugin._semconvStability\n        );\n\n        const span = plugin.tracer.startSpan(\n          `${RedisInstrumentationV4_V5.COMPONENT}-connect`,\n          {\n            kind: SpanKind.CLIENT,\n            attributes,\n          }\n        );\n\n        const res = context.with(trace.setSpan(context.active(), span), () => {\n          return original.apply(this);\n        });\n\n        return res\n          .then((result: unknown) => {\n            span.end();\n            return result;\n          })\n          .catch((error: Error) => {\n            span.recordException(error);\n            span.setStatus({\n              code: SpanStatusCode.ERROR,\n              message: error.message,\n            });\n            span.end();\n            return Promise.reject(error);\n          });\n      };\n    };\n  }\n\n  private _traceClientCommand(\n    origFunction: Function,\n    origThis: any,\n    origArguments: IArguments,\n    redisCommandArguments: Array\n  ) {\n    const hasNoParentSpan = trace.getSpan(context.active()) === undefined;\n    if (hasNoParentSpan && this.getConfig().requireParentSpan) {\n      return origFunction.apply(origThis, origArguments);\n    }\n\n    const clientOptions = origThis.options || origThis[MULTI_COMMAND_OPTIONS];\n\n    const commandName = redisCommandArguments[0] as string; // types also allows it to be a Buffer, but in practice it only string\n    const commandArgs = redisCommandArguments.slice(1);\n\n    const dbStatementSerializer =\n      this.getConfig().dbStatementSerializer || defaultDbStatementSerializer;\n\n    const attributes = getClientAttributes(\n      this._diag,\n      clientOptions,\n      this._semconvStability\n    );\n    if (this._semconvStability & SemconvStability.STABLE) {\n      attributes[ATTR_DB_OPERATION_NAME] = commandName;\n    }\n    try {\n      const dbStatement = dbStatementSerializer(commandName, commandArgs);\n      if (dbStatement != null) {\n        if (this._semconvStability & SemconvStability.OLD) {\n          attributes[ATTR_DB_STATEMENT] = dbStatement;\n        }\n        if (this._semconvStability & SemconvStability.STABLE) {\n          attributes[ATTR_DB_QUERY_TEXT] = dbStatement;\n        }\n      }\n    } catch (e) {\n      this._diag.error('dbStatementSerializer throw an exception', e, {\n        commandName,\n      });\n    }\n\n    const span = this.tracer.startSpan(\n      `${RedisInstrumentationV4_V5.COMPONENT}-${commandName}`,\n      {\n        kind: SpanKind.CLIENT,\n        attributes,\n      }\n    );\n\n    const res = context.with(trace.setSpan(context.active(), span), () => {\n      return origFunction.apply(origThis, origArguments);\n    });\n    if (typeof res?.then === 'function') {\n      res.then(\n        (redisRes: unknown) => {\n          this._endSpanWithResponse(\n            span,\n            commandName,\n            commandArgs,\n            redisRes,\n            undefined\n          );\n        },\n        (err: any) => {\n          this._endSpanWithResponse(span, commandName, commandArgs, null, err);\n        }\n      );\n    } else {\n      const redisClientMultiCommand = res as {\n        [OTEL_OPEN_SPANS]?: Array;\n      };\n      redisClientMultiCommand[OTEL_OPEN_SPANS] =\n        redisClientMultiCommand[OTEL_OPEN_SPANS] || [];\n      redisClientMultiCommand[OTEL_OPEN_SPANS]!.push({\n        span,\n        commandName,\n        commandArgs,\n      });\n    }\n    return res;\n  }\n\n  private _endSpansWithRedisReplies(\n    openSpans: Array,\n    replies: unknown[],\n    isPipeline = false\n  ) {\n    if (!openSpans) {\n      return this._diag.error(\n        'cannot find open spans to end for redis multi/pipeline'\n      );\n    }\n    if (replies.length !== openSpans.length) {\n      return this._diag.error(\n        'number of multi command spans does not match response from redis'\n      );\n    }\n    // Determine a single operation name for the batch of commands.\n    // If all commands are identical, include the command name (e.g., \"MULTI SET\").\n    // Otherwise, use a generic \"MULTI\" or \"PIPELINE\" label for the span.\n    const allCommands = openSpans.map(s => s.commandName);\n    const allSameCommand = allCommands.every(cmd => cmd === allCommands[0]);\n    const operationName = allSameCommand\n      ? (isPipeline ? 'PIPELINE ' : 'MULTI ') + allCommands[0]\n      : isPipeline\n        ? 'PIPELINE'\n        : 'MULTI';\n\n    for (let i = 0; i < openSpans.length; i++) {\n      const { span, commandArgs } = openSpans[i];\n      const currCommandRes = replies[i];\n      const [res, err] =\n        currCommandRes instanceof Error\n          ? [null, currCommandRes]\n          : [currCommandRes, undefined];\n\n      if (this._semconvStability & SemconvStability.STABLE) {\n        span.setAttribute(ATTR_DB_OPERATION_NAME, operationName);\n      }\n\n      this._endSpanWithResponse(span, allCommands[i], commandArgs, res, err);\n    }\n  }\n\n  private _endSpanWithResponse(\n    span: Span,\n    commandName: string,\n    commandArgs: Array,\n    response: unknown,\n    error: Error | undefined\n  ) {\n    const { responseHook } = this.getConfig();\n    if (!error && responseHook) {\n      try {\n        responseHook(span, commandName, commandArgs, response);\n      } catch (err) {\n        this._diag.error('responseHook throw an exception', err);\n      }\n    }\n    if (error) {\n      span.recordException(error);\n      span.setStatus({ code: SpanStatusCode.ERROR, message: error?.message });\n    }\n    span.end();\n  }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n  InstrumentationBase,\n  InstrumentationModuleDefinition,\n} from '@opentelemetry/instrumentation';\nimport { RedisInstrumentationConfig } from './types';\n/** @knipignore */\nimport { PACKAGE_NAME, PACKAGE_VERSION } from './version';\nimport { RedisInstrumentationV2_V3 } from './v2-v3/instrumentation';\nimport { TracerProvider } from '@opentelemetry/api';\nimport { RedisInstrumentationV4_V5 } from './v4-v5/instrumentation';\n\nconst DEFAULT_CONFIG: RedisInstrumentationConfig = {\n  requireParentSpan: false,\n};\n\n// Wrapper RedisInstrumentation that address all supported versions\nexport class RedisInstrumentation extends InstrumentationBase {\n  private instrumentationV2_V3: RedisInstrumentationV2_V3;\n  private instrumentationV4_V5: RedisInstrumentationV4_V5;\n\n  // this is used to bypass a flaw in the base class constructor, which is calling\n  // member functions before the constructor has a chance to fully initialize the member variables.\n  private initialized = false;\n\n  constructor(config: RedisInstrumentationConfig = {}) {\n    const resolvedConfig = { ...DEFAULT_CONFIG, ...config };\n    super(PACKAGE_NAME, PACKAGE_VERSION, resolvedConfig);\n\n    this.instrumentationV2_V3 = new RedisInstrumentationV2_V3(this.getConfig());\n    this.instrumentationV4_V5 = new RedisInstrumentationV4_V5(this.getConfig());\n    this.initialized = true;\n  }\n\n  override setConfig(config: RedisInstrumentationConfig = {}) {\n    const newConfig = { ...DEFAULT_CONFIG, ...config };\n    super.setConfig(newConfig);\n    if (!this.initialized) {\n      return;\n    }\n\n    this.instrumentationV2_V3.setConfig(newConfig);\n    this.instrumentationV4_V5.setConfig(newConfig);\n  }\n\n  override init() {}\n\n  // Return underlying modules, as consumers (like https://github.com/DrewCorlin/opentelemetry-node-bundler-plugins) may\n  // expect them to be populated without knowing that this module wraps 2 instrumentations\n  override getModuleDefinitions(): InstrumentationModuleDefinition[] {\n    return [\n      ...this.instrumentationV2_V3.getModuleDefinitions(),\n      ...this.instrumentationV4_V5.getModuleDefinitions(),\n    ];\n  }\n\n  override setTracerProvider(tracerProvider: TracerProvider) {\n    super.setTracerProvider(tracerProvider);\n    if (!this.initialized) {\n      return;\n    }\n    this.instrumentationV2_V3.setTracerProvider(tracerProvider);\n    this.instrumentationV4_V5.setTracerProvider(tracerProvider);\n  }\n\n  override enable() {\n    super.enable();\n    if (!this.initialized) {\n      return;\n    }\n    this.instrumentationV2_V3.enable();\n    this.instrumentationV4_V5.enable();\n  }\n\n  override disable() {\n    super.disable();\n    if (!this.initialized) {\n      return;\n    }\n    this.instrumentationV2_V3.disable();\n    this.instrumentationV4_V5.disable();\n  }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { RedisInstrumentation } from './redis';\nexport type {\n  DbStatementSerializer,\n  RedisInstrumentationConfig,\n  RedisResponseCustomAttributeFunction,\n} from './types';\n","import type { CommandArgs as IORedisCommandArgs } from '@opentelemetry/instrumentation-ioredis';\n\nconst SINGLE_ARG_COMMANDS = ['get', 'set', 'setex'];\n\nexport const GET_COMMANDS = ['get', 'mget'];\nexport const SET_COMMANDS = ['set', 'setex'];\n// todo: del, expire\n\n/** Checks if a given command is in the list of redis commands.\n *  Useful because commands can come in lowercase or uppercase (depending on the library). */\nexport function isInCommands(redisCommands: string[], command: string): boolean {\n  return redisCommands.includes(command.toLowerCase());\n}\n\n/** Determine cache operation based on redis statement */\nexport function getCacheOperation(\n  command: string,\n): 'cache.get' | 'cache.put' | 'cache.remove' | 'cache.flush' | undefined {\n  if (isInCommands(GET_COMMANDS, command)) {\n    return 'cache.get';\n  } else if (isInCommands(SET_COMMANDS, command)) {\n    return 'cache.put';\n  } else {\n    return undefined;\n  }\n}\n\nfunction keyHasPrefix(key: string, prefixes: string[]): boolean {\n  return prefixes.some(prefix => key.startsWith(prefix));\n}\n\n/** Safely converts a redis key to a string (comma-separated if there are multiple keys) */\nexport function getCacheKeySafely(redisCommand: string, cmdArgs: IORedisCommandArgs): string[] | undefined {\n  try {\n    if (cmdArgs.length === 0) {\n      return undefined;\n    }\n\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    const processArg = (arg: string | Buffer | number | any[]): string[] => {\n      if (typeof arg === 'string' || typeof arg === 'number' || Buffer.isBuffer(arg)) {\n        return [arg.toString()];\n      } else if (Array.isArray(arg)) {\n        return flatten(arg.map(arg => processArg(arg)));\n      } else {\n        return [''];\n      }\n    };\n\n    const firstArg = cmdArgs[0];\n    if (isInCommands(SINGLE_ARG_COMMANDS, redisCommand) && firstArg != null) {\n      return processArg(firstArg);\n    }\n\n    return flatten(cmdArgs.map(arg => processArg(arg)));\n  } catch {\n    return undefined;\n  }\n}\n\n/** Determines whether a redis operation should be considered as \"cache operation\" by checking if a key is prefixed.\n *  We only support certain commands (such as 'set', 'get', 'mget'). */\nexport function shouldConsiderForCache(redisCommand: string, keys: string[], prefixes: string[]): boolean {\n  if (!getCacheOperation(redisCommand)) {\n    return false;\n  }\n\n  for (const key of keys) {\n    if (keyHasPrefix(key, prefixes)) {\n      return true;\n    }\n  }\n  return false;\n}\n\n/** Calculates size based on the cache response value */\nexport function calculateCacheItemSize(response: unknown): number | undefined {\n  const getSize = (value: unknown): number | undefined => {\n    try {\n      if (Buffer.isBuffer(value)) return value.byteLength;\n      else if (typeof value === 'string') return value.length;\n      else if (typeof value === 'number') return value.toString().length;\n      else if (value === null || value === undefined) return 0;\n      return JSON.stringify(value).length;\n    } catch {\n      return undefined;\n    }\n  };\n\n  return Array.isArray(response)\n    ? response.reduce((acc: number | undefined, curr) => {\n        const size = getSize(curr);\n        return typeof size === 'number' ? (acc !== undefined ? acc + size : size) : acc;\n      }, 0)\n    : getSize(response);\n}\n\ntype NestedArray = Array | T>;\n\nfunction flatten(input: NestedArray): T[] {\n  const result: T[] = [];\n\n  const flattenHelper = (input: NestedArray): void => {\n    input.forEach((el: T | NestedArray) => {\n      if (Array.isArray(el)) {\n        flattenHelper(el);\n      } else {\n        result.push(el);\n      }\n    });\n  };\n\n  flattenHelper(input);\n  return result;\n}\n","import type { Span } from '@opentelemetry/api';\nimport type { RedisResponseCustomAttributeFunction } from '@opentelemetry/instrumentation-ioredis';\nimport { IORedisInstrumentation } from '@opentelemetry/instrumentation-ioredis';\nimport { RedisInstrumentation } from '@opentelemetry/instrumentation-redis';\nimport type { IntegrationFn } from '@sentry/core';\nimport {\n  defineIntegration,\n  SEMANTIC_ATTRIBUTE_CACHE_HIT,\n  SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE,\n  SEMANTIC_ATTRIBUTE_CACHE_KEY,\n  SEMANTIC_ATTRIBUTE_SENTRY_OP,\n  SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n  spanToJSON,\n  truncate,\n} from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport {\n  calculateCacheItemSize,\n  GET_COMMANDS,\n  getCacheKeySafely,\n  getCacheOperation,\n  isInCommands,\n  shouldConsiderForCache,\n} from '../../utils/redisCache';\n\ninterface RedisOptions {\n  /**\n   * Define cache prefixes for cache keys that should be captured as a cache span.\n   *\n   * Setting this to, for example, `['user:']` will capture cache keys that start with `user:`.\n   */\n  cachePrefixes?: string[];\n  /**\n   * Maximum length of the cache key added to the span description. If the key exceeds this length, it will be truncated.\n   *\n   * Passing `0` will use the full cache key without truncation.\n   *\n   * By default, the full cache key is used.\n   */\n  maxCacheKeyLength?: number;\n}\n\nconst INTEGRATION_NAME = 'Redis';\n\n/* Only exported for testing purposes */\nexport let _redisOptions: RedisOptions = {};\n\n/* Only exported for testing purposes */\nexport const cacheResponseHook: RedisResponseCustomAttributeFunction = (\n  span: Span,\n  redisCommand,\n  cmdArgs,\n  response,\n) => {\n  span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, 'auto.db.otel.redis');\n\n  const safeKey = getCacheKeySafely(redisCommand, cmdArgs);\n  const cacheOperation = getCacheOperation(redisCommand);\n\n  if (\n    !safeKey ||\n    !cacheOperation ||\n    !_redisOptions.cachePrefixes ||\n    !shouldConsiderForCache(redisCommand, safeKey, _redisOptions.cachePrefixes)\n  ) {\n    // not relevant for cache\n    return;\n  }\n\n  // otel/ioredis seems to be using the old standard, as there was a change to those params: https://github.com/open-telemetry/opentelemetry-specification/issues/3199\n  // We are using params based on the docs: https://opentelemetry.io/docs/specs/semconv/attributes-registry/network/\n  const networkPeerAddress = spanToJSON(span).data['net.peer.name'];\n  const networkPeerPort = spanToJSON(span).data['net.peer.port'];\n  if (networkPeerPort && networkPeerAddress) {\n    span.setAttributes({ 'network.peer.address': networkPeerAddress, 'network.peer.port': networkPeerPort });\n  }\n\n  const cacheItemSize = calculateCacheItemSize(response);\n\n  if (cacheItemSize) {\n    span.setAttribute(SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE, cacheItemSize);\n  }\n\n  if (isInCommands(GET_COMMANDS, redisCommand) && cacheItemSize !== undefined) {\n    span.setAttribute(SEMANTIC_ATTRIBUTE_CACHE_HIT, cacheItemSize > 0);\n  }\n\n  span.setAttributes({\n    [SEMANTIC_ATTRIBUTE_SENTRY_OP]: cacheOperation,\n    [SEMANTIC_ATTRIBUTE_CACHE_KEY]: safeKey,\n  });\n\n  // todo: change to string[] once EAP supports it\n  const spanDescription = safeKey.join(', ');\n\n  span.updateName(\n    _redisOptions.maxCacheKeyLength ? truncate(spanDescription, _redisOptions.maxCacheKeyLength) : spanDescription,\n  );\n};\n\nconst instrumentIORedis = generateInstrumentOnce(`${INTEGRATION_NAME}.IORedis`, () => {\n  return new IORedisInstrumentation({\n    responseHook: cacheResponseHook,\n  });\n});\n\nconst instrumentRedisModule = generateInstrumentOnce(`${INTEGRATION_NAME}.Redis`, () => {\n  return new RedisInstrumentation({\n    responseHook: cacheResponseHook,\n  });\n});\n\n/** To be able to preload all Redis OTel instrumentations with just one ID (\"Redis\"), all the instrumentations are generated in this one function  */\nexport const instrumentRedis = Object.assign(\n  (): void => {\n    instrumentIORedis();\n    instrumentRedisModule();\n\n    // todo: implement them gradually\n    // new LegacyRedisInstrumentation({}),\n  },\n  { id: INTEGRATION_NAME },\n);\n\nconst _redisIntegration = ((options: RedisOptions = {}) => {\n  return {\n    name: INTEGRATION_NAME,\n    setupOnce() {\n      _redisOptions = options;\n      instrumentRedis();\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for the [redis](https://www.npmjs.com/package/redis) and\n * [ioredis](https://www.npmjs.com/package/ioredis) libraries.\n *\n * For more information, see the [`redisIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/redis/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n *  integrations: [Sentry.redisIntegration()],\n * });\n * ```\n */\nexport const redisIntegration = defineIntegration(_redisIntegration);\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type * as pgTypes from 'pg';\nimport type * as pgPoolTypes from 'pg-pool';\n\nexport type PostgresCallback = (err: Error, res: object) => unknown;\n\n// NB: this type describes the shape of a parsed, normalized form of the\n// connection information that's stored inside each pg.Client instance. It's\n// _not_ the same as the ConnectionConfig type exported from `@types/pg`. That\n// type defines how data must be _passed in_ when creating a new `pg.Client`,\n// which doesn't necessarily match the normalized internal form. E.g., a user\n// can call `new Client({ connectionString: '...' }), but `connectionString`\n// will never show up in the type below, because only the extracted host, port,\n// etc. are recorded in this normalized config. The keys listed below are also\n// incomplete, which is fine because the type is internal and these keys are the\n// only ones our code is reading. See https://github.com/brianc/node-postgres/blob/fde5ec586e49258dfc4a2fcd861fcdecb4794fc3/lib/client.js#L25\nexport interface PgParsedConnectionParams {\n  database?: string;\n  host?: string;\n  namespace?: string;\n  port?: number;\n  user?: string;\n}\n\nexport interface PgClientExtended extends pgTypes.Client {\n  connectionParameters: PgParsedConnectionParams;\n}\n\nexport type PgPoolCallback = (\n  err: Error,\n  client: any,\n  done: (release?: any) => void\n) => void;\n\nexport interface PgPoolOptionsParams {\n  allowExitOnIdle: boolean;\n  connectionString?: string; // connection string if provided directly\n  database: string;\n  host: string;\n  idleTimeoutMillis: number; // the minimum amount of time that an object may sit idle in the pool before it is eligible for eviction due to idle time\n  max: number;\n  maxClient: number; // maximum size of the pool\n  maxLifetimeSeconds: number;\n  maxUses: number;\n  namespace: string;\n  port: number;\n  user: string;\n}\n\nexport const EVENT_LISTENERS_SET = Symbol(\n  'opentelemetry.instrumentation.pg.eventListenersSet'\n);\n\nexport interface PgPoolExtended extends pgPoolTypes {\n  options: PgPoolOptionsParams;\n  [EVENT_LISTENERS_SET]?: boolean; // flag to identify if the event listeners for instrumentation have been set\n}\n\nexport type PgClientConnect = (callback?: Function) => Promise | void;\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Postgresql specific attributes not covered by semantic conventions\nexport enum AttributeNames {\n  PG_VALUES = 'db.postgresql.values',\n  PG_PLAN = 'db.postgresql.plan',\n  IDLE_TIMEOUT_MILLIS = 'db.postgresql.idle.timeout.millis',\n  MAX_CLIENT = 'db.postgresql.max.client',\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n\n/**\n * The name of the connection pool; unique within the instrumented application. In case the connection pool implementation doesn't provide a name, instrumentation **SHOULD** use a combination of parameters that would make the name unique, for example, combining attributes `server.address`, `server.port`, and `db.namespace`, formatted as `server.address:server.port/db.namespace`. Instrumentations that generate connection pool name following different patterns **SHOULD** document it.\n *\n * @example myDataSource\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_DB_CLIENT_CONNECTION_POOL_NAME =\n  'db.client.connection.pool.name' as const;\n\n/**\n * The state of a connection in the pool\n *\n * @example idle\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_DB_CLIENT_CONNECTION_STATE =\n  'db.client.connection.state' as const;\n\n/**\n * Deprecated, use `server.address`, `server.port` attributes instead.\n *\n * @example \"Server=(localdb)\\\\v11.0;Integrated Security=true;\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` and `server.port`.\n */\nexport const ATTR_DB_CONNECTION_STRING = 'db.connection_string' as const;\n\n/**\n * Deprecated, use `db.namespace` instead.\n *\n * @example customers\n * @example main\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.namespace`.\n */\nexport const ATTR_DB_NAME = 'db.name' as const;\n\n/**\n * The database statement being executed.\n *\n * @example SELECT * FROM wuser_table\n * @example SET mykey \"WuValue\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.query.text`.\n */\nexport const ATTR_DB_STATEMENT = 'db.statement' as const;\n\n/**\n * Deprecated, use `db.system.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.system.name`.\n */\nexport const ATTR_DB_SYSTEM = 'db.system' as const;\n\n/**\n * Deprecated, no replacement at this time.\n *\n * @example readonly_user\n * @example reporting_user\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Removed, no replacement at this time.\n */\nexport const ATTR_DB_USER = 'db.user' as const;\n\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexport const ATTR_NET_PEER_NAME = 'net.peer.name' as const;\n\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexport const ATTR_NET_PEER_PORT = 'net.peer.port' as const;\n\n/**\n * Enum value \"idle\" for attribute {@link ATTR_DB_CLIENT_CONNECTION_STATE}.\n */\nexport const DB_CLIENT_CONNECTION_STATE_VALUE_IDLE = 'idle' as const;\n\n/**\n * Enum value \"used\" for attribute {@link ATTR_DB_CLIENT_CONNECTION_STATE}.\n */\nexport const DB_CLIENT_CONNECTION_STATE_VALUE_USED = 'used' as const;\n\n/**\n * Enum value \"postgresql\" for attribute {@link ATTR_DB_SYSTEM}.\n */\nexport const DB_SYSTEM_VALUE_POSTGRESQL = 'postgresql' as const;\n\n/**\n * The number of connections that are currently in state described by the `state` attribute\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const METRIC_DB_CLIENT_CONNECTION_COUNT =\n  'db.client.connection.count' as const;\n\n/**\n * The number of current pending requests for an open connection\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS =\n  'db.client.connection.pending_requests' as const;\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// Contains span names produced by instrumentation\nexport enum SpanNames {\n  QUERY_PREFIX = 'pg.query',\n  CONNECT = 'pg.connect',\n  POOL_CONNECT = 'pg-pool.connect',\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  context,\n  trace,\n  Span,\n  SpanStatusCode,\n  Tracer,\n  SpanKind,\n  diag,\n  UpDownCounter,\n  Attributes,\n} from '@opentelemetry/api';\nimport { AttributeNames } from './enums/AttributeNames';\nimport {\n  ATTR_ERROR_TYPE,\n  ATTR_DB_SYSTEM_NAME,\n  ATTR_DB_NAMESPACE,\n  ATTR_SERVER_ADDRESS,\n  ATTR_SERVER_PORT,\n  ATTR_DB_QUERY_TEXT,\n  DB_SYSTEM_NAME_VALUE_POSTGRESQL,\n} from '@opentelemetry/semantic-conventions';\nimport {\n  ATTR_DB_CLIENT_CONNECTION_POOL_NAME,\n  ATTR_DB_CLIENT_CONNECTION_STATE,\n  DB_CLIENT_CONNECTION_STATE_VALUE_USED,\n  DB_CLIENT_CONNECTION_STATE_VALUE_IDLE,\n  ATTR_DB_SYSTEM,\n  ATTR_DB_NAME,\n  ATTR_DB_USER,\n  DB_SYSTEM_VALUE_POSTGRESQL,\n  ATTR_DB_CONNECTION_STRING,\n  ATTR_NET_PEER_PORT,\n  ATTR_NET_PEER_NAME,\n  ATTR_DB_STATEMENT,\n} from './semconv';\nimport {\n  PgClientExtended,\n  PostgresCallback,\n  PgPoolCallback,\n  PgPoolExtended,\n  PgParsedConnectionParams,\n  PgPoolOptionsParams,\n} from './internal-types';\nimport { PgInstrumentationConfig } from './types';\nimport type * as pgTypes from 'pg';\nimport {\n  safeExecuteInTheMiddle,\n  SemconvStability,\n} from '@opentelemetry/instrumentation';\nimport { SpanNames } from './enums/SpanNames';\n\n/**\n * Helper function to get a low cardinality span name from whatever info we have\n * about the query.\n *\n * This is tricky, because we don't have most of the information (table name,\n * operation name, etc) the spec recommends using to build a low-cardinality\n * value w/o parsing. So, we use db.name and assume that, if the query's a named\n * prepared statement, those `name` values will be low cardinality. If we don't\n * have a named prepared statement, we try to parse an operation (despite the\n * spec's warnings).\n *\n * @params dbName The name of the db against which this query is being issued,\n *   which could be missing if no db name was given at the time that the\n *   connection was established.\n * @params queryConfig Information we have about the query being issued, typed\n *   to reflect only the validation we've actually done on the args to\n *   `client.query()`. This will be undefined if `client.query()` was called\n *   with invalid arguments.\n */\nexport function getQuerySpanName(\n  dbName: string | undefined,\n  queryConfig?: { text: string; name?: unknown }\n) {\n  // NB: when the query config is invalid, we omit the dbName too, so that\n  // someone (or some tool) reading the span name doesn't misinterpret the\n  // dbName as being a prepared statement or sql commit name.\n  if (!queryConfig) return SpanNames.QUERY_PREFIX;\n\n  // Either the name of a prepared statement; or an attempted parse\n  // of the SQL command, normalized to uppercase; or unknown.\n  const command =\n    typeof queryConfig.name === 'string' && queryConfig.name\n      ? queryConfig.name\n      : parseNormalizedOperationName(queryConfig.text);\n\n  return `${SpanNames.QUERY_PREFIX}:${command}${dbName ? ` ${dbName}` : ''}`;\n}\n\nexport function parseNormalizedOperationName(queryText: string) {\n  // Trim the query text to handle leading/trailing whitespace\n  const trimmedQuery = queryText.trim();\n  const indexOfFirstSpace = trimmedQuery.indexOf(' ');\n  let sqlCommand =\n    indexOfFirstSpace === -1\n      ? trimmedQuery\n      : trimmedQuery.slice(0, indexOfFirstSpace);\n  sqlCommand = sqlCommand.toUpperCase();\n\n  // Handle query text being \"COMMIT;\", which has an extra semicolon before the space.\n  return sqlCommand.endsWith(';') ? sqlCommand.slice(0, -1) : sqlCommand;\n}\n\nexport function parseAndMaskConnectionString(connectionString: string): string {\n  try {\n    // Parse the connection string\n    const url = new URL(connectionString);\n\n    // Remove all auth information (username and password)\n    url.username = '';\n    url.password = '';\n\n    return url.toString();\n  } catch (e) {\n    // If parsing fails, return a generic connection string\n    return 'postgresql://localhost:5432/';\n  }\n}\n\nexport function getConnectionString(\n  params: PgParsedConnectionParams | PgPoolOptionsParams\n) {\n  if ('connectionString' in params && params.connectionString) {\n    return parseAndMaskConnectionString(params.connectionString);\n  }\n  const host = params.host || 'localhost';\n  const port = params.port || 5432;\n  const database = params.database || '';\n  return `postgresql://${host}:${port}/${database}`;\n}\n\nfunction getPort(port: number | undefined): number | undefined {\n  // Port may be NaN as parseInt() is used on the value, passing null will result in NaN being parsed.\n  // https://github.com/brianc/node-postgres/blob/2a8efbee09a284be12748ed3962bc9b816965e36/packages/pg/lib/connection-parameters.js#L66\n  if (Number.isInteger(port)) {\n    return port;\n  }\n\n  // Unable to find the default used in pg code, so falling back to 'undefined'.\n  return undefined;\n}\n\nexport function getSemanticAttributesFromConnection(\n  params: PgParsedConnectionParams,\n  semconvStability: SemconvStability\n) {\n  let attributes: Attributes = {};\n\n  if (semconvStability & SemconvStability.OLD) {\n    attributes = {\n      ...attributes,\n      [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_POSTGRESQL,\n      [ATTR_DB_NAME]: params.database,\n      [ATTR_DB_CONNECTION_STRING]: getConnectionString(params),\n      [ATTR_DB_USER]: params.user,\n      [ATTR_NET_PEER_NAME]: params.host, // required\n      [ATTR_NET_PEER_PORT]: getPort(params.port),\n    };\n  }\n  if (semconvStability & SemconvStability.STABLE) {\n    attributes = {\n      ...attributes,\n      [ATTR_DB_SYSTEM_NAME]: DB_SYSTEM_NAME_VALUE_POSTGRESQL,\n      [ATTR_DB_NAMESPACE]: params.namespace,\n      [ATTR_SERVER_ADDRESS]: params.host,\n      [ATTR_SERVER_PORT]: getPort(params.port),\n    };\n  }\n\n  return attributes;\n}\n\nexport function getSemanticAttributesFromPoolConnection(\n  params: PgPoolOptionsParams,\n  semconvStability: SemconvStability\n) {\n  let url: URL | undefined;\n  try {\n    url = params.connectionString\n      ? new URL(params.connectionString)\n      : undefined;\n  } catch (e) {\n    url = undefined;\n  }\n  let attributes: Attributes = {\n    [AttributeNames.IDLE_TIMEOUT_MILLIS]: params.idleTimeoutMillis,\n    [AttributeNames.MAX_CLIENT]: params.maxClient,\n  };\n\n  if (semconvStability & SemconvStability.OLD) {\n    attributes = {\n      ...attributes,\n      [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_POSTGRESQL,\n      [ATTR_DB_NAME]: url?.pathname.slice(1) ?? params.database,\n      [ATTR_DB_CONNECTION_STRING]: getConnectionString(params),\n      [ATTR_NET_PEER_NAME]: url?.hostname ?? params.host,\n      [ATTR_NET_PEER_PORT]: Number(url?.port) || getPort(params.port),\n      [ATTR_DB_USER]: url?.username ?? params.user,\n    };\n  }\n  if (semconvStability & SemconvStability.STABLE) {\n    attributes = {\n      ...attributes,\n      [ATTR_DB_SYSTEM_NAME]: DB_SYSTEM_NAME_VALUE_POSTGRESQL,\n      [ATTR_DB_NAMESPACE]: params.namespace,\n      [ATTR_SERVER_ADDRESS]: url?.hostname ?? params.host,\n      [ATTR_SERVER_PORT]: Number(url?.port) || getPort(params.port),\n    };\n  }\n\n  return attributes;\n}\n\nexport function shouldSkipInstrumentation(\n  instrumentationConfig: PgInstrumentationConfig\n) {\n  return (\n    instrumentationConfig.requireParentSpan === true &&\n    trace.getSpan(context.active()) === undefined\n  );\n}\n\n// Create a span from our normalized queryConfig object,\n// or return a basic span if no queryConfig was given/could be created.\nexport function handleConfigQuery(\n  this: PgClientExtended,\n  tracer: Tracer,\n  instrumentationConfig: PgInstrumentationConfig,\n  semconvStability: SemconvStability,\n  queryConfig?: { text: string; values?: unknown; name?: unknown }\n) {\n  // Create child span.\n  const { connectionParameters } = this;\n  const dbName = connectionParameters.database;\n\n  const spanName = getQuerySpanName(dbName, queryConfig);\n  const span = tracer.startSpan(spanName, {\n    kind: SpanKind.CLIENT,\n    attributes: getSemanticAttributesFromConnection(\n      connectionParameters,\n      semconvStability\n    ),\n  });\n\n  if (!queryConfig) {\n    return span;\n  }\n\n  // Set attributes\n  if (queryConfig.text) {\n    if (semconvStability & SemconvStability.OLD) {\n      span.setAttribute(ATTR_DB_STATEMENT, queryConfig.text);\n    }\n    if (semconvStability & SemconvStability.STABLE) {\n      span.setAttribute(ATTR_DB_QUERY_TEXT, queryConfig.text);\n    }\n  }\n\n  if (\n    instrumentationConfig.enhancedDatabaseReporting &&\n    Array.isArray(queryConfig.values)\n  ) {\n    try {\n      const convertedValues = queryConfig.values.map(value => {\n        if (value == null) {\n          return 'null';\n        } else if (value instanceof Buffer) {\n          return value.toString();\n        } else if (typeof value === 'object') {\n          if (typeof value.toPostgres === 'function') {\n            return value.toPostgres();\n          }\n          return JSON.stringify(value);\n        } else {\n          //string, number\n          return value.toString();\n        }\n      });\n      span.setAttribute(AttributeNames.PG_VALUES, convertedValues);\n    } catch (e) {\n      diag.error('failed to stringify ', queryConfig.values, e);\n    }\n  }\n\n  // Set plan name attribute, if present\n  if (typeof queryConfig.name === 'string') {\n    span.setAttribute(AttributeNames.PG_PLAN, queryConfig.name);\n  }\n\n  return span;\n}\n\nexport function handleExecutionResult(\n  config: PgInstrumentationConfig,\n  span: Span,\n  pgResult: pgTypes.QueryResult | pgTypes.QueryArrayResult | unknown\n) {\n  if (typeof config.responseHook === 'function') {\n    safeExecuteInTheMiddle(\n      () => {\n        config.responseHook!(span, {\n          data: pgResult as pgTypes.QueryResult | pgTypes.QueryArrayResult,\n        });\n      },\n      err => {\n        if (err) {\n          diag.error('Error running response hook', err);\n        }\n      },\n      true\n    );\n  }\n}\n\nexport function patchCallback(\n  instrumentationConfig: PgInstrumentationConfig,\n  span: Span,\n  cb: PostgresCallback,\n  attributes: Attributes,\n  recordDuration: { (): void }\n): PostgresCallback {\n  return function patchedCallback(\n    this: PgClientExtended,\n    err: Error,\n    res: object\n  ) {\n    if (err) {\n      if (Object.prototype.hasOwnProperty.call(err, 'code')) {\n        attributes[ATTR_ERROR_TYPE] = (err as any)['code'];\n      }\n      if (err instanceof Error) {\n        span.recordException(sanitizedErrorMessage(err));\n      }\n      span.setStatus({\n        code: SpanStatusCode.ERROR,\n        message: err.message,\n      });\n    } else {\n      handleExecutionResult(instrumentationConfig, span, res);\n    }\n\n    recordDuration();\n    span.end();\n    cb.call(this, err, res);\n  };\n}\n\nexport function getPoolName(pool: PgPoolOptionsParams): string {\n  let poolName = '';\n  poolName += (pool?.host ? `${pool.host}` : 'unknown_host') + ':';\n  poolName += (pool?.port ? `${pool.port}` : 'unknown_port') + '/';\n  poolName += pool?.database ? `${pool.database}` : 'unknown_database';\n\n  return poolName.trim();\n}\n\nexport interface poolConnectionsCounter {\n  used: number;\n  idle: number;\n  pending: number;\n}\n\nexport function updateCounter(\n  poolName: string,\n  pool: PgPoolExtended,\n  connectionCount: UpDownCounter,\n  connectionPendingRequests: UpDownCounter,\n  latestCounter: poolConnectionsCounter\n): poolConnectionsCounter {\n  const all = pool.totalCount;\n  const pending = pool.waitingCount;\n  const idle = pool.idleCount;\n  const used = all - idle;\n\n  connectionCount.add(used - latestCounter.used, {\n    [ATTR_DB_CLIENT_CONNECTION_STATE]: DB_CLIENT_CONNECTION_STATE_VALUE_USED,\n    [ATTR_DB_CLIENT_CONNECTION_POOL_NAME]: poolName,\n  });\n\n  connectionCount.add(idle - latestCounter.idle, {\n    [ATTR_DB_CLIENT_CONNECTION_STATE]: DB_CLIENT_CONNECTION_STATE_VALUE_IDLE,\n    [ATTR_DB_CLIENT_CONNECTION_POOL_NAME]: poolName,\n  });\n\n  connectionPendingRequests.add(pending - latestCounter.pending, {\n    [ATTR_DB_CLIENT_CONNECTION_POOL_NAME]: poolName,\n  });\n\n  return { used: used, idle: idle, pending: pending };\n}\n\nexport function patchCallbackPGPool(\n  span: Span,\n  cb: PgPoolCallback\n): PgPoolCallback {\n  return function patchedCallback(\n    this: PgPoolExtended,\n    err: Error,\n    res: object,\n    done: any\n  ) {\n    if (err) {\n      if (err instanceof Error) {\n        span.recordException(sanitizedErrorMessage(err));\n      }\n      span.setStatus({\n        code: SpanStatusCode.ERROR,\n        message: err.message,\n      });\n    }\n    span.end();\n    cb.call(this, err, res, done);\n  };\n}\n\nexport function patchClientConnectCallback(span: Span, cb: Function): Function {\n  return function patchedClientConnectCallback(\n    this: pgTypes.Client,\n    err: Error\n  ) {\n    if (err) {\n      if (err instanceof Error) {\n        span.recordException(sanitizedErrorMessage(err));\n      }\n      span.setStatus({\n        code: SpanStatusCode.ERROR,\n        message: err.message,\n      });\n    }\n    span.end();\n    cb.apply(this, arguments);\n  };\n}\n\n/**\n * Attempt to get a message string from a thrown value, while being quite\n * defensive, to recognize the fact that, in JS, any kind of value (even\n * primitives) can be thrown.\n */\nexport function getErrorMessage(e: unknown) {\n  return typeof e === 'object' && e !== null && 'message' in e\n    ? String((e as { message?: unknown }).message)\n    : undefined;\n}\n\nexport function isObjectWithTextString(it: unknown): it is ObjectWithText {\n  return (\n    typeof it === 'object' &&\n    typeof (it as null | { text?: unknown })?.text === 'string'\n  );\n}\n\nexport type ObjectWithText = {\n  text: string;\n  [k: string]: unknown;\n};\n\n/**\n * Generates a sanitized message for the error.\n * Only includes the error type and PostgreSQL error code, omitting any sensitive details.\n */\nexport function sanitizedErrorMessage(error: unknown): string {\n  const name = (error as any)?.name ?? 'PostgreSQLError';\n  const code = (error as any)?.code ?? 'UNKNOWN';\n\n  return `PostgreSQL error of type '${name}' occurred (code: ${code})`;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const PACKAGE_VERSION = '0.66.0';\nexport const PACKAGE_NAME = '@opentelemetry/instrumentation-pg';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n  isWrapped,\n  InstrumentationBase,\n  InstrumentationNodeModuleDefinition,\n  safeExecuteInTheMiddle,\n  InstrumentationNodeModuleFile,\n  SemconvStability,\n  semconvStabilityFromStr,\n} from '@opentelemetry/instrumentation';\nimport {\n  context,\n  trace,\n  Span,\n  SpanStatusCode,\n  SpanKind,\n  Histogram,\n  ValueType,\n  Attributes,\n  HrTime,\n  UpDownCounter,\n} from '@opentelemetry/api';\nimport type * as pgTypes from 'pg';\nimport type * as pgPoolTypes from 'pg-pool';\nimport {\n  PgClientConnect,\n  PgClientExtended,\n  PostgresCallback,\n  PgPoolExtended,\n  PgPoolCallback,\n  EVENT_LISTENERS_SET,\n} from './internal-types';\nimport { PgInstrumentationConfig } from './types';\nimport * as utils from './utils';\nimport { addSqlCommenterComment } from '@opentelemetry/sql-common';\n/** @knipignore */\nimport { PACKAGE_NAME, PACKAGE_VERSION } from './version';\nimport { SpanNames } from './enums/SpanNames';\nimport {\n  hrTime,\n  hrTimeDuration,\n  hrTimeToMilliseconds,\n} from '@opentelemetry/core';\nimport {\n  ATTR_ERROR_TYPE,\n  ATTR_SERVER_PORT,\n  ATTR_SERVER_ADDRESS,\n  ATTR_DB_NAMESPACE,\n  ATTR_DB_OPERATION_NAME,\n  ATTR_DB_SYSTEM_NAME,\n  METRIC_DB_CLIENT_OPERATION_DURATION,\n} from '@opentelemetry/semantic-conventions';\nimport {\n  METRIC_DB_CLIENT_CONNECTION_COUNT,\n  METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS,\n  ATTR_DB_SYSTEM,\n  DB_SYSTEM_VALUE_POSTGRESQL,\n} from './semconv';\n\nfunction extractModuleExports(module: any) {\n  return module[Symbol.toStringTag] === 'Module'\n    ? module.default // ESM\n    : module; // CommonJS\n}\n\nexport class PgInstrumentation extends InstrumentationBase {\n  declare private _operationDuration: Histogram;\n  declare private _connectionsCount: UpDownCounter;\n  declare private _connectionPendingRequests: UpDownCounter;\n  // Pool events connect, acquire, release and remove can be called\n  // multiple times without changing the values of total, idle and waiting\n  // connections. The _connectionsCounter is used to keep track of latest\n  // values and only update the metrics _connectionsCount and _connectionPendingRequests\n  // when the value change.\n  private _connectionsCounter: utils.poolConnectionsCounter = {\n    used: 0,\n    idle: 0,\n    pending: 0,\n  };\n  private _semconvStability: SemconvStability;\n\n  constructor(config: PgInstrumentationConfig = {}) {\n    super(PACKAGE_NAME, PACKAGE_VERSION, config);\n    this._semconvStability = semconvStabilityFromStr(\n      'database',\n      process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n    );\n  }\n\n  override _updateMetricInstruments() {\n    this._operationDuration = this.meter.createHistogram(\n      METRIC_DB_CLIENT_OPERATION_DURATION,\n      {\n        description: 'Duration of database client operations.',\n        unit: 's',\n        valueType: ValueType.DOUBLE,\n        advice: {\n          explicitBucketBoundaries: [\n            0.001, 0.005, 0.01, 0.05, 0.1, 0.5, 1, 5, 10,\n          ],\n        },\n      }\n    );\n\n    this._connectionsCounter = {\n      idle: 0,\n      pending: 0,\n      used: 0,\n    };\n    this._connectionsCount = this.meter.createUpDownCounter(\n      METRIC_DB_CLIENT_CONNECTION_COUNT,\n      {\n        description:\n          'The number of connections that are currently in state described by the state attribute.',\n        unit: '{connection}',\n      }\n    );\n    this._connectionPendingRequests = this.meter.createUpDownCounter(\n      METRIC_DB_CLIENT_CONNECTION_PENDING_REQUESTS,\n      {\n        description:\n          'The number of current pending requests for an open connection.',\n        unit: '{connection}',\n      }\n    );\n  }\n\n  protected init() {\n    const SUPPORTED_PG_VERSIONS = ['>=8.0.3 <9'];\n    const SUPPORTED_PG_POOL_VERSIONS = ['>=2.0.0 <4'];\n\n    const modulePgNativeClient = new InstrumentationNodeModuleFile(\n      'pg/lib/native/client.js',\n      SUPPORTED_PG_VERSIONS,\n      this._patchPgClient.bind(this),\n      this._unpatchPgClient.bind(this)\n    );\n\n    const modulePgClient = new InstrumentationNodeModuleFile(\n      'pg/lib/client.js',\n      SUPPORTED_PG_VERSIONS,\n      this._patchPgClient.bind(this),\n      this._unpatchPgClient.bind(this)\n    );\n\n    const modulePG = new InstrumentationNodeModuleDefinition(\n      'pg',\n      SUPPORTED_PG_VERSIONS,\n      (module: any) => {\n        const moduleExports = extractModuleExports(module);\n\n        this._patchPgClient(moduleExports.Client);\n        return module;\n      },\n      (module: any) => {\n        const moduleExports = extractModuleExports(module);\n\n        this._unpatchPgClient(moduleExports.Client);\n        return module;\n      },\n      [modulePgClient, modulePgNativeClient]\n    );\n\n    const modulePGPool = new InstrumentationNodeModuleDefinition(\n      'pg-pool',\n      SUPPORTED_PG_POOL_VERSIONS,\n      (module: any) => {\n        const moduleExports = extractModuleExports(module);\n        if (isWrapped(moduleExports.prototype.connect)) {\n          this._unwrap(moduleExports.prototype, 'connect');\n        }\n        this._wrap(\n          moduleExports.prototype,\n          'connect',\n          this._getPoolConnectPatch() as any\n        );\n        return moduleExports;\n      },\n      (module: any) => {\n        const moduleExports = extractModuleExports(module);\n        if (isWrapped(moduleExports.prototype.connect)) {\n          this._unwrap(moduleExports.prototype, 'connect');\n        }\n      }\n    );\n\n    return [modulePG, modulePGPool];\n  }\n\n  private _patchPgClient(module: any) {\n    if (!module) {\n      return;\n    }\n\n    const moduleExports = extractModuleExports(module);\n\n    if (isWrapped(moduleExports.prototype.query)) {\n      this._unwrap(moduleExports.prototype, 'query');\n    }\n\n    if (isWrapped(moduleExports.prototype.connect)) {\n      this._unwrap(moduleExports.prototype, 'connect');\n    }\n\n    this._wrap(\n      moduleExports.prototype,\n      'query',\n      this._getClientQueryPatch() as any\n    );\n\n    this._wrap(\n      moduleExports.prototype,\n      'connect',\n      this._getClientConnectPatch() as any\n    );\n\n    return module;\n  }\n\n  private _unpatchPgClient(module: any) {\n    const moduleExports = extractModuleExports(module);\n\n    if (isWrapped(moduleExports.prototype.query)) {\n      this._unwrap(moduleExports.prototype, 'query');\n    }\n\n    if (isWrapped(moduleExports.prototype.connect)) {\n      this._unwrap(moduleExports.prototype, 'connect');\n    }\n\n    return module;\n  }\n\n  private _getClientConnectPatch() {\n    const plugin = this;\n    return (original: PgClientConnect) => {\n      return function connect(this: pgTypes.Client, callback?: Function) {\n        const config = plugin.getConfig();\n\n        if (\n          utils.shouldSkipInstrumentation(config) ||\n          config.ignoreConnectSpans\n        ) {\n          return original.call(this, callback);\n        }\n\n        const span = plugin.tracer.startSpan(SpanNames.CONNECT, {\n          kind: SpanKind.CLIENT,\n          attributes: utils.getSemanticAttributesFromConnection(\n            this,\n            plugin._semconvStability\n          ),\n        });\n\n        if (callback) {\n          const parentSpan = trace.getSpan(context.active());\n          callback = utils.patchClientConnectCallback(span, callback);\n          if (parentSpan) {\n            callback = context.bind(context.active(), callback);\n          }\n        }\n\n        const connectResult: unknown = context.with(\n          trace.setSpan(context.active(), span),\n          () => {\n            return original.call(this, callback);\n          }\n        );\n\n        return handleConnectResult(span, connectResult);\n      };\n    };\n  }\n\n  private recordOperationDuration(attributes: Attributes, startTime: HrTime) {\n    const metricsAttributes: Attributes = {};\n    const keysToCopy: string[] = [\n      ATTR_DB_NAMESPACE,\n      ATTR_ERROR_TYPE,\n      ATTR_SERVER_PORT,\n      ATTR_SERVER_ADDRESS,\n      ATTR_DB_OPERATION_NAME,\n    ];\n    if (this._semconvStability & SemconvStability.OLD) {\n      keysToCopy.push(ATTR_DB_SYSTEM);\n    }\n    if (this._semconvStability & SemconvStability.STABLE) {\n      keysToCopy.push(ATTR_DB_SYSTEM_NAME);\n    }\n\n    keysToCopy.forEach(key => {\n      if (key in attributes) {\n        metricsAttributes[key] = attributes[key];\n      }\n    });\n\n    const durationSeconds =\n      hrTimeToMilliseconds(hrTimeDuration(startTime, hrTime())) / 1000;\n    this._operationDuration.record(durationSeconds, metricsAttributes);\n  }\n\n  private _getClientQueryPatch() {\n    const plugin = this;\n    return (original: typeof pgTypes.Client.prototype.query) => {\n      this._diag.debug('Patching pg.Client.prototype.query');\n      return function query(this: PgClientExtended, ...args: unknown[]) {\n        if (utils.shouldSkipInstrumentation(plugin.getConfig())) {\n          return original.apply(this, args as never);\n        }\n        const startTime = hrTime();\n\n        // client.query(text, cb?), client.query(text, values, cb?), and\n        // client.query(configObj, cb?) are all valid signatures. We construct\n        // a queryConfig obj from all (valid) signatures to build the span in a\n        // unified way. We verify that we at least have query text, and code\n        // defensively when dealing with `queryConfig` after that (to handle all\n        // the other invalid cases, like a non-array for values being provided).\n        // The type casts here reflect only what we've actually validated.\n        const arg0 = args[0];\n        const firstArgIsString = typeof arg0 === 'string';\n        const firstArgIsQueryObjectWithText =\n          utils.isObjectWithTextString(arg0);\n\n        // TODO: remove the `as ...` casts below when the TS version is upgraded.\n        // Newer TS versions will use the result of firstArgIsQueryObjectWithText\n        // to properly narrow arg0, but TS 4.3.5 does not.\n        const queryConfig = firstArgIsString\n          ? {\n              text: arg0 as string,\n              values: Array.isArray(args[1]) ? args[1] : undefined,\n            }\n          : firstArgIsQueryObjectWithText\n            ? {\n                ...(arg0 as any),\n                name: arg0.name,\n                text: arg0.text,\n                values:\n                  (arg0 as any).values ??\n                  (Array.isArray(args[1]) ? args[1] : undefined),\n              }\n            : undefined;\n\n        const attributes: Attributes = {\n          [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_POSTGRESQL,\n          [ATTR_DB_NAMESPACE]: this.database,\n          [ATTR_SERVER_PORT]: this.connectionParameters.port,\n          [ATTR_SERVER_ADDRESS]: this.connectionParameters.host,\n        };\n\n        if (queryConfig?.text) {\n          attributes[ATTR_DB_OPERATION_NAME] =\n            utils.parseNormalizedOperationName(queryConfig?.text);\n        }\n\n        const recordDuration = () => {\n          plugin.recordOperationDuration(attributes, startTime);\n        };\n\n        const instrumentationConfig = plugin.getConfig();\n\n        const span = utils.handleConfigQuery.call(\n          this,\n          plugin.tracer,\n          instrumentationConfig,\n          plugin._semconvStability,\n          queryConfig\n        );\n\n        // Modify query text w/ a tracing comment before invoking original for\n        // tracing, but only if args[0] has one of our expected shapes.\n        if (instrumentationConfig.addSqlCommenterCommentToQueries) {\n          if (firstArgIsString) {\n            args[0] = addSqlCommenterComment(span, arg0);\n          } else if (firstArgIsQueryObjectWithText && !('name' in arg0)) {\n            // In the case of a query object, we need to ensure there's no name field\n            // as this indicates a prepared query, where the comment would remain the same\n            // for every invocation and contain an outdated trace context.\n            args[0] = {\n              ...arg0,\n              text: addSqlCommenterComment(span, arg0.text),\n            };\n          }\n        }\n\n        // Bind callback (if any) to parent span (if any)\n        if (args.length > 0) {\n          const parentSpan = trace.getSpan(context.active());\n          if (typeof args[args.length - 1] === 'function') {\n            // Patch ParameterQuery callback\n            args[args.length - 1] = utils.patchCallback(\n              instrumentationConfig,\n              span,\n              args[args.length - 1] as PostgresCallback, // nb: not type safe.\n              attributes,\n              recordDuration\n            );\n\n            // If a parent span exists, bind the callback\n            if (parentSpan) {\n              args[args.length - 1] = context.bind(\n                context.active(),\n                args[args.length - 1]\n              );\n            }\n          } else if (typeof queryConfig?.callback === 'function') {\n            // Patch ConfigQuery callback\n            let callback = utils.patchCallback(\n              plugin.getConfig(),\n              span,\n              queryConfig.callback as PostgresCallback, // nb: not type safe.\n              attributes,\n              recordDuration\n            );\n\n            // If a parent span existed, bind the callback\n            if (parentSpan) {\n              callback = context.bind(context.active(), callback);\n            }\n\n            (args[0] as { callback?: PostgresCallback }).callback = callback;\n          }\n        }\n\n        const { requestHook } = instrumentationConfig;\n        if (typeof requestHook === 'function' && queryConfig) {\n          safeExecuteInTheMiddle(\n            () => {\n              // pick keys to expose explicitly, so we're not leaking pg package\n              // internals that are subject to change\n              const { database, host, port, user } = this.connectionParameters;\n              const connection = { database, host, port, user };\n\n              requestHook(span, {\n                connection,\n                query: {\n                  text: queryConfig.text,\n                  // nb: if `client.query` is called with illegal arguments\n                  // (e.g., if `queryConfig.values` is passed explicitly, but a\n                  // non-array is given), then the type casts will be wrong. But\n                  // we leave it up to the queryHook to handle that, and we\n                  // catch and swallow any errors it throws. The other options\n                  // are all worse. E.g., we could leave `queryConfig.values`\n                  // and `queryConfig.name` as `unknown`, but then the hook body\n                  // would be forced to validate (or cast) them before using\n                  // them, which seems incredibly cumbersome given that these\n                  // casts will be correct 99.9% of the time -- and pg.query\n                  // will immediately throw during development in the other .1%\n                  // of cases. Alternatively, we could simply skip calling the\n                  // hook when `values` or `name` don't have the expected type,\n                  // but that would add unnecessary validation overhead to every\n                  // hook invocation and possibly be even more confusing/unexpected.\n                  values: queryConfig.values as unknown[],\n                  name: queryConfig.name as string | undefined,\n                },\n              });\n            },\n            err => {\n              if (err) {\n                plugin._diag.error('Error running query hook', err);\n              }\n            },\n            true\n          );\n        }\n\n        let result: unknown;\n        try {\n          result = original.apply(this, args as never);\n        } catch (e: unknown) {\n          if (e instanceof Error) {\n            span.recordException(utils.sanitizedErrorMessage(e));\n          }\n          span.setStatus({\n            code: SpanStatusCode.ERROR,\n            message: utils.getErrorMessage(e),\n          });\n          span.end();\n          throw e;\n        }\n\n        // Bind promise to parent span and end the span\n        if (result instanceof Promise) {\n          return result\n            .then((result: unknown) => {\n              // Return a pass-along promise which ends the span and then goes to user's orig resolvers\n              return new Promise(resolve => {\n                utils.handleExecutionResult(plugin.getConfig(), span, result);\n                recordDuration();\n                span.end();\n                resolve(result);\n              });\n            })\n            .catch((error: Error) => {\n              return new Promise((_, reject) => {\n                if (error instanceof Error) {\n                  span.recordException(utils.sanitizedErrorMessage(error));\n                }\n                span.setStatus({\n                  code: SpanStatusCode.ERROR,\n                  message: error.message,\n                });\n                recordDuration();\n                span.end();\n                reject(error);\n              });\n            });\n        }\n\n        // else returns void\n        return result; // void\n      };\n    };\n  }\n\n  private _setPoolConnectEventListeners(pgPool: PgPoolExtended) {\n    if (pgPool[EVENT_LISTENERS_SET]) return;\n    const poolName = utils.getPoolName(pgPool.options);\n\n    pgPool.on('connect', () => {\n      this._connectionsCounter = utils.updateCounter(\n        poolName,\n        pgPool,\n        this._connectionsCount,\n        this._connectionPendingRequests,\n        this._connectionsCounter\n      );\n    });\n\n    pgPool.on('acquire', () => {\n      this._connectionsCounter = utils.updateCounter(\n        poolName,\n        pgPool,\n        this._connectionsCount,\n        this._connectionPendingRequests,\n        this._connectionsCounter\n      );\n    });\n\n    pgPool.on('remove', () => {\n      this._connectionsCounter = utils.updateCounter(\n        poolName,\n        pgPool,\n        this._connectionsCount,\n        this._connectionPendingRequests,\n        this._connectionsCounter\n      );\n    });\n\n    pgPool.on('release' as any, () => {\n      this._connectionsCounter = utils.updateCounter(\n        poolName,\n        pgPool,\n        this._connectionsCount,\n        this._connectionPendingRequests,\n        this._connectionsCounter\n      );\n    });\n    pgPool[EVENT_LISTENERS_SET] = true;\n  }\n\n  private _getPoolConnectPatch() {\n    const plugin = this;\n    return (originalConnect: typeof pgPoolTypes.prototype.connect) => {\n      return function connect(this: PgPoolExtended, callback?: PgPoolCallback) {\n        const config = plugin.getConfig();\n\n        if (utils.shouldSkipInstrumentation(config)) {\n          return originalConnect.call(this, callback as any);\n        }\n\n        // Still set up event listeners for metrics even when skipping spans\n        plugin._setPoolConnectEventListeners(this);\n\n        if (config.ignoreConnectSpans) {\n          return originalConnect.call(this, callback as any);\n        }\n\n        // setup span\n        const span = plugin.tracer.startSpan(SpanNames.POOL_CONNECT, {\n          kind: SpanKind.CLIENT,\n          attributes: utils.getSemanticAttributesFromPoolConnection(\n            this.options,\n            plugin._semconvStability\n          ),\n        });\n\n        if (callback) {\n          const parentSpan = trace.getSpan(context.active());\n          callback = utils.patchCallbackPGPool(\n            span,\n            callback\n          ) as PgPoolCallback;\n          // If a parent span exists, bind the callback\n          if (parentSpan) {\n            callback = context.bind(context.active(), callback);\n          }\n        }\n\n        const connectResult: unknown = context.with(\n          trace.setSpan(context.active(), span),\n          () => {\n            return originalConnect.call(this, callback as any);\n          }\n        );\n\n        return handleConnectResult(span, connectResult);\n      };\n    };\n  }\n}\n\nfunction handleConnectResult(span: Span, connectResult: unknown) {\n  if (!(connectResult instanceof Promise)) {\n    return connectResult;\n  }\n\n  const connectResultPromise = connectResult as Promise;\n  return context.bind(\n    context.active(),\n    connectResultPromise\n      .then(result => {\n        span.end();\n        return result;\n      })\n      .catch((error: unknown) => {\n        if (error instanceof Error) {\n          span.recordException(utils.sanitizedErrorMessage(error));\n        }\n        span.setStatus({\n          code: SpanStatusCode.ERROR,\n          message: utils.getErrorMessage(error),\n        });\n        span.end();\n        return Promise.reject(error);\n      })\n  );\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { PgInstrumentation } from './instrumentation';\nexport { AttributeNames } from './enums/AttributeNames';\nexport type {\n  PgInstrumentationConfig,\n  PgInstrumentationExecutionRequestHook,\n  PgInstrumentationExecutionResponseHook,\n  PgRequestHookInformation,\n  PgResponseHookInformation,\n} from './types';\n","import { PgInstrumentation } from '@opentelemetry/instrumentation-pg';\nimport type { IntegrationFn } from '@sentry/core';\nimport { defineIntegration } from '@sentry/core';\nimport { addOriginToSpan, generateInstrumentOnce } from '@sentry/node-core';\n\ninterface PostgresIntegrationOptions {\n  ignoreConnectSpans?: boolean;\n}\n\nconst INTEGRATION_NAME = 'Postgres';\n\nexport const instrumentPostgres = generateInstrumentOnce(\n  INTEGRATION_NAME,\n  PgInstrumentation,\n  (options?: PostgresIntegrationOptions) => ({\n    requireParentSpan: true,\n    requestHook(span) {\n      addOriginToSpan(span, 'auto.db.otel.postgres');\n    },\n    ignoreConnectSpans: options?.ignoreConnectSpans ?? false,\n  }),\n);\n\nconst _postgresIntegration = ((options?: PostgresIntegrationOptions) => {\n  return {\n    name: INTEGRATION_NAME,\n    setupOnce() {\n      instrumentPostgres(options);\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for the [pg](https://www.npmjs.com/package/pg) library.\n *\n * For more information, see the [`postgresIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/postgres/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n *  integrations: [Sentry.postgresIntegration()],\n * });\n * ```\n */\nexport const postgresIntegration = defineIntegration(_postgresIntegration);\n","// Instrumentation for https://github.com/porsager/postgres\n\nimport { context, trace } from '@opentelemetry/api';\nimport type { InstrumentationConfig } from '@opentelemetry/instrumentation';\nimport {\n  InstrumentationBase,\n  InstrumentationNodeModuleDefinition,\n  InstrumentationNodeModuleFile,\n  safeExecuteInTheMiddle,\n} from '@opentelemetry/instrumentation';\nimport {\n  ATTR_DB_OPERATION_NAME,\n  ATTR_DB_QUERY_TEXT,\n  ATTR_DB_RESPONSE_STATUS_CODE,\n  ATTR_DB_SYSTEM_NAME,\n  ATTR_ERROR_TYPE,\n} from '@opentelemetry/semantic-conventions';\nimport type { IntegrationFn, Span } from '@sentry/core';\nimport {\n  debug,\n  defineIntegration,\n  instrumentPostgresJsSql,\n  replaceExports,\n  SDK_VERSION,\n  SPAN_STATUS_ERROR,\n  startSpanManual,\n} from '@sentry/core';\nimport { addOriginToSpan, generateInstrumentOnce } from '@sentry/node-core';\nimport { DEBUG_BUILD } from '../../debug-build';\n\nconst INTEGRATION_NAME = 'PostgresJs';\nconst SUPPORTED_VERSIONS = ['>=3.0.0 <4'];\nconst SQL_OPERATION_REGEX = /^(SELECT|INSERT|UPDATE|DELETE|CREATE|DROP|ALTER)/i;\n\ntype PostgresConnectionContext = {\n  ATTR_DB_NAMESPACE?: string; // Database name\n  ATTR_SERVER_ADDRESS?: string; // Hostname or IP address of the database server\n  ATTR_SERVER_PORT?: string; // Port number of the database server\n};\n\n// Marker to track if a query was created from an instrumented sql instance\n// This prevents double-spanning when both wrapper and prototype patches are active\nconst QUERY_FROM_INSTRUMENTED_SQL = Symbol.for('sentry.query.from.instrumented.sql');\n\ntype PostgresJsInstrumentationConfig = InstrumentationConfig & {\n  /**\n   * Whether to require a parent span for the instrumentation.\n   * If set to true, the instrumentation will only create spans if there is a parent span\n   * available in the current scope.\n   * @default true\n   */\n  requireParentSpan?: boolean;\n  /**\n   * Hook to modify the span before it is started.\n   * This can be used to set additional attributes or modify the span in any way.\n   */\n  requestHook?: (span: Span, sanitizedSqlQuery: string, postgresConnectionContext?: PostgresConnectionContext) => void;\n};\n\nexport const instrumentPostgresJs = generateInstrumentOnce(\n  INTEGRATION_NAME,\n  (options?: PostgresJsInstrumentationConfig) =>\n    new PostgresJsInstrumentation({\n      requireParentSpan: options?.requireParentSpan ?? true,\n      requestHook: options?.requestHook,\n    }),\n);\n\n/**\n * Instrumentation for the [postgres](https://www.npmjs.com/package/postgres) library.\n * This instrumentation captures postgresjs queries and their attributes.\n *\n * Uses internal Sentry patching patterns to support both CommonJS and ESM environments.\n */\nexport class PostgresJsInstrumentation extends InstrumentationBase {\n  public constructor(config: PostgresJsInstrumentationConfig) {\n    super('sentry-postgres-js', SDK_VERSION, config);\n  }\n\n  /**\n   * Initializes the instrumentation by patching the postgres module.\n   * Uses two complementary approaches:\n   * 1. Main function wrapper: instruments sql instances created AFTER instrumentation is set up (CJS + ESM)\n   * 2. Query.prototype patch: fallback for sql instances created BEFORE instrumentation (CJS only)\n   */\n  public init(): InstrumentationNodeModuleDefinition {\n    const module = new InstrumentationNodeModuleDefinition(\n      'postgres',\n      SUPPORTED_VERSIONS,\n      exports => {\n        try {\n          return this._patchPostgres(exports);\n        } catch (e) {\n          DEBUG_BUILD && debug.error('Failed to patch postgres module:', e);\n          return exports;\n        }\n      },\n      exports => exports,\n    );\n\n    // Add fallback Query.prototype patching for pre-existing sql instances (CJS only)\n    // This catches queries from sql instances created before Sentry was initialized\n    ['src', 'cf/src', 'cjs/src'].forEach(path => {\n      module.files.push(\n        new InstrumentationNodeModuleFile(\n          `postgres/${path}/query.js`,\n          SUPPORTED_VERSIONS,\n          this._patchQueryPrototype.bind(this),\n          this._unpatchQueryPrototype.bind(this),\n        ),\n      );\n    });\n\n    return module;\n  }\n\n  /**\n   * Patches the postgres module by wrapping the main export function.\n   * This intercepts the creation of sql instances and instruments them.\n   */\n  private _patchPostgres(exports: { [key: string]: unknown }): { [key: string]: unknown } {\n    // In CJS: exports is the function itself\n    // In ESM: exports.default is the function\n    const isFunction = typeof exports === 'function';\n    const Original = isFunction ? exports : exports.default;\n\n    if (typeof Original !== 'function') {\n      DEBUG_BUILD && debug.warn('postgres module does not export a function. Skipping instrumentation.');\n      return exports;\n    }\n\n    // eslint-disable-next-line @typescript-eslint/no-this-alias\n    const self = this;\n\n    const WrappedPostgres = function (this: unknown, ...args: unknown[]): unknown {\n      const sql = Reflect.construct(Original as (...args: unknown[]) => unknown, args);\n\n      // Validate that construction succeeded and returned a valid function object\n      if (!sql || typeof sql !== 'function') {\n        DEBUG_BUILD && debug.warn('postgres() did not return a valid instance');\n        return sql;\n      }\n\n      // Delegate to the portable instrumentation from @sentry/core\n      const config = self.getConfig();\n      return instrumentPostgresJsSql(sql, {\n        requireParentSpan: config.requireParentSpan,\n        requestHook: config.requestHook,\n      });\n    };\n\n    Object.setPrototypeOf(WrappedPostgres, Original);\n    Object.setPrototypeOf(WrappedPostgres.prototype, (Original as { prototype: object }).prototype);\n\n    for (const key of Object.getOwnPropertyNames(Original)) {\n      if (!['length', 'name', 'prototype'].includes(key)) {\n        const descriptor = Object.getOwnPropertyDescriptor(Original, key);\n        if (descriptor) {\n          Object.defineProperty(WrappedPostgres, key, descriptor);\n        }\n      }\n    }\n\n    // For CJS: the exports object IS the function, so return the wrapped function\n    // For ESM: replace the default export\n    if (isFunction) {\n      return WrappedPostgres as unknown as { [key: string]: unknown };\n    } else {\n      replaceExports(exports, 'default', WrappedPostgres);\n      return exports;\n    }\n  }\n\n  /**\n   * Determines whether a span should be created based on the current context.\n   * If `requireParentSpan` is set to true in the configuration, a span will\n   * only be created if there is a parent span available.\n   */\n  private _shouldCreateSpans(): boolean {\n    const config = this.getConfig();\n    const hasParentSpan = trace.getSpan(context.active()) !== undefined;\n    return hasParentSpan || !config.requireParentSpan;\n  }\n\n  /**\n   * Extracts DB operation name from SQL query and sets it on the span.\n   */\n  private _setOperationName(span: Span, sanitizedQuery: string | undefined, command?: string): void {\n    if (command) {\n      span.setAttribute(ATTR_DB_OPERATION_NAME, command);\n      return;\n    }\n    // Fallback: extract operation from the SQL query\n    const operationMatch = sanitizedQuery?.match(SQL_OPERATION_REGEX);\n    if (operationMatch?.[1]) {\n      span.setAttribute(ATTR_DB_OPERATION_NAME, operationMatch[1].toUpperCase());\n    }\n  }\n\n  /**\n   * Reconstructs the full SQL query from template strings with PostgreSQL placeholders.\n   *\n   * For sql`SELECT * FROM users WHERE id = ${123} AND name = ${'foo'}`:\n   *   strings = [\"SELECT * FROM users WHERE id = \", \" AND name = \", \"\"]\n   *   returns: \"SELECT * FROM users WHERE id = $1 AND name = $2\"\n   */\n  private _reconstructQuery(strings: string[] | undefined): string | undefined {\n    if (!strings?.length) {\n      return undefined;\n    }\n    if (strings.length === 1) {\n      return strings[0] || undefined;\n    }\n    // Join template parts with PostgreSQL placeholders ($1, $2, etc.)\n    return strings.reduce((acc, str, i) => (i === 0 ? str : `${acc}$${i}${str}`), '');\n  }\n\n  /**\n   * Sanitize SQL query as per the OTEL semantic conventions\n   * https://opentelemetry.io/docs/specs/semconv/database/database-spans/#sanitization-of-dbquerytext\n   *\n   * PostgreSQL $n placeholders are preserved per OTEL spec - they're parameterized queries,\n   * not sensitive literals. Only actual values (strings, numbers, booleans) are sanitized.\n   */\n  private _sanitizeSqlQuery(sqlQuery: string | undefined): string {\n    if (!sqlQuery) {\n      return 'Unknown SQL Query';\n    }\n\n    return (\n      sqlQuery\n        // Remove comments first (they may contain newlines and extra spaces)\n        .replace(/--.*$/gm, '') // Single line comments (multiline mode)\n        .replace(/\\/\\*[\\s\\S]*?\\*\\//g, '') // Multi-line comments\n        .replace(/;\\s*$/, '') // Remove trailing semicolons\n        // Collapse whitespace to a single space (after removing comments)\n        .replace(/\\s+/g, ' ')\n        .trim() // Remove extra spaces and trim\n        // Sanitize hex/binary literals before string literals\n        .replace(/\\bX'[0-9A-Fa-f]*'/gi, '?') // Hex string literals\n        .replace(/\\bB'[01]*'/gi, '?') // Binary string literals\n        // Sanitize string literals (handles escaped quotes)\n        .replace(/'(?:[^']|'')*'/g, '?')\n        // Sanitize hex numbers\n        .replace(/\\b0x[0-9A-Fa-f]+/gi, '?')\n        // Sanitize boolean literals\n        .replace(/\\b(?:TRUE|FALSE)\\b/gi, '?')\n        // Sanitize numeric literals (preserve $n placeholders via negative lookbehind)\n        .replace(/-?\\b\\d+\\.?\\d*[eE][+-]?\\d+\\b/g, '?') // Scientific notation\n        .replace(/-?\\b\\d+\\.\\d+\\b/g, '?') // Decimals\n        .replace(/-?\\.\\d+\\b/g, '?') // Decimals starting with dot\n        .replace(/(? Promise) & {\n          __sentry_original__?: (...args: unknown[]) => Promise;\n        };\n      };\n    };\n  }): typeof moduleExports {\n    // eslint-disable-next-line @typescript-eslint/no-this-alias\n    const self = this;\n    const originalHandle = moduleExports.Query.prototype.handle;\n\n    moduleExports.Query.prototype.handle = async function (\n      this: {\n        resolve: unknown;\n        reject: unknown;\n        strings?: string[];\n      },\n      ...args: unknown[]\n    ): Promise {\n      // Skip if this query came from an instrumented sql instance (already handled by wrapper)\n      if ((this as Record)[QUERY_FROM_INSTRUMENTED_SQL]) {\n        return originalHandle.apply(this, args);\n      }\n\n      // Skip if we shouldn't create spans\n      if (!self._shouldCreateSpans()) {\n        return originalHandle.apply(this, args);\n      }\n\n      const fullQuery = self._reconstructQuery(this.strings);\n      const sanitizedSqlQuery = self._sanitizeSqlQuery(fullQuery);\n\n      return startSpanManual(\n        {\n          name: sanitizedSqlQuery || 'postgresjs.query',\n          op: 'db',\n        },\n        (span: Span) => {\n          addOriginToSpan(span, 'auto.db.postgresjs');\n\n          span.setAttributes({\n            [ATTR_DB_SYSTEM_NAME]: 'postgres',\n            [ATTR_DB_QUERY_TEXT]: sanitizedSqlQuery,\n          });\n\n          // Note: No connection context available for pre-existing instances\n          // because the sql instance wasn't created through our instrumented wrapper\n\n          const config = self.getConfig();\n          const { requestHook } = config;\n          if (requestHook) {\n            safeExecuteInTheMiddle(\n              () => requestHook(span, sanitizedSqlQuery, undefined),\n              e => {\n                if (e) {\n                  span.setAttribute('sentry.hook.error', 'requestHook failed');\n                  DEBUG_BUILD && debug.error(`Error in requestHook for ${INTEGRATION_NAME} integration:`, e);\n                }\n              },\n              true,\n            );\n          }\n\n          // Wrap resolve to end span on success\n          const originalResolve = this.resolve;\n          this.resolve = new Proxy(originalResolve as (...args: unknown[]) => unknown, {\n            apply: (resolveTarget, resolveThisArg, resolveArgs: [{ command?: string }]) => {\n              try {\n                self._setOperationName(span, sanitizedSqlQuery, resolveArgs?.[0]?.command);\n                span.end();\n              } catch (e) {\n                DEBUG_BUILD && debug.error('Error ending span in resolve callback:', e);\n              }\n              return Reflect.apply(resolveTarget, resolveThisArg, resolveArgs);\n            },\n          });\n\n          // Wrap reject to end span on error\n          const originalReject = this.reject;\n          this.reject = new Proxy(originalReject as (...args: unknown[]) => unknown, {\n            apply: (rejectTarget, rejectThisArg, rejectArgs: { message?: string; code?: string; name?: string }[]) => {\n              try {\n                span.setStatus({\n                  code: SPAN_STATUS_ERROR,\n                  message: rejectArgs?.[0]?.message || 'unknown_error',\n                });\n                span.setAttribute(ATTR_DB_RESPONSE_STATUS_CODE, rejectArgs?.[0]?.code || 'unknown');\n                span.setAttribute(ATTR_ERROR_TYPE, rejectArgs?.[0]?.name || 'unknown');\n                self._setOperationName(span, sanitizedSqlQuery);\n                span.end();\n              } catch (e) {\n                DEBUG_BUILD && debug.error('Error ending span in reject callback:', e);\n              }\n              return Reflect.apply(rejectTarget, rejectThisArg, rejectArgs);\n            },\n          });\n\n          try {\n            return originalHandle.apply(this, args);\n          } catch (e) {\n            span.setStatus({\n              code: SPAN_STATUS_ERROR,\n              message: e instanceof Error ? e.message : 'unknown_error',\n            });\n            span.end();\n            throw e;\n          }\n        },\n      );\n    };\n\n    // Store original for unpatch - must be set on the NEW patched function\n    moduleExports.Query.prototype.handle.__sentry_original__ = originalHandle;\n\n    return moduleExports;\n  }\n\n  /**\n   * Restores the original Query.prototype.handle method.\n   */\n  private _unpatchQueryPrototype(moduleExports: {\n    Query: {\n      prototype: {\n        handle: ((...args: unknown[]) => Promise) & {\n          __sentry_original__?: (...args: unknown[]) => Promise;\n        };\n      };\n    };\n  }): typeof moduleExports {\n    if (moduleExports.Query.prototype.handle.__sentry_original__) {\n      moduleExports.Query.prototype.handle = moduleExports.Query.prototype.handle.__sentry_original__;\n    }\n    return moduleExports;\n  }\n}\n\nconst _postgresJsIntegration = ((options?: PostgresJsInstrumentationConfig) => {\n  return {\n    name: INTEGRATION_NAME,\n    setupOnce() {\n      instrumentPostgresJs(options);\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for the [postgres](https://www.npmjs.com/package/postgres) library.\n *\n * For more information, see the [`postgresIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/postgres/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n *  integrations: [Sentry.postgresJsIntegration()],\n * });\n * ```\n */\n\nexport const postgresJsIntegration = defineIntegration(_postgresJsIntegration);\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport enum SemconvStability {\n  /** Emit only stable semantic conventions. */\n  STABLE = 0x1,\n  /** Emit only old semantic conventions. */\n  OLD = 0x2,\n  /** Emit both stable and old semantic conventions. */\n  DUPLICATE = 0x1 | 0x2,\n}\n\n// Common namespaces mentioned in semantic-conventions docs, but allow\n// other custom strings.\ntype SemConvStabilityNamespace =\n  | 'http'\n  | 'messaging'\n  | 'database'\n  | 'k8s'\n  | (string & {});\n\n/**\n * Determine the appropriate semconv stability for the given namespace.\n *\n * This will parse the given string of comma-separated values (often\n * `process.env.OTEL_SEMCONV_STABILITY_OPT_IN`) looking for the `${namespace}`\n * or `${namespace}/dup` tokens. This is a pattern defined by a number of\n * non-normative semconv documents.\n *\n * For example:\n * - namespace 'http': https://opentelemetry.io/docs/specs/semconv/non-normative/http-migration/\n * - namespace 'database': https://opentelemetry.io/docs/specs/semconv/non-normative/database-migration/\n * - namespace 'k8s': https://opentelemetry.io/docs/specs/semconv/non-normative/k8s-migration/\n *\n * Usage:\n *\n *  import {SemconvStability, semconvStabilityFromStr} from '@opentelemetry/instrumentation';\n *\n *  export class FooInstrumentation extends InstrumentationBase {\n *    private _semconvStability: SemconvStability;\n *    constructor(config: FooInstrumentationConfig = {}) {\n *      super('@opentelemetry/instrumentation-foo', VERSION, config);\n *\n *      // When supporting the OTEL_SEMCONV_STABILITY_OPT_IN envvar\n *      this._semconvStability = semconvStabilityFromStr(\n *        'http',\n *        process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n *      );\n *\n *      // or when supporting a `semconvStabilityOptIn` config option (e.g. for\n *      // the web where there are no envvars).\n *      this._semconvStability = semconvStabilityFromStr(\n *        'http',\n *        config?.semconvStabilityOptIn\n *      );\n *    }\n *  }\n *\n *  // Then, to apply semconv, use the following or similar:\n *  if (this._semconvStability & SemconvStability.OLD) {\n *    // ...\n *  }\n *  if (this._semconvStability & SemconvStability.STABLE) {\n *    // ...\n *  }\n *\n */\nexport function semconvStabilityFromStr(\n  namespace: SemConvStabilityNamespace,\n  str: string | undefined\n) {\n  let semconvStability = SemconvStability.OLD;\n\n  // The same parsing of `str` as `getStringListFromEnv` from the core pkg.\n  const entries = str\n    ?.split(',')\n    .map(v => v.trim())\n    .filter(s => s !== '');\n  for (const entry of entries ?? []) {\n    if (entry.toLowerCase() === namespace + '/dup') {\n      // DUPLICATE takes highest precedence.\n      semconvStability = SemconvStability.DUPLICATE;\n      break;\n    } else if (entry.toLowerCase() === namespace) {\n      semconvStability = SemconvStability.STABLE;\n    }\n  }\n\n  return semconvStability;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { OnRequireFn } from 'require-in-the-middle';\nimport { Hook } from 'require-in-the-middle';\nimport * as path from 'path';\nimport { ModuleNameTrie, ModuleNameSeparator } from './ModuleNameTrie';\n\nexport type Hooked = {\n  moduleName: string;\n  onRequire: OnRequireFn;\n};\n\n/**\n * Whether Mocha is running in this process\n * Inspired by https://github.com/AndreasPizsa/detect-mocha\n *\n * @type {boolean}\n */\nconst isMocha = [\n  'afterEach',\n  'after',\n  'beforeEach',\n  'before',\n  'describe',\n  'it',\n].every(fn => {\n  // @ts-expect-error TS7053: Element implicitly has an 'any' type\n  return typeof global[fn] === 'function';\n});\n\n/**\n * Singleton class for `require-in-the-middle`\n * Allows instrumentation plugins to patch modules with only a single `require` patch\n * WARNING: Because this class will create its own `require-in-the-middle` (RITM) instance,\n * we should minimize the number of new instances of this class.\n * Multiple instances of `@opentelemetry/instrumentation` (e.g. multiple versions) in a single process\n * will result in multiple instances of RITM, which will have an impact\n * on the performance of instrumentation hooks being applied.\n */\nexport class RequireInTheMiddleSingleton {\n  private _moduleNameTrie: ModuleNameTrie = new ModuleNameTrie();\n  private static _instance?: RequireInTheMiddleSingleton;\n\n  private constructor() {\n    this._initialize();\n  }\n\n  private _initialize() {\n    new Hook(\n      // Intercept all `require` calls; we will filter the matching ones below\n      null,\n      { internals: true },\n      (exports, name, basedir) => {\n        // For internal files on Windows, `name` will use backslash as the path separator\n        const normalizedModuleName = normalizePathSeparators(name);\n\n        const matches = this._moduleNameTrie.search(normalizedModuleName, {\n          maintainInsertionOrder: true,\n          // For core modules (e.g. `fs`), do not match on sub-paths (e.g. `fs/promises').\n          // This matches the behavior of `require-in-the-middle`.\n          // `basedir` is always `undefined` for core modules.\n          fullOnly: basedir === undefined,\n        });\n\n        for (const { onRequire } of matches) {\n          exports = onRequire(exports, name, basedir);\n        }\n\n        return exports;\n      }\n    );\n  }\n\n  /**\n   * Register a hook with `require-in-the-middle`\n   *\n   * @param {string} moduleName Module name\n   * @param {OnRequireFn} onRequire Hook function\n   * @returns {Hooked} Registered hook\n   */\n  register(moduleName: string, onRequire: OnRequireFn): Hooked {\n    const hooked = { moduleName, onRequire };\n    this._moduleNameTrie.insert(hooked);\n    return hooked;\n  }\n\n  /**\n   * Get the `RequireInTheMiddleSingleton` singleton\n   *\n   * @returns {RequireInTheMiddleSingleton} Singleton of `RequireInTheMiddleSingleton`\n   */\n  static getInstance(): RequireInTheMiddleSingleton {\n    // Mocha runs all test suites in the same process\n    // This prevents test suites from sharing a singleton\n    if (isMocha) return new RequireInTheMiddleSingleton();\n\n    return (this._instance =\n      this._instance ?? new RequireInTheMiddleSingleton());\n  }\n}\n\n/**\n * Normalize the path separators to forward slash in a module name or path\n *\n * @param {string} moduleNameOrPath Module name or path\n * @returns {string} Normalized module name or path\n */\nfunction normalizePathSeparators(moduleNameOrPath: string): string {\n  return path.sep !== ModuleNameSeparator\n    ? moduleNameOrPath.split(path.sep).join(ModuleNameSeparator)\n    : moduleNameOrPath;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { LoggerProvider } from '../types/LoggerProvider';\nimport { _globalThis } from '../platform';\n\nexport const GLOBAL_LOGS_API_KEY = Symbol.for('io.opentelemetry.js.api.logs');\n\ntype Get = (version: number) => T;\ntype OtelGlobal = Partial<{\n  [GLOBAL_LOGS_API_KEY]: Get;\n}>;\n\nexport const _global = _globalThis as OtelGlobal;\n\n/**\n * Make a function which accepts a version integer and returns the instance of an API if the version\n * is compatible, or a fallback version (usually NOOP) if it is not.\n *\n * @param requiredVersion Backwards compatibility version which is required to return the instance\n * @param instance Instance which should be returned if the required version is compatible\n * @param fallback Fallback instance, usually NOOP, which will be returned if the required version is not compatible\n */\nexport function makeGetter(\n  requiredVersion: number,\n  instance: T,\n  fallback: T\n): Get {\n  return (version: number): T =>\n    version === requiredVersion ? instance : fallback;\n}\n\n/**\n * A number which should be incremented each time a backwards incompatible\n * change is made to the API. This number is used when an API package\n * attempts to access the global API to ensure it is getting a compatible\n * version. If the global API is not compatible with the API package\n * attempting to get it, a NOOP API implementation will be returned.\n */\nexport const API_BACKWARDS_COMPATIBILITY_VERSION = 1;\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { trace, metrics } from '@opentelemetry/api';\nimport { logs } from '@opentelemetry/api-logs';\nimport {\n  disableInstrumentations,\n  enableInstrumentations,\n} from './autoLoaderUtils';\nimport { AutoLoaderOptions } from './types_internal';\n\n/**\n * It will register instrumentations and plugins\n * @param options\n * @return returns function to unload instrumentation and plugins that were\n *   registered\n */\nexport function registerInstrumentations(\n  options: AutoLoaderOptions\n): () => void {\n  const tracerProvider = options.tracerProvider || trace.getTracerProvider();\n  const meterProvider = options.meterProvider || metrics.getMeterProvider();\n  const loggerProvider = options.loggerProvider || logs.getLoggerProvider();\n  const instrumentations = options.instrumentations?.flat() ?? [];\n\n  enableInstrumentations(\n    instrumentations,\n    tracerProvider,\n    meterProvider,\n    loggerProvider\n  );\n\n  return () => {\n    disableInstrumentations(instrumentations);\n  };\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  API_BACKWARDS_COMPATIBILITY_VERSION,\n  GLOBAL_LOGS_API_KEY,\n  _global,\n  makeGetter,\n} from '../internal/global-utils';\nimport { LoggerProvider } from '../types/LoggerProvider';\nimport { NOOP_LOGGER_PROVIDER } from '../NoopLoggerProvider';\nimport { Logger } from '../types/Logger';\nimport { LoggerOptions } from '../types/LoggerOptions';\nimport { ProxyLoggerProvider } from '../ProxyLoggerProvider';\n\nexport class LogsAPI {\n  private static _instance?: LogsAPI;\n\n  private _proxyLoggerProvider = new ProxyLoggerProvider();\n\n  private constructor() {}\n\n  public static getInstance(): LogsAPI {\n    if (!this._instance) {\n      this._instance = new LogsAPI();\n    }\n\n    return this._instance;\n  }\n\n  public setGlobalLoggerProvider(provider: LoggerProvider): LoggerProvider {\n    if (_global[GLOBAL_LOGS_API_KEY]) {\n      return this.getLoggerProvider();\n    }\n\n    _global[GLOBAL_LOGS_API_KEY] = makeGetter(\n      API_BACKWARDS_COMPATIBILITY_VERSION,\n      provider,\n      NOOP_LOGGER_PROVIDER\n    );\n    this._proxyLoggerProvider._setDelegate(provider);\n\n    return provider;\n  }\n\n  /**\n   * Returns the global logger provider.\n   *\n   * @returns LoggerProvider\n   */\n  public getLoggerProvider(): LoggerProvider {\n    return (\n      _global[GLOBAL_LOGS_API_KEY]?.(API_BACKWARDS_COMPATIBILITY_VERSION) ??\n      this._proxyLoggerProvider\n    );\n  }\n\n  /**\n   * Returns a logger from the global logger provider.\n   *\n   * @returns Logger\n   */\n  public getLogger(\n    name: string,\n    version?: string,\n    options?: LoggerOptions\n  ): Logger {\n    return this.getLoggerProvider().getLogger(name, version, options);\n  }\n\n  /** Remove the global logger provider */\n  public disable(): void {\n    delete _global[GLOBAL_LOGS_API_KEY];\n    this._proxyLoggerProvider = new ProxyLoggerProvider();\n  }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { NOOP_LOGGER } from './NoopLogger';\nimport { Logger } from './types/Logger';\nimport { LoggerOptions } from './types/LoggerOptions';\nimport { LogRecord } from './types/LogRecord';\n\nexport class ProxyLogger implements Logger {\n  // When a real implementation is provided, this will be it\n  private _delegate?: Logger;\n\n  constructor(\n    private _provider: LoggerDelegator,\n    public readonly name: string,\n    public readonly version?: string | undefined,\n    public readonly options?: LoggerOptions | undefined\n  ) {}\n\n  /**\n   * Emit a log record. This method should only be used by log appenders.\n   *\n   * @param logRecord\n   */\n  emit(logRecord: LogRecord): void {\n    this._getLogger().emit(logRecord);\n  }\n\n  /**\n   * Try to get a logger from the proxy logger provider.\n   * If the proxy logger provider has no delegate, return a noop logger.\n   */\n  private _getLogger() {\n    if (this._delegate) {\n      return this._delegate;\n    }\n    const logger = this._provider._getDelegateLogger(\n      this.name,\n      this.version,\n      this.options\n    );\n    if (!logger) {\n      return NOOP_LOGGER;\n    }\n    this._delegate = logger;\n    return this._delegate;\n  }\n}\n\nexport interface LoggerDelegator {\n  _getDelegateLogger(\n    name: string,\n    version?: string,\n    options?: LoggerOptions\n  ): Logger | undefined;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { registerInstrumentations } from './autoLoader';\nexport { InstrumentationBase } from './platform/index';\nexport { InstrumentationNodeModuleDefinition } from './instrumentationNodeModuleDefinition';\nexport { InstrumentationNodeModuleFile } from './instrumentationNodeModuleFile';\nexport type {\n  Instrumentation,\n  InstrumentationConfig,\n  InstrumentationModuleDefinition,\n  InstrumentationModuleFile,\n  ShimWrapped,\n  SpanCustomizationHook,\n} from './types';\nexport type { AutoLoaderOptions, AutoLoaderResult } from './types_internal';\nexport {\n  isWrapped,\n  safeExecuteInTheMiddle,\n  safeExecuteInTheMiddleAsync,\n} from './utils';\nexport { SemconvStability, semconvStabilityFromStr } from './semconvStability';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { LoggerProvider } from './types/LoggerProvider';\nimport { Logger } from './types/Logger';\nimport { LoggerOptions } from './types/LoggerOptions';\nimport { NoopLogger } from './NoopLogger';\n\nexport class NoopLoggerProvider implements LoggerProvider {\n  getLogger(\n    _name: string,\n    _version?: string | undefined,\n    _options?: LoggerOptions | undefined\n  ): Logger {\n    return new NoopLogger();\n  }\n}\n\nexport const NOOP_LOGGER_PROVIDER = new NoopLoggerProvider();\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport type { Logger } from './types/Logger';\nexport type { LoggerProvider } from './types/LoggerProvider';\nexport { SeverityNumber } from './types/LogRecord';\nexport type { LogAttributes, LogBody, LogRecord } from './types/LogRecord';\nexport type { LoggerOptions } from './types/LoggerOptions';\nexport type { AnyValue, AnyValueMap } from './types/AnyValue';\nexport { NOOP_LOGGER, NoopLogger } from './NoopLogger';\nexport { NOOP_LOGGER_PROVIDER, NoopLoggerProvider } from './NoopLoggerProvider';\nexport { ProxyLogger } from './ProxyLogger';\nexport { ProxyLoggerProvider } from './ProxyLoggerProvider';\n\nimport { LogsAPI } from './api/logs';\nexport const logs = LogsAPI.getInstance();\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  diag,\n  DiagLogger,\n  metrics,\n  Meter,\n  MeterProvider,\n  trace,\n  Tracer,\n  TracerProvider,\n  Span,\n} from '@opentelemetry/api';\nimport { Logger, LoggerProvider, logs } from '@opentelemetry/api-logs';\nimport * as shimmer from './shimmer';\nimport {\n  InstrumentationModuleDefinition,\n  Instrumentation,\n  InstrumentationConfig,\n  SpanCustomizationHook,\n} from './types';\n\n/**\n * Base abstract internal class for instrumenting node and web plugins\n */\nexport abstract class InstrumentationAbstract<\n  ConfigType extends InstrumentationConfig = InstrumentationConfig,\n> implements Instrumentation\n{\n  protected _config: ConfigType = {} as ConfigType;\n\n  private _tracer: Tracer;\n  private _meter: Meter;\n  private _logger: Logger;\n  protected _diag: DiagLogger;\n\n  constructor(\n    public readonly instrumentationName: string,\n    public readonly instrumentationVersion: string,\n    config: ConfigType\n  ) {\n    this.setConfig(config);\n\n    this._diag = diag.createComponentLogger({\n      namespace: instrumentationName,\n    });\n\n    this._tracer = trace.getTracer(instrumentationName, instrumentationVersion);\n    this._meter = metrics.getMeter(instrumentationName, instrumentationVersion);\n    this._logger = logs.getLogger(instrumentationName, instrumentationVersion);\n    this._updateMetricInstruments();\n  }\n\n  /* Api to wrap instrumented method */\n  protected _wrap = shimmer.wrap;\n  /* Api to unwrap instrumented methods */\n  protected _unwrap = shimmer.unwrap;\n  /* Api to mass wrap instrumented method */\n  protected _massWrap = shimmer.massWrap;\n  /* Api to mass unwrap instrumented methods */\n  protected _massUnwrap = shimmer.massUnwrap;\n\n  /* Returns meter */\n  protected get meter(): Meter {\n    return this._meter;\n  }\n\n  /**\n   * Sets MeterProvider to this plugin\n   * @param meterProvider\n   */\n  public setMeterProvider(meterProvider: MeterProvider): void {\n    this._meter = meterProvider.getMeter(\n      this.instrumentationName,\n      this.instrumentationVersion\n    );\n\n    this._updateMetricInstruments();\n  }\n\n  /* Returns logger */\n  protected get logger(): Logger {\n    return this._logger;\n  }\n\n  /**\n   * Sets LoggerProvider to this plugin\n   * @param loggerProvider\n   */\n  public setLoggerProvider(loggerProvider: LoggerProvider): void {\n    this._logger = loggerProvider.getLogger(\n      this.instrumentationName,\n      this.instrumentationVersion\n    );\n  }\n\n  /**\n   * @experimental\n   *\n   * Get module definitions defined by {@link init}.\n   * This can be used for experimental compile-time instrumentation.\n   *\n   * @returns an array of {@link InstrumentationModuleDefinition}\n   */\n  public getModuleDefinitions(): InstrumentationModuleDefinition[] {\n    const initResult = this.init() ?? [];\n    if (!Array.isArray(initResult)) {\n      return [initResult];\n    }\n\n    return initResult;\n  }\n\n  /**\n   * Sets the new metric instruments with the current Meter.\n   */\n  protected _updateMetricInstruments(): void {\n    return;\n  }\n\n  /* Returns InstrumentationConfig */\n  public getConfig(): ConfigType {\n    return this._config;\n  }\n\n  /**\n   * Sets InstrumentationConfig to this plugin\n   * @param config\n   */\n  public setConfig(config: ConfigType): void {\n    // copy config first level properties to ensure they are immutable.\n    // nested properties are not copied, thus are mutable from the outside.\n    this._config = {\n      enabled: true,\n      ...config,\n    };\n  }\n\n  /**\n   * Sets TraceProvider to this plugin\n   * @param tracerProvider\n   */\n  public setTracerProvider(tracerProvider: TracerProvider): void {\n    this._tracer = tracerProvider.getTracer(\n      this.instrumentationName,\n      this.instrumentationVersion\n    );\n  }\n\n  /* Returns tracer */\n  protected get tracer(): Tracer {\n    return this._tracer;\n  }\n\n  /* Enable plugin */\n  public abstract enable(): void;\n\n  /* Disable plugin */\n  public abstract disable(): void;\n\n  /**\n   * Init method in which plugin should define _modules and patches for\n   * methods.\n   */\n  protected abstract init():\n    | InstrumentationModuleDefinition\n    | InstrumentationModuleDefinition[]\n    | void;\n\n  /**\n   * Execute span customization hook, if configured, and log any errors.\n   * Any semantics of the trigger and info are defined by the specific instrumentation.\n   * @param hookHandler The optional hook handler which the user has configured via instrumentation config\n   * @param triggerName The name of the trigger for executing the hook for logging purposes\n   * @param span The span to which the hook should be applied\n   * @param info The info object to be passed to the hook, with useful data the hook may use\n   */\n  protected _runSpanCustomizationHook(\n    hookHandler: SpanCustomizationHook | undefined,\n    triggerName: string,\n    span: Span,\n    info: SpanCustomizationInfoType\n  ) {\n    if (!hookHandler) {\n      return;\n    }\n\n    try {\n      hookHandler(span, info);\n    } catch (e) {\n      this._diag.error(\n        `Error running span customization hook due to exception in handler`,\n        { triggerName },\n        e\n      );\n    }\n  }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { InstrumentationModuleFile } from './types';\nimport { normalize } from './platform/index';\n\nexport class InstrumentationNodeModuleFile\n  implements InstrumentationModuleFile\n{\n  public name: string;\n  constructor(\n    name: string,\n    public supportedVersions: string[],\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    public patch: (moduleExports: any, moduleVersion?: string) => any,\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    public unpatch: (moduleExports?: any, moduleVersion?: string) => void\n  ) {\n    this.name = normalize(name);\n  }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { LoggerProvider } from './types/LoggerProvider';\nimport { Logger } from './types/Logger';\nimport { LoggerOptions } from './types/LoggerOptions';\nimport { NOOP_LOGGER_PROVIDER } from './NoopLoggerProvider';\nimport { ProxyLogger } from './ProxyLogger';\n\nexport class ProxyLoggerProvider implements LoggerProvider {\n  private _delegate?: LoggerProvider;\n\n  getLogger(\n    name: string,\n    version?: string | undefined,\n    options?: LoggerOptions | undefined\n  ): Logger {\n    return (\n      this._getDelegateLogger(name, version, options) ??\n      new ProxyLogger(this, name, version, options)\n    );\n  }\n\n  /**\n   * Get the delegate logger provider.\n   * Used by tests only.\n   * @internal\n   */\n  _getDelegate(): LoggerProvider {\n    return this._delegate ?? NOOP_LOGGER_PROVIDER;\n  }\n\n  /**\n   * Set the delegate logger provider\n   * @internal\n   */\n  _setDelegate(delegate: LoggerProvider) {\n    this._delegate = delegate;\n  }\n\n  /**\n   * @internal\n   */\n  _getDelegateLogger(\n    name: string,\n    version?: string | undefined,\n    options?: LoggerOptions | undefined\n  ): Logger | undefined {\n    return this._delegate?.getLogger(name, version, options);\n  }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as types from '../../types';\nimport * as path from 'path';\nimport { types as utilTypes } from 'util';\nimport { satisfies } from '../../semver';\nimport { wrap, unwrap, massWrap, massUnwrap } from '../../shimmer';\nimport { InstrumentationAbstract } from '../../instrumentation';\nimport {\n  RequireInTheMiddleSingleton,\n  Hooked,\n} from './RequireInTheMiddleSingleton';\nimport type { HookFn } from 'import-in-the-middle';\nimport { Hook as HookImport } from 'import-in-the-middle';\nimport {\n  InstrumentationConfig,\n  InstrumentationModuleDefinition,\n} from '../../types';\nimport { diag } from '@opentelemetry/api';\nimport type { OnRequireFn } from 'require-in-the-middle';\nimport { Hook as HookRequire } from 'require-in-the-middle';\nimport { readFileSync } from 'fs';\nimport { isWrapped } from '../../utils';\n\n/**\n * Base abstract class for instrumenting node plugins\n */\nexport abstract class InstrumentationBase<\n    ConfigType extends InstrumentationConfig = InstrumentationConfig,\n  >\n  extends InstrumentationAbstract\n  implements types.Instrumentation\n{\n  private _modules: InstrumentationModuleDefinition[];\n  private _hooks: (Hooked | HookRequire)[] = [];\n  private _requireInTheMiddleSingleton: RequireInTheMiddleSingleton =\n    RequireInTheMiddleSingleton.getInstance();\n  private _enabled = false;\n\n  constructor(\n    instrumentationName: string,\n    instrumentationVersion: string,\n    config: ConfigType\n  ) {\n    super(instrumentationName, instrumentationVersion, config);\n\n    let modules = this.init();\n\n    if (modules && !Array.isArray(modules)) {\n      modules = [modules];\n    }\n\n    this._modules = (modules as InstrumentationModuleDefinition[]) || [];\n\n    if (this._config.enabled) {\n      this.enable();\n    }\n  }\n\n  protected override _wrap: typeof wrap = (moduleExports, name, wrapper) => {\n    if (isWrapped(moduleExports[name])) {\n      this._unwrap(moduleExports, name);\n    }\n    if (!utilTypes.isProxy(moduleExports)) {\n      return wrap(moduleExports, name, wrapper);\n    } else {\n      const wrapped = wrap(Object.assign({}, moduleExports), name, wrapper);\n      Object.defineProperty(moduleExports, name, {\n        value: wrapped,\n      });\n      return wrapped;\n    }\n  };\n\n  protected override _unwrap: typeof unwrap = (moduleExports, name) => {\n    if (!utilTypes.isProxy(moduleExports)) {\n      return unwrap(moduleExports, name);\n    } else {\n      return Object.defineProperty(moduleExports, name, {\n        value: moduleExports[name],\n      });\n    }\n  };\n\n  protected override _massWrap: typeof massWrap = (\n    moduleExportsArray,\n    names,\n    wrapper\n  ) => {\n    if (!moduleExportsArray) {\n      diag.error('must provide one or more modules to patch');\n      return;\n    } else if (!Array.isArray(moduleExportsArray)) {\n      moduleExportsArray = [moduleExportsArray];\n    }\n\n    if (!(names && Array.isArray(names))) {\n      diag.error('must provide one or more functions to wrap on modules');\n      return;\n    }\n\n    moduleExportsArray.forEach(moduleExports => {\n      names.forEach(name => {\n        this._wrap(moduleExports, name, wrapper);\n      });\n    });\n  };\n\n  protected override _massUnwrap: typeof massUnwrap = (\n    moduleExportsArray,\n    names\n  ) => {\n    if (!moduleExportsArray) {\n      diag.error('must provide one or more modules to patch');\n      return;\n    } else if (!Array.isArray(moduleExportsArray)) {\n      moduleExportsArray = [moduleExportsArray];\n    }\n\n    if (!(names && Array.isArray(names))) {\n      diag.error('must provide one or more functions to wrap on modules');\n      return;\n    }\n\n    moduleExportsArray.forEach(moduleExports => {\n      names.forEach(name => {\n        this._unwrap(moduleExports, name);\n      });\n    });\n  };\n\n  private _warnOnPreloadedModules(): void {\n    this._modules.forEach((module: InstrumentationModuleDefinition) => {\n      const { name } = module;\n      try {\n        const resolvedModule = require.resolve(name);\n        if (require.cache[resolvedModule]) {\n          // Module is already cached, which means the instrumentation hook might not work\n          this._diag.warn(\n            `Module ${name} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${name}`\n          );\n        }\n      } catch {\n        // Module isn't available, we can simply skip\n      }\n    });\n  }\n\n  private _extractPackageVersion(baseDir: string): string | undefined {\n    try {\n      const json = readFileSync(path.join(baseDir, 'package.json'), {\n        encoding: 'utf8',\n      });\n      const version = JSON.parse(json).version;\n      return typeof version === 'string' ? version : undefined;\n    } catch {\n      diag.warn('Failed extracting version', baseDir);\n    }\n\n    return undefined;\n  }\n\n  private _onRequire(\n    module: InstrumentationModuleDefinition,\n    exports: T,\n    name: string,\n    baseDir?: string | void\n  ): T {\n    if (!baseDir) {\n      if (typeof module.patch === 'function') {\n        module.moduleExports = exports;\n        if (this._enabled) {\n          this._diag.debug(\n            'Applying instrumentation patch for nodejs core module on require hook',\n            {\n              module: module.name,\n            }\n          );\n          return module.patch(exports);\n        }\n      }\n      return exports;\n    }\n\n    const version = this._extractPackageVersion(baseDir);\n    module.moduleVersion = version;\n    if (module.name === name) {\n      // main module\n      if (\n        isSupported(module.supportedVersions, version, module.includePrerelease)\n      ) {\n        if (typeof module.patch === 'function') {\n          module.moduleExports = exports;\n          if (this._enabled) {\n            this._diag.debug(\n              'Applying instrumentation patch for module on require hook',\n              {\n                module: module.name,\n                version: module.moduleVersion,\n                baseDir,\n              }\n            );\n            return module.patch(exports, module.moduleVersion);\n          }\n        }\n      }\n      return exports;\n    }\n    // internal file\n    const files = module.files ?? [];\n    const normalizedName = path.normalize(name);\n    const supportedFileInstrumentations = files\n      .filter(f => f.name === normalizedName)\n      .filter(f =>\n        isSupported(f.supportedVersions, version, module.includePrerelease)\n      );\n    return supportedFileInstrumentations.reduce((patchedExports, file) => {\n      file.moduleExports = patchedExports;\n      if (this._enabled) {\n        this._diag.debug(\n          'Applying instrumentation patch for nodejs module file on require hook',\n          {\n            module: module.name,\n            version: module.moduleVersion,\n            fileName: file.name,\n            baseDir,\n          }\n        );\n\n        // patch signature is not typed, so we cast it assuming it's correct\n        return file.patch(patchedExports, module.moduleVersion) as T;\n      }\n      return patchedExports;\n    }, exports);\n  }\n\n  public enable(): void {\n    if (this._enabled) {\n      return;\n    }\n    this._enabled = true;\n\n    // already hooked, just call patch again\n    if (this._hooks.length > 0) {\n      for (const module of this._modules) {\n        if (typeof module.patch === 'function' && module.moduleExports) {\n          this._diag.debug(\n            'Applying instrumentation patch for nodejs module on instrumentation enabled',\n            {\n              module: module.name,\n              version: module.moduleVersion,\n            }\n          );\n          module.patch(module.moduleExports, module.moduleVersion);\n        }\n        for (const file of module.files) {\n          if (file.moduleExports) {\n            this._diag.debug(\n              'Applying instrumentation patch for nodejs module file on instrumentation enabled',\n              {\n                module: module.name,\n                version: module.moduleVersion,\n                fileName: file.name,\n              }\n            );\n            file.patch(file.moduleExports, module.moduleVersion);\n          }\n        }\n      }\n      return;\n    }\n\n    this._warnOnPreloadedModules();\n    for (const module of this._modules) {\n      const hookFn: HookFn = (exports, name, baseDir) => {\n        if (!baseDir && path.isAbsolute(name)) {\n          const parsedPath = path.parse(name);\n          name = parsedPath.name;\n          baseDir = parsedPath.dir;\n        }\n        return this._onRequire(module, exports, name, baseDir);\n      };\n      const onRequire: OnRequireFn = (exports, name, baseDir) => {\n        return this._onRequire(module, exports, name, baseDir);\n      };\n\n      // `RequireInTheMiddleSingleton` does not support absolute paths.\n      // For an absolute paths, we must create a separate instance of the\n      // require-in-the-middle `Hook`.\n      const hook = path.isAbsolute(module.name)\n        ? new HookRequire([module.name], { internals: true }, onRequire)\n        : this._requireInTheMiddleSingleton.register(module.name, onRequire);\n\n      this._hooks.push(hook);\n      const esmHook = new HookImport(\n        [module.name],\n        { internals: false },\n        hookFn\n      );\n      this._hooks.push(esmHook);\n    }\n  }\n\n  public disable(): void {\n    if (!this._enabled) {\n      return;\n    }\n    this._enabled = false;\n\n    for (const module of this._modules) {\n      if (typeof module.unpatch === 'function' && module.moduleExports) {\n        this._diag.debug(\n          'Removing instrumentation patch for nodejs module on instrumentation disabled',\n          {\n            module: module.name,\n            version: module.moduleVersion,\n          }\n        );\n        module.unpatch(module.moduleExports, module.moduleVersion);\n      }\n      for (const file of module.files) {\n        if (file.moduleExports) {\n          this._diag.debug(\n            'Removing instrumentation patch for nodejs module file on instrumentation disabled',\n            {\n              module: module.name,\n              version: module.moduleVersion,\n              fileName: file.name,\n            }\n          );\n          file.unpatch(file.moduleExports, module.moduleVersion);\n        }\n      }\n    }\n  }\n\n  public isEnabled(): boolean {\n    return this._enabled;\n  }\n}\n\nfunction isSupported(\n  supportedVersions: string[],\n  version?: string,\n  includePrerelease?: boolean\n): boolean {\n  if (typeof version === 'undefined') {\n    // If we don't have the version, accept the wildcard case only\n    return supportedVersions.includes('*');\n  }\n\n  return supportedVersions.some(supportedVersion => {\n    return satisfies(version, supportedVersion, { includePrerelease });\n  });\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Hooked } from './RequireInTheMiddleSingleton';\n\nexport const ModuleNameSeparator = '/';\n\n/**\n * Node in a `ModuleNameTrie`\n */\nclass ModuleNameTrieNode {\n  hooks: Array<{ hook: Hooked; insertedId: number }> = [];\n  children: Map = new Map();\n}\n\ntype ModuleNameTrieSearchOptions = {\n  /**\n   * Whether to return the results in insertion order\n   */\n  maintainInsertionOrder?: boolean;\n  /**\n   * Whether to return only full matches\n   */\n  fullOnly?: boolean;\n};\n\n/**\n * Trie containing nodes that represent a part of a module name (i.e. the parts separated by forward slash)\n */\nexport class ModuleNameTrie {\n  private _trie: ModuleNameTrieNode = new ModuleNameTrieNode();\n  private _counter: number = 0;\n\n  /**\n   * Insert a module hook into the trie\n   *\n   * @param {Hooked} hook Hook\n   */\n  insert(hook: Hooked) {\n    let trieNode = this._trie;\n\n    for (const moduleNamePart of hook.moduleName.split(ModuleNameSeparator)) {\n      let nextNode = trieNode.children.get(moduleNamePart);\n      if (!nextNode) {\n        nextNode = new ModuleNameTrieNode();\n        trieNode.children.set(moduleNamePart, nextNode);\n      }\n      trieNode = nextNode;\n    }\n    trieNode.hooks.push({ hook, insertedId: this._counter++ });\n  }\n\n  /**\n   * Search for matching hooks in the trie\n   *\n   * @param {string} moduleName Module name\n   * @param {boolean} maintainInsertionOrder Whether to return the results in insertion order\n   * @param {boolean} fullOnly Whether to return only full matches\n   * @returns {Hooked[]} Matching hooks\n   */\n  search(\n    moduleName: string,\n    { maintainInsertionOrder, fullOnly }: ModuleNameTrieSearchOptions = {}\n  ): Hooked[] {\n    let trieNode = this._trie;\n    const results: ModuleNameTrieNode['hooks'] = [];\n    let foundFull = true;\n\n    for (const moduleNamePart of moduleName.split(ModuleNameSeparator)) {\n      const nextNode = trieNode.children.get(moduleNamePart);\n      if (!nextNode) {\n        foundFull = false;\n        break;\n      }\n      if (!fullOnly) {\n        results.push(...nextNode.hooks);\n      }\n      trieNode = nextNode;\n    }\n\n    if (fullOnly && foundFull) {\n      results.push(...trieNode.hooks);\n    }\n\n    if (results.length === 0) {\n      return [];\n    }\n    if (results.length === 1) {\n      return [results[0].hook];\n    }\n    if (maintainInsertionOrder) {\n      results.sort((a, b) => a.insertedId - b.insertedId);\n    }\n    return results.map(({ hook }) => hook);\n  }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  InstrumentationModuleDefinition,\n  InstrumentationModuleFile,\n} from './types';\n\nexport class InstrumentationNodeModuleDefinition\n  implements InstrumentationModuleDefinition\n{\n  files: InstrumentationModuleFile[];\n  constructor(\n    public name: string,\n    public supportedVersions: string[],\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    public patch?: (exports: any, moduleVersion?: string) => any,\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    public unpatch?: (exports: any, moduleVersion?: string) => void,\n    files?: InstrumentationModuleFile[]\n  ) {\n    this.files = files || [];\n  }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** only globals that common to node and browsers are allowed */\n// eslint-disable-next-line n/no-unsupported-features/es-builtins\nexport const _globalThis = typeof globalThis === 'object' ? globalThis : global;\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * BSD 2-Clause License\n *\n * Copyright (c) 2013-2019, Forrest L Norvell\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright notice, this\n *   list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright notice,\n *   this list of conditions and the following disclaimer in the documentation\n *   and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\n * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* Modified by OpenTelemetry Authors\n *  - converted to TypeScript\n *  - aligned with style-guide\n */\n\nimport { ShimWrapped } from './types';\n\n// Default to complaining loudly when things don't go according to plan.\n// eslint-disable-next-line no-console\nlet logger: typeof console.error = console.error.bind(console);\n\n// Sets a property on an object, preserving its enumerability.\n// This function assumes that the property is already writable.\nfunction defineProperty(obj: object, name: PropertyKey, value: unknown): void {\n  const enumerable =\n    !!obj[name as keyof typeof obj] &&\n    Object.prototype.propertyIsEnumerable.call(obj, name);\n\n  Object.defineProperty(obj, name, {\n    configurable: true,\n    enumerable,\n    writable: true,\n    value,\n  });\n}\n\nexport const wrap = (\n  nodule: Nodule,\n  name: FieldName,\n  wrapper: (original: Nodule[FieldName], name: FieldName) => Nodule[FieldName]\n): ShimWrapped | undefined => {\n  if (!nodule || !nodule[name]) {\n    logger('no original function ' + String(name) + ' to wrap');\n    return;\n  }\n\n  if (!wrapper) {\n    logger('no wrapper function');\n    logger(new Error().stack);\n    return;\n  }\n\n  const original = nodule[name];\n\n  if (typeof original !== 'function' || typeof wrapper !== 'function') {\n    logger('original object and wrapper must be functions');\n    return;\n  }\n\n  const wrapped = wrapper(original, name) as object;\n\n  defineProperty(wrapped, '__original', original);\n  defineProperty(wrapped, '__unwrap', () => {\n    if (nodule[name] === wrapped) {\n      defineProperty(nodule, name, original);\n    }\n  });\n  defineProperty(wrapped, '__wrapped', true);\n  defineProperty(nodule, name, wrapped);\n  return wrapped as ShimWrapped;\n};\n\nexport const massWrap = (\n  nodules: Nodule[],\n  names: FieldName[],\n  wrapper: (original: Nodule[FieldName]) => Nodule[FieldName]\n): void => {\n  if (!nodules) {\n    logger('must provide one or more modules to patch');\n    logger(new Error().stack);\n    return;\n  } else if (!Array.isArray(nodules)) {\n    nodules = [nodules];\n  }\n\n  if (!(names && Array.isArray(names))) {\n    logger('must provide one or more functions to wrap on modules');\n    return;\n  }\n\n  nodules.forEach(nodule => {\n    names.forEach(name => {\n      wrap(nodule, name, wrapper);\n    });\n  });\n};\n\nexport const unwrap = (\n  nodule: Nodule,\n  name: keyof Nodule\n): void => {\n  if (!nodule || !nodule[name]) {\n    logger('no function to unwrap.');\n    logger(new Error().stack);\n    return;\n  }\n\n  const wrapped = nodule[name] as unknown as ShimWrapped;\n\n  if (!wrapped.__unwrap) {\n    logger(\n      'no original to unwrap to -- has ' +\n        String(name) +\n        ' already been unwrapped?'\n    );\n  } else {\n    wrapped.__unwrap();\n    return;\n  }\n};\n\nexport const massUnwrap = (\n  nodules: Nodule[],\n  names: Array\n): void => {\n  if (!nodules) {\n    logger('must provide one or more modules to patch');\n    logger(new Error().stack);\n    return;\n  } else if (!Array.isArray(nodules)) {\n    nodules = [nodules];\n  }\n\n  if (!(names && Array.isArray(names))) {\n    logger('must provide one or more functions to unwrap on modules');\n    return;\n  }\n\n  nodules.forEach(nodule => {\n    names.forEach(name => {\n      unwrap(nodule, name);\n    });\n  });\n};\n\nexport interface ShimmerOptions {\n  logger?: typeof console.error;\n}\n\nexport default function shimmer(options: ShimmerOptions): void {\n  if (options && options.logger) {\n    if (typeof options.logger !== 'function') {\n      logger(\"new logger isn't a function, not replacing\");\n    } else {\n      logger = options.logger;\n    }\n  }\n}\n\nshimmer.wrap = wrap;\nshimmer.massWrap = massWrap;\nshimmer.unwrap = unwrap;\nshimmer.massUnwrap = massUnwrap;\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// This is a custom semantic versioning implementation compatible with the\n// `satisfies(version, range, options?)` function from the `semver` npm package;\n// with the exception that the `loose` option is not supported.\n//\n// The motivation for the custom semver implementation is that\n// `semver` package has some initialization delay (lots of RegExp init and compile)\n// and this leads to coldstart overhead for the OTEL Lambda Node.js layer.\n// Hence, we have implemented lightweight version of it internally with required functionalities.\n\nimport { diag } from '@opentelemetry/api';\n\nconst VERSION_REGEXP =\n  /^(?:v)?(?(?0|[1-9]\\d*)\\.(?0|[1-9]\\d*)\\.(?0|[1-9]\\d*))(?:-(?(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+(?[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\nconst RANGE_REGEXP =\n  /^(?<|>|=|==|<=|>=|~|\\^|~>)?\\s*(?:v)?(?(?x|X|\\*|0|[1-9]\\d*)(?:\\.(?x|X|\\*|0|[1-9]\\d*))?(?:\\.(?x|X|\\*|0|[1-9]\\d*))?)(?:-(?(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+(?[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\nconst operatorResMap: { [op: string]: number[] } = {\n  '>': [1],\n  '>=': [0, 1],\n  '=': [0],\n  '<=': [-1, 0],\n  '<': [-1],\n  '!=': [-1, 1],\n};\n\n/** Interface for the options to configure semantic versioning satisfy check. */\nexport interface SatisfiesOptions {\n  /**\n   * If set to true, the pre-release checks will be included\n   * as described [here](https://github.com/npm/node-semver#prerelease-tags).\n   */\n  includePrerelease?: boolean;\n}\n\ninterface ParsedVersion {\n  op?: string;\n\n  version?: string;\n  versionSegments?: string[];\n  versionSegmentCount?: number;\n\n  prerelease?: string;\n  prereleaseSegments?: string[];\n  prereleaseSegmentCount?: number;\n\n  build?: string;\n\n  invalid?: boolean;\n}\n\n/**\n * Checks given version whether it satisfies given range expression.\n * @param version the [version](https://github.com/npm/node-semver#versions) to be checked\n * @param range   the [range](https://github.com/npm/node-semver#ranges) expression for version check\n * @param options options to configure semver satisfy check\n */\nexport function satisfies(\n  version: string,\n  range: string,\n  options?: SatisfiesOptions\n): boolean {\n  // Strict semver format check\n  if (!_validateVersion(version)) {\n    diag.error(`Invalid version: ${version}`);\n    return false;\n  }\n\n  // If range is empty, satisfy check succeeds regardless what version is\n  if (!range) {\n    return true;\n  }\n\n  // Cleanup range\n  range = range.replace(/([<>=~^]+)\\s+/g, '$1');\n\n  // Parse version\n  const parsedVersion: ParsedVersion | undefined = _parseVersion(version);\n  if (!parsedVersion) {\n    return false;\n  }\n\n  const allParsedRanges: ParsedVersion[] = [];\n\n  // Check given version whether it satisfies given range expression\n  const checkResult: boolean = _doSatisfies(\n    parsedVersion,\n    range,\n    allParsedRanges,\n    options\n  );\n\n  // If check result is OK,\n  // do another final check for pre-release, if pre-release check is included by option\n  if (checkResult && !options?.includePrerelease) {\n    return _doPreleaseCheck(parsedVersion, allParsedRanges);\n  }\n  return checkResult;\n}\n\nfunction _validateVersion(version: unknown): boolean {\n  return typeof version === 'string' && VERSION_REGEXP.test(version);\n}\n\nfunction _doSatisfies(\n  parsedVersion: ParsedVersion,\n  range: string,\n  allParsedRanges: ParsedVersion[],\n  options?: SatisfiesOptions\n): boolean {\n  if (range.includes('||')) {\n    // A version matches a range if and only if\n    // every comparator in at least one of the ||-separated comparator sets is satisfied by the version\n    const ranges: string[] = range.trim().split('||');\n    for (const r of ranges) {\n      if (_checkRange(parsedVersion, r, allParsedRanges, options)) {\n        return true;\n      }\n    }\n    return false;\n  } else if (range.includes(' - ')) {\n    // Hyphen ranges: https://github.com/npm/node-semver#hyphen-ranges-xyz---abc\n    range = replaceHyphen(range, options);\n  } else if (range.includes(' ')) {\n    // Multiple separated ranges and all needs to be satisfied for success\n    const ranges: string[] = range\n      .trim()\n      .replace(/\\s{2,}/g, ' ')\n      .split(' ');\n    for (const r of ranges) {\n      if (!_checkRange(parsedVersion, r, allParsedRanges, options)) {\n        return false;\n      }\n    }\n    return true;\n  }\n\n  // Check given parsed version with given range\n  return _checkRange(parsedVersion, range, allParsedRanges, options);\n}\n\nfunction _checkRange(\n  parsedVersion: ParsedVersion,\n  range: string,\n  allParsedRanges: ParsedVersion[],\n  options?: SatisfiesOptions\n): boolean {\n  range = _normalizeRange(range, options);\n  if (range.includes(' ')) {\n    // If there are multiple ranges separated, satisfy each of them\n    return _doSatisfies(parsedVersion, range, allParsedRanges, options);\n  } else {\n    // Validate and parse range\n    const parsedRange: ParsedVersion = _parseRange(range);\n    allParsedRanges.push(parsedRange);\n    // Check parsed version by parsed range\n    return _satisfies(parsedVersion, parsedRange);\n  }\n}\n\nfunction _satisfies(\n  parsedVersion: ParsedVersion,\n  parsedRange: ParsedVersion\n): boolean {\n  // If range is invalid, satisfy check fails (no error throw)\n  if (parsedRange.invalid) {\n    return false;\n  }\n\n  // If range is empty or wildcard, satisfy check succeeds regardless what version is\n  if (!parsedRange.version || _isWildcard(parsedRange.version)) {\n    return true;\n  }\n\n  // Compare version segment first\n  let comparisonResult: number = _compareVersionSegments(\n    parsedVersion.versionSegments || [],\n    parsedRange.versionSegments || []\n  );\n\n  // If versions segments are equal, compare by pre-release segments\n  if (comparisonResult === 0) {\n    const versionPrereleaseSegments: string[] =\n      parsedVersion.prereleaseSegments || [];\n    const rangePrereleaseSegments: string[] =\n      parsedRange.prereleaseSegments || [];\n    if (!versionPrereleaseSegments.length && !rangePrereleaseSegments.length) {\n      comparisonResult = 0;\n    } else if (\n      !versionPrereleaseSegments.length &&\n      rangePrereleaseSegments.length\n    ) {\n      comparisonResult = 1;\n    } else if (\n      versionPrereleaseSegments.length &&\n      !rangePrereleaseSegments.length\n    ) {\n      comparisonResult = -1;\n    } else {\n      comparisonResult = _compareVersionSegments(\n        versionPrereleaseSegments,\n        rangePrereleaseSegments\n      );\n    }\n  }\n\n  // Resolve check result according to comparison operator\n  return operatorResMap[parsedRange.op!]?.includes(comparisonResult);\n}\n\nfunction _doPreleaseCheck(\n  parsedVersion: ParsedVersion,\n  allParsedRanges: ParsedVersion[]\n): boolean {\n  if (parsedVersion.prerelease) {\n    return allParsedRanges.some(\n      r => r.prerelease && r.version === parsedVersion.version\n    );\n  }\n  return true;\n}\n\nfunction _normalizeRange(range: string, options?: SatisfiesOptions): string {\n  range = range.trim();\n  range = replaceCaret(range, options);\n  range = replaceTilde(range);\n  range = replaceXRange(range, options);\n  range = range.trim();\n  return range;\n}\n\nfunction isX(id?: string): boolean {\n  return !id || id.toLowerCase() === 'x' || id === '*';\n}\n\nfunction _parseVersion(versionString: string): ParsedVersion | undefined {\n  const match: RegExpMatchArray | null = versionString.match(VERSION_REGEXP);\n  if (!match) {\n    diag.error(`Invalid version: ${versionString}`);\n    return undefined;\n  }\n\n  const version: string = match!.groups!.version;\n  const prerelease: string = match!.groups!.prerelease;\n  const build: string = match!.groups!.build;\n\n  const versionSegments: string[] = version.split('.');\n  const prereleaseSegments: string[] | undefined = prerelease?.split('.');\n\n  return {\n    op: undefined,\n\n    version,\n    versionSegments,\n    versionSegmentCount: versionSegments.length,\n\n    prerelease,\n    prereleaseSegments,\n    prereleaseSegmentCount: prereleaseSegments ? prereleaseSegments.length : 0,\n\n    build,\n  };\n}\n\nfunction _parseRange(rangeString: string): ParsedVersion {\n  if (!rangeString) {\n    return {};\n  }\n\n  const match: RegExpMatchArray | null = rangeString.match(RANGE_REGEXP);\n  if (!match) {\n    diag.error(`Invalid range: ${rangeString}`);\n    return {\n      invalid: true,\n    };\n  }\n\n  let op: string = match!.groups!.op;\n  const version: string = match!.groups!.version;\n  const prerelease: string = match!.groups!.prerelease;\n  const build: string = match!.groups!.build;\n\n  const versionSegments: string[] = version.split('.');\n  const prereleaseSegments: string[] | undefined = prerelease?.split('.');\n\n  if (op === '==') {\n    op = '=';\n  }\n\n  return {\n    op: op || '=',\n\n    version,\n    versionSegments,\n    versionSegmentCount: versionSegments.length,\n\n    prerelease,\n    prereleaseSegments,\n    prereleaseSegmentCount: prereleaseSegments ? prereleaseSegments.length : 0,\n\n    build,\n  };\n}\n\nfunction _isWildcard(s: string | undefined): boolean {\n  return s === '*' || s === 'x' || s === 'X';\n}\n\nfunction _parseVersionString(v: string): string | number {\n  const n: number = parseInt(v, 10);\n  return isNaN(n) ? v : n;\n}\n\nfunction _normalizeVersionType(\n  a: string | number,\n  b: string | number\n): [string, string] | [number, number] {\n  if (typeof a === typeof b) {\n    if (typeof a === 'number') {\n      return [a as number, b as number];\n    } else if (typeof a === 'string') {\n      return [a as string, b as string];\n    } else {\n      throw new Error('Version segments can only be strings or numbers');\n    }\n  } else {\n    return [String(a), String(b)];\n  }\n}\n\nfunction _compareVersionStrings(v1: string, v2: string): number {\n  if (_isWildcard(v1) || _isWildcard(v2)) {\n    return 0;\n  }\n  const [parsedV1, parsedV2] = _normalizeVersionType(\n    _parseVersionString(v1),\n    _parseVersionString(v2)\n  );\n  if (parsedV1 > parsedV2) {\n    return 1;\n  } else if (parsedV1 < parsedV2) {\n    return -1;\n  }\n  return 0;\n}\n\nfunction _compareVersionSegments(v1: string[], v2: string[]): number {\n  for (let i = 0; i < Math.max(v1.length, v2.length); i++) {\n    const res: number = _compareVersionStrings(v1[i] || '0', v2[i] || '0');\n    if (res !== 0) {\n      return res;\n    }\n  }\n  return 0;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// The rest of this file is adapted from portions of https://github.com/npm/node-semver/tree/868d4bb\n// License:\n/*\n * The ISC License\n *\n * Copyright (c) Isaac Z. Schlueter and Contributors\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR\n * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]';\nconst NUMERICIDENTIFIER = '0|[1-9]\\\\d*';\nconst NONNUMERICIDENTIFIER = `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`;\nconst GTLT = '((?:<|>)?=?)';\n\nconst PRERELEASEIDENTIFIER = `(?:${NUMERICIDENTIFIER}|${NONNUMERICIDENTIFIER})`;\nconst PRERELEASE = `(?:-(${PRERELEASEIDENTIFIER}(?:\\\\.${PRERELEASEIDENTIFIER})*))`;\n\nconst BUILDIDENTIFIER = `${LETTERDASHNUMBER}+`;\nconst BUILD = `(?:\\\\+(${BUILDIDENTIFIER}(?:\\\\.${BUILDIDENTIFIER})*))`;\n\nconst XRANGEIDENTIFIER = `${NUMERICIDENTIFIER}|x|X|\\\\*`;\nconst XRANGEPLAIN =\n  `[v=\\\\s]*(${XRANGEIDENTIFIER})` +\n  `(?:\\\\.(${XRANGEIDENTIFIER})` +\n  `(?:\\\\.(${XRANGEIDENTIFIER})` +\n  `(?:${PRERELEASE})?${BUILD}?` +\n  `)?)?`;\nconst XRANGE = `^${GTLT}\\\\s*${XRANGEPLAIN}$`;\nconst XRANGE_REGEXP = new RegExp(XRANGE);\n\nconst HYPHENRANGE =\n  `^\\\\s*(${XRANGEPLAIN})` + `\\\\s+-\\\\s+` + `(${XRANGEPLAIN})` + `\\\\s*$`;\nconst HYPHENRANGE_REGEXP = new RegExp(HYPHENRANGE);\n\nconst LONETILDE = '(?:~>?)';\nconst TILDE = `^${LONETILDE}${XRANGEPLAIN}$`;\nconst TILDE_REGEXP = new RegExp(TILDE);\n\nconst LONECARET = '(?:\\\\^)';\nconst CARET = `^${LONECARET}${XRANGEPLAIN}$`;\nconst CARET_REGEXP = new RegExp(CARET);\n\n// Borrowed from https://github.com/npm/node-semver/blob/868d4bbe3d318c52544f38d5f9977a1103e924c2/classes/range.js#L285\n//\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nfunction replaceTilde(comp: string): string {\n  const r = TILDE_REGEXP;\n  return comp.replace(r, (_, M, m, p, pr) => {\n    let ret;\n\n    if (isX(M)) {\n      ret = '';\n    } else if (isX(m)) {\n      ret = `>=${M}.0.0 <${+M + 1}.0.0-0`;\n    } else if (isX(p)) {\n      // ~1.2 == >=1.2.0 <1.3.0-0\n      ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`;\n    } else if (pr) {\n      ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;\n    } else {\n      // ~1.2.3 == >=1.2.3 <1.3.0-0\n      ret = `>=${M}.${m}.${p} <${M}.${+m + 1}.0-0`;\n    }\n    return ret;\n  });\n}\n\n// Borrowed from https://github.com/npm/node-semver/blob/868d4bbe3d318c52544f38d5f9977a1103e924c2/classes/range.js#L329\n//\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nfunction replaceCaret(comp: string, options?: SatisfiesOptions): string {\n  const r = CARET_REGEXP;\n  const z = options?.includePrerelease ? '-0' : '';\n  return comp.replace(r, (_, M, m, p, pr) => {\n    let ret;\n\n    if (isX(M)) {\n      ret = '';\n    } else if (isX(m)) {\n      ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`;\n    } else if (isX(p)) {\n      if (M === '0') {\n        ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`;\n      } else {\n        ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`;\n      }\n    } else if (pr) {\n      if (M === '0') {\n        if (m === '0') {\n          ret = `>=${M}.${m}.${p}-${pr} <${M}.${m}.${+p + 1}-0`;\n        } else {\n          ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;\n        }\n      } else {\n        ret = `>=${M}.${m}.${p}-${pr} <${+M + 1}.0.0-0`;\n      }\n    } else {\n      if (M === '0') {\n        if (m === '0') {\n          ret = `>=${M}.${m}.${p}${z} <${M}.${m}.${+p + 1}-0`;\n        } else {\n          ret = `>=${M}.${m}.${p}${z} <${M}.${+m + 1}.0-0`;\n        }\n      } else {\n        ret = `>=${M}.${m}.${p} <${+M + 1}.0.0-0`;\n      }\n    }\n    return ret;\n  });\n}\n\n// Borrowed from https://github.com/npm/node-semver/blob/868d4bbe3d318c52544f38d5f9977a1103e924c2/classes/range.js#L390\nfunction replaceXRange(comp: string, options?: SatisfiesOptions): string {\n  const r = XRANGE_REGEXP;\n  return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n    const xM = isX(M);\n    const xm = xM || isX(m);\n    const xp = xm || isX(p);\n    const anyX = xp;\n\n    if (gtlt === '=' && anyX) {\n      gtlt = '';\n    }\n\n    // if we're including prereleases in the match, then we need\n    // to fix this to -0, the lowest possible prerelease value\n    pr = options?.includePrerelease ? '-0' : '';\n\n    if (xM) {\n      if (gtlt === '>' || gtlt === '<') {\n        // nothing is allowed\n        ret = '<0.0.0-0';\n      } else {\n        // nothing is forbidden\n        ret = '*';\n      }\n    } else if (gtlt && anyX) {\n      // we know patch is an x, because we have any x at all.\n      // replace X with 0\n      if (xm) {\n        m = 0;\n      }\n      p = 0;\n\n      if (gtlt === '>') {\n        // >1 => >=2.0.0\n        // >1.2 => >=1.3.0\n        gtlt = '>=';\n        if (xm) {\n          M = +M + 1;\n          m = 0;\n          p = 0;\n        } else {\n          m = +m + 1;\n          p = 0;\n        }\n      } else if (gtlt === '<=') {\n        // <=0.7.x is actually <0.8.0, since any 0.7.x should\n        // pass.  Similarly, <=7.x is actually <8.0.0, etc.\n        gtlt = '<';\n        if (xm) {\n          M = +M + 1;\n        } else {\n          m = +m + 1;\n        }\n      }\n\n      if (gtlt === '<') {\n        pr = '-0';\n      }\n\n      ret = `${gtlt + M}.${m}.${p}${pr}`;\n    } else if (xm) {\n      ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`;\n    } else if (xp) {\n      ret = `>=${M}.${m}.0${pr} <${M}.${+m + 1}.0-0`;\n    }\n\n    return ret;\n  });\n}\n\n// Borrowed from https://github.com/npm/node-semver/blob/868d4bbe3d318c52544f38d5f9977a1103e924c2/classes/range.js#L488\n//\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nfunction replaceHyphen(comp: string, options?: SatisfiesOptions): string {\n  const r = HYPHENRANGE_REGEXP;\n  return comp.replace(\n    r,\n    (_, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr) => {\n      if (isX(fM)) {\n        from = '';\n      } else if (isX(fm)) {\n        from = `>=${fM}.0.0${options?.includePrerelease ? '-0' : ''}`;\n      } else if (isX(fp)) {\n        from = `>=${fM}.${fm}.0${options?.includePrerelease ? '-0' : ''}`;\n      } else if (fpr) {\n        from = `>=${from}`;\n      } else {\n        from = `>=${from}${options?.includePrerelease ? '-0' : ''}`;\n      }\n\n      if (isX(tM)) {\n        to = '';\n      } else if (isX(tm)) {\n        to = `<${+tM + 1}.0.0-0`;\n      } else if (isX(tp)) {\n        to = `<${tM}.${+tm + 1}.0-0`;\n      } else if (tpr) {\n        to = `<=${tM}.${tm}.${tp}-${tpr}`;\n      } else if (options?.includePrerelease) {\n        to = `<${tM}.${tm}.${+tp + 1}-0`;\n      } else {\n        to = `<=${to}`;\n      }\n\n      return `${from} ${to}`.trim();\n    }\n  );\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Logger } from './types/Logger';\nimport { LogRecord } from './types/LogRecord';\n\nexport class NoopLogger implements Logger {\n  emit(_logRecord: LogRecord): void {}\n}\n\nexport const NOOP_LOGGER = new NoopLogger();\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ShimWrapped } from './types';\n\n/**\n * function to execute patched function and being able to catch errors\n * @param execute - function to be executed\n * @param onFinish - callback to run when execute finishes\n */\nexport function safeExecuteInTheMiddle(\n  execute: () => T,\n  onFinish: (e: Error | undefined, result: T | undefined) => void,\n  preventThrowingError?: boolean\n): T {\n  let error: Error | undefined;\n  let result: T | undefined;\n  try {\n    result = execute();\n  } catch (e) {\n    error = e;\n  } finally {\n    onFinish(error, result);\n    if (error && !preventThrowingError) {\n      // eslint-disable-next-line no-unsafe-finally\n      throw error;\n    }\n    // eslint-disable-next-line no-unsafe-finally\n    return result as T;\n  }\n}\n\n/**\n * Async function to execute patched function and being able to catch errors\n * @param execute - function to be executed\n * @param onFinish - callback to run when execute finishes\n */\nexport async function safeExecuteInTheMiddleAsync(\n  execute: () => T,\n  onFinish: (e: Error | undefined, result: T | undefined) => void,\n  preventThrowingError?: boolean\n): Promise {\n  let error: Error | undefined;\n  let result: T | undefined;\n  try {\n    result = await execute();\n  } catch (e) {\n    error = e;\n  } finally {\n    onFinish(error, result);\n    if (error && !preventThrowingError) {\n      // eslint-disable-next-line no-unsafe-finally\n      throw error;\n    }\n    // eslint-disable-next-line no-unsafe-finally\n    return result as T;\n  }\n}\n/**\n * Checks if certain function has been already wrapped\n * @param func\n */\nexport function isWrapped(func: unknown): func is ShimWrapped {\n  return (\n    typeof func === 'function' &&\n    typeof (func as ShimWrapped).__original === 'function' &&\n    typeof (func as ShimWrapped).__unwrap === 'function' &&\n    (func as ShimWrapped).__wrapped === true\n  );\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { TracerProvider, MeterProvider } from '@opentelemetry/api';\nimport { Instrumentation } from './types';\nimport { LoggerProvider } from '@opentelemetry/api-logs';\n\n/**\n * Enable instrumentations\n * @param instrumentations\n * @param tracerProvider\n * @param meterProvider\n */\nexport function enableInstrumentations(\n  instrumentations: Instrumentation[],\n  tracerProvider?: TracerProvider,\n  meterProvider?: MeterProvider,\n  loggerProvider?: LoggerProvider\n): void {\n  for (let i = 0, j = instrumentations.length; i < j; i++) {\n    const instrumentation = instrumentations[i];\n    if (tracerProvider) {\n      instrumentation.setTracerProvider(tracerProvider);\n    }\n    if (meterProvider) {\n      instrumentation.setMeterProvider(meterProvider);\n    }\n    if (loggerProvider && instrumentation.setLoggerProvider) {\n      instrumentation.setLoggerProvider(loggerProvider);\n    }\n    // instrumentations have been already enabled during creation\n    // so enable only if user prevented that by setting enabled to false\n    // this is to prevent double enabling but when calling register all\n    // instrumentations should be now enabled\n    if (!instrumentation.getConfig().enabled) {\n      instrumentation.enable();\n    }\n  }\n}\n\n/**\n * Disable instrumentations\n * @param instrumentations\n */\nexport function disableInstrumentations(\n  instrumentations: Instrumentation[]\n): void {\n  instrumentations.forEach(instrumentation => instrumentation.disable());\n}\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n  for (var name in all)\n    __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n  PrismaInstrumentation: () => PrismaInstrumentation,\n  registerInstrumentations: () => import_instrumentation2.registerInstrumentations\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/PrismaInstrumentation.ts\nvar import_api2 = require(\"@opentelemetry/api\");\nvar import_instrumentation = require(\"@opentelemetry/instrumentation\");\n\n// ../instrumentation-contract/dist/index.mjs\nvar package_default = {\n  name: \"@prisma/instrumentation-contract\",\n  version: \"7.6.0\",\n  description: \"Shared types and utilities for Prisma instrumentation\",\n  main: \"dist/index.js\",\n  module: \"dist/index.mjs\",\n  types: \"dist/index.d.ts\",\n  exports: {\n    \".\": {\n      require: {\n        types: \"./dist/index.d.ts\",\n        default: \"./dist/index.js\"\n      },\n      import: {\n        types: \"./dist/index.d.mts\",\n        default: \"./dist/index.mjs\"\n      }\n    }\n  },\n  license: \"Apache-2.0\",\n  homepage: \"https://www.prisma.io\",\n  repository: {\n    type: \"git\",\n    url: \"https://github.com/prisma/prisma.git\",\n    directory: \"packages/instrumentation-contract\"\n  },\n  bugs: \"https://github.com/prisma/prisma/issues\",\n  scripts: {\n    dev: \"DEV=true tsx helpers/build.ts\",\n    build: \"tsx helpers/build.ts\",\n    prepublishOnly: \"pnpm run build\",\n    test: \"vitest run\"\n  },\n  files: [\n    \"dist\"\n  ],\n  sideEffects: false,\n  devDependencies: {\n    \"@opentelemetry/api\": \"1.9.0\"\n  },\n  peerDependencies: {\n    \"@opentelemetry/api\": \"^1.8\"\n  }\n};\nvar majorVersion = package_default.version.split(\".\")[0];\nvar GLOBAL_INSTRUMENTATION_KEY = \"PRISMA_INSTRUMENTATION\";\nvar GLOBAL_VERSIONED_INSTRUMENTATION_KEY = `V${majorVersion}_PRISMA_INSTRUMENTATION`;\nvar globalThisWithPrismaInstrumentation = globalThis;\nfunction getGlobalTracingHelper() {\n  const versionedGlobal = globalThisWithPrismaInstrumentation[GLOBAL_VERSIONED_INSTRUMENTATION_KEY];\n  if (versionedGlobal?.helper) {\n    return versionedGlobal.helper;\n  }\n  const fallbackGlobal = globalThisWithPrismaInstrumentation[GLOBAL_INSTRUMENTATION_KEY];\n  return fallbackGlobal?.helper;\n}\nfunction setGlobalTracingHelper(helper) {\n  const globalValue = { helper };\n  globalThisWithPrismaInstrumentation[GLOBAL_VERSIONED_INSTRUMENTATION_KEY] = globalValue;\n  globalThisWithPrismaInstrumentation[GLOBAL_INSTRUMENTATION_KEY] = globalValue;\n}\nfunction clearGlobalTracingHelper() {\n  delete globalThisWithPrismaInstrumentation[GLOBAL_VERSIONED_INSTRUMENTATION_KEY];\n  delete globalThisWithPrismaInstrumentation[GLOBAL_INSTRUMENTATION_KEY];\n}\n\n// src/ActiveTracingHelper.ts\nvar import_api = require(\"@opentelemetry/api\");\nvar showAllTraces = process.env.PRISMA_SHOW_ALL_TRACES === \"true\";\nvar nonSampledTraceParent = `00-10-10-00`;\nfunction engineSpanKindToOtelSpanKind(engineSpanKind) {\n  switch (engineSpanKind) {\n    case \"client\":\n      return import_api.SpanKind.CLIENT;\n    case \"internal\":\n    default:\n      return import_api.SpanKind.INTERNAL;\n  }\n}\nvar ActiveTracingHelper = class {\n  tracerProvider;\n  ignoreSpanTypes;\n  constructor({ tracerProvider, ignoreSpanTypes }) {\n    this.tracerProvider = tracerProvider;\n    this.ignoreSpanTypes = ignoreSpanTypes;\n  }\n  isEnabled() {\n    return true;\n  }\n  getTraceParent(context) {\n    const span = import_api.trace.getSpanContext(context ?? import_api.context.active());\n    if (span) {\n      return `00-${span.traceId}-${span.spanId}-0${span.traceFlags}`;\n    }\n    return nonSampledTraceParent;\n  }\n  dispatchEngineSpans(spans) {\n    const tracer = this.tracerProvider.getTracer(\"prisma\");\n    const linkIds = /* @__PURE__ */ new Map();\n    const roots = spans.filter((span) => span.parentId === null);\n    for (const root of roots) {\n      dispatchEngineSpan(tracer, root, spans, linkIds, this.ignoreSpanTypes);\n    }\n  }\n  getActiveContext() {\n    return import_api.context.active();\n  }\n  runInChildSpan(options, callback) {\n    if (typeof options === \"string\") {\n      options = { name: options };\n    }\n    if (options.internal && !showAllTraces) {\n      return callback();\n    }\n    const tracer = this.tracerProvider.getTracer(\"prisma\");\n    const context = options.context ?? this.getActiveContext();\n    const name = `prisma:client:${options.name}`;\n    if (shouldIgnoreSpan(name, this.ignoreSpanTypes)) {\n      return callback();\n    }\n    if (options.active === false) {\n      const span = tracer.startSpan(name, options, context);\n      return endSpan(span, callback(span, context));\n    }\n    return tracer.startActiveSpan(name, options, (span) => endSpan(span, callback(span, context)));\n  }\n};\nfunction dispatchEngineSpan(tracer, engineSpan, allSpans, linkIds, ignoreSpanTypes) {\n  if (shouldIgnoreSpan(engineSpan.name, ignoreSpanTypes)) return;\n  const spanOptions = {\n    attributes: engineSpan.attributes,\n    kind: engineSpanKindToOtelSpanKind(engineSpan.kind),\n    startTime: engineSpan.startTime\n  };\n  tracer.startActiveSpan(engineSpan.name, spanOptions, (span) => {\n    linkIds.set(engineSpan.id, span.spanContext().spanId);\n    if (engineSpan.links) {\n      span.addLinks(\n        engineSpan.links.flatMap((link) => {\n          const linkedId = linkIds.get(link);\n          if (!linkedId) {\n            return [];\n          }\n          return {\n            context: {\n              spanId: linkedId,\n              traceId: span.spanContext().traceId,\n              traceFlags: span.spanContext().traceFlags\n            }\n          };\n        })\n      );\n    }\n    const children = allSpans.filter((s) => s.parentId === engineSpan.id);\n    for (const child of children) {\n      dispatchEngineSpan(tracer, child, allSpans, linkIds, ignoreSpanTypes);\n    }\n    span.end(engineSpan.endTime);\n  });\n}\nfunction endSpan(span, result) {\n  if (isPromiseLike(result)) {\n    return result.then(\n      (value) => {\n        span.end();\n        return value;\n      },\n      (reason) => {\n        span.end();\n        throw reason;\n      }\n    );\n  }\n  span.end();\n  return result;\n}\nfunction isPromiseLike(value) {\n  return value != null && typeof value[\"then\"] === \"function\";\n}\nfunction shouldIgnoreSpan(spanName, ignoreSpanTypes) {\n  return ignoreSpanTypes.some(\n    (pattern) => typeof pattern === \"string\" ? pattern === spanName : pattern.test(spanName)\n  );\n}\n\n// package.json\nvar package_default2 = {\n  name: \"@prisma/instrumentation\",\n  version: \"7.6.0\",\n  description: \"OpenTelemetry compliant instrumentation for Prisma Client\",\n  main: \"dist/index.js\",\n  module: \"dist/index.mjs\",\n  types: \"dist/index.d.ts\",\n  exports: {\n    \".\": {\n      require: {\n        types: \"./dist/index.d.ts\",\n        default: \"./dist/index.js\"\n      },\n      import: {\n        types: \"./dist/index.d.ts\",\n        default: \"./dist/index.mjs\"\n      }\n    }\n  },\n  license: \"Apache-2.0\",\n  homepage: \"https://www.prisma.io\",\n  repository: {\n    type: \"git\",\n    url: \"https://github.com/prisma/prisma.git\",\n    directory: \"packages/instrumentation\"\n  },\n  bugs: \"https://github.com/prisma/prisma/issues\",\n  devDependencies: {\n    \"@opentelemetry/api\": \"1.9.0\",\n    \"@prisma/instrumentation-contract\": \"workspace:*\",\n    \"@types/node\": \"~20.19.24\",\n    typescript: \"5.4.5\"\n  },\n  dependencies: {\n    \"@opentelemetry/instrumentation\": \"^0.207.0\"\n  },\n  peerDependencies: {\n    \"@opentelemetry/api\": \"^1.8\"\n  },\n  files: [\n    \"dist\"\n  ],\n  keywords: [\n    \"prisma\",\n    \"instrumentation\",\n    \"opentelemetry\",\n    \"otel\"\n  ],\n  scripts: {\n    dev: \"DEV=true tsx helpers/build.ts\",\n    build: \"tsx helpers/build.ts\",\n    prepublishOnly: \"pnpm run build\",\n    test: \"vitest run\"\n  },\n  sideEffects: false\n};\n\n// src/constants.ts\nvar VERSION = package_default2.version;\nvar NAME = package_default2.name;\nvar MODULE_NAME = \"@prisma/client\";\n\n// src/PrismaInstrumentation.ts\nvar PrismaInstrumentation = class extends import_instrumentation.InstrumentationBase {\n  tracerProvider;\n  constructor(config = {}) {\n    super(NAME, VERSION, config);\n  }\n  setTracerProvider(tracerProvider) {\n    this.tracerProvider = tracerProvider;\n  }\n  init() {\n    const module2 = new import_instrumentation.InstrumentationNodeModuleDefinition(MODULE_NAME, [VERSION]);\n    return [module2];\n  }\n  enable() {\n    const config = this._config;\n    setGlobalTracingHelper(\n      new ActiveTracingHelper({\n        tracerProvider: this.tracerProvider ?? import_api2.trace.getTracerProvider(),\n        ignoreSpanTypes: config.ignoreSpanTypes ?? []\n      })\n    );\n  }\n  disable() {\n    clearGlobalTracingHelper();\n  }\n  isEnabled() {\n    return getGlobalTracingHelper() !== void 0;\n  }\n};\n\n// src/index.ts\nvar import_instrumentation2 = require(\"@opentelemetry/instrumentation\");\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n  PrismaInstrumentation,\n  registerInstrumentations\n});\n","import type { Link, Tracer } from '@opentelemetry/api';\nimport { context, SpanKind, trace, TraceFlags } from '@opentelemetry/api';\nimport type { Instrumentation } from '@opentelemetry/instrumentation';\nimport type { IdGenerator } from '@opentelemetry/sdk-trace-base';\nimport { PrismaInstrumentation } from '@prisma/instrumentation';\nimport { consoleSandbox, defineIntegration, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, spanToJSON } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport type { PrismaV5TracingHelper } from './prisma/vendor/v5-tracing-helper';\nimport type { PrismaV6TracingHelper } from './prisma/vendor/v6-tracing-helper';\n\nconst INTEGRATION_NAME = 'Prisma';\n\ntype CompatibilityLayerTraceHelper = PrismaV5TracingHelper & PrismaV6TracingHelper;\n\n// Vendored in from @prisma/instrumentation v5:\ntype V5EngineSpanEvent = {\n  span: boolean;\n  spans: V5EngineSpan[];\n};\n\ntype V5EngineSpanKind = 'client' | 'internal';\n\ntype V5EngineSpan = {\n  span: boolean;\n  name: string;\n  trace_id: string;\n  span_id: string;\n  parent_span_id: string;\n  start_time: [number, number];\n  end_time: [number, number];\n  attributes?: Record;\n  links?: { trace_id: string; span_id: string }[];\n  kind: V5EngineSpanKind;\n};\n\nfunction isPrismaV6TracingHelper(helper: unknown): helper is PrismaV6TracingHelper {\n  return !!helper && typeof helper === 'object' && 'dispatchEngineSpans' in helper;\n}\n\nfunction getPrismaTracingHelper(): unknown | undefined {\n  const prismaInstrumentationObject = (globalThis as Record).PRISMA_INSTRUMENTATION;\n  const prismaTracingHelper =\n    prismaInstrumentationObject &&\n    typeof prismaInstrumentationObject === 'object' &&\n    'helper' in prismaInstrumentationObject\n      ? prismaInstrumentationObject.helper\n      : undefined;\n\n  return prismaTracingHelper;\n}\n\ntype TracerWithIdGenerator = Tracer & {\n  _idGenerator?: IdGenerator;\n};\n\ninterface PrismaOptions {\n  /**\n   * @deprecated This is no longer used, v5 works out of the box.\n   */\n  prismaInstrumentation?: Instrumentation;\n  /**\n   * Configuration passed through to the {@link PrismaInstrumentation} constructor.\n   */\n  instrumentationConfig?: ConstructorParameters[0];\n}\n\nclass SentryPrismaInteropInstrumentation extends PrismaInstrumentation {\n  public constructor(options?: PrismaOptions) {\n    super(options?.instrumentationConfig);\n  }\n\n  public enable(): void {\n    super.enable();\n\n    // The PrismaIntegration (super class) defines a global variable `global[\"PRISMA_INSTRUMENTATION\"]` when `enable()` is called. This global variable holds a \"TracingHelper\" which Prisma uses internally to create tracing data. It's their way of not depending on OTEL with their main package. The sucky thing is, prisma broke the interface of the tracing helper with the v6 major update. This means that if you use Prisma 5 with the v6 instrumentation (or vice versa) Prisma just blows up, because tries to call methods on the helper that no longer exist.\n    // Because we actually want to use the v6 instrumentation and not blow up in Prisma 5 user's faces, what we're doing here is backfilling the v5 method (`createEngineSpan`) with a noop so that no longer crashes when it attempts to call that function.\n    const prismaTracingHelper = getPrismaTracingHelper();\n\n    if (isPrismaV6TracingHelper(prismaTracingHelper)) {\n      // Inspired & adjusted from https://github.com/prisma/prisma/tree/5.22.0/packages/instrumentation\n      (prismaTracingHelper as CompatibilityLayerTraceHelper).createEngineSpan = (\n        engineSpanEvent: V5EngineSpanEvent,\n      ) => {\n        const tracer = trace.getTracer('prismaV5Compatibility') as TracerWithIdGenerator;\n\n        // Prisma v5 relies on being able to create spans with a specific span & trace ID\n        // this is no longer possible in OTEL v2, there is no public API to do this anymore\n        // So in order to kind of hack this possibility, we rely on the internal `_idGenerator` property\n        // This is used to generate the random IDs, and we overwrite this temporarily to generate static IDs\n        // This is flawed and may not work, e.g. if the code is bundled and the private property is renamed\n        // in such cases, these spans will not be captured and some Prisma spans will be missing\n        const initialIdGenerator = tracer._idGenerator;\n\n        if (!initialIdGenerator) {\n          consoleSandbox(() => {\n            // eslint-disable-next-line no-console\n            console.warn(\n              '[Sentry] Could not find _idGenerator on tracer, skipping Prisma v5 compatibility - some Prisma spans may be missing!',\n            );\n          });\n\n          return;\n        }\n\n        try {\n          engineSpanEvent.spans.forEach(engineSpan => {\n            const kind = engineSpanKindToOTELSpanKind(engineSpan.kind);\n\n            const parentSpanId = engineSpan.parent_span_id;\n            const spanId = engineSpan.span_id;\n            const traceId = engineSpan.trace_id;\n\n            const links: Link[] | undefined = engineSpan.links?.map(link => {\n              return {\n                context: {\n                  traceId: link.trace_id,\n                  spanId: link.span_id,\n                  traceFlags: TraceFlags.SAMPLED,\n                },\n              };\n            });\n\n            const ctx = trace.setSpanContext(context.active(), {\n              traceId,\n              spanId: parentSpanId,\n              traceFlags: TraceFlags.SAMPLED,\n            });\n\n            context.with(ctx, () => {\n              const temporaryIdGenerator: IdGenerator = {\n                generateTraceId: () => {\n                  return traceId;\n                },\n                generateSpanId: () => {\n                  return spanId;\n                },\n              };\n\n              tracer._idGenerator = temporaryIdGenerator;\n\n              const span = tracer.startSpan(engineSpan.name, {\n                kind,\n                links,\n                startTime: engineSpan.start_time,\n                attributes: engineSpan.attributes,\n              });\n\n              span.end(engineSpan.end_time);\n\n              tracer._idGenerator = initialIdGenerator;\n            });\n          });\n        } finally {\n          // Ensure we always restore this at the end, even if something errors\n          tracer._idGenerator = initialIdGenerator;\n        }\n      };\n    }\n  }\n}\n\nfunction engineSpanKindToOTELSpanKind(engineSpanKind: V5EngineSpanKind): SpanKind {\n  switch (engineSpanKind) {\n    case 'client':\n      return SpanKind.CLIENT;\n    case 'internal':\n    default: // Other span kinds aren't currently supported\n      return SpanKind.INTERNAL;\n  }\n}\n\nexport const instrumentPrisma = generateInstrumentOnce(INTEGRATION_NAME, options => {\n  return new SentryPrismaInteropInstrumentation(options);\n});\n\n/**\n * Adds Sentry tracing instrumentation for the [prisma](https://www.npmjs.com/package/prisma) library.\n * For more information, see the [`prismaIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/prisma/).\n *\n * NOTE: By default, this integration works with Prisma version 6.\n * To get performance instrumentation for other Prisma versions,\n * 1. Install the `@prisma/instrumentation` package with the desired version.\n * 1. Pass a `new PrismaInstrumentation()` instance as exported from `@prisma/instrumentation` to the `prismaInstrumentation` option of this integration:\n *\n *    ```js\n *    import { PrismaInstrumentation } from '@prisma/instrumentation'\n *\n *    Sentry.init({\n *      integrations: [\n *        prismaIntegration({\n *          // Override the default instrumentation that Sentry uses\n *          prismaInstrumentation: new PrismaInstrumentation()\n *        })\n *      ]\n *    })\n *    ```\n *\n *    The passed instrumentation instance will override the default instrumentation instance the integration would use, while the `prismaIntegration` will still ensure data compatibility for the various Prisma versions.\n * 1. Depending on your Prisma version (prior to version 6), add `previewFeatures = [\"tracing\"]` to the client generator block of your Prisma schema:\n *\n *    ```\n *    generator client {\n *      provider = \"prisma-client-js\"\n *      previewFeatures = [\"tracing\"]\n *    }\n *    ```\n */\nexport const prismaIntegration = defineIntegration((options?: PrismaOptions) => {\n  return {\n    name: INTEGRATION_NAME,\n    setupOnce() {\n      instrumentPrisma(options);\n    },\n    setup(client) {\n      // If no tracing helper exists, we skip any work here\n      // this means that prisma is not being used\n      if (!getPrismaTracingHelper()) {\n        return;\n      }\n\n      client.on('spanStart', span => {\n        const spanJSON = spanToJSON(span);\n        if (spanJSON.description?.startsWith('prisma:')) {\n          span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, 'auto.db.otel.prisma');\n        }\n\n        // Make sure we use the query text as the span name, for ex. SELECT * FROM \"User\" WHERE \"id\" = $1\n        if (spanJSON.description === 'prisma:engine:db_query' && spanJSON.data['db.query.text']) {\n          span.updateName(spanJSON.data['db.query.text'] as string);\n        }\n\n        // In Prisma v5.22+, the `db.system` attribute is automatically set\n        // On older versions, this is missing, so we add it here\n        if (spanJSON.description === 'prisma:engine:db_query' && !spanJSON.data['db.system']) {\n          span.setAttribute('db.system', 'prisma');\n        }\n      });\n    },\n  };\n});\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const PACKAGE_VERSION = '0.60.0';\nexport const PACKAGE_NAME = '@opentelemetry/instrumentation-hapi';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type * as Hapi from '@hapi/hapi';\n\nexport const HapiComponentName = '@hapi/hapi';\n\n/**\n * This symbol is used to mark a Hapi route handler or server extension handler as\n * already patched, since its possible to use these handlers multiple times\n * i.e. when allowing multiple versions of one plugin, or when registering a plugin\n * multiple times on different servers.\n */\nexport const handlerPatched: unique symbol = Symbol('hapi-handler-patched');\n\nexport type HapiServerRouteInputMethod = (route: HapiServerRouteInput) => void;\n\nexport type HapiServerRouteInput =\n  | PatchableServerRoute\n  | PatchableServerRoute[];\n\nexport type PatchableServerRoute = Hapi.ServerRoute & {\n  [handlerPatched]?: boolean;\n};\n\nexport type HapiPluginObject = Hapi.ServerRegisterPluginObject;\n\nexport type HapiPluginInput =\n  | HapiPluginObject\n  | Array>;\n\nexport type RegisterFunction = (\n  plugin: HapiPluginInput,\n  options?: Hapi.ServerRegisterOptions\n) => Promise;\n\nexport type PatchableExtMethod = Hapi.Lifecycle.Method & {\n  [handlerPatched]?: boolean;\n};\n\nexport type ServerExtDirectInput = [\n  Hapi.ServerRequestExtType,\n  Hapi.Lifecycle.Method,\n  (Hapi.ServerExtOptions | undefined)?,\n];\n\nexport const HapiLayerType = {\n  ROUTER: 'router',\n  PLUGIN: 'plugin',\n  EXT: 'server.ext',\n};\n\nexport const HapiLifecycleMethodNames = new Set([\n  'onPreAuth',\n  'onCredentials',\n  'onPostAuth',\n  'onPreHandler',\n  'onPostHandler',\n  'onPreResponse',\n  'onRequest',\n]);\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n\n/**\n * Deprecated, use `http.request.method` instead.\n *\n * @example GET\n * @example POST\n * @example HEAD\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `http.request.method`.\n */\nexport const ATTR_HTTP_METHOD = 'http.method' as const;\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport enum AttributeNames {\n  HAPI_TYPE = 'hapi.type',\n  PLUGIN_NAME = 'hapi.plugin.name',\n  EXT_TYPE = 'server.ext.type',\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Attributes } from '@opentelemetry/api';\nimport {\n  ATTR_HTTP_ROUTE,\n  ATTR_HTTP_REQUEST_METHOD,\n} from '@opentelemetry/semantic-conventions';\nimport { ATTR_HTTP_METHOD } from './semconv';\nimport type * as Hapi from '@hapi/hapi';\nimport {\n  HapiLayerType,\n  HapiLifecycleMethodNames,\n  HapiPluginObject,\n  PatchableExtMethod,\n  ServerExtDirectInput,\n} from './internal-types';\nimport { AttributeNames } from './enums/AttributeNames';\nimport { SemconvStability } from '@opentelemetry/instrumentation';\n\nexport function getPluginName(plugin: Hapi.Plugin): string {\n  if ((plugin as Hapi.PluginNameVersion).name) {\n    return (plugin as Hapi.PluginNameVersion).name;\n  } else {\n    return (plugin as Hapi.PluginPackage).pkg.name;\n  }\n}\n\nexport const isLifecycleExtType = (\n  variableToCheck: unknown\n): variableToCheck is Hapi.ServerRequestExtType => {\n  return (\n    typeof variableToCheck === 'string' &&\n    HapiLifecycleMethodNames.has(variableToCheck)\n  );\n};\n\nexport const isLifecycleExtEventObj = (\n  variableToCheck: unknown\n): variableToCheck is Hapi.ServerExtEventsRequestObject => {\n  const event = (variableToCheck as Hapi.ServerExtEventsRequestObject)?.type;\n  return event !== undefined && isLifecycleExtType(event);\n};\n\nexport const isDirectExtInput = (\n  variableToCheck: unknown\n): variableToCheck is ServerExtDirectInput => {\n  return (\n    Array.isArray(variableToCheck) &&\n    variableToCheck.length <= 3 &&\n    isLifecycleExtType(variableToCheck[0]) &&\n    typeof variableToCheck[1] === 'function'\n  );\n};\n\nexport const isPatchableExtMethod = (\n  variableToCheck: PatchableExtMethod | PatchableExtMethod[]\n): variableToCheck is PatchableExtMethod => {\n  return !Array.isArray(variableToCheck);\n};\n\nexport const getRouteMetadata = (\n  route: Hapi.ServerRoute,\n  semconvStability: SemconvStability,\n  pluginName?: string\n): {\n  attributes: Attributes;\n  name: string;\n} => {\n  const attributes: Attributes = {\n    [ATTR_HTTP_ROUTE]: route.path,\n  };\n  if (semconvStability & SemconvStability.OLD) {\n    attributes[ATTR_HTTP_METHOD] = route.method;\n  }\n  if (semconvStability & SemconvStability.STABLE) {\n    // Note: This currently does *not* normalize the method name to uppercase\n    // and conditionally include `http.request.method.original` as described\n    // at https://opentelemetry.io/docs/specs/semconv/http/http-spans/\n    // These attributes are for a *hapi* span, and not the parent HTTP span,\n    // so the HTTP span guidance doesn't strictly apply.\n    attributes[ATTR_HTTP_REQUEST_METHOD] = route.method;\n  }\n\n  let name;\n  if (pluginName) {\n    attributes[AttributeNames.HAPI_TYPE] = HapiLayerType.PLUGIN;\n    attributes[AttributeNames.PLUGIN_NAME] = pluginName;\n    name = `${pluginName}: route - ${route.path}`;\n  } else {\n    attributes[AttributeNames.HAPI_TYPE] = HapiLayerType.ROUTER;\n    name = `route - ${route.path}`;\n  }\n\n  return { attributes, name };\n};\n\nexport const getExtMetadata = (\n  extPoint: Hapi.ServerRequestExtType,\n  pluginName?: string,\n  methodName?: string\n): {\n  attributes: Attributes;\n  name: string;\n} => {\n  let baseName = `ext - ${extPoint}`;\n  if (methodName && methodName !== 'method') {\n    // method is the default name for the extension in the ServerExtEventsObject format.\n    baseName = `ext - ${extPoint} - ${methodName}`;\n  }\n  if (pluginName) {\n    return {\n      attributes: {\n        [AttributeNames.EXT_TYPE]: extPoint,\n        [AttributeNames.HAPI_TYPE]: HapiLayerType.EXT,\n        [AttributeNames.PLUGIN_NAME]: pluginName,\n      },\n      name: `${pluginName}: ${baseName}`,\n    };\n  }\n  return {\n    attributes: {\n      [AttributeNames.EXT_TYPE]: extPoint,\n      [AttributeNames.HAPI_TYPE]: HapiLayerType.EXT,\n    },\n    name: baseName,\n  };\n};\n\nexport const getPluginFromInput = (\n  pluginObj: HapiPluginObject\n): Hapi.Plugin => {\n  if ('plugin' in pluginObj) {\n    if ('plugin' in pluginObj.plugin) {\n      return pluginObj.plugin.plugin;\n    }\n    return pluginObj.plugin;\n  }\n  return pluginObj;\n};\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as api from '@opentelemetry/api';\nimport { getRPCMetadata, RPCType } from '@opentelemetry/core';\nimport {\n  InstrumentationBase,\n  InstrumentationConfig,\n  InstrumentationNodeModuleDefinition,\n  isWrapped,\n  SemconvStability,\n  semconvStabilityFromStr,\n} from '@opentelemetry/instrumentation';\n\nimport type * as Hapi from '@hapi/hapi';\n/** @knipignore */\nimport { PACKAGE_NAME, PACKAGE_VERSION } from './version';\nimport {\n  HapiComponentName,\n  HapiServerRouteInput,\n  handlerPatched,\n  PatchableServerRoute,\n  HapiServerRouteInputMethod,\n  HapiPluginInput,\n  RegisterFunction,\n  PatchableExtMethod,\n  ServerExtDirectInput,\n} from './internal-types';\nimport {\n  getRouteMetadata,\n  getPluginName,\n  isLifecycleExtType,\n  isLifecycleExtEventObj,\n  getExtMetadata,\n  isDirectExtInput,\n  isPatchableExtMethod,\n  getPluginFromInput,\n} from './utils';\n\n/** Hapi instrumentation for OpenTelemetry */\nexport class HapiInstrumentation extends InstrumentationBase {\n  private _semconvStability: SemconvStability;\n\n  constructor(config: InstrumentationConfig = {}) {\n    super(PACKAGE_NAME, PACKAGE_VERSION, config);\n    this._semconvStability = semconvStabilityFromStr(\n      'http',\n      process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n    );\n  }\n\n  protected init() {\n    return new InstrumentationNodeModuleDefinition(\n      HapiComponentName,\n      ['>=17.0.0 <22'],\n      (module: any) => {\n        const moduleExports: typeof Hapi =\n          module[Symbol.toStringTag] === 'Module' ? module.default : module;\n        if (!isWrapped(moduleExports.server)) {\n          this._wrap(\n            moduleExports,\n            'server',\n            this._getServerPatch.bind(this) as any\n          );\n        }\n\n        if (!isWrapped(moduleExports.Server)) {\n          this._wrap(\n            moduleExports,\n            'Server',\n            this._getServerPatch.bind(this) as any\n          );\n        }\n        return moduleExports;\n      },\n      (module: any) => {\n        const moduleExports: typeof Hapi =\n          module[Symbol.toStringTag] === 'Module' ? module.default : module;\n        this._massUnwrap([moduleExports], ['server', 'Server']);\n      }\n    );\n  }\n\n  /**\n   * Patches the Hapi.server and Hapi.Server functions in order to instrument\n   * the server.route, server.ext, and server.register functions via calls to the\n   * @function _getServerRoutePatch, @function _getServerExtPatch, and\n   * @function _getServerRegisterPatch functions\n   * @param original - the original Hapi Server creation function\n   */\n  private _getServerPatch(\n    original: (options?: Hapi.ServerOptions) => Hapi.Server\n  ) {\n    const instrumentation: HapiInstrumentation = this;\n    const self = this;\n    return function server(this: Hapi.Server, opts?: Hapi.ServerOptions) {\n      const newServer: Hapi.Server = original.apply(this, [opts]);\n\n      self._wrap(newServer, 'route', originalRouter => {\n        return instrumentation._getServerRoutePatch.bind(instrumentation)(\n          originalRouter\n        );\n      });\n\n      // Casting as any is necessary here due to multiple overloads on the Hapi.ext\n      // function, which requires supporting a variety of different parameters\n      // as extension inputs\n      self._wrap(newServer, 'ext', originalExtHandler => {\n        return instrumentation._getServerExtPatch.bind(instrumentation)(\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\n          originalExtHandler as any\n        );\n      });\n\n      // Casting as any is necessary here due to multiple overloads on the Hapi.Server.register\n      // function, which requires supporting a variety of different types of Plugin inputs\n      self._wrap(\n        newServer,\n        'register',\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        instrumentation._getServerRegisterPatch.bind(instrumentation) as any\n      );\n      return newServer;\n    };\n  }\n\n  /**\n   * Patches the plugin register function used by the Hapi Server. This function\n   * goes through each plugin that is being registered and adds instrumentation\n   * via a call to the @function _wrapRegisterHandler function.\n   * @param {RegisterFunction} original - the original register function which\n   * registers each plugin on the server\n   */\n  private _getServerRegisterPatch(\n    original: RegisterFunction\n  ): RegisterFunction {\n    const instrumentation: HapiInstrumentation = this;\n    return function register(\n      this: Hapi.Server,\n      pluginInput: HapiPluginInput,\n      options?: Hapi.ServerRegisterOptions\n    ) {\n      if (Array.isArray(pluginInput)) {\n        for (const pluginObj of pluginInput) {\n          const plugin = getPluginFromInput(pluginObj);\n          instrumentation._wrapRegisterHandler(plugin);\n        }\n      } else {\n        const plugin = getPluginFromInput(pluginInput);\n        instrumentation._wrapRegisterHandler(plugin);\n      }\n      return original.apply(this, [pluginInput, options]);\n    };\n  }\n\n  /**\n   * Patches the Server.ext function which adds extension methods to the specified\n   * point along the request lifecycle. This function accepts the full range of\n   * accepted input into the standard Hapi `server.ext` function. For each extension,\n   * it adds instrumentation to the handler via a call to the @function _wrapExtMethods\n   * function.\n   * @param original - the original ext function which adds the extension method to the server\n   * @param {string} [pluginName] - if present, represents the name of the plugin responsible\n   * for adding this server extension. Else, signifies that the extension was added directly\n   */\n  private _getServerExtPatch(\n    original: (...args: unknown[]) => unknown,\n    pluginName?: string\n  ) {\n    const instrumentation: HapiInstrumentation = this;\n\n    return function ext(\n      this: ThisParameterType,\n      ...args: Parameters\n    ) {\n      if (Array.isArray(args[0])) {\n        const eventsList:\n          | Hapi.ServerExtEventsObject[]\n          | Hapi.ServerExtEventsRequestObject[] = args[0];\n        for (let i = 0; i < eventsList.length; i++) {\n          const eventObj = eventsList[i];\n          if (isLifecycleExtType(eventObj.type)) {\n            const lifecycleEventObj =\n              eventObj as Hapi.ServerExtEventsRequestObject;\n            const handler = instrumentation._wrapExtMethods(\n              lifecycleEventObj.method,\n              eventObj.type,\n              pluginName\n            );\n            lifecycleEventObj.method = handler;\n            eventsList[i] = lifecycleEventObj;\n          }\n        }\n        return original.apply(this, args);\n      } else if (isDirectExtInput(args)) {\n        const extInput: ServerExtDirectInput = args;\n        const method: PatchableExtMethod = extInput[1];\n        const handler = instrumentation._wrapExtMethods(\n          method,\n          extInput[0],\n          pluginName\n        );\n        return original.apply(this, [extInput[0], handler, extInput[2]]);\n      } else if (isLifecycleExtEventObj(args[0])) {\n        const lifecycleEventObj = args[0];\n        const handler = instrumentation._wrapExtMethods(\n          lifecycleEventObj.method,\n          lifecycleEventObj.type,\n          pluginName\n        );\n        lifecycleEventObj.method = handler;\n        return original.call(this, lifecycleEventObj);\n      }\n      return original.apply(this, args);\n    };\n  }\n\n  /**\n   * Patches the Server.route function. This function accepts either one or an array\n   * of Hapi.ServerRoute objects and adds instrumentation on each route via a call to\n   * the @function _wrapRouteHandler function.\n   * @param {HapiServerRouteInputMethod} original - the original route function which adds\n   * the route to the server\n   * @param {string} [pluginName] - if present, represents the name of the plugin responsible\n   * for adding this server route. Else, signifies that the route was added directly\n   */\n  private _getServerRoutePatch(\n    original: HapiServerRouteInputMethod,\n    pluginName?: string\n  ) {\n    const instrumentation: HapiInstrumentation = this;\n    return function route(\n      this: Hapi.Server,\n      route: HapiServerRouteInput\n    ): void {\n      if (Array.isArray(route)) {\n        for (let i = 0; i < route.length; i++) {\n          const newRoute = instrumentation._wrapRouteHandler.call(\n            instrumentation,\n            route[i],\n            pluginName\n          );\n          route[i] = newRoute;\n        }\n      } else {\n        route = instrumentation._wrapRouteHandler.call(\n          instrumentation,\n          route,\n          pluginName\n        );\n      }\n      return original.apply(this, [route]);\n    };\n  }\n\n  /**\n   * Wraps newly registered plugins to add instrumentation to the plugin's clone of\n   * the original server. Specifically, wraps the server.route and server.ext functions\n   * via calls to @function _getServerRoutePatch and @function _getServerExtPatch\n   * @param {Hapi.Plugin} plugin - the new plugin which is being instrumented\n   */\n  private _wrapRegisterHandler(plugin: Hapi.Plugin): void {\n    const instrumentation: HapiInstrumentation = this;\n    const pluginName = getPluginName(plugin);\n    const oldRegister = plugin.register;\n    const self = this;\n    const newRegisterHandler = function (\n      this: typeof plugin,\n      server: Hapi.Server,\n      options: T\n    ) {\n      self._wrap(server, 'route', original => {\n        return instrumentation._getServerRoutePatch.bind(instrumentation)(\n          original,\n          pluginName\n        );\n      });\n\n      // Casting as any is necessary here due to multiple overloads on the Hapi.ext\n      // function, which requires supporting a variety of different parameters\n      // as extension inputs\n      self._wrap(server, 'ext', originalExtHandler => {\n        return instrumentation._getServerExtPatch.bind(instrumentation)(\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\n          originalExtHandler as any,\n          pluginName\n        );\n      });\n      return oldRegister.call(this, server, options);\n    };\n    plugin.register = newRegisterHandler;\n  }\n\n  /**\n   * Wraps request extension methods to add instrumentation to each new extension handler.\n   * Patches each individual extension in order to create the\n   * span and propagate context. It does not create spans when there is no parent span.\n   * @param {PatchableExtMethod | PatchableExtMethod[]} method - the request extension\n   * handler which is being instrumented\n   * @param {Hapi.ServerRequestExtType} extPoint - the point in the Hapi request lifecycle\n   * which this extension targets\n   * @param {string} [pluginName] - if present, represents the name of the plugin responsible\n   * for adding this server route. Else, signifies that the route was added directly\n   */\n  private _wrapExtMethods(\n    method: T,\n    extPoint: Hapi.ServerRequestExtType,\n    pluginName?: string\n  ): T {\n    const instrumentation: HapiInstrumentation = this;\n    if (method instanceof Array) {\n      for (let i = 0; i < method.length; i++) {\n        method[i] = instrumentation._wrapExtMethods(\n          method[i],\n          extPoint\n        ) as PatchableExtMethod;\n      }\n      return method;\n    } else if (isPatchableExtMethod(method)) {\n      if (method[handlerPatched] === true) return method;\n      method[handlerPatched] = true;\n\n      const newHandler: PatchableExtMethod = async function (\n        ...params: Parameters\n      ) {\n        if (api.trace.getSpan(api.context.active()) === undefined) {\n          return await method.apply(this, params);\n        }\n        const metadata = getExtMetadata(extPoint, pluginName, method.name);\n        const span = instrumentation.tracer.startSpan(metadata.name, {\n          attributes: metadata.attributes,\n        });\n        try {\n          return await api.context.with<\n            Parameters,\n            Hapi.Lifecycle.Method\n          >(\n            api.trace.setSpan(api.context.active(), span),\n            method,\n            undefined,\n            ...params\n          );\n        } catch (err: any) {\n          span.recordException(err);\n          span.setStatus({\n            code: api.SpanStatusCode.ERROR,\n            message: err.message,\n          });\n          throw err;\n        } finally {\n          span.end();\n        }\n      };\n      return newHandler as T;\n    }\n    return method;\n  }\n\n  /**\n   * Patches each individual route handler method in order to create the\n   * span and propagate context. It does not create spans when there is no parent span.\n   * @param {PatchableServerRoute} route - the route handler which is being instrumented\n   * @param {string} [pluginName] - if present, represents the name of the plugin responsible\n   * for adding this server route. Else, signifies that the route was added directly\n   */\n  private _wrapRouteHandler(\n    route: PatchableServerRoute,\n    pluginName?: string\n  ): PatchableServerRoute {\n    const instrumentation: HapiInstrumentation = this;\n    if (route[handlerPatched] === true) return route;\n    route[handlerPatched] = true;\n\n    const wrapHandler: (\n      oldHandler: Hapi.Lifecycle.Method\n    ) => Hapi.Lifecycle.Method = oldHandler => {\n      return async function (...params: Parameters) {\n        if (api.trace.getSpan(api.context.active()) === undefined) {\n          return await oldHandler.call(this, ...params);\n        }\n        const rpcMetadata = getRPCMetadata(api.context.active());\n        if (rpcMetadata?.type === RPCType.HTTP) {\n          rpcMetadata.route = route.path;\n        }\n        const metadata = getRouteMetadata(\n          route,\n          instrumentation._semconvStability,\n          pluginName\n        );\n        const span = instrumentation.tracer.startSpan(metadata.name, {\n          attributes: metadata.attributes,\n        });\n        try {\n          return await api.context.with(\n            api.trace.setSpan(api.context.active(), span),\n            () => oldHandler.call(this, ...params)\n          );\n        } catch (err: any) {\n          span.recordException(err);\n          span.setStatus({\n            code: api.SpanStatusCode.ERROR,\n            message: err.message,\n          });\n          throw err;\n        } finally {\n          span.end();\n        }\n      };\n    };\n\n    if (typeof route.handler === 'function') {\n      route.handler = wrapHandler(route.handler as Hapi.Lifecycle.Method);\n    } else if (typeof route.options === 'function') {\n      const oldOptions = route.options;\n      route.options = function (server) {\n        const options = oldOptions(server);\n        if (typeof options.handler === 'function') {\n          options.handler = wrapHandler(\n            options.handler as Hapi.Lifecycle.Method\n          );\n        }\n        return options;\n      };\n    } else if (typeof route.options?.handler === 'function') {\n      route.options.handler = wrapHandler(\n        route.options.handler as Hapi.Lifecycle.Method\n      );\n    }\n    return route;\n  }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { HapiInstrumentation } from './instrumentation';\nexport { AttributeNames } from './enums/AttributeNames';\n","import { HapiInstrumentation } from '@opentelemetry/instrumentation-hapi';\nimport type { IntegrationFn, Span } from '@sentry/core';\nimport {\n  captureException,\n  debug,\n  defineIntegration,\n  getClient,\n  getDefaultIsolationScope,\n  getIsolationScope,\n  SDK_VERSION,\n  SEMANTIC_ATTRIBUTE_SENTRY_OP,\n  SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n  spanToJSON,\n} from '@sentry/core';\nimport { ensureIsWrapped, generateInstrumentOnce } from '@sentry/node-core';\nimport { DEBUG_BUILD } from '../../../debug-build';\nimport type { Request, RequestEvent, Server } from './types';\n\nconst INTEGRATION_NAME = 'Hapi';\n\nexport const instrumentHapi = generateInstrumentOnce(INTEGRATION_NAME, () => new HapiInstrumentation());\n\nconst _hapiIntegration = (() => {\n  return {\n    name: INTEGRATION_NAME,\n    setupOnce() {\n      instrumentHapi();\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for [Hapi](https://hapi.dev/).\n *\n * If you also want to capture errors, you need to call `setupHapiErrorHandler(server)` after you set up your server.\n *\n * For more information, see the [hapi documentation](https://docs.sentry.io/platforms/javascript/guides/hapi/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n *   integrations: [Sentry.hapiIntegration()],\n * })\n * ```\n */\nexport const hapiIntegration = defineIntegration(_hapiIntegration);\n\nfunction isErrorEvent(event: unknown): event is RequestEvent {\n  return !!(event && typeof event === 'object' && 'error' in event && event.error);\n}\n\nfunction sendErrorToSentry(errorData: object): void {\n  captureException(errorData, {\n    mechanism: {\n      type: 'auto.function.hapi',\n      handled: false,\n    },\n  });\n}\n\nexport const hapiErrorPlugin = {\n  name: 'SentryHapiErrorPlugin',\n  version: SDK_VERSION,\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  register: async function (serverArg: Record) {\n    const server = serverArg as unknown as Server;\n\n    server.events.on({ name: 'request', channels: ['error'] }, (request: Request, event: RequestEvent) => {\n      if (getIsolationScope() !== getDefaultIsolationScope()) {\n        const route = request.route;\n        if (route.path) {\n          getIsolationScope().setTransactionName(`${route.method.toUpperCase()} ${route.path}`);\n        }\n      } else {\n        DEBUG_BUILD &&\n          debug.warn('Isolation scope is still the default isolation scope - skipping setting transactionName');\n      }\n\n      if (isErrorEvent(event)) {\n        sendErrorToSentry(event.error);\n      }\n    });\n  },\n};\n\n/**\n * Add a Hapi plugin to capture errors to Sentry.\n *\n * @param server The Hapi server to attach the error handler to\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n * const Hapi = require('@hapi/hapi');\n *\n * const init = async () => {\n *   const server = Hapi.server();\n *\n *   // all your routes here\n *\n *   await Sentry.setupHapiErrorHandler(server);\n *\n *   await server.start();\n * };\n * ```\n */\nexport async function setupHapiErrorHandler(server: Server): Promise {\n  await server.register(hapiErrorPlugin);\n\n  // Sadly, middleware spans do not go through `requestHook`, so we handle those here\n  // We register this hook in this method, because if we register it in the integration `setup`,\n  // it would always run even for users that are not even using hapi\n  const client = getClient();\n  if (client) {\n    client.on('spanStart', span => {\n      addHapiSpanAttributes(span);\n    });\n  }\n\n  ensureIsWrapped(server.register, 'hapi');\n}\n\nfunction addHapiSpanAttributes(span: Span): void {\n  const attributes = spanToJSON(span).data;\n\n  // this is one of: router, plugin, server.ext\n  const type = attributes['hapi.type'];\n\n  // If this is already set, or we have no Hapi span, no need to process again...\n  if (attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] || !type) {\n    return;\n  }\n\n  span.setAttributes({\n    [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.hapi',\n    [SEMANTIC_ATTRIBUTE_SENTRY_OP]: `${type}.hapi`,\n  });\n}\n","export const AttributeNames = {\n  HONO_TYPE: 'hono.type',\n  HONO_NAME: 'hono.name',\n} as const;\n\nexport type AttributeNames = (typeof AttributeNames)[keyof typeof AttributeNames];\n\nexport const HonoTypes = {\n  MIDDLEWARE: 'middleware',\n  REQUEST_HANDLER: 'request_handler',\n} as const;\n\nexport type HonoTypes = (typeof HonoTypes)[keyof typeof HonoTypes];\n","import type { Span } from '@opentelemetry/api';\nimport { context, SpanStatusCode, trace } from '@opentelemetry/api';\nimport type { InstrumentationConfig } from '@opentelemetry/instrumentation';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { isThenable } from '@sentry/core';\nimport { AttributeNames, HonoTypes } from './constants';\nimport type {\n  Context,\n  Handler,\n  HandlerInterface,\n  Hono,\n  HonoInstance,\n  MiddlewareHandler,\n  MiddlewareHandlerInterface,\n  Next,\n  OnHandlerInterface,\n} from './types';\n\nconst PACKAGE_NAME = '@sentry/instrumentation-hono';\nconst PACKAGE_VERSION = '0.0.1';\n\nexport interface HonoResponseHookFunction {\n  (span: Span): void;\n}\n\nexport interface HonoInstrumentationConfig extends InstrumentationConfig {\n  /** Function for adding custom span attributes from the response */\n  responseHook?: HonoResponseHookFunction;\n}\n\n/**\n * Hono instrumentation for OpenTelemetry\n */\nexport class HonoInstrumentation extends InstrumentationBase {\n  public constructor(config: HonoInstrumentationConfig = {}) {\n    super(PACKAGE_NAME, PACKAGE_VERSION, config);\n  }\n\n  /**\n   * Initialize the instrumentation.\n   */\n  public init(): InstrumentationNodeModuleDefinition[] {\n    return [\n      new InstrumentationNodeModuleDefinition('hono', ['>=4.0.0 <5'], moduleExports => this._patch(moduleExports)),\n    ];\n  }\n\n  /**\n   * Patches the module exports to instrument Hono.\n   */\n  private _patch(moduleExports: { Hono: Hono }): { Hono: Hono } {\n    // eslint-disable-next-line @typescript-eslint/no-this-alias\n    const instrumentation = this;\n\n    class WrappedHono extends moduleExports.Hono {\n      public constructor(...args: unknown[]) {\n        super(...args);\n\n        instrumentation._wrap(this, 'get', instrumentation._patchHandler());\n        instrumentation._wrap(this, 'post', instrumentation._patchHandler());\n        instrumentation._wrap(this, 'put', instrumentation._patchHandler());\n        instrumentation._wrap(this, 'delete', instrumentation._patchHandler());\n        instrumentation._wrap(this, 'options', instrumentation._patchHandler());\n        instrumentation._wrap(this, 'patch', instrumentation._patchHandler());\n        instrumentation._wrap(this, 'all', instrumentation._patchHandler());\n        instrumentation._wrap(this, 'on', instrumentation._patchOnHandler());\n        instrumentation._wrap(this, 'use', instrumentation._patchMiddlewareHandler());\n      }\n    }\n\n    try {\n      moduleExports.Hono = WrappedHono;\n    } catch {\n      // This is a workaround for environments where direct assignment is not allowed.\n      return { ...moduleExports, Hono: WrappedHono };\n    }\n\n    return moduleExports;\n  }\n\n  /**\n   * Patches the route handler to instrument it.\n   */\n  private _patchHandler(): (original: HandlerInterface) => HandlerInterface {\n    // eslint-disable-next-line @typescript-eslint/no-this-alias\n    const instrumentation = this;\n\n    return function (original: HandlerInterface) {\n      return function wrappedHandler(this: HonoInstance, ...args: unknown[]) {\n        if (typeof args[0] === 'string') {\n          const path = args[0];\n          if (args.length === 1) {\n            return original.apply(this, [path]);\n          }\n\n          const handlers = args.slice(1);\n          return original.apply(this, [\n            path,\n            ...handlers.map(handler => instrumentation._wrapHandler(handler as Handler | MiddlewareHandler)),\n          ]);\n        }\n\n        return original.apply(\n          this,\n          args.map(handler => instrumentation._wrapHandler(handler as Handler | MiddlewareHandler)),\n        );\n      };\n    };\n  }\n\n  /**\n   * Patches the 'on' handler to instrument it.\n   */\n  private _patchOnHandler(): (original: OnHandlerInterface) => OnHandlerInterface {\n    // eslint-disable-next-line @typescript-eslint/no-this-alias\n    const instrumentation = this;\n\n    return function (original: OnHandlerInterface) {\n      return function wrappedHandler(this: HonoInstance, ...args: unknown[]) {\n        const handlers = args.slice(2);\n        return original.apply(this, [\n          ...args.slice(0, 2),\n          ...handlers.map(handler => instrumentation._wrapHandler(handler as Handler | MiddlewareHandler)),\n        ]);\n      };\n    };\n  }\n\n  /**\n   * Patches the middleware handler to instrument it.\n   */\n  private _patchMiddlewareHandler(): (original: MiddlewareHandlerInterface) => MiddlewareHandlerInterface {\n    // eslint-disable-next-line @typescript-eslint/no-this-alias\n    const instrumentation = this;\n\n    return function (original: MiddlewareHandlerInterface) {\n      return function wrappedHandler(this: HonoInstance, ...args: unknown[]) {\n        if (typeof args[0] === 'string') {\n          const path = args[0];\n          if (args.length === 1) {\n            return original.apply(this, [path]);\n          }\n\n          const handlers = args.slice(1);\n          return original.apply(this, [\n            path,\n            ...handlers.map(handler => instrumentation._wrapHandler(handler as MiddlewareHandler)),\n          ]);\n        }\n\n        return original.apply(\n          this,\n          args.map(handler => instrumentation._wrapHandler(handler as MiddlewareHandler)),\n        );\n      };\n    };\n  }\n\n  /**\n   * Wraps a handler or middleware handler to apply instrumentation.\n   */\n  private _wrapHandler(handler: Handler | MiddlewareHandler): Handler | MiddlewareHandler {\n    // eslint-disable-next-line @typescript-eslint/no-this-alias\n    const instrumentation = this;\n\n    return function (this: unknown, c: Context, next: Next) {\n      if (!instrumentation.isEnabled()) {\n        return handler.apply(this, [c, next]);\n      }\n\n      const path = c.req.path;\n      const span = instrumentation.tracer.startSpan(path);\n\n      return context.with(trace.setSpan(context.active(), span), () => {\n        return instrumentation._safeExecute(\n          () => {\n            const result = handler.apply(this, [c, next]);\n            if (isThenable(result)) {\n              return result.then(result => {\n                const type = instrumentation._determineHandlerType(result);\n                span.setAttributes({\n                  [AttributeNames.HONO_TYPE]: type,\n                  [AttributeNames.HONO_NAME]: type === HonoTypes.REQUEST_HANDLER ? path : handler.name || 'anonymous',\n                });\n                instrumentation.getConfig().responseHook?.(span);\n                return result;\n              });\n            } else {\n              const type = instrumentation._determineHandlerType(result);\n              span.setAttributes({\n                [AttributeNames.HONO_TYPE]: type,\n                [AttributeNames.HONO_NAME]: type === HonoTypes.REQUEST_HANDLER ? path : handler.name || 'anonymous',\n              });\n              instrumentation.getConfig().responseHook?.(span);\n              return result;\n            }\n          },\n          () => span.end(),\n          error => {\n            instrumentation._handleError(span, error);\n            span.end();\n          },\n        );\n      });\n    };\n  }\n\n  /**\n   * Safely executes a function and handles errors.\n   */\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  private _safeExecute(execute: () => any, onSuccess: () => void, onFailure: (error: unknown) => void): () => any {\n    try {\n      const result = execute();\n\n      if (isThenable(result)) {\n        result.then(\n          () => onSuccess(),\n          (error: unknown) => onFailure(error),\n        );\n      } else {\n        onSuccess();\n      }\n\n      return result;\n    } catch (error: unknown) {\n      onFailure(error);\n      throw error;\n    }\n  }\n\n  /**\n   * Determines the handler type based on the result.\n   * @param result\n   * @private\n   */\n  private _determineHandlerType(result: unknown): HonoTypes {\n    return result === undefined ? HonoTypes.MIDDLEWARE : HonoTypes.REQUEST_HANDLER;\n  }\n\n  /**\n   * Handles errors by setting the span status and recording the exception.\n   */\n  private _handleError(span: Span, error: unknown): void {\n    if (error instanceof Error) {\n      span.setStatus({\n        code: SpanStatusCode.ERROR,\n        message: error.message,\n      });\n      span.recordException(error);\n    }\n  }\n}\n","import { ATTR_HTTP_REQUEST_METHOD, ATTR_HTTP_ROUTE } from '@opentelemetry/semantic-conventions';\nimport type { IntegrationFn, Span } from '@sentry/core';\nimport {\n  captureException,\n  debug,\n  defineIntegration,\n  getDefaultIsolationScope,\n  getIsolationScope,\n  httpRequestToRequestData,\n  SEMANTIC_ATTRIBUTE_SENTRY_OP,\n  SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n  spanToJSON,\n} from '@sentry/core';\nimport { ensureIsWrapped, generateInstrumentOnce } from '@sentry/node-core';\nimport { DEBUG_BUILD } from '../../../debug-build';\nimport { AttributeNames } from './constants';\nimport { HonoInstrumentation } from './instrumentation';\nimport type { Context, MiddlewareHandler, MiddlewareHandlerInterface, Next } from './types';\n\nconst INTEGRATION_NAME = 'Hono';\n\nfunction addHonoSpanAttributes(span: Span): void {\n  const attributes = spanToJSON(span).data;\n  const type = attributes[AttributeNames.HONO_TYPE];\n  if (attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] || !type) {\n    return;\n  }\n\n  span.setAttributes({\n    [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.hono',\n    [SEMANTIC_ATTRIBUTE_SENTRY_OP]: `${type}.hono`,\n  });\n\n  const name = attributes[AttributeNames.HONO_NAME];\n  if (typeof name === 'string') {\n    span.updateName(name);\n  }\n\n  if (getIsolationScope() === getDefaultIsolationScope()) {\n    DEBUG_BUILD && debug.warn('Isolation scope is default isolation scope - skipping setting transactionName');\n    return;\n  }\n\n  const route = attributes[ATTR_HTTP_ROUTE];\n  const method = attributes[ATTR_HTTP_REQUEST_METHOD];\n  if (typeof route === 'string' && typeof method === 'string') {\n    getIsolationScope().setTransactionName(`${method} ${route}`);\n  }\n}\n\nexport const instrumentHono = generateInstrumentOnce(\n  INTEGRATION_NAME,\n  () =>\n    new HonoInstrumentation({\n      responseHook: span => {\n        addHonoSpanAttributes(span);\n      },\n    }),\n);\n\nconst _honoIntegration = (() => {\n  return {\n    name: INTEGRATION_NAME,\n    setupOnce() {\n      instrumentHono();\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for [Hono](https://hono.dev/).\n *\n * If you also want to capture errors, you need to call `setupHonoErrorHandler(app)` after you set up your Hono server.\n *\n * For more information, see the [hono documentation](https://docs.sentry.io/platforms/javascript/guides/hono/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n *   integrations: [Sentry.honoIntegration()],\n * })\n * ```\n */\nexport const honoIntegration = defineIntegration(_honoIntegration);\n\ninterface HonoHandlerOptions {\n  /**\n   * Callback method deciding whether error should be captured and sent to Sentry\n   * @param error Captured Hono error\n   */\n  shouldHandleError: (context: Context) => boolean;\n}\n\nfunction honoRequestHandler(): MiddlewareHandler {\n  return async function sentryRequestMiddleware(context: Context, next: Next): Promise {\n    const normalizedRequest = httpRequestToRequestData(context.req);\n    getIsolationScope().setSDKProcessingMetadata({ normalizedRequest });\n    await next();\n  };\n}\n\nfunction defaultShouldHandleError(context: Context): boolean {\n  const statusCode = context.res.status;\n  return statusCode >= 500;\n}\n\nfunction honoErrorHandler(options?: Partial): MiddlewareHandler {\n  return async function sentryErrorMiddleware(context: Context, next: Next): Promise {\n    await next();\n\n    const shouldHandleError = options?.shouldHandleError || defaultShouldHandleError;\n    if (shouldHandleError(context)) {\n      (context.res as { sentry?: string }).sentry = captureException(context.error, {\n        mechanism: {\n          type: 'auto.middleware.hono',\n          handled: false,\n        },\n      });\n    }\n  };\n}\n\n/**\n * Add a Hono error handler to capture errors to Sentry.\n *\n * @param app The Hono instances\n * @param options Configuration options for the handler\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n * const { Hono } = require(\"hono\");\n *\n * const app = new Hono();\n *\n * Sentry.setupHonoErrorHandler(app);\n *\n * // Add your routes, etc.\n * ```\n */\nexport function setupHonoErrorHandler(\n  app: { use: MiddlewareHandlerInterface },\n  options?: Partial,\n): void {\n  app.use(honoRequestHandler());\n  app.use(honoErrorHandler(options));\n  ensureIsWrapped(app.use, 'hono');\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Span } from '@opentelemetry/api';\nimport { InstrumentationConfig } from '@opentelemetry/instrumentation';\n\nexport enum KoaLayerType {\n  ROUTER = 'router',\n  MIDDLEWARE = 'middleware',\n}\n\n/**\n * Information about the current Koa middleware layer\n * The middleware layer type is any by default.\n * One can install koa types packages `@types/koa` and `@types/koa__router`\n * with compatible versions to the koa version used in the project\n * to get more specific types for the middleware layer property.\n *\n * Example use in a custom attribute function:\n * ```ts\n * import type { Middleware, ParameterizedContext, DefaultState } from 'koa';\n * import type { RouterParamContext } from '@koa/router';\n *\n * type KoaContext = ParameterizedContext;\n * type KoaMiddleware = Middleware;\n *\n * const koaConfig: KoaInstrumentationConfig = {\n *  requestHook: (span: Span, info: KoaRequestInfo) => {\n *   // custom typescript code that can access the typed into.middlewareLayer and info.context\n * }\n *\n */\nexport type KoaRequestInfo = {\n  context: KoaContextType;\n  middlewareLayer: KoaMiddlewareType;\n  layerType: KoaLayerType;\n};\n\n/**\n * Function that can be used to add custom attributes to the current span\n * @param span - The Express middleware layer span.\n * @param context - The current KoaContext.\n */\nexport interface KoaRequestCustomAttributeFunction<\n  KoaContextType = any,\n  KoaMiddlewareType = any,\n> {\n  (span: Span, info: KoaRequestInfo): void;\n}\n\n/**\n * Options available for the Koa Instrumentation (see [documentation](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-Instrumentation-koa#koa-Instrumentation-options))\n */\nexport interface KoaInstrumentationConfig<\n  KoaContextType = any,\n  KoaMiddlewareType = any,\n> extends InstrumentationConfig {\n  /** Ignore specific layers based on their type */\n  ignoreLayersType?: KoaLayerType[];\n  /** Function for adding custom attributes to each middleware layer span */\n  requestHook?: KoaRequestCustomAttributeFunction<\n    KoaContextType,\n    KoaMiddlewareType\n  >;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const PACKAGE_VERSION = '0.62.0';\nexport const PACKAGE_NAME = '@opentelemetry/instrumentation-koa';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport enum AttributeNames {\n  KOA_TYPE = 'koa.type',\n  KOA_NAME = 'koa.name',\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { KoaLayerType, KoaInstrumentationConfig } from './types';\nimport { KoaContext, KoaMiddleware } from './internal-types';\nimport { AttributeNames } from './enums/AttributeNames';\nimport { Attributes } from '@opentelemetry/api';\nimport { ATTR_HTTP_ROUTE } from '@opentelemetry/semantic-conventions';\n\nexport const getMiddlewareMetadata = (\n  context: KoaContext,\n  layer: KoaMiddleware,\n  isRouter: boolean,\n  layerPath?: string | RegExp\n): {\n  attributes: Attributes;\n  name: string;\n} => {\n  if (isRouter) {\n    return {\n      attributes: {\n        [AttributeNames.KOA_NAME]: layerPath?.toString(),\n        [AttributeNames.KOA_TYPE]: KoaLayerType.ROUTER,\n        [ATTR_HTTP_ROUTE]: layerPath?.toString(),\n      },\n      name: context._matchedRouteName || `router - ${layerPath}`,\n    };\n  } else {\n    return {\n      attributes: {\n        [AttributeNames.KOA_NAME]: layer.name ?? 'middleware',\n        [AttributeNames.KOA_TYPE]: KoaLayerType.MIDDLEWARE,\n      },\n      name: `middleware - ${layer.name}`,\n    };\n  }\n};\n\n/**\n * Check whether the given request is ignored by configuration\n * @param [list] List of ignore patterns\n * @param [onException] callback for doing something when an exception has\n *     occurred\n */\nexport const isLayerIgnored = (\n  type: KoaLayerType,\n  config?: KoaInstrumentationConfig\n): boolean => {\n  return !!(\n    Array.isArray(config?.ignoreLayersType) &&\n    config?.ignoreLayersType?.includes(type)\n  );\n};\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport type { Middleware, ParameterizedContext, DefaultState } from 'koa';\nimport type * as Router from '@koa/router';\n\n/**\n * Type compatibility note:\n *\n * This package uses @types/koa@3.x, but @types/koa__router@12.x depends on\n * @types/koa@2.x. This creates type conflicts when working with router middleware.\n * At runtime, koa@3.x is used throughout, so all methods exist and work correctly.\n *\n * The type casts in instrumentation.ts are necessary to bridge this gap.\n *\n * TODO: Remove type casts when @types/koa__router@13+ with @types/koa@3.x support is available\n */\n\nexport type KoaContext = ParameterizedContext<\n  DefaultState,\n  Router.RouterParamContext\n>;\nexport type KoaMiddleware = Middleware & {\n  router?: Router;\n};\n\n/**\n * This symbol is used to mark a Koa layer as being already instrumented\n * since its possible to use a given layer multiple times (ex: middlewares)\n */\nexport const kLayerPatched: unique symbol = Symbol('koa-layer-patched');\n\nexport type KoaPatchedMiddleware = KoaMiddleware & {\n  [kLayerPatched]?: boolean;\n};\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as api from '@opentelemetry/api';\nimport {\n  isWrapped,\n  InstrumentationBase,\n  InstrumentationNodeModuleDefinition,\n  safeExecuteInTheMiddle,\n} from '@opentelemetry/instrumentation';\n\nimport type * as koa from 'koa';\nimport { KoaLayerType, KoaInstrumentationConfig } from './types';\n/** @knipignore */\nimport { PACKAGE_NAME, PACKAGE_VERSION } from './version';\nimport { getMiddlewareMetadata, isLayerIgnored } from './utils';\nimport { getRPCMetadata, RPCType } from '@opentelemetry/core';\nimport {\n  kLayerPatched,\n  KoaContext,\n  KoaMiddleware,\n  KoaPatchedMiddleware,\n} from './internal-types';\n\n/** Koa instrumentation for OpenTelemetry */\nexport class KoaInstrumentation extends InstrumentationBase {\n  constructor(config: KoaInstrumentationConfig = {}) {\n    super(PACKAGE_NAME, PACKAGE_VERSION, config);\n  }\n\n  protected init() {\n    return new InstrumentationNodeModuleDefinition(\n      'koa',\n      ['>=2.0.0 <4'],\n      (module: any) => {\n        const moduleExports: typeof koa =\n          module[Symbol.toStringTag] === 'Module'\n            ? module.default // ESM\n            : module; // CommonJS\n        if (moduleExports == null) {\n          return moduleExports;\n        }\n        if (isWrapped(moduleExports.prototype.use)) {\n          this._unwrap(moduleExports.prototype, 'use');\n        }\n        this._wrap(\n          moduleExports.prototype,\n          'use',\n          this._getKoaUsePatch.bind(this)\n        );\n        return module;\n      },\n      (module: any) => {\n        const moduleExports: typeof koa =\n          module[Symbol.toStringTag] === 'Module'\n            ? module.default // ESM\n            : module; // CommonJS\n        if (isWrapped(moduleExports.prototype.use)) {\n          this._unwrap(moduleExports.prototype, 'use');\n        }\n      }\n    );\n  }\n\n  /**\n   * Patches the Koa.use function in order to instrument each original\n   * middleware layer which is introduced\n   * @param {KoaMiddleware} middleware - the original middleware function\n   */\n  private _getKoaUsePatch(original: (middleware: KoaMiddleware) => koa) {\n    const plugin = this;\n    return function use(this: koa, middlewareFunction: KoaMiddleware) {\n      let patchedFunction: KoaMiddleware;\n      if (middlewareFunction.router) {\n        patchedFunction = plugin._patchRouterDispatch(middlewareFunction);\n      } else {\n        patchedFunction = plugin._patchLayer(middlewareFunction, false);\n      }\n      return original.apply(this, [patchedFunction]);\n    };\n  }\n\n  /**\n   * Patches the dispatch function used by @koa/router. This function\n   * goes through each routed middleware and adds instrumentation via a call\n   * to the @function _patchLayer function.\n   * @param {KoaMiddleware} dispatchLayer - the original dispatch function which dispatches\n   * routed middleware\n   */\n  private _patchRouterDispatch(dispatchLayer: KoaMiddleware): KoaMiddleware {\n    api.diag.debug('Patching @koa/router dispatch');\n\n    const router = dispatchLayer.router;\n\n    const routesStack = router?.stack ?? [];\n    for (const pathLayer of routesStack) {\n      const path = pathLayer.path;\n      // Type cast needed: router.stack comes from @types/koa@2.x but we use @types/koa@3.x\n      // See internal-types.ts for full explanation\n      const pathStack = pathLayer.stack as any;\n      for (let j = 0; j < pathStack.length; j++) {\n        const routedMiddleware: KoaMiddleware = pathStack[j];\n        pathStack[j] = this._patchLayer(routedMiddleware, true, path);\n      }\n    }\n\n    return dispatchLayer;\n  }\n\n  /**\n   * Patches each individual @param middlewareLayer function in order to create the\n   * span and propagate context. It does not create spans when there is no parent span.\n   * @param {KoaMiddleware} middlewareLayer - the original middleware function.\n   * @param {boolean} isRouter - tracks whether the original middleware function\n   * was dispatched by the router originally\n   * @param {string?} layerPath - if present, provides additional data from the\n   * router about the routed path which the middleware is attached to\n   */\n  private _patchLayer(\n    middlewareLayer: KoaPatchedMiddleware,\n    isRouter: boolean,\n    layerPath?: string | RegExp\n  ): KoaMiddleware {\n    const layerType = isRouter ? KoaLayerType.ROUTER : KoaLayerType.MIDDLEWARE;\n    // Skip patching layer if its ignored in the config\n    if (\n      middlewareLayer[kLayerPatched] === true ||\n      isLayerIgnored(layerType, this.getConfig())\n    )\n      return middlewareLayer;\n\n    if (\n      middlewareLayer.constructor.name === 'GeneratorFunction' ||\n      middlewareLayer.constructor.name === 'AsyncGeneratorFunction'\n    ) {\n      api.diag.debug('ignoring generator-based Koa middleware layer');\n      return middlewareLayer;\n    }\n\n    middlewareLayer[kLayerPatched] = true;\n\n    api.diag.debug('patching Koa middleware layer');\n    return async (context: KoaContext, next: koa.Next) => {\n      const parent = api.trace.getSpan(api.context.active());\n      if (parent === undefined) {\n        return middlewareLayer(context, next);\n      }\n      const metadata = getMiddlewareMetadata(\n        context,\n        middlewareLayer,\n        isRouter,\n        layerPath\n      );\n      const span = this.tracer.startSpan(metadata.name, {\n        attributes: metadata.attributes,\n      });\n\n      const rpcMetadata = getRPCMetadata(api.context.active());\n\n      if (rpcMetadata?.type === RPCType.HTTP && context._matchedRoute) {\n        rpcMetadata.route = context._matchedRoute.toString();\n      }\n\n      const { requestHook } = this.getConfig();\n      if (requestHook) {\n        safeExecuteInTheMiddle(\n          () =>\n            requestHook(span, {\n              context,\n              middlewareLayer,\n              layerType,\n            }),\n          e => {\n            if (e) {\n              api.diag.error('koa instrumentation: request hook failed', e);\n            }\n          },\n          true\n        );\n      }\n\n      const newContext = api.trace.setSpan(api.context.active(), span);\n      return api.context.with(newContext, async () => {\n        try {\n          return await middlewareLayer(context, next);\n        } catch (err: any) {\n          span.recordException(err);\n          throw err;\n        } finally {\n          span.end();\n        }\n      });\n    };\n  }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { KoaInstrumentation } from './instrumentation';\nexport { AttributeNames } from './enums/AttributeNames';\nexport { KoaLayerType } from './types';\nexport type {\n  KoaInstrumentationConfig,\n  KoaRequestCustomAttributeFunction,\n  KoaRequestInfo,\n} from './types';\n","import type { KoaInstrumentationConfig, KoaLayerType } from '@opentelemetry/instrumentation-koa';\nimport { KoaInstrumentation } from '@opentelemetry/instrumentation-koa';\nimport { ATTR_HTTP_ROUTE } from '@opentelemetry/semantic-conventions';\nimport type { IntegrationFn } from '@sentry/core';\nimport {\n  captureException,\n  debug,\n  defineIntegration,\n  getDefaultIsolationScope,\n  getIsolationScope,\n  SEMANTIC_ATTRIBUTE_SENTRY_OP,\n  spanToJSON,\n} from '@sentry/core';\nimport { addOriginToSpan, ensureIsWrapped, generateInstrumentOnce } from '@sentry/node-core';\nimport { DEBUG_BUILD } from '../../debug-build';\n\ninterface KoaOptions {\n  /**\n   * Ignore layers of specified types\n   */\n  ignoreLayersType?: Array<'middleware' | 'router'>;\n}\n\nconst INTEGRATION_NAME = 'Koa';\n\nexport const instrumentKoa = generateInstrumentOnce(\n  INTEGRATION_NAME,\n  KoaInstrumentation,\n  (options: KoaOptions = {}) => {\n    return {\n      ignoreLayersType: options.ignoreLayersType as KoaLayerType[],\n      requestHook(span, info) {\n        addOriginToSpan(span, 'auto.http.otel.koa');\n\n        const attributes = spanToJSON(span).data;\n\n        // this is one of: middleware, router\n        const type = attributes['koa.type'];\n        if (type) {\n          span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, `${type}.koa`);\n        }\n\n        // Also update the name\n        const name = attributes['koa.name'];\n        if (typeof name === 'string') {\n          // Somehow, name is sometimes `''` for middleware spans\n          // See: https://github.com/open-telemetry/opentelemetry-js-contrib/issues/2220\n          span.updateName(name || '< unknown >');\n        }\n\n        if (getIsolationScope() === getDefaultIsolationScope()) {\n          DEBUG_BUILD && debug.warn('Isolation scope is default isolation scope - skipping setting transactionName');\n          return;\n        }\n        const route = attributes[ATTR_HTTP_ROUTE];\n        // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n        const method = info.context?.request?.method?.toUpperCase() || 'GET';\n        if (route) {\n          getIsolationScope().setTransactionName(`${method} ${route}`);\n        }\n      },\n    } satisfies KoaInstrumentationConfig;\n  },\n);\n\nconst _koaIntegration = ((options: KoaOptions = {}) => {\n  return {\n    name: INTEGRATION_NAME,\n    setupOnce() {\n      instrumentKoa(options);\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for [Koa](https://koajs.com/).\n *\n * If you also want to capture errors, you need to call `setupKoaErrorHandler(app)` after you set up your Koa server.\n *\n * For more information, see the [koa documentation](https://docs.sentry.io/platforms/javascript/guides/koa/).\n *\n * @param {KoaOptions} options Configuration options for the Koa integration.\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n *   integrations: [Sentry.koaIntegration()],\n * })\n * ```\n *\n * @example\n * ```javascript\n * // To ignore middleware spans\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n *   integrations: [\n *     Sentry.koaIntegration({\n *       ignoreLayersType: ['middleware']\n *     })\n *   ],\n * })\n * ```\n */\nexport const koaIntegration = defineIntegration(_koaIntegration);\n\n/**\n * Add an Koa error handler to capture errors to Sentry.\n *\n * The error handler must be before any other middleware and after all controllers.\n *\n * @param app The Express instances\n * @param options {ExpressHandlerOptions} Configuration options for the handler\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n * const Koa = require(\"koa\");\n *\n * const app = new Koa();\n *\n * Sentry.setupKoaErrorHandler(app);\n *\n * // Add your routes, etc.\n *\n * app.listen(3000);\n * ```\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const setupKoaErrorHandler = (app: { use: (arg0: (ctx: any, next: any) => Promise) => void }): void => {\n  app.use(async (ctx, next) => {\n    try {\n      await next();\n    } catch (error) {\n      captureException(error, {\n        mechanism: {\n          handled: false,\n          type: 'auto.middleware.koa',\n        },\n      });\n      throw error;\n    }\n  });\n\n  ensureIsWrapped(app.use, 'koa');\n};\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport enum AttributeNames {\n  CONNECT_TYPE = 'connect.type',\n  CONNECT_NAME = 'connect.name',\n}\n\nexport enum ConnectTypes {\n  MIDDLEWARE = 'middleware',\n  REQUEST_HANDLER = 'request_handler',\n}\n\nexport enum ConnectNames {\n  MIDDLEWARE = 'middleware',\n  REQUEST_HANDLER = 'request handler',\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const PACKAGE_VERSION = '0.57.0';\nexport const PACKAGE_NAME = '@opentelemetry/instrumentation-connect';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { HandleFunction, IncomingMessage, Server } from 'connect';\n\nexport const _LAYERS_STORE_PROPERTY: unique symbol = Symbol(\n  'opentelemetry.instrumentation-connect.request-route-stack'\n);\n\nexport type UseArgs1 = [HandleFunction];\nexport type UseArgs2 = [string, HandleFunction];\nexport type UseArgs = UseArgs1 | UseArgs2;\nexport type Use = (...args: UseArgs) => Server;\nexport type PatchedRequest = {\n  [_LAYERS_STORE_PROPERTY]: string[];\n} & IncomingMessage;\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { diag } from '@opentelemetry/api';\nimport { _LAYERS_STORE_PROPERTY, PatchedRequest } from './internal-types';\n\nexport const addNewStackLayer = (request: PatchedRequest) => {\n  if (Array.isArray(request[_LAYERS_STORE_PROPERTY]) === false) {\n    Object.defineProperty(request, _LAYERS_STORE_PROPERTY, {\n      enumerable: false,\n      value: [],\n    });\n  }\n  request[_LAYERS_STORE_PROPERTY].push('/');\n\n  const stackLength = request[_LAYERS_STORE_PROPERTY].length;\n\n  return () => {\n    if (stackLength === request[_LAYERS_STORE_PROPERTY].length) {\n      request[_LAYERS_STORE_PROPERTY].pop();\n    } else {\n      diag.warn('Connect: Trying to pop the stack multiple time');\n    }\n  };\n};\n\nexport const replaceCurrentStackRoute = (\n  request: PatchedRequest,\n  newRoute?: string\n) => {\n  if (newRoute) {\n    request[_LAYERS_STORE_PROPERTY].splice(-1, 1, newRoute);\n  }\n};\n\n// generate route from existing stack on request object.\n// splash between stack layer will be deduped\n// [\"/first/\", \"/second\", \"/third/\"] => /first/second/third/\nexport const generateRoute = (request: PatchedRequest) => {\n  return request[_LAYERS_STORE_PROPERTY].reduce(\n    (acc, sub) => acc.replace(/\\/+$/, '') + sub\n  );\n};\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { context, Span, SpanOptions } from '@opentelemetry/api';\nimport { getRPCMetadata, RPCType } from '@opentelemetry/core';\nimport type { HandleFunction, NextFunction, Server } from 'connect';\nimport type { ServerResponse } from 'http';\nimport {\n  AttributeNames,\n  ConnectNames,\n  ConnectTypes,\n} from './enums/AttributeNames';\nimport { PatchedRequest, Use, UseArgs, UseArgs2 } from './internal-types';\n/** @knipignore */\nimport { PACKAGE_NAME, PACKAGE_VERSION } from './version';\nimport {\n  InstrumentationBase,\n  InstrumentationConfig,\n  InstrumentationNodeModuleDefinition,\n  isWrapped,\n} from '@opentelemetry/instrumentation';\nimport { ATTR_HTTP_ROUTE } from '@opentelemetry/semantic-conventions';\nimport {\n  replaceCurrentStackRoute,\n  addNewStackLayer,\n  generateRoute,\n} from './utils';\n\nexport const ANONYMOUS_NAME = 'anonymous';\n\n/** Connect instrumentation for OpenTelemetry */\nexport class ConnectInstrumentation extends InstrumentationBase {\n  constructor(config: InstrumentationConfig = {}) {\n    super(PACKAGE_NAME, PACKAGE_VERSION, config);\n  }\n\n  init() {\n    return [\n      new InstrumentationNodeModuleDefinition(\n        'connect',\n        ['>=3.0.0 <4'],\n        moduleExports => {\n          return this._patchConstructor(moduleExports);\n        }\n      ),\n    ];\n  }\n\n  private _patchApp(patchedApp: Server) {\n    if (!isWrapped(patchedApp.use)) {\n      this._wrap(patchedApp, 'use', this._patchUse.bind(this));\n    }\n    if (!isWrapped(patchedApp.handle)) {\n      this._wrap(patchedApp, 'handle', this._patchHandle.bind(this));\n    }\n  }\n\n  private _patchConstructor(original: () => Server): () => Server {\n    const instrumentation = this;\n    return function (this: Server, ...args) {\n      const app = original.apply(this, args) as Server;\n      instrumentation._patchApp(app);\n      return app;\n    };\n  }\n\n  public _patchNext(next: NextFunction, finishSpan: () => void): NextFunction {\n    return function nextFunction(this: NextFunction, err?: any): void {\n      const result = next.apply(this, [err]);\n      finishSpan();\n      return result;\n    };\n  }\n\n  public _startSpan(routeName: string, middleWare: HandleFunction): Span {\n    let connectType: ConnectTypes;\n    let connectName: string;\n    let connectTypeName: string;\n    if (routeName) {\n      connectType = ConnectTypes.REQUEST_HANDLER;\n      connectTypeName = ConnectNames.REQUEST_HANDLER;\n      connectName = routeName;\n    } else {\n      connectType = ConnectTypes.MIDDLEWARE;\n      connectTypeName = ConnectNames.MIDDLEWARE;\n      connectName = middleWare.name || ANONYMOUS_NAME;\n    }\n    const spanName = `${connectTypeName} - ${connectName}`;\n    const options: SpanOptions = {\n      attributes: {\n        [ATTR_HTTP_ROUTE]: routeName.length > 0 ? routeName : '/',\n        [AttributeNames.CONNECT_TYPE]: connectType,\n        [AttributeNames.CONNECT_NAME]: connectName,\n      },\n    };\n\n    return this.tracer.startSpan(spanName, options);\n  }\n\n  public _patchMiddleware(\n    routeName: string,\n    middleWare: HandleFunction\n  ): HandleFunction {\n    const instrumentation = this;\n    const isErrorMiddleware = middleWare.length === 4;\n\n    function patchedMiddleware(this: Use): void {\n      if (!instrumentation.isEnabled()) {\n        return (middleWare as any).apply(this, arguments);\n      }\n      const [reqArgIdx, resArgIdx, nextArgIdx] = isErrorMiddleware\n        ? [1, 2, 3]\n        : [0, 1, 2];\n      const req = arguments[reqArgIdx] as PatchedRequest;\n      const res = arguments[resArgIdx] as ServerResponse;\n      const next = arguments[nextArgIdx] as NextFunction;\n\n      replaceCurrentStackRoute(req, routeName);\n\n      const rpcMetadata = getRPCMetadata(context.active());\n      if (routeName && rpcMetadata?.type === RPCType.HTTP) {\n        rpcMetadata.route = generateRoute(req);\n      }\n\n      let spanName = '';\n      if (routeName) {\n        spanName = `request handler - ${routeName}`;\n      } else {\n        spanName = `middleware - ${middleWare.name || ANONYMOUS_NAME}`;\n      }\n      const span = instrumentation._startSpan(routeName, middleWare);\n      instrumentation._diag.debug('start span', spanName);\n      let spanFinished = false;\n\n      function finishSpan() {\n        if (!spanFinished) {\n          spanFinished = true;\n          instrumentation._diag.debug(`finishing span ${(span as any).name}`);\n          span.end();\n        } else {\n          instrumentation._diag.debug(\n            `span ${(span as any).name} - already finished`\n          );\n        }\n        res.removeListener('close', finishSpan);\n      }\n\n      res.addListener('close', finishSpan);\n      arguments[nextArgIdx] = instrumentation._patchNext(next, finishSpan);\n\n      return (middleWare as any).apply(this, arguments);\n    }\n\n    Object.defineProperty(patchedMiddleware, 'length', {\n      value: middleWare.length,\n      writable: false,\n      configurable: true,\n    });\n\n    return patchedMiddleware;\n  }\n\n  public _patchUse(original: Server['use']): Use {\n    const instrumentation = this;\n    return function (this: Server, ...args: UseArgs): Server {\n      const middleWare = args[args.length - 1] as HandleFunction;\n      const routeName = (args[args.length - 2] || '') as string;\n\n      args[args.length - 1] = instrumentation._patchMiddleware(\n        routeName,\n        middleWare\n      );\n\n      return original.apply(this, args as UseArgs2);\n    };\n  }\n\n  public _patchHandle(original: Server['handle']): Server['handle'] {\n    const instrumentation = this;\n    return function (this: Server): ReturnType {\n      const [reqIdx, outIdx] = [0, 2];\n      const req = arguments[reqIdx] as PatchedRequest;\n      const out = arguments[outIdx];\n      const completeStack = addNewStackLayer(req);\n\n      if (typeof out === 'function') {\n        arguments[outIdx] = instrumentation._patchOut(\n          out as NextFunction,\n          completeStack\n        );\n      }\n\n      return (original as any).apply(this, arguments);\n    };\n  }\n\n  public _patchOut(out: NextFunction, completeStack: () => void): NextFunction {\n    return function nextFunction(this: NextFunction, ...args: any[]): void {\n      completeStack();\n      return Reflect.apply(out, this, args);\n    };\n  }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { ConnectInstrumentation, ANONYMOUS_NAME } from './instrumentation';\nexport {\n  AttributeNames,\n  ConnectNames,\n  ConnectTypes,\n} from './enums/AttributeNames';\n","import { ConnectInstrumentation } from '@opentelemetry/instrumentation-connect';\nimport type { IntegrationFn, Span } from '@sentry/core';\nimport {\n  captureException,\n  defineIntegration,\n  getClient,\n  SEMANTIC_ATTRIBUTE_SENTRY_OP,\n  SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n  spanToJSON,\n} from '@sentry/core';\nimport { ensureIsWrapped, generateInstrumentOnce } from '@sentry/node-core';\n\ntype ConnectApp = {\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  use: (middleware: any) => void;\n};\n\nconst INTEGRATION_NAME = 'Connect';\n\nexport const instrumentConnect = generateInstrumentOnce(INTEGRATION_NAME, () => new ConnectInstrumentation());\n\nconst _connectIntegration = (() => {\n  return {\n    name: INTEGRATION_NAME,\n    setupOnce() {\n      instrumentConnect();\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for [Connect](https://github.com/senchalabs/connect/).\n *\n * If you also want to capture errors, you need to call `setupConnectErrorHandler(app)` after you initialize your connect app.\n *\n * For more information, see the [connect documentation](https://docs.sentry.io/platforms/javascript/guides/connect/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n *   integrations: [Sentry.connectIntegration()],\n * })\n * ```\n */\nexport const connectIntegration = defineIntegration(_connectIntegration);\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction connectErrorMiddleware(err: any, req: any, res: any, next: any): void {\n  captureException(err, {\n    mechanism: {\n      handled: false,\n      type: 'auto.middleware.connect',\n    },\n  });\n  next(err);\n}\n\n/**\n * Add a Connect middleware to capture errors to Sentry.\n *\n * @param app The Connect app to attach the error handler to\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n * const connect = require(\"connect\");\n *\n * const app = connect();\n *\n * Sentry.setupConnectErrorHandler(app);\n *\n * // Add you connect routes here\n *\n * app.listen(3000);\n * ```\n */\nexport const setupConnectErrorHandler = (app: ConnectApp): void => {\n  app.use(connectErrorMiddleware);\n\n  // Sadly, ConnectInstrumentation has no requestHook, so we need to add the attributes here\n  // We register this hook in this method, because if we register it in the integration `setup`,\n  // it would always run even for users that are not even using connect\n  const client = getClient();\n  if (client) {\n    client.on('spanStart', span => {\n      addConnectSpanAttributes(span);\n    });\n  }\n\n  ensureIsWrapped(app.use, 'connect');\n};\n\nfunction addConnectSpanAttributes(span: Span): void {\n  const attributes = spanToJSON(span).data;\n\n  // this is one of: middleware, request_handler\n  const type = attributes['connect.type'];\n\n  // If this is already set, or we have no connect span, no need to process again...\n  if (attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] || !type) {\n    return;\n  }\n\n  span.setAttributes({\n    [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.connect',\n    [SEMANTIC_ATTRIBUTE_SENTRY_OP]: `${type}.connect`,\n  });\n\n  // Also update the name, we don't need the \"middleware - \" prefix\n  const name = attributes['connect.name'];\n  if (typeof name === 'string') {\n    span.updateName(name);\n  }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const PACKAGE_VERSION = '0.58.0';\nexport const PACKAGE_NAME = '@opentelemetry/instrumentation-knex';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport const MODULE_NAME = 'knex';\nexport const SUPPORTED_VERSIONS = [\n  // use \"lib/execution\" for runner.js, \"lib\" for client.js as basepath, latest tested 0.95.6\n  '>=0.22.0 <4',\n  // use \"lib\" as basepath\n  '>=0.10.0 <0.18.0',\n  '>=0.19.0 <0.22.0',\n  // use \"src\" as basepath\n  '>=0.18.0 <0.19.0',\n];\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n\n/**\n * Deprecated, use `db.namespace` instead.\n *\n * @example customers\n * @example main\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.namespace`.\n */\nexport const ATTR_DB_NAME = 'db.name' as const;\n\n/**\n * Deprecated, use `db.operation.name` instead.\n *\n * @example findAndModify\n * @example HMSET\n * @example SELECT\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.operation.name`.\n */\nexport const ATTR_DB_OPERATION = 'db.operation' as const;\n\n/**\n * Deprecated, use `db.collection.name` instead.\n *\n * @example \"mytable\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.collection.name`, but only if not extracting the value from `db.query.text`.\n */\nexport const ATTR_DB_SQL_TABLE = 'db.sql.table' as const;\n\n/**\n * The database statement being executed.\n *\n * @example SELECT * FROM wuser_table\n * @example SET mykey \"WuValue\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.query.text`.\n */\nexport const ATTR_DB_STATEMENT = 'db.statement' as const;\n\n/**\n * Deprecated, use `db.system.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.system.name`.\n */\nexport const ATTR_DB_SYSTEM = 'db.system' as const;\n\n/**\n * Deprecated, no replacement at this time.\n *\n * @example readonly_user\n * @example reporting_user\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Removed, no replacement at this time.\n */\nexport const ATTR_DB_USER = 'db.user' as const;\n\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexport const ATTR_NET_PEER_NAME = 'net.peer.name' as const;\n\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexport const ATTR_NET_PEER_PORT = 'net.peer.port' as const;\n\n/**\n * Deprecated, use `network.transport`.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `network.transport`.\n */\nexport const ATTR_NET_TRANSPORT = 'net.transport' as const;\n\n/**\n * Enum value \"sqlite\" for attribute {@link ATTR_DB_SYSTEM_NAME}.\n *\n * [SQLite](https://www.sqlite.org/)\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const DB_SYSTEM_NAME_VALUE_SQLITE = 'sqlite' as const;\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Exception } from '@opentelemetry/api';\nimport { DB_SYSTEM_NAME_VALUE_POSTGRESQL } from '@opentelemetry/semantic-conventions';\nimport { DB_SYSTEM_NAME_VALUE_SQLITE } from './semconv';\n\ntype KnexError = Error & {\n  code?: string;\n};\n\nexport const getFormatter = (runner: any) => {\n  if (runner) {\n    if (runner.client) {\n      if (runner.client._formatQuery) {\n        return runner.client._formatQuery.bind(runner.client);\n      } else if (runner.client.SqlString) {\n        return runner.client.SqlString.format.bind(runner.client.SqlString);\n      }\n    }\n    if (runner.builder) {\n      return runner.builder.toString.bind(runner.builder);\n    }\n  }\n  return () => '';\n};\n\nexport function otelExceptionFromKnexError(\n  err: KnexError,\n  message: string\n): Exception {\n  if (!(err && err instanceof Error)) {\n    return err;\n  }\n\n  return {\n    message,\n    code: err.code,\n    stack: err.stack,\n    name: err.name,\n  };\n}\n\nconst systemMap = new Map([\n  ['sqlite3', DB_SYSTEM_NAME_VALUE_SQLITE],\n  ['pg', DB_SYSTEM_NAME_VALUE_POSTGRESQL],\n]);\n\nexport const mapSystem = (knexSystem: string) => {\n  return systemMap.get(knexSystem) || knexSystem;\n};\n\nexport const getName = (db: string, operation?: string, table?: string) => {\n  if (operation) {\n    if (table) {\n      return `${operation} ${db}.${table}`;\n    }\n    return `${operation} ${db}`;\n  }\n  return db;\n};\n\nexport const limitLength = (str: string, maxLength: number) => {\n  if (\n    typeof str === 'string' &&\n    typeof maxLength === 'number' &&\n    0 < maxLength &&\n    maxLength < str.length\n  ) {\n    return str.substring(0, maxLength) + '..';\n  }\n  return str;\n};\n\n/**\n * Helpers to extract connection details from a Knex connectionString.\n * When Knex is configured via `connection.connectionString` instead of\n * explicit fields like `host`, `port`, and `database`, these values are\n * embedded in the URL and must be parsed out.\n * e.g. \"postgres://user:pass@localhost:5432/mydb\"\n */\n\nexport const extractDatabaseFromConnectionString = (\n  connectionString?: string\n): string | undefined => {\n  if (!connectionString) return undefined;\n  try {\n    const db = new URL(connectionString).pathname?.replace(/^\\//, '');\n    return db || undefined;\n  } catch {\n    return undefined;\n  }\n};\n\nexport const extractHostFromConnectionString = (\n  connectionString?: string\n): string | undefined => {\n  if (!connectionString) return undefined;\n  try {\n    return new URL(connectionString).hostname || undefined;\n  } catch {\n    return undefined;\n  }\n};\n\nexport const extractPortFromConnectionString = (\n  connectionString?: string\n): number | undefined => {\n  if (!connectionString) return undefined;\n  try {\n    const port = new URL(connectionString).port;\n    return port ? parseInt(port, 10) : undefined;\n  } catch {\n    return undefined;\n  }\n};\n\nexport const extractTableName = (builder: any): string => {\n  const table = builder?._single?.table;\n  if (typeof table === 'object') {\n    return extractTableName(table);\n  }\n  return table;\n};\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as api from '@opentelemetry/api';\n/** @knipignore */\nimport { PACKAGE_NAME, PACKAGE_VERSION } from './version';\nimport * as constants from './constants';\nimport {\n  InstrumentationBase,\n  InstrumentationNodeModuleDefinition,\n  InstrumentationNodeModuleFile,\n  isWrapped,\n  SemconvStability,\n  semconvStabilityFromStr,\n} from '@opentelemetry/instrumentation';\nimport * as utils from './utils';\nimport { KnexInstrumentationConfig } from './types';\nimport {\n  ATTR_DB_COLLECTION_NAME,\n  ATTR_DB_NAMESPACE,\n  ATTR_DB_OPERATION_NAME,\n  ATTR_DB_QUERY_TEXT,\n  ATTR_DB_SYSTEM_NAME,\n  ATTR_SERVER_ADDRESS,\n  ATTR_SERVER_PORT,\n} from '@opentelemetry/semantic-conventions';\nimport {\n  ATTR_DB_NAME,\n  ATTR_DB_OPERATION,\n  ATTR_DB_SQL_TABLE,\n  ATTR_DB_STATEMENT,\n  ATTR_DB_SYSTEM,\n  ATTR_DB_USER,\n  ATTR_NET_PEER_NAME,\n  ATTR_NET_PEER_PORT,\n  ATTR_NET_TRANSPORT,\n} from './semconv';\n\nconst contextSymbol = Symbol('opentelemetry.instrumentation-knex.context');\nconst DEFAULT_CONFIG: KnexInstrumentationConfig = {\n  maxQueryLength: 1022,\n  requireParentSpan: false,\n};\n\nexport class KnexInstrumentation extends InstrumentationBase {\n  private _semconvStability: SemconvStability;\n\n  constructor(config: KnexInstrumentationConfig = {}) {\n    super(PACKAGE_NAME, PACKAGE_VERSION, { ...DEFAULT_CONFIG, ...config });\n\n    this._semconvStability = semconvStabilityFromStr(\n      'database',\n      process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n    );\n  }\n\n  override setConfig(config: KnexInstrumentationConfig = {}) {\n    super.setConfig({ ...DEFAULT_CONFIG, ...config });\n  }\n\n  init() {\n    const module = new InstrumentationNodeModuleDefinition(\n      constants.MODULE_NAME,\n      constants.SUPPORTED_VERSIONS\n    );\n\n    module.files.push(\n      this.getClientNodeModuleFileInstrumentation('src'),\n      this.getClientNodeModuleFileInstrumentation('lib'),\n      this.getRunnerNodeModuleFileInstrumentation('src'),\n      this.getRunnerNodeModuleFileInstrumentation('lib'),\n      this.getRunnerNodeModuleFileInstrumentation('lib/execution')\n    );\n\n    return module;\n  }\n\n  private getRunnerNodeModuleFileInstrumentation(basePath: string) {\n    return new InstrumentationNodeModuleFile(\n      `knex/${basePath}/runner.js`,\n      constants.SUPPORTED_VERSIONS,\n      (Runner: any, moduleVersion) => {\n        this.ensureWrapped(\n          Runner.prototype,\n          'query',\n          this.createQueryWrapper(moduleVersion)\n        );\n        return Runner;\n      },\n      (Runner: any, moduleVersion) => {\n        this._unwrap(Runner.prototype, 'query');\n        return Runner;\n      }\n    );\n  }\n\n  private getClientNodeModuleFileInstrumentation(basePath: string) {\n    return new InstrumentationNodeModuleFile(\n      `knex/${basePath}/client.js`,\n      constants.SUPPORTED_VERSIONS,\n      (Client: any) => {\n        this.ensureWrapped(\n          Client.prototype,\n          'queryBuilder',\n          this.storeContext.bind(this)\n        );\n        this.ensureWrapped(\n          Client.prototype,\n          'schemaBuilder',\n          this.storeContext.bind(this)\n        );\n        this.ensureWrapped(\n          Client.prototype,\n          'raw',\n          this.storeContext.bind(this)\n        );\n        return Client;\n      },\n      (Client: any) => {\n        this._unwrap(Client.prototype, 'queryBuilder');\n        this._unwrap(Client.prototype, 'schemaBuilder');\n        this._unwrap(Client.prototype, 'raw');\n        return Client;\n      }\n    );\n  }\n\n  private createQueryWrapper(moduleVersion?: string) {\n    const instrumentation = this;\n\n    return function wrapQuery(original: (...args: any[]) => any) {\n      return function wrapped_logging_method(this: any, query: any) {\n        const config = this.client.config;\n\n        const table = utils.extractTableName(this.builder);\n        // `method` actually refers to the knex API method - Not exactly \"operation\"\n        // in the spec sense, but matches most of the time.\n        const operation = query?.method;\n        // Knex can be configured with a connectionString instead of explicit fields.\n        // Fall back to parsing the connectionString if filename and database are not set.\n        const connectionString = config?.connection?.connectionString;\n        const name =\n          config?.connection?.filename ||\n          config?.connection?.database ||\n          utils.extractDatabaseFromConnectionString(connectionString);\n        const { maxQueryLength } = instrumentation.getConfig();\n\n        const attributes: api.Attributes = {\n          'knex.version': moduleVersion,\n        };\n        const transport =\n          config?.connection?.filename === ':memory:' ? 'inproc' : undefined;\n\n        if (instrumentation._semconvStability & SemconvStability.OLD) {\n          Object.assign(attributes, {\n            [ATTR_DB_SYSTEM]: utils.mapSystem(this.client.driverName),\n            [ATTR_DB_SQL_TABLE]: table,\n            [ATTR_DB_OPERATION]: operation,\n            [ATTR_DB_USER]: config?.connection?.user,\n            [ATTR_DB_NAME]: name,\n            // Fall back to parsing host and port from connectionString if not explicitly set.\n            [ATTR_NET_PEER_NAME]:\n              config?.connection?.host ??\n              utils.extractHostFromConnectionString(connectionString),\n            [ATTR_NET_PEER_PORT]:\n              config?.connection?.port ??\n              utils.extractPortFromConnectionString(connectionString),\n            [ATTR_NET_TRANSPORT]: transport,\n          });\n        }\n        if (instrumentation._semconvStability & SemconvStability.STABLE) {\n          Object.assign(attributes, {\n            [ATTR_DB_SYSTEM_NAME]: utils.mapSystem(this.client.driverName),\n            [ATTR_DB_COLLECTION_NAME]: table,\n            [ATTR_DB_OPERATION_NAME]: operation,\n            [ATTR_DB_NAMESPACE]: name,\n            // Fall back to parsing host and port from connectionString if not explicitly set.\n            [ATTR_SERVER_ADDRESS]:\n              config?.connection?.host ??\n              utils.extractHostFromConnectionString(connectionString),\n            [ATTR_SERVER_PORT]:\n              config?.connection?.port ??\n              utils.extractPortFromConnectionString(connectionString),\n          });\n        }\n        if (maxQueryLength) {\n          // filters both undefined and 0\n          const queryText = utils.limitLength(query?.sql, maxQueryLength);\n          if (instrumentation._semconvStability & SemconvStability.STABLE) {\n            attributes[ATTR_DB_QUERY_TEXT] = queryText;\n          }\n          if (instrumentation._semconvStability & SemconvStability.OLD) {\n            attributes[ATTR_DB_STATEMENT] = queryText;\n          }\n        }\n\n        const parentContext =\n          this.builder[contextSymbol] || api.context.active();\n        const parentSpan = api.trace.getSpan(parentContext);\n        const hasActiveParent =\n          parentSpan && api.trace.isSpanContextValid(parentSpan.spanContext());\n        if (instrumentation._config.requireParentSpan && !hasActiveParent) {\n          return original.bind(this)(...arguments);\n        }\n\n        const span = instrumentation.tracer.startSpan(\n          utils.getName(name, operation, table),\n          {\n            kind: api.SpanKind.CLIENT,\n            attributes,\n          },\n          parentContext\n        );\n        const spanContext = api.trace.setSpan(api.context.active(), span);\n\n        return api.context\n          .with(spanContext, original, this, ...arguments)\n          .then((result: unknown) => {\n            span.end();\n            return result;\n          })\n          .catch((err: any) => {\n            // knex adds full query with all the binding values to the message,\n            // we want to undo that without changing the original error\n            const formatter = utils.getFormatter(this);\n            const fullQuery = formatter(query.sql, query.bindings || []);\n            const message = err.message.replace(fullQuery + ' - ', '');\n            const exc = utils.otelExceptionFromKnexError(err, message);\n            span.recordException(exc);\n            span.setStatus({ code: api.SpanStatusCode.ERROR, message });\n            span.end();\n            throw err;\n          });\n      };\n    };\n  }\n\n  private storeContext(original: Function) {\n    return function wrapped_logging_method(this: any) {\n      const builder = original.apply(this, arguments);\n      // Builder is a custom promise type and when awaited it fails to propagate context.\n      // We store the parent context at the moment of initiating the builder\n      // otherwise we'd have nothing to attach the span as a child for in `query`.\n      Object.defineProperty(builder, contextSymbol, {\n        value: api.context.active(),\n      });\n      return builder;\n    };\n  }\n\n  ensureWrapped(obj: any, methodName: string, wrapper: (original: any) => any) {\n    if (isWrapped(obj[methodName])) {\n      this._unwrap(obj, methodName);\n    }\n    this._wrap(obj, methodName, wrapper);\n  }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { KnexInstrumentation } from './instrumentation';\nexport type { KnexInstrumentationConfig } from './types';\n","import { KnexInstrumentation } from '@opentelemetry/instrumentation-knex';\nimport type { IntegrationFn } from '@sentry/core';\nimport { defineIntegration, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, spanToJSON } from '@sentry/core';\nimport { generateInstrumentOnce, instrumentWhenWrapped } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Knex';\n\nexport const instrumentKnex = generateInstrumentOnce(\n  INTEGRATION_NAME,\n  () => new KnexInstrumentation({ requireParentSpan: true }),\n);\n\nconst _knexIntegration = (() => {\n  let instrumentationWrappedCallback: undefined | ((callback: () => void) => void);\n\n  return {\n    name: INTEGRATION_NAME,\n    setupOnce() {\n      const instrumentation = instrumentKnex();\n      instrumentationWrappedCallback = instrumentWhenWrapped(instrumentation);\n    },\n\n    setup(client) {\n      instrumentationWrappedCallback?.(() =>\n        client.on('spanStart', span => {\n          const { data } = spanToJSON(span);\n          // knex.version is always set in the span data\n          // https://github.com/open-telemetry/opentelemetry-js-contrib/blob/0309caeafc44ac9cb13a3345b790b01b76d0497d/plugins/node/opentelemetry-instrumentation-knex/src/instrumentation.ts#L138\n          if ('knex.version' in data) {\n            span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, 'auto.db.otel.knex');\n          }\n        }),\n      );\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Knex integration\n *\n * Capture tracing data for [Knex](https://knexjs.org/).\n *\n * @example\n * ```javascript\n * import * as Sentry from '@sentry/node';\n *\n * Sentry.init({\n *  integrations: [Sentry.knexIntegration()],\n * });\n * ```\n */\nexport const knexIntegration = defineIntegration(_knexIntegration);\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n\n/**\n * Deprecated, use `db.namespace` instead.\n *\n * @example customers\n * @example main\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.namespace`.\n */\nexport const ATTR_DB_NAME = 'db.name' as const;\n\n/**\n * Deprecated, use `db.collection.name` instead.\n *\n * @example \"mytable\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.collection.name`, but only if not extracting the value from `db.query.text`.\n */\nexport const ATTR_DB_SQL_TABLE = 'db.sql.table' as const;\n\n/**\n * The database statement being executed.\n *\n * @example SELECT * FROM wuser_table\n * @example SET mykey \"WuValue\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.query.text`.\n */\nexport const ATTR_DB_STATEMENT = 'db.statement' as const;\n\n/**\n * Deprecated, use `db.system.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `db.system.name`.\n */\nexport const ATTR_DB_SYSTEM = 'db.system' as const;\n\n/**\n * Deprecated, no replacement at this time.\n *\n * @example readonly_user\n * @example reporting_user\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Removed, no replacement at this time.\n */\nexport const ATTR_DB_USER = 'db.user' as const;\n\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexport const ATTR_NET_PEER_NAME = 'net.peer.name' as const;\n\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexport const ATTR_NET_PEER_PORT = 'net.peer.port' as const;\n\n/**\n * Enum value \"mssql\" for attribute {@link ATTR_DB_SYSTEM}.\n *\n * Microsoft SQL Server\n *\n * @experimental This enum value is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const DB_SYSTEM_VALUE_MSSQL = 'mssql' as const;\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * The span name SHOULD be set to a low cardinality value\n * representing the statement executed on the database.\n *\n * @returns Operation executed on Tedious Connection. Does not map to SQL statement in any way.\n */\nexport function getSpanName(\n  operation: string,\n  db: string | undefined,\n  sql: string | undefined,\n  bulkLoadTable: string | undefined\n): string {\n  if (operation === 'execBulkLoad' && bulkLoadTable && db) {\n    return `${operation} ${bulkLoadTable} ${db}`;\n  }\n  if (operation === 'callProcedure') {\n    // `sql` refers to procedure name with `callProcedure`\n    if (db) {\n      return `${operation} ${sql} ${db}`;\n    }\n    return `${operation} ${sql}`;\n  }\n  // do not use `sql` in general case because of high-cardinality\n  if (db) {\n    return `${operation} ${db}`;\n  }\n  return `${operation}`;\n}\n\nexport const once = (fn: Function) => {\n  let called = false;\n  return (...args: unknown[]) => {\n    if (called) return;\n    called = true;\n    return fn(...args);\n  };\n};\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const PACKAGE_VERSION = '0.33.0';\nexport const PACKAGE_NAME = '@opentelemetry/instrumentation-tedious';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as api from '@opentelemetry/api';\nimport { EventEmitter } from 'events';\nimport {\n  InstrumentationBase,\n  InstrumentationNodeModuleDefinition,\n  isWrapped,\n  SemconvStability,\n  semconvStabilityFromStr,\n} from '@opentelemetry/instrumentation';\nimport {\n  ATTR_DB_COLLECTION_NAME,\n  ATTR_DB_NAMESPACE,\n  ATTR_DB_QUERY_TEXT,\n  ATTR_DB_SYSTEM_NAME,\n  ATTR_SERVER_ADDRESS,\n  ATTR_SERVER_PORT,\n  DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER,\n} from '@opentelemetry/semantic-conventions';\nimport {\n  DB_SYSTEM_VALUE_MSSQL,\n  ATTR_DB_NAME,\n  ATTR_DB_SQL_TABLE,\n  ATTR_DB_STATEMENT,\n  ATTR_DB_SYSTEM,\n  ATTR_DB_USER,\n  ATTR_NET_PEER_NAME,\n  ATTR_NET_PEER_PORT,\n} from './semconv';\nimport type * as tedious from 'tedious';\nimport { TediousInstrumentationConfig } from './types';\nimport { getSpanName, once } from './utils';\n/** @knipignore */\nimport { PACKAGE_NAME, PACKAGE_VERSION } from './version';\n\nconst CURRENT_DATABASE = Symbol(\n  'opentelemetry.instrumentation-tedious.current-database'\n);\n\nexport const INJECTED_CTX = Symbol(\n  'opentelemetry.instrumentation-tedious.context-info-injected'\n);\n\nconst PATCHED_METHODS = [\n  'callProcedure',\n  'execSql',\n  'execSqlBatch',\n  'execBulkLoad',\n  'prepare',\n  'execute',\n];\n\ntype UnknownFunction = (...args: any[]) => any;\ntype ApproxConnection = EventEmitter & {\n  [CURRENT_DATABASE]: string;\n  config: any;\n};\ntype ApproxRequest = EventEmitter & {\n  sqlTextOrProcedure: string | undefined;\n  callback: any;\n  table: string | undefined;\n  parametersByName: any;\n};\n\nfunction setDatabase(this: ApproxConnection, databaseName: string) {\n  Object.defineProperty(this, CURRENT_DATABASE, {\n    value: databaseName,\n    writable: true,\n  });\n}\n\nexport class TediousInstrumentation extends InstrumentationBase {\n  static readonly COMPONENT = 'tedious';\n  private _netSemconvStability!: SemconvStability;\n  private _dbSemconvStability!: SemconvStability;\n\n  constructor(config: TediousInstrumentationConfig = {}) {\n    super(PACKAGE_NAME, PACKAGE_VERSION, config);\n    this._setSemconvStabilityFromEnv();\n  }\n\n  // Used for testing.\n  private _setSemconvStabilityFromEnv() {\n    this._netSemconvStability = semconvStabilityFromStr(\n      'http',\n      process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n    );\n    this._dbSemconvStability = semconvStabilityFromStr(\n      'database',\n      process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n    );\n  }\n\n  protected init() {\n    return [\n      new InstrumentationNodeModuleDefinition(\n        TediousInstrumentation.COMPONENT,\n        ['>=1.11.0 <20'],\n        (moduleExports: typeof tedious) => {\n          const ConnectionPrototype: any = moduleExports.Connection.prototype;\n          for (const method of PATCHED_METHODS) {\n            if (isWrapped(ConnectionPrototype[method])) {\n              this._unwrap(ConnectionPrototype, method);\n            }\n            this._wrap(\n              ConnectionPrototype,\n              method,\n              this._patchQuery(method, moduleExports) as any\n            );\n          }\n\n          if (isWrapped(ConnectionPrototype.connect)) {\n            this._unwrap(ConnectionPrototype, 'connect');\n          }\n          this._wrap(ConnectionPrototype, 'connect', this._patchConnect);\n\n          return moduleExports;\n        },\n        (moduleExports: typeof tedious) => {\n          if (moduleExports === undefined) return;\n          const ConnectionPrototype: any = moduleExports.Connection.prototype;\n          for (const method of PATCHED_METHODS) {\n            this._unwrap(ConnectionPrototype, method);\n          }\n          this._unwrap(ConnectionPrototype, 'connect');\n        }\n      ),\n    ];\n  }\n\n  private _patchConnect(original: UnknownFunction): UnknownFunction {\n    return function patchedConnect(this: ApproxConnection) {\n      setDatabase.call(this, this.config?.options?.database);\n\n      // remove the listener first in case it's already added\n      this.removeListener('databaseChange', setDatabase);\n      this.on('databaseChange', setDatabase);\n\n      this.once('end', () => {\n        this.removeListener('databaseChange', setDatabase);\n      });\n      return original.apply(this, arguments as unknown as any[]);\n    };\n  }\n\n  private _buildTraceparent(span: api.Span): string {\n    const sc = span.spanContext();\n    return `00-${sc.traceId}-${sc.spanId}-0${Number(sc.traceFlags || api.TraceFlags.NONE).toString(16)}`;\n  }\n\n  /**\n   * Fire a one-off `SET CONTEXT_INFO @opentelemetry_traceparent` on the same\n   * connection. Marks the request with INJECTED_CTX so our patch skips it.\n   */\n  private _injectContextInfo(\n    connection: any,\n    tediousModule: typeof tedious,\n    traceparent: string\n  ): Promise {\n    return new Promise(resolve => {\n      try {\n        const sql = 'set context_info @opentelemetry_traceparent';\n        const req = new tediousModule.Request(sql, (_err: any) => {\n          resolve();\n        });\n        Object.defineProperty(req, INJECTED_CTX, { value: true });\n        const buf = Buffer.from(traceparent, 'utf8');\n        req.addParameter(\n          'opentelemetry_traceparent',\n          (tediousModule as any).TYPES.VarBinary,\n          buf,\n          { length: buf.length }\n        );\n\n        connection.execSql(req);\n      } catch {\n        resolve();\n      }\n    });\n  }\n\n  private _shouldInjectFor(operation: string): boolean {\n    return (\n      operation === 'execSql' ||\n      operation === 'execSqlBatch' ||\n      operation === 'callProcedure' ||\n      operation === 'execute'\n    );\n  }\n\n  private _patchQuery(operation: string, tediousModule: typeof tedious) {\n    return (originalMethod: UnknownFunction): UnknownFunction => {\n      const thisPlugin = this;\n\n      function patchedMethod(this: ApproxConnection, request: ApproxRequest) {\n        // Skip our own injected request\n        if ((request as any)?.[INJECTED_CTX]) {\n          return originalMethod.apply(this, arguments as unknown as any[]);\n        }\n\n        if (!(request instanceof EventEmitter)) {\n          thisPlugin._diag.warn(\n            `Unexpected invocation of patched ${operation} method. Span not recorded`\n          );\n          return originalMethod.apply(this, arguments as unknown as any[]);\n        }\n        let procCount = 0;\n        let statementCount = 0;\n        const incrementStatementCount = () => statementCount++;\n        const incrementProcCount = () => procCount++;\n        const databaseName = this[CURRENT_DATABASE];\n        const sql = (request => {\n          // Required for <11.0.9\n          if (\n            request.sqlTextOrProcedure === 'sp_prepare' &&\n            request.parametersByName?.stmt?.value\n          ) {\n            return request.parametersByName.stmt.value;\n          }\n          return request.sqlTextOrProcedure;\n        })(request);\n\n        const attributes: api.Attributes = {};\n        if (thisPlugin._dbSemconvStability & SemconvStability.OLD) {\n          attributes[ATTR_DB_SYSTEM] = DB_SYSTEM_VALUE_MSSQL;\n          attributes[ATTR_DB_NAME] = databaseName;\n          // >=4 uses `authentication` object; older versions just userName and password pair\n          attributes[ATTR_DB_USER] =\n            this.config?.userName ??\n            this.config?.authentication?.options?.userName;\n          attributes[ATTR_DB_STATEMENT] = sql;\n          attributes[ATTR_DB_SQL_TABLE] = request.table;\n        }\n        if (thisPlugin._dbSemconvStability & SemconvStability.STABLE) {\n          // The OTel spec for \"db.namespace\" discusses handling for connection\n          // to MSSQL \"named instances\". This isn't currently supported.\n          //    https://opentelemetry.io/docs/specs/semconv/database/sql-server/#:~:text=%5B1%5D%20db%2Enamespace\n          attributes[ATTR_DB_NAMESPACE] = databaseName;\n          attributes[ATTR_DB_SYSTEM_NAME] =\n            DB_SYSTEM_NAME_VALUE_MICROSOFT_SQL_SERVER;\n          attributes[ATTR_DB_QUERY_TEXT] = sql;\n          attributes[ATTR_DB_COLLECTION_NAME] = request.table;\n          // See https://opentelemetry.io/docs/specs/semconv/database/sql-server/#spans\n          // TODO(3290): can `db.response.status_code` be added?\n          // TODO(3290): is `operation` correct for `db.operation.name`\n          // TODO(3290): can `db.query.summary` reliably be calculated?\n          // TODO(3290): `db.stored_procedure.name`\n        }\n        if (thisPlugin._netSemconvStability & SemconvStability.OLD) {\n          attributes[ATTR_NET_PEER_NAME] = this.config?.server;\n          attributes[ATTR_NET_PEER_PORT] = this.config?.options?.port;\n        }\n        if (thisPlugin._netSemconvStability & SemconvStability.STABLE) {\n          attributes[ATTR_SERVER_ADDRESS] = this.config?.server;\n          attributes[ATTR_SERVER_PORT] = this.config?.options?.port;\n        }\n        const span = thisPlugin.tracer.startSpan(\n          getSpanName(operation, databaseName, sql, request.table),\n          {\n            kind: api.SpanKind.CLIENT,\n            attributes,\n          }\n        );\n\n        const endSpan = once((err?: any) => {\n          request.removeListener('done', incrementStatementCount);\n          request.removeListener('doneInProc', incrementStatementCount);\n          request.removeListener('doneProc', incrementProcCount);\n          request.removeListener('error', endSpan);\n          this.removeListener('end', endSpan);\n\n          span.setAttribute('tedious.procedure_count', procCount);\n          span.setAttribute('tedious.statement_count', statementCount);\n          if (err) {\n            span.setStatus({\n              code: api.SpanStatusCode.ERROR,\n              message: err.message,\n            });\n            // TODO(3290): set `error.type` attribute?\n          }\n          span.end();\n        });\n\n        request.on('done', incrementStatementCount);\n        request.on('doneInProc', incrementStatementCount);\n        request.on('doneProc', incrementProcCount);\n        request.once('error', endSpan);\n        this.on('end', endSpan);\n\n        if (typeof request.callback === 'function') {\n          thisPlugin._wrap(\n            request,\n            'callback',\n            thisPlugin._patchCallbackQuery(endSpan)\n          );\n        } else {\n          thisPlugin._diag.error('Expected request.callback to be a function');\n        }\n\n        const runUserRequest = () => {\n          return api.context.with(\n            api.trace.setSpan(api.context.active(), span),\n            originalMethod,\n            this,\n            ...arguments\n          );\n        };\n\n        const cfg = thisPlugin.getConfig();\n        const shouldInject =\n          cfg.enableTraceContextPropagation &&\n          thisPlugin._shouldInjectFor(operation);\n\n        if (!shouldInject) return runUserRequest();\n\n        const traceparent = thisPlugin._buildTraceparent(span);\n\n        void thisPlugin\n          ._injectContextInfo(this, tediousModule, traceparent)\n          .finally(runUserRequest);\n      }\n\n      Object.defineProperty(patchedMethod, 'length', {\n        value: originalMethod.length,\n        writable: false,\n      });\n\n      return patchedMethod;\n    };\n  }\n\n  private _patchCallbackQuery(endSpan: Function) {\n    return (originalCallback: Function) => {\n      return function (\n        this: any,\n        err: Error | undefined | null,\n        rowCount?: number,\n        rows?: any\n      ) {\n        endSpan(err);\n        return originalCallback.apply(this, arguments);\n      };\n    };\n  }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { TediousInstrumentation } from './instrumentation';\nexport type { TediousInstrumentationConfig } from './types';\n","import { TediousInstrumentation } from '@opentelemetry/instrumentation-tedious';\nimport type { IntegrationFn } from '@sentry/core';\nimport { defineIntegration, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, spanToJSON } from '@sentry/core';\nimport { generateInstrumentOnce, instrumentWhenWrapped } from '@sentry/node-core';\n\nconst TEDIUS_INSTRUMENTED_METHODS = new Set([\n  'callProcedure',\n  'execSql',\n  'execSqlBatch',\n  'execBulkLoad',\n  'prepare',\n  'execute',\n]);\n\nconst INTEGRATION_NAME = 'Tedious';\n\nexport const instrumentTedious = generateInstrumentOnce(INTEGRATION_NAME, () => new TediousInstrumentation({}));\n\nconst _tediousIntegration = (() => {\n  let instrumentationWrappedCallback: undefined | ((callback: () => void) => void);\n\n  return {\n    name: INTEGRATION_NAME,\n    setupOnce() {\n      const instrumentation = instrumentTedious();\n      instrumentationWrappedCallback = instrumentWhenWrapped(instrumentation);\n    },\n\n    setup(client) {\n      instrumentationWrappedCallback?.(() =>\n        client.on('spanStart', span => {\n          const { description, data } = spanToJSON(span);\n          // Tedius integration always set a span name and `db.system` attribute to `mssql`.\n          if (!description || data['db.system'] !== 'mssql') {\n            return;\n          }\n\n          const operation = description.split(' ')[0] || '';\n          if (TEDIUS_INSTRUMENTED_METHODS.has(operation)) {\n            span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, 'auto.db.otel.tedious');\n          }\n        }),\n      );\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for the [tedious](https://www.npmjs.com/package/tedious) library.\n *\n * For more information, see the [`tediousIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/tedious/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n *  integrations: [Sentry.tediousIntegration()],\n * });\n * ```\n */\nexport const tediousIntegration = defineIntegration(_tediousIntegration);\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const PACKAGE_VERSION = '0.57.0';\nexport const PACKAGE_NAME = '@opentelemetry/instrumentation-generic-pool';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as api from '@opentelemetry/api';\nimport {\n  InstrumentationBase,\n  InstrumentationConfig,\n  InstrumentationNodeModuleDefinition,\n  isWrapped,\n} from '@opentelemetry/instrumentation';\n\nimport type * as genericPool from 'generic-pool';\n\n/** @knipignore */\nimport { PACKAGE_NAME, PACKAGE_VERSION } from './version';\n\nconst MODULE_NAME = 'generic-pool';\n\nexport class GenericPoolInstrumentation extends InstrumentationBase {\n  // only used for v2 - v2.3)\n  private _isDisabled = false;\n\n  constructor(config: InstrumentationConfig = {}) {\n    super(PACKAGE_NAME, PACKAGE_VERSION, config);\n  }\n\n  init() {\n    return [\n      new InstrumentationNodeModuleDefinition(\n        MODULE_NAME,\n        ['>=3.0.0 <4'],\n        moduleExports => {\n          const Pool: any = moduleExports.Pool;\n          if (isWrapped(Pool.prototype.acquire)) {\n            this._unwrap(Pool.prototype, 'acquire');\n          }\n          this._wrap(\n            Pool.prototype,\n            'acquire',\n            this._acquirePatcher.bind(this)\n          );\n          return moduleExports;\n        },\n        moduleExports => {\n          const Pool: any = moduleExports.Pool;\n          this._unwrap(Pool.prototype, 'acquire');\n          return moduleExports;\n        }\n      ),\n      new InstrumentationNodeModuleDefinition(\n        MODULE_NAME,\n        ['>=2.4.0 <3'],\n        moduleExports => {\n          const Pool: any = moduleExports.Pool;\n          if (isWrapped(Pool.prototype.acquire)) {\n            this._unwrap(Pool.prototype, 'acquire');\n          }\n          this._wrap(\n            Pool.prototype,\n            'acquire',\n            this._acquireWithCallbacksPatcher.bind(this)\n          );\n          return moduleExports;\n        },\n        moduleExports => {\n          const Pool: any = moduleExports.Pool;\n          this._unwrap(Pool.prototype, 'acquire');\n          return moduleExports;\n        }\n      ),\n      new InstrumentationNodeModuleDefinition(\n        MODULE_NAME,\n        ['>=2.0.0 <2.4'],\n        moduleExports => {\n          this._isDisabled = false;\n          if (isWrapped(moduleExports.Pool)) {\n            this._unwrap(moduleExports, 'Pool');\n          }\n          this._wrap(moduleExports, 'Pool', this._poolWrapper.bind(this));\n          return moduleExports;\n        },\n        moduleExports => {\n          // since the object is created on the fly every time, we need to use\n          // a boolean switch here to disable the instrumentation\n          this._isDisabled = true;\n          return moduleExports;\n        }\n      ),\n    ];\n  }\n\n  private _acquirePatcher(original: genericPool.Pool['acquire']) {\n    const instrumentation = this;\n    return function wrapped_acquire(\n      this: genericPool.Pool,\n      ...args: any[]\n    ) {\n      const parent = api.context.active();\n      const span = instrumentation.tracer.startSpan(\n        'generic-pool.acquire',\n        {},\n        parent\n      );\n\n      return api.context.with(api.trace.setSpan(parent, span), () => {\n        return original.call(this, ...args).then(\n          value => {\n            span.end();\n            return value;\n          },\n          err => {\n            span.recordException(err);\n            span.end();\n            throw err;\n          }\n        );\n      });\n    };\n  }\n\n  private _poolWrapper(original: any) {\n    const instrumentation = this;\n    return function wrapped_pool(this: any) {\n      const pool = original.apply(this, arguments);\n      instrumentation._wrap(\n        pool,\n        'acquire',\n        instrumentation._acquireWithCallbacksPatcher.bind(instrumentation)\n      );\n      return pool;\n    };\n  }\n\n  private _acquireWithCallbacksPatcher(original: any) {\n    const instrumentation = this;\n    return function wrapped_acquire(\n      this: genericPool.Pool,\n      cb: Function,\n      priority: number\n    ) {\n      // only used for v2 - v2.3\n      if (instrumentation._isDisabled) {\n        return original.call(this, cb, priority);\n      }\n      const parent = api.context.active();\n      const span = instrumentation.tracer.startSpan(\n        'generic-pool.acquire',\n        {},\n        parent\n      );\n\n      return api.context.with(api.trace.setSpan(parent, span), () => {\n        original.call(\n          this,\n          (err: unknown, client: unknown) => {\n            span.end();\n            // Not checking whether cb is a function because\n            // the original code doesn't do that either.\n            if (cb) {\n              return cb(err, client);\n            }\n          },\n          priority\n        );\n      });\n    };\n  }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { GenericPoolInstrumentation } from './instrumentation';\n","import { GenericPoolInstrumentation } from '@opentelemetry/instrumentation-generic-pool';\nimport type { IntegrationFn } from '@sentry/core';\nimport { defineIntegration, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, spanToJSON } from '@sentry/core';\nimport { generateInstrumentOnce, instrumentWhenWrapped } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'GenericPool';\n\nexport const instrumentGenericPool = generateInstrumentOnce(INTEGRATION_NAME, () => new GenericPoolInstrumentation({}));\n\nconst _genericPoolIntegration = (() => {\n  let instrumentationWrappedCallback: undefined | ((callback: () => void) => void);\n\n  return {\n    name: INTEGRATION_NAME,\n    setupOnce() {\n      const instrumentation = instrumentGenericPool();\n      instrumentationWrappedCallback = instrumentWhenWrapped(instrumentation);\n    },\n\n    setup(client) {\n      instrumentationWrappedCallback?.(() =>\n        client.on('spanStart', span => {\n          const spanJSON = spanToJSON(span);\n\n          const spanDescription = spanJSON.description;\n\n          // typo in emitted span for version <= 0.38.0 of @opentelemetry/instrumentation-generic-pool\n          const isGenericPoolSpan =\n            spanDescription === 'generic-pool.aquire' || spanDescription === 'generic-pool.acquire';\n\n          if (isGenericPoolSpan) {\n            span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, 'auto.db.otel.generic_pool');\n          }\n        }),\n      );\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for the [generic-pool](https://www.npmjs.com/package/generic-pool) library.\n *\n * For more information, see the [`genericPoolIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/genericpool/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n *  integrations: [Sentry.genericPoolIntegration()],\n * });\n * ```\n */\nexport const genericPoolIntegration = defineIntegration(_genericPoolIntegration);\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const PACKAGE_VERSION = '0.31.0';\nexport const PACKAGE_NAME = '@opentelemetry/instrumentation-dataloader';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n  InstrumentationBase,\n  InstrumentationNodeModuleDefinition,\n  isWrapped,\n} from '@opentelemetry/instrumentation';\nimport {\n  trace,\n  context,\n  Link,\n  SpanStatusCode,\n  SpanKind,\n} from '@opentelemetry/api';\nimport { DataloaderInstrumentationConfig } from './types';\n/** @knipignore */\nimport { PACKAGE_NAME, PACKAGE_VERSION } from './version';\nimport type * as Dataloader from 'dataloader';\n\nconst MODULE_NAME = 'dataloader';\n\ntype DataloaderInternal = typeof Dataloader.prototype & {\n  _batchLoadFn: Dataloader.BatchLoadFn;\n  _batch: { spanLinks?: Link[] } | null;\n};\n\ntype LoadFn = (typeof Dataloader.prototype)['load'];\ntype LoadManyFn = (typeof Dataloader.prototype)['loadMany'];\ntype PrimeFn = (typeof Dataloader.prototype)['prime'];\ntype ClearFn = (typeof Dataloader.prototype)['clear'];\ntype ClearAllFn = (typeof Dataloader.prototype)['clearAll'];\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction extractModuleExports(module: any) {\n  return module[Symbol.toStringTag] === 'Module'\n    ? module.default // ESM\n    : module; // CommonJS\n}\n\nexport class DataloaderInstrumentation extends InstrumentationBase {\n  constructor(config: DataloaderInstrumentationConfig = {}) {\n    super(PACKAGE_NAME, PACKAGE_VERSION, config);\n  }\n\n  protected init() {\n    return [\n      new InstrumentationNodeModuleDefinition(\n        MODULE_NAME,\n        ['>=2.0.0 <3'],\n        module => {\n          const dataloader = extractModuleExports(module);\n          this._patchLoad(dataloader.prototype);\n          this._patchLoadMany(dataloader.prototype);\n          this._patchPrime(dataloader.prototype);\n          this._patchClear(dataloader.prototype);\n          this._patchClearAll(dataloader.prototype);\n\n          return this._getPatchedConstructor(dataloader);\n        },\n        module => {\n          const dataloader = extractModuleExports(module);\n          ['load', 'loadMany', 'prime', 'clear', 'clearAll'].forEach(method => {\n            if (isWrapped(dataloader.prototype[method])) {\n              this._unwrap(dataloader.prototype, method);\n            }\n          });\n        }\n      ),\n    ];\n  }\n\n  private shouldCreateSpans(): boolean {\n    const config = this.getConfig();\n    const hasParentSpan = trace.getSpan(context.active()) !== undefined;\n    return hasParentSpan || !config.requireParentSpan;\n  }\n\n  private getSpanName(\n    dataloader: DataloaderInternal,\n    operation: 'load' | 'loadMany' | 'batch' | 'prime' | 'clear' | 'clearAll'\n  ): string {\n    const dataloaderName = dataloader.name;\n    if (dataloaderName === undefined || dataloaderName === null) {\n      return `${MODULE_NAME}.${operation}`;\n    }\n\n    return `${MODULE_NAME}.${operation} ${dataloaderName}`;\n  }\n\n  private _wrapBatchLoadFn(\n    batchLoadFn: Dataloader.BatchLoadFn\n  ): Dataloader.BatchLoadFn {\n    const instrumentation = this;\n\n    return function patchedBatchLoadFn(\n      this: DataloaderInternal,\n      ...args: Parameters>\n    ) {\n      if (\n        !instrumentation.isEnabled() ||\n        !instrumentation.shouldCreateSpans()\n      ) {\n        return batchLoadFn.call(this, ...args);\n      }\n\n      const parent = context.active();\n      const span = instrumentation.tracer.startSpan(\n        instrumentation.getSpanName(this, 'batch'),\n        { links: this._batch?.spanLinks as Link[] | undefined },\n        parent\n      );\n\n      return context.with(trace.setSpan(parent, span), () => {\n        return (batchLoadFn.apply(this, args) as Promise)\n          .then(value => {\n            span.end();\n            return value;\n          })\n          .catch(err => {\n            span.recordException(err);\n            span.setStatus({\n              code: SpanStatusCode.ERROR,\n              message: err.message,\n            });\n            span.end();\n            throw err;\n          });\n      });\n    };\n  }\n\n  private _getPatchedConstructor(\n    constructor: typeof Dataloader\n  ): typeof Dataloader {\n    const instrumentation = this;\n    const prototype = constructor.prototype;\n\n    if (!instrumentation.isEnabled()) {\n      return constructor;\n    }\n\n    function PatchedDataloader(\n      this: DataloaderInternal,\n      ...args: ConstructorParameters\n    ) {\n      // BatchLoadFn is the first constructor argument\n      // https://github.com/graphql/dataloader/blob/77c2cd7ca97e8795242018ebc212ce2487e729d2/src/index.js#L47\n      if (typeof args[0] === 'function') {\n        if (isWrapped(args[0])) {\n          instrumentation._unwrap(args, 0);\n        }\n\n        args[0] = instrumentation._wrapBatchLoadFn(\n          args[0]\n        ) as Dataloader.BatchLoadFn;\n      }\n\n      return constructor.apply(this, args);\n    }\n\n    PatchedDataloader.prototype = prototype;\n    return PatchedDataloader as unknown as typeof Dataloader;\n  }\n\n  private _patchLoad(proto: typeof Dataloader.prototype) {\n    if (isWrapped(proto.load)) {\n      this._unwrap(proto, 'load');\n    }\n\n    this._wrap(proto, 'load', this._getPatchedLoad.bind(this));\n  }\n\n  private _getPatchedLoad(original: LoadFn): LoadFn {\n    const instrumentation = this;\n\n    return function patchedLoad(\n      this: DataloaderInternal,\n      ...args: Parameters\n    ) {\n      if (!instrumentation.shouldCreateSpans()) {\n        return original.call(this, ...args);\n      }\n\n      const parent = context.active();\n      const span = instrumentation.tracer.startSpan(\n        instrumentation.getSpanName(this, 'load'),\n        { kind: SpanKind.CLIENT },\n        parent\n      );\n\n      return context.with(trace.setSpan(parent, span), () => {\n        const result = original\n          .call(this, ...args)\n          .then(value => {\n            span.end();\n            return value;\n          })\n          .catch(err => {\n            span.recordException(err);\n            span.setStatus({\n              code: SpanStatusCode.ERROR,\n              message: err.message,\n            });\n            span.end();\n            throw err;\n          });\n\n        const loader = this as DataloaderInternal;\n\n        if (loader._batch) {\n          if (!loader._batch.spanLinks) {\n            loader._batch.spanLinks = [];\n          }\n\n          loader._batch.spanLinks.push({ context: span.spanContext() } as Link);\n        }\n\n        return result;\n      });\n    };\n  }\n\n  private _patchLoadMany(proto: typeof Dataloader.prototype) {\n    if (isWrapped(proto.loadMany)) {\n      this._unwrap(proto, 'loadMany');\n    }\n\n    this._wrap(proto, 'loadMany', this._getPatchedLoadMany.bind(this));\n  }\n\n  private _getPatchedLoadMany(original: LoadManyFn): LoadManyFn {\n    const instrumentation = this;\n\n    return function patchedLoadMany(\n      this: DataloaderInternal,\n      ...args: Parameters\n    ) {\n      if (!instrumentation.shouldCreateSpans()) {\n        return original.call(this, ...args);\n      }\n\n      const parent = context.active();\n      const span = instrumentation.tracer.startSpan(\n        instrumentation.getSpanName(this, 'loadMany'),\n        { kind: SpanKind.CLIENT },\n        parent\n      );\n\n      return context.with(trace.setSpan(parent, span), () => {\n        // .loadMany never rejects, as errors from internal .load\n        // calls are caught by dataloader lib\n        return original.call(this, ...args).then(value => {\n          span.end();\n          return value;\n        });\n      });\n    };\n  }\n\n  private _patchPrime(proto: typeof Dataloader.prototype) {\n    if (isWrapped(proto.prime)) {\n      this._unwrap(proto, 'prime');\n    }\n\n    this._wrap(proto, 'prime', this._getPatchedPrime.bind(this));\n  }\n\n  private _getPatchedPrime(original: PrimeFn): PrimeFn {\n    const instrumentation = this;\n\n    return function patchedPrime(\n      this: DataloaderInternal,\n      ...args: Parameters\n    ) {\n      if (!instrumentation.shouldCreateSpans()) {\n        return original.call(this, ...args);\n      }\n\n      const parent = context.active();\n      const span = instrumentation.tracer.startSpan(\n        instrumentation.getSpanName(this, 'prime'),\n        { kind: SpanKind.CLIENT },\n        parent\n      );\n\n      const ret = context.with(trace.setSpan(parent, span), () => {\n        return original.call(this, ...args);\n      });\n\n      span.end();\n\n      return ret;\n    };\n  }\n\n  private _patchClear(proto: typeof Dataloader.prototype) {\n    if (isWrapped(proto.clear)) {\n      this._unwrap(proto, 'clear');\n    }\n\n    this._wrap(proto, 'clear', this._getPatchedClear.bind(this));\n  }\n\n  private _getPatchedClear(original: ClearFn): ClearFn {\n    const instrumentation = this;\n\n    return function patchedClear(\n      this: DataloaderInternal,\n      ...args: Parameters\n    ) {\n      if (!instrumentation.shouldCreateSpans()) {\n        return original.call(this, ...args);\n      }\n\n      const parent = context.active();\n      const span = instrumentation.tracer.startSpan(\n        instrumentation.getSpanName(this, 'clear'),\n        { kind: SpanKind.CLIENT },\n        parent\n      );\n\n      const ret = context.with(trace.setSpan(parent, span), () => {\n        return original.call(this, ...args);\n      });\n\n      span.end();\n\n      return ret;\n    };\n  }\n\n  private _patchClearAll(proto: typeof Dataloader.prototype) {\n    if (isWrapped(proto.clearAll)) {\n      this._unwrap(proto, 'clearAll');\n    }\n\n    this._wrap(proto, 'clearAll', this._getPatchedClearAll.bind(this));\n  }\n\n  private _getPatchedClearAll(original: ClearAllFn): ClearAllFn {\n    const instrumentation = this;\n\n    return function patchedClearAll(\n      this: DataloaderInternal,\n      ...args: Parameters\n    ) {\n      if (!instrumentation.shouldCreateSpans()) {\n        return original.call(this, ...args);\n      }\n\n      const parent = context.active();\n      const span = instrumentation.tracer.startSpan(\n        instrumentation.getSpanName(this, 'clearAll'),\n        { kind: SpanKind.CLIENT },\n        parent\n      );\n\n      const ret = context.with(trace.setSpan(parent, span), () => {\n        return original.call(this, ...args);\n      });\n\n      span.end();\n\n      return ret;\n    };\n  }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { DataloaderInstrumentation } from './instrumentation';\nexport type { DataloaderInstrumentationConfig } from './types';\n","import { DataloaderInstrumentation } from '@opentelemetry/instrumentation-dataloader';\nimport type { IntegrationFn } from '@sentry/core';\nimport {\n  defineIntegration,\n  SEMANTIC_ATTRIBUTE_SENTRY_OP,\n  SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n  spanToJSON,\n} from '@sentry/core';\nimport { generateInstrumentOnce, instrumentWhenWrapped } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Dataloader';\n\nexport const instrumentDataloader = generateInstrumentOnce(\n  INTEGRATION_NAME,\n  () =>\n    new DataloaderInstrumentation({\n      requireParentSpan: true,\n    }),\n);\n\nconst _dataloaderIntegration = (() => {\n  let instrumentationWrappedCallback: undefined | ((callback: () => void) => void);\n\n  return {\n    name: INTEGRATION_NAME,\n    setupOnce() {\n      const instrumentation = instrumentDataloader();\n      instrumentationWrappedCallback = instrumentWhenWrapped(instrumentation);\n    },\n\n    setup(client) {\n      // This is called either immediately or when the instrumentation is wrapped\n      instrumentationWrappedCallback?.(() => {\n        client.on('spanStart', span => {\n          const spanJSON = spanToJSON(span);\n          if (spanJSON.description?.startsWith('dataloader')) {\n            span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, 'auto.db.otel.dataloader');\n          }\n\n          // These are all possible dataloader span descriptions\n          // Still checking for the future versions\n          // in case they add support for `clear` and `prime`\n          if (\n            spanJSON.description === 'dataloader.load' ||\n            spanJSON.description === 'dataloader.loadMany' ||\n            spanJSON.description === 'dataloader.batch'\n          ) {\n            span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'cache.get');\n            // TODO: We can try adding `key` to the `data` attribute upstream.\n            // Or alternatively, we can add `requestHook` to the dataloader instrumentation.\n          }\n        });\n      });\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for the [dataloader](https://www.npmjs.com/package/dataloader) library.\n *\n * For more information, see the [`dataloaderIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/dataloader/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n *  integrations: [Sentry.dataloaderIntegration()],\n * });\n * ```\n */\nexport const dataloaderIntegration = defineIntegration(_dataloaderIntegration);\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n\n/**\n * Deprecated, use `messaging.operation.type` instead.\n *\n * @example publish\n * @example create\n * @example process\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `messaging.operation.type`.\n */\nexport const ATTR_MESSAGING_OPERATION = 'messaging.operation' as const;\n\n/**\n * The messaging system as identified by the client instrumentation.\n *\n * @note The actual messaging system may differ from the one known by the client. For example, when using Kafka client libraries to communicate with Azure Event Hubs, the `messaging.system` is set to `kafka` based on the instrumentation's best knowledge.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_MESSAGING_SYSTEM = 'messaging.system' as const;\n\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexport const ATTR_NET_PEER_NAME = 'net.peer.name' as const;\n\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexport const ATTR_NET_PEER_PORT = 'net.peer.port' as const;\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * This file contains constants for values that where replaced/removed from\n * Semantic Conventions long enough ago that they do not have `ATTR_*`\n * constants in the `@opentelemetry/semantic-conventions` package. Eventually\n * it is expected that this instrumention will be updated to emit telemetry\n * using modern Semantic Conventions, dropping the need for the constants in\n * this file.\n */\n\n/**\n * The message destination name. This might be equal to the span name but is required nevertheless.\n *\n * @deprecated Use ATTR_MESSAGING_DESTINATION_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const ATTR_MESSAGING_DESTINATION = 'messaging.destination' as const;\n\n/**\n * The kind of message destination.\n *\n * @deprecated Removed in semconv v1.20.0.\n */\nexport const ATTR_MESSAGING_DESTINATION_KIND =\n  'messaging.destination_kind' as const;\n\n/**\n * RabbitMQ message routing key.\n *\n * @deprecated Use ATTR_MESSAGING_RABBITMQ_DESTINATION_ROUTING_KEY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const ATTR_MESSAGING_RABBITMQ_ROUTING_KEY =\n  'messaging.rabbitmq.routing_key' as const;\n\n/**\n * A string identifying the kind of message consumption as defined in the [Operation names](#operation-names) section above. If the operation is "send", this attribute MUST NOT be set, since the operation can be inferred from the span kind in that case.\n *\n * @deprecated Use MESSAGING_OPERATION_TYPE_VALUE_PROCESS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const MESSAGING_OPERATION_VALUE_PROCESS = 'process' as const;\n\n/**\n * The name of the transport protocol.\n *\n * @deprecated Use ATTR_NETWORK_PROTOCOL_NAME.\n */\nexport const ATTR_MESSAGING_PROTOCOL = 'messaging.protocol' as const;\n\n/**\n * The version of the transport protocol.\n *\n * @deprecated Use ATTR_NETWORK_PROTOCOL_VERSION.\n */\nexport const ATTR_MESSAGING_PROTOCOL_VERSION =\n  'messaging.protocol_version' as const;\n\n/**\n * Connection string.\n *\n * @deprecated Removed in semconv v1.17.0.\n */\nexport const ATTR_MESSAGING_URL = 'messaging.url' as const;\n\n/**\n * The kind of message destination.\n *\n * @deprecated Removed in semconv v1.20.0.\n */\nexport const MESSAGING_DESTINATION_KIND_VALUE_TOPIC = 'topic' as const;\n\n/**\n * A value used by the messaging system as an identifier for the message, represented as a string.\n *\n * @deprecated Use ATTR_MESSAGING_MESSAGE_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n *\n * Note: changing to `ATTR_MESSAGING_MESSAGE_ID` means a change in value from `messaging.message_id` to `messaging.message.id`.\n */\nexport const OLD_ATTR_MESSAGING_MESSAGE_ID = 'messaging.message_id' as const;\n\n/**\n * The [conversation ID](#conversations) identifying the conversation to which the message belongs, represented as a string. Sometimes called "Correlation ID".\n *\n * @deprecated Use ATTR_MESSAGING_MESSAGE_CONVERSATION_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const ATTR_MESSAGING_CONVERSATION_ID =\n  'messaging.conversation_id' as const;\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Span } from '@opentelemetry/api';\nimport { InstrumentationConfig } from '@opentelemetry/instrumentation';\n\nexport interface PublishInfo {\n  moduleVersion: string | undefined;\n  exchange: string;\n  routingKey: string;\n  content: Buffer;\n  options?: AmqplibPublishOptions;\n  isConfirmChannel?: boolean;\n}\n\nexport interface PublishConfirmedInfo extends PublishInfo {\n  confirmError?: any;\n}\n\nexport interface ConsumeInfo {\n  moduleVersion: string | undefined;\n  msg: ConsumeMessage;\n}\n\nexport interface ConsumeEndInfo {\n  msg: ConsumeMessage;\n  rejected: boolean | null;\n  endOperation: EndOperation;\n}\n\nexport interface AmqplibPublishCustomAttributeFunction {\n  (span: Span, publishInfo: PublishInfo): void;\n}\n\nexport interface AmqplibPublishConfirmCustomAttributeFunction {\n  (span: Span, publishConfirmedInto: PublishConfirmedInfo): void;\n}\n\nexport interface AmqplibConsumeCustomAttributeFunction {\n  (span: Span, consumeInfo: ConsumeInfo): void;\n}\n\nexport interface AmqplibConsumeEndCustomAttributeFunction {\n  (span: Span, consumeEndInfo: ConsumeEndInfo): void;\n}\n\nexport enum EndOperation {\n  AutoAck = 'auto ack',\n  Ack = 'ack',\n  AckAll = 'ackAll',\n  Reject = 'reject',\n  Nack = 'nack',\n  NackAll = 'nackAll',\n  ChannelClosed = 'channel closed',\n  ChannelError = 'channel error',\n  InstrumentationTimeout = 'instrumentation timeout',\n}\n\nexport interface AmqplibInstrumentationConfig extends InstrumentationConfig {\n  /** hook for adding custom attributes before publish message is sent */\n  publishHook?: AmqplibPublishCustomAttributeFunction;\n\n  /** hook for adding custom attributes after publish message is confirmed by the broker */\n  publishConfirmHook?: AmqplibPublishConfirmCustomAttributeFunction;\n\n  /** hook for adding custom attributes before consumer message is processed */\n  consumeHook?: AmqplibConsumeCustomAttributeFunction;\n\n  /** hook for adding custom attributes after consumer message is acked to server */\n  consumeEndHook?: AmqplibConsumeEndCustomAttributeFunction;\n\n  /**\n   * When user is setting up consume callback, it is user's responsibility to call\n   * ack/nack etc on the msg to resolve it in the server.\n   * If user is not calling the ack, the message will stay in the queue until\n   * channel is closed, or until server timeout expires (if configured).\n   * While we wait for the ack, a reference to the message is stored in plugin, which\n   * will never be garbage collected.\n   * To prevent memory leak, plugin has it's own configuration of timeout, which\n   * will close the span if user did not call ack after this timeout.\n   * If timeout is not big enough, span might be closed with 'InstrumentationTimeout',\n   * and then received valid ack from the user later which will not be instrumented.\n   *\n   * Default is 1 minute\n   */\n  consumeTimeoutMs?: number;\n\n  /** option to use a span link for the consume message instead of continuing a trace */\n  useLinksForConsume?: boolean;\n}\n\nexport const DEFAULT_CONFIG: AmqplibInstrumentationConfig = {\n  consumeTimeoutMs: 1000 * 60, // 1 minute\n  useLinksForConsume: false,\n};\n\n// The following types are vendored from `@types/amqplib@0.10.1` - commit SHA: 4205e03127692a40b4871709a7134fe4e2ed5510\n\n// Vendored from: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/4205e03127692a40b4871709a7134fe4e2ed5510/types/amqplib/properties.d.ts#L108\n// This exists in `@types/amqplib` as `Options.Publish`. We're renaming things\n// here to avoid importing the whole Options namespace.\nexport interface AmqplibPublishOptions {\n  expiration?: string | number;\n  userId?: string;\n  CC?: string | string[];\n\n  mandatory?: boolean;\n  persistent?: boolean;\n  deliveryMode?: boolean | number;\n  BCC?: string | string[];\n\n  contentType?: string;\n  contentEncoding?: string;\n  headers?: any;\n  priority?: number;\n  correlationId?: string;\n  replyTo?: string;\n  messageId?: string;\n  timestamp?: number;\n  type?: string;\n  appId?: string;\n}\n\n// Vendored from: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/4205e03127692a40b4871709a7134fe4e2ed5510/types/amqplib/properties.d.ts#L142\nexport interface Message {\n  content: Buffer;\n  fields: MessageFields;\n  properties: MessageProperties;\n}\n\nexport interface ConsumeMessage extends Message {\n  fields: ConsumeMessageFields;\n}\n\nexport interface CommonMessageFields {\n  deliveryTag: number;\n  redelivered: boolean;\n  exchange: string;\n  routingKey: string;\n}\n\nexport interface MessageFields extends CommonMessageFields {\n  messageCount?: number;\n  consumerTag?: string;\n}\n\nexport interface ConsumeMessageFields extends CommonMessageFields {\n  deliveryTag: number;\n}\n\nexport interface MessageProperties {\n  contentType: any | undefined;\n  contentEncoding: any | undefined;\n  headers: any;\n  deliveryMode: any | undefined;\n  priority: any | undefined;\n  correlationId: any | undefined;\n  replyTo: any | undefined;\n  expiration: any | undefined;\n  messageId: any | undefined;\n  timestamp: any | undefined;\n  type: any | undefined;\n  userId: any | undefined;\n  appId: any | undefined;\n  clusterId: any | undefined;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n  Context,\n  createContextKey,\n  diag,\n  HrTime,\n  Span,\n  Attributes,\n  AttributeValue,\n} from '@opentelemetry/api';\nimport { SemconvStability } from '@opentelemetry/instrumentation';\nimport {\n  ATTR_SERVER_ADDRESS,\n  ATTR_SERVER_PORT,\n} from '@opentelemetry/semantic-conventions';\nimport {\n  ATTR_MESSAGING_SYSTEM,\n  ATTR_NET_PEER_NAME,\n  ATTR_NET_PEER_PORT,\n} from './semconv';\nimport {\n  ATTR_MESSAGING_PROTOCOL,\n  ATTR_MESSAGING_PROTOCOL_VERSION,\n  ATTR_MESSAGING_URL,\n} from '../src/semconv-obsolete';\nimport type * as amqp from 'amqplib';\n\nexport const MESSAGE_STORED_SPAN: unique symbol = Symbol(\n  'opentelemetry.amqplib.message.stored-span'\n);\nexport const CHANNEL_SPANS_NOT_ENDED: unique symbol = Symbol(\n  'opentelemetry.amqplib.channel.spans-not-ended'\n);\nexport const CHANNEL_CONSUME_TIMEOUT_TIMER: unique symbol = Symbol(\n  'opentelemetry.amqplib.channel.consumer-timeout-timer'\n);\nexport const CONNECTION_ATTRIBUTES: unique symbol = Symbol(\n  'opentelemetry.amqplib.connection.attributes'\n);\n\nexport type InstrumentationConnection = amqp.Connection & {\n  [CONNECTION_ATTRIBUTES]?: Attributes;\n};\nexport type InstrumentationPublishChannel = (\n  | amqp.Channel\n  | amqp.ConfirmChannel\n) & { connection: InstrumentationConnection };\nexport type InstrumentationConsumeChannel = amqp.Channel & {\n  connection: InstrumentationConnection;\n  [CHANNEL_SPANS_NOT_ENDED]?: {\n    msg: amqp.ConsumeMessage;\n    timeOfConsume: HrTime;\n  }[];\n  [CHANNEL_CONSUME_TIMEOUT_TIMER]?: NodeJS.Timeout;\n};\nexport type InstrumentationMessage = amqp.Message & {\n  [MESSAGE_STORED_SPAN]?: Span;\n};\nexport type InstrumentationConsumeMessage = amqp.ConsumeMessage & {\n  [MESSAGE_STORED_SPAN]?: Span;\n};\n\nconst IS_CONFIRM_CHANNEL_CONTEXT_KEY: symbol = createContextKey(\n  'opentelemetry.amqplib.channel.is-confirm-channel'\n);\n\nexport const normalizeExchange = (exchangeName: string) =>\n  exchangeName !== '' ? exchangeName : '';\n\nconst censorPassword = (url: string): string => {\n  return url.replace(/:[^:@/]*@/, ':***@');\n};\n\nconst getPort = (\n  portFromUrl: number | undefined,\n  resolvedProtocol: string\n): number => {\n  // we are using the resolved protocol which is upper case\n  // this code mimic the behavior of the amqplib which is used to set connection params\n  return portFromUrl || (resolvedProtocol === 'AMQP' ? 5672 : 5671);\n};\n\nconst getProtocol = (protocolFromUrl: string | undefined): string => {\n  const resolvedProtocol = protocolFromUrl || 'amqp';\n  // the substring removed the ':' part of the protocol ('amqp:' -> 'amqp')\n  const noEndingColon = resolvedProtocol.endsWith(':')\n    ? resolvedProtocol.substring(0, resolvedProtocol.length - 1)\n    : resolvedProtocol;\n  // upper cases to match spec\n  return noEndingColon.toUpperCase();\n};\n\nconst getHostname = (hostnameFromUrl: string | undefined): string => {\n  // if user supplies empty hostname, it gets forwarded to 'net' package which default it to localhost.\n  // https://nodejs.org/docs/latest-v12.x/api/net.html#net_socket_connect_options_connectlistener\n  return hostnameFromUrl || 'localhost';\n};\n\nconst extractConnectionAttributeOrLog = (\n  url: string | amqp.Options.Connect,\n  attributeKey: string,\n  attributeValue: AttributeValue,\n  nameForLog: string\n): Attributes => {\n  if (attributeValue) {\n    return { [attributeKey]: attributeValue };\n  } else {\n    diag.error(\n      `amqplib instrumentation: could not extract connection attribute ${nameForLog} from user supplied url`,\n      {\n        url,\n      }\n    );\n    return {};\n  }\n};\n\nexport const getConnectionAttributesFromServer = (\n  conn: amqp.Connection\n): Attributes => {\n  const product = conn.serverProperties.product?.toLowerCase?.();\n  if (product) {\n    return {\n      [ATTR_MESSAGING_SYSTEM]: product,\n    };\n  } else {\n    return {};\n  }\n};\n\nexport const getConnectionAttributesFromUrl = (\n  url: string | amqp.Options.Connect,\n  netSemconvStability: SemconvStability\n): Attributes => {\n  const attributes: Attributes = {\n    [ATTR_MESSAGING_PROTOCOL_VERSION]: '0.9.1', // this is the only protocol supported by the instrumented library\n  };\n\n  url = url || 'amqp://localhost';\n  if (typeof url === 'object') {\n    const connectOptions = url as amqp.Options.Connect;\n\n    const protocol = getProtocol(connectOptions?.protocol);\n    Object.assign(attributes, {\n      ...extractConnectionAttributeOrLog(\n        url,\n        ATTR_MESSAGING_PROTOCOL,\n        protocol,\n        'protocol'\n      ),\n    });\n\n    const hostname = getHostname(connectOptions?.hostname);\n    if (netSemconvStability & SemconvStability.OLD) {\n      Object.assign(attributes, {\n        ...extractConnectionAttributeOrLog(\n          url,\n          ATTR_NET_PEER_NAME,\n          hostname,\n          'hostname'\n        ),\n      });\n    }\n    if (netSemconvStability & SemconvStability.STABLE) {\n      Object.assign(attributes, {\n        ...extractConnectionAttributeOrLog(\n          url,\n          ATTR_SERVER_ADDRESS,\n          hostname,\n          'hostname'\n        ),\n      });\n    }\n\n    const port = getPort(connectOptions.port, protocol);\n    if (netSemconvStability & SemconvStability.OLD) {\n      Object.assign(\n        attributes,\n        extractConnectionAttributeOrLog(url, ATTR_NET_PEER_PORT, port, 'port')\n      );\n    }\n    if (netSemconvStability & SemconvStability.STABLE) {\n      Object.assign(\n        attributes,\n        extractConnectionAttributeOrLog(url, ATTR_SERVER_PORT, port, 'port')\n      );\n    }\n  } else {\n    const censoredUrl = censorPassword(url);\n    attributes[ATTR_MESSAGING_URL] = censoredUrl;\n    try {\n      const urlParts = new URL(censoredUrl);\n\n      const protocol = getProtocol(urlParts.protocol);\n      Object.assign(attributes, {\n        ...extractConnectionAttributeOrLog(\n          censoredUrl,\n          ATTR_MESSAGING_PROTOCOL,\n          protocol,\n          'protocol'\n        ),\n      });\n\n      const hostname = getHostname(urlParts.hostname);\n      if (netSemconvStability & SemconvStability.OLD) {\n        Object.assign(attributes, {\n          ...extractConnectionAttributeOrLog(\n            censoredUrl,\n            ATTR_NET_PEER_NAME,\n            hostname,\n            'hostname'\n          ),\n        });\n      }\n      if (netSemconvStability & SemconvStability.STABLE) {\n        Object.assign(attributes, {\n          ...extractConnectionAttributeOrLog(\n            censoredUrl,\n            ATTR_SERVER_ADDRESS,\n            hostname,\n            'hostname'\n          ),\n        });\n      }\n\n      const port = getPort(\n        urlParts.port ? parseInt(urlParts.port) : undefined,\n        protocol\n      );\n      if (netSemconvStability & SemconvStability.OLD) {\n        Object.assign(\n          attributes,\n          extractConnectionAttributeOrLog(\n            censoredUrl,\n            ATTR_NET_PEER_PORT,\n            port,\n            'port'\n          )\n        );\n      }\n      if (netSemconvStability & SemconvStability.STABLE) {\n        Object.assign(\n          attributes,\n          extractConnectionAttributeOrLog(\n            censoredUrl,\n            ATTR_SERVER_PORT,\n            port,\n            'port'\n          )\n        );\n      }\n    } catch (err) {\n      diag.error(\n        'amqplib instrumentation: error while extracting connection details from connection url',\n        {\n          censoredUrl,\n          err,\n        }\n      );\n    }\n  }\n  return attributes;\n};\n\nexport const markConfirmChannelTracing = (context: Context) => {\n  return context.setValue(IS_CONFIRM_CHANNEL_CONTEXT_KEY, true);\n};\n\nexport const unmarkConfirmChannelTracing = (context: Context) => {\n  return context.deleteValue(IS_CONFIRM_CHANNEL_CONTEXT_KEY);\n};\n\nexport const isConfirmChannelTracing = (context: Context) => {\n  return context.getValue(IS_CONFIRM_CHANNEL_CONTEXT_KEY) === true;\n};\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const PACKAGE_VERSION = '0.61.0';\nexport const PACKAGE_NAME = '@opentelemetry/instrumentation-amqplib';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n  context,\n  diag,\n  propagation,\n  trace,\n  Span,\n  SpanKind,\n  SpanStatusCode,\n  ROOT_CONTEXT,\n  Link,\n  Context,\n} from '@opentelemetry/api';\nimport {\n  hrTime,\n  hrTimeDuration,\n  hrTimeToMilliseconds,\n} from '@opentelemetry/core';\nimport {\n  InstrumentationBase,\n  InstrumentationNodeModuleDefinition,\n  InstrumentationNodeModuleFile,\n  isWrapped,\n  safeExecuteInTheMiddle,\n  SemconvStability,\n  semconvStabilityFromStr,\n} from '@opentelemetry/instrumentation';\nimport { ATTR_MESSAGING_OPERATION } from './semconv';\nimport {\n  ATTR_MESSAGING_DESTINATION,\n  ATTR_MESSAGING_DESTINATION_KIND,\n  ATTR_MESSAGING_RABBITMQ_ROUTING_KEY,\n  MESSAGING_DESTINATION_KIND_VALUE_TOPIC,\n  MESSAGING_OPERATION_VALUE_PROCESS,\n  OLD_ATTR_MESSAGING_MESSAGE_ID,\n  ATTR_MESSAGING_CONVERSATION_ID,\n} from '../src/semconv-obsolete';\nimport type {\n  Connection,\n  ConsumeMessage,\n  Message,\n  Options,\n  Replies,\n} from 'amqplib';\nimport {\n  AmqplibInstrumentationConfig,\n  DEFAULT_CONFIG,\n  EndOperation,\n} from './types';\nimport {\n  CHANNEL_CONSUME_TIMEOUT_TIMER,\n  CHANNEL_SPANS_NOT_ENDED,\n  CONNECTION_ATTRIBUTES,\n  getConnectionAttributesFromServer,\n  getConnectionAttributesFromUrl,\n  InstrumentationConnection,\n  InstrumentationConsumeChannel,\n  InstrumentationConsumeMessage,\n  InstrumentationMessage,\n  InstrumentationPublishChannel,\n  isConfirmChannelTracing,\n  markConfirmChannelTracing,\n  MESSAGE_STORED_SPAN,\n  normalizeExchange,\n  unmarkConfirmChannelTracing,\n} from './utils';\n/** @knipignore */\nimport { PACKAGE_NAME, PACKAGE_VERSION } from './version';\n\nconst supportedVersions = ['>=0.5.5 <1'];\n\nexport class AmqplibInstrumentation extends InstrumentationBase {\n  private _netSemconvStability!: SemconvStability;\n\n  constructor(config: AmqplibInstrumentationConfig = {}) {\n    super(PACKAGE_NAME, PACKAGE_VERSION, { ...DEFAULT_CONFIG, ...config });\n    this._setSemconvStabilityFromEnv();\n  }\n\n  // Used for testing.\n  private _setSemconvStabilityFromEnv() {\n    this._netSemconvStability = semconvStabilityFromStr(\n      'http',\n      process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n    );\n  }\n\n  override setConfig(config: AmqplibInstrumentationConfig = {}) {\n    super.setConfig({ ...DEFAULT_CONFIG, ...config });\n  }\n\n  protected init() {\n    const channelModelModuleFile = new InstrumentationNodeModuleFile(\n      'amqplib/lib/channel_model.js',\n      supportedVersions,\n      this.patchChannelModel.bind(this),\n      this.unpatchChannelModel.bind(this)\n    );\n\n    const callbackModelModuleFile = new InstrumentationNodeModuleFile(\n      'amqplib/lib/callback_model.js',\n      supportedVersions,\n      this.patchChannelModel.bind(this),\n      this.unpatchChannelModel.bind(this)\n    );\n\n    const connectModuleFile = new InstrumentationNodeModuleFile(\n      'amqplib/lib/connect.js',\n      supportedVersions,\n      this.patchConnect.bind(this),\n      this.unpatchConnect.bind(this)\n    );\n\n    const module = new InstrumentationNodeModuleDefinition(\n      'amqplib',\n      supportedVersions,\n      undefined,\n      undefined,\n      [channelModelModuleFile, connectModuleFile, callbackModelModuleFile]\n    );\n    return module;\n  }\n\n  private patchConnect(moduleExports: any) {\n    moduleExports = this.unpatchConnect(moduleExports);\n    if (!isWrapped(moduleExports.connect)) {\n      this._wrap(moduleExports, 'connect', this.getConnectPatch.bind(this));\n    }\n    return moduleExports;\n  }\n\n  private unpatchConnect(moduleExports: any) {\n    if (isWrapped(moduleExports.connect)) {\n      this._unwrap(moduleExports, 'connect');\n    }\n    return moduleExports;\n  }\n\n  private patchChannelModel(\n    moduleExports: any,\n    moduleVersion: string | undefined\n  ) {\n    if (!isWrapped(moduleExports.Channel.prototype.publish)) {\n      this._wrap(\n        moduleExports.Channel.prototype,\n        'publish',\n        this.getPublishPatch.bind(this, moduleVersion)\n      );\n    }\n    if (!isWrapped(moduleExports.Channel.prototype.consume)) {\n      this._wrap(\n        moduleExports.Channel.prototype,\n        'consume',\n        this.getConsumePatch.bind(this, moduleVersion)\n      );\n    }\n    if (!isWrapped(moduleExports.Channel.prototype.ack)) {\n      this._wrap(\n        moduleExports.Channel.prototype,\n        'ack',\n        this.getAckPatch.bind(this, false, EndOperation.Ack)\n      );\n    }\n    if (!isWrapped(moduleExports.Channel.prototype.nack)) {\n      this._wrap(\n        moduleExports.Channel.prototype,\n        'nack',\n        this.getAckPatch.bind(this, true, EndOperation.Nack)\n      );\n    }\n    if (!isWrapped(moduleExports.Channel.prototype.reject)) {\n      this._wrap(\n        moduleExports.Channel.prototype,\n        'reject',\n        this.getAckPatch.bind(this, true, EndOperation.Reject)\n      );\n    }\n    if (!isWrapped(moduleExports.Channel.prototype.ackAll)) {\n      this._wrap(\n        moduleExports.Channel.prototype,\n        'ackAll',\n        this.getAckAllPatch.bind(this, false, EndOperation.AckAll)\n      );\n    }\n    if (!isWrapped(moduleExports.Channel.prototype.nackAll)) {\n      this._wrap(\n        moduleExports.Channel.prototype,\n        'nackAll',\n        this.getAckAllPatch.bind(this, true, EndOperation.NackAll)\n      );\n    }\n    if (!isWrapped(moduleExports.Channel.prototype.emit)) {\n      this._wrap(\n        moduleExports.Channel.prototype,\n        'emit',\n        this.getChannelEmitPatch.bind(this)\n      );\n    }\n    if (!isWrapped(moduleExports.ConfirmChannel.prototype.publish)) {\n      this._wrap(\n        moduleExports.ConfirmChannel.prototype,\n        'publish',\n        this.getConfirmedPublishPatch.bind(this, moduleVersion)\n      );\n    }\n    return moduleExports;\n  }\n\n  private unpatchChannelModel(moduleExports: any) {\n    if (isWrapped(moduleExports.Channel.prototype.publish)) {\n      this._unwrap(moduleExports.Channel.prototype, 'publish');\n    }\n    if (isWrapped(moduleExports.Channel.prototype.consume)) {\n      this._unwrap(moduleExports.Channel.prototype, 'consume');\n    }\n    if (isWrapped(moduleExports.Channel.prototype.ack)) {\n      this._unwrap(moduleExports.Channel.prototype, 'ack');\n    }\n    if (isWrapped(moduleExports.Channel.prototype.nack)) {\n      this._unwrap(moduleExports.Channel.prototype, 'nack');\n    }\n    if (isWrapped(moduleExports.Channel.prototype.reject)) {\n      this._unwrap(moduleExports.Channel.prototype, 'reject');\n    }\n    if (isWrapped(moduleExports.Channel.prototype.ackAll)) {\n      this._unwrap(moduleExports.Channel.prototype, 'ackAll');\n    }\n    if (isWrapped(moduleExports.Channel.prototype.nackAll)) {\n      this._unwrap(moduleExports.Channel.prototype, 'nackAll');\n    }\n    if (isWrapped(moduleExports.Channel.prototype.emit)) {\n      this._unwrap(moduleExports.Channel.prototype, 'emit');\n    }\n    if (isWrapped(moduleExports.ConfirmChannel.prototype.publish)) {\n      this._unwrap(moduleExports.ConfirmChannel.prototype, 'publish');\n    }\n    return moduleExports;\n  }\n\n  private getConnectPatch(\n    original: (\n      url: string | Options.Connect,\n      socketOptions: any,\n      openCallback: (err: any, connection: Connection) => void\n    ) => Connection\n  ) {\n    const self = this;\n    return function patchedConnect(\n      this: unknown,\n      url: string | Options.Connect,\n      socketOptions: any,\n      openCallback: Function\n    ) {\n      return original.call(\n        this,\n        url,\n        socketOptions,\n        function (this: unknown, err, conn: InstrumentationConnection) {\n          if (err == null) {\n            const urlAttributes = getConnectionAttributesFromUrl(\n              url,\n              self._netSemconvStability\n            );\n            const serverAttributes = getConnectionAttributesFromServer(conn);\n            conn[CONNECTION_ATTRIBUTES] = {\n              ...urlAttributes,\n              ...serverAttributes,\n            };\n          }\n          openCallback.apply(this, arguments);\n        }\n      );\n    };\n  }\n\n  private getChannelEmitPatch(original: Function) {\n    const self = this;\n    return function emit(\n      this: InstrumentationConsumeChannel,\n      eventName: string\n    ) {\n      if (eventName === 'close') {\n        self.endAllSpansOnChannel(\n          this,\n          true,\n          EndOperation.ChannelClosed,\n          undefined\n        );\n        const activeTimer = this[CHANNEL_CONSUME_TIMEOUT_TIMER];\n        if (activeTimer) {\n          clearInterval(activeTimer);\n        }\n        this[CHANNEL_CONSUME_TIMEOUT_TIMER] = undefined;\n      } else if (eventName === 'error') {\n        self.endAllSpansOnChannel(\n          this,\n          true,\n          EndOperation.ChannelError,\n          undefined\n        );\n      }\n      return original.apply(this, arguments);\n    };\n  }\n\n  private getAckAllPatch(\n    isRejected: boolean,\n    endOperation: EndOperation,\n    original: Function\n  ) {\n    const self = this;\n    return function ackAll(\n      this: InstrumentationConsumeChannel,\n      requeueOrEmpty?: boolean\n    ): void {\n      self.endAllSpansOnChannel(this, isRejected, endOperation, requeueOrEmpty);\n      return original.apply(this, arguments);\n    };\n  }\n\n  private getAckPatch(\n    isRejected: boolean,\n    endOperation: EndOperation,\n    original: Function\n  ) {\n    const self = this;\n    return function ack(\n      this: InstrumentationConsumeChannel,\n      message: Message,\n      allUpToOrRequeue?: boolean,\n      requeue?: boolean\n    ): void {\n      const channel = this;\n      // we use this patch in reject function as well, but it has different signature\n      const requeueResolved =\n        endOperation === EndOperation.Reject ? allUpToOrRequeue : requeue;\n\n      const spansNotEnded: { msg: Message }[] =\n        channel[CHANNEL_SPANS_NOT_ENDED] ?? [];\n      const msgIndex = spansNotEnded.findIndex(\n        msgDetails => msgDetails.msg === message\n      );\n      if (msgIndex < 0) {\n        // should not happen in happy flow\n        // but possible if user is calling the api function ack twice with same message\n        self.endConsumerSpan(\n          message,\n          isRejected,\n          endOperation,\n          requeueResolved\n        );\n      } else if (endOperation !== EndOperation.Reject && allUpToOrRequeue) {\n        for (let i = 0; i <= msgIndex; i++) {\n          self.endConsumerSpan(\n            spansNotEnded[i].msg,\n            isRejected,\n            endOperation,\n            requeueResolved\n          );\n        }\n        spansNotEnded.splice(0, msgIndex + 1);\n      } else {\n        self.endConsumerSpan(\n          message,\n          isRejected,\n          endOperation,\n          requeueResolved\n        );\n        spansNotEnded.splice(msgIndex, 1);\n      }\n      return original.apply(this, arguments);\n    };\n  }\n\n  private getConsumePatch(\n    moduleVersion: string | undefined,\n    original: Function\n  ) {\n    const self = this;\n    return function consume(\n      this: InstrumentationConsumeChannel,\n      queue: string,\n      onMessage: (msg: ConsumeMessage | null) => void,\n      options?: Options.Consume\n    ): Promise {\n      const channel = this;\n      if (\n        !Object.prototype.hasOwnProperty.call(channel, CHANNEL_SPANS_NOT_ENDED)\n      ) {\n        const { consumeTimeoutMs } = self.getConfig();\n        if (consumeTimeoutMs) {\n          const timer = setInterval(() => {\n            self.checkConsumeTimeoutOnChannel(channel);\n          }, consumeTimeoutMs);\n          timer.unref();\n          channel[CHANNEL_CONSUME_TIMEOUT_TIMER] = timer;\n        }\n        channel[CHANNEL_SPANS_NOT_ENDED] = [];\n      }\n\n      const patchedOnMessage = function (\n        this: unknown,\n        msg: InstrumentationConsumeMessage | null\n      ) {\n        // msg is expected to be null for signaling consumer cancel notification\n        // https://www.rabbitmq.com/consumer-cancel.html\n        // in this case, we do not start a span, as this is not a real message.\n        if (!msg) {\n          return onMessage.call(this, msg);\n        }\n\n        const headers = msg.properties.headers ?? {};\n        let parentContext: Context | undefined = propagation.extract(\n          ROOT_CONTEXT,\n          headers\n        );\n        const exchange = msg.fields?.exchange;\n        let links: Link[] | undefined;\n        if (self._config.useLinksForConsume) {\n          const parentSpanContext = parentContext\n            ? trace.getSpan(parentContext)?.spanContext()\n            : undefined;\n          parentContext = undefined;\n          if (parentSpanContext) {\n            links = [\n              {\n                context: parentSpanContext,\n              },\n            ];\n          }\n        }\n        const span = self.tracer.startSpan(\n          `${queue} process`,\n          {\n            kind: SpanKind.CONSUMER,\n            attributes: {\n              ...channel?.connection?.[CONNECTION_ATTRIBUTES],\n              [ATTR_MESSAGING_DESTINATION]: exchange,\n              [ATTR_MESSAGING_DESTINATION_KIND]:\n                MESSAGING_DESTINATION_KIND_VALUE_TOPIC,\n              [ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]: msg.fields?.routingKey,\n              [ATTR_MESSAGING_OPERATION]: MESSAGING_OPERATION_VALUE_PROCESS,\n              [OLD_ATTR_MESSAGING_MESSAGE_ID]: msg?.properties.messageId,\n              [ATTR_MESSAGING_CONVERSATION_ID]: msg?.properties.correlationId,\n            },\n            links,\n          },\n          parentContext\n        );\n\n        const { consumeHook } = self.getConfig();\n        if (consumeHook) {\n          safeExecuteInTheMiddle(\n            () => consumeHook(span, { moduleVersion, msg }),\n            e => {\n              if (e) {\n                diag.error('amqplib instrumentation: consumerHook error', e);\n              }\n            },\n            true\n          );\n        }\n\n        if (!options?.noAck) {\n          // store the message on the channel so we can close the span on ackAll etc\n          channel[CHANNEL_SPANS_NOT_ENDED]!.push({\n            msg,\n            timeOfConsume: hrTime(),\n          });\n\n          // store the span on the message, so we can end it when user call 'ack' on it\n          msg[MESSAGE_STORED_SPAN] = span;\n        }\n        const setContext: Context = parentContext\n          ? parentContext\n          : ROOT_CONTEXT;\n        context.with(trace.setSpan(setContext, span), () => {\n          onMessage.call(this, msg);\n        });\n\n        if (options?.noAck) {\n          self.callConsumeEndHook(span, msg, false, EndOperation.AutoAck);\n          span.end();\n        }\n      };\n      arguments[1] = patchedOnMessage;\n      return original.apply(this, arguments);\n    };\n  }\n\n  private getConfirmedPublishPatch(\n    moduleVersion: string | undefined,\n    original: Function\n  ) {\n    const self = this;\n    return function confirmedPublish(\n      this: InstrumentationConsumeChannel,\n      exchange: string,\n      routingKey: string,\n      content: Buffer,\n      options?: Options.Publish,\n      callback?: (err: any, ok: Replies.Empty) => void\n    ): boolean {\n      const channel = this;\n      const { span, modifiedOptions } = self.createPublishSpan(\n        self,\n        exchange,\n        routingKey,\n        channel,\n        options\n      );\n\n      const { publishHook } = self.getConfig();\n      if (publishHook) {\n        safeExecuteInTheMiddle(\n          () =>\n            publishHook(span, {\n              moduleVersion,\n              exchange,\n              routingKey,\n              content,\n              options: modifiedOptions,\n              isConfirmChannel: true,\n            }),\n          e => {\n            if (e) {\n              diag.error('amqplib instrumentation: publishHook error', e);\n            }\n          },\n          true\n        );\n      }\n\n      const patchedOnConfirm = function (\n        this: unknown,\n        err: any,\n        ok: Replies.Empty\n      ) {\n        try {\n          callback?.call(this, err, ok);\n        } finally {\n          const { publishConfirmHook } = self.getConfig();\n          if (publishConfirmHook) {\n            safeExecuteInTheMiddle(\n              () =>\n                publishConfirmHook(span, {\n                  moduleVersion,\n                  exchange,\n                  routingKey,\n                  content,\n                  options,\n                  isConfirmChannel: true,\n                  confirmError: err,\n                }),\n              e => {\n                if (e) {\n                  diag.error(\n                    'amqplib instrumentation: publishConfirmHook error',\n                    e\n                  );\n                }\n              },\n              true\n            );\n          }\n\n          if (err) {\n            span.setStatus({\n              code: SpanStatusCode.ERROR,\n              message: \"message confirmation has been nack'ed\",\n            });\n          }\n          span.end();\n        }\n      };\n\n      // calling confirm channel publish function is storing the message in queue and registering the callback for broker confirm.\n      // span ends in the patched callback.\n      const markedContext = markConfirmChannelTracing(context.active());\n      const argumentsCopy = [...arguments];\n      argumentsCopy[3] = modifiedOptions;\n      argumentsCopy[4] = context.bind(\n        unmarkConfirmChannelTracing(trace.setSpan(markedContext, span)),\n        patchedOnConfirm\n      );\n      return context.with(markedContext, original.bind(this, ...argumentsCopy));\n    };\n  }\n\n  private getPublishPatch(\n    moduleVersion: string | undefined,\n    original: Function\n  ) {\n    const self = this;\n    return function publish(\n      this: InstrumentationPublishChannel,\n      exchange: string,\n      routingKey: string,\n      content: Buffer,\n      options?: Options.Publish\n    ): boolean {\n      if (isConfirmChannelTracing(context.active())) {\n        // work already done\n        return original.apply(this, arguments);\n      } else {\n        const channel = this;\n        const { span, modifiedOptions } = self.createPublishSpan(\n          self,\n          exchange,\n          routingKey,\n          channel,\n          options\n        );\n\n        const { publishHook } = self.getConfig();\n        if (publishHook) {\n          safeExecuteInTheMiddle(\n            () =>\n              publishHook(span, {\n                moduleVersion,\n                exchange,\n                routingKey,\n                content,\n                options: modifiedOptions,\n                isConfirmChannel: false,\n              }),\n            e => {\n              if (e) {\n                diag.error('amqplib instrumentation: publishHook error', e);\n              }\n            },\n            true\n          );\n        }\n\n        // calling normal channel publish function is only storing the message in queue.\n        // it does not send it and waits for an ack, so the span duration is expected to be very short.\n        const argumentsCopy = [...arguments];\n        argumentsCopy[3] = modifiedOptions;\n        const originalRes = original.apply(this, argumentsCopy as any);\n        span.end();\n        return originalRes;\n      }\n    };\n  }\n\n  private createPublishSpan(\n    self: this,\n    exchange: string,\n    routingKey: string,\n    channel: InstrumentationPublishChannel,\n    options?: Options.Publish\n  ) {\n    const normalizedExchange = normalizeExchange(exchange);\n\n    const span = self.tracer.startSpan(`publish ${normalizedExchange}`, {\n      kind: SpanKind.PRODUCER,\n      attributes: {\n        ...channel.connection[CONNECTION_ATTRIBUTES],\n        [ATTR_MESSAGING_DESTINATION]: exchange,\n        [ATTR_MESSAGING_DESTINATION_KIND]:\n          MESSAGING_DESTINATION_KIND_VALUE_TOPIC,\n\n        [ATTR_MESSAGING_RABBITMQ_ROUTING_KEY]: routingKey,\n        [OLD_ATTR_MESSAGING_MESSAGE_ID]: options?.messageId,\n        [ATTR_MESSAGING_CONVERSATION_ID]: options?.correlationId,\n      },\n    });\n    const modifiedOptions = options ?? {};\n    modifiedOptions.headers = modifiedOptions.headers ?? {};\n\n    propagation.inject(\n      trace.setSpan(context.active(), span),\n      modifiedOptions.headers\n    );\n\n    return { span, modifiedOptions };\n  }\n\n  private endConsumerSpan(\n    message: InstrumentationMessage,\n    isRejected: boolean | null,\n    operation: EndOperation,\n    requeue: boolean | undefined\n  ) {\n    const storedSpan: Span | undefined = message[MESSAGE_STORED_SPAN];\n    if (!storedSpan) return;\n    if (isRejected !== false) {\n      storedSpan.setStatus({\n        code: SpanStatusCode.ERROR,\n        message:\n          operation !== EndOperation.ChannelClosed &&\n          operation !== EndOperation.ChannelError\n            ? `${operation} called on message${\n                requeue === true\n                  ? ' with requeue'\n                  : requeue === false\n                    ? ' without requeue'\n                    : ''\n              }`\n            : operation,\n      });\n    }\n    this.callConsumeEndHook(storedSpan, message, isRejected, operation);\n    storedSpan.end();\n    message[MESSAGE_STORED_SPAN] = undefined;\n  }\n\n  private endAllSpansOnChannel(\n    channel: InstrumentationConsumeChannel,\n    isRejected: boolean,\n    operation: EndOperation,\n    requeue: boolean | undefined\n  ) {\n    const spansNotEnded: { msg: Message }[] =\n      channel[CHANNEL_SPANS_NOT_ENDED] ?? [];\n    spansNotEnded.forEach(msgDetails => {\n      this.endConsumerSpan(msgDetails.msg, isRejected, operation, requeue);\n    });\n    channel[CHANNEL_SPANS_NOT_ENDED] = [];\n  }\n\n  private callConsumeEndHook(\n    span: Span,\n    msg: InstrumentationMessage,\n    rejected: boolean | null,\n    endOperation: EndOperation\n  ) {\n    const { consumeEndHook } = this.getConfig();\n    if (!consumeEndHook) return;\n\n    safeExecuteInTheMiddle(\n      () => consumeEndHook(span, { msg, rejected, endOperation }),\n      e => {\n        if (e) {\n          diag.error('amqplib instrumentation: consumerEndHook error', e);\n        }\n      },\n      true\n    );\n  }\n\n  private checkConsumeTimeoutOnChannel(channel: InstrumentationConsumeChannel) {\n    const currentTime = hrTime();\n    const spansNotEnded = channel[CHANNEL_SPANS_NOT_ENDED] ?? [];\n    let i: number;\n    const { consumeTimeoutMs } = this.getConfig();\n    for (i = 0; i < spansNotEnded.length; i++) {\n      const currMessage = spansNotEnded[i];\n      const timeFromConsume = hrTimeDuration(\n        currMessage.timeOfConsume,\n        currentTime\n      );\n      if (hrTimeToMilliseconds(timeFromConsume) < consumeTimeoutMs!) {\n        break;\n      }\n      this.endConsumerSpan(\n        currMessage.msg,\n        null,\n        EndOperation.InstrumentationTimeout,\n        true\n      );\n    }\n    spansNotEnded.splice(0, i);\n  }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport { AmqplibInstrumentation } from './amqplib';\nexport { DEFAULT_CONFIG, EndOperation } from './types';\nexport type {\n  AmqplibConsumeCustomAttributeFunction,\n  AmqplibConsumeEndCustomAttributeFunction,\n  AmqplibInstrumentationConfig,\n  AmqplibPublishConfirmCustomAttributeFunction,\n  AmqplibPublishCustomAttributeFunction,\n  AmqplibPublishOptions,\n  CommonMessageFields,\n  ConsumeEndInfo,\n  ConsumeInfo,\n  ConsumeMessage,\n  ConsumeMessageFields,\n  Message,\n  MessageFields,\n  MessageProperties,\n  PublishConfirmedInfo,\n  PublishInfo,\n} from './types';\n","import type { Span } from '@opentelemetry/api';\nimport { AmqplibInstrumentation, type AmqplibInstrumentationConfig } from '@opentelemetry/instrumentation-amqplib';\nimport type { IntegrationFn } from '@sentry/core';\nimport { defineIntegration } from '@sentry/core';\nimport { addOriginToSpan, generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Amqplib';\n\nconst config: AmqplibInstrumentationConfig = {\n  consumeEndHook: (span: Span) => {\n    addOriginToSpan(span, 'auto.amqplib.otel.consumer');\n  },\n  publishHook: (span: Span) => {\n    addOriginToSpan(span, 'auto.amqplib.otel.publisher');\n  },\n};\n\nexport const instrumentAmqplib = generateInstrumentOnce(INTEGRATION_NAME, () => new AmqplibInstrumentation(config));\n\nconst _amqplibIntegration = (() => {\n  return {\n    name: INTEGRATION_NAME,\n    setupOnce() {\n      instrumentAmqplib();\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for the [amqplib](https://www.npmjs.com/package/amqplib) library.\n *\n * For more information, see the [`amqplibIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/amqplib/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n *  integrations: [Sentry.amqplibIntegration()],\n * });\n * ```\n */\nexport const amqplibIntegration = defineIntegration(_amqplibIntegration);\n","export const INTEGRATION_NAME = 'VercelAI';\n","import type { InstrumentationConfig, InstrumentationModuleDefinition } from '@opentelemetry/instrumentation';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport {\n  _INTERNAL_cleanupToolCallSpanContext,\n  _INTERNAL_getSpanContextForToolCallId,\n  addNonEnumerableProperty,\n  captureException,\n  getActiveSpan,\n  getClient,\n  handleCallbackErrors,\n  SDK_VERSION,\n  withScope,\n} from '@sentry/core';\nimport { INTEGRATION_NAME } from './constants';\nimport type { TelemetrySettings, VercelAiIntegration } from './types';\n\nconst SUPPORTED_VERSIONS = ['>=3.0.0 <7'];\n\n// List of patched methods\n// From: https://sdk.vercel.ai/docs/ai-sdk-core/telemetry#collected-data\nconst INSTRUMENTED_METHODS = [\n  'generateText',\n  'streamText',\n  'generateObject',\n  'streamObject',\n  'embed',\n  'embedMany',\n  'rerank',\n] as const;\n\ninterface MethodFirstArg extends Record {\n  experimental_telemetry?: TelemetrySettings;\n}\n\ntype MethodArgs = [MethodFirstArg, ...unknown[]];\n\ntype PatchedModuleExports = Record<(typeof INSTRUMENTED_METHODS)[number], (...args: MethodArgs) => unknown> &\n  Record;\n\ninterface RecordingOptions {\n  recordInputs?: boolean;\n  recordOutputs?: boolean;\n}\n\ninterface ToolError {\n  type: 'tool-error' | 'tool-result' | 'tool-call';\n  toolCallId: string;\n  toolName: string;\n  input?: {\n    [key: string]: unknown;\n  };\n  error: Error;\n  dynamic?: boolean;\n}\n\nfunction isToolError(obj: unknown): obj is ToolError {\n  if (typeof obj !== 'object' || obj === null) {\n    return false;\n  }\n\n  const candidate = obj as Record;\n  return (\n    'type' in candidate &&\n    'error' in candidate &&\n    'toolName' in candidate &&\n    'toolCallId' in candidate &&\n    candidate.type === 'tool-error' &&\n    candidate.error instanceof Error\n  );\n}\n\n/**\n * Process tool call results: capture tool errors and clean up span context mappings.\n *\n * Error checking runs first (needs span context for linking), then cleanup removes all entries.\n * Tool errors are not rejected in Vercel AI V5 — they appear as metadata in the result content.\n */\nexport function processToolCallResults(result: unknown): void {\n  if (typeof result !== 'object' || result === null || !('content' in result)) {\n    return;\n  }\n\n  const resultObj = result as { content: Array };\n  if (!Array.isArray(resultObj.content)) {\n    return;\n  }\n\n  captureToolErrors(resultObj.content);\n  cleanupToolCallSpanContexts(resultObj.content);\n}\n\nfunction captureToolErrors(content: Array): void {\n  for (const item of content) {\n    if (!isToolError(item)) {\n      continue;\n    }\n\n    // Try to get the span context associated with this tool call ID\n    const spanContext = _INTERNAL_getSpanContextForToolCallId(item.toolCallId);\n\n    if (spanContext) {\n      // We have the span context, so link the error using span and trace IDs\n      withScope(scope => {\n        scope.setContext('trace', {\n          trace_id: spanContext.traceId,\n          span_id: spanContext.spanId,\n        });\n\n        scope.setTag('vercel.ai.tool.name', item.toolName);\n        scope.setTag('vercel.ai.tool.callId', item.toolCallId);\n        scope.setLevel('error');\n\n        captureException(item.error, {\n          mechanism: {\n            type: 'auto.vercelai.otel',\n            handled: false,\n          },\n        });\n      });\n    } else {\n      // Fallback: capture without span linking\n      withScope(scope => {\n        scope.setTag('vercel.ai.tool.name', item.toolName);\n        scope.setTag('vercel.ai.tool.callId', item.toolCallId);\n        scope.setLevel('error');\n\n        captureException(item.error, {\n          mechanism: {\n            type: 'auto.vercelai.otel',\n            handled: false,\n          },\n        });\n      });\n    }\n  }\n}\n\n/**\n * Remove span context entries for all completed tool calls in the content array.\n */\nexport function cleanupToolCallSpanContexts(content: Array): void {\n  for (const item of content) {\n    if (\n      typeof item === 'object' &&\n      item !== null &&\n      'toolCallId' in item &&\n      typeof (item as Record).toolCallId === 'string'\n    ) {\n      _INTERNAL_cleanupToolCallSpanContext((item as Record).toolCallId as string);\n    }\n  }\n}\n\n/**\n * Determines whether to record inputs and outputs for Vercel AI telemetry based on the configuration hierarchy.\n *\n * The order of precedence is:\n * 1. The vercel ai integration options\n * 2. The experimental_telemetry options in the vercel ai method calls\n * 3. When telemetry is explicitly enabled (isEnabled: true), default to recording\n * 4. Otherwise, use the sendDefaultPii option from client options\n */\nexport function determineRecordingSettings(\n  integrationRecordingOptions: RecordingOptions | undefined,\n  methodTelemetryOptions: RecordingOptions,\n  telemetryExplicitlyEnabled: boolean | undefined,\n  defaultRecordingEnabled: boolean,\n): { recordInputs: boolean; recordOutputs: boolean } {\n  const recordInputs =\n    integrationRecordingOptions?.recordInputs !== undefined\n      ? integrationRecordingOptions.recordInputs\n      : methodTelemetryOptions.recordInputs !== undefined\n        ? methodTelemetryOptions.recordInputs\n        : telemetryExplicitlyEnabled === true\n          ? true // When telemetry is explicitly enabled, default to recording inputs\n          : defaultRecordingEnabled;\n\n  const recordOutputs =\n    integrationRecordingOptions?.recordOutputs !== undefined\n      ? integrationRecordingOptions.recordOutputs\n      : methodTelemetryOptions.recordOutputs !== undefined\n        ? methodTelemetryOptions.recordOutputs\n        : telemetryExplicitlyEnabled === true\n          ? true // When telemetry is explicitly enabled, default to recording inputs\n          : defaultRecordingEnabled;\n\n  return { recordInputs, recordOutputs };\n}\n\n/**\n * This detects is added by the Sentry Vercel AI Integration to detect if the integration should\n * be enabled.\n *\n * It also patches the `ai` module to enable Vercel AI telemetry automatically for all methods.\n */\nexport class SentryVercelAiInstrumentation extends InstrumentationBase {\n  private _isPatched = false;\n  private _callbacks: (() => void)[] = [];\n\n  public constructor(config: InstrumentationConfig = {}) {\n    super('@sentry/instrumentation-vercel-ai', SDK_VERSION, config);\n  }\n\n  /**\n   * Initializes the instrumentation by defining the modules to be patched.\n   */\n  public init(): InstrumentationModuleDefinition {\n    const module = new InstrumentationNodeModuleDefinition('ai', SUPPORTED_VERSIONS, this._patch.bind(this));\n    return module;\n  }\n\n  /**\n   * Call the provided callback when the module is patched.\n   * If it has already been patched, the callback will be called immediately.\n   */\n  public callWhenPatched(callback: () => void): void {\n    if (this._isPatched) {\n      callback();\n    } else {\n      this._callbacks.push(callback);\n    }\n  }\n\n  /**\n   * Patches module exports to enable Vercel AI telemetry.\n   */\n  private _patch(moduleExports: PatchedModuleExports): unknown {\n    this._isPatched = true;\n\n    this._callbacks.forEach(callback => callback());\n    this._callbacks = [];\n\n    const generatePatch =  unknown>(originalMethod: T): T => {\n      return new Proxy(originalMethod, {\n        apply: (target, thisArg, args: MethodArgs) => {\n          const existingExperimentalTelemetry = args[0].experimental_telemetry || {};\n          const isEnabled = existingExperimentalTelemetry.isEnabled;\n\n          const client = getClient();\n          const integration = client?.getIntegrationByName(INTEGRATION_NAME);\n          const integrationOptions = integration?.options;\n          const shouldRecordInputsAndOutputs = integration ? Boolean(client?.getOptions().sendDefaultPii) : false;\n\n          const { recordInputs, recordOutputs } = determineRecordingSettings(\n            integrationOptions,\n            existingExperimentalTelemetry,\n            isEnabled,\n            shouldRecordInputsAndOutputs,\n          );\n\n          args[0].experimental_telemetry = {\n            ...existingExperimentalTelemetry,\n            isEnabled: isEnabled !== undefined ? isEnabled : true,\n            recordInputs,\n            recordOutputs,\n          };\n\n          return handleCallbackErrors(\n            () => Reflect.apply(target, thisArg, args),\n            error => {\n              // This error bubbles up to unhandledrejection handler (if not handled before),\n              // where we do not know the active span anymore\n              // So to circumvent this, we set the active span on the error object\n              // which is picked up by the unhandledrejection handler\n              if (error && typeof error === 'object') {\n                addNonEnumerableProperty(error, '_sentry_active_span', getActiveSpan());\n              }\n            },\n            () => {},\n            result => {\n              processToolCallResults(result);\n            },\n          );\n        },\n      });\n    };\n\n    // Is this an ESM module?\n    // https://tc39.es/ecma262/#sec-module-namespace-objects\n    if (Object.prototype.toString.call(moduleExports) === '[object Module]') {\n      // In ESM we take the usual route and just replace the exports we want to instrument\n      for (const method of INSTRUMENTED_METHODS) {\n        // Skip methods that don't exist in this version of the AI SDK (e.g., rerank was added in v6)\n        if (moduleExports[method] != null) {\n          moduleExports[method] = generatePatch(moduleExports[method]);\n        }\n      }\n\n      return moduleExports;\n    } else {\n      // In CJS we can't replace the exports in the original module because they\n      // don't have setters, so we create a new object with the same properties\n      const patchedModuleExports = INSTRUMENTED_METHODS.reduce((acc, curr) => {\n        // Skip methods that don't exist in this version of the AI SDK (e.g., rerank was added in v6)\n        if (moduleExports[curr] != null) {\n          acc[curr] = generatePatch(moduleExports[curr]);\n        }\n        return acc;\n      }, {} as PatchedModuleExports);\n\n      return { ...moduleExports, ...patchedModuleExports };\n    }\n  }\n}\n","import type { Client, IntegrationFn } from '@sentry/core';\nimport { addVercelAiProcessors, defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce, type modulesIntegration } from '@sentry/node-core';\nimport { INTEGRATION_NAME } from './constants';\nimport { SentryVercelAiInstrumentation } from './instrumentation';\nimport type { VercelAiOptions } from './types';\n\nexport const instrumentVercelAi = generateInstrumentOnce(INTEGRATION_NAME, () => new SentryVercelAiInstrumentation({}));\n\n/**\n * Determines if the integration should be forced based on environment and package availability.\n * Returns true if the 'ai' package is available.\n */\nfunction shouldForceIntegration(client: Client): boolean {\n  const modules = client.getIntegrationByName>('Modules');\n  return !!modules?.getModules?.()?.ai;\n}\n\nconst _vercelAIIntegration = ((options: VercelAiOptions = {}) => {\n  let instrumentation: undefined | SentryVercelAiInstrumentation;\n\n  return {\n    name: INTEGRATION_NAME,\n    options,\n    setupOnce() {\n      instrumentation = instrumentVercelAi();\n    },\n    afterAllSetup(client) {\n      // Auto-detect if we should force the integration when running with 'ai' package available\n      // Note that this can only be detected if the 'Modules' integration is available, and running in CJS mode\n      const shouldForce = options.force ?? shouldForceIntegration(client);\n\n      if (shouldForce) {\n        addVercelAiProcessors(client);\n      } else {\n        instrumentation?.callWhenPatched(() => addVercelAiProcessors(client));\n      }\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for the [ai](https://www.npmjs.com/package/ai) library.\n * This integration is not enabled by default, you need to manually add it.\n *\n * For more information, see the [`ai` documentation](https://sdk.vercel.ai/docs/ai-sdk-core/telemetry).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n *  integrations: [Sentry.vercelAIIntegration()],\n * });\n * ```\n *\n * This integration adds tracing support to all `ai` function calls.\n * You need to opt-in to collecting spans for a specific call,\n * you can do so by setting `experimental_telemetry.isEnabled` to `true` in the first argument of the function call.\n *\n * ```javascript\n * const result = await generateText({\n *   model: openai('gpt-4-turbo'),\n *   experimental_telemetry: { isEnabled: true },\n * });\n * ```\n *\n * If you want to collect inputs and outputs for a specific call, you must specifically opt-in to each\n * function call by setting `experimental_telemetry.recordInputs` and `experimental_telemetry.recordOutputs`\n * to `true`.\n *\n * ```javascript\n * const result = await generateText({\n *  model: openai('gpt-4-turbo'),\n *  experimental_telemetry: { isEnabled: true, recordInputs: true, recordOutputs: true },\n * });\n */\nexport const vercelAIIntegration = defineIntegration(_vercelAIIntegration);\n","import {\n  InstrumentationBase,\n  type InstrumentationConfig,\n  type InstrumentationModuleDefinition,\n  InstrumentationNodeModuleDefinition,\n} from '@opentelemetry/instrumentation';\nimport type { Integration, OpenAiClient, OpenAiOptions } from '@sentry/core';\nimport {\n  _INTERNAL_shouldSkipAiProviderWrapping,\n  instrumentOpenAiClient,\n  OPENAI_INTEGRATION_NAME,\n  SDK_VERSION,\n} from '@sentry/core';\n\nconst supportedVersions = ['>=4.0.0 <7'];\n\nexport interface OpenAiIntegration extends Integration {\n  options: OpenAiOptions;\n}\n\ntype OpenAiInstrumentationOptions = InstrumentationConfig & OpenAiOptions;\n\n/**\n * Represents the patched shape of the OpenAI module export.\n */\ninterface PatchedModuleExports {\n  [key: string]: unknown;\n  OpenAI: abstract new (...args: unknown[]) => OpenAiClient;\n  AzureOpenAI?: abstract new (...args: unknown[]) => OpenAiClient;\n}\n\n/**\n * Sentry OpenAI instrumentation using OpenTelemetry.\n */\nexport class SentryOpenAiInstrumentation extends InstrumentationBase {\n  public constructor(config: OpenAiInstrumentationOptions = {}) {\n    super('@sentry/instrumentation-openai', SDK_VERSION, config);\n  }\n\n  /**\n   * Initializes the instrumentation by defining the modules to be patched.\n   */\n  public init(): InstrumentationModuleDefinition {\n    const module = new InstrumentationNodeModuleDefinition('openai', supportedVersions, this._patch.bind(this));\n    return module;\n  }\n\n  /**\n   * Core patch logic applying instrumentation to the OpenAI and AzureOpenAI client constructors.\n   */\n  private _patch(exports: PatchedModuleExports): PatchedModuleExports | void {\n    let result = exports;\n    result = this._patchClient(result, 'OpenAI');\n    result = this._patchClient(result, 'AzureOpenAI');\n    return result;\n  }\n\n  /**\n   * Patch logic applying instrumentation to the specified client constructor.\n   */\n  private _patchClient(exports: PatchedModuleExports, exportKey: 'OpenAI' | 'AzureOpenAI'): PatchedModuleExports {\n    const Original = exports[exportKey];\n    if (!Original) {\n      return exports;\n    }\n\n    const config = this.getConfig();\n\n    const WrappedOpenAI = function (this: unknown, ...args: unknown[]) {\n      // Check if wrapping should be skipped (e.g., when LangChain is handling instrumentation)\n      if (_INTERNAL_shouldSkipAiProviderWrapping(OPENAI_INTEGRATION_NAME)) {\n        return Reflect.construct(Original, args) as OpenAiClient;\n      }\n\n      const instance = Reflect.construct(Original, args);\n\n      return instrumentOpenAiClient(instance as OpenAiClient, config);\n    } as unknown as abstract new (...args: unknown[]) => OpenAiClient;\n\n    // Preserve static and prototype chains\n    Object.setPrototypeOf(WrappedOpenAI, Original);\n    Object.setPrototypeOf(WrappedOpenAI.prototype, Original.prototype);\n\n    for (const key of Object.getOwnPropertyNames(Original)) {\n      if (!['length', 'name', 'prototype'].includes(key)) {\n        const descriptor = Object.getOwnPropertyDescriptor(Original, key);\n        if (descriptor) {\n          Object.defineProperty(WrappedOpenAI, key, descriptor);\n        }\n      }\n    }\n\n    // Constructor replacement - handle read-only properties\n    // The OpenAI property might have only a getter, so use defineProperty\n    try {\n      exports[exportKey] = WrappedOpenAI;\n    } catch {\n      // If direct assignment fails, override the property descriptor\n      Object.defineProperty(exports, exportKey, {\n        value: WrappedOpenAI,\n        writable: true,\n        configurable: true,\n        enumerable: true,\n      });\n    }\n\n    // Wrap the default export if it points to the original constructor\n    // Constructor replacement - handle read-only properties\n    // The OpenAI property might have only a getter, so use defineProperty\n    if (exports.default === Original) {\n      try {\n        exports.default = WrappedOpenAI;\n      } catch {\n        // If direct assignment fails, override the property descriptor\n        Object.defineProperty(exports, 'default', {\n          value: WrappedOpenAI,\n          writable: true,\n          configurable: true,\n          enumerable: true,\n        });\n      }\n    }\n    return exports;\n  }\n}\n","import type { IntegrationFn, OpenAiOptions } from '@sentry/core';\nimport { defineIntegration, OPENAI_INTEGRATION_NAME } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { SentryOpenAiInstrumentation } from './instrumentation';\n\nexport const instrumentOpenAi = generateInstrumentOnce(\n  OPENAI_INTEGRATION_NAME,\n  options => new SentryOpenAiInstrumentation(options),\n);\n\nconst _openAiIntegration = ((options: OpenAiOptions = {}) => {\n  return {\n    name: OPENAI_INTEGRATION_NAME,\n    setupOnce() {\n      instrumentOpenAi(options);\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for the OpenAI SDK.\n *\n * This integration is enabled by default.\n *\n * When configured, this integration automatically instruments OpenAI SDK client instances\n * to capture telemetry data following OpenTelemetry Semantic Conventions for Generative AI.\n *\n * @example\n * ```javascript\n * import * as Sentry from '@sentry/node';\n *\n * Sentry.init({\n *   integrations: [Sentry.openAIIntegration()],\n * });\n * ```\n *\n * ## Options\n *\n * - `recordInputs`: Whether to record prompt messages (default: respects `sendDefaultPii` client option)\n * - `recordOutputs`: Whether to record response text (default: respects `sendDefaultPii` client option)\n *\n * ### Default Behavior\n *\n * By default, the integration will:\n * - Record inputs and outputs ONLY if `sendDefaultPii` is set to `true` in your Sentry client options\n * - Otherwise, inputs and outputs are NOT recorded unless explicitly enabled\n *\n * @example\n * ```javascript\n * // Record inputs and outputs when sendDefaultPii is false\n * Sentry.init({\n *   integrations: [\n *     Sentry.openAIIntegration({\n *       recordInputs: true,\n *       recordOutputs: true\n *     })\n *   ],\n * });\n *\n * // Never record inputs/outputs regardless of sendDefaultPii\n * Sentry.init({\n *   sendDefaultPii: true,\n *   integrations: [\n *     Sentry.openAIIntegration({\n *       recordInputs: false,\n *       recordOutputs: false\n *     })\n *   ],\n * });\n * ```\n *\n */\nexport const openAIIntegration = defineIntegration(_openAiIntegration);\n","import {\n  InstrumentationBase,\n  type InstrumentationConfig,\n  type InstrumentationModuleDefinition,\n  InstrumentationNodeModuleDefinition,\n} from '@opentelemetry/instrumentation';\nimport type { AnthropicAiClient, AnthropicAiOptions } from '@sentry/core';\nimport {\n  _INTERNAL_shouldSkipAiProviderWrapping,\n  ANTHROPIC_AI_INTEGRATION_NAME,\n  instrumentAnthropicAiClient,\n  SDK_VERSION,\n} from '@sentry/core';\n\nconst supportedVersions = ['>=0.19.2 <1.0.0'];\n\ntype AnthropicAiInstrumentationOptions = InstrumentationConfig & AnthropicAiOptions;\n\n/**\n * Represents the patched shape of the Anthropic AI module export.\n */\ninterface PatchedModuleExports {\n  [key: string]: unknown;\n  Anthropic: abstract new (...args: unknown[]) => AnthropicAiClient;\n}\n\n/**\n * Sentry Anthropic AI instrumentation using OpenTelemetry.\n */\nexport class SentryAnthropicAiInstrumentation extends InstrumentationBase {\n  public constructor(config: AnthropicAiInstrumentationOptions = {}) {\n    super('@sentry/instrumentation-anthropic-ai', SDK_VERSION, config);\n  }\n\n  /**\n   * Initializes the instrumentation by defining the modules to be patched.\n   */\n  public init(): InstrumentationModuleDefinition {\n    const module = new InstrumentationNodeModuleDefinition(\n      '@anthropic-ai/sdk',\n      supportedVersions,\n      this._patch.bind(this),\n    );\n    return module;\n  }\n\n  /**\n   * Core patch logic applying instrumentation to the Anthropic AI client constructor.\n   */\n  private _patch(exports: PatchedModuleExports): PatchedModuleExports | void {\n    const Original = exports.Anthropic;\n\n    const config = this.getConfig();\n\n    const WrappedAnthropic = function (this: unknown, ...args: unknown[]) {\n      // Check if wrapping should be skipped (e.g., when LangChain is handling instrumentation)\n      if (_INTERNAL_shouldSkipAiProviderWrapping(ANTHROPIC_AI_INTEGRATION_NAME)) {\n        return Reflect.construct(Original, args) as AnthropicAiClient;\n      }\n\n      const instance = Reflect.construct(Original, args);\n\n      return instrumentAnthropicAiClient(instance as AnthropicAiClient, config);\n    } as unknown as abstract new (...args: unknown[]) => AnthropicAiClient;\n\n    // Preserve static and prototype chains\n    Object.setPrototypeOf(WrappedAnthropic, Original);\n    Object.setPrototypeOf(WrappedAnthropic.prototype, Original.prototype);\n\n    for (const key of Object.getOwnPropertyNames(Original)) {\n      if (!['length', 'name', 'prototype'].includes(key)) {\n        const descriptor = Object.getOwnPropertyDescriptor(Original, key);\n        if (descriptor) {\n          Object.defineProperty(WrappedAnthropic, key, descriptor);\n        }\n      }\n    }\n\n    // Constructor replacement - handle read-only properties\n    // The Anthropic property might have only a getter, so use defineProperty\n    try {\n      exports.Anthropic = WrappedAnthropic;\n    } catch {\n      // If direct assignment fails, override the property descriptor\n      Object.defineProperty(exports, 'Anthropic', {\n        value: WrappedAnthropic,\n        writable: true,\n        configurable: true,\n        enumerable: true,\n      });\n    }\n\n    // Wrap the default export if it points to the original constructor\n    // Constructor replacement - handle read-only properties\n    // The Anthropic property might have only a getter, so use defineProperty\n    if (exports.default === Original) {\n      try {\n        exports.default = WrappedAnthropic;\n      } catch {\n        // If direct assignment fails, override the property descriptor\n        Object.defineProperty(exports, 'default', {\n          value: WrappedAnthropic,\n          writable: true,\n          configurable: true,\n          enumerable: true,\n        });\n      }\n    }\n    return exports;\n  }\n}\n","import type { AnthropicAiOptions, IntegrationFn } from '@sentry/core';\nimport { ANTHROPIC_AI_INTEGRATION_NAME, defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { SentryAnthropicAiInstrumentation } from './instrumentation';\n\nexport const instrumentAnthropicAi = generateInstrumentOnce(\n  ANTHROPIC_AI_INTEGRATION_NAME,\n  options => new SentryAnthropicAiInstrumentation(options),\n);\n\nconst _anthropicAIIntegration = ((options: AnthropicAiOptions = {}) => {\n  return {\n    name: ANTHROPIC_AI_INTEGRATION_NAME,\n    options,\n    setupOnce() {\n      instrumentAnthropicAi(options);\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for the Anthropic AI SDK.\n *\n * This integration is enabled by default.\n *\n * When configured, this integration automatically instruments Anthropic AI SDK client instances\n * to capture telemetry data following OpenTelemetry Semantic Conventions for Generative AI.\n *\n * @example\n * ```javascript\n * import * as Sentry from '@sentry/node';\n *\n * Sentry.init({\n *   integrations: [Sentry.anthropicAIIntegration()],\n * });\n * ```\n *\n * ## Options\n *\n * - `recordInputs`: Whether to record prompt messages (default: respects `sendDefaultPii` client option)\n * - `recordOutputs`: Whether to record response text (default: respects `sendDefaultPii` client option)\n *\n * ### Default Behavior\n *\n * By default, the integration will:\n * - Record inputs and outputs ONLY if `sendDefaultPii` is set to `true` in your Sentry client options\n * - Otherwise, inputs and outputs are NOT recorded unless explicitly enabled\n *\n * @example\n * ```javascript\n * // Record inputs and outputs when sendDefaultPii is false\n * Sentry.init({\n *   integrations: [\n *     Sentry.anthropicAIIntegration({\n *       recordInputs: true,\n *       recordOutputs: true\n *     })\n *   ],\n * });\n *\n * // Never record inputs/outputs regardless of sendDefaultPii\n * Sentry.init({\n *   sendDefaultPii: true,\n *   integrations: [\n *     Sentry.anthropicAIIntegration({\n *       recordInputs: false,\n *       recordOutputs: false\n *     })\n *   ],\n * });\n * ```\n *\n */\nexport const anthropicAIIntegration = defineIntegration(_anthropicAIIntegration);\n","import type { InstrumentationConfig, InstrumentationModuleDefinition } from '@opentelemetry/instrumentation';\nimport {\n  InstrumentationBase,\n  InstrumentationNodeModuleDefinition,\n  InstrumentationNodeModuleFile,\n} from '@opentelemetry/instrumentation';\nimport type { GoogleGenAIClient, GoogleGenAIOptions } from '@sentry/core';\nimport {\n  _INTERNAL_shouldSkipAiProviderWrapping,\n  GOOGLE_GENAI_INTEGRATION_NAME,\n  instrumentGoogleGenAIClient,\n  replaceExports,\n  SDK_VERSION,\n} from '@sentry/core';\n\nconst supportedVersions = ['>=0.10.0 <2'];\n\n/**\n * Represents the patched shape of the Google GenAI module export.\n */\ninterface PatchedModuleExports {\n  [key: string]: unknown;\n  GoogleGenAI?: unknown;\n}\n\ntype GoogleGenAIInstrumentationOptions = GoogleGenAIOptions & InstrumentationConfig;\n\n/**\n * Sentry Google GenAI instrumentation using OpenTelemetry.\n */\nexport class SentryGoogleGenAiInstrumentation extends InstrumentationBase {\n  public constructor(config: GoogleGenAIInstrumentationOptions = {}) {\n    super('@sentry/instrumentation-google-genai', SDK_VERSION, config);\n  }\n\n  /**\n   * Initializes the instrumentation by defining the modules to be patched.\n   */\n  public init(): InstrumentationModuleDefinition {\n    const module = new InstrumentationNodeModuleDefinition(\n      '@google/genai',\n      supportedVersions,\n      exports => this._patch(exports),\n      exports => exports,\n      // In CJS, @google/genai re-exports from (dist/node/index.cjs) file.\n      // Patching only the root module sometimes misses the real implementation or\n      // gets overwritten when that file is loaded. We add a file-level patch so that\n      // _patch runs again on the concrete implementation\n      [\n        new InstrumentationNodeModuleFile(\n          '@google/genai/dist/node/index.cjs',\n          supportedVersions,\n          exports => this._patch(exports),\n          exports => exports,\n        ),\n      ],\n    );\n    return module;\n  }\n\n  /**\n   * Core patch logic applying instrumentation to the Google GenAI client constructor.\n   */\n  private _patch(exports: PatchedModuleExports): PatchedModuleExports | void {\n    const Original = exports.GoogleGenAI;\n    const config = this.getConfig();\n\n    if (typeof Original !== 'function') {\n      return exports;\n    }\n\n    const WrappedGoogleGenAI = function (this: unknown, ...args: unknown[]): GoogleGenAIClient {\n      // Check if wrapping should be skipped (e.g., when LangChain is handling instrumentation)\n      if (_INTERNAL_shouldSkipAiProviderWrapping(GOOGLE_GENAI_INTEGRATION_NAME)) {\n        return Reflect.construct(Original, args) as GoogleGenAIClient;\n      }\n\n      const instance = Reflect.construct(Original, args);\n\n      return instrumentGoogleGenAIClient(instance, config);\n    };\n\n    // Preserve static and prototype chains\n    Object.setPrototypeOf(WrappedGoogleGenAI, Original);\n    Object.setPrototypeOf(WrappedGoogleGenAI.prototype, Original.prototype);\n\n    for (const key of Object.getOwnPropertyNames(Original)) {\n      if (!['length', 'name', 'prototype'].includes(key)) {\n        const descriptor = Object.getOwnPropertyDescriptor(Original, key);\n        if (descriptor) {\n          Object.defineProperty(WrappedGoogleGenAI, key, descriptor);\n        }\n      }\n    }\n\n    // Replace google genai exports with the wrapped constructor\n    replaceExports(exports, 'GoogleGenAI', WrappedGoogleGenAI);\n\n    return exports;\n  }\n}\n","import type { GoogleGenAIOptions, IntegrationFn } from '@sentry/core';\nimport { defineIntegration, GOOGLE_GENAI_INTEGRATION_NAME } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { SentryGoogleGenAiInstrumentation } from './instrumentation';\n\nexport const instrumentGoogleGenAI = generateInstrumentOnce(\n  GOOGLE_GENAI_INTEGRATION_NAME,\n  options => new SentryGoogleGenAiInstrumentation(options),\n);\n\nconst _googleGenAIIntegration = ((options: GoogleGenAIOptions = {}) => {\n  return {\n    name: GOOGLE_GENAI_INTEGRATION_NAME,\n    setupOnce() {\n      instrumentGoogleGenAI(options);\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for the Google Generative AI SDK.\n *\n * This integration is enabled by default.\n *\n * When configured, this integration automatically instruments Google GenAI SDK client instances\n * to capture telemetry data following OpenTelemetry Semantic Conventions for Generative AI.\n *\n * @example\n * ```javascript\n * import * as Sentry from '@sentry/node';\n *\n * Sentry.init({\n *   integrations: [Sentry.googleGenAiIntegration()],\n * });\n * ```\n *\n * ## Options\n *\n * - `recordInputs`: Whether to record prompt messages (default: respects `sendDefaultPii` client option)\n * - `recordOutputs`: Whether to record response text (default: respects `sendDefaultPii` client option)\n *\n * ### Default Behavior\n *\n * By default, the integration will:\n * - Record inputs and outputs ONLY if `sendDefaultPii` is set to `true` in your Sentry client options\n * - Otherwise, inputs and outputs are NOT recorded unless explicitly enabled\n *\n * @example\n * ```javascript\n * // Record inputs and outputs when sendDefaultPii is false\n * Sentry.init({\n *   integrations: [\n *     Sentry.googleGenAiIntegration({\n *       recordInputs: true,\n *       recordOutputs: true\n *     })\n *   ],\n * });\n *\n * // Never record inputs/outputs regardless of sendDefaultPii\n * Sentry.init({\n *   sendDefaultPii: true,\n *   integrations: [\n *     Sentry.googleGenAiIntegration({\n *       recordInputs: false,\n *       recordOutputs: false\n *     })\n *   ],\n * });\n * ```\n *\n */\nexport const googleGenAIIntegration = defineIntegration(_googleGenAIIntegration);\n","import {\n  InstrumentationBase,\n  type InstrumentationConfig,\n  type InstrumentationModuleDefinition,\n  InstrumentationNodeModuleDefinition,\n  InstrumentationNodeModuleFile,\n} from '@opentelemetry/instrumentation';\nimport type { LangChainOptions } from '@sentry/core';\nimport {\n  _INTERNAL_skipAiProviderWrapping,\n  ANTHROPIC_AI_INTEGRATION_NAME,\n  createLangChainCallbackHandler,\n  GOOGLE_GENAI_INTEGRATION_NAME,\n  OPENAI_INTEGRATION_NAME,\n  SDK_VERSION,\n} from '@sentry/core';\n\nconst supportedVersions = ['>=0.1.0 <2.0.0'];\n\ntype LangChainInstrumentationOptions = InstrumentationConfig & LangChainOptions;\n\n/**\n * Represents the patched shape of LangChain provider package exports\n */\ninterface PatchedLangChainExports {\n  [key: string]: unknown;\n}\n\n/**\n * Augments a callback handler list with Sentry's handler if not already present\n */\nfunction augmentCallbackHandlers(handlers: unknown, sentryHandler: unknown): unknown {\n  // Handle null/undefined - return array with just our handler\n  if (!handlers) {\n    return [sentryHandler];\n  }\n\n  // If handlers is already an array\n  if (Array.isArray(handlers)) {\n    // Check if our handler is already in the list\n    if (handlers.includes(sentryHandler)) {\n      return handlers;\n    }\n    // Add our handler to the list\n    return [...handlers, sentryHandler];\n  }\n\n  // If it's a single handler object, convert to array\n  if (typeof handlers === 'object') {\n    return [handlers, sentryHandler];\n  }\n\n  // Unknown type - return original\n  return handlers;\n}\n\n/**\n * Wraps Runnable methods (invoke, stream, batch) to inject Sentry callbacks at request time\n * Uses a Proxy to intercept method calls and augment the options.callbacks\n */\nfunction wrapRunnableMethod(\n  originalMethod: (...args: unknown[]) => unknown,\n  sentryHandler: unknown,\n  _methodName: string,\n): (...args: unknown[]) => unknown {\n  return new Proxy(originalMethod, {\n    apply(target, thisArg, args: unknown[]): unknown {\n      // LangChain Runnable method signatures:\n      // invoke(input, options?) - options contains callbacks\n      // stream(input, options?) - options contains callbacks\n      // batch(inputs, options?) - options contains callbacks\n\n      // Options is typically the second argument\n      const optionsIndex = 1;\n      let options = args[optionsIndex] as Record | undefined;\n\n      // If options don't exist or aren't an object, create them\n      if (!options || typeof options !== 'object' || Array.isArray(options)) {\n        options = {};\n        args[optionsIndex] = options;\n      }\n\n      // Inject our callback handler into options.callbacks (request time callbacks)\n      const existingCallbacks = options.callbacks;\n      const augmentedCallbacks = augmentCallbackHandlers(existingCallbacks, sentryHandler);\n      options.callbacks = augmentedCallbacks;\n\n      // Call original method with augmented options\n      return Reflect.apply(target, thisArg, args);\n    },\n  }) as (...args: unknown[]) => unknown;\n}\n\n/**\n * Sentry LangChain instrumentation using OpenTelemetry.\n */\nexport class SentryLangChainInstrumentation extends InstrumentationBase {\n  public constructor(config: LangChainInstrumentationOptions = {}) {\n    super('@sentry/instrumentation-langchain', SDK_VERSION, config);\n  }\n\n  /**\n   * Initializes the instrumentation by defining the modules to be patched.\n   * We patch the BaseChatModel class methods to inject callbacks\n   *\n   * We hook into provider packages (@langchain/anthropic, @langchain/openai, etc.)\n   * because @langchain/core is often bundled and not loaded as a separate module\n   */\n  public init(): InstrumentationModuleDefinition | InstrumentationModuleDefinition[] {\n    const modules: InstrumentationModuleDefinition[] = [];\n\n    // Hook into common LangChain provider packages\n    const providerPackages = [\n      '@langchain/anthropic',\n      '@langchain/openai',\n      '@langchain/google-genai',\n      '@langchain/mistralai',\n      '@langchain/google-vertexai',\n      '@langchain/groq',\n    ];\n\n    for (const packageName of providerPackages) {\n      // In CJS, LangChain packages re-export from dist/index.cjs files.\n      // Patching only the root module sometimes misses the real implementation or\n      // gets overwritten when that file is loaded. We add a file-level patch so that\n      // _patch runs again on the concrete implementation\n      modules.push(\n        new InstrumentationNodeModuleDefinition(\n          packageName,\n          supportedVersions,\n          this._patch.bind(this),\n          exports => exports,\n          [\n            new InstrumentationNodeModuleFile(\n              `${packageName}/dist/index.cjs`,\n              supportedVersions,\n              this._patch.bind(this),\n              exports => exports,\n            ),\n          ],\n        ),\n      );\n    }\n\n    // Hook into main 'langchain' package to catch initChatModel (v1+)\n    modules.push(\n      new InstrumentationNodeModuleDefinition(\n        'langchain',\n        supportedVersions,\n        this._patch.bind(this),\n        exports => exports,\n        [\n          // To catch the CJS build that contains ConfigurableModel / initChatModel for v1\n          new InstrumentationNodeModuleFile(\n            'langchain/dist/chat_models/universal.cjs',\n            supportedVersions,\n            this._patch.bind(this),\n            exports => exports,\n          ),\n        ],\n      ),\n    );\n\n    return modules;\n  }\n\n  /**\n   * Core patch logic - patches chat model methods to inject Sentry callbacks\n   * This is called when a LangChain provider package is loaded\n   */\n  private _patch(exports: PatchedLangChainExports): PatchedLangChainExports | void {\n    // Skip AI provider wrapping now that LangChain is actually being used\n    // This prevents duplicate spans from Anthropic/OpenAI/GoogleGenAI standalone integrations\n    _INTERNAL_skipAiProviderWrapping([\n      OPENAI_INTEGRATION_NAME,\n      ANTHROPIC_AI_INTEGRATION_NAME,\n      GOOGLE_GENAI_INTEGRATION_NAME,\n    ]);\n\n    // Create a shared handler instance\n    const sentryHandler = createLangChainCallbackHandler(this.getConfig());\n\n    // Patch Runnable methods to inject callbacks at request time\n    // This directly manipulates options.callbacks that LangChain uses\n    this._patchRunnableMethods(exports, sentryHandler);\n\n    return exports;\n  }\n\n  /**\n   * Patches chat model methods (invoke, stream, batch) to inject Sentry callbacks\n   * Finds a chat model class from the provider package exports and patches its prototype methods\n   */\n  private _patchRunnableMethods(exports: PatchedLangChainExports, sentryHandler: unknown): void {\n    // Known chat model class names for each provider\n    const knownChatModelNames = [\n      'ChatAnthropic',\n      'ChatOpenAI',\n      'ChatGoogleGenerativeAI',\n      'ChatMistralAI',\n      'ChatVertexAI',\n      'ChatGroq',\n      'ConfigurableModel',\n    ];\n\n    const exportsToPatch = (exports.universal_exports ?? exports) as Record;\n\n    const chatModelClass = Object.values(exportsToPatch).find(exp => {\n      return typeof exp === 'function' && knownChatModelNames.includes(exp.name);\n    }) as { prototype: unknown; name: string } | undefined;\n\n    if (!chatModelClass) {\n      return;\n    }\n\n    // Patch directly on chatModelClass.prototype\n    const targetProto = chatModelClass.prototype as Record;\n\n    // Skip if already patched (both file-level and module-level hooks resolve to the same prototype)\n    if (targetProto.__sentry_patched__) {\n      return;\n    }\n    targetProto.__sentry_patched__ = true;\n\n    // Patch the methods (invoke, stream, batch)\n    // All chat model instances will inherit these patched methods\n    const methodsToPatch = ['invoke', 'stream', 'batch'] as const;\n\n    for (const methodName of methodsToPatch) {\n      const method = targetProto[methodName];\n      if (typeof method === 'function') {\n        targetProto[methodName] = wrapRunnableMethod(\n          method as (...args: unknown[]) => unknown,\n          sentryHandler,\n          methodName,\n        );\n      }\n    }\n  }\n}\n","import type { IntegrationFn, LangChainOptions } from '@sentry/core';\nimport { defineIntegration, LANGCHAIN_INTEGRATION_NAME } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { SentryLangChainInstrumentation } from './instrumentation';\n\nexport const instrumentLangChain = generateInstrumentOnce(\n  LANGCHAIN_INTEGRATION_NAME,\n  options => new SentryLangChainInstrumentation(options),\n);\n\nconst _langChainIntegration = ((options: LangChainOptions = {}) => {\n  return {\n    name: LANGCHAIN_INTEGRATION_NAME,\n    setupOnce() {\n      instrumentLangChain(options);\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for LangChain.\n *\n * This integration is enabled by default.\n *\n * When configured, this integration automatically instruments LangChain runnable instances\n * to capture telemetry data by injecting Sentry callback handlers into all LangChain calls.\n *\n * **Important:** This integration automatically skips wrapping the OpenAI, Anthropic, and Google GenAI\n * providers to prevent duplicate spans when using LangChain with these AI providers.\n * LangChain handles the instrumentation for all underlying AI providers.\n *\n * @example\n * ```javascript\n * import * as Sentry from '@sentry/node';\n * import { ChatOpenAI } from '@langchain/openai';\n *\n * Sentry.init({\n *   integrations: [Sentry.langChainIntegration()],\n *   sendDefaultPii: true, // Enable to record inputs/outputs\n * });\n *\n * // LangChain calls are automatically instrumented\n * const model = new ChatOpenAI();\n * await model.invoke(\"What is the capital of France?\");\n * ```\n *\n * ## Manual Callback Handler\n *\n * You can also manually add the Sentry callback handler alongside other callbacks:\n *\n * @example\n * ```javascript\n * import * as Sentry from '@sentry/node';\n * import { ChatOpenAI } from '@langchain/openai';\n *\n * const sentryHandler = Sentry.createLangChainCallbackHandler({\n *   recordInputs: true,\n *   recordOutputs: true\n * });\n *\n * const model = new ChatOpenAI();\n * await model.invoke(\n *   \"What is the capital of France?\",\n *   { callbacks: [sentryHandler, myOtherCallback] }\n * );\n * ```\n *\n * ## Options\n *\n * - `recordInputs`: Whether to record input messages/prompts (default: respects `sendDefaultPii` client option)\n * - `recordOutputs`: Whether to record response text (default: respects `sendDefaultPii` client option)\n *\n * ### Default Behavior\n *\n * By default, the integration will:\n * - Record inputs and outputs ONLY if `sendDefaultPii` is set to `true` in your Sentry client options\n * - Otherwise, inputs and outputs are NOT recorded unless explicitly enabled\n *\n * @example\n * ```javascript\n * // Record inputs and outputs when sendDefaultPii is false\n * Sentry.init({\n *   integrations: [\n *     Sentry.langChainIntegration({\n *       recordInputs: true,\n *       recordOutputs: true\n *     })\n *   ],\n * });\n *\n * // Never record inputs/outputs regardless of sendDefaultPii\n * Sentry.init({\n *   sendDefaultPii: true,\n *   integrations: [\n *     Sentry.langChainIntegration({\n *       recordInputs: false,\n *       recordOutputs: false\n *     })\n *   ],\n * });\n * ```\n *\n * ## Supported Events\n *\n * The integration captures the following LangChain lifecycle events:\n * - LLM/Chat Model: start, end, error\n * - Chain: start, end, error\n * - Tool: start, end, error\n *\n */\nexport const langChainIntegration = defineIntegration(_langChainIntegration);\n","import {\n  InstrumentationBase,\n  type InstrumentationConfig,\n  type InstrumentationModuleDefinition,\n  InstrumentationNodeModuleDefinition,\n  InstrumentationNodeModuleFile,\n} from '@opentelemetry/instrumentation';\nimport type { LangGraphOptions } from '@sentry/core';\nimport { instrumentLangGraph, SDK_VERSION } from '@sentry/core';\n\nconst supportedVersions = ['>=0.0.0 <2.0.0'];\n\ntype LangGraphInstrumentationOptions = InstrumentationConfig & LangGraphOptions;\n\n/**\n * Represents the patched shape of the LangGraph module export.\n */\ninterface PatchedModuleExports {\n  [key: string]: unknown;\n  StateGraph?: abstract new (...args: unknown[]) => unknown;\n}\n\n/**\n * Sentry LangGraph instrumentation using OpenTelemetry.\n */\nexport class SentryLangGraphInstrumentation extends InstrumentationBase {\n  public constructor(config: LangGraphInstrumentationOptions = {}) {\n    super('@sentry/instrumentation-langgraph', SDK_VERSION, config);\n  }\n\n  /**\n   * Initializes the instrumentation by defining the modules to be patched.\n   */\n  public init(): InstrumentationModuleDefinition {\n    const module = new InstrumentationNodeModuleDefinition(\n      '@langchain/langgraph',\n      supportedVersions,\n      this._patch.bind(this),\n      exports => exports,\n      [\n        new InstrumentationNodeModuleFile(\n          /**\n           * In CJS, LangGraph packages re-export from dist/index.cjs files.\n           * Patching only the root module sometimes misses the real implementation or\n           * gets overwritten when that file is loaded. We add a file-level patch so that\n           * _patch runs again on the concrete implementation\n           */\n          '@langchain/langgraph/dist/index.cjs',\n          supportedVersions,\n          this._patch.bind(this),\n          exports => exports,\n        ),\n      ],\n    );\n    return module;\n  }\n\n  /**\n   * Core patch logic applying instrumentation to the LangGraph module.\n   */\n  private _patch(exports: PatchedModuleExports): PatchedModuleExports | void {\n    // Patch StateGraph.compile to instrument both compile() and invoke()\n    if (exports.StateGraph && typeof exports.StateGraph === 'function') {\n      instrumentLangGraph(\n        exports.StateGraph.prototype as { compile: (...args: unknown[]) => unknown },\n        this.getConfig(),\n      );\n    }\n\n    return exports;\n  }\n}\n","import type { IntegrationFn, LangGraphOptions } from '@sentry/core';\nimport { defineIntegration, LANGGRAPH_INTEGRATION_NAME } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { SentryLangGraphInstrumentation } from './instrumentation';\n\nexport const instrumentLangGraph = generateInstrumentOnce(\n  LANGGRAPH_INTEGRATION_NAME,\n  options => new SentryLangGraphInstrumentation(options),\n);\n\nconst _langGraphIntegration = ((options: LangGraphOptions = {}) => {\n  return {\n    name: LANGGRAPH_INTEGRATION_NAME,\n    setupOnce() {\n      instrumentLangGraph(options);\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for LangGraph.\n *\n * This integration is enabled by default.\n *\n * When configured, this integration automatically instruments LangGraph StateGraph and compiled graph instances\n * to capture telemetry data following OpenTelemetry Semantic Conventions for Generative AI.\n *\n * @example\n * ```javascript\n * import * as Sentry from '@sentry/node';\n *\n * Sentry.init({\n *   integrations: [Sentry.langGraphIntegration()],\n * });\n * ```\n *\n * ## Options\n *\n * - `recordInputs`: Whether to record input messages (default: respects `sendDefaultPii` client option)\n * - `recordOutputs`: Whether to record response text (default: respects `sendDefaultPii` client option)\n *\n * ### Default Behavior\n *\n * By default, the integration will:\n * - Record inputs and outputs ONLY if `sendDefaultPii` is set to `true` in your Sentry client options\n * - Otherwise, inputs and outputs are NOT recorded unless explicitly enabled\n *\n * @example\n * ```javascript\n * // Record inputs and outputs when sendDefaultPii is false\n * Sentry.init({\n *   integrations: [\n *     Sentry.langGraphIntegration({\n *       recordInputs: true,\n *       recordOutputs: true\n *     })\n *   ],\n * });\n *\n * // Never record inputs/outputs regardless of sendDefaultPii\n * Sentry.init({\n *   sendDefaultPii: true,\n *   integrations: [\n *     Sentry.langGraphIntegration({\n *       recordInputs: false,\n *       recordOutputs: false\n *     })\n *   ],\n * });\n * ```\n *\n * ## Captured Operations\n *\n * The integration captures the following LangGraph operations:\n * - **Agent Creation** (`StateGraph.compile()`) - Creates a `gen_ai.create_agent` span\n * - **Agent Invocation** (`CompiledGraph.invoke()`) - Creates a `gen_ai.invoke_agent` span\n *\n * ## Captured Data\n *\n * When `recordInputs` and `recordOutputs` are enabled, the integration captures:\n * - Input messages from the graph state\n * - Output messages and LLM responses\n * - Tool calls made during agent execution\n * - Agent and graph names\n * - Available tools configured in the graph\n *\n */\nexport const langGraphIntegration = defineIntegration(_langGraphIntegration);\n","import { consoleSandbox, defineIntegration, isBrowser } from '@sentry/core';\n\n/**\n * This is a shim for the LaunchDarkly integration.\n * We need this in order to not throw runtime errors when accidentally importing this on the server through a meta framework like Next.js.\n */\nexport const launchDarklyIntegrationShim = defineIntegration((_options?: unknown) => {\n  if (!isBrowser()) {\n    consoleSandbox(() => {\n      // eslint-disable-next-line no-console\n      console.warn('The launchDarklyIntegration() can only be used in the browser.');\n    });\n  }\n\n  return {\n    name: 'LaunchDarkly',\n  };\n});\n\n/**\n * This is a shim for the LaunchDarkly flag used handler.\n */\nexport function buildLaunchDarklyFlagUsedHandlerShim(): unknown {\n  if (!isBrowser()) {\n    consoleSandbox(() => {\n      // eslint-disable-next-line no-console\n      console.warn('The buildLaunchDarklyFlagUsedHandler() can only be used in the browser.');\n    });\n  }\n\n  return {\n    name: 'sentry-flag-auditor',\n    type: 'flag-used',\n    synchronous: true,\n    method: () => null,\n  };\n}\n","import { consoleSandbox, defineIntegration, isBrowser } from '@sentry/core';\n\n/**\n * This is a shim for the OpenFeature integration.\n * We need this in order to not throw runtime errors when accidentally importing this on the server through a meta framework like Next.js.\n */\nexport const openFeatureIntegrationShim = defineIntegration((_options?: unknown) => {\n  if (!isBrowser()) {\n    consoleSandbox(() => {\n      // eslint-disable-next-line no-console\n      console.warn('The openFeatureIntegration() can only be used in the browser.');\n    });\n  }\n\n  return {\n    name: 'OpenFeature',\n  };\n});\n\n/**\n * This is a shim for the OpenFeature integration hook.\n */\nexport class OpenFeatureIntegrationHookShim {\n  /**\n   *\n   */\n  public constructor() {\n    if (!isBrowser()) {\n      consoleSandbox(() => {\n        // eslint-disable-next-line no-console\n        console.warn('The OpenFeatureIntegrationHook can only be used in the browser.');\n      });\n    }\n  }\n\n  /**\n   *\n   */\n  public after(): void {\n    // No-op\n  }\n\n  /**\n   *\n   */\n  public error(): void {\n    // No-op\n  }\n}\n","import { consoleSandbox, defineIntegration, isBrowser } from '@sentry/core';\n\n/**\n * This is a shim for the Statsig integration.\n * We need this in order to not throw runtime errors when accidentally importing this on the server through a meta framework like Next.js.\n */\nexport const statsigIntegrationShim = defineIntegration((_options?: unknown) => {\n  if (!isBrowser()) {\n    consoleSandbox(() => {\n      // eslint-disable-next-line no-console\n      console.warn('The statsigIntegration() can only be used in the browser.');\n    });\n  }\n\n  return {\n    name: 'Statsig',\n  };\n});\n","import { consoleSandbox, defineIntegration, isBrowser } from '@sentry/core';\n\n/**\n * This is a shim for the Unleash integration.\n * We need this in order to not throw runtime errors when accidentally importing this on the server through a meta framework like Next.js.\n */\nexport const unleashIntegrationShim = defineIntegration((_options?: unknown) => {\n  if (!isBrowser()) {\n    consoleSandbox(() => {\n      // eslint-disable-next-line no-console\n      console.warn('The unleashIntegration() can only be used in the browser.');\n    });\n  }\n\n  return {\n    name: 'Unleash',\n  };\n});\n","import { growthbookIntegration as coreGrowthbookIntegration } from '@sentry/core';\n\n/**\n * Re-export the core GrowthBook integration for Node.js usage.\n * The core integration is runtime-agnostic and works in both browser and Node environments.\n */\nexport const growthbookIntegrationShim = coreGrowthbookIntegration;\n","import * as net from 'node:net';\nimport type { Span, Tracer } from '@opentelemetry/api';\nimport { context, diag, SpanKind, trace } from '@opentelemetry/api';\nimport {\n  InstrumentationNodeModuleDefinition,\n  InstrumentationNodeModuleFile,\n  isWrapped,\n  safeExecuteInTheMiddle,\n} from '@opentelemetry/instrumentation';\nimport {\n  ATTR_DB_COLLECTION_NAME,\n  ATTR_DB_NAMESPACE,\n  ATTR_DB_OPERATION_NAME,\n  ATTR_DB_SYSTEM_NAME,\n  ATTR_SERVER_ADDRESS,\n  ATTR_SERVER_PORT,\n} from '@opentelemetry/semantic-conventions';\nimport type { SpanAttributes } from '@sentry/core';\nimport type { FirebaseInstrumentation } from '../firebaseInstrumentation';\nimport type {\n  AddDocType,\n  CollectionReference,\n  DeleteDocType,\n  DocumentData,\n  DocumentReference,\n  FirebaseApp,\n  FirebaseInstrumentationConfig,\n  FirebaseOptions,\n  FirestoreSettings,\n  FirestoreSpanCreationHook,\n  GetDocsType,\n  PartialWithFieldValue,\n  QuerySnapshot,\n  SetDocType,\n  SetOptions,\n  WithFieldValue,\n} from '../types';\n\n// Inline minimal types used from `shimmer` to avoid importing shimmer's types directly.\n// We only need the shape for `wrap` and `unwrap` used in this file.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype ShimmerWrap = (target: any, name: string, wrapper: (...args: any[]) => any) => void;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype ShimmerUnwrap = (target: any, name: string) => void;\n\n/**\n *\n * @param tracer - Opentelemetry Tracer\n * @param firestoreSupportedVersions - supported version of firebase/firestore\n * @param wrap - reference to native instrumentation wrap function\n * @param unwrap - reference to native instrumentation wrap function\n */\nexport function patchFirestore(\n  tracer: Tracer,\n  firestoreSupportedVersions: string[],\n  wrap: ShimmerWrap,\n  unwrap: ShimmerUnwrap,\n  config: FirebaseInstrumentationConfig,\n): InstrumentationNodeModuleDefinition {\n  const defaultFirestoreSpanCreationHook: FirestoreSpanCreationHook = () => {};\n\n  let firestoreSpanCreationHook: FirestoreSpanCreationHook = defaultFirestoreSpanCreationHook;\n  const configFirestoreSpanCreationHook = config.firestoreSpanCreationHook;\n\n  if (typeof configFirestoreSpanCreationHook === 'function') {\n    firestoreSpanCreationHook = (span: Span) => {\n      safeExecuteInTheMiddle(\n        () => configFirestoreSpanCreationHook(span),\n        error => {\n          if (!error) {\n            return;\n          }\n          diag.error(error?.message);\n        },\n        true,\n      );\n    };\n  }\n\n  const moduleFirestoreCJS = new InstrumentationNodeModuleDefinition(\n    '@firebase/firestore',\n    firestoreSupportedVersions,\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    (moduleExports: any) => wrapMethods(moduleExports, wrap, unwrap, tracer, firestoreSpanCreationHook),\n  );\n  const files: string[] = [\n    '@firebase/firestore/dist/lite/index.node.cjs.js',\n    '@firebase/firestore/dist/lite/index.node.mjs.js',\n    '@firebase/firestore/dist/lite/index.rn.esm2017.js',\n    '@firebase/firestore/dist/lite/index.cjs.js',\n  ];\n\n  for (const file of files) {\n    moduleFirestoreCJS.files.push(\n      new InstrumentationNodeModuleFile(\n        file,\n        firestoreSupportedVersions,\n        moduleExports => wrapMethods(moduleExports, wrap, unwrap, tracer, firestoreSpanCreationHook),\n        moduleExports => unwrapMethods(moduleExports, unwrap),\n      ),\n    );\n  }\n\n  return moduleFirestoreCJS;\n}\n\nfunction wrapMethods(\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  moduleExports: any,\n  wrap: ShimmerWrap,\n  unwrap: ShimmerUnwrap,\n  tracer: Tracer,\n  firestoreSpanCreationHook: FirestoreSpanCreationHook,\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any {\n  unwrapMethods(moduleExports, unwrap);\n\n  wrap(moduleExports, 'addDoc', patchAddDoc(tracer, firestoreSpanCreationHook));\n  wrap(moduleExports, 'getDocs', patchGetDocs(tracer, firestoreSpanCreationHook));\n  wrap(moduleExports, 'setDoc', patchSetDoc(tracer, firestoreSpanCreationHook));\n  wrap(moduleExports, 'deleteDoc', patchDeleteDoc(tracer, firestoreSpanCreationHook));\n\n  return moduleExports;\n}\n\nfunction unwrapMethods(\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  moduleExports: any,\n  unwrap: ShimmerUnwrap,\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any {\n  for (const method of ['addDoc', 'getDocs', 'setDoc', 'deleteDoc']) {\n    // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n    if (isWrapped(moduleExports[method])) {\n      unwrap(moduleExports, method);\n    }\n  }\n  return moduleExports;\n}\n\nfunction patchAddDoc(\n  tracer: Tracer,\n  firestoreSpanCreationHook: FirestoreSpanCreationHook,\n): (\n  original: AddDocType,\n) => (\n  this: FirebaseInstrumentation,\n  reference: CollectionReference,\n  data: WithFieldValue,\n) => Promise> {\n  return function addDoc(original: AddDocType) {\n    return function (\n      reference: CollectionReference,\n      data: WithFieldValue,\n    ): Promise> {\n      const span = startDBSpan(tracer, 'addDoc', reference);\n      firestoreSpanCreationHook(span);\n      return executeContextWithSpan>>(span, () => {\n        return original(reference, data);\n      });\n    };\n  };\n}\n\nfunction patchDeleteDoc(\n  tracer: Tracer,\n  firestoreSpanCreationHook: FirestoreSpanCreationHook,\n): (\n  original: DeleteDocType,\n) => (this: FirebaseInstrumentation, reference: DocumentReference) => Promise {\n  return function deleteDoc(original: DeleteDocType) {\n    return function (reference: DocumentReference): Promise {\n      const span = startDBSpan(tracer, 'deleteDoc', reference.parent || reference);\n      firestoreSpanCreationHook(span);\n      return executeContextWithSpan>(span, () => {\n        return original(reference);\n      });\n    };\n  };\n}\n\nfunction patchGetDocs(\n  tracer: Tracer,\n  firestoreSpanCreationHook: FirestoreSpanCreationHook,\n): (\n  original: GetDocsType,\n) => (\n  this: FirebaseInstrumentation,\n  reference: CollectionReference,\n) => Promise> {\n  return function getDocs(original: GetDocsType) {\n    return function (\n      reference: CollectionReference,\n    ): Promise> {\n      const span = startDBSpan(tracer, 'getDocs', reference);\n      firestoreSpanCreationHook(span);\n      return executeContextWithSpan>>(span, () => {\n        return original(reference);\n      });\n    };\n  };\n}\n\nfunction patchSetDoc(\n  tracer: Tracer,\n  firestoreSpanCreationHook: FirestoreSpanCreationHook,\n): (\n  original: SetDocType,\n) => (\n  this: FirebaseInstrumentation,\n  reference: DocumentReference,\n  data: WithFieldValue & PartialWithFieldValue,\n  options?: SetOptions,\n) => Promise {\n  return function setDoc(original: SetDocType) {\n    return function (\n      reference: DocumentReference,\n      data: WithFieldValue & PartialWithFieldValue,\n      options?: SetOptions,\n    ): Promise {\n      const span = startDBSpan(tracer, 'setDoc', reference.parent || reference);\n      firestoreSpanCreationHook(span);\n\n      return executeContextWithSpan>(span, () => {\n        return typeof options !== 'undefined' ? original(reference, data, options) : original(reference, data);\n      });\n    };\n  };\n}\n\nfunction executeContextWithSpan(span: Span, callback: () => T): T {\n  return context.with(trace.setSpan(context.active(), span), () => {\n    return safeExecuteInTheMiddle(\n      (): T => {\n        return callback();\n      },\n      err => {\n        if (err) {\n          span.recordException(err);\n        }\n        span.end();\n      },\n      true,\n    );\n  });\n}\n\nfunction startDBSpan(\n  tracer: Tracer,\n  spanName: string,\n  reference: CollectionReference | DocumentReference,\n): Span {\n  const span = tracer.startSpan(`${spanName} ${reference.path}`, { kind: SpanKind.CLIENT });\n  addAttributes(span, reference);\n  span.setAttribute(ATTR_DB_OPERATION_NAME, spanName);\n  return span;\n}\n\n/**\n * Gets the server address and port attributes from the Firestore settings.\n * It's best effort to extract the address and port from the settings, especially for IPv6.\n * @param span - The span to set attributes on.\n * @param settings - The Firestore settings containing host information.\n */\nexport function getPortAndAddress(settings: FirestoreSettings): {\n  address?: string;\n  port?: number;\n} {\n  let address: string | undefined;\n  let port: string | undefined;\n\n  if (typeof settings.host === 'string') {\n    if (settings.host.startsWith('[')) {\n      // IPv6 addresses can be enclosed in square brackets, e.g., [2001:db8::1]:8080\n      if (settings.host.endsWith(']')) {\n        // IPv6 with square brackets without port\n        address = settings.host.replace(/^\\[|\\]$/g, '');\n      } else if (settings.host.includes(']:')) {\n        // IPv6 with square brackets with port\n        const lastColonIndex = settings.host.lastIndexOf(':');\n        if (lastColonIndex !== -1) {\n          address = settings.host.slice(1, lastColonIndex).replace(/^\\[|\\]$/g, '');\n          port = settings.host.slice(lastColonIndex + 1);\n        }\n      }\n    } else {\n      // IPv4 or IPv6 without square brackets\n      // If it's an IPv6 address without square brackets, we assume it does not have a port.\n      if (net.isIPv6(settings.host)) {\n        address = settings.host;\n      }\n      // If it's an IPv4 address, we can extract the port if it exists.\n      else {\n        const lastColonIndex = settings.host.lastIndexOf(':');\n        if (lastColonIndex !== -1) {\n          address = settings.host.slice(0, lastColonIndex);\n          port = settings.host.slice(lastColonIndex + 1);\n        } else {\n          address = settings.host;\n        }\n      }\n    }\n  }\n  return {\n    address: address,\n    port: port ? parseInt(port, 10) : undefined,\n  };\n}\n\nfunction addAttributes(\n  span: Span,\n  reference: CollectionReference | DocumentReference,\n): void {\n  const firestoreApp: FirebaseApp = reference.firestore.app;\n  const firestoreOptions: FirebaseOptions = firestoreApp.options;\n  const json: { settings?: FirestoreSettings } = reference.firestore.toJSON() || {};\n  const settings: FirestoreSettings = json.settings || {};\n\n  const attributes: SpanAttributes = {\n    [ATTR_DB_COLLECTION_NAME]: reference.path,\n    [ATTR_DB_NAMESPACE]: firestoreApp.name,\n    [ATTR_DB_SYSTEM_NAME]: 'firebase.firestore',\n    'firebase.firestore.type': reference.type,\n    'firebase.firestore.options.projectId': firestoreOptions.projectId,\n    'firebase.firestore.options.appId': firestoreOptions.appId,\n    'firebase.firestore.options.messagingSenderId': firestoreOptions.messagingSenderId,\n    'firebase.firestore.options.storageBucket': firestoreOptions.storageBucket,\n  };\n\n  const { address, port } = getPortAndAddress(settings);\n\n  if (address) {\n    attributes[ATTR_SERVER_ADDRESS] = address;\n  }\n  if (port) {\n    attributes[ATTR_SERVER_PORT] = port;\n  }\n\n  span.setAttributes(attributes);\n}\n","import type { Span, Tracer } from '@opentelemetry/api';\nimport { context, diag, SpanKind, trace } from '@opentelemetry/api';\nimport type { InstrumentationBase } from '@opentelemetry/instrumentation';\nimport {\n  InstrumentationNodeModuleDefinition,\n  InstrumentationNodeModuleFile,\n  isWrapped,\n  safeExecuteInTheMiddle,\n} from '@opentelemetry/instrumentation';\nimport type { SpanAttributes } from '@sentry/core';\nimport type { FirebaseInstrumentation } from '../firebaseInstrumentation';\nimport type {\n  AvailableFirebaseFunctions,\n  FirebaseFunctions,\n  FirebaseInstrumentationConfig,\n  OverloadedParameters,\n  RequestHook,\n  ResponseHook,\n} from '../types';\n\n/**\n * Patches Firebase Functions v2 to add OpenTelemetry instrumentation\n * @param tracer - Opentelemetry Tracer\n * @param functionsSupportedVersions - supported versions of firebase-functions\n * @param wrap - reference to native instrumentation wrap function\n * @param unwrap - reference to native instrumentation unwrap function\n * @param config - Firebase instrumentation config\n */\nexport function patchFunctions(\n  tracer: Tracer,\n  functionsSupportedVersions: string[],\n  wrap: InstrumentationBase['_wrap'],\n  unwrap: InstrumentationBase['_unwrap'],\n  config: FirebaseInstrumentationConfig,\n): InstrumentationNodeModuleDefinition {\n  let requestHook: RequestHook = () => {};\n  let responseHook: ResponseHook = () => {};\n  const errorHook = config.functions?.errorHook;\n  const configRequestHook = config.functions?.requestHook;\n  const configResponseHook = config.functions?.responseHook;\n\n  if (typeof configResponseHook === 'function') {\n    responseHook = (span: Span, err: unknown) => {\n      safeExecuteInTheMiddle(\n        () => configResponseHook(span, err),\n        error => {\n          if (!error) {\n            return;\n          }\n          diag.error(error?.message);\n        },\n        true,\n      );\n    };\n  }\n  if (typeof configRequestHook === 'function') {\n    requestHook = (span: Span) => {\n      safeExecuteInTheMiddle(\n        () => configRequestHook(span),\n        error => {\n          if (!error) {\n            return;\n          }\n          diag.error(error?.message);\n        },\n        true,\n      );\n    };\n  }\n\n  const moduleFunctionsCJS = new InstrumentationNodeModuleDefinition('firebase-functions', functionsSupportedVersions);\n  const modulesToInstrument = [\n    { name: 'firebase-functions/lib/v2/providers/https.js', triggerType: 'function' },\n    { name: 'firebase-functions/lib/v2/providers/firestore.js', triggerType: 'firestore' },\n    { name: 'firebase-functions/lib/v2/providers/scheduler.js', triggerType: 'scheduler' },\n    { name: 'firebase-functions/lib/v2/storage.js', triggerType: 'storage' },\n  ] as const;\n\n  modulesToInstrument.forEach(({ name, triggerType }) => {\n    moduleFunctionsCJS.files.push(\n      new InstrumentationNodeModuleFile(\n        name,\n        functionsSupportedVersions,\n        moduleExports =>\n          wrapCommonFunctions(\n            moduleExports,\n            wrap,\n            unwrap,\n            tracer,\n            { requestHook, responseHook, errorHook },\n            triggerType,\n          ),\n        moduleExports => unwrapCommonFunctions(moduleExports, unwrap),\n      ),\n    );\n  });\n\n  return moduleFunctionsCJS;\n}\n\n/**\n * Patches Cloud Functions for Firebase (v2) to add OpenTelemetry instrumentation\n *\n * @param tracer - Opentelemetry Tracer\n * @param functionsConfig - Firebase instrumentation config\n * @param triggerType - Type of trigger\n * @returns A function that patches the function\n */\nexport function patchV2Functions(\n  tracer: Tracer,\n  functionsConfig: FirebaseInstrumentationConfig['functions'],\n  triggerType: string,\n): (original: T) => (...args: OverloadedParameters) => ReturnType {\n  return function v2FunctionsWrapper(original: T): (...args: OverloadedParameters) => ReturnType {\n    return function (this: FirebaseInstrumentation, ...args: OverloadedParameters): ReturnType {\n      const handler = typeof args[0] === 'function' ? args[0] : args[1];\n      const documentOrOptions = typeof args[0] === 'function' ? undefined : args[0];\n\n      if (!handler) {\n        return original.call(this, ...args);\n      }\n\n      const wrappedHandler = async function (this: unknown, ...handlerArgs: unknown[]): Promise {\n        const functionName = process.env.FUNCTION_TARGET || process.env.K_SERVICE || 'unknown';\n        const span = tracer.startSpan(`firebase.function.${triggerType}`, {\n          kind: SpanKind.SERVER,\n        });\n\n        const attributes: SpanAttributes = {\n          'faas.name': functionName,\n          'faas.trigger': triggerType,\n          'faas.provider': 'firebase',\n        };\n\n        if (process.env.GCLOUD_PROJECT) {\n          attributes['cloud.project_id'] = process.env.GCLOUD_PROJECT;\n        }\n\n        if (process.env.EVENTARC_CLOUD_EVENT_SOURCE) {\n          attributes['cloud.event_source'] = process.env.EVENTARC_CLOUD_EVENT_SOURCE;\n        }\n\n        span.setAttributes(attributes);\n        functionsConfig?.requestHook?.(span);\n\n        // Can be changed to safeExecuteInTheMiddleAsync once following is merged and released\n        // https://github.com/open-telemetry/opentelemetry-js/pull/6032\n        return context.with(trace.setSpan(context.active(), span), async () => {\n          let error: Error | undefined;\n          let result: T | undefined;\n\n          try {\n            result = await handler.apply(this, handlerArgs);\n          } catch (e) {\n            error = e as Error;\n          }\n\n          functionsConfig?.responseHook?.(span, error);\n\n          if (error) {\n            span.recordException(error);\n          }\n\n          span.end();\n\n          if (error) {\n            await functionsConfig?.errorHook?.(span, error);\n            throw error;\n          }\n\n          return result;\n        });\n      };\n\n      if (documentOrOptions) {\n        return original.call(this, documentOrOptions, wrappedHandler);\n      } else {\n        return original.call(this, wrappedHandler);\n      }\n    };\n  };\n}\n\nfunction wrapCommonFunctions(\n  moduleExports: AvailableFirebaseFunctions,\n  wrap: InstrumentationBase['_wrap'],\n  unwrap: InstrumentationBase['_unwrap'],\n  tracer: Tracer,\n  functionsConfig: FirebaseInstrumentationConfig['functions'],\n  triggerType: 'function' | 'firestore' | 'scheduler' | 'storage',\n): AvailableFirebaseFunctions {\n  unwrapCommonFunctions(moduleExports, unwrap);\n\n  switch (triggerType) {\n    case 'function':\n      wrap(moduleExports, 'onRequest', patchV2Functions(tracer, functionsConfig, 'http.request'));\n      wrap(moduleExports, 'onCall', patchV2Functions(tracer, functionsConfig, 'http.call'));\n      break;\n\n    case 'firestore':\n      wrap(moduleExports, 'onDocumentCreated', patchV2Functions(tracer, functionsConfig, 'firestore.document.created'));\n      wrap(moduleExports, 'onDocumentUpdated', patchV2Functions(tracer, functionsConfig, 'firestore.document.updated'));\n      wrap(moduleExports, 'onDocumentDeleted', patchV2Functions(tracer, functionsConfig, 'firestore.document.deleted'));\n      wrap(moduleExports, 'onDocumentWritten', patchV2Functions(tracer, functionsConfig, 'firestore.document.written'));\n      wrap(\n        moduleExports,\n        'onDocumentCreatedWithAuthContext',\n        patchV2Functions(tracer, functionsConfig, 'firestore.document.created'),\n      );\n      wrap(\n        moduleExports,\n        'onDocumentUpdatedWithAuthContext',\n        patchV2Functions(tracer, functionsConfig, 'firestore.document.updated'),\n      );\n\n      wrap(\n        moduleExports,\n        'onDocumentDeletedWithAuthContext',\n        patchV2Functions(tracer, functionsConfig, 'firestore.document.deleted'),\n      );\n\n      wrap(\n        moduleExports,\n        'onDocumentWrittenWithAuthContext',\n        patchV2Functions(tracer, functionsConfig, 'firestore.document.written'),\n      );\n      break;\n\n    case 'scheduler':\n      wrap(moduleExports, 'onSchedule', patchV2Functions(tracer, functionsConfig, 'scheduler.scheduled'));\n      break;\n\n    case 'storage':\n      wrap(moduleExports, 'onObjectFinalized', patchV2Functions(tracer, functionsConfig, 'storage.object.finalized'));\n      wrap(moduleExports, 'onObjectArchived', patchV2Functions(tracer, functionsConfig, 'storage.object.archived'));\n      wrap(moduleExports, 'onObjectDeleted', patchV2Functions(tracer, functionsConfig, 'storage.object.deleted'));\n      wrap(\n        moduleExports,\n        'onObjectMetadataUpdated',\n        patchV2Functions(tracer, functionsConfig, 'storage.object.metadataUpdated'),\n      );\n      break;\n  }\n\n  return moduleExports;\n}\n\nfunction unwrapCommonFunctions(\n  moduleExports: AvailableFirebaseFunctions,\n  unwrap: InstrumentationBase['_unwrap'],\n): AvailableFirebaseFunctions {\n  const methods: (keyof AvailableFirebaseFunctions)[] = [\n    'onSchedule',\n    'onRequest',\n    'onCall',\n    'onObjectFinalized',\n    'onObjectArchived',\n    'onObjectDeleted',\n    'onObjectMetadataUpdated',\n    'onDocumentCreated',\n    'onDocumentUpdated',\n    'onDocumentDeleted',\n    'onDocumentWritten',\n    'onDocumentCreatedWithAuthContext',\n    'onDocumentUpdatedWithAuthContext',\n    'onDocumentDeletedWithAuthContext',\n    'onDocumentWrittenWithAuthContext',\n  ];\n\n  for (const method of methods) {\n    if (isWrapped(moduleExports[method])) {\n      unwrap(moduleExports, method);\n    }\n  }\n  return moduleExports;\n}\n","import { InstrumentationBase, type InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION } from '@sentry/core';\nimport { patchFirestore } from './patches/firestore';\nimport { patchFunctions } from './patches/functions';\nimport type { FirebaseInstrumentationConfig } from './types';\n\nconst DefaultFirebaseInstrumentationConfig: FirebaseInstrumentationConfig = {};\nconst firestoreSupportedVersions = ['>=3.0.0 <5']; // firebase 9+\nconst functionsSupportedVersions = ['>=6.0.0 <7']; // firebase-functions v2\n\n/**\n * Instrumentation for Firebase services, specifically Firestore.\n */\nexport class FirebaseInstrumentation extends InstrumentationBase {\n  public constructor(config: FirebaseInstrumentationConfig = DefaultFirebaseInstrumentationConfig) {\n    super('@sentry/instrumentation-firebase', SDK_VERSION, config);\n  }\n\n  /**\n   * sets config\n   * @param config\n   */\n  public override setConfig(config: FirebaseInstrumentationConfig = {}): void {\n    super.setConfig({ ...DefaultFirebaseInstrumentationConfig, ...config });\n  }\n\n  /**\n   *\n   * @protected\n   */\n  // eslint-disable-next-line @typescript-eslint/naming-convention\n  protected init(): InstrumentationNodeModuleDefinition | InstrumentationNodeModuleDefinition[] | void {\n    const modules: InstrumentationNodeModuleDefinition[] = [];\n\n    modules.push(patchFirestore(this.tracer, firestoreSupportedVersions, this._wrap, this._unwrap, this.getConfig()));\n    modules.push(patchFunctions(this.tracer, functionsSupportedVersions, this._wrap, this._unwrap, this.getConfig()));\n\n    return modules;\n  }\n}\n","import type { IntegrationFn } from '@sentry/core';\nimport { captureException, defineIntegration, flush, SEMANTIC_ATTRIBUTE_SENTRY_OP } from '@sentry/core';\nimport { addOriginToSpan, generateInstrumentOnce } from '@sentry/node-core';\nimport { FirebaseInstrumentation, type FirebaseInstrumentationConfig } from './otel';\n\nconst INTEGRATION_NAME = 'Firebase';\n\nconst config: FirebaseInstrumentationConfig = {\n  firestoreSpanCreationHook: span => {\n    addOriginToSpan(span, 'auto.firebase.otel.firestore');\n\n    span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'db.query');\n  },\n  functions: {\n    requestHook: span => {\n      addOriginToSpan(span, 'auto.firebase.otel.functions');\n\n      span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'http.request');\n    },\n    errorHook: async (_, error) => {\n      if (error) {\n        captureException(error, {\n          mechanism: {\n            type: 'auto.firebase.otel.functions',\n            handled: false,\n          },\n        });\n        await flush(2000);\n      }\n    },\n  },\n};\n\nexport const instrumentFirebase = generateInstrumentOnce(INTEGRATION_NAME, () => new FirebaseInstrumentation(config));\n\nconst _firebaseIntegration = (() => {\n  return {\n    name: INTEGRATION_NAME,\n    setupOnce() {\n      instrumentFirebase();\n    },\n  };\n}) satisfies IntegrationFn;\n\nexport const firebaseIntegration = defineIntegration(_firebaseIntegration);\n","import type { Integration } from '@sentry/core';\nimport { instrumentOtelHttp, instrumentSentryHttp } from '../http';\nimport { amqplibIntegration, instrumentAmqplib } from './amqplib';\nimport { anthropicAIIntegration, instrumentAnthropicAi } from './anthropic-ai';\nimport { connectIntegration, instrumentConnect } from './connect';\nimport { expressIntegration, instrumentExpress } from './express';\nimport { fastifyIntegration, instrumentFastify, instrumentFastifyV3 } from './fastify';\nimport { firebaseIntegration, instrumentFirebase } from './firebase';\nimport { genericPoolIntegration, instrumentGenericPool } from './genericPool';\nimport { googleGenAIIntegration, instrumentGoogleGenAI } from './google-genai';\nimport { graphqlIntegration, instrumentGraphql } from './graphql';\nimport { hapiIntegration, instrumentHapi } from './hapi';\nimport { honoIntegration, instrumentHono } from './hono';\nimport { instrumentKafka, kafkaIntegration } from './kafka';\nimport { instrumentKoa, koaIntegration } from './koa';\nimport { instrumentLangChain, langChainIntegration } from './langchain';\nimport { instrumentLangGraph, langGraphIntegration } from './langgraph';\nimport { instrumentLruMemoizer, lruMemoizerIntegration } from './lrumemoizer';\nimport { instrumentMongo, mongoIntegration } from './mongo';\nimport { instrumentMongoose, mongooseIntegration } from './mongoose';\nimport { instrumentMysql, mysqlIntegration } from './mysql';\nimport { instrumentMysql2, mysql2Integration } from './mysql2';\nimport { instrumentOpenAi, openAIIntegration } from './openai';\nimport { instrumentPostgres, postgresIntegration } from './postgres';\nimport { instrumentPostgresJs, postgresJsIntegration } from './postgresjs';\nimport { prismaIntegration } from './prisma';\nimport { instrumentRedis, redisIntegration } from './redis';\nimport { instrumentTedious, tediousIntegration } from './tedious';\nimport { instrumentVercelAi, vercelAIIntegration } from './vercelai';\n\n/**\n * With OTEL, all performance integrations will be added, as OTEL only initializes them when the patched package is actually required.\n */\nexport function getAutoPerformanceIntegrations(): Integration[] {\n  return [\n    expressIntegration(),\n    fastifyIntegration(),\n    graphqlIntegration(),\n    honoIntegration(),\n    mongoIntegration(),\n    mongooseIntegration(),\n    mysqlIntegration(),\n    mysql2Integration(),\n    redisIntegration(),\n    postgresIntegration(),\n    prismaIntegration(),\n    hapiIntegration(),\n    koaIntegration(),\n    connectIntegration(),\n    tediousIntegration(),\n    genericPoolIntegration(),\n    kafkaIntegration(),\n    amqplibIntegration(),\n    lruMemoizerIntegration(),\n    // AI providers\n    // LangChain must come first to disable AI provider integrations before they instrument\n    langChainIntegration(),\n    langGraphIntegration(),\n    vercelAIIntegration(),\n    openAIIntegration(),\n    anthropicAIIntegration(),\n    googleGenAIIntegration(),\n    postgresJsIntegration(),\n    firebaseIntegration(),\n  ];\n}\n\n/**\n * Get a list of methods to instrument OTEL, when preload instrumentation.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getOpenTelemetryInstrumentationToPreload(): (((options?: any) => void) & { id: string })[] {\n  return [\n    instrumentSentryHttp,\n    instrumentOtelHttp,\n    instrumentExpress,\n    instrumentConnect,\n    instrumentFastify,\n    instrumentFastifyV3,\n    instrumentHapi,\n    instrumentHono,\n    instrumentKafka,\n    instrumentKoa,\n    instrumentLruMemoizer,\n    instrumentMongo,\n    instrumentMongoose,\n    instrumentMysql,\n    instrumentMysql2,\n    instrumentPostgres,\n    instrumentHapi,\n    instrumentGraphql,\n    instrumentRedis,\n    instrumentTedious,\n    instrumentGenericPool,\n    instrumentAmqplib,\n    instrumentLangChain,\n    instrumentVercelAi,\n    instrumentOpenAi,\n    instrumentPostgresJs,\n    instrumentFirebase,\n    instrumentAnthropicAi,\n    instrumentGoogleGenAI,\n    instrumentLangGraph,\n  ];\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { diag } from '@opentelemetry/api';\nimport type { Resource } from './Resource';\nimport { emptyResource, resourceFromDetectedResource } from './ResourceImpl';\nimport type { ResourceDetectionConfig } from './config';\n\n/**\n * Runs all resource detectors and returns the results merged into a single Resource.\n *\n * @param config Configuration for resource detection\n */\nexport const detectResources = (\n  config: ResourceDetectionConfig = {}\n): Resource => {\n  const resources: Resource[] = (config.detectors || []).map(d => {\n    try {\n      const resource = resourceFromDetectedResource(d.detect(config));\n      diag.debug(`${d.constructor.name} found resource.`, resource);\n      return resource;\n    } catch (e) {\n      diag.debug(`${d.constructor.name} failed: ${e.message}`);\n      return emptyResource();\n    }\n  });\n\n  return resources.reduce(\n    (acc, resource) => acc.merge(resource),\n    emptyResource()\n  );\n};\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Attributes } from '@opentelemetry/api';\nimport { diag } from '@opentelemetry/api';\nimport { ATTR_SERVICE_NAME } from '@opentelemetry/semantic-conventions';\nimport type { ResourceDetectionConfig } from '../config';\nimport type { DetectedResource, ResourceDetector } from '../types';\nimport { getStringFromEnv } from '@opentelemetry/core';\n\n/**\n * EnvDetector can be used to detect the presence of and create a Resource\n * from the OTEL_RESOURCE_ATTRIBUTES environment variable.\n */\nclass EnvDetector implements ResourceDetector {\n  // Type, attribute keys, and attribute values should not exceed 256 characters.\n  private readonly _MAX_LENGTH = 255;\n\n  // OTEL_RESOURCE_ATTRIBUTES is a comma-separated list of attributes.\n  private readonly _COMMA_SEPARATOR = ',';\n\n  // OTEL_RESOURCE_ATTRIBUTES contains key value pair separated by '='.\n  private readonly _LABEL_KEY_VALUE_SPLITTER = '=';\n\n  /**\n   * Returns a {@link Resource} populated with attributes from the\n   * OTEL_RESOURCE_ATTRIBUTES environment variable. Note this is an async\n   * function to conform to the Detector interface.\n   *\n   * @param config The resource detection config\n   */\n  detect(_config?: ResourceDetectionConfig): DetectedResource {\n    const attributes: Attributes = {};\n\n    const rawAttributes = getStringFromEnv('OTEL_RESOURCE_ATTRIBUTES');\n    const serviceName = getStringFromEnv('OTEL_SERVICE_NAME');\n\n    if (rawAttributes) {\n      try {\n        const parsedAttributes = this._parseResourceAttributes(rawAttributes);\n        Object.assign(attributes, parsedAttributes);\n      } catch (e) {\n        diag.debug(`EnvDetector failed: ${e instanceof Error ? e.message : e}`);\n      }\n    }\n\n    if (serviceName) {\n      attributes[ATTR_SERVICE_NAME] = serviceName;\n    }\n\n    return { attributes };\n  }\n\n  /**\n   * Creates an attribute map from the OTEL_RESOURCE_ATTRIBUTES environment\n   * variable.\n   *\n   * OTEL_RESOURCE_ATTRIBUTES: A comma-separated list of attributes in the\n   * format \"key1=value1,key2=value2\". The ',' and '=' characters in keys\n   * and values MUST be percent-encoded. Other characters MAY be percent-encoded.\n   *\n   * Per the spec, on any error (e.g., decoding failure), the entire environment\n   * variable value is discarded.\n   *\n   * @param rawEnvAttributes The resource attributes as a comma-separated list\n   * of key/value pairs.\n   * @returns The parsed resource attributes.\n   * @throws Error if parsing fails (caller handles by discarding all attributes)\n   */\n  private _parseResourceAttributes(rawEnvAttributes?: string): Attributes {\n    if (!rawEnvAttributes) return {};\n\n    const attributes: Attributes = {};\n    const rawAttributes: string[] = rawEnvAttributes.split(\n      this._COMMA_SEPARATOR\n    );\n\n    for (const rawAttribute of rawAttributes) {\n      const keyValuePair: string[] = rawAttribute.split(\n        this._LABEL_KEY_VALUE_SPLITTER\n      );\n\n      // Per spec: ',' and '=' MUST be percent-encoded in keys and values.\n      // If we get != 2 parts, there's an unencoded '=' which is an error.\n      if (keyValuePair.length !== 2) {\n        throw new Error(\n          `Invalid format for OTEL_RESOURCE_ATTRIBUTES: \"${rawAttribute}\". ` +\n            `Expected format: key=value. The ',' and '=' characters must be percent-encoded in keys and values.`\n        );\n      }\n\n      const [rawKey, rawValue] = keyValuePair;\n      const key = rawKey.trim();\n      const value = rawValue.trim();\n\n      if (key.length === 0) {\n        throw new Error(\n          `Invalid OTEL_RESOURCE_ATTRIBUTES: empty attribute key in \"${rawAttribute}\".`\n        );\n      }\n\n      let decodedKey: string;\n      let decodedValue: string;\n      try {\n        decodedKey = decodeURIComponent(key);\n        decodedValue = decodeURIComponent(value);\n      } catch (e) {\n        throw new Error(\n          `Failed to percent-decode OTEL_RESOURCE_ATTRIBUTES entry \"${rawAttribute}\": ${e instanceof Error ? e.message : e}`\n        );\n      }\n\n      if (decodedKey.length > this._MAX_LENGTH) {\n        throw new Error(\n          `Attribute key exceeds the maximum length of ${this._MAX_LENGTH} characters: \"${decodedKey}\".`\n        );\n      }\n\n      if (decodedValue.length > this._MAX_LENGTH) {\n        throw new Error(\n          `Attribute value exceeds the maximum length of ${this._MAX_LENGTH} characters for key \"${decodedKey}\".`\n        );\n      }\n\n      attributes[decodedKey] = decodedValue;\n    }\n\n    return attributes;\n  }\n}\n\nexport const envDetector = new EnvDetector();\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n\n/**\n * The cloud account ID the resource is assigned to.\n *\n * @example 111111111111\n * @example opentelemetry\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_CLOUD_ACCOUNT_ID = 'cloud.account.id' as const;\n\n/**\n * Cloud regions often have multiple, isolated locations known as zones to increase availability. Availability zone represents the zone where the resource is running.\n *\n * @example us-east-1c\n *\n * @note Availability zones are called \"zones\" on Alibaba Cloud and Google Cloud.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_CLOUD_AVAILABILITY_ZONE = 'cloud.availability_zone' as const;\n\n/**\n * Name of the cloud provider.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_CLOUD_PROVIDER = 'cloud.provider' as const;\n\n/**\n * The geographical region the resource is running.\n *\n * @example us-central1\n * @example us-east-1\n *\n * @note Refer to your provider's docs to see the available regions, for example [Alibaba Cloud regions](https://www.alibabacloud.com/help/doc-detail/40654.htm), [AWS regions](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/), [Azure regions](https://azure.microsoft.com/global-infrastructure/geographies/), [Google Cloud regions](https://cloud.google.com/about/locations), or [Tencent Cloud regions](https://www.tencentcloud.com/document/product/213/6091).\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_CLOUD_REGION = 'cloud.region' as const;\n\n/**\n * Container ID. Usually a UUID, as for example used to [identify Docker containers](https://docs.docker.com/engine/containers/run/#container-identification). The UUID might be abbreviated.\n *\n * @example a3bf90e006b2\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_CONTAINER_ID = 'container.id' as const;\n\n/**\n * Name of the image the container was built on.\n *\n * @example gcr.io/opentelemetry/operator\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_CONTAINER_IMAGE_NAME = 'container.image.name' as const;\n\n/**\n * Container image tags. An example can be found in [Docker Image Inspect](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageInspect). Should be only the `` section of the full name for example from `registry.example.com/my-org/my-image:`.\n *\n * @example [\"v1.27.1\", \"3.5.7-0\"]\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_CONTAINER_IMAGE_TAGS = 'container.image.tags' as const;\n\n/**\n * Container name used by container runtime.\n *\n * @example opentelemetry-autoconf\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_CONTAINER_NAME = 'container.name' as const;\n\n/**\n * The CPU architecture the host system is running on.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_HOST_ARCH = 'host.arch' as const;\n\n/**\n * Unique host ID. For Cloud, this must be the instance_id assigned by the cloud provider. For non-containerized systems, this should be the `machine-id`. See the table below for the sources to use to determine the `machine-id` based on operating system.\n *\n * @example fdbf79e8af94cb7f9e8df36789187052\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_HOST_ID = 'host.id' as const;\n\n/**\n * VM image ID or host OS image ID. For Cloud, this value is from the provider.\n *\n * @example ami-07b06b442921831e5\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_HOST_IMAGE_ID = 'host.image.id' as const;\n\n/**\n * Name of the VM image or OS install the host was instantiated from.\n *\n * @example infra-ami-eks-worker-node-7d4ec78312\n * @example CentOS-8-x86_64-1905\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_HOST_IMAGE_NAME = 'host.image.name' as const;\n\n/**\n * The version string of the VM image or host OS as defined in [Version Attributes](/docs/resource/README.md#version-attributes).\n *\n * @example 0.1\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_HOST_IMAGE_VERSION = 'host.image.version' as const;\n\n/**\n * Name of the host. On Unix systems, it may contain what the hostname command returns, or the fully qualified hostname, or another name specified by the user.\n *\n * @example opentelemetry-test\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_HOST_NAME = 'host.name' as const;\n\n/**\n * Type of host. For Cloud, this must be the machine type.\n *\n * @example n1-standard-1\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_HOST_TYPE = 'host.type' as const;\n\n/**\n * The name of the cluster.\n *\n * @example opentelemetry-cluster\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_K8S_CLUSTER_NAME = 'k8s.cluster.name' as const;\n\n/**\n * The name of the Deployment.\n *\n * @example opentelemetry\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_K8S_DEPLOYMENT_NAME = 'k8s.deployment.name' as const;\n\n/**\n * The name of the namespace that the pod is running in.\n *\n * @example default\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_K8S_NAMESPACE_NAME = 'k8s.namespace.name' as const;\n\n/**\n * The name of the Pod.\n *\n * @example opentelemetry-pod-autoconf\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_K8S_POD_NAME = 'k8s.pod.name' as const;\n\n/**\n * The operating system type.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_OS_TYPE = 'os.type' as const;\n\n/**\n * The version string of the operating system as defined in [Version Attributes](/docs/resource/README.md#version-attributes).\n *\n * @example 14.2.1\n * @example 18.04.1\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_OS_VERSION = 'os.version' as const;\n\n/**\n * The command used to launch the process (i.e. the command name). On Linux based systems, can be set to the zeroth string in `proc/[pid]/cmdline`. On Windows, can be set to the first parameter extracted from `GetCommandLineW`.\n *\n * @example cmd/otelcol\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_PROCESS_COMMAND = 'process.command' as const;\n\n/**\n * All the command arguments (including the command/executable itself) as received by the process. On Linux-based systems (and some other Unixoid systems supporting procfs), can be set according to the list of null-delimited strings extracted from `proc/[pid]/cmdline`. For libc-based executables, this would be the full argv vector passed to `main`.\n *\n * @example [\"cmd/otecol\", \"--config=config.yaml\"]\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_PROCESS_COMMAND_ARGS = 'process.command_args' as const;\n\n/**\n * The name of the process executable. On Linux based systems, this **SHOULD** be set to the base name of the target of `/proc/[pid]/exe`. On Windows, this **SHOULD** be set to the base name of `GetProcessImageFileNameW`.\n *\n * @example otelcol\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_PROCESS_EXECUTABLE_NAME = 'process.executable.name' as const;\n\n/**\n * The full path to the process executable. On Linux based systems, can be set to the target of `proc/[pid]/exe`. On Windows, can be set to the result of `GetProcessImageFileNameW`.\n *\n * @example /usr/bin/cmd/otelcol\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_PROCESS_EXECUTABLE_PATH = 'process.executable.path' as const;\n\n/**\n * The username of the user that owns the process.\n *\n * @example root\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_PROCESS_OWNER = 'process.owner' as const;\n\n/**\n * Process identifier (PID).\n *\n * @example 1234\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_PROCESS_PID = 'process.pid' as const;\n\n/**\n * An additional description about the runtime of the process, for example a specific vendor customization of the runtime environment.\n *\n * @example \"Eclipse OpenJ9 Eclipse OpenJ9 VM openj9-0.21.0\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_PROCESS_RUNTIME_DESCRIPTION =\n  'process.runtime.description' as const;\n\n/**\n * The name of the runtime of this process.\n *\n * @example OpenJDK Runtime Environment\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_PROCESS_RUNTIME_NAME = 'process.runtime.name' as const;\n\n/**\n * The version of the runtime of this process, as returned by the runtime without modification.\n *\n * @example \"14.0.2\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_PROCESS_RUNTIME_VERSION = 'process.runtime.version' as const;\n\n/**\n * The string ID of the service instance.\n *\n * @example 627cc493-f310-47de-96bd-71410b7dec09\n *\n * @note **MUST** be unique for each instance of the same `service.namespace,service.name` pair (in other words\n * `service.namespace,service.name,service.instance.id` triplet **MUST** be globally unique). The ID helps to\n * distinguish instances of the same service that exist at the same time (e.g. instances of a horizontally scaled\n * service).\n *\n * Implementations, such as SDKs, are recommended to generate a random Version 1 or Version 4 [RFC\n * 4122](https://www.ietf.org/rfc/rfc4122.txt) UUID, but are free to use an inherent unique ID as the source of\n * this value if stability is desirable. In that case, the ID **SHOULD** be used as source of a UUID Version 5 and\n * **SHOULD** use the following UUID as the namespace: `4d63009a-8d0f-11ee-aad7-4c796ed8e320`.\n *\n * UUIDs are typically recommended, as only an opaque value for the purposes of identifying a service instance is\n * needed. Similar to what can be seen in the man page for the\n * [`/etc/machine-id`](https://www.freedesktop.org/software/systemd/man/latest/machine-id.html) file, the underlying\n * data, such as pod name and namespace should be treated as confidential, being the user's choice to expose it\n * or not via another resource attribute.\n *\n * For applications running behind an application server (like unicorn), we do not recommend using one identifier\n * for all processes participating in the application. Instead, it's recommended each division (e.g. a worker\n * thread in unicorn) to have its own instance.id.\n *\n * It's not recommended for a Collector to set `service.instance.id` if it can't unambiguously determine the\n * service instance that is generating that telemetry. For instance, creating an UUID based on `pod.name` will\n * likely be wrong, as the Collector might not know from which container within that pod the telemetry originated.\n * However, Collectors can set the `service.instance.id` if they can unambiguously determine the service instance\n * for that telemetry. This is typically the case for scraping receivers, as they know the target address and\n * port.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_SERVICE_INSTANCE_ID = 'service.instance.id' as const;\n\n/**\n * A namespace for `service.name`.\n *\n * @example Shop\n *\n * @note A string value having a meaning that helps to distinguish a group of services, for example the team name that owns a group of services. `service.name` is expected to be unique within the same namespace. If `service.namespace` is not specified in the Resource then `service.name` is expected to be unique for all services that have no explicit namespace defined (so the empty/unspecified namespace is simply one more valid namespace). Zero-length namespace string is assumed equal to unspecified namespace.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_SERVICE_NAMESPACE = 'service.namespace' as const;\n\n/**\n * Additional description of the web engine (e.g. detailed version and edition information).\n *\n * @example WildFly Full 21.0.0.Final (WildFly Core 13.0.1.Final) - 2.2.2.Final\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_WEBENGINE_DESCRIPTION = 'webengine.description' as const;\n\n/**\n * The name of the web engine.\n *\n * @example WildFly\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_WEBENGINE_NAME = 'webengine.name' as const;\n\n/**\n * The version of the web engine.\n *\n * @example 21.0.0\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_WEBENGINE_VERSION = 'webengine.version' as const;\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nimport * as process from 'process';\n\nlet getMachineIdImpl: undefined | (() => Promise);\n\nexport async function getMachineId(): Promise {\n  if (!getMachineIdImpl) {\n    switch (process.platform) {\n      case 'darwin':\n        getMachineIdImpl = (await import('./getMachineId-darwin.js'))\n          .getMachineId;\n        break;\n      case 'linux':\n        getMachineIdImpl = (await import('./getMachineId-linux.js'))\n          .getMachineId;\n        break;\n      case 'freebsd':\n        getMachineIdImpl = (await import('./getMachineId-bsd.js')).getMachineId;\n        break;\n      case 'win32':\n        getMachineIdImpl = (await import('./getMachineId-win.js')).getMachineId;\n        break;\n      default:\n        getMachineIdImpl = (await import('./getMachineId-unsupported.js'))\n          .getMachineId;\n        break;\n    }\n  }\n\n  return getMachineIdImpl();\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nexport const normalizeArch = (nodeArchString: string): string => {\n  // Maps from https://nodejs.org/api/os.html#osarch to arch values in spec:\n  // https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/host.md\n  switch (nodeArchString) {\n    case 'arm':\n      return 'arm32';\n    case 'ppc':\n      return 'ppc32';\n    case 'x64':\n      return 'amd64';\n    default:\n      return nodeArchString;\n  }\n};\n\nexport const normalizeType = (nodePlatform: string): string => {\n  // Maps from https://nodejs.org/api/os.html#osplatform to arch values in spec:\n  // https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/resource/semantic_conventions/os.md\n  switch (nodePlatform) {\n    case 'sunos':\n      return 'solaris';\n    case 'win32':\n      return 'windows';\n    default:\n      return nodePlatform;\n  }\n};\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ATTR_HOST_ARCH, ATTR_HOST_ID, ATTR_HOST_NAME } from '../../../semconv';\nimport { arch, hostname } from 'os';\nimport type { ResourceDetectionConfig } from '../../../config';\nimport type {\n  DetectedResource,\n  DetectedResourceAttributes,\n  ResourceDetector,\n} from '../../../types';\nimport { getMachineId } from './machine-id/getMachineId';\nimport { normalizeArch } from './utils';\n\n/**\n * HostDetector detects the resources related to the host current process is\n * running on. Currently only non-cloud-based attributes are included.\n */\nclass HostDetector implements ResourceDetector {\n  detect(_config?: ResourceDetectionConfig): DetectedResource {\n    const attributes: DetectedResourceAttributes = {\n      [ATTR_HOST_NAME]: hostname(),\n      [ATTR_HOST_ARCH]: normalizeArch(arch()),\n      [ATTR_HOST_ID]: getMachineId(),\n    };\n\n    return { attributes };\n  }\n}\n\nexport const hostDetector = new HostDetector();\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport type { ResourceDetectionConfig } from './config';\nexport { detectResources } from './detect-resources';\nexport {\n  envDetector,\n  hostDetector,\n  osDetector,\n  processDetector,\n  serviceInstanceIdDetector,\n} from './detectors';\nexport type { Resource } from './Resource';\nexport {\n  resourceFromAttributes,\n  defaultResource,\n  emptyResource,\n} from './ResourceImpl';\nexport { defaultServiceName } from './default-service-name';\nexport type {\n  ResourceDetector,\n  DetectedResource,\n  DetectedResourceAttributes,\n  RawResourceAttribute,\n  MaybePromise,\n} from './types';\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Attributes } from '@opentelemetry/api';\nimport { ATTR_OS_TYPE, ATTR_OS_VERSION } from '../../../semconv';\nimport { platform, release } from 'os';\nimport type { ResourceDetectionConfig } from '../../../config';\nimport type { DetectedResource, ResourceDetector } from '../../../types';\nimport { normalizeType } from './utils';\n\n/**\n * OSDetector detects the resources related to the operating system (OS) on\n * which the process represented by this resource is running.\n */\nclass OSDetector implements ResourceDetector {\n  detect(_config?: ResourceDetectionConfig): DetectedResource {\n    const attributes: Attributes = {\n      [ATTR_OS_TYPE]: normalizeType(platform()),\n      [ATTR_OS_VERSION]: release(),\n    };\n    return { attributes };\n  }\n}\n\nexport const osDetector = new OSDetector();\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Attributes } from '@opentelemetry/api';\nimport { diag } from '@opentelemetry/api';\nimport {\n  ATTR_PROCESS_COMMAND,\n  ATTR_PROCESS_COMMAND_ARGS,\n  ATTR_PROCESS_EXECUTABLE_NAME,\n  ATTR_PROCESS_EXECUTABLE_PATH,\n  ATTR_PROCESS_OWNER,\n  ATTR_PROCESS_PID,\n  ATTR_PROCESS_RUNTIME_DESCRIPTION,\n  ATTR_PROCESS_RUNTIME_NAME,\n  ATTR_PROCESS_RUNTIME_VERSION,\n} from '../../../semconv';\nimport * as os from 'os';\nimport type { ResourceDetectionConfig } from '../../../config';\nimport type { DetectedResource, ResourceDetector } from '../../../types';\n\n/**\n * ProcessDetector will be used to detect the resources related current process running\n * and being instrumented from the NodeJS Process module.\n */\nclass ProcessDetector implements ResourceDetector {\n  detect(_config?: ResourceDetectionConfig): DetectedResource {\n    const attributes: Attributes = {\n      [ATTR_PROCESS_PID]: process.pid,\n      [ATTR_PROCESS_EXECUTABLE_NAME]: process.title,\n      [ATTR_PROCESS_EXECUTABLE_PATH]: process.execPath,\n      [ATTR_PROCESS_COMMAND_ARGS]: [\n        process.argv[0],\n        ...process.execArgv,\n        ...process.argv.slice(1),\n      ],\n      [ATTR_PROCESS_RUNTIME_VERSION]: process.versions.node,\n      [ATTR_PROCESS_RUNTIME_NAME]: 'nodejs',\n      [ATTR_PROCESS_RUNTIME_DESCRIPTION]: 'Node.js',\n    };\n\n    if (process.argv.length > 1) {\n      attributes[ATTR_PROCESS_COMMAND] = process.argv[1];\n    }\n\n    try {\n      const userInfo = os.userInfo();\n      attributes[ATTR_PROCESS_OWNER] = userInfo.username;\n    } catch (e) {\n      diag.debug(`error obtaining process owner: ${e}`);\n    }\n\n    return { attributes };\n  }\n}\n\nexport const processDetector = new ProcessDetector();\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ATTR_SERVICE_INSTANCE_ID } from '../../../semconv';\nimport { randomUUID } from 'crypto';\nimport type { ResourceDetectionConfig } from '../../../config';\nimport type { DetectedResource, ResourceDetector } from '../../../types';\n\n/**\n * ServiceInstanceIdDetector detects the resources related to the service instance ID.\n */\nclass ServiceInstanceIdDetector implements ResourceDetector {\n  detect(_config?: ResourceDetectionConfig): DetectedResource {\n    return {\n      attributes: {\n        [ATTR_SERVICE_INSTANCE_ID]: randomUUID(),\n      },\n    };\n  }\n}\n\n/**\n * @experimental\n */\nexport const serviceInstanceIdDetector = new ServiceInstanceIdDetector();\n","import { context, propagation, trace } from '@opentelemetry/api';\nimport { defaultResource, resourceFromAttributes } from '@opentelemetry/resources';\nimport type { SpanProcessor } from '@opentelemetry/sdk-trace-base';\nimport { BasicTracerProvider } from '@opentelemetry/sdk-trace-base';\nimport {\n  ATTR_SERVICE_NAME,\n  ATTR_SERVICE_VERSION,\n  SEMRESATTRS_SERVICE_NAMESPACE,\n} from '@opentelemetry/semantic-conventions';\nimport { debug as coreDebug, SDK_VERSION } from '@sentry/core';\nimport {\n  initializeEsmLoader,\n  type NodeClient,\n  SentryContextManager,\n  setupOpenTelemetryLogger,\n} from '@sentry/node-core';\nimport {\n  type AsyncLocalStorageLookup,\n  SentryPropagator,\n  SentrySampler,\n  SentrySpanProcessor,\n} from '@sentry/opentelemetry';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { getOpenTelemetryInstrumentationToPreload } from '../integrations/tracing';\n\n// About 277h - this must fit into new Array(len)!\nconst MAX_MAX_SPAN_WAIT_DURATION = 1_000_000;\n\ninterface AdditionalOpenTelemetryOptions {\n  /** Additional SpanProcessor instances that should be used. */\n  spanProcessors?: SpanProcessor[];\n}\n\n/**\n * Initialize OpenTelemetry for Node.\n */\nexport function initOpenTelemetry(client: NodeClient, options: AdditionalOpenTelemetryOptions = {}): void {\n  if (client.getOptions().debug) {\n    setupOpenTelemetryLogger();\n  }\n\n  const [provider, asyncLocalStorageLookup] = setupOtel(client, options);\n  client.traceProvider = provider;\n  client.asyncLocalStorageLookup = asyncLocalStorageLookup;\n}\n\ninterface NodePreloadOptions {\n  debug?: boolean;\n  integrations?: string[];\n}\n\n/**\n * Preload OpenTelemetry for Node.\n * This can be used to preload instrumentation early, but set up Sentry later.\n * By preloading the OTEL instrumentation wrapping still happens early enough that everything works.\n */\nexport function preloadOpenTelemetry(options: NodePreloadOptions = {}): void {\n  const { debug } = options;\n\n  if (debug) {\n    coreDebug.enable();\n  }\n\n  initializeEsmLoader();\n\n  // These are all integrations that we need to pre-load to ensure they are set up before any other code runs\n  getPreloadMethods(options.integrations).forEach(fn => {\n    fn();\n\n    if (debug) {\n      coreDebug.log(`[Sentry] Preloaded ${fn.id} instrumentation`);\n    }\n  });\n}\n\nfunction getPreloadMethods(integrationNames?: string[]): ((() => void) & { id: string })[] {\n  const instruments = getOpenTelemetryInstrumentationToPreload();\n\n  if (!integrationNames) {\n    return instruments;\n  }\n\n  // We match exact matches of instrumentation, but also match prefixes, e.g. \"Fastify.v5\" will match \"Fastify\"\n  return instruments.filter(instrumentation => {\n    const id = instrumentation.id;\n    return integrationNames.some(integrationName => id === integrationName || id.startsWith(`${integrationName}.`));\n  });\n}\n\n/** Just exported for tests. */\nexport function setupOtel(\n  client: NodeClient,\n  options: AdditionalOpenTelemetryOptions = {},\n): [BasicTracerProvider, AsyncLocalStorageLookup] {\n  // Create and configure NodeTracerProvider\n  const provider = new BasicTracerProvider({\n    sampler: new SentrySampler(client),\n    resource: defaultResource().merge(\n      resourceFromAttributes({\n        [ATTR_SERVICE_NAME]: 'node',\n        // eslint-disable-next-line deprecation/deprecation\n        [SEMRESATTRS_SERVICE_NAMESPACE]: 'sentry',\n        [ATTR_SERVICE_VERSION]: SDK_VERSION,\n      }),\n    ),\n    forceFlushTimeoutMillis: 500,\n    spanProcessors: [\n      new SentrySpanProcessor({\n        timeout: _clampSpanProcessorTimeout(client.getOptions().maxSpanWaitDuration),\n      }),\n      ...(options.spanProcessors || []),\n    ],\n  });\n\n  // Register as globals\n  trace.setGlobalTracerProvider(provider);\n  propagation.setGlobalPropagator(new SentryPropagator());\n\n  const ctxManager = new SentryContextManager();\n  context.setGlobalContextManager(ctxManager);\n\n  return [provider, ctxManager.getAsyncLocalStorageLookup()];\n}\n\n/** Just exported for tests. */\nexport function _clampSpanProcessorTimeout(maxSpanWaitDuration: number | undefined): number | undefined {\n  if (maxSpanWaitDuration == null) {\n    return undefined;\n  }\n\n  // We guard for a max. value here, because we create an array with this length\n  // So if this value is too large, this would fail\n  if (maxSpanWaitDuration > MAX_MAX_SPAN_WAIT_DURATION) {\n    DEBUG_BUILD &&\n      coreDebug.warn(`\\`maxSpanWaitDuration\\` is too high, using the maximum value of ${MAX_MAX_SPAN_WAIT_DURATION}`);\n    return MAX_MAX_SPAN_WAIT_DURATION;\n  } else if (maxSpanWaitDuration <= 0 || Number.isNaN(maxSpanWaitDuration)) {\n    DEBUG_BUILD && coreDebug.warn('`maxSpanWaitDuration` must be a positive number, using default value instead.');\n    return undefined;\n  }\n\n  return maxSpanWaitDuration;\n}\n","import type { Integration, Options } from '@sentry/core';\nimport { applySdkMetadata, hasSpansEnabled } from '@sentry/core';\nimport type { NodeClient } from '@sentry/node-core';\nimport {\n  getDefaultIntegrations as getNodeCoreDefaultIntegrations,\n  init as initNodeCore,\n  validateOpenTelemetrySetup,\n} from '@sentry/node-core';\nimport { httpIntegration } from '../integrations/http';\nimport { nativeNodeFetchIntegration } from '../integrations/node-fetch';\nimport { getAutoPerformanceIntegrations } from '../integrations/tracing';\nimport type { NodeOptions } from '../types';\nimport { initOpenTelemetry } from './initOtel';\n\n/**\n * Get default integrations, excluding performance.\n */\nexport function getDefaultIntegrationsWithoutPerformance(): Integration[] {\n  const nodeCoreIntegrations = getNodeCoreDefaultIntegrations();\n\n  // Filter out the node-core HTTP and NodeFetch integrations and replace them with Node SDK's composite versions\n  return nodeCoreIntegrations\n    .filter(integration => integration.name !== 'Http' && integration.name !== 'NodeFetch')\n    .concat(httpIntegration(), nativeNodeFetchIntegration());\n}\n\n/** Get the default integrations for the Node SDK. */\nexport function getDefaultIntegrations(options: Options): Integration[] {\n  return [\n    ...getDefaultIntegrationsWithoutPerformance(),\n    // We only add performance integrations if tracing is enabled\n    // Note that this means that without tracing enabled, e.g. `expressIntegration()` will not be added\n    // This means that generally request isolation will work (because that is done by httpIntegration)\n    // But `transactionName` will not be set automatically\n    ...(hasSpansEnabled(options) ? getAutoPerformanceIntegrations() : []),\n  ];\n}\n\n/**\n * Initialize Sentry for Node.\n */\nexport function init(options: NodeOptions | undefined = {}): NodeClient | undefined {\n  return _init(options, getDefaultIntegrations);\n}\n\n/**\n * Internal initialization function.\n */\nfunction _init(\n  options: NodeOptions | undefined = {},\n  getDefaultIntegrationsImpl: (options: Options) => Integration[],\n): NodeClient | undefined {\n  applySdkMetadata(options, 'node');\n\n  const client = initNodeCore({\n    ...options,\n    // Only use Node SDK defaults if none provided\n    defaultIntegrations: options.defaultIntegrations ?? getDefaultIntegrationsImpl(options),\n  });\n\n  // Add Node SDK specific OpenTelemetry setup\n  if (client && !options.skipOpenTelemetrySetup) {\n    initOpenTelemetry(client, {\n      spanProcessors: options.openTelemetrySpanProcessors,\n    });\n    validateOpenTelemetrySetup();\n  }\n\n  return client;\n}\n\n/**\n * Initialize Sentry for Node, without any integrations added by default.\n */\nexport function initWithoutDefaultIntegrations(options: NodeOptions | undefined = {}): NodeClient | undefined {\n  return _init(options, () => []);\n}\n","import * as fs from 'fs';\nimport * as path from 'path';\nimport type { RouteInfo, RouteManifest } from './types';\n\nexport type CreateRouteManifestOptions = {\n  // For starters we only support app router\n  appDirPath?: string;\n  /**\n   * Whether to include route groups (e.g., (auth-layout)) in the final route paths.\n   * By default, route groups are stripped from paths following Next.js convention.\n   */\n  includeRouteGroups?: boolean;\n  /**\n   * Base path for the application, if any. This will be prefixed to all routes.\n   */\n  basePath?: string;\n};\n\nlet manifestCache: RouteManifest | null = null;\nlet lastAppDirPath: string | null = null;\nlet lastIncludeRouteGroups: boolean | undefined = undefined;\n\nfunction isPageFile(filename: string): boolean {\n  return filename === 'page.tsx' || filename === 'page.jsx' || filename === 'page.ts' || filename === 'page.js';\n}\n\nfunction isRouteGroup(name: string): boolean {\n  return name.startsWith('(') && name.endsWith(')');\n}\n\nfunction normalizeRouteGroupPath(routePath: string): string {\n  // Remove route group segments from the path\n  // Using positive lookahead with (?=[^)\\/]*\\)) to avoid polynomial matching\n  return routePath.replace(/\\/\\((?=[^)/]*\\))[^)/]+\\)/g, '');\n}\n\nfunction getDynamicRouteSegment(name: string): string {\n  if (name.startsWith('[[...') && name.endsWith(']]')) {\n    // Optional catchall: [[...param]]\n    const paramName = name.slice(5, -2); // Remove [[... and ]]\n    return `:${paramName}*?`; // Mark with ? as optional\n  } else if (name.startsWith('[...') && name.endsWith(']')) {\n    // Required catchall: [...param]\n    const paramName = name.slice(4, -1); // Remove [... and ]\n    return `:${paramName}*`;\n  }\n  // Regular dynamic: [param]\n  return `:${name.slice(1, -1)}`;\n}\n\nfunction buildRegexForDynamicRoute(routePath: string): {\n  regex: string;\n  paramNames: string[];\n  hasOptionalPrefix: boolean;\n} {\n  const segments = routePath.split('/').filter(Boolean);\n  const regexSegments: string[] = [];\n  const paramNames: string[] = [];\n  let hasOptionalCatchall = false;\n\n  for (const segment of segments) {\n    if (segment.startsWith(':')) {\n      const paramName = segment.substring(1);\n\n      if (paramName.endsWith('*?')) {\n        // Optional catchall: matches zero or more segments\n        const cleanParamName = paramName.slice(0, -2);\n        paramNames.push(cleanParamName);\n        // Handling this special case in pattern construction below\n        hasOptionalCatchall = true;\n      } else if (paramName.endsWith('*')) {\n        // Required catchall: matches one or more segments\n        const cleanParamName = paramName.slice(0, -1);\n        paramNames.push(cleanParamName);\n        regexSegments.push('(.+)');\n      } else {\n        // Regular dynamic segment\n        paramNames.push(paramName);\n        regexSegments.push('([^/]+)');\n      }\n    } else {\n      // Static segment - escape regex special characters including route group parentheses\n      regexSegments.push(segment.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'));\n    }\n  }\n\n  let pattern: string;\n  if (hasOptionalCatchall) {\n    if (regexSegments.length === 0) {\n      // If the optional catchall happens at the root, accept any path starting\n      // with a slash. Need capturing group for parameter extraction.\n      pattern = '^/(.*)$';\n    } else {\n      // For optional catchall, make the trailing slash and segments optional\n      // This allows matching both /catchall and /catchall/anything\n      const staticParts = regexSegments.join('/');\n      pattern = `^/${staticParts}(?:/(.*))?$`;\n    }\n  } else {\n    pattern = `^/${regexSegments.join('/')}$`;\n  }\n\n  return { regex: pattern, paramNames, hasOptionalPrefix: hasOptionalPrefix(paramNames) };\n}\n\n/**\n * Detect if the first parameter is a common i18n prefix segment\n * Common patterns: locale, lang, language\n */\nfunction hasOptionalPrefix(paramNames: string[]): boolean {\n  const firstParam = paramNames[0];\n  if (firstParam === undefined) {\n    return false;\n  }\n\n  return firstParam === 'locale' || firstParam === 'lang' || firstParam === 'language';\n}\n\n/**\n * Check if a page file exports generateStaticParams (ISR/SSG indicator)\n */\nfunction checkForGenerateStaticParams(pageFilePath: string): boolean {\n  try {\n    const content = fs.readFileSync(pageFilePath, 'utf8');\n    // check for generateStaticParams export\n    // the regex covers `export function generateStaticParams`, `export async function generateStaticParams`, `export const generateStaticParams`\n    return /export\\s+(async\\s+)?function\\s+generateStaticParams|export\\s+const\\s+generateStaticParams/.test(content);\n  } catch {\n    return false;\n  }\n}\n\nfunction scanAppDirectory(dir: string, basePath: string = '', includeRouteGroups: boolean = false): RouteManifest {\n  const dynamicRoutes: RouteInfo[] = [];\n  const staticRoutes: RouteInfo[] = [];\n  const isrRoutes: string[] = [];\n\n  try {\n    const entries = fs.readdirSync(dir, { withFileTypes: true });\n    const pageFile = entries.find(entry => isPageFile(entry.name));\n\n    if (pageFile) {\n      // Conditionally normalize the path based on includeRouteGroups option\n      const routePath = includeRouteGroups ? basePath || '/' : normalizeRouteGroupPath(basePath || '/');\n      const isDynamic = routePath.includes(':');\n\n      // Check if this page has generateStaticParams (ISR/SSG indicator)\n      const pageFilePath = path.join(dir, pageFile.name);\n      const hasGenerateStaticParams = checkForGenerateStaticParams(pageFilePath);\n\n      if (hasGenerateStaticParams) {\n        isrRoutes.push(routePath);\n      }\n\n      if (isDynamic) {\n        const { regex, paramNames, hasOptionalPrefix } = buildRegexForDynamicRoute(routePath);\n        dynamicRoutes.push({\n          path: routePath,\n          regex,\n          paramNames,\n          hasOptionalPrefix,\n        });\n      } else {\n        staticRoutes.push({\n          path: routePath,\n        });\n      }\n    }\n\n    for (const entry of entries) {\n      if (entry.isDirectory()) {\n        const fullPath = path.join(dir, entry.name);\n        let routeSegment: string;\n\n        const isDynamic = entry.name.startsWith('[') && entry.name.endsWith(']');\n        const isRouteGroupDir = isRouteGroup(entry.name);\n\n        if (isRouteGroupDir) {\n          if (includeRouteGroups) {\n            routeSegment = entry.name;\n          } else {\n            routeSegment = '';\n          }\n        } else if (isDynamic) {\n          routeSegment = getDynamicRouteSegment(entry.name);\n        } else {\n          routeSegment = entry.name;\n        }\n\n        const newBasePath = routeSegment ? `${basePath}/${routeSegment}` : basePath;\n        const subRoutes = scanAppDirectory(fullPath, newBasePath, includeRouteGroups);\n\n        dynamicRoutes.push(...subRoutes.dynamicRoutes);\n        staticRoutes.push(...subRoutes.staticRoutes);\n        isrRoutes.push(...subRoutes.isrRoutes);\n      }\n    }\n  } catch (error) {\n    // eslint-disable-next-line no-console\n    console.warn('Error building route manifest:', error);\n  }\n\n  return { dynamicRoutes, staticRoutes, isrRoutes };\n}\n\n/**\n * Returns a route manifest for the given app directory\n */\nexport function createRouteManifest(options?: CreateRouteManifestOptions): RouteManifest {\n  let targetDir: string | undefined;\n\n  if (options?.appDirPath) {\n    targetDir = options.appDirPath;\n  } else {\n    const projectDir = process.cwd();\n    const maybeAppDirPath = path.join(projectDir, 'app');\n    const maybeSrcAppDirPath = path.join(projectDir, 'src', 'app');\n\n    if (fs.existsSync(maybeAppDirPath) && fs.lstatSync(maybeAppDirPath).isDirectory()) {\n      targetDir = maybeAppDirPath;\n    } else if (fs.existsSync(maybeSrcAppDirPath) && fs.lstatSync(maybeSrcAppDirPath).isDirectory()) {\n      targetDir = maybeSrcAppDirPath;\n    }\n  }\n\n  if (!targetDir) {\n    return {\n      isrRoutes: [],\n      dynamicRoutes: [],\n      staticRoutes: [],\n    };\n  }\n\n  // Check if we can use cached version\n  if (manifestCache && lastAppDirPath === targetDir && lastIncludeRouteGroups === options?.includeRouteGroups) {\n    return manifestCache;\n  }\n\n  const { dynamicRoutes, staticRoutes, isrRoutes } = scanAppDirectory(\n    targetDir,\n    options?.basePath,\n    options?.includeRouteGroups,\n  );\n\n  const manifest: RouteManifest = {\n    dynamicRoutes,\n    staticRoutes,\n    isrRoutes,\n  };\n\n  // set cache\n  manifestCache = manifest;\n  lastAppDirPath = targetDir;\n  lastIncludeRouteGroups = options?.includeRouteGroups;\n\n  return manifest;\n}\n","import { _INTERNAL_safeMathRandom } from '@sentry/core';\nimport type { NextConfigObject } from '../types';\n\n/**\n * Generates a random tunnel route path that's less likely to be blocked by ad-blockers\n */\nfunction generateRandomTunnelRoute(): string {\n  // Generate a random 8-character alphanumeric string\n  const randomString = _INTERNAL_safeMathRandom().toString(36).substring(2, 10);\n  return `/${randomString}`;\n}\n\n/**\n * Resolves the tunnel route based on the user's configuration and the environment.\n * @param tunnelRoute - The user-provided tunnel route option\n */\nexport function resolveTunnelRoute(tunnelRoute: string | true): string {\n  if (process.env.__SENTRY_TUNNEL_ROUTE__) {\n    // Reuse cached value from previous build (server/client)\n    return process.env.__SENTRY_TUNNEL_ROUTE__;\n  }\n\n  const resolvedTunnelRoute = typeof tunnelRoute === 'string' ? tunnelRoute : generateRandomTunnelRoute();\n\n  // Cache for subsequent builds (only during build time)\n  // Turbopack runs the config twice, so we need a shared context to avoid generating a new tunnel route for each build.\n  // env works well here\n  // https://linear.app/getsentry/issue/JS-549/adblock-plus-blocking-requests-to-sentry-and-monitoring-tunnel\n  if (resolvedTunnelRoute) {\n    process.env.__SENTRY_TUNNEL_ROUTE__ = resolvedTunnelRoute;\n  }\n\n  return resolvedTunnelRoute;\n}\n\n/**\n * Injects rewrite rules into the Next.js config provided by the user to tunnel\n * requests from the `tunnelPath` to Sentry.\n *\n * See https://nextjs.org/docs/api-reference/next.config.js/rewrites.\n */\nexport function setUpTunnelRewriteRules(userNextConfig: NextConfigObject, tunnelPath: string): void {\n  const originalRewrites = userNextConfig.rewrites;\n  // Allow overriding the tunnel destination for E2E tests via environment variable\n  const destinationOverride = process.env._SENTRY_TUNNEL_DESTINATION_OVERRIDE;\n\n  // Make sure destinations are statically defined at build time\n  const destination = destinationOverride || 'https://o:orgid.ingest.sentry.io/api/:projectid/envelope/?hsts=0';\n  const destinationWithRegion =\n    destinationOverride || 'https://o:orgid.ingest.:region.sentry.io/api/:projectid/envelope/?hsts=0';\n\n  // This function doesn't take any arguments at the time of writing but we future-proof\n  // here in case Next.js ever decides to pass some\n  userNextConfig.rewrites = async (...args: unknown[]) => {\n    const tunnelRouteRewrite = {\n      // Matched rewrite routes will look like the following: `[tunnelPath]?o=[orgid]&p=[projectid]`\n      // Nextjs will automatically convert `source` into a regex for us\n      source: `${tunnelPath}(/?)`,\n      has: [\n        {\n          type: 'query',\n          key: 'o', // short for orgId - we keep it short so matching is harder for ad-blockers\n          value: '(?\\\\d*)',\n        },\n        {\n          type: 'query',\n          key: 'p', // short for projectId - we keep it short so matching is harder for ad-blockers\n          value: '(?\\\\d*)',\n        },\n      ],\n      destination,\n    };\n\n    const tunnelRouteRewriteWithRegion = {\n      // Matched rewrite routes will look like the following: `[tunnelPath]?o=[orgid]&p=[projectid]?r=[region]`\n      // Nextjs will automatically convert `source` into a regex for us\n      source: `${tunnelPath}(/?)`,\n      has: [\n        {\n          type: 'query',\n          key: 'o', // short for orgId - we keep it short so matching is harder for ad-blockers\n          value: '(?\\\\d*)',\n        },\n        {\n          type: 'query',\n          key: 'p', // short for projectId - we keep it short so matching is harder for ad-blockers\n          value: '(?\\\\d*)',\n        },\n        {\n          type: 'query',\n          key: 'r', // short for region - we keep it short so matching is harder for ad-blockers\n          value: '(?[a-z]{2})',\n        },\n      ],\n      destination: destinationWithRegion,\n    };\n\n    // Order of these is important, they get applied first to last.\n    const newRewrites = [tunnelRouteRewriteWithRegion, tunnelRouteRewrite];\n\n    if (typeof originalRewrites !== 'function') {\n      return newRewrites;\n    }\n\n    // @ts-expect-error Expected 0 arguments but got 1 - this is from the future-proofing mentioned above, so we don't care about it\n    const originalRewritesResult = await originalRewrites(...args);\n\n    if (Array.isArray(originalRewritesResult)) {\n      return [...newRewrites, ...originalRewritesResult];\n    } else {\n      return {\n        ...originalRewritesResult,\n        beforeFiles: [...newRewrites, ...(originalRewritesResult.beforeFiles || [])],\n      };\n    }\n  };\n}\n","import { debug, isMatchingPattern, parseSemver } from '@sentry/core';\nimport { getSentryRelease } from '@sentry/node';\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport type { VercelCronsConfig } from '../../common/types';\nimport { createRouteManifest } from '../manifest/createRouteManifest';\nimport type { RouteManifest } from '../manifest/types';\nimport type { NextConfigObject, SentryBuildOptions } from '../types';\nimport { requiresInstrumentationHook } from '../util';\nimport { getGitRevision, getInstrumentationClientFileContents } from './buildTime';\nimport { resolveTunnelRoute, setUpTunnelRewriteRules } from './tunnel';\n\nlet showedExportModeTunnelWarning = false;\nlet showedExperimentalBuildModeWarning = false;\n\n/**\n * Resolves the Sentry release name to use for build-time behavior.\n *\n * Note: if `release.create === false`, we avoid falling back to git to preserve build determinism.\n */\nexport function resolveReleaseName(userSentryOptions: SentryBuildOptions): string | undefined {\n  const shouldCreateRelease = userSentryOptions.release?.create !== false;\n  return shouldCreateRelease\n    ? (userSentryOptions.release?.name ?? getSentryRelease() ?? getGitRevision())\n    : userSentryOptions.release?.name;\n}\n\n/**\n * Applies tunnel-route rewrites, if configured.\n *\n * Note: this mutates `userSentryOptions` (to store the resolved tunnel route) and `incomingUserNextConfigObject`.\n */\nexport function maybeSetUpTunnelRouteRewriteRules(\n  incomingUserNextConfigObject: NextConfigObject,\n  userSentryOptions: SentryBuildOptions,\n): void {\n  if (!userSentryOptions.tunnelRoute) {\n    return;\n  }\n\n  if (incomingUserNextConfigObject.output === 'export') {\n    if (!showedExportModeTunnelWarning) {\n      showedExportModeTunnelWarning = true;\n      // eslint-disable-next-line no-console\n      console.warn(\n        '[@sentry/nextjs] The Sentry Next.js SDK `tunnelRoute` option will not work in combination with Next.js static exports. The `tunnelRoute` option uses server-side features that cannot be accessed in export mode. If you still want to tunnel Sentry events, set up your own tunnel: https://docs.sentry.io/platforms/javascript/troubleshooting/#using-the-tunnel-option',\n      );\n    }\n    return;\n  }\n\n  // Update the global options object to use the resolved value everywhere\n  const resolvedTunnelRoute = resolveTunnelRoute(userSentryOptions.tunnelRoute);\n  userSentryOptions.tunnelRoute = resolvedTunnelRoute || undefined;\n\n  setUpTunnelRewriteRules(incomingUserNextConfigObject, resolvedTunnelRoute);\n}\n\n/**\n * Handles Next's experimental build-mode warning/early return behavior.\n *\n * @returns `true` if Sentry config processing should be skipped for the current process invocation\n */\nexport function shouldReturnEarlyInExperimentalBuildMode(): boolean {\n  if (!process.argv.includes('--experimental-build-mode')) {\n    return false;\n  }\n\n  if (!showedExperimentalBuildModeWarning) {\n    showedExperimentalBuildModeWarning = true;\n    // eslint-disable-next-line no-console\n    console.warn(\n      '[@sentry/nextjs] The Sentry Next.js SDK does not currently fully support next build --experimental-build-mode',\n    );\n  }\n\n  // Next.js v15.3.0-canary.1 splits the experimental build into two phases:\n  // 1. compile: Code compilation\n  // 2. generate: Environment variable inlining and prerendering (We don't instrument this phase, we inline in the compile phase)\n  //\n  // We assume a single \"full\" build and reruns Webpack instrumentation in both phases.\n  // During the generate step it collides with Next.js's inliner\n  // producing malformed JS and build failures.\n  // We skip Sentry processing during generate to avoid this issue.\n  return process.argv.includes('generate');\n}\n\n/**\n * Creates the route manifest used for client-side route name normalization, unless disabled.\n */\nexport function maybeCreateRouteManifest(\n  incomingUserNextConfigObject: NextConfigObject,\n  userSentryOptions: SentryBuildOptions,\n): RouteManifest | undefined {\n  // Handle deprecated option with warning\n  // eslint-disable-next-line deprecation/deprecation\n  if (userSentryOptions.disableManifestInjection) {\n    // eslint-disable-next-line no-console\n    console.warn(\n      '[@sentry/nextjs] The `disableManifestInjection` option is deprecated. Use `routeManifestInjection: false` instead.',\n    );\n  }\n\n  // If explicitly disabled, skip\n  if (userSentryOptions.routeManifestInjection === false) {\n    return undefined;\n  }\n\n  // Still check the deprecated option if the new option is not set\n  // eslint-disable-next-line deprecation/deprecation\n  if (userSentryOptions.routeManifestInjection === undefined && userSentryOptions.disableManifestInjection) {\n    return undefined;\n  }\n\n  const manifest = createRouteManifest({\n    basePath: incomingUserNextConfigObject.basePath,\n  });\n\n  // Apply route exclusion filter if configured\n  const excludeFilter = userSentryOptions.routeManifestInjection?.exclude;\n  return filterRouteManifest(manifest, excludeFilter);\n}\n\ntype ExcludeFilter = ((route: string) => boolean) | (string | RegExp)[] | undefined;\n\n/**\n * Filters routes from the manifest based on the exclude filter.\n * (Exported only for testing)\n */\nexport function filterRouteManifest(manifest: RouteManifest, excludeFilter: ExcludeFilter): RouteManifest {\n  if (!excludeFilter) {\n    return manifest;\n  }\n\n  const shouldExclude = (route: string): boolean => {\n    if (typeof excludeFilter === 'function') {\n      return excludeFilter(route);\n    }\n\n    return excludeFilter.some(pattern => isMatchingPattern(route, pattern));\n  };\n\n  return {\n    staticRoutes: manifest.staticRoutes.filter(r => !shouldExclude(r.path)),\n    dynamicRoutes: manifest.dynamicRoutes.filter(r => !shouldExclude(r.path)),\n    isrRoutes: manifest.isrRoutes.filter(r => !shouldExclude(r)),\n  };\n}\n\n/**\n * Adds `experimental.clientTraceMetadata` for supported Next.js versions.\n */\nexport function maybeSetClientTraceMetadataOption(\n  incomingUserNextConfigObject: NextConfigObject,\n  nextJsVersion: string | undefined,\n): void {\n  // Add the `clientTraceMetadata` experimental option based on Next.js version. The option got introduced in Next.js version 15.0.0 (actually 14.3.0-canary.64).\n  // Adding the option on lower versions will cause Next.js to print nasty warnings we wouldn't confront our users with.\n  if (nextJsVersion) {\n    const { major, minor } = parseSemver(nextJsVersion);\n    if (major !== undefined && minor !== undefined && (major >= 15 || (major === 14 && minor >= 3))) {\n      incomingUserNextConfigObject.experimental = incomingUserNextConfigObject.experimental || {};\n      incomingUserNextConfigObject.experimental.clientTraceMetadata = [\n        'baggage',\n        'sentry-trace',\n        ...(incomingUserNextConfigObject.experimental?.clientTraceMetadata || []),\n      ];\n    }\n  } else {\n    // eslint-disable-next-line no-console\n    console.log(\n      \"[@sentry/nextjs] The Sentry SDK was not able to determine your Next.js version. If you are using Next.js version 15 or greater, please add `experimental.clientTraceMetadata: ['sentry-trace', 'baggage']` to your Next.js config to enable pageload tracing for App Router.\",\n    );\n  }\n}\n\n/**\n * Ensures Next.js' `experimental.instrumentationHook` is set for versions which require it.\n */\nexport function maybeSetInstrumentationHookOption(\n  incomingUserNextConfigObject: NextConfigObject,\n  nextJsVersion: string | undefined,\n): void {\n  // From Next.js version (15.0.0-canary.124) onwards, Next.js does no longer require the `experimental.instrumentationHook` option and will\n  // print a warning when it is set, so we need to conditionally provide it for lower versions.\n  if (nextJsVersion && requiresInstrumentationHook(nextJsVersion)) {\n    if (incomingUserNextConfigObject.experimental?.instrumentationHook === false) {\n      // eslint-disable-next-line no-console\n      console.warn(\n        '[@sentry/nextjs] You turned off the `experimental.instrumentationHook` option. Note that Sentry will not be initialized if you did not set it up inside `instrumentation.(js|ts)`.',\n      );\n    }\n    incomingUserNextConfigObject.experimental = {\n      instrumentationHook: true,\n      ...incomingUserNextConfigObject.experimental,\n    };\n    return;\n  }\n\n  if (nextJsVersion) {\n    return;\n  }\n\n  // If we cannot detect a Next.js version for whatever reason, the sensible default is to set the `experimental.instrumentationHook`, even though it may create a warning.\n  if (incomingUserNextConfigObject.experimental && 'instrumentationHook' in incomingUserNextConfigObject.experimental) {\n    if (incomingUserNextConfigObject.experimental.instrumentationHook === false) {\n      // eslint-disable-next-line no-console\n      console.warn(\n        '[@sentry/nextjs] You set `experimental.instrumentationHook` to `false`. If you are using Next.js version 15 or greater, you can remove that option. If you are using Next.js version 14 or lower, you need to set `experimental.instrumentationHook` in your `next.config.(js|mjs)` to `true` for the SDK to be properly initialized in combination with `instrumentation.(js|ts)`.',\n      );\n    }\n  } else {\n    // eslint-disable-next-line no-console\n    console.log(\n      \"[@sentry/nextjs] The Sentry SDK was not able to determine your Next.js version. If you are using Next.js version 15 or greater, Next.js will probably show you a warning about the `experimental.instrumentationHook` being set. To silence Next.js' warning, explicitly set the `experimental.instrumentationHook` option in your `next.config.(js|mjs|ts)` to `undefined`. If you are on Next.js version 14 or lower, you can silence this particular warning by explicitly setting the `experimental.instrumentationHook` option in your `next.config.(js|mjs)` to `true`.\",\n    );\n    incomingUserNextConfigObject.experimental = {\n      instrumentationHook: true,\n      ...incomingUserNextConfigObject.experimental,\n    };\n  }\n}\n\n/**\n * Warns if the project has an `instrumentation-client` file but doesn't export `onRouterTransitionStart`.\n */\nexport function warnIfMissingOnRouterTransitionStartHook(userSentryOptions: SentryBuildOptions): void {\n  // We wanna check whether the user added a `onRouterTransitionStart` handler to their client instrumentation file.\n  const instrumentationClientFileContents = getInstrumentationClientFileContents();\n  if (\n    instrumentationClientFileContents !== undefined &&\n    !instrumentationClientFileContents.includes('onRouterTransitionStart') &&\n    !userSentryOptions.suppressOnRouterTransitionStartWarning\n  ) {\n    // eslint-disable-next-line no-console\n    console.warn(\n      '[@sentry/nextjs] ACTION REQUIRED: To instrument navigations, the Sentry SDK requires you to export an `onRouterTransitionStart` hook from your `instrumentation-client.(js|ts)` file. You can do so by adding `export const onRouterTransitionStart = Sentry.captureRouterTransitionStart;` to the file.',\n    );\n  }\n}\n\n/**\n * Parses the major Next.js version number from a semver string.\n */\nexport function getNextMajor(nextJsVersion: string | undefined): number | undefined {\n  if (!nextJsVersion) {\n    return undefined;\n  }\n\n  const { major } = parseSemver(nextJsVersion);\n  return major;\n}\n\n/**\n * Reads the Vercel crons configuration from vercel.json.\n * Returns undefined if vercel.json doesn't exist or doesn't contain crons.\n */\nfunction readVercelCronsConfig(): VercelCronsConfig {\n  try {\n    const vercelJsonPath = path.join(process.cwd(), 'vercel.json');\n    const vercelJsonContents = fs.readFileSync(vercelJsonPath, 'utf8');\n    // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n    const cronsConfig = JSON.parse(vercelJsonContents).crons as VercelCronsConfig;\n\n    if (cronsConfig && Array.isArray(cronsConfig) && cronsConfig.length > 0) {\n      return cronsConfig;\n    }\n    return undefined;\n  } catch (e) {\n    if ((e as { code: string }).code === 'ENOENT') {\n      return undefined;\n    }\n    debug.error('[@sentry/nextjs] Failed to read vercel.json for automatic cron job monitoring instrumentation', e);\n    return undefined;\n  }\n}\n\n/** Strategy for Vercel cron monitoring instrumentation */\nexport type VercelCronsStrategy = 'spans' | 'wrapper';\n\nexport type VercelCronsConfigResult = {\n  /** The crons configuration from vercel.json, if available */\n  config: VercelCronsConfig;\n  /**\n   * The instrumentation strategy to use:\n   * - `spans`: New span-based approach (works for both App Router and Pages Router)\n   * - `wrapper`: Old wrapper-based approach (Pages Router only)\n   * - `undefined`: No cron monitoring enabled\n   */\n  strategy: VercelCronsStrategy | undefined;\n};\n\n/**\n * Reads and returns the Vercel crons configuration from vercel.json along with\n * information about which instrumentation approach to use.\n *\n * - `_experimental.vercelCronsMonitoring`: New span-based approach (works for both App Router and Pages Router)\n * - `automaticVercelMonitors`: Old wrapper-based approach (Pages Router only)\n *\n * If both are enabled, the new approach is preferred and a warning is logged.\n */\nexport function maybeGetVercelCronsConfig(userSentryOptions: SentryBuildOptions): VercelCronsConfigResult {\n  const result: VercelCronsConfigResult = { config: undefined, strategy: undefined };\n\n  if (!process.env.VERCEL) {\n    return result;\n  }\n\n  const experimentalEnabled = userSentryOptions._experimental?.vercelCronsMonitoring === true;\n  const legacyEnabled = userSentryOptions.webpack?.automaticVercelMonitors === true;\n\n  if (!experimentalEnabled && !legacyEnabled) {\n    return result;\n  }\n\n  const config = readVercelCronsConfig();\n  if (!config) {\n    return result;\n  }\n\n  result.config = config;\n\n  if (experimentalEnabled && legacyEnabled) {\n    debug.warn(\n      \"[@sentry/nextjs] Both '_experimental.vercelCronsMonitoring' and 'webpack.automaticVercelMonitors' are enabled. \" +\n        \"Using the new span-based approach from '_experimental.vercelCronsMonitoring'. \" +\n        \"You can remove 'webpack.automaticVercelMonitors' from your config.\",\n    );\n    result.strategy = 'spans';\n  } else if (experimentalEnabled) {\n    debug.log(\n      '[@sentry/nextjs] Creating Sentry cron monitors for your Vercel Cron Jobs using span-based instrumentation.',\n    );\n    result.strategy = 'spans';\n  } else {\n    debug.log(\n      \"[@sentry/nextjs] Creating Sentry cron monitors for your Vercel Cron Jobs. You can disable this feature by setting the 'automaticVercelMonitors' option to false in your Next.js config.\",\n    );\n    result.strategy = 'wrapper';\n  }\n\n  return result;\n}\n","import type { NextConfigObject, SentryBuildOptions } from '../types';\nimport { getNextjsVersion } from '../util';\nimport { setUpBuildTimeVariables } from './buildTime';\nimport { migrateDeprecatedWebpackOptions } from './deprecatedWebpackOptions';\nimport {\n  getBundlerInfo,\n  getServerExternalPackagesPatch,\n  getTurbopackPatch,\n  getWebpackPatch,\n  maybeConstructTurbopackConfig,\n  maybeEnableTurbopackSourcemaps,\n  maybeSetUpRunAfterProductionCompileHook,\n  maybeWarnAboutUnsupportedRunAfterProductionCompileHook,\n  maybeWarnAboutUnsupportedTurbopack,\n  resolveUseRunAfterProductionCompileHookOption,\n} from './getFinalConfigObjectBundlerUtils';\nimport {\n  getNextMajor,\n  maybeCreateRouteManifest,\n  maybeGetVercelCronsConfig,\n  maybeSetClientTraceMetadataOption,\n  maybeSetInstrumentationHookOption,\n  maybeSetUpTunnelRouteRewriteRules,\n  resolveReleaseName,\n  shouldReturnEarlyInExperimentalBuildMode,\n  warnIfMissingOnRouterTransitionStartHook,\n} from './getFinalConfigObjectUtils';\n\n/**\n * Materializes the final Next.js config object with Sentry's build-time integrations applied.\n *\n * Note: this mutates both `incomingUserNextConfigObject` and `userSentryOptions` (to apply defaults/migrations).\n */\nexport function getFinalConfigObject(\n  incomingUserNextConfigObject: NextConfigObject,\n  userSentryOptions: SentryBuildOptions,\n): NextConfigObject {\n  migrateDeprecatedWebpackOptions(userSentryOptions);\n  const releaseName = resolveReleaseName(userSentryOptions);\n\n  maybeSetUpTunnelRouteRewriteRules(incomingUserNextConfigObject, userSentryOptions);\n\n  if (shouldReturnEarlyInExperimentalBuildMode()) {\n    return incomingUserNextConfigObject;\n  }\n\n  const routeManifest = maybeCreateRouteManifest(incomingUserNextConfigObject, userSentryOptions);\n  const vercelCronsConfigResult = maybeGetVercelCronsConfig(userSentryOptions);\n  setUpBuildTimeVariables(incomingUserNextConfigObject, userSentryOptions, releaseName);\n\n  const nextJsVersion = getNextjsVersion();\n  const nextMajor = getNextMajor(nextJsVersion);\n\n  maybeSetClientTraceMetadataOption(incomingUserNextConfigObject, nextJsVersion);\n  maybeSetInstrumentationHookOption(incomingUserNextConfigObject, nextJsVersion);\n  warnIfMissingOnRouterTransitionStartHook(userSentryOptions);\n\n  const bundlerInfo = getBundlerInfo(nextJsVersion);\n  maybeWarnAboutUnsupportedTurbopack(nextJsVersion, bundlerInfo);\n  maybeWarnAboutUnsupportedRunAfterProductionCompileHook(nextJsVersion, userSentryOptions, bundlerInfo);\n\n  const turboPackConfig = maybeConstructTurbopackConfig(\n    incomingUserNextConfigObject,\n    userSentryOptions,\n    routeManifest,\n    nextJsVersion,\n    bundlerInfo,\n    vercelCronsConfigResult,\n  );\n\n  const shouldUseRunAfterProductionCompileHook = resolveUseRunAfterProductionCompileHookOption(\n    userSentryOptions,\n    bundlerInfo,\n  );\n\n  maybeSetUpRunAfterProductionCompileHook({\n    incomingUserNextConfigObject,\n    userSentryOptions,\n    releaseName,\n    nextJsVersion,\n    bundlerInfo,\n    turboPackConfig,\n    shouldUseRunAfterProductionCompileHook,\n  });\n\n  maybeEnableTurbopackSourcemaps(incomingUserNextConfigObject, userSentryOptions, bundlerInfo);\n\n  return {\n    ...incomingUserNextConfigObject,\n    ...getServerExternalPackagesPatch(incomingUserNextConfigObject, nextMajor),\n    ...getWebpackPatch({\n      incomingUserNextConfigObject,\n      userSentryOptions,\n      releaseName,\n      routeManifest,\n      nextJsVersion,\n      shouldUseRunAfterProductionCompileHook,\n      bundlerInfo,\n      vercelCronsConfigResult,\n    }),\n    ...getTurbopackPatch(bundlerInfo, turboPackConfig),\n  };\n}\n","import { isThenable } from '@sentry/core';\nimport type { ExportedNextConfig as NextConfig, NextConfigFunction, SentryBuildOptions } from '../types';\nimport { DEFAULT_SERVER_EXTERNAL_PACKAGES } from './constants';\nimport { getFinalConfigObject } from './getFinalConfigObject';\n\nexport { DEFAULT_SERVER_EXTERNAL_PACKAGES };\n\n/**\n * Wraps a user's Next.js config and applies Sentry build-time behavior (instrumentation + sourcemap upload).\n *\n * Supports both object and function Next.js configs.\n *\n * @param nextConfig - The user's exported Next.js config\n * @param sentryBuildOptions - Options to configure Sentry's build-time behavior\n * @returns The wrapped Next.js config (same shape as the input)\n */\nexport function withSentryConfig(nextConfig?: C, sentryBuildOptions: SentryBuildOptions = {}): C {\n  const castNextConfig = (nextConfig as NextConfig) || {};\n  if (typeof castNextConfig === 'function') {\n    return function (this: unknown, ...webpackConfigFunctionArgs: unknown[]): ReturnType {\n      const maybePromiseNextConfig: ReturnType = castNextConfig.apply(\n        this,\n        webpackConfigFunctionArgs,\n      );\n\n      if (isThenable(maybePromiseNextConfig)) {\n        return maybePromiseNextConfig.then(promiseResultNextConfig => {\n          return getFinalConfigObject(promiseResultNextConfig, sentryBuildOptions);\n        });\n      }\n\n      return getFinalConfigObject(maybePromiseNextConfig, sentryBuildOptions);\n    } as C;\n  } else {\n    return getFinalConfigObject(castNextConfig, sentryBuildOptions) as C;\n  }\n}\n","declare const __DEBUG_BUILD__: boolean;\n\n/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nexport const DEBUG_BUILD = __DEBUG_BUILD__;\n","var UNKNOWN_FUNCTION = '';\n/**\n * This parses the different stack traces and puts them into one format\n * This borrows heavily from TraceKit (https://github.com/csnover/TraceKit)\n */\n\nfunction parse(stackString) {\n  var lines = stackString.split('\\n');\n  return lines.reduce(function (stack, line) {\n    var parseResult = parseChrome(line) || parseWinjs(line) || parseGecko(line) || parseNode(line) || parseJSC(line);\n\n    if (parseResult) {\n      stack.push(parseResult);\n    }\n\n    return stack;\n  }, []);\n}\nvar chromeRe = /^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack|rsc||\\/|[a-z]:\\\\|\\\\\\\\).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nvar chromeEvalRe = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\nfunction parseChrome(line) {\n  var parts = chromeRe.exec(line);\n\n  if (!parts) {\n    return null;\n  }\n\n  var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n\n  var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n\n  var submatch = chromeEvalRe.exec(parts[2]);\n\n  if (isEval && submatch != null) {\n    // throw out eval line/column and use top-most line/column number\n    parts[2] = submatch[1]; // url\n\n    parts[3] = submatch[2]; // line\n\n    parts[4] = submatch[3]; // column\n  }\n\n  return {\n    file: !isNative ? parts[2] : null,\n    methodName: parts[1] || UNKNOWN_FUNCTION,\n    arguments: isNative ? [parts[2]] : [],\n    lineNumber: parts[3] ? +parts[3] : null,\n    column: parts[4] ? +parts[4] : null\n  };\n}\n\nvar winjsRe = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|rsc|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nfunction parseWinjs(line) {\n  var parts = winjsRe.exec(line);\n\n  if (!parts) {\n    return null;\n  }\n\n  return {\n    file: parts[2],\n    methodName: parts[1] || UNKNOWN_FUNCTION,\n    arguments: [],\n    lineNumber: +parts[3],\n    column: parts[4] ? +parts[4] : null\n  };\n}\n\nvar geckoRe = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|rsc|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar geckoEvalRe = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nfunction parseGecko(line) {\n  var parts = geckoRe.exec(line);\n\n  if (!parts) {\n    return null;\n  }\n\n  var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n  var submatch = geckoEvalRe.exec(parts[3]);\n\n  if (isEval && submatch != null) {\n    // throw out eval line/column and use top-most line number\n    parts[3] = submatch[1];\n    parts[4] = submatch[2];\n    parts[5] = null; // no column when eval\n  }\n\n  return {\n    file: parts[3],\n    methodName: parts[1] || UNKNOWN_FUNCTION,\n    arguments: parts[2] ? parts[2].split(',') : [],\n    lineNumber: parts[4] ? +parts[4] : null,\n    column: parts[5] ? +parts[5] : null\n  };\n}\n\nvar javaScriptCoreRe = /^\\s*(?:([^@]*)(?:\\((.*?)\\))?@)?(\\S.*?):(\\d+)(?::(\\d+))?\\s*$/i;\n\nfunction parseJSC(line) {\n  var parts = javaScriptCoreRe.exec(line);\n\n  if (!parts) {\n    return null;\n  }\n\n  return {\n    file: parts[3],\n    methodName: parts[1] || UNKNOWN_FUNCTION,\n    arguments: [],\n    lineNumber: +parts[4],\n    column: parts[5] ? +parts[5] : null\n  };\n}\n\nvar nodeRe = /^\\s*at (?:((?:\\[object object\\])?[^\\\\/]+(?: \\[as \\S+\\])?) )?\\(?(.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nfunction parseNode(line) {\n  var parts = nodeRe.exec(line);\n\n  if (!parts) {\n    return null;\n  }\n\n  return {\n    file: parts[2],\n    methodName: parts[1] || UNKNOWN_FUNCTION,\n    arguments: [],\n    lineNumber: +parts[3],\n    column: parts[4] ? +parts[4] : null\n  };\n}\n\nexport { parse };\n","import type { Event, EventHint } from '@sentry/core';\nimport { debug, GLOBAL_OBJ, parseSemver, suppressTracing } from '@sentry/core';\nimport type { StackFrame } from 'stacktrace-parser';\nimport * as stackTraceParser from 'stacktrace-parser';\nimport { DEBUG_BUILD } from './debug-build';\n\ntype OriginalStackFrameResponse = {\n  originalStackFrame: StackFrame;\n  originalCodeFrame: string | null;\n  sourcePackage?: string;\n};\n\nconst globalWithInjectedValues = GLOBAL_OBJ as typeof GLOBAL_OBJ & {\n  _sentryBasePath?: string;\n  _sentryNextJsVersion: string | undefined;\n};\n\n/**\n * Constructs the base URL for the Next.js dev server, including the port and base path.\n * Returns only the base path when running in the browser (client-side) for relative URLs.\n */\nfunction getDevServerBaseUrl(): string {\n  let basePath = process.env._sentryBasePath ?? globalWithInjectedValues._sentryBasePath ?? '';\n\n  // Prefix the basepath with a slash if it doesn't have one\n  if (basePath !== '' && !basePath.match(/^\\//)) {\n    basePath = `/${basePath}`;\n  }\n\n  // eslint-disable-next-line no-restricted-globals\n  if (typeof window !== 'undefined') {\n    return basePath;\n  }\n\n  const devServerPort = process.env.PORT || '3000';\n  return `http://localhost:${devServerPort}${basePath}`;\n}\n\n/**\n * Fetches a URL with a 3-second timeout using AbortController.\n */\nasync function fetchWithTimeout(url: string, options: RequestInit = {}): Promise {\n  const controller = new AbortController();\n  const timer = setTimeout(() => controller.abort(), 3000);\n\n  return suppressTracing(() =>\n    fetch(url, {\n      ...options,\n      signal: controller.signal,\n    }).finally(() => {\n      clearTimeout(timer);\n    }),\n  );\n}\n\n/**\n * Event processor that will symbolicate errors by using the webpack/nextjs dev server that is used to show stack traces\n * in the dev overlay.\n */\nexport async function devErrorSymbolicationEventProcessor(event: Event, hint: EventHint): Promise {\n  // Filter out spans for requests resolving source maps for stack frames in dev mode\n  if (event.type === 'transaction') {\n    event.spans = event.spans?.filter(span => {\n      const httpUrlAttribute: unknown = span.data?.['http.url'];\n      if (typeof httpUrlAttribute === 'string') {\n        return !httpUrlAttribute.includes('__nextjs_original-stack-frame'); // could also be __nextjs_original-stack-frames (plural)\n      }\n\n      return true;\n    });\n  }\n\n  // Due to changes across Next.js versions, there are a million things that can go wrong here so we just try-catch the\n  // entire event processor. Symbolicated stack traces are just a nice to have.\n  try {\n    // oxlint-disable-next-line typescript/prefer-optional-chain\n    if (hint.originalException && hint.originalException instanceof Error && hint.originalException.stack) {\n      const frames = stackTraceParser.parse(hint.originalException.stack);\n      const nextJsVersion = globalWithInjectedValues._sentryNextJsVersion;\n\n      // If we for whatever reason don't have a Next.js version,\n      // we don't want to symbolicate as this previously lead to infinite loops\n      if (!nextJsVersion) {\n        return event;\n      }\n\n      const parsedNextjsVersion = parseSemver(nextJsVersion);\n\n      let resolvedFrames: ({\n        originalCodeFrame: string | null;\n        originalStackFrame: (StackFrame & { line1?: number; column1?: number }) | null;\n      } | null)[];\n\n      // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n      if (parsedNextjsVersion.major! > 15 || (parsedNextjsVersion.major === 15 && parsedNextjsVersion.minor! >= 2)) {\n        const r = await resolveStackFrames(frames);\n        if (r === null) {\n          return event;\n        }\n        resolvedFrames = r;\n      } else {\n        resolvedFrames = await Promise.all(\n          frames.map(frame => resolveStackFrame(frame, hint.originalException as Error)),\n        );\n      }\n\n      if (event.exception?.values?.[0]?.stacktrace?.frames) {\n        event.exception.values[0].stacktrace.frames = event.exception.values[0].stacktrace.frames.map(\n          (frame, i, frames) => {\n            const resolvedFrame = resolvedFrames[frames.length - 1 - i];\n            if (!resolvedFrame?.originalStackFrame || !resolvedFrame.originalCodeFrame) {\n              return {\n                ...frame,\n                platform: frame.filename?.startsWith('node:internal') ? 'nodejs' : undefined, // simple hack that will prevent a source mapping error from showing up\n                in_app: false,\n              };\n            }\n\n            const { contextLine, preContextLines, postContextLines } = parseOriginalCodeFrame(\n              resolvedFrame.originalCodeFrame,\n            );\n\n            return {\n              ...frame,\n              pre_context: preContextLines,\n              context_line: contextLine,\n              post_context: postContextLines,\n              function: resolvedFrame.originalStackFrame.methodName,\n              filename: resolvedFrame.originalStackFrame.file\n                ? stripWebpackInternalPrefix(resolvedFrame.originalStackFrame.file)\n                : undefined,\n              lineno:\n                resolvedFrame.originalStackFrame.lineNumber || resolvedFrame.originalStackFrame.line1 || undefined,\n              colno: resolvedFrame.originalStackFrame.column || resolvedFrame.originalStackFrame.column1 || undefined,\n            };\n          },\n        );\n      }\n    }\n  } catch {\n    return event;\n  }\n\n  return event;\n}\n\nasync function resolveStackFrame(\n  frame: StackFrame,\n  error: Error,\n): Promise<{ originalCodeFrame: string | null; originalStackFrame: StackFrame | null } | null> {\n  try {\n    if (!(frame.file?.startsWith('webpack-internal:') || frame.file?.startsWith('file:'))) {\n      return null;\n    }\n\n    const params = new URLSearchParams();\n    params.append('isServer', String(false)); // doesn't matter since it is overwritten by isAppDirectory\n    params.append('isEdgeServer', String(false)); // doesn't matter since it is overwritten by isAppDirectory\n    params.append('isAppDirectory', String(true)); // will force server to do more thorough checking\n    params.append('errorMessage', error.toString());\n    Object.keys(frame).forEach(key => {\n      params.append(key, (frame[key as keyof typeof frame] ?? '').toString());\n    });\n\n    const baseUrl = getDevServerBaseUrl();\n    const res = await fetchWithTimeout(`${baseUrl}/__nextjs_original-stack-frame?${params.toString()}`);\n\n    if (!res.ok || res.status === 204) {\n      return null;\n    }\n\n    const body: OriginalStackFrameResponse = await res.json();\n\n    return {\n      originalCodeFrame: body.originalCodeFrame,\n      originalStackFrame: body.originalStackFrame,\n    };\n  } catch (e) {\n    DEBUG_BUILD && debug.error('Failed to symbolicate event with Next.js dev server', e);\n    return null;\n  }\n}\n\nasync function resolveStackFrames(\n  frames: StackFrame[],\n): Promise<{ originalCodeFrame: string | null; originalStackFrame: StackFrame | null }[] | null> {\n  try {\n    const postBody = {\n      frames: frames\n        .filter(frame => {\n          return !!frame.file;\n        })\n        .map(frame => {\n          // https://github.com/vercel/next.js/blob/df0573a478baa8b55478a7963c473dddd59a5e40/packages/next/src/client/components/react-dev-overlay/server/middleware-turbopack.ts#L129\n          // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n          frame.file = frame.file!.replace(/^rsc:\\/\\/React\\/[^/]+\\//, '').replace(/\\?\\d+$/, '');\n\n          return {\n            file: frame.file,\n            methodName: frame.methodName ?? '',\n            arguments: [],\n            lineNumber: frame.lineNumber ?? 0,\n            column: frame.column ?? 0,\n            line1: frame.lineNumber ?? 0,\n            column1: frame.column ?? 0,\n          };\n        }),\n      isServer: false,\n      isEdgeServer: false,\n      isAppDirectory: true,\n    };\n\n    const baseUrl = getDevServerBaseUrl();\n    const res = await fetchWithTimeout(`${baseUrl}/__nextjs_original-stack-frames`, {\n      method: 'POST',\n      headers: {\n        'Content-Type': 'application/json',\n      },\n      body: JSON.stringify(postBody),\n    });\n\n    if (!res.ok || res.status === 204) {\n      return null;\n    }\n\n    const body: { value: OriginalStackFrameResponse }[] = await res.json();\n\n    return body.map(frame => {\n      return {\n        originalCodeFrame: frame.value.originalCodeFrame,\n        originalStackFrame: frame.value.originalStackFrame,\n      };\n    });\n  } catch (e) {\n    DEBUG_BUILD && debug.error('Failed to symbolicate event with Next.js dev server', e);\n    return null;\n  }\n}\n\nfunction parseOriginalCodeFrame(codeFrame: string): {\n  contextLine: string | undefined;\n  preContextLines: string[];\n  postContextLines: string[];\n} {\n  const preProcessedLines = codeFrame\n    // Remove ASCII control characters that are used for syntax highlighting\n    .replace(\n      // eslint-disable-next-line no-control-regex\n      /[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, // https://stackoverflow.com/a/29497680\n      '',\n    )\n    .split('\\n')\n    // Remove line that is supposed to indicate where the error happened\n    .filter(line => !line.match(/^\\s*\\|/))\n    // Find the error line\n    .map(line => ({\n      line,\n      isErrorLine: !!line.match(/^>/),\n    }))\n    // Remove the leading part that is just for prettier output\n    .map(lineObj => ({\n      ...lineObj,\n      line: lineObj.line.replace(/^.*\\|/, ''),\n    }));\n\n  const preContextLines = [];\n  let contextLine: string | undefined = undefined;\n  const postContextLines = [];\n\n  let reachedContextLine = false;\n\n  for (const preProcessedLine of preProcessedLines) {\n    if (preProcessedLine.isErrorLine) {\n      contextLine = preProcessedLine.line;\n      reachedContextLine = true;\n    } else if (reachedContextLine) {\n      postContextLines.push(preProcessedLine.line);\n    } else {\n      preContextLines.push(preProcessedLine.line);\n    }\n  }\n\n  return {\n    contextLine,\n    preContextLines,\n    postContextLines,\n  };\n}\n\n/**\n * Strips webpack-internal prefixes from filenames to clean up stack traces.\n *\n * Examples:\n * - \"webpack-internal:///./components/file.tsx\" -> \"./components/file.tsx\"\n * - \"webpack-internal:///(app-pages-browser)/./components/file.tsx\" -> \"./components/file.tsx\"\n */\nfunction stripWebpackInternalPrefix(filename: string): string | undefined {\n  if (!filename) {\n    return filename;\n  }\n\n  const webpackInternalRegex = /^webpack-internal:(?:\\/+)?(?:\\([^)]*\\)\\/)?(.+)$/;\n  const match = filename.match(webpackInternalRegex);\n\n  return match ? match[1] : filename;\n}\n","/**\n * Returns an environment setting value determined by Vercel's `VERCEL_ENV` environment variable.\n *\n * @param isClient Flag to indicate whether to use the `NEXT_PUBLIC_` prefixed version of the environment variable.\n */\nexport function getVercelEnv(isClient: boolean): string | undefined {\n  const vercelEnvVar = isClient ? process.env.NEXT_PUBLIC_VERCEL_ENV : process.env.VERCEL_ENV;\n  return vercelEnvVar ? `vercel-${vercelEnvVar}` : undefined;\n}\n","export const ATTR_NEXT_SPAN_TYPE = 'next.span_type';\nexport const ATTR_NEXT_SPAN_NAME = 'next.span_name';\nexport const ATTR_NEXT_ROUTE = 'next.route';\nexport const ATTR_NEXT_SPAN_DESCRIPTION = 'next.span_description';\nexport const ATTR_NEXT_SEGMENT = 'next.segment';\n","/**\n * If this attribute is attached to a transaction, the Next.js SDK will drop that transaction.\n */\nexport const TRANSACTION_ATTR_SHOULD_DROP_TRANSACTION = 'sentry.drop_transaction';\n\nexport const TRANSACTION_ATTR_SENTRY_TRACE_BACKFILL = 'sentry.sentry_trace_backfill';\n\nexport const TRANSACTION_ATTR_SENTRY_ROUTE_BACKFILL = 'sentry.route_backfill';\n","\"use strict\";\n\nfunction _interop_require_default(obj) {\n    return obj && obj.__esModule ? obj : { default: obj };\n}\nexports._ = _interop_require_default;\n","// Note: This file is JS because it's used by the taskfile-swc.js file, which is JS.\n// Keep file changes in sync with the corresponding `.d.ts` files.\n\n/**\n * These are the minimum browser versions that we consider \"modern\" and thus compile for by default.\n * This list was generated using `pnpm browserslist \"baseline widely available\"` on 2025-10-01.\n */\nconst MODERN_BROWSERSLIST_TARGET = [\n  'chrome 111',\n  'edge 111',\n  'firefox 111',\n  'safari 16.4',\n]\n\nmodule.exports = MODERN_BROWSERSLIST_TARGET\n","export const UNDERSCORE_NOT_FOUND_ROUTE = '/_not-found'\nexport const UNDERSCORE_NOT_FOUND_ROUTE_ENTRY = `${UNDERSCORE_NOT_FOUND_ROUTE}/page`\nexport const UNDERSCORE_GLOBAL_ERROR_ROUTE = '/_global-error'\nexport const UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY = `${UNDERSCORE_GLOBAL_ERROR_ROUTE}/page`\n","import MODERN_BROWSERSLIST_TARGET from './modern-browserslist-target'\n\nexport { MODERN_BROWSERSLIST_TARGET }\n\nexport type ValueOf = Required[keyof T]\n\nexport const COMPILER_NAMES = {\n  client: 'client',\n  server: 'server',\n  edgeServer: 'edge-server',\n} as const\n\nexport type CompilerNameValues = ValueOf\n\nexport const COMPILER_INDEXES: {\n  [compilerKey in CompilerNameValues]: number\n} = {\n  [COMPILER_NAMES.client]: 0,\n  [COMPILER_NAMES.server]: 1,\n  [COMPILER_NAMES.edgeServer]: 2,\n} as const\n\n// Re-export entry constants for backward compatibility\nexport {\n  UNDERSCORE_NOT_FOUND_ROUTE,\n  UNDERSCORE_NOT_FOUND_ROUTE_ENTRY,\n  UNDERSCORE_GLOBAL_ERROR_ROUTE,\n  UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY,\n} from './entry-constants'\n\nexport enum AdapterOutputType {\n  /**\n   * `PAGES` represents all the React pages that are under `pages/`.\n   */\n  PAGES = 'PAGES',\n\n  /**\n   * `PAGES_API` represents all the API routes under `pages/api/`.\n   */\n  PAGES_API = 'PAGES_API',\n  /**\n   * `APP_PAGE` represents all the React pages that are under `app/` with the\n   * filename of `page.{j,t}s{,x}`.\n   */\n  APP_PAGE = 'APP_PAGE',\n\n  /**\n   * `APP_ROUTE` represents all the API routes and metadata routes that are under `app/` with the\n   * filename of `route.{j,t}s{,x}`.\n   */\n  APP_ROUTE = 'APP_ROUTE',\n\n  /**\n   * `PRERENDER` represents an ISR enabled route that might\n   * have a seeded cache entry or fallback generated during build\n   */\n  PRERENDER = 'PRERENDER',\n\n  /**\n   * `STATIC_FILE` represents a static file (ie /_next/static)\n   */\n  STATIC_FILE = 'STATIC_FILE',\n\n  /**\n   * `MIDDLEWARE` represents the middleware output if present\n   */\n  MIDDLEWARE = 'MIDDLEWARE',\n}\n\nexport const PHASE_EXPORT = 'phase-export'\nexport const PHASE_ANALYZE = 'phase-analyze'\nexport const PHASE_PRODUCTION_BUILD = 'phase-production-build'\nexport const PHASE_PRODUCTION_SERVER = 'phase-production-server'\nexport const PHASE_DEVELOPMENT_SERVER = 'phase-development-server'\nexport const PHASE_TEST = 'phase-test'\nexport const PHASE_INFO = 'phase-info'\n\nexport type PHASE_TYPE =\n  | typeof PHASE_INFO\n  | typeof PHASE_TEST\n  | typeof PHASE_EXPORT\n  | typeof PHASE_ANALYZE\n  | typeof PHASE_PRODUCTION_BUILD\n  | typeof PHASE_PRODUCTION_SERVER\n  | typeof PHASE_DEVELOPMENT_SERVER\n\nexport const PAGES_MANIFEST = 'pages-manifest.json'\nexport const WEBPACK_STATS = 'webpack-stats.json'\nexport const APP_PATHS_MANIFEST = 'app-paths-manifest.json'\nexport const APP_PATH_ROUTES_MANIFEST = 'app-path-routes-manifest.json'\nexport const BUILD_MANIFEST = 'build-manifest.json'\nexport const FUNCTIONS_CONFIG_MANIFEST = 'functions-config-manifest.json'\nexport const SUBRESOURCE_INTEGRITY_MANIFEST = 'subresource-integrity-manifest'\nexport const NEXT_FONT_MANIFEST = 'next-font-manifest'\nexport const EXPORT_MARKER = 'export-marker.json'\nexport const EXPORT_DETAIL = 'export-detail.json'\nexport const PRERENDER_MANIFEST = 'prerender-manifest.json'\nexport const ROUTES_MANIFEST = 'routes-manifest.json'\nexport const IMAGES_MANIFEST = 'images-manifest.json'\nexport const SERVER_FILES_MANIFEST = 'required-server-files'\nexport const DEV_CLIENT_PAGES_MANIFEST = '_devPagesManifest.json'\nexport const MIDDLEWARE_MANIFEST = 'middleware-manifest.json'\nexport const TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST =\n  '_clientMiddlewareManifest.json'\nexport const TURBOPACK_CLIENT_BUILD_MANIFEST = 'client-build-manifest.json'\nexport const DEV_CLIENT_MIDDLEWARE_MANIFEST = '_devMiddlewareManifest.json'\nexport const REACT_LOADABLE_MANIFEST = 'react-loadable-manifest.json'\nexport const SERVER_DIRECTORY = 'server'\nexport const CONFIG_FILES = [\n  'next.config.js',\n  'next.config.mjs',\n  'next.config.ts',\n  // process.features can be undefined on Edge runtime\n  // TODO: Remove `as any` once we bump @types/node to v22.10.0+\n  ...((process?.features as any)?.typescript ? ['next.config.mts'] : []),\n]\nexport const BUILD_ID_FILE = 'BUILD_ID'\nexport const BLOCKED_PAGES = ['/_document', '/_app', '/_error']\nexport const CLIENT_PUBLIC_FILES_PATH = 'public'\nexport const CLIENT_STATIC_FILES_PATH = 'static'\nexport const STRING_LITERAL_DROP_BUNDLE = '__NEXT_DROP_CLIENT_FILE__'\nexport const NEXT_BUILTIN_DOCUMENT = '__NEXT_BUILTIN_DOCUMENT__'\nexport const BARREL_OPTIMIZATION_PREFIX = '__barrel_optimize__'\n\n// server/[entry]/page_client-reference-manifest.js\nexport const CLIENT_REFERENCE_MANIFEST = 'client-reference-manifest'\n// server/server-reference-manifest\nexport const SERVER_REFERENCE_MANIFEST = 'server-reference-manifest'\n// server/middleware-build-manifest.js\nexport const MIDDLEWARE_BUILD_MANIFEST = 'middleware-build-manifest'\n// server/middleware-react-loadable-manifest.js\nexport const MIDDLEWARE_REACT_LOADABLE_MANIFEST =\n  'middleware-react-loadable-manifest'\n// server/interception-route-rewrite-manifest.js\nexport const INTERCEPTION_ROUTE_REWRITE_MANIFEST =\n  'interception-route-rewrite-manifest'\n// server/dynamic-css-manifest.js\nexport const DYNAMIC_CSS_MANIFEST = 'dynamic-css-manifest'\n\n// static/runtime/main.js\nexport const CLIENT_STATIC_FILES_RUNTIME_MAIN = `main`\nexport const CLIENT_STATIC_FILES_RUNTIME_MAIN_APP = `${CLIENT_STATIC_FILES_RUNTIME_MAIN}-app`\n// next internal client components chunk for layouts\nexport const APP_CLIENT_INTERNALS = 'app-pages-internals'\n// static/runtime/react-refresh.js\nexport const CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH = `react-refresh`\n// static/runtime/webpack.js\nexport const CLIENT_STATIC_FILES_RUNTIME_WEBPACK = `webpack`\n// static/runtime/polyfills.js\nexport const CLIENT_STATIC_FILES_RUNTIME_POLYFILLS = 'polyfills'\nexport const CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL = Symbol(\n  CLIENT_STATIC_FILES_RUNTIME_POLYFILLS\n)\nexport const DEFAULT_RUNTIME_WEBPACK = 'webpack-runtime'\nexport const EDGE_RUNTIME_WEBPACK = 'edge-runtime-webpack'\nexport const STATIC_PROPS_ID = '__N_SSG'\nexport const SERVER_PROPS_ID = '__N_SSP'\nexport const DEFAULT_SERIF_FONT = {\n  name: 'Times New Roman',\n  xAvgCharWidth: 821,\n  azAvgWidth: 854.3953488372093,\n  unitsPerEm: 2048,\n}\nexport const DEFAULT_SANS_SERIF_FONT = {\n  name: 'Arial',\n  xAvgCharWidth: 904,\n  azAvgWidth: 934.5116279069767,\n  unitsPerEm: 2048,\n}\nexport const STATIC_STATUS_PAGES = ['/500']\nexport const TRACE_OUTPUT_VERSION = 1\n// in `MB`\nexport const TURBO_TRACE_DEFAULT_MEMORY_LIMIT = 6000\n\nexport const RSC_MODULE_TYPES = {\n  client: 'client',\n  server: 'server',\n} as const\n\n// comparing\n// https://nextjs.org/docs/api-reference/edge-runtime\n// with\n// https://nodejs.org/docs/latest/api/globals.html\nexport const EDGE_UNSUPPORTED_NODE_APIS = [\n  'clearImmediate',\n  'setImmediate',\n  'BroadcastChannel',\n  'ByteLengthQueuingStrategy',\n  'CompressionStream',\n  'CountQueuingStrategy',\n  'DecompressionStream',\n  'DomException',\n  'MessageChannel',\n  'MessageEvent',\n  'MessagePort',\n  'ReadableByteStreamController',\n  'ReadableStreamBYOBRequest',\n  'ReadableStreamDefaultController',\n  'TransformStreamDefaultController',\n  'WritableStreamDefaultController',\n]\n\nexport const SYSTEM_ENTRYPOINTS = new Set([\n  CLIENT_STATIC_FILES_RUNTIME_MAIN,\n  CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH,\n  CLIENT_STATIC_FILES_RUNTIME_MAIN_APP,\n])\n","module.exports = require('./dist/shared/lib/constants')\n","import { PHASE_PRODUCTION_BUILD } from 'next/constants';\n\n/**\n * Decide if the currently running process is part of the build phase or happening at runtime.\n */\nexport function isBuild(): boolean {\n  return process.env.NEXT_PHASE === PHASE_PRODUCTION_BUILD;\n}\n","import type { Span } from '@sentry/core';\nimport { debug, fill, flush, GLOBAL_OBJ, setHttpStatus, vercelWaitUntil } from '@sentry/core';\nimport type { ServerResponse } from 'http';\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { ResponseEndMethod, WrappedResponseEndMethod } from '../types';\n\n/**\n * Wrap `res.end()` so that it ends the span and flushes events before letting the request finish.\n *\n * Note: This wraps a sync method with an async method. While in general that's not a great idea in terms of keeping\n * things in the right order, in this case it's safe, because the native `.end()` actually *is* (effectively) async, and\n * its run actually *is* (literally) awaited, just manually so (which reflects the fact that the core of the\n * request/response code in Node by far predates the introduction of `async`/`await`). When `.end()` is done, it emits\n * the `prefinish` event, and only once that fires does request processing continue. See\n * https://github.com/nodejs/node/commit/7c9b607048f13741173d397795bac37707405ba7.\n *\n * Also note: `res.end()` isn't called until *after* all response data and headers have been sent, so blocking inside of\n * `end` doesn't delay data getting to the end user. See\n * https://nodejs.org/api/http.html#responseenddata-encoding-callback.\n *\n * @param span The span tracking the request\n * @param res: The request's corresponding response\n */\nexport function autoEndSpanOnResponseEnd(span: Span, res: ServerResponse): void {\n  const wrapEndMethod = (origEnd: ResponseEndMethod): WrappedResponseEndMethod => {\n    return function sentryWrappedEnd(this: ServerResponse, ...args: unknown[]) {\n      finishSpan(span, this);\n      return origEnd.call(this, ...args);\n    };\n  };\n\n  // Prevent double-wrapping\n  // res.end may be undefined during build when using `next export` to statically export a Next.js app\n  if (res.end && !(res.end as WrappedResponseEndMethod).__sentry_original__) {\n    fill(res, 'end', wrapEndMethod);\n  }\n}\n\n/** Finish the given response's span and set HTTP status data */\nexport function finishSpan(span: Span, res: ServerResponse): void {\n  setHttpStatus(span, res.statusCode);\n  span.end();\n}\n\n/**\n * Flushes pending Sentry events with a 2 second timeout and in a way that cannot create unhandled promise rejections.\n */\nexport async function flushSafelyWithTimeout(): Promise {\n  try {\n    DEBUG_BUILD && debug.log('Flushing events...');\n    await flush(2000);\n    DEBUG_BUILD && debug.log('Done flushing events');\n  } catch (e) {\n    DEBUG_BUILD && debug.log('Error while flushing events:\\n', e);\n  }\n}\n\n/**\n * Uses platform-specific waitUntil function to wait for the provided task to complete without blocking.\n */\nexport function waitUntil(task: Promise): void {\n  // If deployed on Cloudflare, use the Cloudflare waitUntil function to flush the events\n  if (isCloudflareWaitUntilAvailable()) {\n    cloudflareWaitUntil(task);\n    return;\n  }\n\n  // otherwise, use vercel's\n  vercelWaitUntil(task);\n}\n\ntype MinimalCloudflareContext = {\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  waitUntil(promise: Promise): void;\n};\n\n/**\n * Gets the Cloudflare context from the global object.\n * Relevant to opennext\n * https://github.com/opennextjs/opennextjs-cloudflare/blob/b53a046bd5c30e94a42e36b67747cefbf7785f9a/packages/cloudflare/src/cli/templates/init.ts#L17\n */\nfunction _getOpenNextCloudflareContext(): MinimalCloudflareContext | undefined {\n  const openNextCloudflareContextSymbol = Symbol.for('__cloudflare-context__');\n\n  return (\n    GLOBAL_OBJ as typeof GLOBAL_OBJ & {\n      [openNextCloudflareContextSymbol]?: {\n        ctx: MinimalCloudflareContext;\n      };\n    }\n  )[openNextCloudflareContextSymbol]?.ctx;\n}\n\n/**\n * Function that delays closing of a Cloudflare lambda until the provided promise is resolved.\n */\nexport function cloudflareWaitUntil(task: Promise): void {\n  _getOpenNextCloudflareContext()?.waitUntil(task);\n}\n\n/**\n * Checks if the Cloudflare waitUntil function is available globally.\n */\nexport function isCloudflareWaitUntilAvailable(): boolean {\n  return typeof _getOpenNextCloudflareContext()?.waitUntil === 'function';\n}\n","import { getSanitizedUrlStringFromUrlObject, parseStringToURLObject } from '@sentry/core';\n\ntype ComponentRouteParams = Record | undefined;\ntype HeadersDict = Record | undefined;\n\nconst HeaderKeys = {\n  FORWARDED_PROTO: 'x-forwarded-proto',\n  FORWARDED_HOST: 'x-forwarded-host',\n  HOST: 'host',\n  REFERER: 'referer',\n} as const;\n\n/**\n * Replaces route parameters in a path template with their values\n * @param path - The path template containing parameters in [paramName] format\n * @param params - Optional route parameters to replace in the template\n * @returns The path with parameters replaced\n */\nexport function substituteRouteParams(path: string, params?: ComponentRouteParams): string {\n  if (!params || typeof params !== 'object') return path;\n\n  let resultPath = path;\n  for (const [key, value] of Object.entries(params)) {\n    resultPath = resultPath.split(`[${key}]`).join(encodeURIComponent(value));\n  }\n  return resultPath;\n}\n\n/**\n * Normalizes a path by removing route groups\n * @param path - The path to normalize\n * @returns The normalized path\n */\nexport function sanitizeRoutePath(path: string): string {\n  const cleanedSegments = path\n    .split('/')\n    .filter(segment => segment && !(segment.startsWith('(') && segment.endsWith(')')));\n\n  return cleanedSegments.length > 0 ? `/${cleanedSegments.join('/')}` : '/';\n}\n\n/**\n * Constructs a full URL from the component route, parameters, and headers.\n *\n * @param componentRoute - The route template to construct the URL from\n * @param params - Optional route parameters to replace in the template\n * @param headersDict - Optional headers containing protocol and host information\n * @param pathname - Optional pathname coming from parent span \"http.target\"\n * @returns A sanitized URL string\n */\nexport function buildUrlFromComponentRoute(\n  componentRoute: string,\n  params?: ComponentRouteParams,\n  headersDict?: HeadersDict,\n  pathname?: string,\n): string {\n  const parameterizedPath = substituteRouteParams(componentRoute, params);\n  // If available, the pathname from the http.target of the HTTP request server span takes precedence over the parameterized path.\n  // Spans such as generateMetadata and Server Component rendering are typically direct children of that span.\n  const path = pathname ?? sanitizeRoutePath(parameterizedPath);\n\n  const protocol = headersDict?.[HeaderKeys.FORWARDED_PROTO];\n  const host = headersDict?.[HeaderKeys.FORWARDED_HOST] || headersDict?.[HeaderKeys.HOST];\n\n  if (!protocol || !host) {\n    return path;\n  }\n\n  const fullUrl = `${protocol}://${host}${path}`;\n\n  const urlObject = parseStringToURLObject(fullUrl);\n  if (!urlObject) {\n    return path;\n  }\n\n  return getSanitizedUrlStringFromUrlObject(urlObject);\n}\n\n/**\n * Returns a sanitized URL string from the referer header if it exists and is valid.\n *\n * @param headersDict - Optional headers containing the referer\n * @returns A sanitized URL string or undefined if referer is missing/invalid\n */\nexport function extractSanitizedUrlFromRefererHeader(headersDict?: HeadersDict): string | undefined {\n  const referer = headersDict?.[HeaderKeys.REFERER];\n  if (!referer) {\n    return undefined;\n  }\n\n  try {\n    const refererUrl = new URL(referer);\n    return getSanitizedUrlStringFromUrlObject(refererUrl);\n  } catch {\n    return undefined;\n  }\n}\n\n/**\n * Returns a sanitized URL string using the referer header if available,\n * otherwise constructs the URL from the component route, params, and headers.\n *\n * @param componentRoute - The route template to construct the URL from\n * @param params - Optional route parameters to replace in the template\n * @param headersDict - Optional headers containing protocol, host, and referer\n * @param pathname - Optional pathname coming from root span \"http.target\"\n * @returns A sanitized URL string\n */\nexport function getSanitizedRequestUrl(\n  componentRoute: string,\n  params?: ComponentRouteParams,\n  headersDict?: HeadersDict,\n  pathname?: string,\n): string {\n  const refererUrl = extractSanitizedUrlFromRefererHeader(headersDict);\n  if (refererUrl) {\n    return refererUrl;\n  }\n\n  return buildUrlFromComponentRoute(componentRoute, params, headersDict, pathname);\n}\n","import type { Event } from '@sentry/core';\nimport { getClient } from '@sentry/core';\nimport { getSanitizedRequestUrl } from './urls';\n\n/**\n * Sets the URL processing metadata for the event.\n */\nexport function setUrlProcessingMetadata(event: Event): void {\n  // Skip if not a server-side transaction\n  if (event.type !== 'transaction' || event.contexts?.trace?.op !== 'http.server' || !event.contexts?.trace?.data) {\n    return;\n  }\n\n  // Only add URL if sendDefaultPii is enabled, as URLs may contain PII\n  const client = getClient();\n  if (!client?.getOptions().sendDefaultPii) {\n    return;\n  }\n\n  const traceData = event.contexts.trace.data;\n\n  // Get the route from trace data\n  const componentRoute = traceData['next.route'] || traceData['http.route'];\n  const httpTarget = traceData['http.target'] as string | undefined;\n\n  if (!componentRoute) {\n    return;\n  }\n\n  // Extract headers\n  const isolationScopeData = event.sdkProcessingMetadata?.capturedSpanIsolationScope?.getScopeData();\n  const headersDict = isolationScopeData?.sdkProcessingMetadata?.normalizedRequest?.headers;\n\n  const url = getSanitizedRequestUrl(componentRoute, undefined, headersDict, httpTarget?.toString());\n\n  // Add URL to the isolation scope's normalizedRequest so requestDataIntegration picks it up\n  if (url && isolationScopeData?.sdkProcessingMetadata) {\n    isolationScopeData.sdkProcessingMetadata.normalizedRequest =\n      isolationScopeData.sdkProcessingMetadata.normalizedRequest || {};\n    isolationScopeData.sdkProcessingMetadata.normalizedRequest.url = url;\n  }\n}\n","import { defineIntegration, escapeStringForRegex, rewriteFramesIntegration } from '@sentry/core';\nimport * as path from 'path';\n\nexport const distDirRewriteFramesIntegration = defineIntegration(({ distDirName }: { distDirName: string }) => {\n  // nextjs always puts the build directory at the project root level, which is also where you run `next start` from, so\n  // we can read in the project directory from the currently running process\n  const distDirAbsPath = path.resolve(distDirName).replace(/(\\/|\\\\)$/, ''); // We strip trailing slashes because \"app:///_next\" also doesn't have one\n\n  // oxlint-disable-next-line sdk/no-regexp-constructor -- user input is escaped\n  const SOURCEMAP_FILENAME_REGEX = new RegExp(escapeStringForRegex(distDirAbsPath));\n\n  const rewriteFramesInstance = rewriteFramesIntegration({\n    iteratee: frame => {\n      frame.filename = frame.filename?.replace(SOURCEMAP_FILENAME_REGEX, 'app:///_next');\n      return frame;\n    },\n  });\n\n  return {\n    ...rewriteFramesInstance,\n    name: 'DistDirRewriteFrames',\n  };\n});\n","import type { Span, WebFetchHeaders } from '@sentry/core';\nimport { getClient, httpHeadersToSpanAttributes, winterCGHeadersToDict } from '@sentry/core';\n\n/**\n * Extracts HTTP request headers as span attributes and optionally applies them to a span.\n */\nexport function addHeadersAsAttributes(\n  headers: WebFetchHeaders | Headers | Record | undefined,\n  span?: Span,\n): Record {\n  if (!headers) {\n    return {};\n  }\n\n  const headersDict: Record =\n    headers instanceof Headers || (typeof headers === 'object' && 'get' in headers)\n      ? winterCGHeadersToDict(headers as Headers)\n      : headers;\n\n  const headerAttributes = httpHeadersToSpanAttributes(headersDict, getClient()?.getOptions().sendDefaultPii ?? false);\n\n  if (span) {\n    span.setAttributes(headerAttributes);\n  }\n\n  return headerAttributes;\n}\n","import { SEMATTRS_HTTP_TARGET } from '@opentelemetry/semantic-conventions';\nimport { getClient, GLOBAL_OBJ, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, type Span, type SpanAttributes } from '@sentry/core';\nimport { isSentryRequestSpan } from '@sentry/opentelemetry';\nimport { ATTR_NEXT_SPAN_TYPE } from '../nextSpanAttributes';\nimport { TRANSACTION_ATTR_SHOULD_DROP_TRANSACTION } from '../span-attributes-with-logic-attached';\n\nconst globalWithInjectedValues = GLOBAL_OBJ as typeof GLOBAL_OBJ & {\n  _sentryRewritesTunnelPath?: string;\n};\n\n/**\n * Drops spans for tunnel requests from middleware, fetch instrumentation, or BaseServer.handleRequest.\n * This catches:\n * 1. Requests to the local tunnel route (before rewrite) via middleware or BaseServer.handleRequest\n * 2. Requests to Sentry ingest (after rewrite) via fetch spans\n */\nexport function dropMiddlewareTunnelRequests(span: Span, attrs: SpanAttributes | undefined): void {\n  // When the user brings their own OTel setup (skipOpenTelemetrySetup: true), we should not\n  // mutate their spans with Sentry-internal attributes as it pollutes their tracing backends.\n  if ((getClient()?.getOptions() as { skipOpenTelemetrySetup?: boolean } | undefined)?.skipOpenTelemetrySetup) {\n    return;\n  }\n\n  // Only filter middleware spans, HTTP fetch spans, or BaseServer.handleRequest spans\n  const isMiddleware = attrs?.[ATTR_NEXT_SPAN_TYPE] === 'Middleware.execute';\n  // The fetch span could be originating from rewrites re-writing a tunnel request\n  // So we want to filter it out\n  const isFetchSpan = attrs?.[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] === 'auto.http.otel.node_fetch';\n  const isBaseServerHandleRequest = attrs?.[ATTR_NEXT_SPAN_TYPE] === 'BaseServer.handleRequest';\n\n  // If the span is not a middleware span, fetch span, or BaseServer.handleRequest span, return\n  if (!isMiddleware && !isFetchSpan && !isBaseServerHandleRequest) {\n    return;\n  }\n\n  // Check if this is either a tunnel route request or a Sentry ingest request\n  const isTunnel = isTunnelRouteSpan(attrs || {});\n  const isSentry = isSentryRequestSpan(span);\n\n  if (isTunnel || isSentry) {\n    // Mark the span to be dropped\n    span.setAttribute(TRANSACTION_ATTR_SHOULD_DROP_TRANSACTION, true);\n  }\n}\n\n/**\n * Checks if a span's HTTP target matches the tunnel route.\n */\nfunction isTunnelRouteSpan(spanAttributes: Record): boolean {\n  const tunnelPath = globalWithInjectedValues._sentryRewritesTunnelPath || process.env._sentryRewritesTunnelPath;\n  if (!tunnelPath) {\n    return false;\n  }\n\n  // eslint-disable-next-line deprecation/deprecation\n  const httpTarget = spanAttributes[SEMATTRS_HTTP_TARGET];\n\n  if (typeof httpTarget === 'string') {\n    // Extract pathname from the target (e.g., \"/tunnel?o=123&p=456\" -> \"/tunnel\")\n    const pathname = httpTarget.split('?')[0] || '';\n\n    return pathname === tunnelPath || pathname.startsWith(`${tunnelPath}/`);\n  }\n\n  return false;\n}\n","import { ATTR_HTTP_ROUTE } from '@opentelemetry/semantic-conventions';\nimport type { PropagationContext, Span, SpanAttributes } from '@sentry/core';\nimport {\n  debug,\n  getActiveSpan,\n  getClient,\n  getRootSpan,\n  GLOBAL_OBJ,\n  Scope,\n  SEMANTIC_ATTRIBUTE_SENTRY_OP,\n  spanToJSON,\n  startNewTrace,\n} from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { ATTR_NEXT_SEGMENT, ATTR_NEXT_SPAN_NAME, ATTR_NEXT_SPAN_TYPE } from '../nextSpanAttributes';\nimport { TRANSACTION_ATTR_SHOULD_DROP_TRANSACTION } from '../span-attributes-with-logic-attached';\n\nconst commonPropagationContextMap = new WeakMap();\n\nconst PAGE_SEGMENT = '__PAGE__';\n\n/**\n * Takes a shared (garbage collectable) object between resources, e.g. a headers object shared between Next.js server components and returns a common propagation context.\n *\n * @param commonObject The shared object.\n * @param propagationContext The propagation context that should be shared between all the resources if no propagation context was registered yet.\n * @returns the shared propagation context.\n */\nexport function commonObjectToPropagationContext(\n  commonObject: unknown,\n  propagationContext: PropagationContext,\n): PropagationContext {\n  if (typeof commonObject === 'object' && commonObject) {\n    const memoPropagationContext = commonPropagationContextMap.get(commonObject);\n    if (memoPropagationContext) {\n      return memoPropagationContext;\n    } else {\n      commonPropagationContextMap.set(commonObject, propagationContext);\n      return propagationContext;\n    }\n  } else {\n    return propagationContext;\n  }\n}\n\nconst commonIsolationScopeMap = new WeakMap();\n\n/**\n * Takes a shared (garbage collectable) object between resources, e.g. a headers object shared between Next.js server components and returns a common propagation context.\n *\n * @param commonObject The shared object.\n * @param isolationScope The isolationScope that should be shared between all the resources if no isolation scope was created yet.\n * @returns the shared isolation scope.\n */\nexport function commonObjectToIsolationScope(commonObject: unknown): Scope {\n  if (typeof commonObject === 'object' && commonObject) {\n    const memoIsolationScope = commonIsolationScopeMap.get(commonObject);\n    if (memoIsolationScope) {\n      return memoIsolationScope;\n    } else {\n      const newIsolationScope = new Scope();\n      commonIsolationScopeMap.set(commonObject, newIsolationScope);\n      return newIsolationScope;\n    }\n  } else {\n    return new Scope();\n  }\n}\n\ninterface AsyncLocalStorage {\n  getStore(): T | undefined;\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  run(store: T, callback: (...args: TArgs) => R, ...args: TArgs): R;\n}\n\nlet nextjsEscapedAsyncStorage: AsyncLocalStorage;\n\n/**\n * Will mark the execution context of the callback as \"escaped\" from Next.js internal tracing by unsetting the active\n * span and propagation context. When an execution passes through this function multiple times, it is a noop after the\n * first time.\n */\nexport function escapeNextjsTracing(cb: () => T): T {\n  const MaybeGlobalAsyncLocalStorage = (GLOBAL_OBJ as { AsyncLocalStorage?: new () => AsyncLocalStorage })\n    .AsyncLocalStorage;\n\n  if (!MaybeGlobalAsyncLocalStorage) {\n    DEBUG_BUILD &&\n      debug.warn(\n        \"Tried to register AsyncLocalStorage async context strategy in a runtime that doesn't support AsyncLocalStorage.\",\n      );\n    return cb();\n  }\n\n  if (!nextjsEscapedAsyncStorage) {\n    nextjsEscapedAsyncStorage = new MaybeGlobalAsyncLocalStorage();\n  }\n\n  if (nextjsEscapedAsyncStorage.getStore()) {\n    return cb();\n  } else {\n    return startNewTrace(() => {\n      return nextjsEscapedAsyncStorage.run(true, () => {\n        return cb();\n      });\n    });\n  }\n}\n\n/**\n * Ideally this function never lands in the develop branch.\n *\n * Drops the entire span tree this function was called in, if it was a span tree created by Next.js.\n */\nexport function dropNextjsRootContext(): void {\n  // When the user brings their own OTel setup (skipOpenTelemetrySetup: true), we should not\n  // mutate their spans with Sentry-internal attributes like `sentry.drop_transaction`\n  if ((getClient()?.getOptions() as { skipOpenTelemetrySetup?: boolean } | undefined)?.skipOpenTelemetrySetup) {\n    return;\n  }\n\n  const nextJsOwnedSpan = getActiveSpan();\n  if (nextJsOwnedSpan) {\n    const rootSpan = getRootSpan(nextJsOwnedSpan);\n    const rootSpanAttributes = spanToJSON(rootSpan).data;\n    if (rootSpanAttributes?.['next.span_type']) {\n      getRootSpan(nextJsOwnedSpan)?.setAttribute(TRANSACTION_ATTR_SHOULD_DROP_TRANSACTION, true);\n    }\n  }\n}\n\n/**\n * Checks if the span is a resolve segment span.\n * @param spanAttributes The attributes of the span to check.\n * @returns True if the span is a resolve segment span, false otherwise.\n */\nexport function isResolveSegmentSpan(spanAttributes: SpanAttributes): boolean {\n  return (\n    spanAttributes[ATTR_NEXT_SPAN_TYPE] === 'NextNodeServer.getLayoutOrPageModule' &&\n    spanAttributes[ATTR_NEXT_SPAN_NAME] === 'resolve segment modules' &&\n    typeof spanAttributes[ATTR_NEXT_SEGMENT] === 'string'\n  );\n}\n\n/**\n * Returns the enhanced name for a resolve segment span.\n * @param segment The segment of the resolve segment span.\n * @param route The route of the resolve segment span.\n * @returns The enhanced name for the resolve segment span.\n */\nexport function getEnhancedResolveSegmentSpanName({ segment, route }: { segment: string; route: string }): string {\n  if (segment === PAGE_SEGMENT) {\n    return `resolve page server component \"${route}\"`;\n  }\n\n  if (segment === '') {\n    return 'resolve root layout server component';\n  }\n\n  return `resolve layout server component \"${segment}\"`;\n}\n\n/**\n * Maybe enhances the span name for a resolve segment span.\n * If the span is not a resolve segment span, this function does nothing.\n * @param activeSpan The active span.\n * @param spanAttributes The attributes of the span to check.\n * @param rootSpanAttributes The attributes of the according root span.\n */\nexport function maybeEnhanceServerComponentSpanName(\n  activeSpan: Span,\n  spanAttributes: SpanAttributes,\n  rootSpanAttributes: SpanAttributes,\n): void {\n  if (!isResolveSegmentSpan(spanAttributes)) {\n    return;\n  }\n\n  const segment = spanAttributes[ATTR_NEXT_SEGMENT] as string;\n  const route = rootSpanAttributes[ATTR_HTTP_ROUTE];\n  const enhancedName = getEnhancedResolveSegmentSpanName({ segment, route: typeof route === 'string' ? route : '' });\n  activeSpan.updateName(enhancedName);\n  activeSpan.setAttributes({\n    'sentry.nextjs.ssr.function.type': segment === PAGE_SEGMENT ? 'Page' : 'Layout',\n    'sentry.nextjs.ssr.function.route': route,\n  });\n  activeSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'function.nextjs');\n}\n","import type { Span } from '@sentry/core';\nimport { _INTERNAL_safeDateNow, captureCheckIn, debug, getIsolationScope, spanToJSON } from '@sentry/core';\nimport { DEBUG_BUILD } from '../common/debug-build';\nimport type { VercelCronsConfig } from '../common/types';\n\n// Attribute keys for storing cron check-in data on spans\nconst ATTR_SENTRY_CRON_CHECK_IN_ID = 'sentry.cron.checkInId';\nconst ATTR_SENTRY_CRON_MONITOR_SLUG = 'sentry.cron.monitorSlug';\nconst ATTR_SENTRY_CRON_START_TIME = 'sentry.cron.startTime';\nconst ATTR_SENTRY_CRON_SCHEDULE = 'sentry.cron.schedule';\n\n/**\n * Gets the Vercel crons configuration that was injected at build time.\n */\nfunction getVercelCronsConfig(): VercelCronsConfig {\n  const globalWithCronsConfig = globalThis as typeof globalThis & {\n    _sentryVercelCronsConfig?: string;\n  };\n\n  if (!globalWithCronsConfig._sentryVercelCronsConfig) {\n    return undefined;\n  }\n\n  try {\n    return JSON.parse(globalWithCronsConfig._sentryVercelCronsConfig) as VercelCronsConfig;\n  } catch {\n    DEBUG_BUILD && debug.log('[@sentry/nextjs] Failed to parse Vercel crons config');\n    return undefined;\n  }\n}\n\n/**\n * Checks if the request is a Vercel cron request and starts a check-in if it matches a configured cron.\n */\nexport function maybeStartCronCheckIn(span: Span, route: string | undefined): void {\n  const vercelCronsConfig = getVercelCronsConfig();\n  if (!vercelCronsConfig || !route) {\n    return;\n  }\n\n  // The strategy here is to check if the request is a Vercel cron\n  // request by checking the user agent, vercel always sets the user agent to 'vercel-cron/1.0'\n\n  const headers = getIsolationScope().getScopeData().sdkProcessingMetadata?.normalizedRequest?.headers as\n    | Record\n    | undefined;\n\n  if (!headers) {\n    return;\n  }\n\n  const userAgent = Array.isArray(headers['user-agent']) ? headers['user-agent'][0] : headers['user-agent'];\n  if (!userAgent?.includes('vercel-cron')) {\n    return;\n  }\n\n  const matchedCron = vercelCronsConfig.find(cron => cron.path === route);\n  if (!matchedCron?.path || !matchedCron.schedule) {\n    return;\n  }\n\n  // Use raw path as monitor slug to match legacy wrapApiHandlerWithSentryVercelCrons behavior,\n  // so migration from automaticVercelMonitors to vercelCronsMonitoring keeps the same monitors.\n  const monitorSlug = matchedCron.path;\n  const startTime = _INTERNAL_safeDateNow() / 1000;\n\n  const checkInId = captureCheckIn(\n    { monitorSlug, status: 'in_progress' },\n    {\n      maxRuntime: 60 * 12,\n      schedule: { type: 'crontab', value: matchedCron.schedule },\n    },\n  );\n\n  DEBUG_BUILD && debug.log(`[Cron] Started check-in for \"${monitorSlug}\" with ID \"${checkInId}\"`);\n\n  // Store marking attributes on the span so we can complete the check-in later\n  span.setAttribute(ATTR_SENTRY_CRON_CHECK_IN_ID, checkInId);\n  span.setAttribute(ATTR_SENTRY_CRON_MONITOR_SLUG, monitorSlug);\n  span.setAttribute(ATTR_SENTRY_CRON_START_TIME, startTime);\n  span.setAttribute(ATTR_SENTRY_CRON_SCHEDULE, matchedCron.schedule);\n}\n\n/**\n * Completes a Vercel cron check-in when a span ends.\n * Should be called from the spanEnd event handler.\n */\nexport function maybeCompleteCronCheckIn(span: Span): void {\n  const spanData = spanToJSON(span).data;\n  const checkInId = spanData?.[ATTR_SENTRY_CRON_CHECK_IN_ID];\n  const monitorSlug = spanData?.[ATTR_SENTRY_CRON_MONITOR_SLUG];\n  const startTime = spanData?.[ATTR_SENTRY_CRON_START_TIME];\n  const schedule = spanData?.[ATTR_SENTRY_CRON_SCHEDULE];\n\n  if (!checkInId || !monitorSlug || typeof startTime !== 'number') {\n    return;\n  }\n\n  const duration = _INTERNAL_safeDateNow() / 1000 - startTime;\n  const spanStatus = spanToJSON(span).status;\n  // Span status is 'ok' for success, undefined for unset, or an error message like 'internal_error'\n  const checkInStatus = spanStatus && spanStatus !== 'ok' ? 'error' : 'ok';\n\n  // Include monitor_config for upsert in case the in_progress check-in was lost\n  const monitorConfig =\n    typeof schedule === 'string'\n      ? {\n          maxRuntime: 60 * 12,\n          schedule: { type: 'crontab' as const, value: schedule },\n        }\n      : undefined;\n\n  captureCheckIn(\n    {\n      checkInId: checkInId as string,\n      monitorSlug: monitorSlug as string,\n      status: checkInStatus,\n      duration,\n    },\n    monitorConfig,\n  );\n\n  // Cleanup marking attributes so they don't pollute user span data\n  span.setAttribute(ATTR_SENTRY_CRON_CHECK_IN_ID, undefined);\n  span.setAttribute(ATTR_SENTRY_CRON_MONITOR_SLUG, undefined);\n  span.setAttribute(ATTR_SENTRY_CRON_START_TIME, undefined);\n  span.setAttribute(ATTR_SENTRY_CRON_SCHEDULE, undefined);\n\n  DEBUG_BUILD && debug.log(`[Cron] Completed check-in for \"${monitorSlug}\" with status \"${checkInStatus}\"`);\n}\n","import type { Span } from '@sentry/core';\nimport { getIsolationScope, spanToJSON } from '@sentry/core';\n\n// OTel Messaging semantic convention attribute keys\nconst ATTR_MESSAGING_SYSTEM = 'messaging.system';\nconst ATTR_MESSAGING_DESTINATION_NAME = 'messaging.destination.name';\nconst ATTR_MESSAGING_MESSAGE_ID = 'messaging.message.id';\nconst ATTR_MESSAGING_OPERATION_NAME = 'messaging.operation.name';\nconst ATTR_MESSAGING_CONSUMER_GROUP_NAME = 'messaging.consumer.group.name';\nconst ATTR_MESSAGING_MESSAGE_DELIVERY_COUNT = 'messaging.message.delivery_count';\n\n// Marker attribute to track enriched spans for cleanup\nconst ATTR_SENTRY_QUEUE_ENRICHED = 'sentry.queue.enriched';\n\n/**\n * Checks if the incoming request is a Vercel Queue consumer callback (push mode)\n * and enriches the http.server span with OTel messaging semantic attributes.\n *\n * Vercel Queues push delivery sends a CloudEvent POST with the header:\n *   ce-type: com.vercel.queue.v2beta\n * along with ce-vqs* headers carrying queue metadata.\n */\nexport function maybeEnrichQueueConsumerSpan(span: Span): void {\n  const headers = getIsolationScope().getScopeData().sdkProcessingMetadata?.normalizedRequest?.headers as\n    | Record\n    | undefined;\n\n  if (!headers) {\n    return;\n  }\n\n  const ceType = Array.isArray(headers['ce-type']) ? headers['ce-type'][0] : headers['ce-type'];\n  if (ceType !== 'com.vercel.queue.v2beta') {\n    return;\n  }\n\n  const queueName = getHeader(headers, 'ce-vqsqueuename');\n  const messageId = getHeader(headers, 'ce-vqsmessageid');\n  const consumerGroup = getHeader(headers, 'ce-vqsconsumergroup');\n  const deliveryCount = getHeader(headers, 'ce-vqsdeliverycount');\n\n  span.setAttribute(ATTR_MESSAGING_SYSTEM, 'vercel.queue');\n  span.setAttribute(ATTR_MESSAGING_OPERATION_NAME, 'process');\n\n  if (queueName) {\n    span.setAttribute(ATTR_MESSAGING_DESTINATION_NAME, queueName);\n  }\n\n  if (messageId) {\n    span.setAttribute(ATTR_MESSAGING_MESSAGE_ID, messageId);\n  }\n\n  if (consumerGroup) {\n    span.setAttribute(ATTR_MESSAGING_CONSUMER_GROUP_NAME, consumerGroup);\n  }\n\n  if (deliveryCount) {\n    const count = parseInt(deliveryCount, 10);\n    if (!isNaN(count)) {\n      span.setAttribute(ATTR_MESSAGING_MESSAGE_DELIVERY_COUNT, count);\n    }\n  }\n\n  // Mark span so we can clean up marker on spanEnd\n  span.setAttribute(ATTR_SENTRY_QUEUE_ENRICHED, true);\n}\n\n/**\n * Checks if an outgoing http.client span targets the Vercel Queues API\n * and enriches it with OTel messaging semantic attributes (producer side).\n *\n * The Vercel Queues API lives at *.vercel-queue.com/api/v3/topic/.\n * We use domain-based detection to avoid false positives from user routes.\n */\nexport function maybeEnrichQueueProducerSpan(span: Span): void {\n  const spanData = spanToJSON(span).data;\n\n  // http.client spans have url.full attribute\n  const urlFull = spanData?.['url.full'] as string | undefined;\n  if (!urlFull) {\n    return;\n  }\n\n  let parsed: URL;\n  try {\n    parsed = new URL(urlFull);\n  } catch {\n    return;\n  }\n\n  if (parsed.hostname !== 'vercel-queue.com' && !parsed.hostname.endsWith('.vercel-queue.com')) {\n    return;\n  }\n\n  // Extract topic from path: /api/v3/topic/[/]\n  const topicMatch = parsed.pathname.match(/^\\/api\\/v3\\/topic\\/([^/]+)/);\n  if (!topicMatch) {\n    return;\n  }\n\n  const topic = decodeURIComponent(topicMatch[1]!);\n\n  span.setAttribute(ATTR_MESSAGING_SYSTEM, 'vercel.queue');\n  span.setAttribute(ATTR_MESSAGING_DESTINATION_NAME, topic);\n  span.setAttribute(ATTR_MESSAGING_OPERATION_NAME, 'send');\n\n  // Mark span so we can clean up marker on spanEnd\n  span.setAttribute(ATTR_SENTRY_QUEUE_ENRICHED, true);\n}\n\n/**\n * Cleans up the internal marker attribute from enriched queue spans on end.\n */\nexport function maybeCleanupQueueSpan(span: Span): void {\n  const spanData = spanToJSON(span).data;\n  if (spanData?.[ATTR_SENTRY_QUEUE_ENRICHED]) {\n    span.setAttribute(ATTR_SENTRY_QUEUE_ENRICHED, undefined);\n  }\n}\n\nfunction getHeader(headers: Record, name: string): string | undefined {\n  const value = headers[name];\n  return Array.isArray(value) ? value[0] : value;\n}\n","import { context } from '@opentelemetry/api';\nimport { ATTR_HTTP_REQUEST_METHOD, ATTR_HTTP_ROUTE, SEMATTRS_HTTP_METHOD } from '@opentelemetry/semantic-conventions';\nimport type { Span } from '@sentry/core';\nimport {\n  getCapturedScopesOnSpan,\n  getCurrentScope,\n  getIsolationScope,\n  getRootSpan,\n  SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n  setCapturedScopesOnSpan,\n  spanToJSON,\n} from '@sentry/core';\nimport { getScopesFromContext } from '@sentry/opentelemetry';\nimport { ATTR_NEXT_ROUTE, ATTR_NEXT_SPAN_NAME, ATTR_NEXT_SPAN_TYPE } from '../common/nextSpanAttributes';\nimport { addHeadersAsAttributes } from '../common/utils/addHeadersAsAttributes';\nimport { dropMiddlewareTunnelRequests } from '../common/utils/dropMiddlewareTunnelRequests';\nimport { maybeEnhanceServerComponentSpanName } from '../common/utils/tracingUtils';\nimport { maybeStartCronCheckIn } from './vercelCronsMonitoring';\nimport { maybeEnrichQueueConsumerSpan, maybeEnrichQueueProducerSpan } from './vercelQueuesMonitoring';\n\n/**\n * Handles the on span start event for Next.js spans.\n * This function is used to enhance the span with additional information such as the route, the method, the headers, etc.\n * It is called for every span that is started by Next.js.\n * @param span The span that is starting.\n */\nexport function handleOnSpanStart(span: Span): void {\n  const spanAttributes = spanToJSON(span).data;\n  const rootSpan = getRootSpan(span);\n  const rootSpanAttributes = spanToJSON(rootSpan).data;\n  const isRootSpan = span === rootSpan;\n\n  dropMiddlewareTunnelRequests(span, spanAttributes);\n\n  // What we do in this glorious piece of code, is hoist any information about parameterized routes from spans emitted\n  // by Next.js via the `next.route` attribute, up to the transaction by setting the http.route attribute.\n  if (typeof spanAttributes?.[ATTR_NEXT_ROUTE] === 'string') {\n    // Only hoist the http.route attribute if the transaction doesn't already have it\n    if (\n      // eslint-disable-next-line deprecation/deprecation\n      (rootSpanAttributes?.[ATTR_HTTP_REQUEST_METHOD] || rootSpanAttributes?.[SEMATTRS_HTTP_METHOD]) &&\n      !rootSpanAttributes?.[ATTR_HTTP_ROUTE]\n    ) {\n      const route = spanAttributes[ATTR_NEXT_ROUTE].replace(/\\/route$/, '');\n      rootSpan.updateName(route);\n      rootSpan.setAttribute(ATTR_HTTP_ROUTE, route);\n      // Preserving the original attribute despite internally not depending on it\n      rootSpan.setAttribute(ATTR_NEXT_ROUTE, route);\n\n      // Update the isolation scope's transaction name so that non-transaction events\n      // (e.g. captureMessage, captureException) also get the parameterized route.\n      // eslint-disable-next-line deprecation/deprecation\n      const method = rootSpanAttributes?.[ATTR_HTTP_REQUEST_METHOD] || rootSpanAttributes?.[SEMATTRS_HTTP_METHOD];\n      if (typeof method === 'string') {\n        getIsolationScope().setTransactionName(`${method} ${route}`);\n      }\n\n      // Check if this is a Vercel cron request and start a check-in\n      maybeStartCronCheckIn(rootSpan, route);\n\n      // Enrich queue consumer spans (Vercel Queue push delivery via CloudEvent)\n      maybeEnrichQueueConsumerSpan(rootSpan);\n    }\n  }\n\n  if (spanAttributes?.[ATTR_NEXT_SPAN_TYPE] === 'Middleware.execute') {\n    const middlewareName = spanAttributes[ATTR_NEXT_SPAN_NAME];\n    if (typeof middlewareName === 'string') {\n      rootSpan.updateName(middlewareName);\n      rootSpan.setAttribute(ATTR_HTTP_ROUTE, middlewareName);\n      rootSpan.setAttribute(ATTR_NEXT_SPAN_NAME, middlewareName);\n    }\n    span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, 'auto');\n  }\n\n  // We want to skip span data inference for any spans generated by Next.js. Reason being that Next.js emits spans\n  // with patterns (e.g. http.server spans) that will produce confusing data.\n  if (spanAttributes?.[ATTR_NEXT_SPAN_TYPE] !== undefined) {\n    span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, 'auto');\n  }\n\n  if (isRootSpan) {\n    const headers = getIsolationScope().getScopeData().sdkProcessingMetadata?.normalizedRequest?.headers;\n    addHeadersAsAttributes(headers, rootSpan);\n  }\n\n  // We want to fork the isolation scope for incoming requests\n  if (spanAttributes?.[ATTR_NEXT_SPAN_TYPE] === 'BaseServer.handleRequest' && isRootSpan) {\n    const scopes = getCapturedScopesOnSpan(span);\n\n    const isolationScope = (scopes.isolationScope || getIsolationScope()).clone();\n    const scope = scopes.scope || getCurrentScope();\n\n    const currentScopesPointer = getScopesFromContext(context.active());\n    if (currentScopesPointer) {\n      currentScopesPointer.isolationScope = isolationScope;\n    }\n\n    setCapturedScopesOnSpan(span, scope, isolationScope);\n  }\n\n  maybeEnhanceServerComponentSpanName(span, spanAttributes, rootSpanAttributes);\n\n  // Enrich outgoing http.client spans targeting the Vercel Queues API (producer)\n  maybeEnrichQueueProducerSpan(span);\n}\n","import { type _INTERNAL_RandomSafeContextRunner as RandomSafeContextRunner, debug, GLOBAL_OBJ } from '@sentry/core';\nimport { DEBUG_BUILD } from '../common/debug-build';\n\n// Inline AsyncLocalStorage interface from current types\n// Avoids conflict with resolving it from getBuiltinModule\ntype OriginalAsyncLocalStorage = typeof AsyncLocalStorage;\n\n/**\n * Prepares the global object to generate safe random IDs in cache components contexts\n * See: https://github.com/getsentry/sentry-javascript/blob/ceb003c15973c2d8f437dfb7025eedffbc8bc8b0/packages/core/src/utils/propagationContext.ts#L1\n */\nexport function prepareSafeIdGeneratorContext(): void {\n  const sym = Symbol.for('__SENTRY_SAFE_RANDOM_ID_WRAPPER__');\n  const globalWithSymbol: typeof GLOBAL_OBJ & { [sym]?: RandomSafeContextRunner } = GLOBAL_OBJ;\n\n  // Get initial snapshot - if unavailable, don't set up the wrapper at all\n  const initialSnapshot = getAsyncLocalStorageSnapshot();\n  if (!initialSnapshot) {\n    return;\n  }\n\n  // We store a wrapper function instead of the raw snapshot because in serverless\n  // environments (e.g., Cloudflare Workers), the snapshot is bound to the request\n  // context it was created in. Once that request ends, the snapshot becomes invalid.\n  // The wrapper catches this and creates a fresh snapshot for the current request context.\n  let cachedSnapshot: RandomSafeContextRunner = initialSnapshot;\n\n  globalWithSymbol[sym] = (callback: () => T): T => {\n    try {\n      return cachedSnapshot(callback);\n    } catch (error) {\n      // Only handle AsyncLocalStorage-related errors, rethrow others\n      if (!isAsyncLocalStorageError(error)) {\n        throw error;\n      }\n\n      // Snapshot likely stale, try to get a fresh one and retry\n      const freshSnapshot = getAsyncLocalStorageSnapshot();\n      // No snapshot available, fall back to direct execution\n      if (!freshSnapshot) {\n        return callback();\n      }\n\n      // Update the cached snapshot\n      cachedSnapshot = freshSnapshot;\n\n      // Retry the callback with the fresh snapshot\n      try {\n        return cachedSnapshot(callback);\n      } catch (retryError) {\n        // Only fall back for AsyncLocalStorage errors, rethrow others\n        if (!isAsyncLocalStorageError(retryError)) {\n          throw retryError;\n        }\n        // If fresh snapshot also fails with ALS error, fall back to direct execution\n        return callback();\n      }\n    }\n  };\n\n  DEBUG_BUILD && debug.log('[@sentry/nextjs] Prepared safe random ID generator context');\n}\n\nfunction getAsyncLocalStorage(): OriginalAsyncLocalStorage | undefined {\n  // May exist in the Next.js runtime globals\n  // Doesn't exist in some of our tests\n  if (typeof AsyncLocalStorage !== 'undefined') {\n    return AsyncLocalStorage;\n  }\n\n  // Try to resolve it dynamically without synchronously importing the module\n  // This is done to avoid importing the module synchronously at the top\n  // which means this is safe across runtimes\n  if ('getBuiltinModule' in process && typeof process.getBuiltinModule === 'function') {\n    const { AsyncLocalStorage } = process.getBuiltinModule('async_hooks') ?? {};\n\n    return AsyncLocalStorage as OriginalAsyncLocalStorage;\n  }\n\n  return undefined;\n}\n\nfunction getAsyncLocalStorageSnapshot(): RandomSafeContextRunner | undefined {\n  const als = getAsyncLocalStorage();\n\n  if (!als || typeof als.snapshot !== 'function') {\n    DEBUG_BUILD &&\n      debug.warn(\n        '[@sentry/nextjs] No AsyncLocalStorage found in the runtime or AsyncLocalStorage.snapshot() is not available, skipping safe random ID generator context preparation, you may see some errors with cache components.',\n      );\n    return undefined;\n  }\n\n  return als.snapshot();\n}\n\nfunction isAsyncLocalStorageError(error: unknown): boolean {\n  return error instanceof Error && error.message.includes('AsyncLocalStorage');\n}\n","import {\n  captureException,\n  getIsolationScope,\n  httpRequestToRequestData,\n  isAlreadyCaptured,\n  withScope,\n} from '@sentry/core';\nimport type { NextPageContext } from 'next';\nimport { flushSafelyWithTimeout, waitUntil } from '../utils/responseEnd';\n\ntype ContextOrProps = {\n  req?: NextPageContext['req'];\n  res?: NextPageContext['res'];\n  err?: NextPageContext['err'] | string;\n  pathname?: string;\n  statusCode?: number;\n};\n\n/**\n * Capture the exception passed by nextjs to the `_error` page, adding context data as appropriate.\n *\n * This will not capture the exception if the status code is < 500 or if the pathname is not provided and will thus not return an event ID.\n *\n * @param contextOrProps The data passed to either `getInitialProps` or `render` by nextjs\n * @returns The Sentry event ID, or `undefined` if no event was captured\n */\nexport async function captureUnderscoreErrorException(contextOrProps: ContextOrProps): Promise {\n  const { req, res, err } = contextOrProps;\n\n  // 404s (and other 400-y friends) can trigger `_error`, but we don't want to send them to Sentry\n  const statusCode = res?.statusCode || contextOrProps.statusCode;\n  if (statusCode && statusCode < 500) {\n    return;\n  }\n\n  // In previous versions of the suggested `_error.js` page in which this function is meant to be used, there was a\n  // workaround for https://github.com/vercel/next.js/issues/8592 which involved an extra call to this function, in the\n  // custom error component's `render` method, just in case it hadn't been called by `getInitialProps`. Now that that\n  // issue has been fixed, the second call is unnecessary, but since it lives in user code rather than our code, users\n  // have to be the ones to get rid of it, and guaraneteedly, not all of them will. So, rather than capture the error\n  // twice, we just bail if we sense we're in that now-extraneous second call. (We can tell which function we're in\n  // because Nextjs passes `pathname` to `getInitialProps` but not to `render`.)\n  if (!contextOrProps.pathname) {\n    return;\n  }\n\n  // If the error was already captured (e.g., by wrapped functions in data fetchers),\n  // return the existing event ID instead of capturing it again (needed for lastEventId() to work)\n  if (err && isAlreadyCaptured(err)) {\n    waitUntil(flushSafelyWithTimeout());\n\n    const storedEventId =\n      typeof err === 'object' ? (err as unknown as Record).__sentry_event_id__ : undefined;\n\n    if (typeof storedEventId === 'string') {\n      getIsolationScope().setLastEventId(storedEventId);\n      return storedEventId;\n    }\n\n    return getIsolationScope().lastEventId();\n  }\n\n  const eventId = withScope(scope => {\n    if (req) {\n      const normalizedRequest = httpRequestToRequestData(req);\n      scope.setSDKProcessingMetadata({ normalizedRequest });\n    }\n\n    // If third-party libraries (or users themselves) throw something falsy, we want to capture it as a message (which\n    // is what passing a string to `captureException` will wind up doing)\n    return captureException(err || `_error.js called with falsy error (${err})`, {\n      mechanism: {\n        type: 'auto.function.nextjs.underscore_error',\n        handled: false,\n        data: {\n          function: '_error.getInitialProps',\n        },\n      },\n    });\n  });\n\n  waitUntil(flushSafelyWithTimeout());\n\n  return eventId;\n}\n","// Vendored from: https://github.com/vercel/next.js/blob/canary/packages/next/src/lib/client-and-server-references.ts\n\ninterface ServerReferenceInfo {\n  type: 'server-action' | 'use-cache';\n  usedArgs: [boolean, boolean, boolean, boolean, boolean, boolean];\n  hasRestArgs: boolean;\n}\n\nexport interface ServerReference {\n  $$typeof: symbol;\n  $$id: string;\n}\n\nexport type ServerFunction = ServerReference & ((...args: unknown[]) => Promise);\n\nfunction extractInfoFromServerReferenceId(id: string): ServerReferenceInfo {\n  const infoByte = parseInt(id.slice(0, 2), 16);\n  // eslint-disable-next-line no-bitwise\n  const typeBit = (infoByte >> 7) & 0x1;\n  // eslint-disable-next-line no-bitwise\n  const argMask = (infoByte >> 1) & 0x3f;\n  // eslint-disable-next-line no-bitwise\n  const restArgs = infoByte & 0x1;\n  const usedArgs = Array(6);\n\n  for (let index = 0; index < 6; index++) {\n    const bitPosition = 5 - index;\n    // eslint-disable-next-line no-bitwise\n    const bit = (argMask >> bitPosition) & 0x1;\n    usedArgs[index] = bit === 1;\n  }\n\n  return {\n    type: typeBit === 1 ? 'use-cache' : 'server-action',\n    usedArgs: usedArgs as [boolean, boolean, boolean, boolean, boolean, boolean],\n    hasRestArgs: restArgs === 1,\n  };\n}\n\nfunction isServerReference(value: T & Partial): value is T & ServerFunction {\n  return value.$$typeof === Symbol.for('react.server.reference');\n}\n\n/**\n * Check if the function is a use cache function.\n *\n * @param value - The function to check.\n * @returns true if the function is a use cache function, false otherwise.\n */\nexport function isUseCacheFunction(value: T & Partial): value is T & ServerFunction {\n  if (!isServerReference(value)) {\n    return false;\n  }\n\n  const { type } = extractInfoFromServerReferenceId(value.$$id);\n\n  return type === 'use-cache';\n}\n","import type { Span, StartSpanOptions } from '@sentry/core';\nimport {\n  debug,\n  SentryNonRecordingSpan,\n  startInactiveSpan as coreStartInactiveSpan,\n  startSpan as coreStartSpan,\n  startSpanManual as coreStartSpanManual,\n} from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { isBuild } from './isBuild';\nimport type { ServerReference } from './isUseCacheFunction';\nimport { isUseCacheFunction } from './isUseCacheFunction';\n\nfunction shouldNoopSpan(callback?: T & Partial): boolean {\n  const isBuildContext = isBuild();\n  const isUseCacheFunctionContext = callback ? isUseCacheFunction(callback) : false;\n\n  if (isUseCacheFunctionContext) {\n    DEBUG_BUILD && debug.log('Skipping span creation in Cache Components context');\n  }\n\n  return isBuildContext || isUseCacheFunctionContext;\n}\n\nfunction createNonRecordingSpan(): Span {\n  return new SentryNonRecordingSpan({\n    traceId: '00000000000000000000000000000000',\n    spanId: '0000000000000000',\n  });\n}\n\n/**\n * Next.js-specific implementation of `startSpan` that skips span creation\n * in Cache Components contexts (which render at build time).\n *\n * When in a Cache Components context, we execute the callback with a non-recording span\n * and return early without creating an actual span, since spans don't make sense at build/cache time.\n *\n * @param options - Options for starting the span\n * @param callback - Callback function that receives the span\n * @returns The return value of the callback\n */\nexport function startSpan(options: StartSpanOptions, callback: (span: Span) => T): T {\n  if (shouldNoopSpan(callback)) {\n    return callback(createNonRecordingSpan());\n  }\n\n  return coreStartSpan(options, callback);\n}\n\n/**\n *\n * When in a Cache Components context, we execute the callback with a non-recording span\n * and return early without creating an actual span, since spans don't make sense at build/cache time.\n *\n * @param options - Options for starting the span\n * @param callback - Callback function that receives the span and finish function\n * @returns The return value of the callback\n */\nexport function startSpanManual(options: StartSpanOptions, callback: (span: Span, finish: () => void) => T): T {\n  if (shouldNoopSpan(callback)) {\n    const nonRecordingSpan = createNonRecordingSpan();\n    return callback(nonRecordingSpan, () => nonRecordingSpan.end());\n  }\n\n  return coreStartSpanManual(options, callback);\n}\n\n/**\n *\n * When in a Cache Components context, we return a non-recording span and return early\n * without creating an actual span, since spans don't make sense at build/cache time.\n *\n * @param options - Options for starting the span\n * @returns A non-recording span (in Cache Components context) or the created span\n */\nexport function startInactiveSpan(options: StartSpanOptions): Span {\n  if (shouldNoopSpan()) {\n    return createNonRecordingSpan();\n  }\n\n  return coreStartInactiveSpan(options);\n}\n","import {\n  captureException,\n  getActiveSpan,\n  getCurrentScope,\n  getIsolationScope,\n  getRootSpan,\n  getTraceData,\n  httpRequestToRequestData,\n  isThenable,\n} from '@sentry/core';\nimport type { IncomingMessage, ServerResponse } from 'http';\nimport { TRANSACTION_ATTR_SENTRY_ROUTE_BACKFILL } from '../span-attributes-with-logic-attached';\n\n/**\n * Wraps a function that potentially throws. If it does, the error is passed to `captureException` and rethrown.\n *\n * Note: This function turns the wrapped function into an asynchronous one.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function withErrorInstrumentation any>(\n  origFunction: F,\n): (...params: Parameters) => Promise> {\n  return async function (this: unknown, ...origFunctionArguments: Parameters): Promise> {\n    try {\n      return await origFunction.apply(this, origFunctionArguments);\n    } catch (e) {\n      // TODO: Extract error logic from `withSentry` in here or create a new wrapper with said logic or something like that.\n      captureException(e, {\n        // TODO: check if origFunction.name actually returns the correct name or minified garbage\n        // in this case, we can add another argument to this wrapper with the respective function name\n        mechanism: { handled: false, type: 'auto.function.nextjs.wrapped', data: { function: origFunction.name } },\n      });\n      throw e;\n    }\n  };\n}\n\n/**\n * Calls a server-side data fetching function (that takes a `req` and `res` object in its context) with tracing\n * instrumentation. A transaction will be created for the incoming request (if it doesn't already exist) in addition to\n * a span for the wrapped data fetching function.\n *\n * All of the above happens in an isolated domain, meaning all thrown errors will be associated with the correct span.\n *\n * @param origDataFetcher The data fetching method to call.\n * @param origFunctionArguments The arguments to call the data fetching method with.\n * @param req The data fetching function's request object.\n * @param res The data fetching function's response object.\n * @param options Options providing details for the created transaction and span.\n * @returns what the data fetching method call returned.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function withTracedServerSideDataFetcher Promise | any>(\n  origDataFetcher: F,\n  req: IncomingMessage,\n  res: ServerResponse,\n  options: {\n    /** Parameterized route of the request - will be used for naming the transaction. */\n    requestedRouteName: string;\n    /** Name of the route the data fetcher was defined in - will be used for describing the data fetcher's span. */\n    dataFetcherRouteName: string;\n    /** Name of the data fetching method - will be used for describing the data fetcher's span. */\n    dataFetchingMethodName: string;\n  },\n): (...params: Parameters) => Promise<{ data: ReturnType; sentryTrace?: string; baggage?: string }> {\n  return async function (\n    this: unknown,\n    ...args: Parameters\n  ): Promise<{ data: ReturnType; sentryTrace?: string; baggage?: string }> {\n    const normalizedRequest = httpRequestToRequestData(req);\n    getCurrentScope().setTransactionName(`${options.dataFetchingMethodName} (${options.dataFetcherRouteName})`);\n    getIsolationScope().setSDKProcessingMetadata({ normalizedRequest });\n\n    const span = getActiveSpan();\n\n    // Only set the route backfill if the span is not for /_error\n    if (span && options.requestedRouteName !== '/_error') {\n      const root = getRootSpan(span);\n      root.setAttribute(TRANSACTION_ATTR_SENTRY_ROUTE_BACKFILL, options.requestedRouteName);\n    }\n\n    const { 'sentry-trace': sentryTrace, baggage } = getTraceData();\n\n    return {\n      sentryTrace: sentryTrace,\n      baggage: baggage,\n      data: await origDataFetcher.apply(this, args),\n    };\n  };\n}\n\n/**\n * Call a data fetcher and trace it. Only traces the function if there is an active transaction on the scope.\n *\n * We only do the following until we move transaction creation into this function: When called, the wrapped function\n * will also update the name of the active transaction with a parameterized route provided via the `options` argument.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport async function callDataFetcherTraced Promise | any>(\n  origFunction: F,\n  origFunctionArgs: Parameters,\n): Promise> {\n  try {\n    return await origFunction(...origFunctionArgs);\n  } catch (e) {\n    captureException(e, { mechanism: { handled: false, type: 'auto.function.nextjs.data_fetcher' } });\n    throw e;\n  }\n}\n\n/**\n * Extracts the params and searchParams from the props object.\n *\n * Depending on the next version, params and searchParams may be a promise which we do not want to resolve in this function.\n */\nexport function maybeExtractSynchronousParamsAndSearchParams(props: unknown): {\n  params: Record | undefined;\n  searchParams: Record | undefined;\n} {\n  let params =\n    props && typeof props === 'object' && 'params' in props\n      ? (props.params as Record | Promise> | undefined)\n      : undefined;\n  if (isThenable(params)) {\n    params = undefined;\n  }\n\n  let searchParams =\n    props && typeof props === 'object' && 'searchParams' in props\n      ? (props.searchParams as Record | Promise> | undefined)\n      : undefined;\n  if (isThenable(searchParams)) {\n    searchParams = undefined;\n  }\n\n  return { params, searchParams };\n}\n","import type { GetStaticProps } from 'next';\nimport { isBuild } from '../utils/isBuild';\nimport { callDataFetcherTraced, withErrorInstrumentation } from '../utils/wrapperUtils';\n\ntype Props = { [key: string]: unknown };\n\n/**\n * Create a wrapped version of the user's exported `getStaticProps` function\n *\n * @param origGetStaticProps The user's `getStaticProps` function\n * @param parameterizedRoute The page's parameterized route\n * @returns A wrapped version of the function\n */\nexport function wrapGetStaticPropsWithSentry(\n  origGetStaticPropsa: GetStaticProps,\n  _parameterizedRoute: string,\n): GetStaticProps {\n  return new Proxy(origGetStaticPropsa, {\n    apply: async (wrappingTarget, thisArg, args: Parameters>) => {\n      if (isBuild()) {\n        return wrappingTarget.apply(thisArg, args);\n      }\n\n      const errorWrappedGetStaticProps = withErrorInstrumentation(wrappingTarget);\n      return callDataFetcherTraced(errorWrappedGetStaticProps, args);\n    },\n  });\n}\n","import type { NextPage } from 'next';\nimport { isBuild } from '../utils/isBuild';\nimport { withErrorInstrumentation, withTracedServerSideDataFetcher } from '../utils/wrapperUtils';\n\ntype GetInitialProps = Required['getInitialProps'];\n\n/**\n * Create a wrapped version of the user's exported `getInitialProps` function\n *\n * @param origGetInitialProps The user's `getInitialProps` function\n * @param parameterizedRoute The page's parameterized route\n * @returns A wrapped version of the function\n */\nexport function wrapGetInitialPropsWithSentry(origGetInitialProps: GetInitialProps): GetInitialProps {\n  return new Proxy(origGetInitialProps, {\n    apply: async (wrappingTarget, thisArg, args: Parameters) => {\n      if (isBuild()) {\n        return wrappingTarget.apply(thisArg, args);\n      }\n\n      const [context] = args;\n      const { req, res } = context;\n\n      const errorWrappedGetInitialProps = withErrorInstrumentation(wrappingTarget);\n      // Generally we can assume that `req` and `res` are always defined on the server:\n      // https://nextjs.org/docs/api-reference/data-fetching/get-initial-props#context-object\n      // This does not seem to be the case in dev mode. Because we have no clean way of associating the the data fetcher\n      // span with each other when there are no req or res objects, we simply do not trace them at all here.\n      if (req && res) {\n        const tracedGetInitialProps = withTracedServerSideDataFetcher(errorWrappedGetInitialProps, req, res, {\n          dataFetcherRouteName: context.pathname,\n          requestedRouteName: context.pathname,\n          dataFetchingMethodName: 'getInitialProps',\n        });\n\n        const {\n          data: initialProps,\n          baggage,\n          sentryTrace,\n        }: {\n          data?: unknown;\n          baggage?: string;\n          sentryTrace?: string;\n        } = (await tracedGetInitialProps.apply(thisArg, args)) ?? {}; // Next.js allows undefined to be returned from a getInitialPropsFunction.\n\n        if (typeof initialProps === 'object' && initialProps !== null) {\n          // The Next.js serializer throws on undefined values so we need to guard for it (#12102)\n          if (sentryTrace) {\n            (initialProps as Record)._sentryTraceData = sentryTrace;\n          }\n\n          // The Next.js serializer throws on undefined values so we need to guard for it (#12102)\n          if (baggage) {\n            (initialProps as Record)._sentryBaggage = baggage;\n          }\n        }\n\n        return initialProps;\n      } else {\n        return errorWrappedGetInitialProps.apply(thisArg, args);\n      }\n    },\n  });\n}\n","import type App from 'next/app';\nimport { isBuild } from '../utils/isBuild';\nimport { withErrorInstrumentation, withTracedServerSideDataFetcher } from '../utils/wrapperUtils';\n\ntype AppGetInitialProps = (typeof App)['getInitialProps'];\n\n/**\n * Create a wrapped version of the user's exported `getInitialProps` function in\n * a custom app (\"_app.js\").\n *\n * @param origAppGetInitialProps The user's `getInitialProps` function\n * @param parameterizedRoute The page's parameterized route\n * @returns A wrapped version of the function\n */\nexport function wrapAppGetInitialPropsWithSentry(origAppGetInitialProps: AppGetInitialProps): AppGetInitialProps {\n  return new Proxy(origAppGetInitialProps, {\n    apply: async (wrappingTarget, thisArg, args: Parameters) => {\n      if (isBuild()) {\n        return wrappingTarget.apply(thisArg, args);\n      }\n\n      const [context] = args;\n      const { req, res } = context.ctx;\n\n      const errorWrappedAppGetInitialProps = withErrorInstrumentation(wrappingTarget);\n\n      // Generally we can assume that `req` and `res` are always defined on the server:\n      // https://nextjs.org/docs/api-reference/data-fetching/get-initial-props#context-object\n      // This does not seem to be the case in dev mode. Because we have no clean way of associating the the data fetcher\n      // span with each other when there are no req or res objects, we simply do not trace them at all here.\n      if (req && res) {\n        const tracedGetInitialProps = withTracedServerSideDataFetcher(errorWrappedAppGetInitialProps, req, res, {\n          dataFetcherRouteName: '/_app',\n          requestedRouteName: context.ctx.pathname,\n          dataFetchingMethodName: 'getInitialProps',\n        });\n\n        const {\n          data: appGetInitialProps,\n          sentryTrace,\n          baggage,\n        }: {\n          data?: unknown;\n          sentryTrace?: string;\n          baggage?: string;\n        } = await tracedGetInitialProps.apply(thisArg, args);\n\n        if (typeof appGetInitialProps === 'object' && appGetInitialProps !== null) {\n          // Per definition, `pageProps` is not optional, however an increased amount of users doesn't seem to call\n          // `App.getInitialProps(appContext)` in their custom `_app` pages which is required as per\n          // https://nextjs.org/docs/advanced-features/custom-app - resulting in missing `pageProps`.\n          // For this reason, we just handle the case where `pageProps` doesn't exist explicitly.\n          if (!(appGetInitialProps as Record).pageProps) {\n            (appGetInitialProps as Record).pageProps = {};\n          }\n\n          // The Next.js serializer throws on undefined values so we need to guard for it (#12102)\n          if (sentryTrace) {\n            (appGetInitialProps as { pageProps: Record }).pageProps._sentryTraceData = sentryTrace;\n          }\n\n          // The Next.js serializer throws on undefined values so we need to guard for it (#12102)\n          if (baggage) {\n            (appGetInitialProps as { pageProps: Record }).pageProps._sentryBaggage = baggage;\n          }\n        }\n\n        return appGetInitialProps;\n      } else {\n        return errorWrappedAppGetInitialProps.apply(thisArg, args);\n      }\n    },\n  });\n}\n","import type Document from 'next/document';\nimport { isBuild } from '../utils/isBuild';\nimport { withErrorInstrumentation, withTracedServerSideDataFetcher } from '../utils/wrapperUtils';\n\ntype DocumentGetInitialProps = typeof Document.getInitialProps;\n\n/**\n * Create a wrapped version of the user's exported `getInitialProps` function in\n * a custom document (\"_document.js\").\n *\n * @param origDocumentGetInitialProps The user's `getInitialProps` function\n * @param parameterizedRoute The page's parameterized route\n * @returns A wrapped version of the function\n */\nexport function wrapDocumentGetInitialPropsWithSentry(\n  origDocumentGetInitialProps: DocumentGetInitialProps,\n): DocumentGetInitialProps {\n  return new Proxy(origDocumentGetInitialProps, {\n    apply: async (wrappingTarget, thisArg, args: Parameters) => {\n      if (isBuild()) {\n        return wrappingTarget.apply(thisArg, args);\n      }\n\n      const [context] = args;\n      const { req, res } = context;\n\n      const errorWrappedGetInitialProps = withErrorInstrumentation(wrappingTarget);\n      // Generally we can assume that `req` and `res` are always defined on the server:\n      // https://nextjs.org/docs/api-reference/data-fetching/get-initial-props#context-object\n      // This does not seem to be the case in dev mode. Because we have no clean way of associating the the data fetcher\n      // span with each other when there are no req or res objects, we simply do not trace them at all here.\n      if (req && res) {\n        const tracedGetInitialProps = withTracedServerSideDataFetcher(errorWrappedGetInitialProps, req, res, {\n          dataFetcherRouteName: '/_document',\n          requestedRouteName: context.pathname,\n          dataFetchingMethodName: 'getInitialProps',\n        });\n\n        const { data } = await tracedGetInitialProps.apply(thisArg, args);\n        return data;\n      } else {\n        return errorWrappedGetInitialProps.apply(thisArg, args);\n      }\n    },\n  });\n}\n","import type { NextPageContext } from 'next';\nimport type { ErrorProps } from 'next/error';\nimport { isBuild } from '../utils/isBuild';\nimport { withErrorInstrumentation, withTracedServerSideDataFetcher } from '../utils/wrapperUtils';\n\ntype ErrorGetInitialProps = (context: NextPageContext) => Promise;\n\n/**\n * Create a wrapped version of the user's exported `getInitialProps` function in\n * a custom error page (\"_error.js\").\n *\n * @param origErrorGetInitialProps The user's `getInitialProps` function\n * @param parameterizedRoute The page's parameterized route\n * @returns A wrapped version of the function\n */\nexport function wrapErrorGetInitialPropsWithSentry(\n  origErrorGetInitialProps: ErrorGetInitialProps,\n): ErrorGetInitialProps {\n  return new Proxy(origErrorGetInitialProps, {\n    apply: async (wrappingTarget, thisArg, args: Parameters) => {\n      if (isBuild()) {\n        return wrappingTarget.apply(thisArg, args);\n      }\n\n      const [context] = args;\n      const { req, res } = context;\n\n      const errorWrappedGetInitialProps = withErrorInstrumentation(wrappingTarget);\n      // Generally we can assume that `req` and `res` are always defined on the server:\n      // https://nextjs.org/docs/api-reference/data-fetching/get-initial-props#context-object\n      // This does not seem to be the case in dev mode. Because we have no clean way of associating the the data fetcher\n      // span with each other when there are no req or res objects, we simply do not trace them at all here.\n      if (req && res) {\n        const tracedGetInitialProps = withTracedServerSideDataFetcher(errorWrappedGetInitialProps, req, res, {\n          dataFetcherRouteName: '/_error',\n          requestedRouteName: context.pathname,\n          dataFetchingMethodName: 'getInitialProps',\n        });\n\n        const {\n          data: errorGetInitialProps,\n          baggage,\n          sentryTrace,\n        }: {\n          data?: unknown;\n          baggage?: string;\n          sentryTrace?: string;\n        } = await tracedGetInitialProps.apply(thisArg, args);\n\n        if (typeof errorGetInitialProps === 'object' && errorGetInitialProps !== null) {\n          if (sentryTrace) {\n            // The Next.js serializer throws on undefined values so we need to guard for it (#12102)\n            (errorGetInitialProps as Record)._sentryTraceData = sentryTrace;\n          }\n\n          // The Next.js serializer throws on undefined values so we need to guard for it (#12102)\n          if (baggage) {\n            (errorGetInitialProps as Record)._sentryBaggage = baggage;\n          }\n        }\n\n        return errorGetInitialProps;\n      } else {\n        return errorWrappedGetInitialProps.apply(thisArg, args);\n      }\n    },\n  });\n}\n","import type { GetServerSideProps } from 'next';\nimport { isBuild } from '../utils/isBuild';\nimport { withErrorInstrumentation, withTracedServerSideDataFetcher } from '../utils/wrapperUtils';\n\n/**\n * Create a wrapped version of the user's exported `getServerSideProps` function\n *\n * @param origGetServerSideProps The user's `getServerSideProps` function\n * @param parameterizedRoute The page's parameterized route\n * @returns A wrapped version of the function\n */\nexport function wrapGetServerSidePropsWithSentry(\n  origGetServerSideProps: GetServerSideProps,\n  parameterizedRoute: string,\n): GetServerSideProps {\n  return new Proxy(origGetServerSideProps, {\n    apply: async (wrappingTarget, thisArg, args: Parameters) => {\n      if (isBuild()) {\n        return wrappingTarget.apply(thisArg, args);\n      }\n\n      const [context] = args;\n      const { req, res } = context;\n\n      const errorWrappedGetServerSideProps = withErrorInstrumentation(wrappingTarget);\n      const tracedGetServerSideProps = withTracedServerSideDataFetcher(errorWrappedGetServerSideProps, req, res, {\n        dataFetcherRouteName: parameterizedRoute,\n        requestedRouteName: parameterizedRoute,\n        dataFetchingMethodName: 'getServerSideProps',\n      });\n\n      const {\n        data: serverSideProps,\n        baggage,\n        sentryTrace,\n      }: {\n        data?: unknown;\n        baggage?: string;\n        sentryTrace?: string;\n      } = await (tracedGetServerSideProps.apply(thisArg, args) as ReturnType);\n\n      if (typeof serverSideProps === 'object' && serverSideProps !== null && 'props' in serverSideProps) {\n        // The Next.js serializer throws on undefined values so we need to guard for it (#12102)\n        if (sentryTrace) {\n          (serverSideProps.props as Record)._sentryTraceData = sentryTrace;\n        }\n\n        // The Next.js serializer throws on undefined values so we need to guard for it (#12102)\n        if (baggage) {\n          (serverSideProps.props as Record)._sentryBaggage = baggage;\n        }\n      }\n\n      return serverSideProps;\n    },\n  });\n}\n","import { isError } from '@sentry/core';\n\n/**\n * Determines whether input is a Next.js not-found error.\n * https://beta.nextjs.org/docs/api-reference/notfound#notfound\n */\nexport function isNotFoundNavigationError(subject: unknown): boolean {\n  return (\n    isError(subject) &&\n    ['NEXT_NOT_FOUND', 'NEXT_HTTP_ERROR_FALLBACK;404'].includes(\n      (subject as Error & { digest?: unknown }).digest as string,\n    )\n  );\n}\n\n/**\n * Determines whether input is a Next.js redirect error.\n * https://beta.nextjs.org/docs/api-reference/redirect#redirect\n */\nexport function isRedirectNavigationError(subject: unknown): boolean {\n  return (\n    isError(subject) &&\n    typeof (subject as Error & { digest?: unknown }).digest === 'string' &&\n    (subject as Error & { digest: string }).digest.startsWith('NEXT_REDIRECT;') // a redirect digest looks like \"NEXT_REDIRECT;[redirect path]\"\n  );\n}\n","import type { RequestEventData } from '@sentry/core';\nimport {\n  captureException,\n  getActiveSpan,\n  getIsolationScope,\n  handleCallbackErrors,\n  SPAN_STATUS_ERROR,\n  SPAN_STATUS_OK,\n  winterCGHeadersToDict,\n} from '@sentry/core';\nimport { isNotFoundNavigationError, isRedirectNavigationError } from '../common/nextNavigationErrorUtils';\nimport type { ServerComponentContext } from '../common/types';\nimport { flushSafelyWithTimeout, waitUntil } from '../common/utils/responseEnd';\n\n/**\n * Wraps an `app` directory server component with Sentry error instrumentation.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function wrapServerComponentWithSentry any>(\n  appDirComponent: F,\n  context: ServerComponentContext,\n): F {\n  // Even though users may define server components as async functions, for the client bundles\n  // Next.js will turn them into synchronous functions and it will transform any `await`s into instances of the `use`\n  // hook. 🤯\n  return new Proxy(appDirComponent, {\n    apply: (originalFunction, thisArg, args) => {\n      const isolationScope = getIsolationScope();\n\n      const headersDict = context.headers ? winterCGHeadersToDict(context.headers) : undefined;\n\n      isolationScope.setSDKProcessingMetadata({\n        normalizedRequest: {\n          headers: headersDict,\n        } satisfies RequestEventData,\n      });\n\n      return handleCallbackErrors(\n        () => originalFunction.apply(thisArg, args),\n        error => {\n          const span = getActiveSpan();\n          const { componentRoute, componentType } = context;\n          let shouldCapture = true;\n          isolationScope.setTransactionName(`${componentType} Server Component (${componentRoute})`);\n\n          if (span) {\n            if (isNotFoundNavigationError(error)) {\n              // We don't want to report \"not-found\"s\n              shouldCapture = false;\n              span.setStatus({ code: SPAN_STATUS_ERROR, message: 'not_found' });\n            } else if (isRedirectNavigationError(error)) {\n              // We don't want to report redirects\n              shouldCapture = false;\n              span.setStatus({ code: SPAN_STATUS_OK });\n            } else {\n              span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n            }\n          }\n\n          if (shouldCapture) {\n            captureException(error, {\n              mechanism: {\n                handled: false,\n                type: 'auto.function.nextjs.server_component',\n              },\n            });\n          }\n        },\n        () => {\n          waitUntil(flushSafelyWithTimeout());\n        },\n      );\n    },\n  });\n}\n","import type { RequestEventData } from '@sentry/core';\nimport {\n  captureException,\n  getActiveSpan,\n  getCapturedScopesOnSpan,\n  getIsolationScope,\n  getRootSpan,\n  handleCallbackErrors,\n  propagationContextFromHeaders,\n  Scope,\n  SEMANTIC_ATTRIBUTE_SENTRY_OP,\n  SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n  setCapturedScopesOnSpan,\n  setHttpStatus,\n  winterCGHeadersToDict,\n  withIsolationScope,\n  withScope,\n} from '@sentry/core';\nimport { isNotFoundNavigationError, isRedirectNavigationError } from './nextNavigationErrorUtils';\nimport type { RouteHandlerContext } from './types';\nimport { flushSafelyWithTimeout, waitUntil } from './utils/responseEnd';\nimport { commonObjectToIsolationScope } from './utils/tracingUtils';\n\n/**\n * Wraps a Next.js App Router Route handler with Sentry error and performance instrumentation.\n *\n * NOTICE: This wrapper is for App Router API routes. If you are looking to wrap Pages Router API routes use `wrapApiHandlerWithSentry` instead.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function wrapRouteHandlerWithSentry any>(\n  routeHandler: F,\n  context: RouteHandlerContext,\n): (...args: Parameters) => ReturnType extends Promise ? ReturnType : Promise> {\n  const { method, parameterizedRoute, headers } = context;\n\n  return new Proxy(routeHandler, {\n    apply: async (originalFunction, thisArg, args) => {\n      const activeSpan = getActiveSpan();\n      const rootSpan = activeSpan ? getRootSpan(activeSpan) : undefined;\n\n      let edgeRuntimeIsolationScopeOverride: Scope | undefined;\n      if (rootSpan && process.env.NEXT_RUNTIME === 'edge') {\n        const isolationScope = commonObjectToIsolationScope(headers);\n        const { scope } = getCapturedScopesOnSpan(rootSpan);\n        setCapturedScopesOnSpan(rootSpan, scope ?? new Scope(), isolationScope);\n\n        edgeRuntimeIsolationScopeOverride = isolationScope;\n\n        rootSpan.updateName(`${method} ${parameterizedRoute}`);\n        rootSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, 'route');\n        rootSpan.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'http.server');\n      }\n\n      return withIsolationScope(\n        process.env.NEXT_RUNTIME === 'edge' ? edgeRuntimeIsolationScopeOverride : getIsolationScope(),\n        () => {\n          return withScope(async scope => {\n            scope.setTransactionName(`${method} ${parameterizedRoute}`);\n\n            if (process.env.NEXT_RUNTIME === 'edge') {\n              const completeHeadersDict: Record = headers ? winterCGHeadersToDict(headers) : {};\n              const incomingPropagationContext = propagationContextFromHeaders(\n                completeHeadersDict['sentry-trace'],\n                completeHeadersDict['baggage'],\n              );\n              scope.setPropagationContext(incomingPropagationContext);\n              scope.setSDKProcessingMetadata({\n                normalizedRequest: {\n                  method,\n                  headers: completeHeadersDict,\n                } satisfies RequestEventData,\n              });\n            }\n\n            const response: Response = await handleCallbackErrors(\n              () => originalFunction.apply(thisArg, args),\n              error => {\n                // Next.js throws errors when calling `redirect()`. We don't wanna report these.\n                if (isRedirectNavigationError(error)) {\n                  // Don't do anything\n                } else if (isNotFoundNavigationError(error)) {\n                  if (activeSpan) {\n                    setHttpStatus(activeSpan, 404);\n                  }\n                  if (rootSpan) {\n                    setHttpStatus(rootSpan, 404);\n                  }\n                } else {\n                  captureException(error, {\n                    mechanism: {\n                      handled: false,\n                      type: 'auto.function.nextjs.route_handler',\n                    },\n                  });\n                }\n              },\n              () => {\n                waitUntil(flushSafelyWithTimeout());\n              },\n            );\n\n            try {\n              if (response.status) {\n                if (activeSpan) {\n                  setHttpStatus(activeSpan, response.status);\n                }\n                if (rootSpan) {\n                  setHttpStatus(rootSpan, response.status);\n                }\n              }\n            } catch {\n              // best effort - response may be undefined?\n            }\n\n            return response;\n          });\n        },\n      );\n    },\n  });\n}\n","import { _INTERNAL_safeDateNow, captureCheckIn } from '@sentry/core';\nimport type { NextApiRequest } from 'next';\nimport type { VercelCronsConfig } from '../types';\n\ntype EdgeRequest = {\n  nextUrl: URL;\n  headers: Headers;\n};\n\n/**\n * Wraps a function with Sentry crons instrumentation by automatically sending check-ins for the given Vercel crons config.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function wrapApiHandlerWithSentryVercelCrons any>(\n  handler: F,\n  vercelCronsConfig: VercelCronsConfig,\n): F {\n  return new Proxy(handler, {\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    apply: (originalFunction, thisArg, args: any[]) => {\n      if (!args?.[0]) {\n        return originalFunction.apply(thisArg, args);\n      }\n\n      const [req] = args as [NextApiRequest | EdgeRequest];\n\n      let maybePromiseResult;\n      const cronsKey = 'nextUrl' in req ? req.nextUrl.pathname : req.url;\n      const userAgentHeader = 'nextUrl' in req ? req.headers.get('user-agent') : req.headers['user-agent'];\n\n      if (\n        !vercelCronsConfig || // do nothing if vercel crons config is missing\n        !userAgentHeader?.includes('vercel-cron') // do nothing if endpoint is not called from vercel crons\n      ) {\n        return originalFunction.apply(thisArg, args);\n      }\n\n      const vercelCron = vercelCronsConfig.find(vercelCron => vercelCron.path === cronsKey);\n\n      if (!vercelCron?.path || !vercelCron.schedule) {\n        return originalFunction.apply(thisArg, args);\n      }\n\n      const monitorSlug = vercelCron.path;\n\n      const checkInId = captureCheckIn(\n        {\n          monitorSlug,\n          status: 'in_progress',\n        },\n        {\n          maxRuntime: 60 * 12, // (minutes) so 12 hours - just a very high arbitrary number since we don't know the actual duration of the users cron job\n          schedule: {\n            type: 'crontab',\n            value: vercelCron.schedule,\n          },\n        },\n      );\n\n      const startTime = _INTERNAL_safeDateNow() / 1000;\n\n      const handleErrorCase = (): void => {\n        captureCheckIn({\n          checkInId,\n          monitorSlug,\n          status: 'error',\n          duration: _INTERNAL_safeDateNow() / 1000 - startTime,\n        });\n      };\n\n      try {\n        maybePromiseResult = originalFunction.apply(thisArg, args);\n      } catch (e) {\n        handleErrorCase();\n        throw e;\n      }\n\n      if (typeof maybePromiseResult === 'object' && maybePromiseResult !== null && 'then' in maybePromiseResult) {\n        Promise.resolve(maybePromiseResult).then(\n          () => {\n            captureCheckIn({\n              checkInId,\n              monitorSlug,\n              status: 'ok',\n              duration: _INTERNAL_safeDateNow() / 1000 - startTime,\n            });\n          },\n          () => {\n            handleErrorCase();\n          },\n        );\n\n        // It is very important that we return the original promise here, because Next.js attaches various properties\n        // to that promise and will throw if they are not on the returned value.\n        return maybePromiseResult;\n      } else {\n        captureCheckIn({\n          checkInId,\n          monitorSlug,\n          status: 'ok',\n          duration: _INTERNAL_safeDateNow() / 1000 - startTime,\n        });\n        return maybePromiseResult;\n      }\n    },\n  });\n}\n","import type { TransactionSource } from '@sentry/core';\nimport {\n  captureException,\n  getActiveSpan,\n  getCurrentScope,\n  getRootSpan,\n  handleCallbackErrors,\n  SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n  SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n  setCapturedScopesOnSpan,\n  startSpan,\n  winterCGRequestToRequestData,\n  withIsolationScope,\n} from '@sentry/core';\nimport { flushSafelyWithTimeout, waitUntil } from '../common/utils/responseEnd';\nimport type { EdgeRouteHandler } from '../edge/types';\n\n/**\n * Wraps Next.js middleware with Sentry error and performance instrumentation.\n *\n * @param middleware The middleware handler.\n * @returns a wrapped middleware handler.\n */\nexport function wrapMiddlewareWithSentry(\n  middleware: H,\n): (...params: Parameters) => Promise> {\n  return new Proxy(middleware, {\n    apply: async (wrappingTarget, thisArg, args: Parameters) => {\n      const tunnelRoute =\n        '_sentryRewritesTunnelPath' in globalThis\n          ? (globalThis as Record)._sentryRewritesTunnelPath\n          : undefined;\n\n      if (tunnelRoute && typeof tunnelRoute === 'string') {\n        const req: unknown = args[0];\n        // Check if the current request matches the tunnel route\n        if (req instanceof Request) {\n          const url = new URL(req.url);\n          const isTunnelRequest = url.pathname.startsWith(tunnelRoute);\n\n          if (isTunnelRequest) {\n            // Create a simple response that mimics NextResponse.next() so we don't need to import internals here\n            // which breaks next 13 apps\n            // https://github.com/vercel/next.js/blob/c12c9c1f78ad384270902f0890dc4cd341408105/packages/next/src/server/web/spec-extension/response.ts#L146\n            return new Response(null, {\n              status: 200,\n              headers: {\n                'x-middleware-next': '1',\n              },\n            }) as ReturnType;\n          }\n        }\n      }\n      // TODO: We still should add central isolation scope creation for when our build-time instrumentation does not work anymore with turbopack.\n      return withIsolationScope(isolationScope => {\n        const req: unknown = args[0];\n        const currentScope = getCurrentScope();\n\n        let spanName: string;\n        let spanSource: TransactionSource;\n\n        if (req instanceof Request) {\n          isolationScope.setSDKProcessingMetadata({\n            normalizedRequest: winterCGRequestToRequestData(req),\n          });\n          spanName = `middleware ${req.method}`;\n          spanSource = 'url';\n        } else {\n          spanName = 'middleware';\n          spanSource = 'component';\n        }\n\n        currentScope.setTransactionName(spanName);\n\n        const activeSpan = getActiveSpan();\n\n        if (activeSpan) {\n          // If there is an active span, it likely means that the automatic Next.js OTEL instrumentation worked and we can\n          // rely on that for parameterization.\n          spanName = 'middleware';\n          spanSource = 'component';\n\n          const rootSpan = getRootSpan(activeSpan);\n          if (rootSpan) {\n            setCapturedScopesOnSpan(rootSpan, currentScope, isolationScope);\n          }\n        }\n\n        return startSpan(\n          {\n            name: spanName,\n            op: 'http.server.middleware',\n            attributes: {\n              [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: spanSource,\n              [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.function.nextjs.wrap_middleware',\n            },\n          },\n          () => {\n            return handleCallbackErrors(\n              () => wrappingTarget.apply(thisArg, args),\n              error => {\n                captureException(error, {\n                  mechanism: {\n                    type: 'auto.function.nextjs.wrap_middleware',\n                    handled: false,\n                  },\n                });\n              },\n              () => {\n                waitUntil(flushSafelyWithTimeout());\n              },\n            );\n          },\n        );\n      });\n    },\n  });\n}\n","import {\n  addNonEnumerableProperty,\n  captureException,\n  extractTraceparentData,\n  getCurrentScope,\n  withIsolationScope,\n} from '@sentry/core';\n\ninterface FunctionComponent {\n  (...args: unknown[]): unknown;\n}\n\ninterface ClassComponent {\n  new (...args: unknown[]): {\n    props?: unknown;\n    render(...args: unknown[]): unknown;\n  };\n}\n\nfunction storeCapturedEventIdOnError(error: unknown, eventId: string | undefined): void {\n  if (error && typeof error === 'object') {\n    addNonEnumerableProperty(error as Record, '__sentry_event_id__', eventId);\n  }\n}\n\nfunction isReactClassComponent(target: unknown): target is ClassComponent {\n  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n  return typeof target === 'function' && target?.prototype?.isReactComponent;\n}\n\n/**\n * Wraps a page component with Sentry error instrumentation.\n */\nexport function wrapPageComponentWithSentry(pageComponent: FunctionComponent | ClassComponent): unknown {\n  if (isReactClassComponent(pageComponent)) {\n    return class SentryWrappedPageComponent extends pageComponent {\n      public render(...args: unknown[]): unknown {\n        return withIsolationScope(() => {\n          const scope = getCurrentScope();\n          // We extract the sentry trace data that is put in the component props by datafetcher wrappers\n          const sentryTraceData =\n            typeof this.props === 'object' &&\n            this.props !== null &&\n            '_sentryTraceData' in this.props &&\n            typeof this.props._sentryTraceData === 'string'\n              ? this.props._sentryTraceData\n              : undefined;\n\n          if (sentryTraceData) {\n            const traceparentData = extractTraceparentData(sentryTraceData);\n            scope.setContext('trace', {\n              span_id: traceparentData?.parentSpanId,\n              trace_id: traceparentData?.traceId,\n            });\n          }\n\n          try {\n            return super.render(...args);\n          } catch (e) {\n            const eventId = captureException(e, {\n              mechanism: {\n                handled: false,\n                type: 'auto.function.nextjs.page_class',\n              },\n            });\n            storeCapturedEventIdOnError(e, eventId);\n            throw e;\n          }\n        });\n      }\n    };\n  } else if (typeof pageComponent === 'function') {\n    return new Proxy(pageComponent, {\n      apply(target, thisArg, argArray: [{ _sentryTraceData?: string } | undefined]) {\n        return withIsolationScope(() => {\n          const scope = getCurrentScope();\n          // We extract the sentry trace data that is put in the component props by datafetcher wrappers\n          const sentryTraceData = argArray?.[0]?._sentryTraceData;\n\n          if (sentryTraceData) {\n            const traceparentData = extractTraceparentData(sentryTraceData);\n            scope.setContext('trace', {\n              span_id: traceparentData?.parentSpanId,\n              trace_id: traceparentData?.traceId,\n            });\n          }\n\n          try {\n            return target.apply(thisArg, argArray);\n          } catch (e) {\n            const eventId = captureException(e, {\n              mechanism: {\n                handled: false,\n                type: 'auto.function.nextjs.page_function',\n              },\n            });\n            storeCapturedEventIdOnError(e, eventId);\n            throw e;\n          }\n        });\n      },\n    });\n  } else {\n    return pageComponent;\n  }\n}\n","import type { RequestEventData } from '@sentry/core';\nimport {\n  captureException,\n  getActiveSpan,\n  getIsolationScope,\n  handleCallbackErrors,\n  SPAN_STATUS_ERROR,\n  SPAN_STATUS_OK,\n  winterCGHeadersToDict,\n} from '@sentry/core';\nimport type { GenerationFunctionContext } from '../common/types';\nimport { isNotFoundNavigationError, isRedirectNavigationError } from './nextNavigationErrorUtils';\nimport { flushSafelyWithTimeout, waitUntil } from './utils/responseEnd';\n\n/**\n * Wraps a generation function (e.g. generateMetadata) with Sentry error instrumentation.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function wrapGenerationFunctionWithSentry any>(\n  generationFunction: F,\n  context: GenerationFunctionContext,\n): F {\n  return new Proxy(generationFunction, {\n    apply: (originalFunction, thisArg, args) => {\n      const isolationScope = getIsolationScope();\n\n      let headers = undefined;\n      // We try-catch here just in case anything goes wrong with the async storage since it is Next.js internal API\n      try {\n        headers = context.requestAsyncStorage?.getStore()?.headers;\n      } catch {\n        /** empty */\n      }\n\n      const headersDict = headers ? winterCGHeadersToDict(headers) : undefined;\n\n      isolationScope.setSDKProcessingMetadata({\n        normalizedRequest: {\n          headers: headersDict,\n        } satisfies RequestEventData,\n      });\n\n      return handleCallbackErrors(\n        () => originalFunction.apply(thisArg, args),\n        error => {\n          const span = getActiveSpan();\n          const { componentRoute, componentType, generationFunctionIdentifier } = context;\n          let shouldCapture = true;\n          isolationScope.setTransactionName(`${componentType}.${generationFunctionIdentifier} (${componentRoute})`);\n\n          if (span) {\n            if (isNotFoundNavigationError(error)) {\n              // We don't want to report \"not-found\"s\n              shouldCapture = false;\n              span.setStatus({ code: SPAN_STATUS_ERROR, message: 'not_found' });\n            } else if (isRedirectNavigationError(error)) {\n              // We don't want to report redirects\n              shouldCapture = false;\n              span.setStatus({ code: SPAN_STATUS_OK });\n            } else {\n              span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n            }\n          }\n\n          if (shouldCapture) {\n            captureException(error, {\n              mechanism: {\n                handled: false,\n                type: 'auto.function.nextjs.generation_function',\n                data: {\n                  function: generationFunctionIdentifier,\n                },\n              },\n            });\n          }\n        },\n        () => {\n          waitUntil(flushSafelyWithTimeout());\n        },\n      );\n    },\n  });\n}\n","import type { RequestEventData } from '@sentry/core';\nimport {\n  captureException,\n  continueTrace,\n  debug,\n  getActiveSpan,\n  getClient,\n  getIsolationScope,\n  handleCallbackErrors,\n  SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n  SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n  SPAN_STATUS_ERROR,\n  startSpan,\n  withIsolationScope,\n} from '@sentry/core';\nimport { flushSafelyWithTimeout, waitUntil } from '../common/utils/responseEnd';\nimport { DEBUG_BUILD } from './debug-build';\nimport { isNotFoundNavigationError, isRedirectNavigationError } from './nextNavigationErrorUtils';\n\ninterface Options {\n  formData?: FormData;\n\n  /**\n   * Headers as returned from `headers()`.\n   *\n   * Currently accepts both a plain `Headers` object and `Promise` to be compatible with async APIs introduced in Next.js 15: https://github.com/vercel/next.js/pull/68812\n   */\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  headers?: Headers | Promise;\n\n  /**\n   * Whether the server action response should be included in any events captured within the server action.\n   */\n  recordResponse?: boolean;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function withServerActionInstrumentation any>(\n  serverActionName: string,\n  callback: A,\n): Promise>;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function withServerActionInstrumentation any>(\n  serverActionName: string,\n  options: Options,\n  callback: A,\n): Promise>;\n\n/**\n * Wraps a Next.js Server Action implementation with Sentry Error and Performance instrumentation.\n */\nexport function withServerActionInstrumentation unknown>(\n  ...args: [string, Options, A] | [string, A]\n): Promise> {\n  if (typeof args[1] === 'function') {\n    const [serverActionName, callback] = args;\n    return withServerActionInstrumentationImplementation(serverActionName, {}, callback);\n  } else {\n    const [serverActionName, options, callback] = args;\n    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n    return withServerActionInstrumentationImplementation(serverActionName, options, callback!);\n  }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nasync function withServerActionInstrumentationImplementation any>(\n  serverActionName: string,\n  options: Options,\n  callback: A,\n): Promise> {\n  return withIsolationScope(async isolationScope => {\n    const sendDefaultPii = getClient()?.getOptions().sendDefaultPii;\n\n    let sentryTraceHeader;\n    let baggageHeader;\n    const fullHeadersObject: Record = {};\n    try {\n      const awaitedHeaders: Headers = await options.headers;\n      sentryTraceHeader = awaitedHeaders?.get('sentry-trace') ?? undefined;\n      baggageHeader = awaitedHeaders?.get('baggage');\n      awaitedHeaders?.forEach((value, key) => {\n        fullHeadersObject[key] = value;\n      });\n    } catch {\n      DEBUG_BUILD &&\n        debug.warn(\n          \"Sentry wasn't able to extract the tracing headers for a server action. Will not trace this request.\",\n        );\n    }\n\n    isolationScope.setTransactionName(`serverAction/${serverActionName}`);\n    isolationScope.setSDKProcessingMetadata({\n      normalizedRequest: {\n        headers: fullHeadersObject,\n      } satisfies RequestEventData,\n    });\n\n    // Normally, there is an active span here (from Next.js OTEL) and we just use that as parent\n    // Else, we manually continueTrace from the incoming headers\n    const continueTraceIfNoActiveSpan = getActiveSpan()\n      ? (_opts: unknown, callback: () => T) => callback()\n      : continueTrace;\n\n    return continueTraceIfNoActiveSpan(\n      {\n        sentryTrace: sentryTraceHeader,\n        baggage: baggageHeader,\n      },\n      async () => {\n        try {\n          return await startSpan(\n            {\n              op: 'function.server_action',\n              name: `serverAction/${serverActionName}`,\n              forceTransaction: true,\n              attributes: {\n                [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'route',\n                [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.function.nextjs.server_action',\n              },\n            },\n            async span => {\n              // oxlint-disable-next-line typescript/await-thenable -- callback may be async at runtime\n              const result = await handleCallbackErrors(callback, error => {\n                if (isNotFoundNavigationError(error)) {\n                  // We don't want to report \"not-found\"s\n                  span.setStatus({ code: SPAN_STATUS_ERROR, message: 'not_found' });\n                } else if (isRedirectNavigationError(error)) {\n                  // Don't do anything for redirects\n                } else {\n                  span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n                  captureException(error, {\n                    mechanism: {\n                      handled: false,\n                      type: 'auto.function.nextjs.server_action',\n                    },\n                  });\n                }\n              });\n\n              if (options.recordResponse !== undefined ? options.recordResponse : sendDefaultPii) {\n                getIsolationScope().setExtra('server_action_result', result);\n              }\n\n              if (options.formData) {\n                options.formData.forEach((value, key) => {\n                  getIsolationScope().setExtra(\n                    `server_action_form_data.${key}`,\n                    typeof value === 'string' ? value : '[non-string value]',\n                  );\n                });\n              }\n\n              return result;\n            },\n          );\n        } finally {\n          waitUntil(flushSafelyWithTimeout());\n        }\n      },\n    );\n  });\n}\n","import type { RequestEventData } from '@sentry/core';\nimport { captureException, headersToDict, withScope } from '@sentry/core';\nimport { flushSafelyWithTimeout, waitUntil } from './utils/responseEnd';\n\ntype RequestInfo = {\n  path: string;\n  method: string;\n  headers: Record;\n};\n\ntype ErrorContext = {\n  routerKind: string; // 'Pages Router' | 'App Router'\n  routePath: string;\n  routeType: string; // 'render' | 'route' | 'middleware'\n};\n\n/**\n * Reports errors passed to the the Next.js `onRequestError` instrumentation hook.\n */\nexport function captureRequestError(error: unknown, request: RequestInfo, errorContext: ErrorContext): void {\n  withScope(scope => {\n    scope.setSDKProcessingMetadata({\n      normalizedRequest: {\n        headers: headersToDict(request.headers),\n        method: request.method,\n      } satisfies RequestEventData,\n    });\n\n    scope.setContext('nextjs', {\n      request_path: request.path,\n      router_kind: errorContext.routerKind,\n      router_path: errorContext.routePath,\n      route_type: errorContext.routeType,\n    });\n\n    scope.setTransactionName(`${request.method} ${errorContext.routePath}`);\n\n    captureException(error, {\n      mechanism: {\n        handled: false,\n        type: 'auto.function.nextjs.on_request_error',\n      },\n    });\n\n    waitUntil(flushSafelyWithTimeout());\n  });\n}\n","import {\n  captureException,\n  continueTrace,\n  debug,\n  getActiveSpan,\n  httpRequestToRequestData,\n  isString,\n  objectify,\n  SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n  SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n  setHttpStatus,\n  startSpanManual,\n  withIsolationScope,\n} from '@sentry/core';\nimport type { NextApiRequest } from 'next';\nimport type { AugmentedNextApiResponse, NextApiHandler } from '../types';\nimport { flushSafelyWithTimeout, waitUntil } from '../utils/responseEnd';\nimport { dropNextjsRootContext, escapeNextjsTracing } from '../utils/tracingUtils';\n\nexport type AugmentedNextApiRequest = NextApiRequest & {\n  __withSentry_applied__?: boolean;\n};\n\n/**\n * Wrap the given API route handler with error nad performance monitoring.\n *\n * @param apiHandler The handler exported from the user's API page route file, which may or may not already be\n * wrapped with `withSentry`\n * @param parameterizedRoute The page's parameterized route.\n * @returns The wrapped handler which will always return a Promise.\n */\nexport function wrapApiHandlerWithSentry(apiHandler: NextApiHandler, parameterizedRoute: string): NextApiHandler {\n  return new Proxy(apiHandler, {\n    apply: (\n      wrappingTarget,\n      thisArg,\n      args: [AugmentedNextApiRequest | undefined, AugmentedNextApiResponse | undefined],\n    ) => {\n      dropNextjsRootContext();\n      return escapeNextjsTracing(() => {\n        const [req, res] = args;\n\n        if (!req) {\n          debug.log(\n            `Wrapped API handler on route \"${parameterizedRoute}\" was not passed a request object. Will not instrument.`,\n          );\n          return wrappingTarget.apply(thisArg, args);\n        } else if (!res) {\n          debug.log(\n            `Wrapped API handler on route \"${parameterizedRoute}\" was not passed a response object. Will not instrument.`,\n          );\n          return wrappingTarget.apply(thisArg, args);\n        }\n\n        // Prevent double wrapping of the same request.\n        if (req.__withSentry_applied__) {\n          return wrappingTarget.apply(thisArg, args);\n        }\n        req.__withSentry_applied__ = true;\n\n        return withIsolationScope(isolationScope => {\n          // Normally, there is an active span here (from Next.js OTEL) and we just use that as parent\n          // Else, we manually continueTrace from the incoming headers\n          const continueTraceIfNoActiveSpan = getActiveSpan()\n            ? (_opts: unknown, callback: () => T) => callback()\n            : continueTrace;\n\n          return continueTraceIfNoActiveSpan(\n            {\n              sentryTrace:\n                req.headers && isString(req.headers['sentry-trace']) ? req.headers['sentry-trace'] : undefined,\n              baggage: req.headers?.baggage,\n            },\n            () => {\n              const reqMethod = `${(req.method || 'GET').toUpperCase()} `;\n              const normalizedRequest = httpRequestToRequestData(req);\n\n              isolationScope.setSDKProcessingMetadata({ normalizedRequest });\n              isolationScope.setTransactionName(`${reqMethod}${parameterizedRoute}`);\n\n              return startSpanManual(\n                {\n                  name: `${reqMethod}${parameterizedRoute}`,\n                  op: 'http.server',\n                  forceTransaction: true,\n                  attributes: {\n                    [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'route',\n                    [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.nextjs',\n                  },\n                },\n                async span => {\n                  // eslint-disable-next-line @typescript-eslint/unbound-method\n                  res.end = new Proxy(res.end, {\n                    apply(target, thisArg, argArray) {\n                      setHttpStatus(span, res.statusCode);\n                      span.end();\n                      waitUntil(flushSafelyWithTimeout());\n                      return target.apply(thisArg, argArray);\n                    },\n                  });\n                  try {\n                    return await wrappingTarget.apply(thisArg, args);\n                  } catch (e) {\n                    // In case we have a primitive, wrap it in the equivalent wrapper class (string -> String, etc.) so that we can\n                    // store a seen flag on it. (Because of the one-way-on-Vercel-one-way-off-of-Vercel approach we've been forced\n                    // to take, it can happen that the same thrown object gets caught in two different ways, and flagging it is a\n                    // way to prevent it from actually being reported twice.)\n                    const objectifiedErr = objectify(e);\n\n                    captureException(objectifiedErr, {\n                      mechanism: {\n                        type: 'auto.http.nextjs.api_handler',\n                        handled: false,\n                        data: {\n                          wrapped_handler: wrappingTarget.name,\n                          function: 'withSentry',\n                        },\n                      },\n                    });\n\n                    setHttpStatus(span, 500);\n                    span.end();\n\n                    // we need to await the flush here to ensure that the error is captured\n                    // as the runtime freezes as soon as the error is thrown below\n                    await flushSafelyWithTimeout();\n\n                    // We rethrow here so that nextjs can do with the error whatever it would normally do. (Sometimes \"whatever it\n                    // would normally do\" is to allow the error to bubble up to the global handlers - another reason we need to mark\n                    // the error as already having been captured.)\n                    throw objectifiedErr;\n                  }\n                },\n              );\n            },\n          );\n        });\n      });\n    },\n  });\n}\n","// import/export got a false positive, and affects most of our index barrel files\n// can be removed once following issue is fixed: https://github.com/import-js/eslint-plugin-import/issues/703\n/* eslint-disable import/export */\nimport {\n  ATTR_HTTP_ROUTE,\n  ATTR_URL_QUERY,\n  SEMATTRS_HTTP_METHOD,\n  SEMATTRS_HTTP_TARGET,\n} from '@opentelemetry/semantic-conventions';\nimport type { EventProcessor } from '@sentry/core';\nimport {\n  applySdkMetadata,\n  debug,\n  extractTraceparentData,\n  getClient,\n  getGlobalScope,\n  GLOBAL_OBJ,\n  SEMANTIC_ATTRIBUTE_SENTRY_OP,\n  SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n  stripUrlQueryAndFragment,\n} from '@sentry/core';\nimport type { NodeClient, NodeOptions } from '@sentry/node';\nimport { getDefaultIntegrations, httpIntegration, init as nodeInit } from '@sentry/node';\nimport { DEBUG_BUILD } from '../common/debug-build';\nimport { devErrorSymbolicationEventProcessor } from '../common/devErrorSymbolicationEventProcessor';\nimport { getVercelEnv } from '../common/getVercelEnv';\nimport { ATTR_NEXT_ROUTE, ATTR_NEXT_SPAN_NAME, ATTR_NEXT_SPAN_TYPE } from '../common/nextSpanAttributes';\nimport {\n  TRANSACTION_ATTR_SENTRY_ROUTE_BACKFILL,\n  TRANSACTION_ATTR_SENTRY_TRACE_BACKFILL,\n  TRANSACTION_ATTR_SHOULD_DROP_TRANSACTION,\n} from '../common/span-attributes-with-logic-attached';\nimport { isBuild } from '../common/utils/isBuild';\nimport { isCloudflareWaitUntilAvailable } from '../common/utils/responseEnd';\nimport { setUrlProcessingMetadata } from '../common/utils/setUrlProcessingMetadata';\nimport { distDirRewriteFramesIntegration } from './distDirRewriteFramesIntegration';\nimport { handleOnSpanStart } from './handleOnSpanStart';\nimport { prepareSafeIdGeneratorContext } from './prepareSafeIdGeneratorContext';\nimport { maybeCompleteCronCheckIn } from './vercelCronsMonitoring';\nimport { maybeCleanupQueueSpan } from './vercelQueuesMonitoring';\n\nexport * from '@sentry/node';\n\nexport { captureUnderscoreErrorException } from '../common/pages-router-instrumentation/_error';\n\n// Override core span methods with Next.js-specific implementations that support Cache Components\nexport { startSpan, startSpanManual, startInactiveSpan } from '../common/utils/nextSpan';\n\nconst globalWithInjectedValues = GLOBAL_OBJ as typeof GLOBAL_OBJ & {\n  _sentryRewriteFramesDistDir?: string;\n  _sentryRelease?: string;\n};\n\n/**\n * A passthrough error boundary for the server that doesn't depend on any react. Error boundaries don't catch SSR errors\n * so they should simply be a passthrough.\n */\nexport const ErrorBoundary = (props: React.PropsWithChildren): React.ReactNode => {\n  if (!props.children) {\n    return null;\n  }\n\n  if (typeof props.children === 'function') {\n    return (props.children as () => React.ReactNode)();\n  }\n\n  // since Next.js >= 10 requires React ^16.6.0 we are allowed to return children like this here\n  return props.children as React.ReactNode;\n};\n\n/**\n * A passthrough redux enhancer for the server that doesn't depend on anything from the `@sentry/react` package.\n */\nexport function createReduxEnhancer() {\n  return (createStore: unknown) => createStore;\n}\n\n/**\n * A passthrough error boundary wrapper for the server that doesn't depend on any react. Error boundaries don't catch\n * SSR errors so they should simply be a passthrough.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function withErrorBoundary

>(\n WrappedComponent: React.ComponentType

,\n): React.FC

{\n return WrappedComponent as React.FC

;\n}\n\n/**\n * Just a passthrough since we're on the server and showing the report dialog on the server doesn't make any sense.\n */\nexport function showReportDialog(): void {\n return;\n}\n\n/**\n * Returns the runtime configuration for the SDK based on the environment.\n * When running on OpenNext/Cloudflare, returns cloudflare runtime config.\n */\nfunction getCloudflareRuntimeConfig(): { runtime: { name: string } } | undefined {\n if (isCloudflareWaitUntilAvailable()) {\n // todo: add version information?\n return { runtime: { name: 'cloudflare' } };\n }\n return undefined;\n}\n\n/** Inits the Sentry NextJS SDK on node. */\n// eslint-disable-next-line complexity\nexport function init(options: NodeOptions): NodeClient | undefined {\n prepareSafeIdGeneratorContext();\n if (isBuild()) {\n return;\n }\n\n if (!DEBUG_BUILD && options.debug) {\n // eslint-disable-next-line no-console\n console.warn(\n '[@sentry/nextjs] You have enabled `debug: true`, but Sentry debug logging was removed from your bundle (likely via `withSentryConfig({ disableLogger: true })` / `webpack.treeshake.removeDebugLogging: true`). Set that option to `false` to see Sentry debug output.',\n );\n }\n\n const customDefaultIntegrations = getDefaultIntegrations(options)\n .filter(integration => integration.name !== 'Http')\n .concat(\n // We are using the HTTP integration without instrumenting incoming HTTP requests because Next.js does that by itself.\n httpIntegration({\n disableIncomingRequestSpans: true,\n }),\n );\n\n // Turn off Next.js' own fetch instrumentation (only when we manage OTEL)\n // https://github.com/lforst/nextjs-fork/blob/1994fd186defda77ad971c36dc3163db263c993f/packages/next/src/server/lib/patch-fetch.ts#L245\n // Enable with custom OTel setup: https://github.com/getsentry/sentry-javascript/issues/17581\n if (!options.skipOpenTelemetrySetup) {\n process.env.NEXT_OTEL_FETCH_DISABLED = '1';\n }\n\n // This value is injected at build time, based on the output directory specified in the build config. Though a default\n // is set there, we set it here as well, just in case something has gone wrong with the injection.\n const distDirName = process.env._sentryRewriteFramesDistDir || globalWithInjectedValues._sentryRewriteFramesDistDir;\n if (distDirName) {\n customDefaultIntegrations.push(distDirRewriteFramesIntegration({ distDirName }));\n }\n\n // Detect if running on OpenNext/Cloudflare and get runtime config\n const cloudflareConfig = getCloudflareRuntimeConfig();\n\n const opts: NodeOptions = {\n environment: options.environment || process.env.SENTRY_ENVIRONMENT || getVercelEnv(false) || process.env.NODE_ENV,\n release: process.env._sentryRelease || globalWithInjectedValues._sentryRelease,\n defaultIntegrations: customDefaultIntegrations,\n ...options,\n // Override runtime to 'cloudflare' when running on OpenNext/Cloudflare\n ...cloudflareConfig,\n };\n\n if (DEBUG_BUILD && opts.debug) {\n debug.enable();\n }\n\n DEBUG_BUILD && debug.log('Initializing SDK...');\n\n if (sdkAlreadyInitialized()) {\n DEBUG_BUILD && debug.log('SDK already initialized');\n return;\n }\n\n // Use appropriate SDK metadata based on the runtime environment\n applySdkMetadata(opts, 'nextjs', ['nextjs', cloudflareConfig ? 'cloudflare' : 'node']);\n\n const client = nodeInit(opts);\n\n client?.on('beforeSampling', ({ spanAttributes }, samplingDecision) => {\n // There are situations where the Next.js Node.js server forwards requests for the Edge Runtime server (e.g. in\n // middleware) and this causes spans for Sentry ingest requests to be created. These are not exempt from our tracing\n // because we didn't get the chance to do `suppressTracing`, since this happens outside of userland.\n // We need to drop these spans.\n if (\n // eslint-disable-next-line deprecation/deprecation\n (typeof spanAttributes[SEMATTRS_HTTP_TARGET] === 'string' &&\n // eslint-disable-next-line deprecation/deprecation\n spanAttributes[SEMATTRS_HTTP_TARGET].includes('sentry_key') &&\n // eslint-disable-next-line deprecation/deprecation\n spanAttributes[SEMATTRS_HTTP_TARGET].includes('sentry_client')) ||\n (typeof spanAttributes[ATTR_URL_QUERY] === 'string' &&\n spanAttributes[ATTR_URL_QUERY].includes('sentry_key') &&\n spanAttributes[ATTR_URL_QUERY].includes('sentry_client'))\n ) {\n samplingDecision.decision = false;\n }\n });\n\n client?.on('spanStart', handleOnSpanStart);\n client?.on('spanEnd', maybeCompleteCronCheckIn);\n client?.on('spanEnd', maybeCleanupQueueSpan);\n\n getGlobalScope().addEventProcessor(\n Object.assign(\n (event => {\n if (event.type === 'transaction') {\n // Filter out transactions for static assets\n // This regex matches the default path to the static assets (`_next/static`) and could potentially filter out too many transactions.\n // We match `/_next/static/` anywhere in the transaction name because its location may change with the basePath setting.\n if (event.transaction?.match(/^GET (\\/.*)?\\/_next\\/static\\//)) {\n return null;\n }\n\n // Filter out requests to resolve source maps for stack frames in dev mode\n if (event.transaction?.match(/\\/__nextjs_original-stack-frame/)) {\n return null;\n }\n\n // Filter out /404 transactions which seem to be created excessively\n if (\n // Pages router\n event.transaction === '/404' ||\n // App router (could be \"GET /404\", \"POST /404\", ...)\n event.transaction?.match(/^(GET|HEAD|POST|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH) \\/(404|_not-found)$/)\n ) {\n return null;\n }\n\n // Filter transactions that we explicitly want to drop.\n if (event.contexts?.trace?.data?.[TRANSACTION_ATTR_SHOULD_DROP_TRANSACTION]) {\n return null;\n }\n\n // Next.js 13 sometimes names the root transactions like this containing useless tracing.\n if (event.transaction === 'NextServer.getRequestHandler') {\n return null;\n }\n\n // Next.js 13 is not correctly picking up tracing data for trace propagation so we use a back-fill strategy\n if (typeof event.contexts?.trace?.data?.[TRANSACTION_ATTR_SENTRY_TRACE_BACKFILL] === 'string') {\n const traceparentData = extractTraceparentData(\n event.contexts.trace.data[TRANSACTION_ATTR_SENTRY_TRACE_BACKFILL],\n );\n\n if (traceparentData?.parentSampled === false) {\n return null;\n }\n }\n\n return event;\n } else {\n return event;\n }\n }) satisfies EventProcessor,\n { id: 'NextLowQualityTransactionsFilter' },\n ),\n );\n\n getGlobalScope().addEventProcessor(\n Object.assign(\n ((event, hint) => {\n if (event.type !== undefined) {\n return event;\n }\n\n const originalException = hint.originalException;\n\n const isPostponeError =\n typeof originalException === 'object' &&\n originalException !== null &&\n '$$typeof' in originalException &&\n originalException.$$typeof === Symbol.for('react.postpone');\n\n if (isPostponeError) {\n // Postpone errors are used for partial-pre-rendering (PPR)\n return null;\n }\n\n // We don't want to capture suspense errors as they are simply used by React/Next.js for control flow\n const exceptionMessage = event.exception?.values?.[0]?.value;\n if (\n exceptionMessage?.includes('Suspense Exception: This is not a real error!') ||\n exceptionMessage?.includes('Suspense Exception: This is not a real error, and should not leak')\n ) {\n return null;\n }\n\n return event;\n }) satisfies EventProcessor,\n { id: 'DropReactControlFlowErrors' },\n ),\n );\n\n // Use the preprocessEvent hook instead of an event processor, so that the users event processors receive the most\n // up-to-date value, but also so that the logic that detects changes to the transaction names to set the source to\n // \"custom\", doesn't trigger.\n client?.on('preprocessEvent', event => {\n // Enhance route handler transactions\n if (\n event.type === 'transaction' &&\n event.contexts?.trace?.data?.[ATTR_NEXT_SPAN_TYPE] === 'BaseServer.handleRequest'\n ) {\n event.contexts.trace.data[SEMANTIC_ATTRIBUTE_SENTRY_OP] = 'http.server';\n event.contexts.trace.op = 'http.server';\n\n if (event.transaction) {\n event.transaction = stripUrlQueryAndFragment(event.transaction);\n }\n\n // eslint-disable-next-line deprecation/deprecation\n const method = event.contexts.trace.data[SEMATTRS_HTTP_METHOD];\n // eslint-disable-next-line deprecation/deprecation\n const target = event.contexts?.trace?.data?.[SEMATTRS_HTTP_TARGET];\n const route = event.contexts.trace.data[ATTR_HTTP_ROUTE] || event.contexts.trace.data[ATTR_NEXT_ROUTE];\n const spanName = event.contexts.trace.data[ATTR_NEXT_SPAN_NAME];\n\n if (typeof method === 'string' && typeof route === 'string' && !route.startsWith('middleware')) {\n const cleanRoute = route.replace(/\\/route$/, '');\n event.transaction = `${method} ${cleanRoute}`;\n event.contexts.trace.data[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] = 'route';\n // Preserve next.route in case it did not get hoisted\n event.contexts.trace.data[ATTR_NEXT_ROUTE] = cleanRoute;\n }\n\n // backfill transaction name for pages that would otherwise contain unparameterized routes\n if (event.contexts.trace.data[TRANSACTION_ATTR_SENTRY_ROUTE_BACKFILL] && event.transaction !== 'GET /_app') {\n event.transaction = `${method} ${event.contexts.trace.data[TRANSACTION_ATTR_SENTRY_ROUTE_BACKFILL]}`;\n }\n\n const middlewareMatch =\n typeof spanName === 'string' && spanName.match(/^middleware (GET|POST|PUT|DELETE|PATCH|HEAD|OPTIONS)/);\n\n if (middlewareMatch) {\n const normalizedName = `middleware ${middlewareMatch[1]}`;\n event.transaction = normalizedName;\n event.contexts.trace.op = 'http.server.middleware';\n }\n\n // Next.js overrides transaction names for page loads that throw an error\n // but we want to keep the original target name\n if (event.transaction === 'GET /_error' && target) {\n event.transaction = `${method ? `${method} ` : ''}${target}`;\n }\n }\n\n // Next.js 13 is not correctly picking up tracing data for trace propagation so we use a back-fill strategy\n if (\n event.type === 'transaction' &&\n typeof event.contexts?.trace?.data?.[TRANSACTION_ATTR_SENTRY_TRACE_BACKFILL] === 'string'\n ) {\n const traceparentData = extractTraceparentData(event.contexts.trace.data[TRANSACTION_ATTR_SENTRY_TRACE_BACKFILL]);\n\n if (traceparentData?.traceId) {\n event.contexts.trace.trace_id = traceparentData.traceId;\n }\n\n if (traceparentData?.parentSpanId) {\n event.contexts.trace.parent_span_id = traceparentData.parentSpanId;\n }\n }\n\n setUrlProcessingMetadata(event);\n });\n\n if (process.env.NODE_ENV === 'development') {\n getGlobalScope().addEventProcessor(devErrorSymbolicationEventProcessor);\n }\n\n try {\n // @ts-expect-error `process.turbopack` is a magic string that will be replaced by Next.js\n if (process.turbopack) {\n getGlobalScope().setTag('turbopack', true);\n }\n } catch {\n // Noop\n // The statement above can throw because process is not defined on the client\n }\n\n DEBUG_BUILD && debug.log('SDK successfully initialized');\n\n return client;\n}\n\nfunction sdkAlreadyInitialized(): boolean {\n return !!getClient();\n}\n\nexport * from '../common';\n\nexport { wrapApiHandlerWithSentry } from '../common/pages-router-instrumentation/wrapApiHandlerWithSentry';\n"],"names":["GLOBAL_OBJ","SDK_VERSION","DEBUG_BUILD","getGlobalSingleton","debug","getFunctionName","addHandler","maybeInstrument","triggerHandlers","isString","isError","isEvent","isInstanceOf","isElement","htmlTreeAsString","isPrimitive","isVueViewModel","getVueInternalName","isRegExp","safeMathRandom","withRandomSafeContext","snipLine","addNonEnumerableProperty","safeDateNow","timestampInSeconds","uuid4","generateTraceId","_setSpanForScope","_getSpanForScope","updateSession","isPlainObject","dateTimestampInSeconds","truncate","merge","Scope","scope","isThenable","chainAndCopyPromiseLike","getMainCarrier","getSentryCarrier","getDefaultCurrentScope","getDefaultIsolationScope","carrier","getStackAsyncContextStrategy","getAsyncContextStrategy","propagationContext","generateSpanId","consoleSandbox","baggage","baggageHeaderToDynamicSamplingContext","parseSampleRate","extractOrgIdFromClient","getCapturedScopesOnSpan","generateSentryTraceHeader","generateTraceparentHeader","SEMANTIC_ATTRIBUTE_SENTRY_OP","SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN","SPAN_STATUS_UNSET","SPAN_STATUS_OK","getCurrentScope","SEMANTIC_ATTRIBUTE_SENTRY_SOURCE","SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME","getActiveSpan","getRootSpan","SPAN_STATUS_ERROR","addGlobalErrorInstrumentationHandler","addGlobalUnhandledRejectionInstrumentationHandler","getClient","isMatchingPattern","DEFAULT_ENVIRONMENT","spanToJSON","SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE","SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE","hasSpansEnabled","spanIsSampled","dynamicSamplingContextToSentryBaggageHeader","TRACE_FLAG_NONE","convertToPlainObject","isSyntheticEvent","normalize","dsn","dsnToString","getSdkMetadataForEnvelopeHeader","createEnvelope","createEventEnvelopeHeaders","getDynamicSamplingContextFromSpan","shouldIgnoreSpan","showSpanDropWarning","createSpanEnvelopeItem","SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE","SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT","TRACE_FLAG_SAMPLED","spanTimeInputToSeconds","logSpanEnd","getStatusMessage","SEMANTIC_ATTRIBUTE_PROFILE_ID","SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME","timedEventsToMeasurements","convertSpanLinksForEnvelope","time","createSpanEnvelope","getSpanDescendants","spanToTransactionTraceContext","withScope","SentryNonRecordingSpan","handleCallbackErrors","shouldContinueTrace","propagationContextFromHeaders","freezeDscOnSpan","getIsolationScope","addChildSpanToSpan","logSpanStart","setCapturedScopesOnSpan","sampleSpan","SentrySpan","SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON","removeChildSpanFromSpan","startInactiveSpan","resolvedSyncPromise","rejectedSyncPromise","normalizeStackTracePath","getGlobalScope","spanToTraceContext","addExceptionMechanism","getCombinedScopeData","applyScopeDataToEvent","eventProcessors","notifyEventProcessors","getFilenameToDebugIdMap","parseEventHintOrCaptureContext","withIsolationScope","startNewTrace","session","makeSession","closeSession","makeDsn","getTraceContextFromScope","dynamicSamplingContext","getDynamicSamplingContextFromScope","_getTraceInfoFromScope","isParameterizedString","getSequenceAttribute","SEVERITY_TEXT_TO_SEVERITY_NUMBER","serializeAttributes","envelope","createLogEnvelope","createMetricEnvelope","safeUnref","makePromiseBuffer","forEachEnvelopeItem","envelopeItemTypeToDataCategory","isRateLimited","envelopeContainsItemType","serializeEnvelope","updateRateLimits","SENTRY_BUFFER_FULL_ERROR","DEFAULT_TRANSPORT_BUFFER_SIZE","getEnvelopeEndpointWithUrlEncodedAuth","_INTERNAL_flushLogsBuffer","_INTERNAL_flushMetricsBuffer","checkOrSetAlreadyCaught","integration","setupIntegration","afterSetupIntegrations","createEventEnvelope","addItemToEnvelope","createAttachmentEnvelopeItem","createSessionEnvelope","setupIntegrations","prepareEvent","getPossibleEventMessages","createClientReportEnvelope","convertTransactionEventToSpanJson","convertSpanJsonToTransactionEvent","reparentChildSpans","extractExceptionKeysForMessage","isErrorEvent","normalizeToSize","addExceptionTypeValue","Client","registerSpanErrorInstrumentation","addUserAgentToTransportHeaders","eventFromUnknownInput","eventFromMessage","createCheckInEnvelope","parseRetryAfterHeader","dsnFromString","SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD","SEMANTIC_ATTRIBUTE_URL_FULL","url","parseStringToURLObject","isURLObjectRelative","parseEnvelope","isEnabled","hasExternalPropagationContext","spanToTraceHeader","TRACEPARENT_REGEXP","spanToTraceparentHeader","stringMatchesSomePattern","traceData","getTraceData","getOriginalFunction","defineIntegration","getEventDescription","applyAggregateErrorsToEvent","exceptionFromError","stripMetadataFromStackFrames","addMetadataToStackFrames","getClientIPAddress","ipHeaderNames","parseCookie","CONSOLE_LEVELS","fill","originalConsoleMethods","addConsoleInstrumentationHandler","severityLevelFromString","safeJoin","captureException","getFramesFromEvent","relative","basename","startSpan","setHttpStatus","addBreadcrumb","startSpanManual","_INTERNAL_copyFlagsFromScopeToEvent","_INTERNAL_insertFlagToScope","_INTERNAL_addFeatureFlagToActiveSpan","GEN_AI_CONVERSATION_ID_ATTRIBUTE","isRequest","SENTRY_BAGGAGE_KEY_PREFIX","stripDataUrlContent","getSanitizedUrlStringFromUrlObject","captureError","attributes","MCP_TOOL_RESULT_CONTENT_COUNT_ATTRIBUTE","isValidContentItem","MCP_TOOL_RESULT_IS_ERROR_ATTRIBUTE","MCP_PROMPT_RESULT_DESCRIPTION_ATTRIBUTE","MCP_PROMPT_RESULT_MESSAGE_COUNT_ATTRIBUTE","getClientInfoForTransport","getSessionDataForTransport","MCP_SERVER_NAME_ATTRIBUTE","MCP_SERVER_TITLE_ATTRIBUTE","MCP_SERVER_VERSION_ATTRIBUTE","getProtocolVersionForTransport","MCP_SESSION_ID_ATTRIBUTE","CLIENT_ADDRESS_ATTRIBUTE","CLIENT_PORT_ATTRIBUTE","MCP_TRANSPORT_ATTRIBUTE","NETWORK_TRANSPORT_ATTRIBUTE","NETWORK_PROTOCOL_VERSION_ATTRIBUTE","MCP_PROTOCOL_VERSION_ATTRIBUTE","extractSessionDataFromInitializeResponse","buildServerAttributesFromInfo","extractToolResultAttributes","extractPromptResultAttributes","MCP_TOOL_NAME_ATTRIBUTE","MCP_RESOURCE_URI_ATTRIBUTE","MCP_PROMPT_NAME_ATTRIBUTE","MCP_REQUEST_ARGUMENT","MCP_LOGGING_LEVEL_ATTRIBUTE","MCP_LOGGING_LOGGER_ATTRIBUTE","MCP_LOGGING_DATA_TYPE_ATTRIBUTE","MCP_LOGGING_MESSAGE_ATTRIBUTE","extractTargetInfo","MCP_REQUEST_ID_ATTRIBUTE","getRequestArguments","MCP_SERVER_OP_VALUE","MCP_FUNCTION_ORIGIN_VALUE","MCP_NOTIFICATION_CLIENT_TO_SERVER_OP_VALUE","MCP_NOTIFICATION_ORIGIN_VALUE","MCP_NOTIFICATION_SERVER_TO_CLIENT_OP_VALUE","MCP_ROUTE_SOURCE_VALUE","buildTransportAttributes","MCP_METHOD_NAME_ATTRIBUTE","buildTypeSpecificAttributes","filterMcpPiiFromSpanData","isJsonRpcRequest","extractSessionDataFromInitializeRequest","storeSessionDataForTransport","buildMcpServerSpanConfig","buildClientAttributesFromInfo","storeSpanForRequest","withActiveSpan","isJsonRpcNotification","createMcpNotificationSpan","createMcpOutgoingNotificationSpan","isJsonRpcResponse","updateSessionDataForTransport","completeSpanWithResults","cleanupPendingSpansForTransport","cleanupSessionDataForTransport","validateMcpServerInstance","transport","wrapTransportOnMessage","wrapTransportSend","wrapTransportOnClose","wrapTransportError","wrapAllMCPHandlers","_INTERNAL_captureLog","formatConsoleArgs","hasConsoleSubstitutions","createConsoleTemplateAttributes","_INTERNAL_captureMetric","isContentMedia","stripInlineMediaFromSingleMessage","GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE","GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE","GEN_AI_USAGE_TOTAL_TOKENS_ATTRIBUTE","truncateGenAiStringInput","truncateGenAiMessages","GEN_AI_REQUEST_AVAILABLE_TOOLS_ATTRIBUTE","GEN_AI_TOOL_NAME_ATTRIBUTE","GEN_AI_TOOL_DESCRIPTION_ATTRIBUTE","toolCallSpanContextMap","AI_PROMPT_ATTRIBUTE","GEN_AI_INPUT_MESSAGES_ATTRIBUTE","AI_PROMPT_MESSAGES_ATTRIBUTE","extractSystemInstructions","GEN_AI_SYSTEM_INSTRUCTIONS_ATTRIBUTE","getTruncatedJsonString","GEN_AI_INPUT_MESSAGES_ORIGINAL_LENGTH_ATTRIBUTE","GEN_AI_INVOKE_AGENT_OPERATION_ATTRIBUTE","GEN_AI_GENERATE_TEXT_DO_GENERATE_OPERATION_ATTRIBUTE","GEN_AI_STREAM_TEXT_DO_STREAM_OPERATION_ATTRIBUTE","GEN_AI_GENERATE_OBJECT_DO_GENERATE_OPERATION_ATTRIBUTE","GEN_AI_STREAM_OBJECT_DO_STREAM_OPERATION_ATTRIBUTE","GEN_AI_EMBED_DO_EMBED_OPERATION_ATTRIBUTE","GEN_AI_EMBED_MANY_DO_EMBED_OPERATION_ATTRIBUTE","GEN_AI_RERANK_DO_RERANK_OPERATION_ATTRIBUTE","GEN_AI_EXECUTE_TOOL_OPERATION_ATTRIBUTE","INVOKE_AGENT_OPS","GENERATE_CONTENT_OPS","EMBEDDINGS_OPS","RERANK_OPS","AI_TOOL_CALL_NAME_ATTRIBUTE","AI_TOOL_CALL_ID_ATTRIBUTE","AI_OPERATION_ID_ATTRIBUTE","accumulateTokensForParent","applyToolDescriptionsAndTokens","applyAccumulatedTokens","AI_RESPONSE_TEXT_ATTRIBUTE","AI_RESPONSE_TOOL_CALLS_ATTRIBUTE","AI_RESPONSE_FINISH_REASON_ATTRIBUTE","GEN_AI_OUTPUT_MESSAGES_ATTRIBUTE","AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE","AI_USAGE_PROMPT_TOKENS_ATTRIBUTE","AI_USAGE_CACHED_INPUT_TOKENS_ATTRIBUTE","GEN_AI_USAGE_INPUT_TOKENS_CACHED_ATTRIBUTE","AI_USAGE_TOKENS_ATTRIBUTE","AI_PROMPT_TOOLS_ATTRIBUTE","convertAvailableToolsToJsonString","OPERATION_NAME_ATTRIBUTE","GEN_AI_OPERATION_NAME_ATTRIBUTE","AI_RESPONSE_OBJECT_ATTRIBUTE","AI_TOOL_CALL_ARGS_ATTRIBUTE","GEN_AI_TOOL_INPUT_ATTRIBUTE","AI_TOOL_CALL_RESULT_ATTRIBUTE","GEN_AI_TOOL_OUTPUT_ATTRIBUTE","AI_SCHEMA_ATTRIBUTE","AI_MODEL_ID_ATTRIBUTE","GEN_AI_REQUEST_MODEL_ATTRIBUTE","AI_VALUES_ATTRIBUTE","GEN_AI_EMBEDDINGS_INPUT_ATTRIBUTE","GEN_AI_TOOL_CALL_ID_ATTRIBUTE","GEN_AI_TOOL_TYPE_ATTRIBUTE","AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE","requestMessagesFromPrompt","GEN_AI_RESPONSE_MODEL_ATTRIBUTE","getSpanOpFromName","DO_SPAN_NAME_PREFIX","AI_RESPONSE_PROVIDER_METADATA_ATTRIBUTE","GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE_ATTRIBUTE","GEN_AI_RESPONSE_FINISH_REASONS_ATTRIBUTE","GEN_AI_RESPONSE_TOOL_CALLS_ATTRIBUTE","OPENAI_RESPONSE_MODEL_ATTRIBUTE","OPENAI_RESPONSE_ID_ATTRIBUTE","GEN_AI_RESPONSE_ID_ATTRIBUTE","OPENAI_RESPONSE_TIMESTAMP_ATTRIBUTE","OPENAI_USAGE_PROMPT_TOKENS_ATTRIBUTE","OPENAI_USAGE_COMPLETION_TOKENS_ATTRIBUTE","GEN_AI_REQUEST_TEMPERATURE_ATTRIBUTE","GEN_AI_REQUEST_TOP_P_ATTRIBUTE","GEN_AI_REQUEST_FREQUENCY_PENALTY_ATTRIBUTE","GEN_AI_REQUEST_PRESENCE_PENALTY_ATTRIBUTE","GEN_AI_REQUEST_STREAM_ATTRIBUTE","GEN_AI_REQUEST_ENCODING_FORMAT_ATTRIBUTE","GEN_AI_REQUEST_DIMENSIONS_ATTRIBUTE","RESPONSE_EVENT_TYPES","isChatCompletionChunk","isResponsesApiStreamEvent","setCommonResponseAttributes","setTokenUsageAttributes","GEN_AI_RESPONSE_STREAMING_ATTRIBUTE","GEN_AI_RESPONSE_TEXT_ATTRIBUTE","GEN_AI_SYSTEM_ATTRIBUTE","extractRequestParameters","isChatCompletionResponse","addChatCompletionAttributes","isResponsesApiResponse","addResponsesApiAttributes","isEmbeddingsResponse","addEmbeddingsAttributes","isConversationResponse","addConversationAttributes","instrumentStream","wrapPromiseWithMethods","buildMethodPath","OPENAI_METHOD_REGISTRY","resolveAIRecordingOptions","mapAnthropicErrorToStatusMessage","GEN_AI_REQUEST_TOP_K_ATTRIBUTE","GEN_AI_REQUEST_MAX_TOKENS_ATTRIBUTE","messagesFromParams","setMessagesAttribute","GEN_AI_PROMPT_ATTRIBUTE","ANTHROPIC_AI_RESPONSE_TIMESTAMP_ATTRIBUTE","handleResponseError","instrumentAsyncIterableStream","instrumentMessageStream","ANTHROPIC_METHOD_REGISTRY","GOOGLE_GENAI_SYSTEM_NAME","contentUnionToMessages","CHATS_CREATE_METHOD","GOOGLE_GENAI_METHOD_REGISTRY","CHAT_PATH","ROLE_MAP","LANGCHAIN_ORIGIN","GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS_ATTRIBUTE","GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS_ATTRIBUTE","GEN_AI_RESPONSE_STOP_REASON_ATTRIBUTE","getInvocationParams","extractLLMRequestAttributes","extractChatModelRequestAttributes","extractLlmResponseAttributes","normalizeLangChainMessages","LANGGRAPH_ORIGIN","GEN_AI_AGENT_NAME_ATTRIBUTE","GEN_AI_PIPELINE_NAME_ATTRIBUTE","extractToolsFromCompiledGraph","setResponseAttributes","supportsNativeFetch","isBrowserBundle","isNodeEnv","exports","UNKNOWN_FUNCTION","filenameIsInApp","flush","vercelWaitUntil","createRequire","parseSemver","detectActiveBundler","loadModule","getBuildPluginOptions","getPackageModules","supportsTurbopackRuleCondition","supportsNativeDebugIds","generateValueInjectionRules","escapeStringForRegex","getNextjsVersion","normalizePathForGlob","supportsProductionCompileHook","constructTurbopackConfig","handleRunAfterProductionCompile","DEFAULT_SERVER_EXTERNAL_PACKAGES","constructWebpackConfigFunction","instrumentation","registerInstrumentations","MAX_BODY_BYTE_LENGTH","createContextKey","subscribe","context","httpRequestToRequestData","patchRequestToCaptureBody","stripUrlQueryAndFragment","_INTERNAL_safeMathRandom","propagation","SpanKind","httpHeadersToSpanAttributes","RPCType","setRPCMetadata","trace","getSpanStatusFromHttpCode","errorMonitor","addStartSpanCallback","isTracingSuppressed","ATTR_HTTP_RESPONSE_STATUS_CODE","SEMATTRS_HTTP_STATUS_CODE","getRPCMetadata","SEMATTRS_NET_HOST_IP","SEMATTRS_NET_HOST_PORT","SEMATTRS_NET_PEER_IP","ATTR_HTTP_ROUTE","parseBaggageHeader","objectToBaggageHeader","getBreadcrumbLogLevelFromHttpStatusCode","shouldPropagateTraceForUrl","mergeBaggageHeaders","parseUrl","getSanitizedUrlString","InstrumentationBase","INSTRUMENTATION_NAME","LRUMap","unsubscribe","InstrumentationNodeModuleDefinition","SpanStatusCode","addRequestBreadcrumb","addTracePropagationHeadersToOutgoingRequest","getRequestOptions","getClientRequestUrl","getHttpSpanDetailsFromUrlObject","ATTR_USER_AGENT_ORIGINAL","ATTR_URL_FULL","ATTR_NETWORK_PROTOCOL_VERSION","ATTR_NETWORK_TRANSPORT","ATTR_NETWORK_PEER_ADDRESS","ATTR_NETWORK_PEER_PORT","SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH","SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED","generateInstrumentOnce","SentryHttpInstrumentation","httpServerIntegration","httpServerSpansIntegration","addTracePropagationHeadersToFetchRequest","addFetchRequestBreadcrumb","NODE_MAJOR","NODE_MINOR","getAbsoluteUrl","SentryNodeFetchInstrumentation","SEMATTRS_HTTP_URL","ATTR_HTTP_REQUEST_METHOD","SEMATTRS_HTTP_METHOD","isSentryRequestUrl","TraceFlags","ATTR_DB_SYSTEM_NAME","SEMATTRS_DB_SYSTEM","SEMATTRS_RPC_SERVICE","SEMATTRS_MESSAGING_SYSTEM","SEMATTRS_FAAS_TRIGGER","SEMATTRS_DB_STATEMENT","SEMATTRS_HTTP_TARGET","TraceState","W3CBaggagePropagator","INVALID_TRACEID","suppressTracing","suppressTracingImpl","setAsyncContextStrategy","SEMATTRS_RPC_GRPC_STATUS_CODE","_INTERNAL_safeDateNow","debounce","captureEvent","ROOT_CONTEXT","SamplingDecision","isSpanContextValid","wrapContextManagerClass","AsyncLocalStorageContextManager","diag","DiagLogLevel","promisify","readFile","readdir","execFile","join","createReadStream","createInterface","functionNamesMatch","LOCAL_VARIABLES_KEY","Worker","isDebuggerEnabled","createRateLimiter","NODE_VERSION","localVariablesSyncIntegration","localVariablesAsyncIntegration","isCjs","dirname","existsSync","readFileSync","isMainThread","logAndExitProcess","startSession","endSession","Agent","parseProxyResponse","Readable","createTransport","HttpsProxyAgent","createGzip","envToBool","sep","posix","createStackParser","nodeStackLineParser","createGetModuleFromFilename","ServerRuntimeClient","applySdkMetadata","threadId","_INTERNAL_clearAiProviderSkips","getTraceContextForScope","supportsEsmLoaderHooks","createAddHookMessageChannel","inboundFiltersIntegration","functionToStringIntegration","linkedErrorsIntegration","requestDataIntegration","systemErrorIntegration","conversationIdIntegration","consoleIntegration","httpIntegration","nativeNodeFetchIntegration","onUncaughtExceptionIntegration","onUnhandledRejectionIntegration","contextLinesIntegration","localVariablesIntegration","nodeContextIntegration","childProcessIntegration","processSessionIntegration","modulesIntegration","initializeEsmLoader","setOpenTelemetryContextAsyncContextStrategy","SPOTLIGHT_INTEGRATION_NAME","spotlightIntegration","client","NodeClient","enhanceDscWithOpenTelemetryRootSpanName","setupEventContextTrace","openTelemetrySetupCheck","getSpotlightConfig","makeNodeTransport","stackParserFromStackParserOptions","defaultStackParser","getIntegrationsToSetup","getSentryRelease","getScopesFromContext","isWrapped","createMissingInstrumentationContext","types","format","captureLog","metrics","performance","monitorEventLoopDelay","_INTERNAL_safeUnref","captureMessage","replaceCronNames","withMonitor","instrumentCron","instrumentNodeCron","instrumentNodeSchedule","HttpInstrumentation","getRequestUrl","addOriginToSpan","UndiciInstrumentation","FsInstrumentation","ExpressInstrumentation","ensureIsWrapped","AttributeNames","FastifyTypes","FastifyNames","spanRequestSymbol","endSpan","safeExecuteInTheMiddleMaybePromise","safeExecuteInTheMiddle","SEMATTRS_HTTP_ROUTE","FastifyInstrumentationV3","FastifyOtelInstrumentation","GraphQLInstrumentation","SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION","KafkaJsInstrumentation","LruMemoizerInstrumentation","MongoDBInstrumentation","MongooseInstrumentation","MySQLInstrumentation","MySQL2Instrumentation","_redisOptions","getCacheKeySafely","getCacheOperation","shouldConsiderForCache","calculateCacheItemSize","SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE","isInCommands","GET_COMMANDS","SEMANTIC_ATTRIBUTE_CACHE_HIT","SEMANTIC_ATTRIBUTE_CACHE_KEY","IORedisInstrumentation","RedisInstrumentation","PgInstrumentation","InstrumentationNodeModuleFile","instrumentPostgresJsSql","replaceExports","ATTR_DB_OPERATION_NAME","ATTR_DB_QUERY_TEXT","ATTR_DB_RESPONSE_STATUS_CODE","ATTR_ERROR_TYPE","PrismaInstrumentation","HapiInstrumentation","HonoTypes","HonoInstrumentation","KoaInstrumentation","ConnectInstrumentation","KnexInstrumentation","instrumentWhenWrapped","TediousInstrumentation","GenericPoolInstrumentation","DataloaderInstrumentation","AmqplibInstrumentation","_INTERNAL_getSpanContextForToolCallId","_INTERNAL_cleanupToolCallSpanContext","INTEGRATION_NAME","SentryVercelAiInstrumentation","addVercelAiProcessors","_INTERNAL_shouldSkipAiProviderWrapping","OPENAI_INTEGRATION_NAME","instrumentOpenAiClient","SentryOpenAiInstrumentation","ANTHROPIC_AI_INTEGRATION_NAME","instrumentAnthropicAiClient","SentryAnthropicAiInstrumentation","GOOGLE_GENAI_INTEGRATION_NAME","instrumentGoogleGenAIClient","SentryGoogleGenAiInstrumentation","_INTERNAL_skipAiProviderWrapping","createLangChainCallbackHandler","LANGCHAIN_INTEGRATION_NAME","SentryLangChainInstrumentation","instrumentLangGraph","LANGGRAPH_INTEGRATION_NAME","SentryLangGraphInstrumentation","isBrowser","coreGrowthbookIntegration","ATTR_DB_COLLECTION_NAME","ATTR_DB_NAMESPACE","ATTR_SERVER_ADDRESS","ATTR_SERVER_PORT","patchFirestore","patchFunctions","FirebaseInstrumentation","expressIntegration","fastifyIntegration","graphqlIntegration","honoIntegration","mongoIntegration","mongooseIntegration","mysqlIntegration","mysql2Integration","redisIntegration","postgresIntegration","prismaIntegration","hapiIntegration","koaIntegration","connectIntegration","tediousIntegration","genericPoolIntegration","kafkaIntegration","amqplibIntegration","lruMemoizerIntegration","langChainIntegration","langGraphIntegration","vercelAIIntegration","openAIIntegration","anthropicAIIntegration","googleGenAIIntegration","postgresJsIntegration","firebaseIntegration","instrumentSentryHttp","instrumentOtelHttp","instrumentExpress","instrumentConnect","instrumentFastify","instrumentFastifyV3","instrumentHapi","instrumentHono","instrumentKafka","instrumentKoa","instrumentLruMemoizer","instrumentMongo","instrumentMongoose","instrumentMysql","instrumentMysql2","instrumentPostgres","instrumentGraphql","instrumentRedis","instrumentTedious","instrumentGenericPool","instrumentAmqplib","instrumentLangChain","instrumentVercelAi","instrumentOpenAi","instrumentPostgresJs","instrumentFirebase","instrumentAnthropicAi","instrumentGoogleGenAI","setupOpenTelemetryLogger","coreDebug","getOpenTelemetryInstrumentationToPreload","BasicTracerProvider","SentrySampler","defaultResource","resourceFromAttributes","ATTR_SERVICE_NAME","SEMRESATTRS_SERVICE_NAMESPACE","ATTR_SERVICE_VERSION","SentrySpanProcessor","SentryPropagator","SentryContextManager","getNodeCoreDefaultIntegrations","getAutoPerformanceIntegrations","initNodeCore","initOpenTelemetry","validateOpenTelemetrySetup","getGitRevision","resolveTunnelRoute","setUpTunnelRewriteRules","createRouteManifest","requiresInstrumentationHook","getInstrumentationClientFileContents","migrateDeprecatedWebpackOptions","resolveReleaseName","maybeSetUpTunnelRouteRewriteRules","shouldReturnEarlyInExperimentalBuildMode","maybeCreateRouteManifest","maybeGetVercelCronsConfig","setUpBuildTimeVariables","getNextMajor","maybeSetClientTraceMetadataOption","maybeSetInstrumentationHookOption","warnIfMissingOnRouterTransitionStartHook","getBundlerInfo","maybeWarnAboutUnsupportedTurbopack","maybeWarnAboutUnsupportedRunAfterProductionCompileHook","maybeConstructTurbopackConfig","resolveUseRunAfterProductionCompileHookOption","maybeSetUpRunAfterProductionCompileHook","maybeEnableTurbopackSourcemaps","getServerExternalPackagesPatch","getWebpackPatch","getTurbopackPatch","getFinalConfigObject","MODERN_BROWSERSLIST_TARGET","module","UNDERSCORE_GLOBAL_ERROR_ROUTE","UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY","UNDERSCORE_NOT_FOUND_ROUTE","UNDERSCORE_NOT_FOUND_ROUTE_ENTRY","APP_CLIENT_INTERNALS","APP_PATHS_MANIFEST","APP_PATH_ROUTES_MANIFEST","AdapterOutputType","BARREL_OPTIMIZATION_PREFIX","BLOCKED_PAGES","BUILD_ID_FILE","BUILD_MANIFEST","CLIENT_PUBLIC_FILES_PATH","CLIENT_REFERENCE_MANIFEST","CLIENT_STATIC_FILES_PATH","CLIENT_STATIC_FILES_RUNTIME_MAIN","CLIENT_STATIC_FILES_RUNTIME_MAIN_APP","CLIENT_STATIC_FILES_RUNTIME_POLYFILLS","CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL","CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH","CLIENT_STATIC_FILES_RUNTIME_WEBPACK","COMPILER_INDEXES","COMPILER_NAMES","CONFIG_FILES","DEFAULT_RUNTIME_WEBPACK","DEFAULT_SANS_SERIF_FONT","DEFAULT_SERIF_FONT","DEV_CLIENT_MIDDLEWARE_MANIFEST","DEV_CLIENT_PAGES_MANIFEST","DYNAMIC_CSS_MANIFEST","EDGE_RUNTIME_WEBPACK","EDGE_UNSUPPORTED_NODE_APIS","EXPORT_DETAIL","EXPORT_MARKER","FUNCTIONS_CONFIG_MANIFEST","IMAGES_MANIFEST","INTERCEPTION_ROUTE_REWRITE_MANIFEST","MIDDLEWARE_BUILD_MANIFEST","MIDDLEWARE_MANIFEST","MIDDLEWARE_REACT_LOADABLE_MANIFEST","NEXT_BUILTIN_DOCUMENT","NEXT_FONT_MANIFEST","PAGES_MANIFEST","PHASE_ANALYZE","PHASE_DEVELOPMENT_SERVER","PHASE_EXPORT","PHASE_INFO","PHASE_PRODUCTION_BUILD","PHASE_PRODUCTION_SERVER","PHASE_TEST","PRERENDER_MANIFEST","REACT_LOADABLE_MANIFEST","ROUTES_MANIFEST","RSC_MODULE_TYPES","SERVER_DIRECTORY","SERVER_FILES_MANIFEST","SERVER_PROPS_ID","SERVER_REFERENCE_MANIFEST","STATIC_PROPS_ID","STATIC_STATUS_PAGES","STRING_LITERAL_DROP_BUNDLE","SUBRESOURCE_INTEGRITY_MANIFEST","SYSTEM_ENTRYPOINTS","TRACE_OUTPUT_VERSION","TURBOPACK_CLIENT_BUILD_MANIFEST","TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST","TURBO_TRACE_DEFAULT_MEMORY_LIMIT","WEBPACK_STATS","server","edgeServer","process","features","typescript","Symbol","name","xAvgCharWidth","azAvgWidth","unitsPerEm","Set","getSanitizedRequestUrl","rewriteFramesIntegration","winterCGHeadersToDict","ATTR_NEXT_SPAN_TYPE","isSentryRequestSpan","TRANSACTION_ATTR_SHOULD_DROP_TRANSACTION","ATTR_NEXT_SPAN_NAME","ATTR_NEXT_SEGMENT","captureCheckIn","dropMiddlewareTunnelRequests","ATTR_NEXT_ROUTE","maybeStartCronCheckIn","maybeEnrichQueueConsumerSpan","addHeadersAsAttributes","maybeEnhanceServerComponentSpanName","maybeEnrichQueueProducerSpan","isAlreadyCaptured","waitUntil","flushSafelyWithTimeout","isBuild","isUseCacheFunction","coreStartSpan","coreStartSpanManual","coreStartInactiveSpan","TRANSACTION_ATTR_SENTRY_ROUTE_BACKFILL","withErrorInstrumentation","callDataFetcherTraced","withTracedServerSideDataFetcher","isNotFoundNavigationError","isRedirectNavigationError","commonObjectToIsolationScope","winterCGRequestToRequestData","extractTraceparentData","continueTrace","headersToDict","dropNextjsRootContext","escapeNextjsTracing","objectify","isCloudflareWaitUntilAvailable","prepareSafeIdGeneratorContext","getDefaultIntegrations","distDirRewriteFramesIntegration","getVercelEnv","nodeInit","ATTR_URL_QUERY","handleOnSpanStart","maybeCompleteCronCheckIn","maybeCleanupQueueSpan","TRANSACTION_ATTR_SENTRY_TRACE_BACKFILL","setUrlProcessingMetadata","devErrorSymbolicationEventProcessor"],"mappings":"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","ignoreList":[194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,257,258,259,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,426,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,606,607,608,609,610,611,612,613,614,615,624,629,630,631,632,633]}}] } \ No newline at end of file diff --git a/.next/server/chunks/ssr/468ab_next_dist_6d1ec603._.js b/.next/server/chunks/ssr/468ab_next_dist_6d1ec603._.js deleted file mode 100644 index 4a8f20e49..000000000 --- a/.next/server/chunks/ssr/468ab_next_dist_6d1ec603._.js +++ /dev/null @@ -1,8 +0,0 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="85425b90-789b-4d29-2e01-9cf26e22829c")}catch(e){}}(); -module.exports=[556757,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={isHangingPromiseRejectionError:function(){return f},makeDevtoolsIOAwarePromise:function(){return l},makeHangingPromise:function(){return j}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===g}let g="HANGING_PROMISE_REJECTION";class h extends Error{constructor(a,b){super(`During prerendering, ${b} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${b} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${a}".`),this.route=a,this.expression=b,this.digest=g}}let i=new WeakMap;function j(a,b,c){if(a.aborted)return Promise.reject(new h(b,c));{let d=new Promise((d,e)=>{let f=e.bind(null,new h(b,c)),g=i.get(a);if(g)g.push(f);else{let b=[f];i.set(a,b),a.addEventListener("abort",()=>{for(let a=0;a{setTimeout(()=>{b(a)},0)})}},332278,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={BailoutToCSRError:function(){return g},isBailoutToCSRError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f="BAILOUT_TO_CLIENT_SIDE_RENDERING";class g extends Error{constructor(a){super(`Bail out to client-side rendering: ${a}`),this.reason=a,this.digest=f}}function h(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===f}},667721,(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)},584345,(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)},590141,(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__"},13336,(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))}},651174,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"InvariantError",{enumerable:!0,get:function(){return d}});class d extends Error{constructor(a,b){super(`Invariant: ${a.endsWith(".")?a:a+"."} This is a bug in Next.js.`,b),this.name="InvariantError"}}},308502,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d,e,f={Postpone:function(){return B},PreludeState:function(){return $},abortAndThrowOnSynchronousRequestDataAccess:function(){return A},abortOnSynchronousPlatformIOAccess:function(){return z},accessedDynamicData:function(){return J},annotateDynamicAccess:function(){return O},consumeDynamicAccess:function(){return K},createDynamicTrackingState:function(){return s},createDynamicValidationState:function(){return t},createHangingInputAbortSignal:function(){return N},createRenderInBrowserAbortSignal:function(){return M},delayUntilRuntimeStage:function(){return ac},formatDynamicAPIAccesses:function(){return L},getFirstDynamicReason:function(){return u},getStaticShellDisallowedDynamicReasons:function(){return ab},isDynamicPostpone:function(){return E},isPrerenderInterruptedError:function(){return I},logDisallowedDynamicError:function(){return _},markCurrentScopeAsDynamic:function(){return v},postponeWithTracking:function(){return C},throwIfDisallowedDynamic:function(){return aa},throwToInterruptStaticGeneration:function(){return w},trackAllowedDynamicAccess:function(){return W},trackDynamicDataInDynamicRender:function(){return x},trackDynamicHoleInRuntimeShell:function(){return X},trackDynamicHoleInStaticShell:function(){return Y},useDynamicRouteParams:function(){return P},useDynamicSearchParams:function(){return Q}};for(var g in f)Object.defineProperty(c,g,{enumerable:!0,get:f[g]});let h=(d=a.r(150765))&&d.__esModule?d:{default:d},i=a.r(667721),j=a.r(584345),k=a.r(832319),l=a.r(556704),m=a.r(556757),n=a.r(590141),o=a.r(13336),p=a.r(332278),q=a.r(651174),r="function"==typeof h.default.unstable_postpone;function s(a){return{isDebugDynamicAccesses:a,dynamicAccesses:[],syncDynamicErrorWithStack:null}}function t(){return{hasSuspenseAboveBody:!1,hasDynamicMetadata:!1,dynamicMetadata:null,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[]}}function u(a){var b;return null==(b=a.dynamicAccesses[0])?void 0:b.expression}function v(a,b,c){if(b)switch(b.type){case"cache":case"unstable-cache":case"private-cache":return}if(!a.forceDynamic&&!a.forceStatic){if(a.dynamicShouldError)throw Object.defineProperty(new j.StaticGenBailoutError(`Route ${a.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${c}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(b)switch(b.type){case"prerender-ppr":return C(a.route,c,b.dynamicTracking);case"prerender-legacy":b.revalidate=0;let d=Object.defineProperty(new i.DynamicServerError(`Route ${a.route} couldn't be rendered statically because it used ${c}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E550",enumerable:!1,configurable:!0});throw a.dynamicUsageDescription=c,a.dynamicUsageStack=d.stack,d}}}function w(a,b,c){let d=Object.defineProperty(new i.DynamicServerError(`Route ${b.route} couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw c.revalidate=0,b.dynamicUsageDescription=a,b.dynamicUsageStack=d.stack,d}function x(a){switch(a.type){case"cache":case"unstable-cache":case"private-cache":return}}function y(a,b,c){let d=H(`Route ${a} needs to bail out of prerendering at this point because it used ${b}.`);c.controller.abort(d);let e=c.dynamicTracking;e&&e.dynamicAccesses.push({stack:e.isDebugDynamicAccesses?Error().stack:void 0,expression:b})}function z(a,b,c,d){let e=d.dynamicTracking;y(a,b,d),e&&null===e.syncDynamicErrorWithStack&&(e.syncDynamicErrorWithStack=c)}function A(a,b,c,d){if(!1===d.controller.signal.aborted){y(a,b,d);let e=d.dynamicTracking;e&&null===e.syncDynamicErrorWithStack&&(e.syncDynamicErrorWithStack=c)}throw H(`Route ${a} needs to bail out of prerendering at this point because it used ${b}.`)}function B({reason:a,route:b}){let c=k.workUnitAsyncStorage.getStore();C(b,a,c&&"prerender-ppr"===c.type?c.dynamicTracking:null)}function C(a,b,c){(function(){if(!r)throw Object.defineProperty(Error("Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E224",enumerable:!1,configurable:!0})})(),c&&c.dynamicAccesses.push({stack:c.isDebugDynamicAccesses?Error().stack:void 0,expression:b}),h.default.unstable_postpone(D(a,b))}function D(a,b){return`Route ${a} needs to bail out of prerendering at this point because it used ${b}. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`}function E(a){return"object"==typeof a&&null!==a&&"string"==typeof a.message&&F(a.message)}function F(a){return a.includes("needs to bail out of prerendering at this point because it used")&&a.includes("Learn more: https://nextjs.org/docs/messages/ppr-caught-error")}if(!1===F(D("%%%","^^^")))throw Object.defineProperty(Error("Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E296",enumerable:!1,configurable:!0});let G="NEXT_PRERENDER_INTERRUPTED";function H(a){let b=Object.defineProperty(Error(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return b.digest=G,b}function I(a){return"object"==typeof a&&null!==a&&a.digest===G&&"name"in a&&"message"in a&&a instanceof Error}function J(a){return a.length>0}function K(a,b){return a.dynamicAccesses.push(...b.dynamicAccesses),a.dynamicAccesses}function L(a){return a.filter(a=>"string"==typeof a.stack&&a.stack.length>0).map(({expression:a,stack:b})=>(b=b.split("\n").slice(4).filter(a=>!(a.includes("node_modules/next/")||a.includes(" ()")||a.includes(" (node:"))).join("\n"),`Dynamic API Usage Debug - ${a}: -${b}`))}function M(){let a=new AbortController;return a.abort(Object.defineProperty(new p.BailoutToCSRError("Render in Browser"),"__NEXT_ERROR_CODE",{value:"E721",enumerable:!1,configurable:!0})),a.signal}function N(a){switch(a.type){case"prerender":case"prerender-runtime":let b=new AbortController;if(a.cacheSignal)a.cacheSignal.inputReady().then(()=>{b.abort()});else{let c=(0,k.getRuntimeStagePromise)(a);c?c.then(()=>(0,o.scheduleOnNextTick)(()=>b.abort())):(0,o.scheduleOnNextTick)(()=>b.abort())}return b.signal;case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":return}}function O(a,b){let c=b.dynamicTracking;c&&c.dynamicAccesses.push({stack:c.isDebugDynamicAccesses?Error().stack:void 0,expression:a})}function P(a){let b=l.workAsyncStorage.getStore(),c=k.workUnitAsyncStorage.getStore();if(b&&c)switch(c.type){case"prerender-client":case"prerender":{let d=c.fallbackRouteParams;d&&d.size>0&&h.default.use((0,m.makeHangingPromise)(c.renderSignal,b.route,a));break}case"prerender-ppr":{let d=c.fallbackRouteParams;if(d&&d.size>0)return C(b.route,a,c.dynamicTracking);break}case"prerender-runtime":throw Object.defineProperty(new q.InvariantError(`\`${a}\` was called during a runtime prerender. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E771",enumerable:!1,configurable:!0});case"cache":case"private-cache":throw Object.defineProperty(new q.InvariantError(`\`${a}\` was called inside a cache scope. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0})}}function Q(a){let b=l.workAsyncStorage.getStore(),c=k.workUnitAsyncStorage.getStore();if(b)switch(!c&&(0,k.throwForMissingRequestStore)(a),c.type){case"prerender-client":h.default.use((0,m.makeHangingPromise)(c.renderSignal,b.route,a));break;case"prerender-legacy":case"prerender-ppr":if(b.forceStatic)return;throw Object.defineProperty(new p.BailoutToCSRError(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":throw Object.defineProperty(new q.InvariantError(`\`${a}\` was called from a Server Component. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E795",enumerable:!1,configurable:!0});case"cache":case"unstable-cache":case"private-cache":throw Object.defineProperty(new q.InvariantError(`\`${a}\` was called inside a cache scope. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0});case"request":return}}let R=/\n\s+at Suspense \(\)/,S=RegExp(`\\n\\s+at Suspense \\(\\)(?:(?!\\n\\s+at (?:body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6) \\(\\))[\\s\\S])*?\\n\\s+at ${n.ROOT_LAYOUT_BOUNDARY_NAME} \\([^\\n]*\\)`),T=RegExp(`\\n\\s+at ${n.METADATA_BOUNDARY_NAME}[\\n\\s]`),U=RegExp(`\\n\\s+at ${n.VIEWPORT_BOUNDARY_NAME}[\\n\\s]`),V=RegExp(`\\n\\s+at ${n.OUTLET_BOUNDARY_NAME}[\\n\\s]`);function W(a,b,c,d){if(!V.test(b)){if(T.test(b)){c.hasDynamicMetadata=!0;return}if(U.test(b)){c.hasDynamicViewport=!0;return}if(S.test(b)){c.hasAllowedDynamic=!0,c.hasSuspenseAboveBody=!0;return}else if(R.test(b)){c.hasAllowedDynamic=!0;return}else{if(d.syncDynamicErrorWithStack)return void c.dynamicErrors.push(d.syncDynamicErrorWithStack);let e=Z(`Route "${a.route}": Uncached data was accessed outside of . This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`,b);return void c.dynamicErrors.push(e)}}}function X(a,b,c,d){if(!V.test(b)){if(T.test(b)){c.dynamicMetadata=Z(`Route "${a.route}": Uncached data or \`connection()\` was accessed inside \`generateMetadata\`. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`,b);return}if(U.test(b)){let d=Z(`Route "${a.route}": Uncached data or \`connection()\` was accessed inside \`generateViewport\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`,b);c.dynamicErrors.push(d);return}if(S.test(b)){c.hasAllowedDynamic=!0,c.hasSuspenseAboveBody=!0;return}else if(R.test(b)){c.hasAllowedDynamic=!0;return}else{if(d.syncDynamicErrorWithStack)return void c.dynamicErrors.push(d.syncDynamicErrorWithStack);let e=Z(`Route "${a.route}": Uncached data or \`connection()\` was accessed outside of \`\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`,b);return void c.dynamicErrors.push(e)}}}function Y(a,b,c,d){if(!V.test(b)){if(T.test(b)){c.dynamicMetadata=Z(`Route "${a.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed inside \`generateMetadata\` or you have file-based metadata such as icons that depend on dynamic params segments. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`,b);return}if(U.test(b)){let d=Z(`Route "${a.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed inside \`generateViewport\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`,b);c.dynamicErrors.push(d);return}if(S.test(b)){c.hasAllowedDynamic=!0,c.hasSuspenseAboveBody=!0;return}else if(R.test(b)){c.hasAllowedDynamic=!0;return}else{if(d.syncDynamicErrorWithStack)return void c.dynamicErrors.push(d.syncDynamicErrorWithStack);let e=Z(`Route "${a.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed outside of \`\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`,b);return void c.dynamicErrors.push(e)}}}function Z(a,b){let c=Object.defineProperty(Error(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return c.stack=c.name+": "+a+b,c}var $=((e={})[e.Full=0]="Full",e[e.Empty=1]="Empty",e[e.Errored=2]="Errored",e);function _(a,b){console.error(b),a.dev||(a.hasReadableErrorStacks?console.error(`To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \`next dev\`, then open "${a.route}" in your browser to investigate the error.`):console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following: - - Start the app in development mode by running \`next dev\`, then open "${a.route}" in your browser to investigate the error. - - Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`))}function aa(a,b,c,d){if(d.syncDynamicErrorWithStack)throw _(a,d.syncDynamicErrorWithStack),new j.StaticGenBailoutError;if(0!==b){if(c.hasSuspenseAboveBody)return;let d=c.dynamicErrors;if(d.length>0){for(let b=0;b0)return d;if(1===b)return[Object.defineProperty(new q.InvariantError(`Route "${a.route}" did not produce a static shell and Next.js was unable to determine a reason.`),"__NEXT_ERROR_CODE",{value:"E936",enumerable:!1,configurable:!0})]}else if(!1===c.hasAllowedDynamic&&0===c.dynamicErrors.length&&c.dynamicMetadata)return[c.dynamicMetadata];return[]}function ac(a,b){return a.runtimeStagePromise?a.runtimeStagePromise.then(()=>b):b}}]; - -//# debugId=85425b90-789b-4d29-2e01-9cf26e22829c -//# sourceMappingURL=468ab_next_dist_6d1ec603._.js.map \ No newline at end of file diff --git a/.next/server/chunks/ssr/468ab_next_dist_6d1ec603._.js.map b/.next/server/chunks/ssr/468ab_next_dist_6d1ec603._.js.map deleted file mode 100644 index fb993f46a..000000000 --- a/.next/server/chunks/ssr/468ab_next_dist_6d1ec603._.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": [], - "debugId": "85425b90-789b-4d29-2e01-9cf26e22829c", - "sections": [ - {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/dynamic-rendering-utils.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/lazy-dynamic/bailout-to-csr.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/components/hooks-server-context.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/components/static-generation-bailout.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/lib/framework/boundary-constants.tsx","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/lib/scheduler.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/invariant-error.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/app-render/dynamic-rendering.ts"],"sourcesContent":["import type { NonStaticRenderStage } from './app-render/staged-rendering'\nimport type { RequestStore } from './app-render/work-unit-async-storage.external'\n\nexport function isHangingPromiseRejectionError(\n err: unknown\n): err is HangingPromiseRejectionError {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false\n }\n\n return err.digest === HANGING_PROMISE_REJECTION\n}\n\nconst HANGING_PROMISE_REJECTION = 'HANGING_PROMISE_REJECTION'\n\nclass HangingPromiseRejectionError extends Error {\n public readonly digest = HANGING_PROMISE_REJECTION\n\n constructor(\n public readonly route: string,\n public readonly expression: string\n ) {\n super(\n `During prerendering, ${expression} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${expression} to a different context by using \\`setTimeout\\`, \\`after\\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route \"${route}\".`\n )\n }\n}\n\ntype AbortListeners = Array<(err: unknown) => void>\nconst abortListenersBySignal = new WeakMap()\n\n/**\n * This function constructs a promise that will never resolve. This is primarily\n * useful for cacheComponents where we use promise resolution timing to determine which\n * parts of a render can be included in a prerender.\n *\n * @internal\n */\nexport function makeHangingPromise(\n signal: AbortSignal,\n route: string,\n expression: string\n): Promise {\n if (signal.aborted) {\n return Promise.reject(new HangingPromiseRejectionError(route, expression))\n } else {\n const hangingPromise = new Promise((_, reject) => {\n const boundRejection = reject.bind(\n null,\n new HangingPromiseRejectionError(route, expression)\n )\n let currentListeners = abortListenersBySignal.get(signal)\n if (currentListeners) {\n currentListeners.push(boundRejection)\n } else {\n const listeners = [boundRejection]\n abortListenersBySignal.set(signal, listeners)\n signal.addEventListener(\n 'abort',\n () => {\n for (let i = 0; i < listeners.length; i++) {\n listeners[i]()\n }\n },\n { once: true }\n )\n }\n })\n // We are fine if no one actually awaits this promise. We shouldn't consider this an unhandled rejection so\n // we attach a noop catch handler here to suppress this warning. If you actually await somewhere or construct\n // your own promise out of it you'll need to ensure you handle the error when it rejects.\n hangingPromise.catch(ignoreReject)\n return hangingPromise\n }\n}\n\nfunction ignoreReject() {}\n\nexport function makeDevtoolsIOAwarePromise(\n underlying: T,\n requestStore: RequestStore,\n stage: NonStaticRenderStage\n): Promise {\n if (requestStore.stagedRendering) {\n // We resolve each stage in a timeout, so React DevTools will pick this up as IO.\n return requestStore.stagedRendering.delayUntilStage(\n stage,\n undefined,\n underlying\n )\n }\n // in React DevTools if we resolve in a setTimeout we will observe\n // the promise resolution as something that can suspend a boundary or root.\n return new Promise((resolve) => {\n // Must use setTimeout to be considered IO React DevTools. setImmediate will not work.\n setTimeout(() => {\n resolve(underlying)\n }, 0)\n })\n}\n","// This has to be a shared module which is shared between client component error boundary and dynamic component\nconst BAILOUT_TO_CSR = 'BAILOUT_TO_CLIENT_SIDE_RENDERING'\n\n/** An error that should be thrown when we want to bail out to client-side rendering. */\nexport class BailoutToCSRError extends Error {\n public readonly digest = BAILOUT_TO_CSR\n\n constructor(public readonly reason: string) {\n super(`Bail out to client-side rendering: ${reason}`)\n }\n}\n\n/** Checks if a passed argument is an error that is thrown if we want to bail out to client-side rendering. */\nexport function isBailoutToCSRError(err: unknown): err is BailoutToCSRError {\n if (typeof err !== 'object' || err === null || !('digest' in err)) {\n return false\n }\n\n return err.digest === BAILOUT_TO_CSR\n}\n","const DYNAMIC_ERROR_CODE = 'DYNAMIC_SERVER_USAGE'\n\nexport class DynamicServerError extends Error {\n digest: typeof DYNAMIC_ERROR_CODE = DYNAMIC_ERROR_CODE\n\n constructor(public readonly description: string) {\n super(`Dynamic server usage: ${description}`)\n }\n}\n\nexport function isDynamicServerError(err: unknown): err is DynamicServerError {\n if (\n typeof err !== 'object' ||\n err === null ||\n !('digest' in err) ||\n typeof err.digest !== 'string'\n ) {\n return false\n }\n\n return err.digest === DYNAMIC_ERROR_CODE\n}\n","const NEXT_STATIC_GEN_BAILOUT = 'NEXT_STATIC_GEN_BAILOUT'\n\nexport class StaticGenBailoutError extends Error {\n public readonly code = NEXT_STATIC_GEN_BAILOUT\n}\n\nexport function isStaticGenBailoutError(\n error: unknown\n): error is StaticGenBailoutError {\n if (typeof error !== 'object' || error === null || !('code' in error)) {\n return false\n }\n\n return error.code === NEXT_STATIC_GEN_BAILOUT\n}\n","export const METADATA_BOUNDARY_NAME = '__next_metadata_boundary__'\nexport const VIEWPORT_BOUNDARY_NAME = '__next_viewport_boundary__'\nexport const OUTLET_BOUNDARY_NAME = '__next_outlet_boundary__'\nexport const ROOT_LAYOUT_BOUNDARY_NAME = '__next_root_layout_boundary__'\n","export type ScheduledFn = () => T | PromiseLike\nexport type SchedulerFn = (cb: ScheduledFn) => void\n\n/**\n * Schedules a function to be called on the next tick after the other promises\n * have been resolved.\n *\n * @param cb the function to schedule\n */\nexport const scheduleOnNextTick = (cb: ScheduledFn) => {\n // We use Promise.resolve().then() here so that the operation is scheduled at\n // the end of the promise job queue, we then add it to the next process tick\n // to ensure it's evaluated afterwards.\n //\n // This was inspired by the implementation of the DataLoader interface: https://github.com/graphql/dataloader/blob/d336bd15282664e0be4b4a657cb796f09bafbc6b/src/index.js#L213-L255\n //\n Promise.resolve().then(() => {\n if (process.env.NEXT_RUNTIME === 'edge') {\n setTimeout(cb, 0)\n } else {\n process.nextTick(cb)\n }\n })\n}\n\n/**\n * Schedules a function to be called using `setImmediate` or `setTimeout` if\n * `setImmediate` is not available (like in the Edge runtime).\n *\n * @param cb the function to schedule\n */\nexport const scheduleImmediate = (cb: ScheduledFn): void => {\n if (process.env.NEXT_RUNTIME === 'edge') {\n setTimeout(cb, 0)\n } else {\n setImmediate(cb)\n }\n}\n\n/**\n * returns a promise than resolves in a future task. There is no guarantee that the task it resolves in\n * will be the next task but if you await it you can at least be sure that the current task is over and\n * most usefully that the entire microtask queue of the current task has been emptied.\n */\nexport function atLeastOneTask() {\n return new Promise((resolve) => scheduleImmediate(resolve))\n}\n\n/**\n * This utility function is extracted to make it easier to find places where we are doing\n * specific timing tricks to try to schedule work after React has rendered. This is especially\n * important at the moment because Next.js uses the edge builds of React which use setTimeout to\n * schedule work when you might expect that something like setImmediate would do the trick.\n *\n * Long term we should switch to the node versions of React rendering when possible and then\n * update this to use setImmediate rather than setTimeout\n */\nexport function waitAtLeastOneReactRenderTask(): Promise {\n if (process.env.NEXT_RUNTIME === 'edge') {\n return new Promise((r) => setTimeout(r, 0))\n } else {\n return new Promise((r) => setImmediate(r))\n }\n}\n","export class InvariantError extends Error {\n constructor(message: string, options?: ErrorOptions) {\n super(\n `Invariant: ${message.endsWith('.') ? message : message + '.'} This is a bug in Next.js.`,\n options\n )\n this.name = 'InvariantError'\n }\n}\n","/**\n * The functions provided by this module are used to communicate certain properties\n * about the currently running code so that Next.js can make decisions on how to handle\n * the current execution in different rendering modes such as pre-rendering, resuming, and SSR.\n *\n * Today Next.js treats all code as potentially static. Certain APIs may only make sense when dynamically rendering.\n * Traditionally this meant deopting the entire render to dynamic however with PPR we can now deopt parts\n * of a React tree as dynamic while still keeping other parts static. There are really two different kinds of\n * Dynamic indications.\n *\n * The first is simply an intention to be dynamic. unstable_noStore is an example of this where\n * the currently executing code simply declares that the current scope is dynamic but if you use it\n * inside unstable_cache it can still be cached. This type of indication can be removed if we ever\n * make the default dynamic to begin with because the only way you would ever be static is inside\n * a cache scope which this indication does not affect.\n *\n * The second is an indication that a dynamic data source was read. This is a stronger form of dynamic\n * because it means that it is inappropriate to cache this at all. using a dynamic data source inside\n * unstable_cache should error. If you want to use some dynamic data inside unstable_cache you should\n * read that data outside the cache and pass it in as an argument to the cached function.\n */\n\nimport type { WorkStore } from '../app-render/work-async-storage.external'\nimport type {\n WorkUnitStore,\n PrerenderStoreLegacy,\n PrerenderStoreModern,\n PrerenderStoreModernRuntime,\n} from '../app-render/work-unit-async-storage.external'\n\n// Once postpone is in stable we should switch to importing the postpone export directly\nimport React from 'react'\n\nimport { DynamicServerError } from '../../client/components/hooks-server-context'\nimport { StaticGenBailoutError } from '../../client/components/static-generation-bailout'\nimport {\n getRuntimeStagePromise,\n throwForMissingRequestStore,\n workUnitAsyncStorage,\n} from './work-unit-async-storage.external'\nimport { workAsyncStorage } from '../app-render/work-async-storage.external'\nimport { makeHangingPromise } from '../dynamic-rendering-utils'\nimport {\n METADATA_BOUNDARY_NAME,\n VIEWPORT_BOUNDARY_NAME,\n OUTLET_BOUNDARY_NAME,\n ROOT_LAYOUT_BOUNDARY_NAME,\n} from '../../lib/framework/boundary-constants'\nimport { scheduleOnNextTick } from '../../lib/scheduler'\nimport { BailoutToCSRError } from '../../shared/lib/lazy-dynamic/bailout-to-csr'\nimport { InvariantError } from '../../shared/lib/invariant-error'\n\nconst hasPostpone = typeof React.unstable_postpone === 'function'\n\nexport type DynamicAccess = {\n /**\n * If debugging, this will contain the stack trace of where the dynamic access\n * occurred. This is used to provide more information to the user about why\n * their page is being rendered dynamically.\n */\n stack?: string\n\n /**\n * The expression that was accessed dynamically.\n */\n expression: string\n}\n\n// Stores dynamic reasons used during an RSC render.\nexport type DynamicTrackingState = {\n /**\n * When true, stack information will also be tracked during dynamic access.\n */\n readonly isDebugDynamicAccesses: boolean | undefined\n\n /**\n * The dynamic accesses that occurred during the render.\n */\n readonly dynamicAccesses: Array\n\n syncDynamicErrorWithStack: null | Error\n}\n\n// Stores dynamic reasons used during an SSR render.\nexport type DynamicValidationState = {\n hasSuspenseAboveBody: boolean\n hasDynamicMetadata: boolean\n dynamicMetadata: null | Error\n hasDynamicViewport: boolean\n hasAllowedDynamic: boolean\n dynamicErrors: Array\n}\n\nexport function createDynamicTrackingState(\n isDebugDynamicAccesses: boolean | undefined\n): DynamicTrackingState {\n return {\n isDebugDynamicAccesses,\n dynamicAccesses: [],\n syncDynamicErrorWithStack: null,\n }\n}\n\nexport function createDynamicValidationState(): DynamicValidationState {\n return {\n hasSuspenseAboveBody: false,\n hasDynamicMetadata: false,\n dynamicMetadata: null,\n hasDynamicViewport: false,\n hasAllowedDynamic: false,\n dynamicErrors: [],\n }\n}\n\nexport function getFirstDynamicReason(\n trackingState: DynamicTrackingState\n): undefined | string {\n return trackingState.dynamicAccesses[0]?.expression\n}\n\n/**\n * This function communicates that the current scope should be treated as dynamic.\n *\n * In most cases this function is a no-op but if called during\n * a PPR prerender it will postpone the current sub-tree and calling\n * it during a normal prerender will cause the entire prerender to abort\n */\nexport function markCurrentScopeAsDynamic(\n store: WorkStore,\n workUnitStore: undefined | Exclude,\n expression: string\n): void {\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'cache':\n case 'unstable-cache':\n // Inside cache scopes, marking a scope as dynamic has no effect,\n // because the outer cache scope creates a cache boundary. This is\n // subtly different from reading a dynamic data source, which is\n // forbidden inside a cache scope.\n return\n case 'private-cache':\n // A private cache scope is already dynamic by definition.\n return\n case 'prerender-legacy':\n case 'prerender-ppr':\n case 'request':\n break\n default:\n workUnitStore satisfies never\n }\n }\n\n // If we're forcing dynamic rendering or we're forcing static rendering, we\n // don't need to do anything here because the entire page is already dynamic\n // or it's static and it should not throw or postpone here.\n if (store.forceDynamic || store.forceStatic) return\n\n if (store.dynamicShouldError) {\n throw new StaticGenBailoutError(\n `Route ${store.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`\n )\n }\n\n if (workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender-ppr':\n return postponeWithTracking(\n store.route,\n expression,\n workUnitStore.dynamicTracking\n )\n case 'prerender-legacy':\n workUnitStore.revalidate = 0\n\n // We aren't prerendering, but we are generating a static page. We need\n // to bail out of static generation.\n const err = new DynamicServerError(\n `Route ${store.route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`\n )\n store.dynamicUsageDescription = expression\n store.dynamicUsageStack = err.stack\n\n throw err\n case 'request':\n if (process.env.NODE_ENV !== 'production') {\n workUnitStore.usedDynamic = true\n }\n break\n default:\n workUnitStore satisfies never\n }\n }\n}\n\n/**\n * This function is meant to be used when prerendering without cacheComponents or PPR.\n * When called during a build it will cause Next.js to consider the route as dynamic.\n *\n * @internal\n */\nexport function throwToInterruptStaticGeneration(\n expression: string,\n store: WorkStore,\n prerenderStore: PrerenderStoreLegacy\n): never {\n // We aren't prerendering but we are generating a static page. We need to bail out of static generation\n const err = new DynamicServerError(\n `Route ${store.route} couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`\n )\n\n prerenderStore.revalidate = 0\n\n store.dynamicUsageDescription = expression\n store.dynamicUsageStack = err.stack\n\n throw err\n}\n\n/**\n * This function should be used to track whether something dynamic happened even when\n * we are in a dynamic render. This is useful for Dev where all renders are dynamic but\n * we still track whether dynamic APIs were accessed for helpful messaging\n *\n * @internal\n */\nexport function trackDynamicDataInDynamicRender(workUnitStore: WorkUnitStore) {\n switch (workUnitStore.type) {\n case 'cache':\n case 'unstable-cache':\n // Inside cache scopes, marking a scope as dynamic has no effect,\n // because the outer cache scope creates a cache boundary. This is\n // subtly different from reading a dynamic data source, which is\n // forbidden inside a cache scope.\n return\n case 'private-cache':\n // A private cache scope is already dynamic by definition.\n return\n case 'prerender':\n case 'prerender-runtime':\n case 'prerender-legacy':\n case 'prerender-ppr':\n case 'prerender-client':\n break\n case 'request':\n if (process.env.NODE_ENV !== 'production') {\n workUnitStore.usedDynamic = true\n }\n break\n default:\n workUnitStore satisfies never\n }\n}\n\nfunction abortOnSynchronousDynamicDataAccess(\n route: string,\n expression: string,\n prerenderStore: PrerenderStoreModern\n): void {\n const reason = `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`\n\n const error = createPrerenderInterruptedError(reason)\n\n prerenderStore.controller.abort(error)\n\n const dynamicTracking = prerenderStore.dynamicTracking\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses\n ? new Error().stack\n : undefined,\n expression,\n })\n }\n}\n\nexport function abortOnSynchronousPlatformIOAccess(\n route: string,\n expression: string,\n errorWithStack: Error,\n prerenderStore: PrerenderStoreModern\n): void {\n const dynamicTracking = prerenderStore.dynamicTracking\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore)\n // It is important that we set this tracking value after aborting. Aborts are executed\n // synchronously except for the case where you abort during render itself. By setting this\n // value late we can use it to determine if any of the aborted tasks are the task that\n // called the sync IO expression in the first place.\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack\n }\n }\n}\n\n/**\n * use this function when prerendering with cacheComponents. If we are doing a\n * prospective prerender we don't actually abort because we want to discover\n * all caches for the shell. If this is the actual prerender we do abort.\n *\n * This function accepts a prerenderStore but the caller should ensure we're\n * actually running in cacheComponents mode.\n *\n * @internal\n */\nexport function abortAndThrowOnSynchronousRequestDataAccess(\n route: string,\n expression: string,\n errorWithStack: Error,\n prerenderStore: PrerenderStoreModern\n): never {\n const prerenderSignal = prerenderStore.controller.signal\n if (prerenderSignal.aborted === false) {\n // TODO it would be better to move this aborted check into the callsite so we can avoid making\n // the error object when it isn't relevant to the aborting of the prerender however\n // since we need the throw semantics regardless of whether we abort it is easier to land\n // this way. See how this was handled with `abortOnSynchronousPlatformIOAccess` for a closer\n // to ideal implementation\n abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore)\n // It is important that we set this tracking value after aborting. Aborts are executed\n // synchronously except for the case where you abort during render itself. By setting this\n // value late we can use it to determine if any of the aborted tasks are the task that\n // called the sync IO expression in the first place.\n const dynamicTracking = prerenderStore.dynamicTracking\n if (dynamicTracking) {\n if (dynamicTracking.syncDynamicErrorWithStack === null) {\n dynamicTracking.syncDynamicErrorWithStack = errorWithStack\n }\n }\n }\n throw createPrerenderInterruptedError(\n `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`\n )\n}\n\n/**\n * This component will call `React.postpone` that throws the postponed error.\n */\ntype PostponeProps = {\n reason: string\n route: string\n}\nexport function Postpone({ reason, route }: PostponeProps): never {\n const prerenderStore = workUnitAsyncStorage.getStore()\n const dynamicTracking =\n prerenderStore && prerenderStore.type === 'prerender-ppr'\n ? prerenderStore.dynamicTracking\n : null\n postponeWithTracking(route, reason, dynamicTracking)\n}\n\nexport function postponeWithTracking(\n route: string,\n expression: string,\n dynamicTracking: null | DynamicTrackingState\n): never {\n assertPostpone()\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n // When we aren't debugging, we don't need to create another error for the\n // stack trace.\n stack: dynamicTracking.isDebugDynamicAccesses\n ? new Error().stack\n : undefined,\n expression,\n })\n }\n\n React.unstable_postpone(createPostponeReason(route, expression))\n}\n\nfunction createPostponeReason(route: string, expression: string) {\n return (\n `Route ${route} needs to bail out of prerendering at this point because it used ${expression}. ` +\n `React throws this special object to indicate where. It should not be caught by ` +\n `your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`\n )\n}\n\nexport function isDynamicPostpone(err: unknown) {\n if (\n typeof err === 'object' &&\n err !== null &&\n typeof (err as any).message === 'string'\n ) {\n return isDynamicPostponeReason((err as any).message)\n }\n return false\n}\n\nfunction isDynamicPostponeReason(reason: string) {\n return (\n reason.includes(\n 'needs to bail out of prerendering at this point because it used'\n ) &&\n reason.includes(\n 'Learn more: https://nextjs.org/docs/messages/ppr-caught-error'\n )\n )\n}\n\nif (isDynamicPostponeReason(createPostponeReason('%%%', '^^^')) === false) {\n throw new Error(\n 'Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js'\n )\n}\n\nconst NEXT_PRERENDER_INTERRUPTED = 'NEXT_PRERENDER_INTERRUPTED'\n\nfunction createPrerenderInterruptedError(message: string): Error {\n const error = new Error(message)\n ;(error as any).digest = NEXT_PRERENDER_INTERRUPTED\n return error\n}\n\ntype DigestError = Error & {\n digest: string\n}\n\nexport function isPrerenderInterruptedError(\n error: unknown\n): error is DigestError {\n return (\n typeof error === 'object' &&\n error !== null &&\n (error as any).digest === NEXT_PRERENDER_INTERRUPTED &&\n 'name' in error &&\n 'message' in error &&\n error instanceof Error\n )\n}\n\nexport function accessedDynamicData(\n dynamicAccesses: Array\n): boolean {\n return dynamicAccesses.length > 0\n}\n\nexport function consumeDynamicAccess(\n serverDynamic: DynamicTrackingState,\n clientDynamic: DynamicTrackingState\n): DynamicTrackingState['dynamicAccesses'] {\n // We mutate because we only call this once we are no longer writing\n // to the dynamicTrackingState and it's more efficient than creating a new\n // array.\n serverDynamic.dynamicAccesses.push(...clientDynamic.dynamicAccesses)\n return serverDynamic.dynamicAccesses\n}\n\nexport function formatDynamicAPIAccesses(\n dynamicAccesses: Array\n): string[] {\n return dynamicAccesses\n .filter(\n (access): access is Required =>\n typeof access.stack === 'string' && access.stack.length > 0\n )\n .map(({ expression, stack }) => {\n stack = stack\n .split('\\n')\n // Remove the \"Error: \" prefix from the first line of the stack trace as\n // well as the first 4 lines of the stack trace which is the distance\n // from the user code and the `new Error().stack` call.\n .slice(4)\n .filter((line) => {\n // Exclude Next.js internals from the stack trace.\n if (line.includes('node_modules/next/')) {\n return false\n }\n\n // Exclude anonymous functions from the stack trace.\n if (line.includes(' ()')) {\n return false\n }\n\n // Exclude Node.js internals from the stack trace.\n if (line.includes(' (node:')) {\n return false\n }\n\n return true\n })\n .join('\\n')\n return `Dynamic API Usage Debug - ${expression}:\\n${stack}`\n })\n}\n\nfunction assertPostpone() {\n if (!hasPostpone) {\n throw new Error(\n `Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js`\n )\n }\n}\n\n/**\n * This is a bit of a hack to allow us to abort a render using a Postpone instance instead of an Error which changes React's\n * abort semantics slightly.\n */\nexport function createRenderInBrowserAbortSignal(): AbortSignal {\n const controller = new AbortController()\n controller.abort(new BailoutToCSRError('Render in Browser'))\n return controller.signal\n}\n\n/**\n * In a prerender, we may end up with hanging Promises as inputs due them\n * stalling on connection() or because they're loading dynamic data. In that\n * case we need to abort the encoding of arguments since they'll never complete.\n */\nexport function createHangingInputAbortSignal(\n workUnitStore: WorkUnitStore\n): AbortSignal | undefined {\n switch (workUnitStore.type) {\n case 'prerender':\n case 'prerender-runtime':\n const controller = new AbortController()\n\n if (workUnitStore.cacheSignal) {\n // If we have a cacheSignal it means we're in a prospective render. If\n // the input we're waiting on is coming from another cache, we do want\n // to wait for it so that we can resolve this cache entry too.\n workUnitStore.cacheSignal.inputReady().then(() => {\n controller.abort()\n })\n } else {\n // Otherwise we're in the final render and we should already have all\n // our caches filled.\n // If the prerender uses stages, we have wait until the runtime stage,\n // at which point all runtime inputs will be resolved.\n // (otherwise, a runtime prerender might consider `cookies()` hanging\n // even though they'd resolve in the next task.)\n //\n // We might still be waiting on some microtasks so we\n // wait one tick before giving up. When we give up, we still want to\n // render the content of this cache as deeply as we can so that we can\n // suspend as deeply as possible in the tree or not at all if we don't\n // end up waiting for the input.\n const runtimeStagePromise = getRuntimeStagePromise(workUnitStore)\n if (runtimeStagePromise) {\n runtimeStagePromise.then(() =>\n scheduleOnNextTick(() => controller.abort())\n )\n } else {\n scheduleOnNextTick(() => controller.abort())\n }\n }\n\n return controller.signal\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n case 'request':\n case 'cache':\n case 'private-cache':\n case 'unstable-cache':\n return undefined\n default:\n workUnitStore satisfies never\n }\n}\n\nexport function annotateDynamicAccess(\n expression: string,\n prerenderStore: PrerenderStoreModern\n) {\n const dynamicTracking = prerenderStore.dynamicTracking\n if (dynamicTracking) {\n dynamicTracking.dynamicAccesses.push({\n stack: dynamicTracking.isDebugDynamicAccesses\n ? new Error().stack\n : undefined,\n expression,\n })\n }\n}\n\nexport function useDynamicRouteParams(expression: string) {\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n if (workStore && workUnitStore) {\n switch (workUnitStore.type) {\n case 'prerender-client':\n case 'prerender': {\n const fallbackParams = workUnitStore.fallbackRouteParams\n\n if (fallbackParams && fallbackParams.size > 0) {\n // We are in a prerender with cacheComponents semantics. We are going to\n // hang here and never resolve. This will cause the currently\n // rendering component to effectively be a dynamic hole.\n React.use(\n makeHangingPromise(\n workUnitStore.renderSignal,\n workStore.route,\n expression\n )\n )\n }\n break\n }\n case 'prerender-ppr': {\n const fallbackParams = workUnitStore.fallbackRouteParams\n if (fallbackParams && fallbackParams.size > 0) {\n return postponeWithTracking(\n workStore.route,\n expression,\n workUnitStore.dynamicTracking\n )\n }\n break\n }\n case 'prerender-runtime':\n throw new InvariantError(\n `\\`${expression}\\` was called during a runtime prerender. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'cache':\n case 'private-cache':\n throw new InvariantError(\n `\\`${expression}\\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'prerender-legacy':\n case 'request':\n case 'unstable-cache':\n break\n default:\n workUnitStore satisfies never\n }\n }\n}\n\nexport function useDynamicSearchParams(expression: string) {\n const workStore = workAsyncStorage.getStore()\n const workUnitStore = workUnitAsyncStorage.getStore()\n\n if (!workStore) {\n // We assume pages router context and just return\n return\n }\n\n if (!workUnitStore) {\n throwForMissingRequestStore(expression)\n }\n\n switch (workUnitStore.type) {\n case 'prerender-client': {\n React.use(\n makeHangingPromise(\n workUnitStore.renderSignal,\n workStore.route,\n expression\n )\n )\n break\n }\n case 'prerender-legacy':\n case 'prerender-ppr': {\n if (workStore.forceStatic) {\n return\n }\n throw new BailoutToCSRError(expression)\n }\n case 'prerender':\n case 'prerender-runtime':\n throw new InvariantError(\n `\\`${expression}\\` was called from a Server Component. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'cache':\n case 'unstable-cache':\n case 'private-cache':\n throw new InvariantError(\n `\\`${expression}\\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`\n )\n case 'request':\n return\n default:\n workUnitStore satisfies never\n }\n}\n\nconst hasSuspenseRegex = /\\n\\s+at Suspense \\(\\)/\n\n// Common implicit body tags that React will treat as body when placed directly in html\nconst bodyAndImplicitTags =\n 'body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6'\n\n// Detects when RootLayoutBoundary (our framework marker component) appears\n// after Suspense in the component stack, indicating the root layout is wrapped\n// within a Suspense boundary. Ensures no body/html/implicit-body components are in between.\n//\n// Example matches:\n// at Suspense ()\n// at __next_root_layout_boundary__ ()\n//\n// Or with other components in between (but not body/html/implicit-body):\n// at Suspense ()\n// at SomeComponent ()\n// at __next_root_layout_boundary__ ()\nconst hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex = new RegExp(\n `\\\\n\\\\s+at Suspense \\\\(\\\\)(?:(?!\\\\n\\\\s+at (?:${bodyAndImplicitTags}) \\\\(\\\\))[\\\\s\\\\S])*?\\\\n\\\\s+at ${ROOT_LAYOUT_BOUNDARY_NAME} \\\\([^\\\\n]*\\\\)`\n)\n\nconst hasMetadataRegex = new RegExp(\n `\\\\n\\\\s+at ${METADATA_BOUNDARY_NAME}[\\\\n\\\\s]`\n)\nconst hasViewportRegex = new RegExp(\n `\\\\n\\\\s+at ${VIEWPORT_BOUNDARY_NAME}[\\\\n\\\\s]`\n)\nconst hasOutletRegex = new RegExp(`\\\\n\\\\s+at ${OUTLET_BOUNDARY_NAME}[\\\\n\\\\s]`)\n\nexport function trackAllowedDynamicAccess(\n workStore: WorkStore,\n componentStack: string,\n dynamicValidation: DynamicValidationState,\n clientDynamic: DynamicTrackingState\n) {\n if (hasOutletRegex.test(componentStack)) {\n // We don't need to track that this is dynamic. It is only so when something else is also dynamic.\n return\n } else if (hasMetadataRegex.test(componentStack)) {\n dynamicValidation.hasDynamicMetadata = true\n return\n } else if (hasViewportRegex.test(componentStack)) {\n dynamicValidation.hasDynamicViewport = true\n return\n } else if (\n hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(\n componentStack\n )\n ) {\n // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.\n // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense\n // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.\n dynamicValidation.hasAllowedDynamic = true\n dynamicValidation.hasSuspenseAboveBody = true\n return\n } else if (hasSuspenseRegex.test(componentStack)) {\n // this error had a Suspense boundary above it so we don't need to report it as a source\n // of disallowed\n dynamicValidation.hasAllowedDynamic = true\n return\n } else if (clientDynamic.syncDynamicErrorWithStack) {\n // This task was the task that called the sync error.\n dynamicValidation.dynamicErrors.push(\n clientDynamic.syncDynamicErrorWithStack\n )\n return\n } else {\n const message =\n `Route \"${workStore.route}\": Uncached data was accessed outside of ` +\n '. This delays the entire page from rendering, resulting in a ' +\n 'slow user experience. Learn more: ' +\n 'https://nextjs.org/docs/messages/blocking-route'\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicErrors.push(error)\n return\n }\n}\n\nexport function trackDynamicHoleInRuntimeShell(\n workStore: WorkStore,\n componentStack: string,\n dynamicValidation: DynamicValidationState,\n clientDynamic: DynamicTrackingState\n) {\n if (hasOutletRegex.test(componentStack)) {\n // We don't need to track that this is dynamic. It is only so when something else is also dynamic.\n return\n } else if (hasMetadataRegex.test(componentStack)) {\n const message = `Route \"${workStore.route}\": Uncached data or \\`connection()\\` was accessed inside \\`generateMetadata\\`. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicMetadata = error\n return\n } else if (hasViewportRegex.test(componentStack)) {\n const message = `Route \"${workStore.route}\": Uncached data or \\`connection()\\` was accessed inside \\`generateViewport\\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicErrors.push(error)\n return\n } else if (\n hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(\n componentStack\n )\n ) {\n // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.\n // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense\n // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.\n dynamicValidation.hasAllowedDynamic = true\n dynamicValidation.hasSuspenseAboveBody = true\n return\n } else if (hasSuspenseRegex.test(componentStack)) {\n // this error had a Suspense boundary above it so we don't need to report it as a source\n // of disallowed\n dynamicValidation.hasAllowedDynamic = true\n return\n } else if (clientDynamic.syncDynamicErrorWithStack) {\n // This task was the task that called the sync error.\n dynamicValidation.dynamicErrors.push(\n clientDynamic.syncDynamicErrorWithStack\n )\n return\n } else {\n const message = `Route \"${workStore.route}\": Uncached data or \\`connection()\\` was accessed outside of \\`\\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicErrors.push(error)\n return\n }\n}\n\nexport function trackDynamicHoleInStaticShell(\n workStore: WorkStore,\n componentStack: string,\n dynamicValidation: DynamicValidationState,\n clientDynamic: DynamicTrackingState\n) {\n if (hasOutletRegex.test(componentStack)) {\n // We don't need to track that this is dynamic. It is only so when something else is also dynamic.\n return\n } else if (hasMetadataRegex.test(componentStack)) {\n const message = `Route \"${workStore.route}\": Runtime data such as \\`cookies()\\`, \\`headers()\\`, \\`params\\`, or \\`searchParams\\` was accessed inside \\`generateMetadata\\` or you have file-based metadata such as icons that depend on dynamic params segments. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicMetadata = error\n return\n } else if (hasViewportRegex.test(componentStack)) {\n const message = `Route \"${workStore.route}\": Runtime data such as \\`cookies()\\`, \\`headers()\\`, \\`params\\`, or \\`searchParams\\` was accessed inside \\`generateViewport\\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicErrors.push(error)\n return\n } else if (\n hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(\n componentStack\n )\n ) {\n // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule.\n // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense\n // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering.\n dynamicValidation.hasAllowedDynamic = true\n dynamicValidation.hasSuspenseAboveBody = true\n return\n } else if (hasSuspenseRegex.test(componentStack)) {\n // this error had a Suspense boundary above it so we don't need to report it as a source\n // of disallowed\n dynamicValidation.hasAllowedDynamic = true\n return\n } else if (clientDynamic.syncDynamicErrorWithStack) {\n // This task was the task that called the sync error.\n dynamicValidation.dynamicErrors.push(\n clientDynamic.syncDynamicErrorWithStack\n )\n return\n } else {\n const message = `Route \"${workStore.route}\": Runtime data such as \\`cookies()\\`, \\`headers()\\`, \\`params\\`, or \\`searchParams\\` was accessed outside of \\`\\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`\n const error = createErrorWithComponentOrOwnerStack(message, componentStack)\n dynamicValidation.dynamicErrors.push(error)\n return\n }\n}\n\n/**\n * In dev mode, we prefer using the owner stack, otherwise the provided\n * component stack is used.\n */\nfunction createErrorWithComponentOrOwnerStack(\n message: string,\n componentStack: string\n) {\n const ownerStack =\n process.env.NODE_ENV !== 'production' && React.captureOwnerStack\n ? React.captureOwnerStack()\n : null\n\n const error = new Error(message)\n // TODO go back to owner stack here if available. This is temporarily using componentStack to get the right\n //\n error.stack = error.name + ': ' + message + (ownerStack || componentStack)\n return error\n}\n\nexport enum PreludeState {\n Full = 0,\n Empty = 1,\n Errored = 2,\n}\n\nexport function logDisallowedDynamicError(\n workStore: WorkStore,\n error: Error\n): void {\n console.error(error)\n\n if (!workStore.dev) {\n if (workStore.hasReadableErrorStacks) {\n console.error(\n `To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \\`next dev\\`, then open \"${workStore.route}\" in your browser to investigate the error.`\n )\n } else {\n console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following:\n - Start the app in development mode by running \\`next dev\\`, then open \"${workStore.route}\" in your browser to investigate the error.\n - Rerun the production build with \\`next build --debug-prerender\\` to generate better stack traces.`)\n }\n }\n}\n\nexport function throwIfDisallowedDynamic(\n workStore: WorkStore,\n prelude: PreludeState,\n dynamicValidation: DynamicValidationState,\n serverDynamic: DynamicTrackingState\n): void {\n if (serverDynamic.syncDynamicErrorWithStack) {\n logDisallowedDynamicError(\n workStore,\n serverDynamic.syncDynamicErrorWithStack\n )\n throw new StaticGenBailoutError()\n }\n\n if (prelude !== PreludeState.Full) {\n if (dynamicValidation.hasSuspenseAboveBody) {\n // This route has opted into allowing fully dynamic rendering\n // by including a Suspense boundary above the body. In this case\n // a lack of a shell is not considered disallowed so we simply return\n return\n }\n\n // We didn't have any sync bailouts but there may be user code which\n // blocked the root. We would have captured these during the prerender\n // and can log them here and then terminate the build/validating render\n const dynamicErrors = dynamicValidation.dynamicErrors\n if (dynamicErrors.length > 0) {\n for (let i = 0; i < dynamicErrors.length; i++) {\n logDisallowedDynamicError(workStore, dynamicErrors[i])\n }\n\n throw new StaticGenBailoutError()\n }\n\n // If we got this far then the only other thing that could be blocking\n // the root is dynamic Viewport. If this is dynamic then\n // you need to opt into that by adding a Suspense boundary above the body\n // to indicate your are ok with fully dynamic rendering.\n if (dynamicValidation.hasDynamicViewport) {\n console.error(\n `Route \"${workStore.route}\" has a \\`generateViewport\\` that depends on Request data (\\`cookies()\\`, etc...) or uncached external data (\\`fetch(...)\\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`\n )\n throw new StaticGenBailoutError()\n }\n\n if (prelude === PreludeState.Empty) {\n // If we ever get this far then we messed up the tracking of invalid dynamic.\n // We still adhere to the constraint that you must produce a shell but invite the\n // user to report this as a bug in Next.js.\n console.error(\n `Route \"${workStore.route}\" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`\n )\n throw new StaticGenBailoutError()\n }\n } else {\n if (\n dynamicValidation.hasAllowedDynamic === false &&\n dynamicValidation.hasDynamicMetadata\n ) {\n console.error(\n `Route \"${workStore.route}\" has a \\`generateMetadata\\` that depends on Request data (\\`cookies()\\`, etc...) or uncached external data (\\`fetch(...)\\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`\n )\n throw new StaticGenBailoutError()\n }\n }\n}\n\nexport function getStaticShellDisallowedDynamicReasons(\n workStore: WorkStore,\n prelude: PreludeState,\n dynamicValidation: DynamicValidationState\n): Array {\n if (dynamicValidation.hasSuspenseAboveBody) {\n // This route has opted into allowing fully dynamic rendering\n // by including a Suspense boundary above the body. In this case\n // a lack of a shell is not considered disallowed so we simply return\n return []\n }\n\n if (prelude !== PreludeState.Full) {\n // We didn't have any sync bailouts but there may be user code which\n // blocked the root. We would have captured these during the prerender\n // and can log them here and then terminate the build/validating render\n const dynamicErrors = dynamicValidation.dynamicErrors\n if (dynamicErrors.length > 0) {\n return dynamicErrors\n }\n\n if (prelude === PreludeState.Empty) {\n // If we ever get this far then we messed up the tracking of invalid dynamic.\n // We still adhere to the constraint that you must produce a shell but invite the\n // user to report this as a bug in Next.js.\n return [\n new InvariantError(\n `Route \"${workStore.route}\" did not produce a static shell and Next.js was unable to determine a reason.`\n ),\n ]\n }\n } else {\n // We have a prelude but we might still have dynamic metadata without any other dynamic access\n if (\n dynamicValidation.hasAllowedDynamic === false &&\n dynamicValidation.dynamicErrors.length === 0 &&\n dynamicValidation.dynamicMetadata\n ) {\n return [dynamicValidation.dynamicMetadata]\n }\n }\n // We had a non-empty prelude and there are no dynamic holes\n return []\n}\n\nexport function delayUntilRuntimeStage(\n prerenderStore: PrerenderStoreModernRuntime,\n result: Promise\n): Promise {\n if (prerenderStore.runtimeStagePromise) {\n return prerenderStore.runtimeStagePromise.then(() => result)\n }\n return result\n}\n"],"names":["isHangingPromiseRejectionError","makeDevtoolsIOAwarePromise","makeHangingPromise","err","digest","HANGING_PROMISE_REJECTION","HangingPromiseRejectionError","Error","constructor","route","expression","abortListenersBySignal","WeakMap","signal","aborted","Promise","reject","hangingPromise","_","boundRejection","bind","currentListeners","get","push","listeners","set","addEventListener","i","length","once","catch","ignoreReject","underlying","requestStore","stage","stagedRendering","delayUntilStage","undefined","resolve","setTimeout","BailoutToCSRError","isBailoutToCSRError","BAILOUT_TO_CSR","reason","DynamicServerError","isDynamicServerError","DYNAMIC_ERROR_CODE","description","StaticGenBailoutError","isStaticGenBailoutError","NEXT_STATIC_GEN_BAILOUT","code","error","METADATA_BOUNDARY_NAME","OUTLET_BOUNDARY_NAME","ROOT_LAYOUT_BOUNDARY_NAME","VIEWPORT_BOUNDARY_NAME","atLeastOneTask","scheduleImmediate","scheduleOnNextTick","waitAtLeastOneReactRenderTask","cb","then","process","env","NEXT_RUNTIME","nextTick","setImmediate","r","InvariantError","message","options","endsWith","name","Postpone","PreludeState","abortAndThrowOnSynchronousRequestDataAccess","abortOnSynchronousPlatformIOAccess","accessedDynamicData","annotateDynamicAccess","consumeDynamicAccess","createDynamicTrackingState","createDynamicValidationState","createHangingInputAbortSignal","createRenderInBrowserAbortSignal","delayUntilRuntimeStage","formatDynamicAPIAccesses","getFirstDynamicReason","getStaticShellDisallowedDynamicReasons","isDynamicPostpone","isPrerenderInterruptedError","logDisallowedDynamicError","markCurrentScopeAsDynamic","postponeWithTracking","throwIfDisallowedDynamic","throwToInterruptStaticGeneration","trackAllowedDynamicAccess","trackDynamicDataInDynamicRender","trackDynamicHoleInRuntimeShell","trackDynamicHoleInStaticShell","useDynamicRouteParams","useDynamicSearchParams","hasPostpone","React","unstable_postpone","isDebugDynamicAccesses","dynamicAccesses","syncDynamicErrorWithStack","hasSuspenseAboveBody","hasDynamicMetadata","dynamicMetadata","hasDynamicViewport","hasAllowedDynamic","dynamicErrors","trackingState","store","workUnitStore","type","forceDynamic","forceStatic","dynamicShouldError","dynamicTracking","revalidate","dynamicUsageDescription","dynamicUsageStack","stack","NODE_ENV","usedDynamic","prerenderStore","abortOnSynchronousDynamicDataAccess","createPrerenderInterruptedError","controller","abort","errorWithStack","prerenderSignal","workUnitAsyncStorage","getStore","assertPostpone","createPostponeReason","isDynamicPostponeReason","includes","NEXT_PRERENDER_INTERRUPTED","serverDynamic","clientDynamic","filter","access","map","split","slice","line","join","AbortController","cacheSignal","inputReady","runtimeStagePromise","getRuntimeStagePromise","workStore","workAsyncStorage","fallbackParams","fallbackRouteParams","size","use","renderSignal","throwForMissingRequestStore","hasSuspenseRegex","bodyAndImplicitTags","hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex","RegExp","hasMetadataRegex","hasViewportRegex","hasOutletRegex","componentStack","dynamicValidation","test","createErrorWithComponentOrOwnerStack","ownerStack","captureOwnerStack","console","dev","hasReadableErrorStacks","prelude","result"],"mappings":"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","ignoreList":[0,1,2,3,4,5,6,7]}}] -} \ No newline at end of file diff --git a/.next/server/chunks/ssr/468ab_next_dist_bc66fa15._.js.map b/.next/server/chunks/ssr/468ab_next_dist_bc66fa15._.js.map deleted file mode 100644 index caf443188..000000000 --- a/.next/server/chunks/ssr/468ab_next_dist_bc66fa15._.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": [], - "debugId": "87defb0d-72de-93d7-e610-8fd0fdb0b8a6", - "sections": [ - {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/router/utils/querystring.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/router/utils/format-url.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/use-merged-ref.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/utils.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/router/utils/parse-path.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/router/utils/add-path-prefix.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/router/utils/remove-trailing-slash.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/normalize-trailing-slash.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/add-base-path.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/components/segment-cache/types.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/components/segment-cache/cache-key.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/app-router-types.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/components/match-segments.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/components/app-router-headers.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/components/router-reducer/router-reducer-types.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/is-thenable.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/components/use-action-queue.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/app-call-server.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/app-find-source-map-url.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/segment.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/segment-cache/segment-value-encoding.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/route-params.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/components/router-reducer/create-href-from-url.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/flight-data-helpers.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/app-build-id.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/hash.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/router/utils/cache-busting-search-param.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/components/router-reducer/set-cache-busting-search-param.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/deployment-id.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/components/router-reducer/fetch-server-response.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/components/segment-cache/lru.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/components/segment-cache/cache-map.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/components/segment-cache/vary-path.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/page-path/ensure-leading-slash.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/router/utils/app-paths.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/router/utils/interception-routes.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/components/router-reducer/compute-changed-path.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/components/router-reducer/handle-mutable.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/components/router-reducer/create-router-cache-key.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/components/router-reducer/is-navigating-to-new-root-layout.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/components/router-reducer/ppr-navigations.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/components/segment-cache/navigation.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/components/router-reducer/reducers/navigate-reducer.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/promise-with-resolvers.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/components/segment-cache/cache.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/components/segment-cache/scheduler.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/components/links.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/router/utils/path-has-prefix.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/has-base-path.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/router/utils/is-local-url.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/utils/error-once.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/client/app-dir/link.tsx"],"sourcesContent":["import type { ParsedUrlQuery } from 'querystring'\n\nexport function searchParamsToUrlQuery(\n searchParams: URLSearchParams\n): ParsedUrlQuery {\n const query: ParsedUrlQuery = {}\n for (const [key, value] of searchParams.entries()) {\n const existing = query[key]\n if (typeof existing === 'undefined') {\n query[key] = value\n } else if (Array.isArray(existing)) {\n existing.push(value)\n } else {\n query[key] = [existing, value]\n }\n }\n return query\n}\n\nfunction stringifyUrlQueryParam(param: unknown): string {\n if (typeof param === 'string') {\n return param\n }\n\n if (\n (typeof param === 'number' && !isNaN(param)) ||\n typeof param === 'boolean'\n ) {\n return String(param)\n } else {\n return ''\n }\n}\n\nexport function urlQueryToSearchParams(query: ParsedUrlQuery): URLSearchParams {\n const searchParams = new URLSearchParams()\n for (const [key, value] of Object.entries(query)) {\n if (Array.isArray(value)) {\n for (const item of value) {\n searchParams.append(key, stringifyUrlQueryParam(item))\n }\n } else {\n searchParams.set(key, stringifyUrlQueryParam(value))\n }\n }\n return searchParams\n}\n\nexport function assign(\n target: URLSearchParams,\n ...searchParamsList: URLSearchParams[]\n): URLSearchParams {\n for (const searchParams of searchParamsList) {\n for (const key of searchParams.keys()) {\n target.delete(key)\n }\n\n for (const [key, value] of searchParams.entries()) {\n target.append(key, value)\n }\n }\n\n return target\n}\n","// Format function modified from nodejs\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport type { UrlObject } from 'url'\nimport type { ParsedUrlQuery } from 'querystring'\nimport * as querystring from './querystring'\n\nconst slashedProtocols = /https?|ftp|gopher|file/\n\nexport function formatUrl(urlObj: UrlObject) {\n let { auth, hostname } = urlObj\n let protocol = urlObj.protocol || ''\n let pathname = urlObj.pathname || ''\n let hash = urlObj.hash || ''\n let query = urlObj.query || ''\n let host: string | false = false\n\n auth = auth ? encodeURIComponent(auth).replace(/%3A/i, ':') + '@' : ''\n\n if (urlObj.host) {\n host = auth + urlObj.host\n } else if (hostname) {\n host = auth + (~hostname.indexOf(':') ? `[${hostname}]` : hostname)\n if (urlObj.port) {\n host += ':' + urlObj.port\n }\n }\n\n if (query && typeof query === 'object') {\n query = String(querystring.urlQueryToSearchParams(query as ParsedUrlQuery))\n }\n\n let search = urlObj.search || (query && `?${query}`) || ''\n\n if (protocol && !protocol.endsWith(':')) protocol += ':'\n\n if (\n urlObj.slashes ||\n ((!protocol || slashedProtocols.test(protocol)) && host !== false)\n ) {\n host = '//' + (host || '')\n if (pathname && pathname[0] !== '/') pathname = '/' + pathname\n } else if (!host) {\n host = ''\n }\n\n if (hash && hash[0] !== '#') hash = '#' + hash\n if (search && search[0] !== '?') search = '?' + search\n\n pathname = pathname.replace(/[?#]/g, encodeURIComponent)\n search = search.replace('#', '%23')\n\n return `${protocol}${host}${pathname}${search}${hash}`\n}\n\nexport const urlObjectKeys = [\n 'auth',\n 'hash',\n 'host',\n 'hostname',\n 'href',\n 'path',\n 'pathname',\n 'port',\n 'protocol',\n 'query',\n 'search',\n 'slashes',\n]\n\nexport function formatWithValidation(url: UrlObject): string {\n if (process.env.NODE_ENV === 'development') {\n if (url !== null && typeof url === 'object') {\n Object.keys(url).forEach((key) => {\n if (!urlObjectKeys.includes(key)) {\n console.warn(\n `Unknown key passed via urlObject into url.format: ${key}`\n )\n }\n })\n }\n }\n\n return formatUrl(url)\n}\n","import { useCallback, useRef, type Ref } from 'react'\n\n// This is a compatibility hook to support React 18 and 19 refs.\n// In 19, a cleanup function from refs may be returned.\n// In 18, returning a cleanup function creates a warning.\n// Since we take userspace refs, we don't know ahead of time if a cleanup function will be returned.\n// This implements cleanup functions with the old behavior in 18.\n// We know refs are always called alternating with `null` and then `T`.\n// So a call with `null` means we need to call the previous cleanup functions.\nexport function useMergedRef(\n refA: Ref,\n refB: Ref\n): Ref {\n const cleanupA = useRef<(() => void) | null>(null)\n const cleanupB = useRef<(() => void) | null>(null)\n\n // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.\n // (this happens often if the user doesn't pass a ref to Link/Form/Image)\n // But this can cause us to leak a cleanup-ref into user code (previously via ``),\n // and the user might pass that ref into ref-merging library that doesn't support cleanup refs\n // (because it hasn't been updated for React 19)\n // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.\n // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.\n return useCallback(\n (current: TElement | null): void => {\n if (current === null) {\n const cleanupFnA = cleanupA.current\n if (cleanupFnA) {\n cleanupA.current = null\n cleanupFnA()\n }\n const cleanupFnB = cleanupB.current\n if (cleanupFnB) {\n cleanupB.current = null\n cleanupFnB()\n }\n } else {\n if (refA) {\n cleanupA.current = applyRef(refA, current)\n }\n if (refB) {\n cleanupB.current = applyRef(refB, current)\n }\n }\n },\n [refA, refB]\n )\n}\n\nfunction applyRef(\n refA: NonNullable>,\n current: TElement\n) {\n if (typeof refA === 'function') {\n const cleanup = refA(current)\n if (typeof cleanup === 'function') {\n return cleanup\n } else {\n return () => refA(null)\n }\n } else {\n refA.current = current\n return () => {\n refA.current = null\n }\n }\n}\n","import type { HtmlProps } from './html-context.shared-runtime'\nimport type { ComponentType, JSX } from 'react'\nimport type { DomainLocale } from '../../server/config'\nimport type { Env } from '@next/env'\nimport type { IncomingMessage, ServerResponse } from 'http'\nimport type { NextRouter } from './router/router'\nimport type { ParsedUrlQuery } from 'querystring'\nimport type { PreviewData } from '../../types'\nimport type { COMPILER_NAMES } from './constants'\nimport type fs from 'fs'\n\nexport type NextComponentType<\n Context extends BaseContext = NextPageContext,\n InitialProps = {},\n Props = {},\n> = ComponentType & {\n /**\n * Used for initial page load data population. Data returned from `getInitialProps` is serialized when server rendered.\n * Make sure to return plain `Object` without using `Date`, `Map`, `Set`.\n * @param context Context of `page`\n */\n getInitialProps?(context: Context): InitialProps | Promise\n}\n\nexport type DocumentType = NextComponentType<\n DocumentContext,\n DocumentInitialProps,\n DocumentProps\n>\n\nexport type AppType

= NextComponentType<\n AppContextType,\n P,\n AppPropsType\n>\n\nexport type AppTreeType = ComponentType<\n AppInitialProps & { [name: string]: any }\n>\n\n/**\n * Web vitals provided to _app.reportWebVitals by Core Web Vitals plugin developed by Google Chrome team.\n * https://nextjs.org/blog/next-9-4#integrated-web-vitals-reporting\n */\nexport const WEB_VITALS = ['CLS', 'FCP', 'FID', 'INP', 'LCP', 'TTFB'] as const\nexport type NextWebVitalsMetric = {\n id: string\n startTime: number\n value: number\n attribution?: { [key: string]: unknown }\n} & (\n | {\n label: 'web-vital'\n name: (typeof WEB_VITALS)[number]\n }\n | {\n label: 'custom'\n name:\n | 'Next.js-hydration'\n | 'Next.js-route-change-to-render'\n | 'Next.js-render'\n }\n)\n\nexport type Enhancer = (Component: C) => C\n\nexport type ComponentsEnhancer =\n | {\n enhanceApp?: Enhancer\n enhanceComponent?: Enhancer\n }\n | Enhancer\n\nexport type RenderPageResult = {\n html: string\n head?: Array\n}\n\nexport type RenderPage = (\n options?: ComponentsEnhancer\n) => DocumentInitialProps | Promise\n\nexport type BaseContext = {\n res?: ServerResponse\n [k: string]: any\n}\n\nexport type NEXT_DATA = {\n props: Record\n page: string\n query: ParsedUrlQuery\n buildId: string\n assetPrefix?: string\n nextExport?: boolean\n autoExport?: boolean\n isFallback?: boolean\n isExperimentalCompile?: boolean\n dynamicIds?: (string | number)[]\n err?: Error & {\n statusCode?: number\n source?: typeof COMPILER_NAMES.server | typeof COMPILER_NAMES.edgeServer\n }\n gsp?: boolean\n gssp?: boolean\n customServer?: boolean\n gip?: boolean\n appGip?: boolean\n locale?: string\n locales?: readonly string[]\n defaultLocale?: string\n domainLocales?: readonly DomainLocale[]\n scriptLoader?: any[]\n isPreview?: boolean\n notFoundSrcPage?: string\n}\n\n/**\n * `Next` context\n */\nexport interface NextPageContext {\n /**\n * Error object if encountered during rendering\n */\n err?: (Error & { statusCode?: number }) | null\n /**\n * `HTTP` request object.\n */\n req?: IncomingMessage\n /**\n * `HTTP` response object.\n */\n res?: ServerResponse\n /**\n * Path section of `URL`.\n */\n pathname: string\n /**\n * Query string section of `URL` parsed as an object.\n */\n query: ParsedUrlQuery\n /**\n * `String` of the actual path including query.\n */\n asPath?: string\n /**\n * The currently active locale\n */\n locale?: string\n /**\n * All configured locales\n */\n locales?: readonly string[]\n /**\n * The configured default locale\n */\n defaultLocale?: string\n /**\n * `Component` the tree of the App to use if needing to render separately\n */\n AppTree: AppTreeType\n}\n\nexport type AppContextType = {\n Component: NextComponentType\n AppTree: AppTreeType\n ctx: NextPageContext\n router: Router\n}\n\nexport type AppInitialProps = {\n pageProps: PageProps\n}\n\nexport type AppPropsType<\n Router extends NextRouter = NextRouter,\n PageProps = {},\n> = AppInitialProps & {\n Component: NextComponentType\n router: Router\n __N_SSG?: boolean\n __N_SSP?: boolean\n}\n\nexport type DocumentContext = NextPageContext & {\n renderPage: RenderPage\n defaultGetInitialProps(\n ctx: DocumentContext,\n options?: { nonce?: string }\n ): Promise\n}\n\nexport type DocumentInitialProps = RenderPageResult & {\n styles?: React.ReactElement[] | Iterable | JSX.Element\n}\n\nexport type DocumentProps = DocumentInitialProps & HtmlProps\n\n/**\n * Next `API` route request\n */\nexport interface NextApiRequest extends IncomingMessage {\n /**\n * Object of `query` values from url\n */\n query: Partial<{\n [key: string]: string | string[]\n }>\n /**\n * Object of `cookies` from header\n */\n cookies: Partial<{\n [key: string]: string\n }>\n\n body: any\n\n env: Env\n\n draftMode?: boolean\n\n preview?: boolean\n /**\n * Preview data set on the request, if any\n * */\n previewData?: PreviewData\n}\n\n/**\n * Send body of response\n */\ntype Send = (body: T) => void\n\n/**\n * Next `API` route response\n */\nexport type NextApiResponse = ServerResponse & {\n /**\n * Send data `any` data in response\n */\n send: Send\n /**\n * Send data `json` data in response\n */\n json: Send\n status: (statusCode: number) => NextApiResponse\n redirect(url: string): NextApiResponse\n redirect(status: number, url: string): NextApiResponse\n\n /**\n * Set draft mode\n */\n setDraftMode: (options: { enable: boolean }) => NextApiResponse\n\n /**\n * Set preview data for Next.js' prerender mode\n */\n setPreviewData: (\n data: object | string,\n options?: {\n /**\n * Specifies the number (in seconds) for the preview session to last for.\n * The given number will be converted to an integer by rounding down.\n * By default, no maximum age is set and the preview session finishes\n * when the client shuts down (browser is closed).\n */\n maxAge?: number\n /**\n * Specifies the path for the preview session to work under. By default,\n * the path is considered the \"default path\", i.e., any pages under \"/\".\n */\n path?: string\n }\n ) => NextApiResponse\n\n /**\n * Clear preview data for Next.js' prerender mode\n */\n clearPreviewData: (options?: { path?: string }) => NextApiResponse\n\n /**\n * Revalidate a specific page and regenerate it using On-Demand Incremental\n * Static Regeneration.\n * The path should be an actual path, not a rewritten path. E.g. for\n * \"/blog/[slug]\" this should be \"/blog/post-1\".\n * @link https://nextjs.org/docs/app/building-your-application/data-fetching/incremental-static-regeneration#on-demand-revalidation-with-revalidatepath\n */\n revalidate: (\n urlPath: string,\n opts?: {\n unstable_onlyGenerated?: boolean\n }\n ) => Promise\n}\n\n/**\n * Next `API` route handler\n */\nexport type NextApiHandler = (\n req: NextApiRequest,\n res: NextApiResponse\n) => unknown | Promise\n\n/**\n * Utils\n */\nexport function execOnce ReturnType>(\n fn: T\n): T {\n let used = false\n let result: ReturnType\n\n return ((...args: any[]) => {\n if (!used) {\n used = true\n result = fn(...args)\n }\n return result\n }) as T\n}\n\n// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1\n// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/\nexport const isAbsoluteUrl = (url: string) => ABSOLUTE_URL_REGEX.test(url)\n\nexport function getLocationOrigin() {\n const { protocol, hostname, port } = window.location\n return `${protocol}//${hostname}${port ? ':' + port : ''}`\n}\n\nexport function getURL() {\n const { href } = window.location\n const origin = getLocationOrigin()\n return href.substring(origin.length)\n}\n\nexport function getDisplayName

(Component: ComponentType

) {\n return typeof Component === 'string'\n ? Component\n : Component.displayName || Component.name || 'Unknown'\n}\n\nexport function isResSent(res: ServerResponse) {\n return res.finished || res.headersSent\n}\n\nexport function normalizeRepeatedSlashes(url: string) {\n const urlParts = url.split('?')\n const urlNoQuery = urlParts[0]\n\n return (\n urlNoQuery\n // first we replace any non-encoded backslashes with forward\n // then normalize repeated forward slashes\n .replace(/\\\\/g, '/')\n .replace(/\\/\\/+/g, '/') +\n (urlParts[1] ? `?${urlParts.slice(1).join('?')}` : '')\n )\n}\n\nexport async function loadGetInitialProps<\n C extends BaseContext,\n IP = {},\n P = {},\n>(App: NextComponentType, ctx: C): Promise {\n if (process.env.NODE_ENV !== 'production') {\n if (App.prototype?.getInitialProps) {\n const message = `\"${getDisplayName(\n App\n )}.getInitialProps()\" is defined as an instance method - visit https://nextjs.org/docs/messages/get-initial-props-as-an-instance-method for more information.`\n throw new Error(message)\n }\n }\n // when called from _app `ctx` is nested in `ctx`\n const res = ctx.res || (ctx.ctx && ctx.ctx.res)\n\n if (!App.getInitialProps) {\n if (ctx.ctx && ctx.Component) {\n // @ts-ignore pageProps default\n return {\n pageProps: await loadGetInitialProps(ctx.Component, ctx.ctx),\n }\n }\n return {} as IP\n }\n\n const props = await App.getInitialProps(ctx)\n\n if (res && isResSent(res)) {\n return props\n }\n\n if (!props) {\n const message = `\"${getDisplayName(\n App\n )}.getInitialProps()\" should resolve to an object. But found \"${props}\" instead.`\n throw new Error(message)\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (Object.keys(props).length === 0 && !ctx.ctx) {\n console.warn(\n `${getDisplayName(\n App\n )} returned an empty object from \\`getInitialProps\\`. This de-optimizes and prevents automatic static optimization. https://nextjs.org/docs/messages/empty-object-getInitialProps`\n )\n }\n }\n\n return props\n}\n\nexport const SP = typeof performance !== 'undefined'\nexport const ST =\n SP &&\n (['mark', 'measure', 'getEntriesByName'] as const).every(\n (method) => typeof performance[method] === 'function'\n )\n\nexport class DecodeError extends Error {}\nexport class NormalizeError extends Error {}\nexport class PageNotFoundError extends Error {\n code: string\n\n constructor(page: string) {\n super()\n this.code = 'ENOENT'\n this.name = 'PageNotFoundError'\n this.message = `Cannot find module for page: ${page}`\n }\n}\n\nexport class MissingStaticPage extends Error {\n constructor(page: string, message: string) {\n super()\n this.message = `Failed to load static file for page: ${page} ${message}`\n }\n}\n\nexport class MiddlewareNotFoundError extends Error {\n code: string\n constructor() {\n super()\n this.code = 'ENOENT'\n this.message = `Cannot find the middleware module`\n }\n}\n\nexport interface CacheFs {\n existsSync: typeof fs.existsSync\n readFile: typeof fs.promises.readFile\n readFileSync: typeof fs.readFileSync\n writeFile(f: string, d: any): Promise\n mkdir(dir: string): Promise\n stat(f: string): Promise<{ mtime: Date }>\n}\n\nexport function stringifyError(error: Error) {\n return JSON.stringify({ message: error.message, stack: error.stack })\n}\n","/**\n * Given a path this function will find the pathname, query and hash and return\n * them. This is useful to parse full paths on the client side.\n * @param path A path to parse e.g. /foo/bar?id=1#hash\n */\nexport function parsePath(path: string) {\n const hashIndex = path.indexOf('#')\n const queryIndex = path.indexOf('?')\n const hasQuery = queryIndex > -1 && (hashIndex < 0 || queryIndex < hashIndex)\n\n if (hasQuery || hashIndex > -1) {\n return {\n pathname: path.substring(0, hasQuery ? queryIndex : hashIndex),\n query: hasQuery\n ? path.substring(queryIndex, hashIndex > -1 ? hashIndex : undefined)\n : '',\n hash: hashIndex > -1 ? path.slice(hashIndex) : '',\n }\n }\n\n return { pathname: path, query: '', hash: '' }\n}\n","import { parsePath } from './parse-path'\n\n/**\n * Adds the provided prefix to the given path. It first ensures that the path\n * is indeed starting with a slash.\n */\nexport function addPathPrefix(path: string, prefix?: string) {\n if (!path.startsWith('/') || !prefix) {\n return path\n }\n\n const { pathname, query, hash } = parsePath(path)\n return `${prefix}${pathname}${query}${hash}`\n}\n","/**\n * Removes the trailing slash for a given route or page path. Preserves the\n * root page. Examples:\n * - `/foo/bar/` -> `/foo/bar`\n * - `/foo/bar` -> `/foo/bar`\n * - `/` -> `/`\n */\nexport function removeTrailingSlash(route: string) {\n return route.replace(/\\/$/, '') || '/'\n}\n","import { removeTrailingSlash } from '../shared/lib/router/utils/remove-trailing-slash'\nimport { parsePath } from '../shared/lib/router/utils/parse-path'\n\n/**\n * Normalizes the trailing slash of a path according to the `trailingSlash` option\n * in `next.config.js`.\n */\nexport const normalizePathTrailingSlash = (path: string) => {\n if (!path.startsWith('/') || process.env.__NEXT_MANUAL_TRAILING_SLASH) {\n return path\n }\n\n const { pathname, query, hash } = parsePath(path)\n if (process.env.__NEXT_TRAILING_SLASH) {\n if (/\\.[^/]+\\/?$/.test(pathname)) {\n return `${removeTrailingSlash(pathname)}${query}${hash}`\n } else if (pathname.endsWith('/')) {\n return `${pathname}${query}${hash}`\n } else {\n return `${pathname}/${query}${hash}`\n }\n }\n\n return `${removeTrailingSlash(pathname)}${query}${hash}`\n}\n","import { addPathPrefix } from '../shared/lib/router/utils/add-path-prefix'\nimport { normalizePathTrailingSlash } from './normalize-trailing-slash'\n\nconst basePath = (process.env.__NEXT_ROUTER_BASEPATH as string) || ''\n\nexport function addBasePath(path: string, required?: boolean): string {\n return normalizePathTrailingSlash(\n process.env.__NEXT_MANUAL_CLIENT_BASE_PATH && !required\n ? path\n : addPathPrefix(path, basePath)\n )\n}\n","/**\n * Shared types and constants for the Segment Cache.\n */\n\nexport const enum NavigationResultTag {\n MPA,\n Success,\n NoOp,\n Async,\n}\n\n/**\n * The priority of the prefetch task. Higher numbers are higher priority.\n */\nexport const enum PrefetchPriority {\n /**\n * Assigned to the most recently hovered/touched link. Special network\n * bandwidth is reserved for this task only. There's only ever one Intent-\n * priority task at a time; when a new Intent task is scheduled, the previous\n * one is bumped down to Default.\n */\n Intent = 2,\n /**\n * The default priority for prefetch tasks.\n */\n Default = 1,\n /**\n * Assigned to tasks when they spawn non-blocking background work, like\n * revalidating a partially cached entry to see if more data is available.\n */\n Background = 0,\n}\n\nexport const enum FetchStrategy {\n // Deliberately ordered so we can easily compare two segments\n // and determine if one segment is \"more specific\" than another\n // (i.e. if it's likely that it contains more data)\n LoadingBoundary = 0,\n PPR = 1,\n PPRRuntime = 2,\n Full = 3,\n}\n\n/**\n * A subset of fetch strategies used for prefetch tasks.\n * A prefetch task can't know if it should use `PPR` or `LoadingBoundary`\n * until we complete the initial tree prefetch request, so we use `PPR` to signal both cases\n * and adjust it based on the route when actually fetching.\n * */\nexport type PrefetchTaskFetchStrategy =\n | FetchStrategy.PPR\n | FetchStrategy.PPRRuntime\n | FetchStrategy.Full\n","// TypeScript trick to simulate opaque types, like in Flow.\ntype Opaque = T & { __brand: K }\n\n// Only functions in this module should be allowed to create CacheKeys.\nexport type NormalizedPathname = Opaque<'NormalizedPathname', string>\nexport type NormalizedSearch = Opaque<'NormalizedSearch', string>\nexport type NormalizedNextUrl = Opaque<'NormalizedNextUrl', string>\n\nexport type RouteCacheKey = Opaque<\n 'RouteCacheKey',\n {\n pathname: NormalizedPathname\n search: NormalizedSearch\n nextUrl: NormalizedNextUrl | null\n\n // TODO: Eventually the dynamic params will be added here, too.\n }\n>\n\nexport function createCacheKey(\n originalHref: string,\n nextUrl: string | null\n): RouteCacheKey {\n const originalUrl = new URL(originalHref)\n const cacheKey = {\n pathname: originalUrl.pathname as NormalizedPathname,\n search: originalUrl.search as NormalizedSearch,\n nextUrl: nextUrl as NormalizedNextUrl | null,\n } as RouteCacheKey\n return cacheKey\n}\n","/**\n * App Router types - Client-safe types for the Next.js App Router\n *\n * This file contains type definitions that can be safely imported\n * by both client-side and server-side code without circular dependencies.\n */\n\nimport type React from 'react'\n\nexport type LoadingModuleData =\n | [React.JSX.Element, React.ReactNode, React.ReactNode]\n | null\n\n/** viewport metadata node */\nexport type HeadData = React.ReactNode\n\nexport type ChildSegmentMap = Map\n\n/**\n * Cache node used in app-router / layout-router.\n */\n\nexport type CacheNode = {\n /**\n * When rsc is not null, it represents the RSC data for the\n * corresponding segment.\n *\n * `null` is a valid React Node but because segment data is always a\n * component, we can use `null` to represent empty. When it is\n * null, it represents missing data, and rendering should suspend.\n */\n rsc: React.ReactNode\n\n /**\n * Represents a static version of the segment that can be shown immediately,\n * and may or may not contain dynamic holes. It's prefetched before a\n * navigation occurs.\n *\n * During rendering, we will choose whether to render `rsc` or `prefetchRsc`\n * with `useDeferredValue`. As with the `rsc` field, a value of `null` means\n * no value was provided. In this case, the LayoutRouter will go straight to\n * rendering the `rsc` value; if that one is also missing, it will suspend and\n * trigger a lazy fetch.\n */\n prefetchRsc: React.ReactNode\n\n prefetchHead: HeadData | null\n\n head: HeadData\n\n loading: LoadingModuleData | Promise\n\n parallelRoutes: Map\n\n /**\n * The timestamp of the navigation that last updated the CacheNode's data. If\n * a CacheNode is reused from a previous navigation, this value is not\n * updated. Used to track the staleness of the data.\n */\n navigatedAt: number\n}\n\nexport type DynamicParamTypes =\n | 'catchall'\n | 'catchall-intercepted-(..)(..)'\n | 'catchall-intercepted-(.)'\n | 'catchall-intercepted-(..)'\n | 'catchall-intercepted-(...)'\n | 'optional-catchall'\n | 'dynamic'\n | 'dynamic-intercepted-(..)(..)'\n | 'dynamic-intercepted-(.)'\n | 'dynamic-intercepted-(..)'\n | 'dynamic-intercepted-(...)'\n\nexport type DynamicParamTypesShort =\n | 'c'\n | 'ci(..)(..)'\n | 'ci(.)'\n | 'ci(..)'\n | 'ci(...)'\n | 'oc'\n | 'd'\n | 'di(..)(..)'\n | 'di(.)'\n | 'di(..)'\n | 'di(...)'\n\nexport type Segment =\n | string\n | [\n // Param name\n paramName: string,\n // Param cache key (almost the same as the value, but arrays are\n // concatenated into strings)\n // TODO: We should change this to just be the value. Currently we convert\n // it back to a value when passing to useParams. It only needs to be\n // a string when converted to a a cache key, but that doesn't mean we\n // need to store it as that representation.\n paramCacheKey: string,\n // Dynamic param type\n dynamicParamType: DynamicParamTypesShort,\n ]\n\n/**\n * Router state\n */\nexport type FlightRouterState = [\n segment: Segment,\n parallelRoutes: { [parallelRouterKey: string]: FlightRouterState },\n url?: string | null,\n /**\n * \"refresh\" and \"refetch\", despite being similarly named, have different\n * semantics:\n * - \"refetch\" is used during a request to inform the server where rendering\n * should start from.\n *\n * - \"refresh\" is used by the client to mark that a segment should re-fetch the\n * data from the server for the current segment. It uses the \"url\" property\n * above to determine where to fetch from.\n *\n * - \"inside-shared-layout\" is used during a prefetch request to inform the\n * server that even if the segment matches, it should be treated as if it's\n * within the \"new\" part of a navigation — inside the shared layout. If\n * the segment doesn't match, then it has no effect, since it would be\n * treated as new regardless. If it does match, though, the server does not\n * need to render it, because the client already has it.\n *\n * - \"metadata-only\" instructs the server to skip rendering the segments and\n * only send the head data.\n *\n * A bit confusing, but that's because it has only one extremely narrow use\n * case — during a non-PPR prefetch, the server uses it to find the first\n * loading boundary beneath a shared layout.\n *\n * TODO: We should rethink the protocol for dynamic requests. It might not\n * make sense for the client to send a FlightRouterState, since this type is\n * overloaded with concerns.\n */\n refresh?:\n | 'refetch'\n | 'refresh'\n | 'inside-shared-layout'\n | 'metadata-only'\n | null,\n isRootLayout?: boolean,\n /**\n * Only present when responding to a tree prefetch request. Indicates whether\n * there is a loading boundary somewhere in the tree. The client cache uses\n * this to determine if it can skip the data prefetch request.\n */\n hasLoadingBoundary?: HasLoadingBoundary,\n]\n\nexport const enum HasLoadingBoundary {\n // There is a loading boundary in this particular segment\n SegmentHasLoadingBoundary = 1,\n // There is a loading boundary somewhere in the subtree (but not in\n // this segment)\n SubtreeHasLoadingBoundary = 2,\n // There is no loading boundary in this segment or any of its descendants\n SubtreeHasNoLoadingBoundary = 3,\n}\n\n/**\n * Individual Flight response path\n */\nexport type FlightSegmentPath =\n // Uses `any` as repeating pattern can't be typed.\n | any[]\n // Looks somewhat like this\n | [\n segment: Segment,\n parallelRouterKey: string,\n segment: Segment,\n parallelRouterKey: string,\n segment: Segment,\n parallelRouterKey: string,\n ]\n\n/**\n * Represents a tree of segments and the Flight data (i.e. React nodes) that\n * correspond to each one. The tree is isomorphic to the FlightRouterState;\n * however in the future we want to be able to fetch arbitrary partial segments\n * without having to fetch all its children. So this response format will\n * likely change.\n */\nexport type CacheNodeSeedData = [\n node: React.ReactNode | null,\n parallelRoutes: {\n [parallelRouterKey: string]: CacheNodeSeedData | null\n },\n loading: LoadingModuleData | Promise,\n isPartial: boolean,\n /** TODO: this doesn't feel like it belongs here, because it's only used during build, in `collectSegmentData` */\n hasRuntimePrefetch: boolean,\n]\n\nexport type FlightDataSegment = [\n /* segment of the rendered slice: */ Segment,\n /* treePatch */ FlightRouterState,\n /* cacheNodeSeedData */ CacheNodeSeedData | null, // Can be null during prefetch if there's no loading component\n /* head: viewport */ HeadData,\n /* isHeadPartial */ boolean,\n]\n\nexport type FlightDataPath =\n // Uses `any` as repeating pattern can't be typed.\n | any[]\n // Looks somewhat like this\n | [\n // Holds full path to the segment.\n ...FlightSegmentPath[],\n ...FlightDataSegment,\n ]\n\n/**\n * The Flight response data\n */\nexport type FlightData = Array | string\n\nexport type ActionResult = Promise\n\nexport type InitialRSCPayload = {\n /** buildId */\n b: string\n /** initialCanonicalUrlParts */\n c: string[]\n /** initialRenderedSearch */\n q: string\n /** couldBeIntercepted */\n i: boolean\n /** initialFlightData */\n f: FlightDataPath[]\n /** missingSlots */\n m: Set | undefined\n /** GlobalError */\n G: [React.ComponentType, React.ReactNode | undefined]\n /** prerendered */\n S: boolean\n}\n\n// Response from `createFromFetch` for normal rendering\nexport type NavigationFlightResponse = {\n /** buildId */\n b: string\n /** flightData */\n f: FlightData\n /** prerendered */\n S: boolean\n /** renderedSearch */\n q: string\n /** couldBeIntercepted */\n i: boolean\n /** runtimePrefetch - [isPartial, staleTime]. Only present in runtime prefetch responses. */\n rp?: [boolean, number]\n}\n\n// Response from `createFromFetch` for server actions. Action's flight data can be null\nexport type ActionFlightResponse = {\n /** actionResult */\n a: ActionResult\n /** buildId */\n b: string\n /** flightData */\n f: FlightData\n /** renderedSearch */\n q: string\n /** couldBeIntercepted */\n i: boolean\n}\n\nexport type RSCPayload =\n | InitialRSCPayload\n | NavigationFlightResponse\n | ActionFlightResponse\n","import type { Segment } from '../../shared/lib/app-router-types'\n\nexport const matchSegment = (\n existingSegment: Segment,\n segment: Segment\n): boolean => {\n // segment is either Array or string\n if (typeof existingSegment === 'string') {\n if (typeof segment === 'string') {\n // Common case: segment is just a string\n return existingSegment === segment\n }\n return false\n }\n\n if (typeof segment === 'string') {\n return false\n }\n return existingSegment[0] === segment[0] && existingSegment[1] === segment[1]\n}\n","export const RSC_HEADER = 'rsc' as const\nexport const ACTION_HEADER = 'next-action' as const\n// TODO: Instead of sending the full router state, we only need to send the\n// segment path. Saves bytes. Then we could also use this field for segment\n// prefetches, which also need to specify a particular segment.\nexport const NEXT_ROUTER_STATE_TREE_HEADER = 'next-router-state-tree' as const\nexport const NEXT_ROUTER_PREFETCH_HEADER = 'next-router-prefetch' as const\n// This contains the path to the segment being prefetched.\n// TODO: If we change next-router-state-tree to be a segment path, we can use\n// that instead. Then next-router-prefetch and next-router-segment-prefetch can\n// be merged into a single enum.\nexport const NEXT_ROUTER_SEGMENT_PREFETCH_HEADER =\n 'next-router-segment-prefetch' as const\nexport const NEXT_HMR_REFRESH_HEADER = 'next-hmr-refresh' as const\nexport const NEXT_HMR_REFRESH_HASH_COOKIE = '__next_hmr_refresh_hash__' as const\nexport const NEXT_URL = 'next-url' as const\nexport const RSC_CONTENT_TYPE_HEADER = 'text/x-component' as const\n\nexport const FLIGHT_HEADERS = [\n RSC_HEADER,\n NEXT_ROUTER_STATE_TREE_HEADER,\n NEXT_ROUTER_PREFETCH_HEADER,\n NEXT_HMR_REFRESH_HEADER,\n NEXT_ROUTER_SEGMENT_PREFETCH_HEADER,\n] as const\n\nexport const NEXT_RSC_UNION_QUERY = '_rsc' as const\n\nexport const NEXT_ROUTER_STALE_TIME_HEADER = 'x-nextjs-stale-time' as const\nexport const NEXT_DID_POSTPONE_HEADER = 'x-nextjs-postponed' as const\nexport const NEXT_REWRITTEN_PATH_HEADER = 'x-nextjs-rewritten-path' as const\nexport const NEXT_REWRITTEN_QUERY_HEADER = 'x-nextjs-rewritten-query' as const\nexport const NEXT_IS_PRERENDER_HEADER = 'x-nextjs-prerender' as const\nexport const NEXT_ACTION_NOT_FOUND_HEADER = 'x-nextjs-action-not-found' as const\nexport const NEXT_REQUEST_ID_HEADER = 'x-nextjs-request-id' as const\nexport const NEXT_HTML_REQUEST_ID_HEADER = 'x-nextjs-html-request-id' as const\n\n// TODO: Should this include nextjs in the name, like the others?\nexport const NEXT_ACTION_REVALIDATED_HEADER = 'x-action-revalidated' as const\n","import type { CacheNode } from '../../../shared/lib/app-router-types'\nimport type {\n FlightRouterState,\n FlightSegmentPath,\n} from '../../../shared/lib/app-router-types'\nimport type { NavigationSeed } from '../segment-cache/navigation'\nimport type { FetchServerResponseResult } from './fetch-server-response'\n\nexport const ACTION_REFRESH = 'refresh'\nexport const ACTION_NAVIGATE = 'navigate'\nexport const ACTION_RESTORE = 'restore'\nexport const ACTION_SERVER_PATCH = 'server-patch'\nexport const ACTION_HMR_REFRESH = 'hmr-refresh'\nexport const ACTION_SERVER_ACTION = 'server-action'\n\nexport type RouterChangeByServerResponse = ({\n navigatedAt,\n previousTree,\n serverResponse,\n}: {\n navigatedAt: number\n previousTree: FlightRouterState\n serverResponse: FetchServerResponseResult\n}) => void\n\nexport interface Mutable {\n mpaNavigation?: boolean\n patchedTree?: FlightRouterState\n renderedSearch?: string\n canonicalUrl?: string\n scrollableSegments?: FlightSegmentPath[]\n pendingPush?: boolean\n cache?: CacheNode\n hashFragment?: string\n shouldScroll?: boolean\n preserveCustomHistoryState?: boolean\n onlyHashChange?: boolean\n collectedDebugInfo?: Array\n}\n\nexport interface ServerActionMutable extends Mutable {\n inFlightServerAction?: Promise | null\n}\n\n/**\n * Refresh triggers a refresh of the full page data.\n * - fetches the Flight data and fills rsc at the root of the cache.\n * - The router state is updated at the root.\n */\nexport interface RefreshAction {\n type: typeof ACTION_REFRESH\n}\n\nexport interface HmrRefreshAction {\n type: typeof ACTION_HMR_REFRESH\n}\n\nexport type ServerActionDispatcher = (\n args: Omit<\n ServerActionAction,\n 'type' | 'mutable' | 'navigate' | 'changeByServerResponse' | 'cache'\n >\n) => void\n\nexport interface ServerActionAction {\n type: typeof ACTION_SERVER_ACTION\n actionId: string\n actionArgs: any[]\n resolve: (value: any) => void\n reject: (reason?: any) => void\n didRevalidate?: boolean\n}\n\n/**\n * Navigate triggers a navigation to the provided url. It supports two types: `push` and `replace`.\n *\n * `navigateType`:\n * - `push` - pushes a new history entry in the browser history\n * - `replace` - replaces the current history entry in the browser history\n *\n * Navigate has multiple cache heuristics:\n * - page was prefetched\n * - Apply router state tree from prefetch\n * - Apply Flight data from prefetch to the cache\n * - If Flight data is a string, it's a redirect and the state is updated to trigger a redirect\n * - Check if hard navigation is needed\n * - Hard navigation happens when a dynamic parameter below the common layout changed\n * - When hard navigation is needed the cache is invalidated below the flightSegmentPath\n * - The missing cache nodes of the page will be fetched in layout-router and trigger the SERVER_PATCH action\n * - If hard navigation is not needed\n * - The cache is reused\n * - If any cache nodes are missing they'll be fetched in layout-router and trigger the SERVER_PATCH action\n * - page was not prefetched\n * - The navigate was called from `next/router` (`router.push()` / `router.replace()`) / `next/link` without prefetched data available (e.g. the prefetch didn't come back from the server before clicking the link)\n * - Flight data is fetched in the reducer (suspends the reducer)\n * - Router state tree is created based on Flight data\n * - Cache is filled based on the Flight data\n *\n * Above steps explain 3 cases:\n * - `soft` - Reuses the existing cache and fetches missing nodes in layout-router.\n * - `hard` - Creates a new cache where cache nodes are removed below the common layout and fetches missing nodes in layout-router.\n * - `optimistic` (explicit no prefetch) - Creates a new cache and kicks off the data fetch in the reducer. The data fetch is awaited in the layout-router.\n */\nexport interface NavigateAction {\n type: typeof ACTION_NAVIGATE\n url: URL\n isExternalUrl: boolean\n locationSearch: Location['search']\n navigateType: 'push' | 'replace'\n shouldScroll: boolean\n}\n\n/**\n * Restore applies the provided router state.\n * - Used for `popstate` (back/forward navigation) where a known router state has to be applied.\n * - Also used when syncing the router state with `pushState`/`replaceState` calls.\n * - Router state is applied as-is from the history state, if available.\n * - If the history state does not contain the router state, the existing router state is used.\n * - If any cache node is missing it will be fetched in layout-router during rendering and the server-patch case.\n * - If existing cache nodes match these are used.\n */\nexport interface RestoreAction {\n type: typeof ACTION_RESTORE\n url: URL\n historyState: AppHistoryState | undefined\n}\n\nexport type AppHistoryState = {\n tree: FlightRouterState\n renderedSearch: string\n}\n\n/**\n * Server-patch applies the provided Flight data to the cache and router tree.\n */\nexport interface ServerPatchAction {\n type: typeof ACTION_SERVER_PATCH\n previousTree: FlightRouterState\n url: URL\n nextUrl: string | null\n seed: NavigationSeed | null\n mpa: boolean\n}\n\n/**\n * PrefetchKind defines the type of prefetching that should be done.\n * - `auto` - if the page is dynamic, prefetch the page data partially, if static prefetch the page data fully.\n * - `full` - prefetch the page data fully.\n */\n\nexport enum PrefetchKind {\n AUTO = 'auto',\n FULL = 'full',\n}\n\n/**\n * Prefetch adds the provided FlightData to the prefetch cache\n * - Creates the router state tree based on the patch in FlightData\n * - Adds the FlightData to the prefetch cache\n * - In ACTION_NAVIGATE the prefetch cache is checked and the router state tree and FlightData are applied.\n */\n\nexport interface PushRef {\n /**\n * If the app-router should push a new history entry in app-router's useEffect()\n */\n pendingPush: boolean\n /**\n * Multi-page navigation through location.href.\n */\n mpaNavigation: boolean\n /**\n * Skip applying the router state to the browser history state.\n */\n preserveCustomHistoryState: boolean\n}\n\nexport type FocusAndScrollRef = {\n /**\n * If focus and scroll should be set in the layout-router's useEffect()\n */\n apply: boolean\n /**\n * The hash fragment that should be scrolled to.\n */\n hashFragment: string | null\n /**\n * The paths of the segments that should be focused.\n */\n segmentPaths: FlightSegmentPath[]\n /**\n * If only the URLs hash fragment changed\n */\n onlyHashChange: boolean\n}\n\n/**\n * Handles keeping the state of app-router.\n */\nexport type AppRouterState = {\n /**\n * The router state, this is written into the history state in app-router using replaceState/pushState.\n * - Has to be serializable as it is written into the history state.\n * - Holds which segments and parallel routes are shown on the screen.\n */\n tree: FlightRouterState\n /**\n * The cache holds React nodes for every segment that is shown on screen as well as previously shown segments.\n * It also holds in-progress data requests.\n */\n cache: CacheNode\n /**\n * Decides if the update should create a new history entry and if the navigation has to trigger a browser navigation.\n */\n pushRef: PushRef\n /**\n * Decides if the update should apply scroll and focus management.\n */\n focusAndScrollRef: FocusAndScrollRef\n /**\n * The canonical url that is pushed/replaced.\n * - This is the url you see in the browser.\n */\n canonicalUrl: string\n renderedSearch: string\n /**\n * The underlying \"url\" representing the UI state, which is used for intercepting routes.\n */\n nextUrl: string | null\n\n /**\n * The previous next-url that was used previous to a dynamic navigation.\n */\n previousNextUrl: string | null\n\n debugInfo: Array | null\n}\n\nexport type ReadonlyReducerState = Readonly\nexport type ReducerState =\n | (Promise & { _debugInfo?: Array })\n | AppRouterState\nexport type ReducerActions = Readonly<\n | RefreshAction\n | NavigateAction\n | RestoreAction\n | ServerPatchAction\n | HmrRefreshAction\n | ServerActionAction\n>\n","/**\n * Check to see if a value is Thenable.\n *\n * @param promise the maybe-thenable value\n * @returns true if the value is thenable\n */\nexport function isThenable(\n promise: Promise | T\n): promise is Promise {\n return (\n promise !== null &&\n typeof promise === 'object' &&\n 'then' in promise &&\n typeof promise.then === 'function'\n )\n}\n","import type { Dispatch } from 'react'\nimport React, { use, useMemo } from 'react'\nimport { isThenable } from '../../shared/lib/is-thenable'\nimport type { AppRouterActionQueue } from './app-router-instance'\nimport type {\n AppRouterState,\n ReducerActions,\n ReducerState,\n} from './router-reducer/router-reducer-types'\n\n// The app router state lives outside of React, so we can import the dispatch\n// method directly wherever we need it, rather than passing it around via props\n// or context.\nlet dispatch: Dispatch | null = null\n\nexport function dispatchAppRouterAction(action: ReducerActions) {\n if (dispatch === null) {\n throw new Error(\n 'Internal Next.js error: Router action dispatched before initialization.'\n )\n }\n dispatch(action)\n}\n\nconst __DEV__ = process.env.NODE_ENV !== 'production'\nconst promisesWithDebugInfo: WeakMap<\n Promise,\n Promise & { _debugInfo?: Array }\n> = __DEV__ ? new WeakMap() : (null as any)\n\nexport function useActionQueue(\n actionQueue: AppRouterActionQueue\n): AppRouterState {\n const [state, setState] = React.useState(actionQueue.state)\n\n // Because of a known issue that requires to decode Flight streams inside the\n // render phase, we have to be a bit clever and assign the dispatch method to\n // a module-level variable upon initialization. The useState hook in this\n // module only exists to synchronize state that lives outside of React.\n // Ideally, what we'd do instead is pass the state as a prop to root.render;\n // this is conceptually how we're modeling the app router state, despite the\n // weird implementation details.\n if (process.env.NODE_ENV !== 'production') {\n const { useAppDevRenderingIndicator } =\n require('../../next-devtools/userspace/use-app-dev-rendering-indicator') as typeof import('../../next-devtools/userspace/use-app-dev-rendering-indicator')\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const appDevRenderingIndicator = useAppDevRenderingIndicator()\n\n dispatch = (action: ReducerActions) => {\n appDevRenderingIndicator(() => {\n actionQueue.dispatch(action, setState)\n })\n }\n } else {\n dispatch = (action: ReducerActions) =>\n actionQueue.dispatch(action, setState)\n }\n\n // When navigating to a non-prefetched route, then App Router state will be\n // blocked until the server responds. We need to transfer the `_debugInfo`\n // from the underlying Flight response onto the top-level promise that is\n // passed to React (via `use`) so that the latency is accurately represented\n // in the React DevTools.\n const stateWithDebugInfo = useMemo(() => {\n if (!__DEV__) {\n return state\n }\n\n if (isThenable(state)) {\n // useMemo can't be used to cache a Promise since the memoized value is thrown\n // away when we suspend. So we use a WeakMap to cache the Promise with debug info.\n let promiseWithDebugInfo = promisesWithDebugInfo.get(state)\n if (promiseWithDebugInfo === undefined) {\n const debugInfo: Array = []\n promiseWithDebugInfo = Promise.resolve(state).then((asyncState) => {\n if (asyncState.debugInfo !== null) {\n debugInfo.push(...asyncState.debugInfo)\n }\n return asyncState\n }) as Promise & { _debugInfo?: Array }\n promiseWithDebugInfo._debugInfo = debugInfo\n\n promisesWithDebugInfo.set(state, promiseWithDebugInfo)\n }\n\n return promiseWithDebugInfo\n }\n return state\n }, [state])\n\n return isThenable(stateWithDebugInfo)\n ? use(stateWithDebugInfo)\n : stateWithDebugInfo\n}\n","import { startTransition } from 'react'\nimport { ACTION_SERVER_ACTION } from './components/router-reducer/router-reducer-types'\nimport { dispatchAppRouterAction } from './components/use-action-queue'\n\nexport async function callServer(actionId: string, actionArgs: any[]) {\n return new Promise((resolve, reject) => {\n startTransition(() => {\n dispatchAppRouterAction({\n type: ACTION_SERVER_ACTION,\n actionId,\n actionArgs,\n resolve,\n reject,\n })\n })\n })\n}\n","const basePath = process.env.__NEXT_ROUTER_BASEPATH || ''\nconst pathname = `${basePath}/__nextjs_source-map`\n\nexport const findSourceMapURL =\n process.env.NODE_ENV === 'development'\n ? function findSourceMapURL(filename: string): string | null {\n if (filename === '') {\n return null\n }\n\n if (\n filename.startsWith(document.location.origin) &&\n filename.includes('/_next/static')\n ) {\n // This is a request for a client chunk. This can only happen when\n // using Turbopack. In this case, since we control how those source\n // maps are generated, we can safely assume that the sourceMappingURL\n // is relative to the filename, with an added `.map` extension. The\n // browser can just request this file, and it gets served through the\n // normal dev server, without the need to route this through\n // the `/__nextjs_source-map` dev middleware.\n return `${filename}.map`\n }\n\n const url = new URL(pathname, document.location.origin)\n url.searchParams.set('filename', filename)\n\n return url.href\n }\n : undefined\n","import type { FlightRouterState, Segment } from './app-router-types'\n\nexport function getSegmentValue(segment: Segment) {\n return Array.isArray(segment) ? segment[1] : segment\n}\n\nexport function isGroupSegment(segment: string) {\n // Use array[0] for performant purpose\n return segment[0] === '(' && segment.endsWith(')')\n}\n\nexport function isParallelRouteSegment(segment: string) {\n return segment.startsWith('@') && segment !== '@children'\n}\n\nexport function addSearchParamsIfPageSegment(\n segment: Segment,\n searchParams: Record\n) {\n const isPageSegment = segment.includes(PAGE_SEGMENT_KEY)\n\n if (isPageSegment) {\n const stringifiedQuery = JSON.stringify(searchParams)\n return stringifiedQuery !== '{}'\n ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery\n : PAGE_SEGMENT_KEY\n }\n\n return segment\n}\n\nexport function computeSelectedLayoutSegment(\n segments: string[] | null,\n parallelRouteKey: string\n): string | null {\n if (!segments || segments.length === 0) {\n return null\n }\n\n // For 'children', use first segment; for other parallel routes, use last segment\n const rawSegment =\n parallelRouteKey === 'children'\n ? segments[0]\n : segments[segments.length - 1]\n\n // If the default slot is showing, return null since it's not technically \"selected\" (it's a fallback)\n // Returning an internal value like `__DEFAULT__` would be confusing\n return rawSegment === DEFAULT_SEGMENT_KEY ? null : rawSegment\n}\n\n/** Get the canonical parameters from the current level to the leaf node. */\nexport function getSelectedLayoutSegmentPath(\n tree: FlightRouterState,\n parallelRouteKey: string,\n first = true,\n segmentPath: string[] = []\n): string[] {\n let node: FlightRouterState\n if (first) {\n // Use the provided parallel route key on the first parallel route\n node = tree[1][parallelRouteKey]\n } else {\n // After first parallel route prefer children, if there's no children pick the first parallel route.\n const parallelRoutes = tree[1]\n node = parallelRoutes.children ?? Object.values(parallelRoutes)[0]\n }\n\n if (!node) return segmentPath\n const segment = node[0]\n\n let segmentValue = getSegmentValue(segment)\n\n if (!segmentValue || segmentValue.startsWith(PAGE_SEGMENT_KEY)) {\n return segmentPath\n }\n\n segmentPath.push(segmentValue)\n\n return getSelectedLayoutSegmentPath(\n node,\n parallelRouteKey,\n false,\n segmentPath\n )\n}\n\nexport const PAGE_SEGMENT_KEY = '__PAGE__'\nexport const DEFAULT_SEGMENT_KEY = '__DEFAULT__'\nexport const NOT_FOUND_SEGMENT_KEY = '/_not-found'\n","import { PAGE_SEGMENT_KEY } from '../segment'\nimport type { Segment as FlightRouterStateSegment } from '../app-router-types'\n\n// TypeScript trick to simulate opaque types, like in Flow.\ntype Opaque = T & { __brand: K }\n\nexport type SegmentRequestKeyPart = Opaque<'SegmentRequestKeyPart', string>\nexport type SegmentRequestKey = Opaque<'SegmentRequestKey', string>\n\nexport const ROOT_SEGMENT_REQUEST_KEY = '' as SegmentRequestKey\n\nexport const HEAD_REQUEST_KEY = '/_head' as SegmentRequestKey\n\nexport function createSegmentRequestKeyPart(\n segment: FlightRouterStateSegment\n): SegmentRequestKeyPart {\n if (typeof segment === 'string') {\n if (segment.startsWith(PAGE_SEGMENT_KEY)) {\n // The Flight Router State type sometimes includes the search params in\n // the page segment. However, the Segment Cache tracks this as a separate\n // key. So, we strip the search params here, and then add them back when\n // the cache entry is turned back into a FlightRouterState. This is an\n // unfortunate consequence of the FlightRouteState being used both as a\n // transport type and as a cache key; we'll address this once more of the\n // Segment Cache implementation has settled.\n // TODO: We should hoist the search params out of the FlightRouterState\n // type entirely, This is our plan for dynamic route params, too.\n return PAGE_SEGMENT_KEY as SegmentRequestKeyPart\n }\n const safeName =\n // TODO: FlightRouterState encodes Not Found routes as \"/_not-found\".\n // But params typically don't include the leading slash. We should use\n // a different encoding to avoid this special case.\n segment === '/_not-found'\n ? '_not-found'\n : encodeToFilesystemAndURLSafeString(segment)\n // Since this is not a dynamic segment, it's fully encoded. It does not\n // need to be \"hydrated\" with a param value.\n return safeName as SegmentRequestKeyPart\n }\n\n const name = segment[0]\n const paramType = segment[2]\n const safeName = encodeToFilesystemAndURLSafeString(name)\n\n const encodedName = '$' + paramType + '$' + safeName\n return encodedName as SegmentRequestKeyPart\n}\n\nexport function appendSegmentRequestKeyPart(\n parentRequestKey: SegmentRequestKey,\n parallelRouteKey: string,\n childRequestKeyPart: SegmentRequestKeyPart\n): SegmentRequestKey {\n // Aside from being filesystem safe, segment keys are also designed so that\n // each segment and parallel route creates its own subdirectory. Roughly in\n // the same shape as the source app directory. This is mostly just for easier\n // debugging (you can open up the build folder and navigate the output); if\n // we wanted to do we could just use a flat structure.\n\n // Omit the parallel route key for children, since this is the most\n // common case. Saves some bytes (and it's what the app directory does).\n const slotKey =\n parallelRouteKey === 'children'\n ? childRequestKeyPart\n : `@${encodeToFilesystemAndURLSafeString(parallelRouteKey)}/${childRequestKeyPart}`\n return (parentRequestKey + '/' + slotKey) as SegmentRequestKey\n}\n\n// Define a regex pattern to match the most common characters found in a route\n// param. It excludes anything that might not be cross-platform filesystem\n// compatible, like |. It does not need to be precise because the fallback is to\n// just base64url-encode the whole parameter, which is fine; we just don't do it\n// by default for compactness, and for easier debugging.\nconst simpleParamValueRegex = /^[a-zA-Z0-9\\-_@]+$/\n\nfunction encodeToFilesystemAndURLSafeString(value: string) {\n if (simpleParamValueRegex.test(value)) {\n return value\n }\n // If there are any unsafe characters, base64url-encode the entire value.\n // We also add a ! prefix so it doesn't collide with the simple case.\n const base64url = btoa(value)\n .replace(/\\+/g, '-') // Replace '+' with '-'\n .replace(/\\//g, '_') // Replace '/' with '_'\n .replace(/=+$/, '') // Remove trailing '='\n return '!' + base64url\n}\n\nexport function convertSegmentPathToStaticExportFilename(\n segmentPath: string\n): string {\n return `__next${segmentPath.replace(/\\//g, '.')}.txt`\n}\n","import type { DynamicParamTypesShort } from '../shared/lib/app-router-types'\nimport {\n addSearchParamsIfPageSegment,\n DEFAULT_SEGMENT_KEY,\n PAGE_SEGMENT_KEY,\n} from '../shared/lib/segment'\nimport { ROOT_SEGMENT_REQUEST_KEY } from '../shared/lib/segment-cache/segment-value-encoding'\nimport {\n NEXT_REWRITTEN_PATH_HEADER,\n NEXT_REWRITTEN_QUERY_HEADER,\n NEXT_RSC_UNION_QUERY,\n} from './components/app-router-headers'\nimport type {\n NormalizedPathname,\n NormalizedSearch,\n} from './components/segment-cache/cache-key'\nimport type { RSCResponse } from './components/router-reducer/fetch-server-response'\nimport type { ParsedUrlQuery } from 'querystring'\n\nexport type RouteParamValue = string | Array | null\n\nexport function getRenderedSearch(\n response: RSCResponse | Response\n): NormalizedSearch {\n // If the server performed a rewrite, the search params used to render the\n // page will be different from the params in the request URL. In this case,\n // the response will include a header that gives the rewritten search query.\n const rewrittenQuery = response.headers.get(NEXT_REWRITTEN_QUERY_HEADER)\n if (rewrittenQuery !== null) {\n return (\n rewrittenQuery === '' ? '' : '?' + rewrittenQuery\n ) as NormalizedSearch\n }\n // If the header is not present, there was no rewrite, so we use the search\n // query of the response URL.\n return urlToUrlWithoutFlightMarker(new URL(response.url))\n .search as NormalizedSearch\n}\n\nexport function getRenderedPathname(\n response: RSCResponse | Response\n): NormalizedPathname {\n // If the server performed a rewrite, the pathname used to render the\n // page will be different from the pathname in the request URL. In this case,\n // the response will include a header that gives the rewritten pathname.\n const rewrittenPath = response.headers.get(NEXT_REWRITTEN_PATH_HEADER)\n return (rewrittenPath ??\n urlToUrlWithoutFlightMarker(new URL(response.url))\n .pathname) as NormalizedPathname\n}\n\nexport function parseDynamicParamFromURLPart(\n paramType: DynamicParamTypesShort,\n pathnameParts: Array,\n partIndex: number\n): RouteParamValue {\n // This needs to match the behavior in get-dynamic-param.ts.\n switch (paramType) {\n // Catchalls\n case 'c': {\n // Catchalls receive all the remaining URL parts. If there are no\n // remaining pathname parts, return an empty array.\n return partIndex < pathnameParts.length\n ? pathnameParts.slice(partIndex).map((s) => encodeURIComponent(s))\n : []\n }\n // Catchall intercepted\n case 'ci(..)(..)':\n case 'ci(.)':\n case 'ci(..)':\n case 'ci(...)': {\n const prefix = paramType.length - 2\n return partIndex < pathnameParts.length\n ? pathnameParts.slice(partIndex).map((s, i) => {\n if (i === 0) {\n return encodeURIComponent(s.slice(prefix))\n }\n\n return encodeURIComponent(s)\n })\n : []\n }\n // Optional catchalls\n case 'oc': {\n // Optional catchalls receive all the remaining URL parts, unless this is\n // the end of the pathname, in which case they return null.\n return partIndex < pathnameParts.length\n ? pathnameParts.slice(partIndex).map((s) => encodeURIComponent(s))\n : null\n }\n // Dynamic\n case 'd': {\n if (partIndex >= pathnameParts.length) {\n // The route tree expected there to be more parts in the URL than there\n // actually are. This could happen if the x-nextjs-rewritten-path header\n // is incorrectly set, or potentially due to bug in Next.js. TODO:\n // Should this be a hard error? During a prefetch, we can just abort.\n // During a client navigation, we could trigger a hard refresh. But if\n // it happens during initial render, we don't really have any\n // recovery options.\n return ''\n }\n return encodeURIComponent(pathnameParts[partIndex])\n }\n // Dynamic intercepted\n case 'di(..)(..)':\n case 'di(.)':\n case 'di(..)':\n case 'di(...)': {\n const prefix = paramType.length - 2\n if (partIndex >= pathnameParts.length) {\n // The route tree expected there to be more parts in the URL than there\n // actually are. This could happen if the x-nextjs-rewritten-path header\n // is incorrectly set, or potentially due to bug in Next.js. TODO:\n // Should this be a hard error? During a prefetch, we can just abort.\n // During a client navigation, we could trigger a hard refresh. But if\n // it happens during initial render, we don't really have any\n // recovery options.\n return ''\n }\n\n return encodeURIComponent(pathnameParts[partIndex].slice(prefix))\n }\n default:\n paramType satisfies never\n return ''\n }\n}\n\nexport function doesStaticSegmentAppearInURL(segment: string): boolean {\n // This is not a parameterized segment; however, we need to determine\n // whether or not this segment appears in the URL. For example, this route\n // groups do not appear in the URL, so they should be skipped. Any other\n // special cases must be handled here.\n // TODO: Consider encoding this directly into the router tree instead of\n // inferring it on the client based on the segment type. Something like\n // a `doesAppearInURL` flag in FlightRouterState.\n if (\n segment === ROOT_SEGMENT_REQUEST_KEY ||\n // For some reason, the loader tree sometimes includes extra __PAGE__\n // \"layouts\" when part of a parallel route. But it's not a leaf node.\n // Otherwise, we wouldn't need this special case because pages are\n // always leaf nodes.\n // TODO: Investigate why the loader produces these fake page segments.\n segment.startsWith(PAGE_SEGMENT_KEY) ||\n // Route groups.\n (segment[0] === '(' && segment.endsWith(')')) ||\n segment === DEFAULT_SEGMENT_KEY ||\n segment === '/_not-found'\n ) {\n return false\n } else {\n // All other segment types appear in the URL\n return true\n }\n}\n\nexport function getCacheKeyForDynamicParam(\n paramValue: RouteParamValue,\n renderedSearch: NormalizedSearch\n): string {\n // This needs to match the logic in get-dynamic-param.ts, until we're able to\n // unify the various implementations so that these are always computed on\n // the client.\n if (typeof paramValue === 'string') {\n // TODO: Refactor or remove this helper function to accept a string rather\n // than the whole segment type. Also we can probably just append the\n // search string instead of turning it into JSON.\n const pageSegmentWithSearchParams = addSearchParamsIfPageSegment(\n paramValue,\n Object.fromEntries(new URLSearchParams(renderedSearch))\n ) as string\n return pageSegmentWithSearchParams\n } else if (paramValue === null) {\n return ''\n } else {\n return paramValue.join('/')\n }\n}\n\nexport function urlToUrlWithoutFlightMarker(url: URL): URL {\n const urlWithoutFlightParameters = new URL(url)\n urlWithoutFlightParameters.searchParams.delete(NEXT_RSC_UNION_QUERY)\n if (process.env.NODE_ENV === 'production') {\n if (\n process.env.__NEXT_CONFIG_OUTPUT === 'export' &&\n urlWithoutFlightParameters.pathname.endsWith('.txt')\n ) {\n const { pathname } = urlWithoutFlightParameters\n const length = pathname.endsWith('/index.txt') ? 10 : 4\n // Slice off `/index.txt` or `.txt` from the end of the pathname\n urlWithoutFlightParameters.pathname = pathname.slice(0, -length)\n }\n }\n return urlWithoutFlightParameters\n}\n\nexport function getParamValueFromCacheKey(\n paramCacheKey: string,\n paramType: DynamicParamTypesShort\n) {\n // Turn the cache key string sent by the server (as part of FlightRouterState)\n // into a value that can be passed to `useParams` and client components.\n const isCatchAll = paramType === 'c' || paramType === 'oc'\n if (isCatchAll) {\n // Catch-all param keys are a concatenation of the path segments.\n // See equivalent logic in `getSelectedParams`.\n // TODO: We should just pass the array directly, rather than concatenate\n // it to a string and then split it back to an array. It needs to be an\n // array in some places, like when passing a key React, but we can convert\n // it at runtime in those places.\n return paramCacheKey.split('/')\n }\n return paramCacheKey\n}\n\nexport function urlSearchParamsToParsedUrlQuery(\n searchParams: URLSearchParams\n): ParsedUrlQuery {\n // Converts a URLSearchParams object to the same type used by the server when\n // creating search params props, i.e. the type returned by Node's\n // \"querystring\" module.\n const result: ParsedUrlQuery = {}\n for (const [key, value] of searchParams.entries()) {\n if (result[key] === undefined) {\n result[key] = value\n } else if (Array.isArray(result[key])) {\n result[key].push(value)\n } else {\n result[key] = [result[key], value]\n }\n }\n return result\n}\n","export function createHrefFromUrl(\n url: Pick,\n includeHash: boolean = true\n): string {\n return url.pathname + url.search + (includeHash ? url.hash : '')\n}\n","import type {\n CacheNodeSeedData,\n FlightData,\n FlightDataPath,\n FlightRouterState,\n FlightSegmentPath,\n Segment,\n HeadData,\n InitialRSCPayload,\n} from '../shared/lib/app-router-types'\nimport { PAGE_SEGMENT_KEY } from '../shared/lib/segment'\nimport type { NormalizedSearch } from './components/segment-cache/cache-key'\nimport {\n getCacheKeyForDynamicParam,\n parseDynamicParamFromURLPart,\n doesStaticSegmentAppearInURL,\n getRenderedPathname,\n getRenderedSearch,\n} from './route-params'\nimport { createHrefFromUrl } from './components/router-reducer/create-href-from-url'\n\nexport type NormalizedFlightData = {\n /**\n * The full `FlightSegmentPath` inclusive of the final `Segment`\n */\n segmentPath: FlightSegmentPath\n /**\n * The `FlightSegmentPath` exclusive of the final `Segment`\n */\n pathToSegment: FlightSegmentPath\n segment: Segment\n tree: FlightRouterState\n seedData: CacheNodeSeedData | null\n head: HeadData\n isHeadPartial: boolean\n isRootRender: boolean\n}\n\n// TODO: We should only have to export `normalizeFlightData`, however because the initial flight data\n// that gets passed to `createInitialRouterState` doesn't conform to the `FlightDataPath` type (it's missing the root segment)\n// we're currently exporting it so we can use it directly. This should be fixed as part of the unification of\n// the different ways we express `FlightSegmentPath`.\nexport function getFlightDataPartsFromPath(\n flightDataPath: FlightDataPath\n): NormalizedFlightData {\n // Pick the last 4 items from the `FlightDataPath` to get the [tree, seedData, viewport, isHeadPartial].\n const flightDataPathLength = 4\n // tree, seedData, and head are *always* the last three items in the `FlightDataPath`.\n const [tree, seedData, head, isHeadPartial] =\n flightDataPath.slice(-flightDataPathLength)\n // The `FlightSegmentPath` is everything except the last three items. For a root render, it won't be present.\n const segmentPath = flightDataPath.slice(0, -flightDataPathLength)\n\n return {\n // TODO: Unify these two segment path helpers. We are inconsistently pushing an empty segment (\"\")\n // to the start of the segment path in some places which makes it hard to use solely the segment path.\n // Look for \"// TODO-APP: remove ''\" in the codebase.\n pathToSegment: segmentPath.slice(0, -1),\n segmentPath,\n // if the `FlightDataPath` corresponds with the root, there'll be no segment path,\n // in which case we default to ''.\n segment: segmentPath[segmentPath.length - 1] ?? '',\n tree,\n seedData,\n head,\n isHeadPartial,\n isRootRender: flightDataPath.length === flightDataPathLength,\n }\n}\n\nexport function createInitialRSCPayloadFromFallbackPrerender(\n response: Response,\n fallbackInitialRSCPayload: InitialRSCPayload\n): InitialRSCPayload {\n // This is a static fallback page. In order to hydrate the page, we need to\n // parse the client params from the URL, but to account for the possibility\n // that the page was rewritten, we need to check the response headers\n // for x-nextjs-rewritten-path or x-nextjs-rewritten-query headers. Since\n // we can't access the headers of the initial document response, the client\n // performs a fetch request to the current location. Since it's possible that\n // the fetch request will be dynamically rewritten to a different path than\n // the initial document, this fetch request delivers _all_ the hydration data\n // for the page; it was not inlined into the document, like it normally\n // would be.\n //\n // TODO: Consider treating the case where fetch is rewritten to a different\n // path from the document as a special deopt case. We should optimistically\n // assume this won't happen, inline the data into the document, and perform\n // a minimal request (like a HEAD or range request) to verify that the\n // response matches. Tricky to get right because we need to account for\n // all the different deployment environments we support, like output:\n // \"export\" mode, where we currently don't assume that custom response\n // headers are present.\n\n // Patch the Flight data sent by the server with the correct params parsed\n // from the URL + response object.\n const renderedPathname = getRenderedPathname(response)\n const renderedSearch = getRenderedSearch(response)\n const canonicalUrl = createHrefFromUrl(new URL(location.href))\n const originalFlightDataPath = fallbackInitialRSCPayload.f[0]\n const originalFlightRouterState = originalFlightDataPath[0]\n return {\n b: fallbackInitialRSCPayload.b,\n c: canonicalUrl.split('/'),\n q: renderedSearch,\n i: fallbackInitialRSCPayload.i,\n f: [\n [\n fillInFallbackFlightRouterState(\n originalFlightRouterState,\n renderedPathname,\n renderedSearch as NormalizedSearch\n ),\n originalFlightDataPath[1],\n originalFlightDataPath[2],\n originalFlightDataPath[2],\n ],\n ],\n m: fallbackInitialRSCPayload.m,\n G: fallbackInitialRSCPayload.G,\n S: fallbackInitialRSCPayload.S,\n }\n}\n\nfunction fillInFallbackFlightRouterState(\n flightRouterState: FlightRouterState,\n renderedPathname: string,\n renderedSearch: NormalizedSearch\n): FlightRouterState {\n const pathnameParts = renderedPathname.split('/').filter((p) => p !== '')\n const index = 0\n return fillInFallbackFlightRouterStateImpl(\n flightRouterState,\n renderedSearch,\n pathnameParts,\n index\n )\n}\n\nfunction fillInFallbackFlightRouterStateImpl(\n flightRouterState: FlightRouterState,\n renderedSearch: NormalizedSearch,\n pathnameParts: Array,\n pathnamePartsIndex: number\n): FlightRouterState {\n const originalSegment = flightRouterState[0]\n let newSegment: Segment\n let doesAppearInURL: boolean\n if (typeof originalSegment === 'string') {\n newSegment = originalSegment\n doesAppearInURL = doesStaticSegmentAppearInURL(originalSegment)\n } else {\n const paramName = originalSegment[0]\n const paramType = originalSegment[2]\n const paramValue = parseDynamicParamFromURLPart(\n paramType,\n pathnameParts,\n pathnamePartsIndex\n )\n const cacheKey = getCacheKeyForDynamicParam(paramValue, renderedSearch)\n newSegment = [paramName, cacheKey, paramType]\n doesAppearInURL = true\n }\n\n // Only increment the index if the segment appears in the URL. If it's a\n // \"virtual\" segment, like a route group, it remains the same.\n const childPathnamePartsIndex = doesAppearInURL\n ? pathnamePartsIndex + 1\n : pathnamePartsIndex\n\n const children = flightRouterState[1]\n const newChildren: { [key: string]: FlightRouterState } = {}\n for (let key in children) {\n const childFlightRouterState = children[key]\n newChildren[key] = fillInFallbackFlightRouterStateImpl(\n childFlightRouterState,\n renderedSearch,\n pathnameParts,\n childPathnamePartsIndex\n )\n }\n\n const newState: FlightRouterState = [\n newSegment,\n newChildren,\n null,\n flightRouterState[3],\n flightRouterState[4],\n ]\n return newState\n}\n\nexport function getNextFlightSegmentPath(\n flightSegmentPath: FlightSegmentPath\n): FlightSegmentPath {\n // Since `FlightSegmentPath` is a repeated tuple of `Segment` and `ParallelRouteKey`, we slice off two items\n // to get the next segment path.\n return flightSegmentPath.slice(2)\n}\n\nexport function normalizeFlightData(\n flightData: FlightData\n): NormalizedFlightData[] | string {\n // FlightData can be a string when the server didn't respond with a proper flight response,\n // or when a redirect happens, to signal to the client that it needs to perform an MPA navigation.\n if (typeof flightData === 'string') {\n return flightData\n }\n\n return flightData.map((flightDataPath) =>\n getFlightDataPartsFromPath(flightDataPath)\n )\n}\n\n/**\n * This function is used to prepare the flight router state for the request.\n * It removes markers that are not needed by the server, and are purely used\n * for stashing state on the client.\n * @param flightRouterState - The flight router state to prepare.\n * @param isHmrRefresh - Whether this is an HMR refresh request.\n * @returns The prepared flight router state.\n */\nexport function prepareFlightRouterStateForRequest(\n flightRouterState: FlightRouterState,\n isHmrRefresh?: boolean\n): string {\n // HMR requests need the complete, unmodified state for proper functionality\n if (isHmrRefresh) {\n return encodeURIComponent(JSON.stringify(flightRouterState))\n }\n\n return encodeURIComponent(\n JSON.stringify(stripClientOnlyDataFromFlightRouterState(flightRouterState))\n )\n}\n\n/**\n * Recursively strips client-only data from FlightRouterState while preserving\n * server-needed information for proper rendering decisions.\n */\nfunction stripClientOnlyDataFromFlightRouterState(\n flightRouterState: FlightRouterState\n): FlightRouterState {\n const [\n segment,\n parallelRoutes,\n _url, // Intentionally unused - URLs are client-only\n refreshMarker,\n isRootLayout,\n hasLoadingBoundary,\n ] = flightRouterState\n\n // __PAGE__ segments are always fetched from the server, so there's\n // no need to send them up\n const cleanedSegment = stripSearchParamsFromPageSegment(segment)\n\n // Recursively process parallel routes\n const cleanedParallelRoutes: { [key: string]: FlightRouterState } = {}\n for (const [key, childState] of Object.entries(parallelRoutes)) {\n cleanedParallelRoutes[key] =\n stripClientOnlyDataFromFlightRouterState(childState)\n }\n\n const result: FlightRouterState = [\n cleanedSegment,\n cleanedParallelRoutes,\n null, // URLs omitted - server reconstructs paths from segments\n shouldPreserveRefreshMarker(refreshMarker) ? refreshMarker : null,\n ]\n\n // Append optional fields if present\n if (isRootLayout !== undefined) {\n result[4] = isRootLayout\n }\n if (hasLoadingBoundary !== undefined) {\n result[5] = hasLoadingBoundary\n }\n\n return result\n}\n\n/**\n * Strips search parameters from __PAGE__ segments to prevent sensitive\n * client-side data from being sent to the server.\n */\nfunction stripSearchParamsFromPageSegment(segment: Segment): Segment {\n if (\n typeof segment === 'string' &&\n segment.startsWith(PAGE_SEGMENT_KEY + '?')\n ) {\n return PAGE_SEGMENT_KEY\n }\n return segment\n}\n\n/**\n * Determines whether the refresh marker should be sent to the server\n * Client-only markers like 'refresh' are stripped, while server-needed markers\n * like 'refetch' and 'inside-shared-layout' are preserved.\n */\nfunction shouldPreserveRefreshMarker(\n refreshMarker: FlightRouterState[3]\n): boolean {\n return Boolean(refreshMarker && refreshMarker !== 'refresh')\n}\n","// This gets assigned as a side-effect during app initialization. Because it\n// represents the build used to create the JS bundle, it should never change\n// after being set, so we store it in a global variable.\n//\n// When performing RSC requests, if the incoming data has a different build ID,\n// we perform an MPA navigation/refresh to load the updated build and ensure\n// that the client and server in sync.\n\n// Starts as an empty string. In practice, because setAppBuildId is called\n// during initialization before hydration starts, this will always get\n// reassigned to the actual build ID before it's ever needed by a navigation.\n// If for some reasons it didn't, due to a bug or race condition, then on\n// navigation the build comparision would fail and trigger an MPA navigation.\nlet globalBuildId: string = ''\n\nexport function setAppBuildId(buildId: string) {\n globalBuildId = buildId\n}\n\nexport function getAppBuildId(): string {\n return globalBuildId\n}\n","// http://www.cse.yorku.ca/~oz/hash.html\n// More specifically, 32-bit hash via djbxor\n// (ref: https://gist.github.com/eplawless/52813b1d8ad9af510d85?permalink_comment_id=3367765#gistcomment-3367765)\n// This is due to number type differences between rust for turbopack to js number types,\n// where rust does not have easy way to repreesnt js's 53-bit float number type for the matching\n// overflow behavior. This is more `correct` in terms of having canonical hash across different runtime / implementation\n// as can gaurantee determinstic output from 32bit hash.\nexport function djb2Hash(str: string) {\n let hash = 5381\n for (let i = 0; i < str.length; i++) {\n const char = str.charCodeAt(i)\n hash = ((hash << 5) + hash + char) & 0xffffffff\n }\n return hash >>> 0\n}\n\nexport function hexHash(str: string) {\n return djb2Hash(str).toString(36).slice(0, 5)\n}\n","import { hexHash } from '../../hash'\n\nexport function computeCacheBustingSearchParam(\n prefetchHeader: '1' | '2' | '0' | undefined,\n segmentPrefetchHeader: string | string[] | undefined,\n stateTreeHeader: string | string[] | undefined,\n nextUrlHeader: string | string[] | undefined\n): string {\n if (\n (prefetchHeader === undefined || prefetchHeader === '0') &&\n segmentPrefetchHeader === undefined &&\n stateTreeHeader === undefined &&\n nextUrlHeader === undefined\n ) {\n return ''\n }\n return hexHash(\n [\n prefetchHeader || '0',\n segmentPrefetchHeader || '0',\n stateTreeHeader || '0',\n nextUrlHeader || '0',\n ].join(',')\n )\n}\n","'use client'\n\nimport { computeCacheBustingSearchParam } from '../../../shared/lib/router/utils/cache-busting-search-param'\nimport {\n NEXT_ROUTER_PREFETCH_HEADER,\n NEXT_ROUTER_SEGMENT_PREFETCH_HEADER,\n NEXT_ROUTER_STATE_TREE_HEADER,\n NEXT_URL,\n NEXT_RSC_UNION_QUERY,\n} from '../app-router-headers'\nimport type { RequestHeaders } from './fetch-server-response'\n\n/**\n * Mutates the provided URL by adding a cache-busting search parameter for CDNs that don't\n * support custom headers. This helps avoid caching conflicts by making each request unique.\n *\n * Rather than relying on the Vary header which some CDNs ignore, we append a search param\n * to create a unique URL that forces a fresh request.\n *\n * Example:\n * URL before: https://example.com/path?query=1\n * URL after: https://example.com/path?query=1&_rsc=abc123\n *\n * Note: This function mutates the input URL directly and does not return anything.\n *\n * TODO: Since we need to use a search param anyway, we could simplify by removing the custom\n * headers approach entirely and just use search params.\n */\nexport const setCacheBustingSearchParam = (\n url: URL,\n headers: RequestHeaders\n): void => {\n const uniqueCacheKey = computeCacheBustingSearchParam(\n headers[NEXT_ROUTER_PREFETCH_HEADER],\n headers[NEXT_ROUTER_SEGMENT_PREFETCH_HEADER],\n headers[NEXT_ROUTER_STATE_TREE_HEADER],\n headers[NEXT_URL]\n )\n setCacheBustingSearchParamWithHash(url, uniqueCacheKey)\n}\n\n/**\n * Sets a cache-busting search parameter on a URL using a provided hash value.\n *\n * This function performs the same logic as `setCacheBustingSearchParam` but accepts\n * a pre-computed hash instead of computing it from headers.\n *\n * Example:\n * URL before: https://example.com/path?query=1\n * hash: \"abc123\"\n * URL after: https://example.com/path?query=1&_rsc=abc123\n *\n * If the hash is null, we will set `_rsc` search param without a value.\n * Like this: https://example.com/path?query=1&_rsc\n *\n * Note: This function mutates the input URL directly and does not return anything.\n */\nexport const setCacheBustingSearchParamWithHash = (\n url: URL,\n hash: string\n): void => {\n /**\n * Note that we intentionally do not use `url.searchParams.set` here:\n *\n * const url = new URL('https://example.com/search?q=custom%20spacing');\n * url.searchParams.set('_rsc', 'abc123');\n * console.log(url.toString()); // Outputs: https://example.com/search?q=custom+spacing&_rsc=abc123\n * ^ <--- this is causing confusion\n * This is in fact intended based on https://url.spec.whatwg.org/#interface-urlsearchparams, but\n * we want to preserve the %20 as %20 if that's what the user passed in, hence the custom\n * logic below.\n */\n const existingSearch = url.search\n const rawQuery = existingSearch.startsWith('?')\n ? existingSearch.slice(1)\n : existingSearch\n\n // Always remove any existing cache busting param and add a fresh one to ensure\n // we have the correct value based on current request headers\n const pairs = rawQuery\n .split('&')\n .filter((pair) => pair && !pair.startsWith(`${NEXT_RSC_UNION_QUERY}=`))\n\n if (hash.length > 0) {\n pairs.push(`${NEXT_RSC_UNION_QUERY}=${hash}`)\n } else {\n pairs.push(`${NEXT_RSC_UNION_QUERY}`)\n }\n url.search = pairs.length ? `?${pairs.join('&')}` : ''\n}\n","// This could also be a variable instead of a function, but some unit tests want to change the ID at\n// runtime. Even though that would never happen in a real deployment.\nexport function getDeploymentId(): string | undefined {\n return process.env.NEXT_DEPLOYMENT_ID\n}\n\nexport function getDeploymentIdQueryOrEmptyString(): string {\n let deploymentId = getDeploymentId()\n if (deploymentId) {\n return `?dpl=${deploymentId}`\n }\n return ''\n}\n","'use client'\n\n// TODO: Explicitly import from client.browser\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport {\n createFromReadableStream as createFromReadableStreamBrowser,\n createFromFetch as createFromFetchBrowser,\n} from 'react-server-dom-webpack/client'\n\nimport type {\n FlightRouterState,\n NavigationFlightResponse,\n} from '../../../shared/lib/app-router-types'\n\nimport {\n type NEXT_ROUTER_PREFETCH_HEADER,\n type NEXT_ROUTER_SEGMENT_PREFETCH_HEADER,\n NEXT_ROUTER_STATE_TREE_HEADER,\n NEXT_RSC_UNION_QUERY,\n NEXT_URL,\n RSC_HEADER,\n RSC_CONTENT_TYPE_HEADER,\n NEXT_HMR_REFRESH_HEADER,\n NEXT_DID_POSTPONE_HEADER,\n NEXT_ROUTER_STALE_TIME_HEADER,\n NEXT_HTML_REQUEST_ID_HEADER,\n NEXT_REQUEST_ID_HEADER,\n} from '../app-router-headers'\nimport { callServer } from '../../app-call-server'\nimport { findSourceMapURL } from '../../app-find-source-map-url'\nimport {\n normalizeFlightData,\n prepareFlightRouterStateForRequest,\n type NormalizedFlightData,\n} from '../../flight-data-helpers'\nimport { getAppBuildId } from '../../app-build-id'\nimport { setCacheBustingSearchParam } from './set-cache-busting-search-param'\nimport {\n getRenderedSearch,\n urlToUrlWithoutFlightMarker,\n} from '../../route-params'\nimport type { NormalizedSearch } from '../segment-cache/cache-key'\nimport { getDeploymentId } from '../../../shared/lib/deployment-id'\n\nconst createFromReadableStream =\n createFromReadableStreamBrowser as (typeof import('react-server-dom-webpack/client.browser'))['createFromReadableStream']\nconst createFromFetch =\n createFromFetchBrowser as (typeof import('react-server-dom-webpack/client.browser'))['createFromFetch']\n\nlet createDebugChannel:\n | typeof import('../../dev/debug-channel').createDebugChannel\n | undefined\n\nif (\n process.env.NODE_ENV !== 'production' &&\n process.env.__NEXT_REACT_DEBUG_CHANNEL\n) {\n createDebugChannel = (\n require('../../dev/debug-channel') as typeof import('../../dev/debug-channel')\n ).createDebugChannel\n}\n\nexport interface FetchServerResponseOptions {\n readonly flightRouterState: FlightRouterState\n readonly nextUrl: string | null\n readonly isHmrRefresh?: boolean\n}\n\ntype SpaFetchServerResponseResult = {\n flightData: NormalizedFlightData[]\n canonicalUrl: URL\n renderedSearch: NormalizedSearch\n couldBeIntercepted: boolean\n prerendered: boolean\n postponed: boolean\n staleTime: number\n debugInfo: Array | null\n}\n\ntype MpaFetchServerResponseResult = string\n\nexport type FetchServerResponseResult =\n | MpaFetchServerResponseResult\n | SpaFetchServerResponseResult\n\nexport type RequestHeaders = {\n [RSC_HEADER]?: '1'\n [NEXT_ROUTER_STATE_TREE_HEADER]?: string\n [NEXT_URL]?: string\n [NEXT_ROUTER_PREFETCH_HEADER]?: '1' | '2'\n [NEXT_ROUTER_SEGMENT_PREFETCH_HEADER]?: string\n 'x-deployment-id'?: string\n [NEXT_HMR_REFRESH_HEADER]?: '1'\n // A header that is only added in test mode to assert on fetch priority\n 'Next-Test-Fetch-Priority'?: RequestInit['priority']\n [NEXT_HTML_REQUEST_ID_HEADER]?: string // dev-only\n [NEXT_REQUEST_ID_HEADER]?: string // dev-only\n}\n\nfunction doMpaNavigation(url: string): FetchServerResponseResult {\n return urlToUrlWithoutFlightMarker(new URL(url, location.origin)).toString()\n}\n\nlet isPageUnloading = false\n\nif (typeof window !== 'undefined') {\n // Track when the page is unloading, e.g. due to reloading the page or\n // performing hard navigations. This allows us to suppress error logging when\n // the browser cancels in-flight requests during page unload.\n window.addEventListener('pagehide', () => {\n isPageUnloading = true\n })\n\n // Reset the flag on pageshow, e.g. when navigating back and the JavaScript\n // execution context is restored by the browser.\n window.addEventListener('pageshow', () => {\n isPageUnloading = false\n })\n}\n\n/**\n * Fetch the flight data for the provided url. Takes in the current router state\n * to decide what to render server-side.\n */\nexport async function fetchServerResponse(\n url: URL,\n options: FetchServerResponseOptions\n): Promise {\n const { flightRouterState, nextUrl } = options\n\n const headers: RequestHeaders = {\n // Enable flight response\n [RSC_HEADER]: '1',\n // Provide the current router state\n [NEXT_ROUTER_STATE_TREE_HEADER]: prepareFlightRouterStateForRequest(\n flightRouterState,\n options.isHmrRefresh\n ),\n }\n\n if (process.env.NODE_ENV === 'development' && options.isHmrRefresh) {\n headers[NEXT_HMR_REFRESH_HEADER] = '1'\n }\n\n if (nextUrl) {\n headers[NEXT_URL] = nextUrl\n }\n\n // In static export mode, we need to modify the URL to request the .txt file,\n // but we should preserve the original URL for the canonical URL and error handling.\n const originalUrl = url\n\n try {\n if (process.env.NODE_ENV === 'production') {\n if (process.env.__NEXT_CONFIG_OUTPUT === 'export') {\n // In \"output: export\" mode, we can't rely on headers to distinguish\n // between HTML and RSC requests. Instead, we append an extra prefix\n // to the request.\n url = new URL(url)\n if (url.pathname.endsWith('/')) {\n url.pathname += 'index.txt'\n } else {\n url.pathname += '.txt'\n }\n }\n }\n\n // Typically, during a navigation, we decode the response using Flight's\n // `createFromFetch` API, which accepts a `fetch` promise.\n // TODO: Remove this check once the old PPR flag is removed\n const isLegacyPPR =\n process.env.__NEXT_PPR && !process.env.__NEXT_CACHE_COMPONENTS\n const shouldImmediatelyDecode = !isLegacyPPR\n const res = await createFetch(\n url,\n headers,\n 'auto',\n shouldImmediatelyDecode\n )\n\n const responseUrl = urlToUrlWithoutFlightMarker(new URL(res.url))\n const canonicalUrl = res.redirected ? responseUrl : originalUrl\n\n const contentType = res.headers.get('content-type') || ''\n const interception = !!res.headers.get('vary')?.includes(NEXT_URL)\n const postponed = !!res.headers.get(NEXT_DID_POSTPONE_HEADER)\n const staleTimeHeaderSeconds = res.headers.get(\n NEXT_ROUTER_STALE_TIME_HEADER\n )\n const staleTime =\n staleTimeHeaderSeconds !== null\n ? parseInt(staleTimeHeaderSeconds, 10) * 1000\n : -1\n let isFlightResponse = contentType.startsWith(RSC_CONTENT_TYPE_HEADER)\n\n if (process.env.NODE_ENV === 'production') {\n if (process.env.__NEXT_CONFIG_OUTPUT === 'export') {\n if (!isFlightResponse) {\n isFlightResponse = contentType.startsWith('text/plain')\n }\n }\n }\n\n // If fetch returns something different than flight response handle it like a mpa navigation\n // If the fetch was not 200, we also handle it like a mpa navigation\n if (!isFlightResponse || !res.ok || !res.body) {\n // in case the original URL came with a hash, preserve it before redirecting to the new URL\n if (url.hash) {\n responseUrl.hash = url.hash\n }\n\n return doMpaNavigation(responseUrl.toString())\n }\n\n // We may navigate to a page that requires a different Webpack runtime.\n // In prod, every page will have the same Webpack runtime.\n // In dev, the Webpack runtime is minimal for each page.\n // We need to ensure the Webpack runtime is updated before executing client-side JS of the new page.\n // TODO: This needs to happen in the Flight Client.\n // Or Webpack needs to include the runtime update in the Flight response as\n // a blocking script.\n if (process.env.NODE_ENV !== 'production' && !process.env.TURBOPACK) {\n await (\n require('../../dev/hot-reloader/app/hot-reloader-app') as typeof import('../../dev/hot-reloader/app/hot-reloader-app')\n ).waitForWebpackRuntimeHotUpdate()\n }\n\n let flightResponsePromise = res.flightResponse\n if (flightResponsePromise === null) {\n // Typically, `createFetch` would have already started decoding the\n // Flight response. If it hasn't, though, we need to decode it now.\n // TODO: This should only be reachable if legacy PPR is enabled (i.e. PPR\n // without Cache Components). Remove this branch once legacy PPR\n // is deleted.\n const flightStream = postponed\n ? createUnclosingPrefetchStream(res.body)\n : res.body\n flightResponsePromise =\n createFromNextReadableStream(\n flightStream,\n headers\n )\n }\n\n const flightResponse = await flightResponsePromise\n\n if (getAppBuildId() !== flightResponse.b) {\n return doMpaNavigation(res.url)\n }\n\n const normalizedFlightData = normalizeFlightData(flightResponse.f)\n if (typeof normalizedFlightData === 'string') {\n return doMpaNavigation(normalizedFlightData)\n }\n\n return {\n flightData: normalizedFlightData,\n canonicalUrl: canonicalUrl,\n renderedSearch: getRenderedSearch(res),\n couldBeIntercepted: interception,\n prerendered: flightResponse.S,\n postponed,\n staleTime,\n debugInfo: flightResponsePromise._debugInfo ?? null,\n }\n } catch (err) {\n if (!isPageUnloading) {\n console.error(\n `Failed to fetch RSC payload for ${originalUrl}. Falling back to browser navigation.`,\n err\n )\n }\n\n // If fetch fails handle it like a mpa navigation\n // TODO-APP: Add a test for the case where a CORS request fails, e.g. external url redirect coming from the response.\n // See https://github.com/vercel/next.js/issues/43605#issuecomment-1451617521 for a reproduction.\n return originalUrl.toString()\n }\n}\n\n// This is a subset of the standard Response type. We use a custom type for\n// this so we can limit which details about the response leak into the rest of\n// the codebase. For example, there's some custom logic for manually following\n// redirects, so \"redirected\" in this type could be a composite of multiple\n// browser fetch calls; however, this fact should not leak to the caller.\nexport type RSCResponse = {\n ok: boolean\n redirected: boolean\n headers: Headers\n body: ReadableStream | null\n status: number\n url: string\n flightResponse: (Promise & { _debugInfo?: Array }) | null\n}\n\nexport async function createFetch(\n url: URL,\n headers: RequestHeaders,\n fetchPriority: 'auto' | 'high' | 'low' | null,\n shouldImmediatelyDecode: boolean,\n signal?: AbortSignal\n): Promise> {\n // TODO: In output: \"export\" mode, the headers do nothing. Omit them (and the\n // cache busting search param) from the request so they're\n // maximally cacheable.\n\n if (process.env.__NEXT_TEST_MODE && fetchPriority !== null) {\n headers['Next-Test-Fetch-Priority'] = fetchPriority\n }\n\n const deploymentId = getDeploymentId()\n if (deploymentId) {\n headers['x-deployment-id'] = deploymentId\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (self.__next_r) {\n headers[NEXT_HTML_REQUEST_ID_HEADER] = self.__next_r\n }\n\n // Create a new request ID for the server action request. The server uses\n // this to tag debug information sent via WebSocket to the client, which\n // then routes those chunks to the debug channel associated with this ID.\n headers[NEXT_REQUEST_ID_HEADER] = crypto\n .getRandomValues(new Uint32Array(1))[0]\n .toString(16)\n }\n\n const fetchOptions: RequestInit = {\n // Backwards compat for older browsers. `same-origin` is the default in modern browsers.\n credentials: 'same-origin',\n headers,\n priority: fetchPriority || undefined,\n signal,\n }\n // `fetchUrl` is slightly different from `url` because we add a cache-busting\n // search param to it. This should not leak outside of this function, so we\n // track them separately.\n let fetchUrl = new URL(url)\n setCacheBustingSearchParam(fetchUrl, headers)\n let fetchPromise = fetch(fetchUrl, fetchOptions)\n // Immediately pass the fetch promise to the Flight client so that the debug\n // info includes the latency from the client to the server. The internal timer\n // in React starts as soon as `createFromFetch` is called.\n //\n // The only case where we don't do this is during a prefetch, because we have\n // to do some extra processing of the response stream (see\n // `createUnclosingPrefetchStream`). But this is fine, because a top-level\n // prefetch response never blocks a navigation; if it hasn't already been\n // written into the cache by the time the navigation happens, the router will\n // go straight to a dynamic request.\n let flightResponsePromise = shouldImmediatelyDecode\n ? createFromNextFetch(fetchPromise, headers)\n : null\n let browserResponse = await fetchPromise\n\n // If the server responds with a redirect (e.g. 307), and the redirected\n // location does not contain the cache busting search param set in the\n // original request, the response is likely invalid — when following the\n // redirect, the browser forwards the request headers, but since the cache\n // busting search param is missing, the server will reject the request due to\n // a mismatch.\n //\n // Ideally, we would be able to intercept the redirect response and perform it\n // manually, instead of letting the browser automatically follow it, but this\n // is not allowed by the fetch API.\n //\n // So instead, we must \"replay\" the redirect by fetching the new location\n // again, but this time we'll append the cache busting search param to prevent\n // a mismatch.\n //\n // TODO: We can optimize Next.js's built-in middleware APIs by returning a\n // custom status code, to prevent the browser from automatically following it.\n //\n // This does not affect Server Action-based redirects; those are encoded\n // differently, as part of the Flight body. It only affects redirects that\n // occur in a middleware or a third-party proxy.\n\n let redirected = browserResponse.redirected\n if (process.env.__NEXT_CLIENT_VALIDATE_RSC_REQUEST_HEADERS) {\n // This is to prevent a redirect loop. Same limit used by Chrome.\n const MAX_REDIRECTS = 20\n for (let n = 0; n < MAX_REDIRECTS; n++) {\n if (!browserResponse.redirected) {\n // The server did not perform a redirect.\n break\n }\n const responseUrl = new URL(browserResponse.url, fetchUrl)\n if (responseUrl.origin !== fetchUrl.origin) {\n // The server redirected to an external URL. The rest of the logic below\n // is not relevant, because it only applies to internal redirects.\n break\n }\n if (\n responseUrl.searchParams.get(NEXT_RSC_UNION_QUERY) ===\n fetchUrl.searchParams.get(NEXT_RSC_UNION_QUERY)\n ) {\n // The redirected URL already includes the cache busting search param.\n // This was probably intentional. Regardless, there's no reason to\n // issue another request to this URL because it already has the param\n // value that we would have added below.\n break\n }\n // The RSC request was redirected. Assume the response is invalid.\n //\n // Append the cache busting search param to the redirected URL and\n // fetch again.\n // TODO: We should abort the previous request.\n fetchUrl = new URL(responseUrl)\n setCacheBustingSearchParam(fetchUrl, headers)\n fetchPromise = fetch(fetchUrl, fetchOptions)\n flightResponsePromise = shouldImmediatelyDecode\n ? createFromNextFetch(fetchPromise, headers)\n : null\n browserResponse = await fetchPromise\n // We just performed a manual redirect, so this is now true.\n redirected = true\n }\n }\n\n // Remove the cache busting search param from the response URL, to prevent it\n // from leaking outside of this function.\n const responseUrl = new URL(browserResponse.url, fetchUrl)\n responseUrl.searchParams.delete(NEXT_RSC_UNION_QUERY)\n\n const rscResponse: RSCResponse = {\n url: responseUrl.href,\n\n // This is true if any redirects occurred, either automatically by the\n // browser, or manually by us. So it's different from\n // `browserResponse.redirected`, which only tells us whether the browser\n // followed a redirect, and only for the last response in the chain.\n redirected,\n\n // These can be copied from the last browser response we received. We\n // intentionally only expose the subset of fields that are actually used\n // elsewhere in the codebase.\n ok: browserResponse.ok,\n headers: browserResponse.headers,\n body: browserResponse.body,\n status: browserResponse.status,\n\n // This is the exact promise returned by `createFromFetch`. It contains\n // debug information that we need to transfer to any derived promises that\n // are later rendered by React.\n flightResponse: flightResponsePromise,\n }\n\n return rscResponse\n}\n\nexport function createFromNextReadableStream(\n flightStream: ReadableStream,\n requestHeaders: RequestHeaders\n): Promise {\n return createFromReadableStream(flightStream, {\n callServer,\n findSourceMapURL,\n debugChannel: createDebugChannel && createDebugChannel(requestHeaders),\n })\n}\n\nfunction createFromNextFetch(\n promiseForResponse: Promise,\n requestHeaders: RequestHeaders\n): Promise & { _debugInfo?: Array } {\n return createFromFetch(promiseForResponse, {\n callServer,\n findSourceMapURL,\n debugChannel: createDebugChannel && createDebugChannel(requestHeaders),\n })\n}\n\nfunction createUnclosingPrefetchStream(\n originalFlightStream: ReadableStream\n): ReadableStream {\n // When PPR is enabled, prefetch streams may contain references that never\n // resolve, because that's how we encode dynamic data access. In the decoded\n // object returned by the Flight client, these are reified into hanging\n // promises that suspend during render, which is effectively what we want.\n // The UI resolves when it switches to the dynamic data stream\n // (via useDeferredValue(dynamic, static)).\n //\n // However, the Flight implementation currently errors if the server closes\n // the response before all the references are resolved. As a cheat to work\n // around this, we wrap the original stream in a new stream that never closes,\n // and therefore doesn't error.\n const reader = originalFlightStream.getReader()\n return new ReadableStream({\n async pull(controller) {\n while (true) {\n const { done, value } = await reader.read()\n if (!done) {\n // Pass to the target stream and keep consuming the Flight response\n // from the server.\n controller.enqueue(value)\n continue\n }\n // The server stream has closed. Exit, but intentionally do not close\n // the target stream.\n return\n }\n },\n })\n}\n","import { deleteMapEntry } from './cache-map'\nimport type { UnknownMapEntry } from './cache-map'\n\n// We use an LRU for memory management. We must update this whenever we add or\n// remove a new cache entry, or when an entry changes size.\n\nlet head: UnknownMapEntry | null = null\nlet didScheduleCleanup: boolean = false\nlet lruSize: number = 0\n\n// TODO: I chose the max size somewhat arbitrarily. Consider setting this based\n// on navigator.deviceMemory, or some other heuristic. We should make this\n// customizable via the Next.js config, too.\nconst maxLruSize = 50 * 1024 * 1024 // 50 MB\n\nexport function lruPut(node: UnknownMapEntry) {\n if (head === node) {\n // Already at the head\n return\n }\n const prev = node.prev\n const next = node.next\n if (next === null || prev === null) {\n // This is an insertion\n lruSize += node.size\n // Whenever we add an entry, we need to check if we've exceeded the\n // max size. We don't evict entries immediately; they're evicted later in\n // an asynchronous task.\n ensureCleanupIsScheduled()\n } else {\n // This is a move. Remove from its current position.\n prev.next = next\n next.prev = prev\n }\n\n // Move to the front of the list\n if (head === null) {\n // This is the first entry\n node.prev = node\n node.next = node\n } else {\n // Add to the front of the list\n const tail = head.prev\n node.prev = tail\n // In practice, this is never null, but that isn't encoded in the type\n if (tail !== null) {\n tail.next = node\n }\n node.next = head\n head.prev = node\n }\n head = node\n}\n\nexport function updateLruSize(node: UnknownMapEntry, newNodeSize: number) {\n // This is a separate function from `put` so that we can resize the entry\n // regardless of whether it's currently being tracked by the LRU.\n const prevNodeSize = node.size\n node.size = newNodeSize\n if (node.next === null) {\n // This entry is not currently being tracked by the LRU.\n return\n }\n // Update the total LRU size\n lruSize = lruSize - prevNodeSize + newNodeSize\n ensureCleanupIsScheduled()\n}\n\nexport function deleteFromLru(deleted: UnknownMapEntry) {\n const next = deleted.next\n const prev = deleted.prev\n if (next !== null && prev !== null) {\n lruSize -= deleted.size\n\n deleted.next = null\n deleted.prev = null\n\n // Remove from the list\n if (head === deleted) {\n // Update the head\n if (next === head) {\n // This was the last entry\n head = null\n } else {\n head = next\n prev.next = next\n next.prev = prev\n }\n } else {\n prev.next = next\n next.prev = prev\n }\n } else {\n // Already deleted\n }\n}\n\nfunction ensureCleanupIsScheduled() {\n if (didScheduleCleanup || lruSize <= maxLruSize) {\n return\n }\n didScheduleCleanup = true\n requestCleanupCallback(cleanup)\n}\n\nfunction cleanup() {\n didScheduleCleanup = false\n\n // Evict entries until we're at 90% capacity. We can assume this won't\n // infinite loop because even if `maxLruSize` were 0, eventually\n // `deleteFromLru` sets `head` to `null` when we run out entries.\n const ninetyPercentMax = maxLruSize * 0.9\n while (lruSize > ninetyPercentMax && head !== null) {\n const tail = head.prev\n // In practice, this is never null, but that isn't encoded in the type\n if (tail !== null) {\n // Delete the entry from the map. In turn, this will remove it from\n // the LRU.\n deleteMapEntry(tail)\n }\n }\n}\n\nconst requestCleanupCallback =\n typeof requestIdleCallback === 'function'\n ? requestIdleCallback\n : (cb: () => void) => setTimeout(cb, 0)\n","import type { VaryPath } from './vary-path'\nimport { lruPut, updateLruSize, deleteFromLru } from './lru'\n\n/**\n * A specialized data type for storing multi-key cache entries.\n *\n * The basic structure is a map whose keys are tuples, called the keypath.\n * When querying the cache, keypaths are compared per-element.\n *\n * Example:\n * set(map, ['https://localhost', 'foo/bar/baz'], 'yay');\n * get(map, ['https://localhost', 'foo/bar/baz']) -> 'yay'\n *\n * NOTE: Array syntax is used in these examples for illustration purposes, but\n * in reality the paths are lists.\n * \n * The parts of the keypath represent the different inputs that contribute\n * to the entry value. To illustrate, if you were to use this data type to store\n * HTTP responses, the keypath would include the URL and everything listed by\n * the Vary header.\n * \n * See vary-path.ts for more details.\n *\n * The order of elements in a keypath must be consistent between lookups to\n * be considered the same, but besides that, the order of the keys is not\n * semantically meaningful.\n *\n * Keypaths may include a special kind of key called Fallback. When an entry is\n * stored with Fallback as part of its keypath, it means that the entry does not\n * vary by that key. When querying the cache, if an exact match is not found for\n * a keypath, the cache will check for a Fallback match instead. Each element of\n * the keypath may have a Fallback, so retrieval is an O(n ^ 2) operation, but\n * it's expected that keypaths are relatively short.\n *\n * Example:\n * set(cacheMap, ['store', 'product', 1], PRODUCT_PAGE_1);\n * set(cacheMap, ['store', 'product', Fallback], GENERIC_PRODUCT_PAGE);\n *\n * // Exact match\n * get(cacheMap, ['store', 'product', 1]) -> PRODUCT_PAGE_1\n *\n * // Fallback match\n * get(cacheMap, ['store', 'product', 2]) -> GENERIC_PRODUCT_PAGE\n *\n * Because we have the Fallback mechanism, we can impose a constraint that\n * regular JS maps do not have: a value cannot be stored at multiple keypaths\n * simultaneously. These cases should be expressed with Fallback keys instead.\n *\n * Additionally, because values only exist at a single keypath at a time, we\n * can optimize successive lookups by caching the internal map entry on the\n * value itself, using the `ref` field. This is especially useful because it\n * lets us skip the O(n ^ 2) lookup that occurs when Fallback entries\n * are present.\n *\n\n * How to decide if stuff belongs in here, or in cache.ts?\n * -------------------------------------------------------\n * \n * Anything to do with retrival, lifetimes, or eviction needs to go in this\n * module because it affects the fallback algorithm. For example, when\n * performing a lookup, if an entry is stale, it needs to be treated as\n * semantically equivalent to if the entry was not present at all.\n * \n * If there's logic that's not related to the fallback algorithm, though, we\n * should prefer to put it in cache.ts.\n */\n\n// The protocol that values must implement. In practice, the only two types that\n// we ever actually deal with in this module are RouteCacheEntry and\n// SegmentCacheEntry; this is just to keep track of the coupling so we don't\n// leak concerns between the modules unnecessarily.\nexport interface MapValue {\n ref: UnknownMapEntry | null\n size: number\n staleAt: number\n version: number\n}\n\n/**\n * Represents a node in the cache map and LRU.\n * MapEntry structurally satisfies this interface for any V extends MapValue.\n *\n * The LRU can contain entries of different value types\n * (e.g., both RouteCacheEntry and SegmentCacheEntry). This interface captures\n * the common structure needed for cache map and LRU operations without\n * requiring knowledge of the specific value type.\n */\nexport interface MapEntry {\n // Cache map structure fields\n parent: MapEntry | null\n key: unknown\n map: Map> | null\n value: V | null\n\n // LRU linked list fields\n prev: MapEntry | null\n next: MapEntry | null\n size: number\n}\n\n/**\n * A looser type for MapEntry\n * This allows the LRU to work with entries of different\n * value types while still providing type safety.\n *\n * The `map` field lets Map> be assignable to this\n * type since we're only reading from the map, not inserting into it.\n */\nexport type UnknownMapEntry = {\n parent: UnknownMapEntry | null\n key: unknown\n map: Pick, 'get' | 'delete' | 'size'> | null\n value: MapValue | null\n\n prev: UnknownMapEntry | null\n next: UnknownMapEntry | null\n size: number\n}\n\n// The CacheMap type is just the root entry of the map.\nexport type CacheMap = MapEntry\n\nexport type FallbackType = { __brand: 'Fallback' }\nexport const Fallback = {} as FallbackType\n\n// This is a special internal key that is used for \"revalidation\" entries. It's\n// an implementation detail that shouldn't leak outside of this module.\nconst Revalidation = {}\n\nexport function createCacheMap(): CacheMap {\n const cacheMap: MapEntry = {\n parent: null,\n key: null,\n value: null,\n map: null,\n\n // LRU-related fields\n prev: null,\n next: null,\n size: 0,\n }\n return cacheMap\n}\n\nfunction getOrInitialize(\n cacheMap: CacheMap,\n keys: VaryPath,\n isRevalidation: boolean\n): MapEntry {\n // Go through each level of keys until we find the entry that matches, or\n // create a new entry if one doesn't exist.\n //\n // This function will only return entries that match the keypath _exactly_.\n // Unlike getWithFallback, it will not access fallback entries unless it's\n // explicitly part of the keypath.\n let entry = cacheMap\n let remainingKeys: VaryPath | null = keys\n let key: unknown | null = null\n while (true) {\n const previousKey = key\n if (remainingKeys !== null) {\n key = remainingKeys.value\n remainingKeys = remainingKeys.parent\n } else if (isRevalidation && previousKey !== Revalidation) {\n // During a revalidation, we append an internal \"Revalidation\" key to\n // the end of the keypath. The \"normal\" entry is its parent.\n\n // However, if the parent entry is currently empty, we don't need to store\n // this as a revalidation entry. Just insert the revalidation into the\n // normal slot.\n if (entry.value === null) {\n return entry\n }\n\n // Otheriwse, create a child entry.\n key = Revalidation\n } else {\n // There are no more keys. This is the terminal entry.\n break\n }\n\n let map = entry.map\n if (map !== null) {\n const existingEntry = map.get(key)\n if (existingEntry !== undefined) {\n // Found a match. Keep going.\n entry = existingEntry\n continue\n }\n } else {\n map = new Map()\n entry.map = map\n }\n // No entry exists yet at this level. Create a new one.\n const newEntry: MapEntry = {\n parent: entry,\n key,\n value: null,\n map: null,\n\n // LRU-related fields\n prev: null,\n next: null,\n size: 0,\n }\n map.set(key, newEntry)\n entry = newEntry\n }\n\n return entry\n}\n\nexport function getFromCacheMap(\n now: number,\n currentCacheVersion: number,\n rootEntry: CacheMap,\n keys: VaryPath,\n isRevalidation: boolean\n): V | null {\n const entry = getEntryWithFallbackImpl(\n now,\n currentCacheVersion,\n rootEntry,\n keys,\n isRevalidation,\n 0\n )\n if (entry === null || entry.value === null) {\n return null\n }\n // This is an LRU access. Move the entry to the front of the list.\n lruPut(entry)\n return entry.value\n}\n\nexport function isValueExpired(\n now: number,\n currentCacheVersion: number,\n value: MapValue\n): boolean {\n return value.staleAt <= now || value.version < currentCacheVersion\n}\n\nfunction lazilyEvictIfNeeded(\n now: number,\n currentCacheVersion: number,\n entry: MapEntry\n) {\n // We have a matching entry, but before we can return it, we need to check if\n // it's still fresh. Otherwise it should be treated the same as a cache miss.\n\n if (entry.value === null) {\n // This entry has no value, so there's nothing to evict.\n return entry\n }\n\n const value = entry.value\n if (isValueExpired(now, currentCacheVersion, value)) {\n // The value expired. Lazily evict it from the cache, and return null. This\n // is conceptually the same as a cache miss.\n deleteMapEntry(entry)\n return null\n }\n\n // The matched entry has not expired. Return it.\n return entry\n}\n\nfunction getEntryWithFallbackImpl(\n now: number,\n currentCacheVersion: number,\n entry: MapEntry,\n keys: VaryPath | null,\n isRevalidation: boolean,\n previousKey: unknown | null\n): MapEntry | null {\n // This is similar to getExactEntry, but if an exact match is not found for\n // a key, it will return the fallback entry instead. This is recursive at\n // every level, e.g. an entry with keypath [a, Fallback, c, Fallback] is\n // valid match for [a, b, c, d].\n //\n // It will return the most specific match available.\n let key\n let remainingKeys: VaryPath | null\n if (keys !== null) {\n key = keys.value\n remainingKeys = keys.parent\n } else if (isRevalidation && previousKey !== Revalidation) {\n // During a revalidation, we append an internal \"Revalidation\" key to\n // the end of the keypath.\n key = Revalidation\n remainingKeys = null\n } else {\n // There are no more keys. This is the terminal entry.\n\n // TODO: When performing a lookup during a navigation, as opposed to a\n // prefetch, we may want to skip entries that are Pending if there's also\n // a Fulfilled fallback entry. Tricky to say, though, since if it's\n // already pending, it's likely to stream in soon. Maybe we could do this\n // just on slow connections and offline mode.\n\n return lazilyEvictIfNeeded(now, currentCacheVersion, entry)\n }\n const map = entry.map\n if (map !== null) {\n const existingEntry = map.get(key)\n if (existingEntry !== undefined) {\n // Found an exact match for this key. Keep searching.\n const result = getEntryWithFallbackImpl(\n now,\n currentCacheVersion,\n existingEntry,\n remainingKeys,\n isRevalidation,\n key\n )\n if (result !== null) {\n return result\n }\n }\n // No match found for this key. Check if there's a fallback.\n const fallbackEntry = map.get(Fallback)\n if (fallbackEntry !== undefined) {\n // Found a fallback for this key. Keep searching.\n return getEntryWithFallbackImpl(\n now,\n currentCacheVersion,\n fallbackEntry,\n remainingKeys,\n isRevalidation,\n key\n )\n }\n }\n return null\n}\n\nexport function setInCacheMap(\n cacheMap: CacheMap,\n keys: VaryPath,\n value: V,\n isRevalidation: boolean\n): void {\n // Add a value to the map at the given keypath. If the value is already\n // part of the map, it's removed from its previous keypath. (NOTE: This is\n // unlike a regular JS map, but the behavior is intentional.)\n const entry = getOrInitialize(cacheMap, keys, isRevalidation)\n setMapEntryValue(entry, value)\n\n // This is an LRU access. Move the entry to the front of the list.\n lruPut(entry)\n updateLruSize(entry, value.size)\n}\n\nfunction setMapEntryValue(entry: UnknownMapEntry, value: MapValue): void {\n if (entry.value !== null) {\n // There's already a value at the given keypath. Disconnect the old value\n // from the map. We're not calling `deleteMapEntry` here because the\n // entry itself is still in the map. We just want to overwrite its value.\n dropRef(entry.value)\n entry.value = null\n }\n\n // This value may already be in the map at a different keypath.\n // Grab a reference before we overwrite it.\n const oldEntry = value.ref\n\n entry.value = value\n value.ref = entry\n\n updateLruSize(entry, value.size)\n\n if (oldEntry !== null && oldEntry !== entry && oldEntry.value === value) {\n // This value is already in the map at a different keypath in the map.\n // Values only exist at a single keypath at a time. Remove it from the\n // previous keypath.\n //\n // Note that only the internal map entry is garbage collected; we don't\n // call `dropRef` here because it's still in the map, just\n // at a new keypath (the one we just set, above).\n deleteMapEntry(oldEntry)\n }\n}\n\nexport function deleteFromCacheMap(value: MapValue): void {\n const entry = value.ref\n if (entry === null) {\n // This value is not a member of any map.\n return\n }\n\n dropRef(value)\n deleteMapEntry(entry)\n}\n\nfunction dropRef(value: MapValue): void {\n // Drop the value from the map by setting its `ref` backpointer to\n // null. This is a separate operation from `deleteMapEntry` because when\n // re-keying a value we need to be able to delete the old, internal map\n // entry without garbage collecting the value itself.\n value.ref = null\n}\n\nexport function deleteMapEntry(entry: UnknownMapEntry): void {\n // Delete the entry from the cache.\n entry.value = null\n\n deleteFromLru(entry)\n\n // Check if we can garbage collect the entry.\n const map = entry.map\n if (map === null) {\n // Since this entry has no value, and also no child entries, we can\n // garbage collect it. Remove it from its parent, and keep garbage\n // collecting the parents until we reach a non-empty entry.\n let parent = entry.parent\n let key = entry.key\n while (parent !== null) {\n const parentMap = parent.map\n if (parentMap !== null) {\n parentMap.delete(key)\n if (parentMap.size === 0) {\n // We just removed the last entry in the parent map.\n parent.map = null\n if (parent.value === null) {\n // The parent node has no child entries, nor does it have a value\n // on itself. It can be garbage collected. Keep going.\n key = parent.key\n parent = parent.parent\n continue\n }\n }\n }\n // The parent is not empty. Stop garbage collecting.\n break\n }\n } else {\n // Check if there's a revalidating entry. If so, promote it to a\n // \"normal\" entry, since the normal one was just deleted.\n const revalidatingEntry = map.get(Revalidation)\n if (revalidatingEntry !== undefined && revalidatingEntry.value !== null) {\n setMapEntryValue(entry, revalidatingEntry.value)\n }\n }\n}\n\nexport function setSizeInCacheMap(\n value: V,\n size: number\n): void {\n const entry = value.ref\n if (entry === null) {\n // This value is not a member of any map.\n return\n }\n // Except during initialization (when the size is set to 0), this is the only\n // place the `size` field should be updated, to ensure it's in sync with the\n // the LRU.\n value.size = size\n updateLruSize(entry, size)\n}\n","import { FetchStrategy } from './types'\nimport type {\n NormalizedPathname,\n NormalizedSearch,\n NormalizedNextUrl,\n} from './cache-key'\nimport type { RouteTree } from './cache'\nimport { Fallback, type FallbackType } from './cache-map'\nimport { HEAD_REQUEST_KEY } from '../../../shared/lib/segment-cache/segment-value-encoding'\n\ntype Opaque = T & { __brand: K }\n\n/**\n * A linked-list of all the params (or other param-like) inputs that a cache\n * entry may vary by. This is used by the CacheMap module to reuse cache entries\n * across different param values. If a param has a value of Fallback, it means\n * the cache entry is reusable for all possible values of that param. See\n * cache-map.ts for details.\n *\n * A segment's vary path is a pure function of a segment's position in a\n * particular route tree and the (post-rewrite) URL that is being queried. More\n * concretely, successive queries of the cache for the same segment always use\n * the same vary path.\n *\n * A route's vary path is simpler: it's comprised of the pathname, search\n * string, and Next-URL header.\n */\nexport type VaryPath = {\n value: string | null | FallbackType\n parent: VaryPath | null\n}\n\n// Because it's so important for vary paths to line up across cache accesses,\n// we use opaque type aliases to ensure these are only created within\n// this module.\n\n// requestKey -> searchParams -> nextUrl\nexport type RouteVaryPath = Opaque<\n {\n value: NormalizedPathname\n parent: {\n value: NormalizedSearch\n parent: {\n value: NormalizedNextUrl | null | FallbackType\n parent: null\n }\n }\n },\n 'RouteVaryPath'\n>\n\n// requestKey -> pathParams\nexport type LayoutVaryPath = Opaque<\n {\n value: string\n parent: PartialSegmentVaryPath | null\n },\n 'LayoutVaryPath'\n>\n\n// requestKey -> searchParams -> pathParams\nexport type PageVaryPath = Opaque<\n {\n value: string\n parent: {\n value: NormalizedSearch | FallbackType\n parent: PartialSegmentVaryPath | null\n }\n },\n 'PageVaryPath'\n>\n\nexport type SegmentVaryPath = LayoutVaryPath | PageVaryPath\n\n// Intermediate type used when building a vary path during a recursive traversal\n// of the route tree.\nexport type PartialSegmentVaryPath = Opaque\n\nexport function getRouteVaryPath(\n pathname: NormalizedPathname,\n search: NormalizedSearch,\n nextUrl: NormalizedNextUrl | null\n): RouteVaryPath {\n // requestKey -> searchParams -> nextUrl\n const varyPath: VaryPath = {\n value: pathname,\n parent: {\n value: search,\n parent: {\n value: nextUrl,\n parent: null,\n },\n },\n }\n return varyPath as RouteVaryPath\n}\n\nexport function getFulfilledRouteVaryPath(\n pathname: NormalizedPathname,\n search: NormalizedSearch,\n nextUrl: NormalizedNextUrl | null,\n couldBeIntercepted: boolean\n): RouteVaryPath {\n // This is called when a route's data is fulfilled. The cache entry will be\n // re-keyed based on which inputs the response varies by.\n // requestKey -> searchParams -> nextUrl\n const varyPath: VaryPath = {\n value: pathname,\n parent: {\n value: search,\n parent: {\n value: couldBeIntercepted ? nextUrl : Fallback,\n parent: null,\n },\n },\n }\n return varyPath as RouteVaryPath\n}\n\nexport function appendLayoutVaryPath(\n parentPath: PartialSegmentVaryPath | null,\n cacheKey: string\n): PartialSegmentVaryPath {\n const varyPathPart: VaryPath = {\n value: cacheKey,\n parent: parentPath,\n }\n return varyPathPart as PartialSegmentVaryPath\n}\n\nexport function finalizeLayoutVaryPath(\n requestKey: string,\n varyPath: PartialSegmentVaryPath | null\n): LayoutVaryPath {\n const layoutVaryPath: VaryPath = {\n value: requestKey,\n parent: varyPath,\n }\n return layoutVaryPath as LayoutVaryPath\n}\n\nexport function finalizePageVaryPath(\n requestKey: string,\n renderedSearch: NormalizedSearch,\n varyPath: PartialSegmentVaryPath | null\n): PageVaryPath {\n // Unlike layouts, a page segment's vary path also includes the search string.\n // requestKey -> searchParams -> pathParams\n const pageVaryPath: VaryPath = {\n value: requestKey,\n parent: {\n value: renderedSearch,\n parent: varyPath,\n },\n }\n return pageVaryPath as PageVaryPath\n}\n\nexport function finalizeMetadataVaryPath(\n pageRequestKey: string,\n renderedSearch: NormalizedSearch,\n varyPath: PartialSegmentVaryPath | null\n): PageVaryPath {\n // The metadata \"segment\" is not a real segment because it doesn't exist in\n // the normal structure of the route tree, but in terms of caching, it\n // behaves like a page segment because it varies by all the same params as\n // a page.\n //\n // To keep the protocol for querying the server simple, the request key for\n // the metadata does not include any path information. It's unnecessary from\n // the server's perspective, because unlike page segments, there's only one\n // metadata response per URL, i.e. there's no need to distinguish multiple\n // parallel pages.\n //\n // However, this means the metadata request key is insufficient for\n // caching the the metadata in the client cache, because on the client we\n // use the request key to distinguish the metadata entry from all other\n // page's metadata entries.\n //\n // So instead we create a simulated request key based on the page segment.\n // Conceptually this is equivalent to the request key the server would have\n // assigned the metadata segment if it treated it as part of the actual\n // route structure.\n\n // If there are multiple parallel pages, we use whichever is the first one.\n // This is fine because the only difference between request keys for\n // different parallel pages are things like route groups and parallel\n // route slots. As long as it's always the same one, it doesn't matter.\n const pageVaryPath: VaryPath = {\n // Append the actual metadata request key to the page request key. Note\n // that we're not using a separate vary path part; it's unnecessary because\n // these are not conceptually separate inputs.\n value: pageRequestKey + HEAD_REQUEST_KEY,\n parent: {\n value: renderedSearch,\n parent: varyPath,\n },\n }\n return pageVaryPath as PageVaryPath\n}\n\nexport function getSegmentVaryPathForRequest(\n fetchStrategy: FetchStrategy,\n tree: RouteTree\n): SegmentVaryPath {\n // This is used for storing pending requests in the cache. We want to choose\n // the most generic vary path based on the strategy used to fetch it, i.e.\n // static/PPR versus runtime prefetching, so that it can be reused as much\n // as possible.\n //\n // We may be able to re-key the response to something even more generic once\n // we receive it — for example, if the server tells us that the response\n // doesn't vary on a particular param — but even before we send the request,\n // we know some params are reusable based on the fetch strategy alone. For\n // example, a static prefetch will never vary on search params.\n //\n // The original vary path with all the params filled in is stored on the\n // route tree object. We will clone this one to create a new vary path\n // where certain params are replaced with Fallback.\n //\n // This result of this function is not stored anywhere. It's only used to\n // access the cache a single time.\n //\n // TODO: Rather than create a new list object just to access the cache, the\n // plan is to add the concept of a \"vary mask\". This will represent all the\n // params that can be treated as Fallback. (Or perhaps the inverse.)\n const originalVaryPath = tree.varyPath\n\n // Only page segments (and the special \"metadata\" segment, which is treated\n // like a page segment for the purposes of caching) may contain search\n // params. There's no reason to include them in the vary path otherwise.\n if (tree.isPage) {\n // Only a runtime prefetch will include search params in the vary path.\n // Static prefetches never include search params, so they can be reused\n // across all possible search param values.\n const doesVaryOnSearchParams =\n fetchStrategy === FetchStrategy.Full ||\n fetchStrategy === FetchStrategy.PPRRuntime\n\n if (!doesVaryOnSearchParams) {\n // The response from the the server will not vary on search params. Clone\n // the end of the original vary path to replace the search params\n // with Fallback.\n //\n // requestKey -> searchParams -> pathParams\n // ^ This part gets replaced with Fallback\n const searchParamsVaryPath = (originalVaryPath as PageVaryPath).parent\n const pathParamsVaryPath = searchParamsVaryPath.parent\n const patchedVaryPath: VaryPath = {\n value: originalVaryPath.value,\n parent: {\n value: Fallback,\n parent: pathParamsVaryPath,\n },\n }\n return patchedVaryPath as SegmentVaryPath\n }\n }\n\n // The request does vary on search params. We don't need to modify anything.\n return originalVaryPath as SegmentVaryPath\n}\n\nexport function clonePageVaryPathWithNewSearchParams(\n originalVaryPath: PageVaryPath,\n newSearch: NormalizedSearch\n): PageVaryPath {\n // requestKey -> searchParams -> pathParams\n // ^ This part gets replaced with newSearch\n const searchParamsVaryPath = originalVaryPath.parent\n const clonedVaryPath: VaryPath = {\n value: originalVaryPath.value,\n parent: {\n value: newSearch,\n parent: searchParamsVaryPath.parent,\n },\n }\n return clonedVaryPath as PageVaryPath\n}\n","/**\n * For a given page path, this function ensures that there is a leading slash.\n * If there is not a leading slash, one is added, otherwise it is noop.\n */\nexport function ensureLeadingSlash(path: string) {\n return path.startsWith('/') ? path : `/${path}`\n}\n","import { ensureLeadingSlash } from '../../page-path/ensure-leading-slash'\nimport { isGroupSegment } from '../../segment'\n\n/**\n * Normalizes an app route so it represents the actual request path. Essentially\n * performing the following transformations:\n *\n * - `/(dashboard)/user/[id]/page` to `/user/[id]`\n * - `/(dashboard)/account/page` to `/account`\n * - `/user/[id]/page` to `/user/[id]`\n * - `/account/page` to `/account`\n * - `/page` to `/`\n * - `/(dashboard)/user/[id]/route` to `/user/[id]`\n * - `/(dashboard)/account/route` to `/account`\n * - `/user/[id]/route` to `/user/[id]`\n * - `/account/route` to `/account`\n * - `/route` to `/`\n * - `/` to `/`\n *\n * @param route the app route to normalize\n * @returns the normalized pathname\n */\nexport function normalizeAppPath(route: string) {\n return ensureLeadingSlash(\n route.split('/').reduce((pathname, segment, index, segments) => {\n // Empty segments are ignored.\n if (!segment) {\n return pathname\n }\n\n // Groups are ignored.\n if (isGroupSegment(segment)) {\n return pathname\n }\n\n // Parallel segments are ignored.\n if (segment[0] === '@') {\n return pathname\n }\n\n // The last segment (if it's a leaf) should be ignored.\n if (\n (segment === 'page' || segment === 'route') &&\n index === segments.length - 1\n ) {\n return pathname\n }\n\n return `${pathname}/${segment}`\n }, '')\n )\n}\n\n/**\n * Strips the `.rsc` extension if it's in the pathname.\n * Since this function is used on full urls it checks `?` for searchParams handling.\n */\nexport function normalizeRscURL(url: string) {\n return url.replace(\n /\\.rsc($|\\?)/,\n // $1 ensures `?` is preserved\n '$1'\n )\n}\n","import { normalizeAppPath } from './app-paths'\n\n// order matters here, the first match will be used\nexport const INTERCEPTION_ROUTE_MARKERS = [\n '(..)(..)',\n '(.)',\n '(..)',\n '(...)',\n] as const\n\nexport type InterceptionMarker = (typeof INTERCEPTION_ROUTE_MARKERS)[number]\n\nexport function isInterceptionRouteAppPath(path: string): boolean {\n // TODO-APP: add more serious validation\n return (\n path\n .split('/')\n .find((segment) =>\n INTERCEPTION_ROUTE_MARKERS.find((m) => segment.startsWith(m))\n ) !== undefined\n )\n}\n\ntype InterceptionRouteInformation = {\n /**\n * The intercepting route. This is the route that is being intercepted or the\n * route that the user was coming from. This is matched by the Next-Url\n * header.\n */\n interceptingRoute: string\n\n /**\n * The intercepted route. This is the route that is being intercepted or the\n * route that the user is going to. This is matched by the request pathname.\n */\n interceptedRoute: string\n}\n\nexport function extractInterceptionRouteInformation(\n path: string\n): InterceptionRouteInformation {\n let interceptingRoute: string | undefined\n let marker: (typeof INTERCEPTION_ROUTE_MARKERS)[number] | undefined\n let interceptedRoute: string | undefined\n\n for (const segment of path.split('/')) {\n marker = INTERCEPTION_ROUTE_MARKERS.find((m) => segment.startsWith(m))\n if (marker) {\n ;[interceptingRoute, interceptedRoute] = path.split(marker, 2)\n break\n }\n }\n\n if (!interceptingRoute || !marker || !interceptedRoute) {\n throw new Error(\n `Invalid interception route: ${path}. Must be in the format //(..|...|..)(..)/`\n )\n }\n\n interceptingRoute = normalizeAppPath(interceptingRoute) // normalize the path, e.g. /(blog)/feed -> /feed\n\n switch (marker) {\n case '(.)':\n // (.) indicates that we should match with sibling routes, so we just need to append the intercepted route to the intercepting route\n if (interceptingRoute === '/') {\n interceptedRoute = `/${interceptedRoute}`\n } else {\n interceptedRoute = interceptingRoute + '/' + interceptedRoute\n }\n break\n case '(..)':\n // (..) indicates that we should match at one level up, so we need to remove the last segment of the intercepting route\n if (interceptingRoute === '/') {\n throw new Error(\n `Invalid interception route: ${path}. Cannot use (..) marker at the root level, use (.) instead.`\n )\n }\n interceptedRoute = interceptingRoute\n .split('/')\n .slice(0, -1)\n .concat(interceptedRoute)\n .join('/')\n break\n case '(...)':\n // (...) will match the route segment in the root directory, so we need to use the root directory to prepend the intercepted route\n interceptedRoute = '/' + interceptedRoute\n break\n case '(..)(..)':\n // (..)(..) indicates that we should match at two levels up, so we need to remove the last two segments of the intercepting route\n\n const splitInterceptingRoute = interceptingRoute.split('/')\n if (splitInterceptingRoute.length <= 2) {\n throw new Error(\n `Invalid interception route: ${path}. Cannot use (..)(..) marker at the root level or one level up.`\n )\n }\n\n interceptedRoute = splitInterceptingRoute\n .slice(0, -2)\n .concat(interceptedRoute)\n .join('/')\n break\n default:\n throw new Error('Invariant: unexpected marker')\n }\n\n return { interceptingRoute, interceptedRoute }\n}\n","import type {\n FlightRouterState,\n Segment,\n} from '../../../shared/lib/app-router-types'\nimport { INTERCEPTION_ROUTE_MARKERS } from '../../../shared/lib/router/utils/interception-routes'\nimport type { Params } from '../../../server/request/params'\nimport {\n isGroupSegment,\n DEFAULT_SEGMENT_KEY,\n PAGE_SEGMENT_KEY,\n} from '../../../shared/lib/segment'\nimport { matchSegment } from '../match-segments'\n\nconst removeLeadingSlash = (segment: string): string => {\n return segment[0] === '/' ? segment.slice(1) : segment\n}\n\nconst segmentToPathname = (segment: Segment): string => {\n if (typeof segment === 'string') {\n // 'children' is not a valid path -- it's technically a parallel route that corresponds with the current segment's page\n // if we don't skip it, then the computed pathname might be something like `/children` which doesn't make sense.\n if (segment === 'children') return ''\n\n return segment\n }\n\n return segment[1]\n}\n\nfunction normalizeSegments(segments: string[]): string {\n return (\n segments.reduce((acc, segment) => {\n segment = removeLeadingSlash(segment)\n if (segment === '' || isGroupSegment(segment)) {\n return acc\n }\n\n return `${acc}/${segment}`\n }, '') || '/'\n )\n}\n\nexport function extractPathFromFlightRouterState(\n flightRouterState: FlightRouterState\n): string | undefined {\n const segment = Array.isArray(flightRouterState[0])\n ? flightRouterState[0][1]\n : flightRouterState[0]\n\n if (\n segment === DEFAULT_SEGMENT_KEY ||\n INTERCEPTION_ROUTE_MARKERS.some((m) => segment.startsWith(m))\n )\n return undefined\n\n if (segment.startsWith(PAGE_SEGMENT_KEY)) return ''\n\n const segments = [segmentToPathname(segment)]\n const parallelRoutes = flightRouterState[1] ?? {}\n\n const childrenPath = parallelRoutes.children\n ? extractPathFromFlightRouterState(parallelRoutes.children)\n : undefined\n\n if (childrenPath !== undefined) {\n segments.push(childrenPath)\n } else {\n for (const [key, value] of Object.entries(parallelRoutes)) {\n if (key === 'children') continue\n\n const childPath = extractPathFromFlightRouterState(value)\n\n if (childPath !== undefined) {\n segments.push(childPath)\n }\n }\n }\n\n return normalizeSegments(segments)\n}\n\nfunction computeChangedPathImpl(\n treeA: FlightRouterState,\n treeB: FlightRouterState\n): string | null {\n const [segmentA, parallelRoutesA] = treeA\n const [segmentB, parallelRoutesB] = treeB\n\n const normalizedSegmentA = segmentToPathname(segmentA)\n const normalizedSegmentB = segmentToPathname(segmentB)\n\n if (\n INTERCEPTION_ROUTE_MARKERS.some(\n (m) =>\n normalizedSegmentA.startsWith(m) || normalizedSegmentB.startsWith(m)\n )\n ) {\n return ''\n }\n\n if (!matchSegment(segmentA, segmentB)) {\n // once we find where the tree changed, we compute the rest of the path by traversing the tree\n return extractPathFromFlightRouterState(treeB) ?? ''\n }\n\n for (const parallelRouterKey in parallelRoutesA) {\n if (parallelRoutesB[parallelRouterKey]) {\n const changedPath = computeChangedPathImpl(\n parallelRoutesA[parallelRouterKey],\n parallelRoutesB[parallelRouterKey]\n )\n if (changedPath !== null) {\n return `${segmentToPathname(segmentB)}/${changedPath}`\n }\n }\n }\n\n return null\n}\n\nexport function computeChangedPath(\n treeA: FlightRouterState,\n treeB: FlightRouterState\n): string | null {\n const changedPath = computeChangedPathImpl(treeA, treeB)\n\n if (changedPath == null || changedPath === '/') {\n return changedPath\n }\n\n // lightweight normalization to remove route groups\n return normalizeSegments(changedPath.split('/'))\n}\n\n/**\n * Recursively extracts dynamic parameters from FlightRouterState.\n */\nexport function getSelectedParams(\n currentTree: FlightRouterState,\n params: Params = {}\n): Params {\n const parallelRoutes = currentTree[1]\n\n for (const parallelRoute of Object.values(parallelRoutes)) {\n const segment = parallelRoute[0]\n const isDynamicParameter = Array.isArray(segment)\n const segmentValue = isDynamicParameter ? segment[1] : segment\n if (!segmentValue || segmentValue.startsWith(PAGE_SEGMENT_KEY)) continue\n\n // Ensure catchAll and optional catchall are turned into an array\n const isCatchAll =\n isDynamicParameter && (segment[2] === 'c' || segment[2] === 'oc')\n\n if (isCatchAll) {\n params[segment[0]] = segment[1].split('/')\n } else if (isDynamicParameter) {\n params[segment[0]] = segment[1]\n }\n\n params = getSelectedParams(parallelRoute, params)\n }\n\n return params\n}\n","import { computeChangedPath } from './compute-changed-path'\nimport type {\n Mutable,\n ReadonlyReducerState,\n ReducerState,\n} from './router-reducer-types'\n\nfunction isNotUndefined(value: T): value is Exclude {\n return typeof value !== 'undefined'\n}\n\nexport function handleMutable(\n state: ReadonlyReducerState,\n mutable: Mutable\n): ReducerState {\n // shouldScroll is true by default, can override to false.\n const shouldScroll = mutable.shouldScroll ?? true\n\n let previousNextUrl = state.previousNextUrl\n let nextUrl = state.nextUrl\n\n if (isNotUndefined(mutable.patchedTree)) {\n // If we received a patched tree, we need to compute the changed path.\n const changedPath = computeChangedPath(state.tree, mutable.patchedTree)\n if (changedPath) {\n // If the tree changed, we need to update the nextUrl\n previousNextUrl = nextUrl\n nextUrl = changedPath\n } else if (!nextUrl) {\n // if the tree ends up being the same (ie, no changed path), and we don't have a nextUrl, then we should use the canonicalUrl\n nextUrl = state.canonicalUrl\n }\n // otherwise this will be a no-op and continue to use the existing nextUrl\n }\n\n return {\n // Set href.\n canonicalUrl: mutable.canonicalUrl ?? state.canonicalUrl,\n renderedSearch: mutable.renderedSearch ?? state.renderedSearch,\n pushRef: {\n pendingPush: isNotUndefined(mutable.pendingPush)\n ? mutable.pendingPush\n : state.pushRef.pendingPush,\n mpaNavigation: isNotUndefined(mutable.mpaNavigation)\n ? mutable.mpaNavigation\n : state.pushRef.mpaNavigation,\n preserveCustomHistoryState: isNotUndefined(\n mutable.preserveCustomHistoryState\n )\n ? mutable.preserveCustomHistoryState\n : state.pushRef.preserveCustomHistoryState,\n },\n // All navigation requires scroll and focus management to trigger.\n focusAndScrollRef: {\n apply: shouldScroll\n ? isNotUndefined(mutable?.scrollableSegments)\n ? true\n : state.focusAndScrollRef.apply\n : // If shouldScroll is false then we should not apply scroll and focus management.\n false,\n onlyHashChange: mutable.onlyHashChange || false,\n hashFragment: shouldScroll\n ? // Empty hash should trigger default behavior of scrolling layout into view.\n // #top is handled in layout-router.\n mutable.hashFragment && mutable.hashFragment !== ''\n ? // Remove leading # and decode hash to make non-latin hashes work.\n decodeURIComponent(mutable.hashFragment.slice(1))\n : state.focusAndScrollRef.hashFragment\n : // If shouldScroll is false then we should not apply scroll and focus management.\n null,\n segmentPaths: shouldScroll\n ? (mutable?.scrollableSegments ?? state.focusAndScrollRef.segmentPaths)\n : // If shouldScroll is false then we should not apply scroll and focus management.\n [],\n },\n // Apply cache.\n cache: mutable.cache ? mutable.cache : state.cache,\n // Apply patched router state.\n tree: isNotUndefined(mutable.patchedTree)\n ? mutable.patchedTree\n : state.tree,\n nextUrl,\n previousNextUrl: previousNextUrl,\n debugInfo: mutable.collectedDebugInfo ?? null,\n }\n}\n","import type { Segment } from '../../../shared/lib/app-router-types'\nimport { PAGE_SEGMENT_KEY } from '../../../shared/lib/segment'\n\nexport function createRouterCacheKey(\n segment: Segment,\n withoutSearchParameters: boolean = false\n) {\n // if the segment is an array, it means it's a dynamic segment\n // for example, ['lang', 'en', 'd']. We need to convert it to a string to store it as a cache node key.\n if (Array.isArray(segment)) {\n return `${segment[0]}|${segment[1]}|${segment[2]}`\n }\n\n // Page segments might have search parameters, ie __PAGE__?foo=bar\n // When `withoutSearchParameters` is true, we only want to return the page segment\n if (withoutSearchParameters && segment.startsWith(PAGE_SEGMENT_KEY)) {\n return PAGE_SEGMENT_KEY\n }\n\n return segment\n}\n","import type { FlightRouterState } from '../../../shared/lib/app-router-types'\n\nexport function isNavigatingToNewRootLayout(\n currentTree: FlightRouterState,\n nextTree: FlightRouterState\n): boolean {\n // Compare segments\n const currentTreeSegment = currentTree[0]\n const nextTreeSegment = nextTree[0]\n\n // If any segment is different before we find the root layout, the root layout has changed.\n // E.g. /same/(group1)/layout.js -> /same/(group2)/layout.js\n // First segment is 'same' for both, keep looking. (group1) changed to (group2) before the root layout was found, it must have changed.\n if (Array.isArray(currentTreeSegment) && Array.isArray(nextTreeSegment)) {\n // Compare dynamic param name and type but ignore the value, different values would not affect the current root layout\n // /[name] - /slug1 and /slug2, both values (slug1 & slug2) still has the same layout /[name]/layout.js\n if (\n currentTreeSegment[0] !== nextTreeSegment[0] ||\n currentTreeSegment[2] !== nextTreeSegment[2]\n ) {\n return true\n }\n } else if (currentTreeSegment !== nextTreeSegment) {\n return true\n }\n\n // Current tree root layout found\n if (currentTree[4]) {\n // If the next tree doesn't have the root layout flag, it must have changed.\n return !nextTree[4]\n }\n // Current tree didn't have its root layout here, must have changed.\n if (nextTree[4]) {\n return true\n }\n // We can't assume it's `parallelRoutes.children` here in case the root layout is `app/@something/layout.js`\n // But it's not possible to be more than one parallelRoutes before the root layout is found\n // TODO-APP: change to traverse all parallel routes\n const currentTreeChild = Object.values(currentTree[1])[0]\n const nextTreeChild = Object.values(nextTree[1])[0]\n if (!currentTreeChild || !nextTreeChild) return true\n return isNavigatingToNewRootLayout(currentTreeChild, nextTreeChild)\n}\n","import type {\n CacheNodeSeedData,\n FlightRouterState,\n FlightSegmentPath,\n} from '../../../shared/lib/app-router-types'\nimport type {\n ChildSegmentMap,\n CacheNode,\n} from '../../../shared/lib/app-router-types'\nimport type {\n HeadData,\n LoadingModuleData,\n} from '../../../shared/lib/app-router-types'\nimport {\n DEFAULT_SEGMENT_KEY,\n NOT_FOUND_SEGMENT_KEY,\n} from '../../../shared/lib/segment'\nimport { matchSegment } from '../match-segments'\nimport { createHrefFromUrl } from './create-href-from-url'\nimport { createRouterCacheKey } from './create-router-cache-key'\nimport { fetchServerResponse } from './fetch-server-response'\nimport { dispatchAppRouterAction } from '../use-action-queue'\nimport {\n ACTION_SERVER_PATCH,\n type ServerPatchAction,\n} from './router-reducer-types'\nimport { isNavigatingToNewRootLayout } from './is-navigating-to-new-root-layout'\nimport { DYNAMIC_STALETIME_MS } from './reducers/navigate-reducer'\nimport {\n convertServerPatchToFullTree,\n type NavigationSeed,\n} from '../segment-cache/navigation'\n\n// This is yet another tree type that is used to track pending promises that\n// need to be fulfilled once the dynamic data is received. The terminal nodes of\n// this tree represent the new Cache Node trees that were created during this\n// request. We can't use the Cache Node tree or Route State tree directly\n// because those include reused nodes, too. This tree is discarded as soon as\n// the navigation response is received.\nexport type NavigationTask = {\n status: NavigationTaskStatus\n // The router state that corresponds to the tree that this Task represents.\n route: FlightRouterState\n // The CacheNode that corresponds to the tree that this Task represents.\n node: CacheNode\n // The tree sent to the server during the dynamic request. If all the segments\n // are static, then this will be null, and no server request is required.\n // Otherwise, this is the same as `route`, except with the `refetch` marker\n // set on the top-most segment that needs to be fetched.\n dynamicRequestTree: FlightRouterState | null\n // The URL that should be used to fetch the dynamic data. This is only set\n // when the segment cannot be refetched from the current route, because it's\n // part of a \"default\" parallel slot that was reused during a navigation.\n refreshUrl: string | null\n children: Map | null\n}\n\nexport const enum FreshnessPolicy {\n Default,\n Hydration,\n HistoryTraversal,\n RefreshAll,\n HMRRefresh,\n}\n\nconst enum NavigationTaskStatus {\n Pending,\n Fulfilled,\n Rejected,\n}\n\n/**\n * When a NavigationTask finishes, there may or may not be data still missing,\n * necessitating a retry.\n */\nconst enum NavigationTaskExitStatus {\n /**\n * No additional navigation is required.\n */\n Done = 0,\n /**\n * Some data failed to load, presumably due to a route tree mismatch. Perform\n * a soft retry to reload the entire tree.\n */\n SoftRetry = 1,\n /**\n * Some data failed to load in an unrecoverable way, e.g. in an inactive\n * parallel route. Fall back to a hard (MPA-style) retry.\n */\n HardRetry = 2,\n}\n\nexport type NavigationRequestAccumulation = {\n scrollableSegments: Array | null\n separateRefreshUrls: Set | null\n}\n\nconst noop = () => {}\n\nexport function createInitialCacheNodeForHydration(\n navigatedAt: number,\n initialTree: FlightRouterState,\n seedData: CacheNodeSeedData | null,\n seedHead: HeadData\n): CacheNode {\n // Create the initial cache node tree, using the data embedded into the\n // HTML document.\n const accumulation: NavigationRequestAccumulation = {\n scrollableSegments: null,\n separateRefreshUrls: null,\n }\n const task = createCacheNodeOnNavigation(\n navigatedAt,\n initialTree,\n undefined,\n FreshnessPolicy.Hydration,\n seedData,\n seedHead,\n null,\n null,\n false,\n null,\n null,\n false,\n accumulation\n )\n\n // NOTE: We intentionally don't check if any data needs to be fetched from the\n // server. We assume the initial hydration payload is sufficient to render\n // the page.\n //\n // The completeness of the initial data is an important property that we rely\n // on as a last-ditch mechanism for recovering the app; we must always be able\n // to reload a fresh HTML document to get to a consistent state.\n //\n // In the future, there may be cases where the server intentionally sends\n // partial data and expects the client to fill in the rest, in which case this\n // logic may change. (There already is a similar case where the server sends\n // _no_ hydration data in the HTML document at all, and the client fetches it\n // separately, but that's different because we still end up hydrating with a\n // complete tree.)\n\n return task.node\n}\n\n// Creates a new Cache Node tree (i.e. copy-on-write) that represents the\n// optimistic result of a navigation, using both the current Cache Node tree and\n// data that was prefetched prior to navigation.\n//\n// At the moment we call this function, we haven't yet received the navigation\n// response from the server. It could send back something completely different\n// from the tree that was prefetched — due to rewrites, default routes, parallel\n// routes, etc.\n//\n// But in most cases, it will return the same tree that we prefetched, just with\n// the dynamic holes filled in. So we optimistically assume this will happen,\n// and accept that the real result could be arbitrarily different.\n//\n// We'll reuse anything that was already in the previous tree, since that's what\n// the server does.\n//\n// New segments (ones that don't appear in the old tree) are assigned an\n// unresolved promise. The data for these promises will be fulfilled later, when\n// the navigation response is received.\n//\n// The tree can be rendered immediately after it is created (that's why this is\n// a synchronous function). Any new trees that do not have prefetch data will\n// suspend during rendering, until the dynamic data streams in.\n//\n// Returns a Task object, which contains both the updated Cache Node and a path\n// to the pending subtrees that need to be resolved by the navigation response.\n//\n// A return value of `null` means there were no changes, and the previous tree\n// can be reused without initiating a server request.\nexport function startPPRNavigation(\n navigatedAt: number,\n oldUrl: URL,\n oldCacheNode: CacheNode | null,\n oldRouterState: FlightRouterState,\n newRouterState: FlightRouterState,\n freshness: FreshnessPolicy,\n seedData: CacheNodeSeedData | null,\n seedHead: HeadData | null,\n prefetchData: CacheNodeSeedData | null,\n prefetchHead: HeadData | null,\n isPrefetchHeadPartial: boolean,\n isSamePageNavigation: boolean,\n accumulation: NavigationRequestAccumulation\n): NavigationTask | null {\n const didFindRootLayout = false\n const parentNeedsDynamicRequest = false\n const parentRefreshUrl = null\n return updateCacheNodeOnNavigation(\n navigatedAt,\n oldUrl,\n oldCacheNode !== null ? oldCacheNode : undefined,\n oldRouterState,\n newRouterState,\n freshness,\n didFindRootLayout,\n seedData,\n seedHead,\n prefetchData,\n prefetchHead,\n isPrefetchHeadPartial,\n isSamePageNavigation,\n null,\n null,\n parentNeedsDynamicRequest,\n parentRefreshUrl,\n accumulation\n )\n}\n\nfunction updateCacheNodeOnNavigation(\n navigatedAt: number,\n oldUrl: URL,\n oldCacheNode: CacheNode | void,\n oldRouterState: FlightRouterState,\n newRouterState: FlightRouterState,\n freshness: FreshnessPolicy,\n didFindRootLayout: boolean,\n seedData: CacheNodeSeedData | null,\n seedHead: HeadData | null,\n prefetchData: CacheNodeSeedData | null,\n prefetchHead: HeadData | null,\n isPrefetchHeadPartial: boolean,\n isSamePageNavigation: boolean,\n parentSegmentPath: FlightSegmentPath | null,\n parentParallelRouteKey: string | null,\n parentNeedsDynamicRequest: boolean,\n parentRefreshUrl: string | null,\n accumulation: NavigationRequestAccumulation\n): NavigationTask | null {\n // Check if this segment matches the one in the previous route.\n const oldSegment = oldRouterState[0]\n const newSegment = newRouterState[0]\n if (!matchSegment(newSegment, oldSegment)) {\n // This segment does not match the previous route. We're now entering the\n // new part of the target route. Switch to the \"create\" path.\n if (\n // Check if the route tree changed before we reached a layout. (The\n // highest-level layout in a route tree is referred to as the \"root\"\n // layout.) This could mean that we're navigating between two different\n // root layouts. When this happens, we perform a full-page (MPA-style)\n // navigation.\n //\n // However, the algorithm for deciding where to start rendering a route\n // (i.e. the one performed in order to reach this function) is stricter\n // than the one used to detect a change in the root layout. So just\n // because we're re-rendering a segment outside of the root layout does\n // not mean we should trigger a full-page navigation.\n //\n // Specifically, we handle dynamic parameters differently: two segments\n // are considered the same even if their parameter values are different.\n //\n // Refer to isNavigatingToNewRootLayout for details.\n //\n // Note that we only have to perform this extra traversal if we didn't\n // already discover a root layout in the part of the tree that is\n // unchanged. We also only need to compare the subtree that is not\n // shared. In the common case, this branch is skipped completely.\n (!didFindRootLayout &&\n isNavigatingToNewRootLayout(oldRouterState, newRouterState)) ||\n // The global Not Found route (app/global-not-found.tsx) is a special\n // case, because it acts like a root layout, but in the router tree, it\n // is rendered in the same position as app/layout.tsx.\n //\n // Any navigation to the global Not Found route should trigger a\n // full-page navigation.\n //\n // TODO: We should probably model this by changing the key of the root\n // segment when this happens. Then the root layout check would work\n // as expected, without a special case.\n newSegment === NOT_FOUND_SEGMENT_KEY\n ) {\n return null\n }\n if (parentSegmentPath === null || parentParallelRouteKey === null) {\n // The root should never mismatch. If it does, it suggests an internal\n // Next.js error, or a malformed server response. Trigger a full-\n // page navigation.\n return null\n }\n return createCacheNodeOnNavigation(\n navigatedAt,\n newRouterState,\n oldCacheNode,\n freshness,\n seedData,\n seedHead,\n prefetchData,\n prefetchHead,\n isPrefetchHeadPartial,\n parentSegmentPath,\n parentParallelRouteKey,\n parentNeedsDynamicRequest,\n accumulation\n )\n }\n\n // TODO: The segment paths are tracked so that LayoutRouter knows which\n // segments to scroll to after a navigation. But we should just mark this\n // information on the CacheNode directly. It used to be necessary to do this\n // separately because CacheNodes were created lazily during render, not when\n // rather than when creating the route tree.\n const segmentPath =\n parentParallelRouteKey !== null && parentSegmentPath !== null\n ? parentSegmentPath.concat([parentParallelRouteKey, newSegment])\n : // NOTE: The root segment is intentionally omitted from the segment path\n []\n\n const newRouterStateChildren = newRouterState[1]\n const oldRouterStateChildren = oldRouterState[1]\n const seedDataChildren = seedData !== null ? seedData[1] : null\n const prefetchDataChildren = prefetchData !== null ? prefetchData[1] : null\n\n // We're currently traversing the part of the tree that was also part of\n // the previous route. If we discover a root layout, then we don't need to\n // trigger an MPA navigation.\n const isRootLayout = newRouterState[4] === true\n const childDidFindRootLayout = didFindRootLayout || isRootLayout\n\n const oldParallelRoutes =\n oldCacheNode !== undefined ? oldCacheNode.parallelRoutes : undefined\n\n // Clone the current set of segment children, even if they aren't active in\n // the new tree.\n // TODO: We currently retain all the inactive segments indefinitely, until\n // there's an explicit refresh, or a parent layout is lazily refreshed. We\n // rely on this for popstate navigations, which update the Router State Tree\n // but do not eagerly perform a data fetch, because they expect the segment\n // data to already be in the Cache Node tree. For highly static sites that\n // are mostly read-only, this may happen only rarely, causing memory to\n // leak. We should figure out a better model for the lifetime of inactive\n // segments, so we can maintain instant back/forward navigations without\n // leaking memory indefinitely.\n let shouldDropSiblingCaches: boolean = false\n let shouldRefreshDynamicData: boolean = false\n switch (freshness) {\n case FreshnessPolicy.Default:\n case FreshnessPolicy.HistoryTraversal:\n case FreshnessPolicy.Hydration: // <- shouldn't happen during client nav\n // We should never drop dynamic data in shared layouts, except during\n // a refresh.\n shouldDropSiblingCaches = false\n shouldRefreshDynamicData = false\n break\n case FreshnessPolicy.RefreshAll:\n case FreshnessPolicy.HMRRefresh:\n shouldDropSiblingCaches = true\n shouldRefreshDynamicData = true\n break\n default:\n freshness satisfies never\n break\n }\n const newParallelRoutes = new Map(\n shouldDropSiblingCaches ? undefined : oldParallelRoutes\n )\n\n // TODO: We're not consistent about how we do this check. Some places\n // check if the segment starts with PAGE_SEGMENT_KEY, but most seem to\n // check if there any any children, which is why I'm doing it here. We\n // should probably encode an empty children set as `null` though. Either\n // way, we should update all the checks to be consistent.\n const isLeafSegment = Object.keys(newRouterStateChildren).length === 0\n\n // Get the data for this segment. Since it was part of the previous route,\n // usually we just clone the data from the old CacheNode. However, during a\n // refresh or a revalidation, there won't be any existing CacheNode. So we\n // may need to consult the prefetch cache, like we would for a new segment.\n let newCacheNode: CacheNode\n let needsDynamicRequest: boolean\n if (\n oldCacheNode !== undefined &&\n !shouldRefreshDynamicData &&\n // During a same-page navigation, we always refetch the page segments\n !(isLeafSegment && isSamePageNavigation)\n ) {\n // Reuse the existing CacheNode\n const dropPrefetchRsc = false\n newCacheNode = reuseDynamicCacheNode(\n dropPrefetchRsc,\n oldCacheNode,\n newParallelRoutes\n )\n needsDynamicRequest = false\n } else if (seedData !== null && seedData[0] !== null) {\n // If this navigation was the result of an action, then check if the\n // server sent back data in the action response. We should favor using\n // that, rather than performing a separate request. This is both better\n // for performance and it's more likely to be consistent with any\n // writes that were just performed by the action, compared to a\n // separate request.\n const seedRsc = seedData[0]\n const seedLoading = seedData[2]\n const isSeedRscPartial = false\n const isSeedHeadPartial = seedHead === null\n newCacheNode = readCacheNodeFromSeedData(\n seedRsc,\n seedLoading,\n isSeedRscPartial,\n seedHead,\n isSeedHeadPartial,\n isLeafSegment,\n newParallelRoutes,\n navigatedAt\n )\n needsDynamicRequest = isLeafSegment && isSeedHeadPartial\n } else if (prefetchData !== null) {\n // Consult the prefetch cache.\n const prefetchRsc = prefetchData[0]\n const prefetchLoading = prefetchData[2]\n const isPrefetchRSCPartial = prefetchData[3]\n newCacheNode = readCacheNodeFromSeedData(\n prefetchRsc,\n prefetchLoading,\n isPrefetchRSCPartial,\n prefetchHead,\n isPrefetchHeadPartial,\n isLeafSegment,\n newParallelRoutes,\n navigatedAt\n )\n needsDynamicRequest =\n isPrefetchRSCPartial || (isLeafSegment && isPrefetchHeadPartial)\n } else {\n // Spawn a request to fetch new data from the server.\n newCacheNode = spawnNewCacheNode(\n newParallelRoutes,\n isLeafSegment,\n navigatedAt,\n freshness\n )\n needsDynamicRequest = true\n }\n\n // During a refresh navigation, there's a special case that happens when\n // entering a \"default\" slot. The default slot may not be part of the\n // current route; it may have been reused from an older route. If so,\n // we need to fetch its data from the old route's URL rather than current\n // route's URL. Keep track of this as we traverse the tree.\n const href = newRouterState[2]\n const refreshUrl =\n typeof href === 'string' && newRouterState[3] === 'refresh'\n ? // This segment is not present in the current route. Track its\n // refresh URL as we continue traversing the tree.\n href\n : // Inherit the refresh URL from the parent.\n parentRefreshUrl\n\n // If this segment itself needs to fetch new data from the server, then by\n // definition it is being refreshed. Track its refresh URL so we know which\n // URL to request the data from.\n if (needsDynamicRequest && refreshUrl !== null) {\n accumulateRefreshUrl(accumulation, refreshUrl)\n }\n\n // As we diff the trees, we may sometimes modify (copy-on-write, not mutate)\n // the Route Tree that was returned by the server — for example, in the case\n // of default parallel routes, we preserve the currently active segment. To\n // avoid mutating the original tree, we clone the router state children along\n // the return path.\n let patchedRouterStateChildren: {\n [parallelRouteKey: string]: FlightRouterState\n } = {}\n let taskChildren = null\n\n // Most navigations require a request to fetch additional data from the\n // server, either because the data was not already prefetched, or because the\n // target route contains dynamic data that cannot be prefetched.\n //\n // However, if the target route is fully static, and it's already completely\n // loaded into the segment cache, then we can skip the server request.\n //\n // This starts off as `false`, and is set to `true` if any of the child\n // routes requires a dynamic request.\n let childNeedsDynamicRequest = false\n // As we traverse the children, we'll construct a FlightRouterState that can\n // be sent to the server to request the dynamic data. If it turns out that\n // nothing in the subtree is dynamic (i.e. childNeedsDynamicRequest is false\n // at the end), then this will be discarded.\n // TODO: We can probably optimize the format of this data structure to only\n // include paths that are dynamic. Instead of reusing the\n // FlightRouterState type.\n let dynamicRequestTreeChildren: {\n [parallelRouteKey: string]: FlightRouterState\n } = {}\n\n for (let parallelRouteKey in newRouterStateChildren) {\n let newRouterStateChild: FlightRouterState =\n newRouterStateChildren[parallelRouteKey]\n const oldRouterStateChild: FlightRouterState | void =\n oldRouterStateChildren[parallelRouteKey]\n if (oldRouterStateChild === undefined) {\n // This should never happen, but if it does, it suggests a malformed\n // server response. Trigger a full-page navigation.\n return null\n }\n const oldSegmentMapChild =\n oldParallelRoutes !== undefined\n ? oldParallelRoutes.get(parallelRouteKey)\n : undefined\n\n let seedDataChild: CacheNodeSeedData | void | null =\n seedDataChildren !== null ? seedDataChildren[parallelRouteKey] : null\n let prefetchDataChild: CacheNodeSeedData | void | null =\n prefetchDataChildren !== null\n ? prefetchDataChildren[parallelRouteKey]\n : null\n\n let newSegmentChild = newRouterStateChild[0]\n let seedHeadChild = seedHead\n let prefetchHeadChild = prefetchHead\n let isPrefetchHeadPartialChild = isPrefetchHeadPartial\n if (\n // Skip this branch during a history traversal. We restore the tree that\n // was stashed in the history entry as-is.\n freshness !== FreshnessPolicy.HistoryTraversal &&\n newSegmentChild === DEFAULT_SEGMENT_KEY\n ) {\n // This is a \"default\" segment. These are never sent by the server during\n // a soft navigation; instead, the client reuses whatever segment was\n // already active in that slot on the previous route.\n newRouterStateChild = reuseActiveSegmentInDefaultSlot(\n oldUrl,\n oldRouterStateChild\n )\n newSegmentChild = newRouterStateChild[0]\n\n // Since we're switching to a different route tree, these are no\n // longer valid, because they correspond to the outer tree.\n seedDataChild = null\n seedHeadChild = null\n prefetchDataChild = null\n prefetchHeadChild = null\n isPrefetchHeadPartialChild = false\n }\n\n const newSegmentKeyChild = createRouterCacheKey(newSegmentChild)\n const oldCacheNodeChild =\n oldSegmentMapChild !== undefined\n ? oldSegmentMapChild.get(newSegmentKeyChild)\n : undefined\n\n const taskChild = updateCacheNodeOnNavigation(\n navigatedAt,\n oldUrl,\n oldCacheNodeChild,\n oldRouterStateChild,\n newRouterStateChild,\n freshness,\n childDidFindRootLayout,\n seedDataChild ?? null,\n seedHeadChild,\n prefetchDataChild ?? null,\n prefetchHeadChild,\n isPrefetchHeadPartialChild,\n isSamePageNavigation,\n segmentPath,\n parallelRouteKey,\n parentNeedsDynamicRequest || needsDynamicRequest,\n refreshUrl,\n accumulation\n )\n\n if (taskChild === null) {\n // One of the child tasks discovered a change to the root layout.\n // Immediately unwind from this recursive traversal. This will trigger a\n // full-page navigation.\n return null\n }\n\n // Recursively propagate up the child tasks.\n if (taskChildren === null) {\n taskChildren = new Map()\n }\n taskChildren.set(parallelRouteKey, taskChild)\n const newCacheNodeChild = taskChild.node\n if (newCacheNodeChild !== null) {\n const newSegmentMapChild: ChildSegmentMap = new Map(\n shouldDropSiblingCaches ? undefined : oldSegmentMapChild\n )\n newSegmentMapChild.set(newSegmentKeyChild, newCacheNodeChild)\n newParallelRoutes.set(parallelRouteKey, newSegmentMapChild)\n }\n\n // The child tree's route state may be different from the prefetched\n // route sent by the server. We need to clone it as we traverse back up\n // the tree.\n const taskChildRoute = taskChild.route\n patchedRouterStateChildren[parallelRouteKey] = taskChildRoute\n\n const dynamicRequestTreeChild = taskChild.dynamicRequestTree\n if (dynamicRequestTreeChild !== null) {\n // Something in the child tree is dynamic.\n childNeedsDynamicRequest = true\n dynamicRequestTreeChildren[parallelRouteKey] = dynamicRequestTreeChild\n } else {\n dynamicRequestTreeChildren[parallelRouteKey] = taskChildRoute\n }\n }\n\n return {\n status: needsDynamicRequest\n ? NavigationTaskStatus.Pending\n : NavigationTaskStatus.Fulfilled,\n route: patchRouterStateWithNewChildren(\n newRouterState,\n patchedRouterStateChildren\n ),\n node: newCacheNode,\n dynamicRequestTree: createDynamicRequestTree(\n newRouterState,\n dynamicRequestTreeChildren,\n needsDynamicRequest,\n childNeedsDynamicRequest,\n parentNeedsDynamicRequest\n ),\n refreshUrl,\n children: taskChildren,\n }\n}\n\nfunction createCacheNodeOnNavigation(\n navigatedAt: number,\n newRouterState: FlightRouterState,\n oldCacheNode: CacheNode | void,\n freshness: FreshnessPolicy,\n seedData: CacheNodeSeedData | null,\n seedHead: HeadData | null,\n prefetchData: CacheNodeSeedData | null,\n prefetchHead: HeadData | null,\n isPrefetchHeadPartial: boolean,\n parentSegmentPath: FlightSegmentPath | null,\n parentParallelRouteKey: string | null,\n parentNeedsDynamicRequest: boolean,\n accumulation: NavigationRequestAccumulation\n): NavigationTask {\n // Same traversal as updateCacheNodeNavigation, but simpler. We switch to this\n // path once we reach the part of the tree that was not in the previous route.\n // We don't need to diff against the old tree, we just need to create a new\n // one. We also don't need to worry about any refresh-related logic.\n //\n // For the most part, this is a subset of updateCacheNodeOnNavigation, so any\n // change that happens in this function likely needs to be applied to that\n // one, too. However there are some places where the behavior intentionally\n // diverges, which is why we keep them separate.\n\n const newSegment = newRouterState[0]\n const segmentPath =\n parentParallelRouteKey !== null && parentSegmentPath !== null\n ? parentSegmentPath.concat([parentParallelRouteKey, newSegment])\n : // NOTE: The root segment is intentionally omitted from the segment path\n []\n\n const newRouterStateChildren = newRouterState[1]\n const prefetchDataChildren = prefetchData !== null ? prefetchData[1] : null\n const seedDataChildren = seedData !== null ? seedData[1] : null\n const oldParallelRoutes =\n oldCacheNode !== undefined ? oldCacheNode.parallelRoutes : undefined\n\n let shouldDropSiblingCaches: boolean = false\n let shouldRefreshDynamicData: boolean = false\n let dropPrefetchRsc: boolean = false\n switch (freshness) {\n case FreshnessPolicy.Default:\n // We should never drop dynamic data in sibling caches except during\n // a refresh.\n shouldDropSiblingCaches = false\n\n // Only reuse the dynamic data if experimental.staleTimes.dynamic config\n // is set, and the data is not stale. (This is not a recommended API with\n // Cache Components, but it's supported for backwards compatibility. Use\n // cacheLife instead.)\n //\n // DYNAMIC_STALETIME_MS defaults to 0, but it can be increased.\n shouldRefreshDynamicData =\n oldCacheNode === undefined ||\n navigatedAt - oldCacheNode.navigatedAt >= DYNAMIC_STALETIME_MS\n\n dropPrefetchRsc = false\n break\n case FreshnessPolicy.Hydration:\n // During hydration, we assume the data sent by the server is both\n // consistent and complete.\n shouldRefreshDynamicData = false\n shouldDropSiblingCaches = false\n dropPrefetchRsc = false\n break\n case FreshnessPolicy.HistoryTraversal:\n // During back/forward navigations, we reuse the dynamic data regardless\n // of how stale it may be.\n shouldRefreshDynamicData = false\n shouldRefreshDynamicData = false\n\n // Only show prefetched data if the dynamic data is still pending. This\n // avoids a flash back to the prefetch state in a case where it's highly\n // likely to have already streamed in.\n //\n // Tehnically, what we're actually checking is whether the dynamic network\n // response was received. But since it's a streaming response, this does\n // not mean that all the dynamic data has fully streamed in. It just means\n // that _some_ of the dynamic data was received. But as a heuristic, we\n // assume that the rest dynamic data will stream in quickly, so it's still\n // better to skip the prefetch state.\n if (oldCacheNode !== undefined) {\n const oldRsc = oldCacheNode.rsc\n const oldRscDidResolve =\n !isDeferredRsc(oldRsc) || oldRsc.status !== 'pending'\n dropPrefetchRsc = oldRscDidResolve\n } else {\n dropPrefetchRsc = false\n }\n break\n case FreshnessPolicy.RefreshAll:\n case FreshnessPolicy.HMRRefresh:\n // Drop all dynamic data.\n shouldRefreshDynamicData = true\n shouldDropSiblingCaches = true\n dropPrefetchRsc = false\n break\n default:\n freshness satisfies never\n break\n }\n\n const newParallelRoutes = new Map(\n shouldDropSiblingCaches ? undefined : oldParallelRoutes\n )\n const isLeafSegment = Object.keys(newRouterStateChildren).length === 0\n\n if (isLeafSegment) {\n // The segment path of every leaf segment (i.e. page) is collected into\n // a result array. This is used by the LayoutRouter to scroll to ensure that\n // new pages are visible after a navigation.\n //\n // This only happens for new pages, not for refreshed pages.\n //\n // TODO: We should use a string to represent the segment path instead of\n // an array. We already use a string representation for the path when\n // accessing the Segment Cache, so we can use the same one.\n if (accumulation.scrollableSegments === null) {\n accumulation.scrollableSegments = []\n }\n accumulation.scrollableSegments.push(segmentPath)\n }\n\n let newCacheNode: CacheNode\n let needsDynamicRequest: boolean\n if (!shouldRefreshDynamicData && oldCacheNode !== undefined) {\n // Reuse the existing CacheNode\n newCacheNode = reuseDynamicCacheNode(\n dropPrefetchRsc,\n oldCacheNode,\n newParallelRoutes\n )\n needsDynamicRequest = false\n } else if (seedData !== null && seedData[0] !== null) {\n // If this navigation was the result of an action, then check if the\n // server sent back data in the action response. We should favor using\n // that, rather than performing a separate request. This is both better\n // for performance and it's more likely to be consistent with any\n // writes that were just performed by the action, compared to a\n // separate request.\n const seedRsc = seedData[0]\n const seedLoading = seedData[2]\n const isSeedRscPartial = false\n const isSeedHeadPartial =\n seedHead === null && freshness !== FreshnessPolicy.Hydration\n newCacheNode = readCacheNodeFromSeedData(\n seedRsc,\n seedLoading,\n isSeedRscPartial,\n seedHead,\n isSeedHeadPartial,\n isLeafSegment,\n newParallelRoutes,\n navigatedAt\n )\n needsDynamicRequest = isLeafSegment && isSeedHeadPartial\n } else if (\n freshness === FreshnessPolicy.Hydration &&\n isLeafSegment &&\n seedHead !== null\n ) {\n // This is another weird case related to \"not found\" pages and hydration.\n // There will be a head sent by the server, but no page seed data.\n // TODO: We really should get rid of all these \"not found\" specific quirks\n // and make sure the tree is always consistent.\n const seedRsc = null\n const seedLoading = null\n const isSeedRscPartial = false\n const isSeedHeadPartial = false\n newCacheNode = readCacheNodeFromSeedData(\n seedRsc,\n seedLoading,\n isSeedRscPartial,\n seedHead,\n isSeedHeadPartial,\n isLeafSegment,\n newParallelRoutes,\n navigatedAt\n )\n needsDynamicRequest = false\n } else if (freshness !== FreshnessPolicy.Hydration && prefetchData !== null) {\n // Consult the prefetch cache.\n const prefetchRsc = prefetchData[0]\n const prefetchLoading = prefetchData[2]\n const isPrefetchRSCPartial = prefetchData[3]\n newCacheNode = readCacheNodeFromSeedData(\n prefetchRsc,\n prefetchLoading,\n isPrefetchRSCPartial,\n prefetchHead,\n isPrefetchHeadPartial,\n isLeafSegment,\n newParallelRoutes,\n navigatedAt\n )\n needsDynamicRequest =\n isPrefetchRSCPartial || (isLeafSegment && isPrefetchHeadPartial)\n } else {\n // Spawn a request to fetch new data from the server.\n newCacheNode = spawnNewCacheNode(\n newParallelRoutes,\n isLeafSegment,\n navigatedAt,\n freshness\n )\n needsDynamicRequest = true\n }\n\n let patchedRouterStateChildren: {\n [parallelRouteKey: string]: FlightRouterState\n } = {}\n let taskChildren = null\n\n let childNeedsDynamicRequest = false\n let dynamicRequestTreeChildren: {\n [parallelRouteKey: string]: FlightRouterState\n } = {}\n\n for (let parallelRouteKey in newRouterStateChildren) {\n const newRouterStateChild: FlightRouterState =\n newRouterStateChildren[parallelRouteKey]\n const oldSegmentMapChild =\n oldParallelRoutes !== undefined\n ? oldParallelRoutes.get(parallelRouteKey)\n : undefined\n const seedDataChild: CacheNodeSeedData | void | null =\n seedDataChildren !== null ? seedDataChildren[parallelRouteKey] : null\n const prefetchDataChild: CacheNodeSeedData | void | null =\n prefetchDataChildren !== null\n ? prefetchDataChildren[parallelRouteKey]\n : null\n\n const newSegmentChild = newRouterStateChild[0]\n const newSegmentKeyChild = createRouterCacheKey(newSegmentChild)\n\n const oldCacheNodeChild =\n oldSegmentMapChild !== undefined\n ? oldSegmentMapChild.get(newSegmentKeyChild)\n : undefined\n\n const taskChild = createCacheNodeOnNavigation(\n navigatedAt,\n newRouterStateChild,\n oldCacheNodeChild,\n freshness,\n seedDataChild ?? null,\n seedHead,\n prefetchDataChild ?? null,\n prefetchHead,\n isPrefetchHeadPartial,\n segmentPath,\n parallelRouteKey,\n parentNeedsDynamicRequest || needsDynamicRequest,\n accumulation\n )\n\n if (taskChildren === null) {\n taskChildren = new Map()\n }\n taskChildren.set(parallelRouteKey, taskChild)\n const newCacheNodeChild = taskChild.node\n if (newCacheNodeChild !== null) {\n const newSegmentMapChild: ChildSegmentMap = new Map(\n shouldDropSiblingCaches ? undefined : oldSegmentMapChild\n )\n newSegmentMapChild.set(newSegmentKeyChild, newCacheNodeChild)\n newParallelRoutes.set(parallelRouteKey, newSegmentMapChild)\n }\n\n const taskChildRoute = taskChild.route\n patchedRouterStateChildren[parallelRouteKey] = taskChildRoute\n\n const dynamicRequestTreeChild = taskChild.dynamicRequestTree\n if (dynamicRequestTreeChild !== null) {\n childNeedsDynamicRequest = true\n dynamicRequestTreeChildren[parallelRouteKey] = dynamicRequestTreeChild\n } else {\n dynamicRequestTreeChildren[parallelRouteKey] = taskChildRoute\n }\n }\n\n return {\n status: needsDynamicRequest\n ? NavigationTaskStatus.Pending\n : NavigationTaskStatus.Fulfilled,\n route: patchRouterStateWithNewChildren(\n newRouterState,\n patchedRouterStateChildren\n ),\n node: newCacheNode,\n dynamicRequestTree: createDynamicRequestTree(\n newRouterState,\n dynamicRequestTreeChildren,\n needsDynamicRequest,\n childNeedsDynamicRequest,\n parentNeedsDynamicRequest\n ),\n // This route is not part of the current tree, so there's no reason to\n // track the refresh URL.\n refreshUrl: null,\n children: taskChildren,\n }\n}\n\nfunction patchRouterStateWithNewChildren(\n baseRouterState: FlightRouterState,\n newChildren: { [parallelRouteKey: string]: FlightRouterState }\n): FlightRouterState {\n const clone: FlightRouterState = [baseRouterState[0], newChildren]\n // Based on equivalent logic in apply-router-state-patch-to-tree, but should\n // confirm whether we need to copy all of these fields. Not sure the server\n // ever sends, e.g. the refetch marker.\n if (2 in baseRouterState) {\n clone[2] = baseRouterState[2]\n }\n if (3 in baseRouterState) {\n clone[3] = baseRouterState[3]\n }\n if (4 in baseRouterState) {\n clone[4] = baseRouterState[4]\n }\n return clone\n}\n\nfunction createDynamicRequestTree(\n newRouterState: FlightRouterState,\n dynamicRequestTreeChildren: Record,\n needsDynamicRequest: boolean,\n childNeedsDynamicRequest: boolean,\n parentNeedsDynamicRequest: boolean\n): FlightRouterState | null {\n // Create a FlightRouterState that instructs the server how to render the\n // requested segment.\n //\n // Or, if neither this segment nor any of the children require a new data,\n // then we return `null` to skip the request.\n let dynamicRequestTree: FlightRouterState | null = null\n if (needsDynamicRequest) {\n dynamicRequestTree = patchRouterStateWithNewChildren(\n newRouterState,\n dynamicRequestTreeChildren\n )\n // The \"refetch\" marker is set on the top-most segment that requires new\n // data. We can omit it if a parent was already marked.\n if (!parentNeedsDynamicRequest) {\n dynamicRequestTree[3] = 'refetch'\n }\n } else if (childNeedsDynamicRequest) {\n // This segment does not request new data, but at least one of its\n // children does.\n dynamicRequestTree = patchRouterStateWithNewChildren(\n newRouterState,\n dynamicRequestTreeChildren\n )\n } else {\n dynamicRequestTree = null\n }\n return dynamicRequestTree\n}\n\nfunction accumulateRefreshUrl(\n accumulation: NavigationRequestAccumulation,\n refreshUrl: string\n) {\n // This is a refresh navigation, and we're inside a \"default\" slot that's\n // not part of the current route; it was reused from an older route. In\n // order to get fresh data for this reused route, we need to issue a\n // separate request using the old route's URL.\n //\n // Track these extra URLs in the accumulated result. Later, we'll construct\n // an appropriate request for each unique URL in the final set. The reason\n // we don't do it immediately here is so we can deduplicate multiple\n // instances of the same URL into a single request. See\n // listenForDynamicRequest for more details.\n const separateRefreshUrls = accumulation.separateRefreshUrls\n if (separateRefreshUrls === null) {\n accumulation.separateRefreshUrls = new Set([refreshUrl])\n } else {\n separateRefreshUrls.add(refreshUrl)\n }\n}\n\nfunction reuseActiveSegmentInDefaultSlot(\n oldUrl: URL,\n oldRouterState: FlightRouterState\n): FlightRouterState {\n // This is a \"default\" segment. These are never sent by the server during a\n // soft navigation; instead, the client reuses whatever segment was already\n // active in that slot on the previous route. This means if we later need to\n // refresh the segment, it will have to be refetched from the previous route's\n // URL. We store it in the Flight Router State.\n //\n // TODO: We also mark the segment with a \"refresh\" marker but I think we can\n // get rid of that eventually by making sure we only add URLs to page segments\n // that are reused. Then the presence of the URL alone is enough.\n let reusedRouterState\n\n const oldRefreshMarker = oldRouterState[3]\n if (oldRefreshMarker === 'refresh') {\n // This segment was already reused from an even older route. Keep its\n // existing URL and refresh marker.\n reusedRouterState = oldRouterState\n } else {\n // This segment was not previously reused, and it's not on the new route.\n // So it must have been delivered in the old route.\n reusedRouterState = patchRouterStateWithNewChildren(\n oldRouterState,\n oldRouterState[1]\n )\n reusedRouterState[2] = createHrefFromUrl(oldUrl)\n reusedRouterState[3] = 'refresh'\n }\n\n return reusedRouterState\n}\n\nfunction reuseDynamicCacheNode(\n dropPrefetchRsc: boolean,\n existingCacheNode: CacheNode,\n parallelRoutes: Map\n): CacheNode {\n // Clone an existing CacheNode's data, with (possibly) new children.\n const cacheNode: CacheNode = {\n rsc: existingCacheNode.rsc,\n prefetchRsc: dropPrefetchRsc ? null : existingCacheNode.prefetchRsc,\n head: existingCacheNode.head,\n prefetchHead: dropPrefetchRsc ? null : existingCacheNode.prefetchHead,\n loading: existingCacheNode.loading,\n\n parallelRoutes,\n\n // Don't update the navigatedAt timestamp, since we're reusing\n // existing data.\n navigatedAt: existingCacheNode.navigatedAt,\n }\n return cacheNode\n}\n\nfunction readCacheNodeFromSeedData(\n seedRsc: React.ReactNode,\n seedLoading: LoadingModuleData | Promise,\n isSeedRscPartial: boolean,\n seedHead: HeadData | null,\n isSeedHeadPartial: boolean,\n isPageSegment: boolean,\n parallelRoutes: Map,\n navigatedAt: number\n): CacheNode {\n // TODO: Currently this is threaded through the navigation logic using the\n // CacheNodeSeedData type, but in the future this will read directly from\n // the Segment Cache. See readRenderSnapshotFromCache.\n\n let rsc: React.ReactNode\n let prefetchRsc: React.ReactNode\n if (isSeedRscPartial) {\n // The prefetched data contains dynamic holes. Create a pending promise that\n // will be fulfilled when the dynamic data is received from the server.\n prefetchRsc = seedRsc\n rsc = createDeferredRsc()\n } else {\n // The prefetched data is complete. Use it directly.\n prefetchRsc = null\n rsc = seedRsc\n }\n\n // If this is a page segment, also read the head.\n let prefetchHead: HeadData | null\n let head: HeadData | null\n if (isPageSegment) {\n if (isSeedHeadPartial) {\n prefetchHead = seedHead\n head = createDeferredRsc()\n } else {\n prefetchHead = null\n head = seedHead\n }\n } else {\n prefetchHead = null\n head = null\n }\n\n const cacheNode: CacheNode = {\n rsc,\n prefetchRsc,\n head,\n prefetchHead,\n // TODO: Technically, a loading boundary could contain dynamic data. We\n // should have separate `loading` and `prefetchLoading` fields to handle\n // this, like we do for the segment data and head.\n loading: seedLoading,\n parallelRoutes,\n navigatedAt,\n }\n\n return cacheNode\n}\n\nfunction spawnNewCacheNode(\n parallelRoutes: Map,\n isLeafSegment: boolean,\n navigatedAt: number,\n freshness: FreshnessPolicy\n): CacheNode {\n // We should never spawn network requests during hydration. We must treat the\n // initial payload as authoritative, because the initial page load is used\n // as a last-ditch mechanism for recovering the app.\n //\n // This is also an important safety check because if this leaks into the\n // server rendering path (which theoretically it never should because\n // the server payload should be consistent), the server would hang because\n // these promises would never resolve.\n //\n // TODO: There is an existing case where the global \"not found\" boundary\n // triggers this path. But it does render correctly despite that. That's an\n // unusual render path so it's not surprising, but we should look into\n // modeling it in a more consistent way. See also the /_notFound special\n // case in updateCacheNodeOnNavigation.\n const isHydration = freshness === FreshnessPolicy.Hydration\n\n const cacheNode: CacheNode = {\n rsc: !isHydration ? createDeferredRsc() : null,\n prefetchRsc: null,\n head: !isHydration && isLeafSegment ? createDeferredRsc() : null,\n prefetchHead: null,\n loading: !isHydration ? createDeferredRsc() : null,\n parallelRoutes,\n navigatedAt,\n }\n return cacheNode\n}\n\n// Represents whether the previuos navigation resulted in a route tree mismatch.\n// A mismatch results in a refresh of the page. If there are two successive\n// mismatches, we will fall back to an MPA navigation, to prevent a retry loop.\nlet previousNavigationDidMismatch = false\n\n// Writes a dynamic server response into the tree created by\n// updateCacheNodeOnNavigation. All pending promises that were spawned by the\n// navigation will be resolved, either with dynamic data from the server, or\n// `null` to indicate that the data is missing.\n//\n// A `null` value will trigger a lazy fetch during render, which will then patch\n// up the tree using the same mechanism as the non-PPR implementation\n// (serverPatchReducer).\n//\n// Usually, the server will respond with exactly the subset of data that we're\n// waiting for — everything below the nearest shared layout. But technically,\n// the server can return anything it wants.\n//\n// This does _not_ create a new tree; it modifies the existing one in place.\n// Which means it must follow the Suspense rules of cache safety.\nexport function spawnDynamicRequests(\n task: NavigationTask,\n primaryUrl: URL,\n nextUrl: string | null,\n freshnessPolicy: FreshnessPolicy,\n accumulation: NavigationRequestAccumulation\n): void {\n const dynamicRequestTree = task.dynamicRequestTree\n if (dynamicRequestTree === null) {\n // This navigation was fully cached. There are no dynamic requests to spawn.\n previousNavigationDidMismatch = false\n return\n }\n\n // This is intentionally not an async function to discourage the caller from\n // awaiting the result. Any subsequent async operations spawned by this\n // function should result in a separate navigation task, rather than\n // block the original one.\n //\n // In this function we spawn (but do not await) all the network requests that\n // block the navigation, and collect the promises. The next function,\n // `finishNavigationTask`, can await the promises in any order without\n // accidentally introducing a network waterfall.\n const primaryRequestPromise = fetchMissingDynamicData(\n task,\n dynamicRequestTree,\n primaryUrl,\n nextUrl,\n freshnessPolicy\n )\n\n const separateRefreshUrls = accumulation.separateRefreshUrls\n let refreshRequestPromises: Array<\n ReturnType\n > | null = null\n if (separateRefreshUrls !== null) {\n // There are multiple URLs that we need to request the data from. This\n // happens when a \"default\" parallel route slot is present in the tree, and\n // its data cannot be fetched from the current route. We need to split the\n // combined dynamic request tree into separate requests per URL.\n\n // TODO: Create a scoped dynamic request tree that omits anything that\n // is not relevant to the given URL. Without doing this, the server may\n // sometimes render more data than necessary; this is not a regression\n // compared to the pre-Segment Cache implementation, though, just an\n // optimization we can make in the future.\n\n // Construct a request tree for each additional refresh URL. This will\n // prune away everything except the parts of the tree that match the\n // given refresh URL.\n refreshRequestPromises = []\n const canonicalUrl = createHrefFromUrl(primaryUrl)\n for (const refreshUrl of separateRefreshUrls) {\n if (refreshUrl === canonicalUrl) {\n // We already initiated a request for the this URL, above. Skip it.\n // TODO: This only happens because the main URL is not tracked as\n // part of the separateRefreshURLs set. There's probably a better way\n // to structure this so this case doesn't happen.\n continue\n }\n // TODO: Create a scoped dynamic request tree that omits anything that\n // is not relevant to the given URL. Without doing this, the server may\n // sometimes render more data than necessary; this is not a regression\n // compared to the pre-Segment Cache implementation, though, just an\n // optimization we can make in the future.\n // const scopedDynamicRequestTree = splitTaskByURL(task, refreshUrl)\n const scopedDynamicRequestTree = dynamicRequestTree\n if (scopedDynamicRequestTree !== null) {\n refreshRequestPromises.push(\n fetchMissingDynamicData(\n task,\n scopedDynamicRequestTree,\n new URL(refreshUrl, location.origin),\n // TODO: Just noticed that this should actually the Next-Url at the\n // time the refresh URL was set, not the current Next-Url. Need to\n // start tracking this alongside the refresh URL. In the meantime,\n // if a refresh fails due to a mismatch, it will trigger a\n // hard refresh.\n nextUrl,\n freshnessPolicy\n )\n )\n }\n }\n }\n\n // Further async operations are moved into this separate function to\n // discourage sequential network requests.\n const voidPromise = finishNavigationTask(\n task,\n nextUrl,\n primaryRequestPromise,\n refreshRequestPromises\n )\n // `finishNavigationTask` is responsible for error handling, so we can attach\n // noop callbacks to this promise.\n voidPromise.then(noop, noop)\n}\n\nasync function finishNavigationTask(\n task: NavigationTask,\n nextUrl: string | null,\n primaryRequestPromise: ReturnType,\n refreshRequestPromises: Array<\n ReturnType\n > | null\n): Promise {\n // Wait for all the requests to finish, or for the first one to fail.\n let exitStatus = await waitForRequestsToFinish(\n primaryRequestPromise,\n refreshRequestPromises\n )\n\n // Once the all the requests have finished, check the tree for any remaining\n // pending tasks. If anything is still pending, it means the server response\n // does not match the client, and we must refresh to get back to a consistent\n // state. We can skip this step if we already detected a mismatch during the\n // first phase; it doesn't matter in that case because we're going to refresh\n // the whole tree regardless.\n if (exitStatus === NavigationTaskExitStatus.Done) {\n exitStatus = abortRemainingPendingTasks(task, null, null)\n }\n\n switch (exitStatus) {\n case NavigationTaskExitStatus.Done: {\n // The task has completely finished. There's no missing data. Exit.\n previousNavigationDidMismatch = false\n return\n }\n case NavigationTaskExitStatus.SoftRetry: {\n // Some data failed to finish loading. Trigger a soft retry.\n // TODO: As an extra precaution against soft retry loops, consider\n // tracking whether a navigation was itself triggered by a retry. If two\n // happen in a row, fall back to a hard retry.\n const isHardRetry = false\n const primaryRequestResult = await primaryRequestPromise\n dispatchRetryDueToTreeMismatch(\n isHardRetry,\n primaryRequestResult.url,\n nextUrl,\n primaryRequestResult.seed,\n task.route\n )\n return\n }\n case NavigationTaskExitStatus.HardRetry: {\n // Some data failed to finish loading in a non-recoverable way, such as a\n // network error. Trigger an MPA navigation.\n //\n // Hard navigating/refreshing is how we prevent an infinite retry loop\n // caused by a network error — when the network fails, we fall back to the\n // browser behavior for offline navigations. In the future, Next.js may\n // introduce its own custom handling of offline navigations, but that\n // doesn't exist yet.\n const isHardRetry = true\n const primaryRequestResult = await primaryRequestPromise\n dispatchRetryDueToTreeMismatch(\n isHardRetry,\n primaryRequestResult.url,\n nextUrl,\n primaryRequestResult.seed,\n task.route\n )\n return\n }\n default: {\n return exitStatus satisfies never\n }\n }\n}\n\nfunction waitForRequestsToFinish(\n primaryRequestPromise: ReturnType,\n refreshRequestPromises: Array<\n ReturnType\n > | null\n) {\n // Custom async combinator logic. This could be replaced by Promise.any but\n // we don't assume that's available.\n //\n // Each promise resolves once the server responsds and the data is written\n // into the CacheNode tree. Resolve the combined promise once all the\n // requests finish.\n //\n // Or, resolve as soon as one of the requests fails, without waiting for the\n // others to finish.\n return new Promise((resolve) => {\n const onFulfill = (result: { exitStatus: NavigationTaskExitStatus }) => {\n if (result.exitStatus === NavigationTaskExitStatus.Done) {\n remainingCount--\n if (remainingCount === 0) {\n // All the requests finished successfully.\n resolve(NavigationTaskExitStatus.Done)\n }\n } else {\n // One of the requests failed. Exit with a failing status.\n // NOTE: It's possible for one of the requests to fail with SoftRetry\n // and a later one to fail with HardRetry. In this case, we choose to\n // retry immediately, rather than delay the retry until all the requests\n // finish. If it fails again, we will hard retry on the next\n // attempt, anyway.\n resolve(result.exitStatus)\n }\n }\n // onReject shouldn't ever be called because fetchMissingDynamicData's\n // entire body is wrapped in a try/catch. This is just defensive.\n const onReject = () => resolve(NavigationTaskExitStatus.HardRetry)\n\n // Attach the listeners to the promises.\n let remainingCount = 1\n primaryRequestPromise.then(onFulfill, onReject)\n if (refreshRequestPromises !== null) {\n remainingCount += refreshRequestPromises.length\n refreshRequestPromises.forEach((refreshRequestPromise) =>\n refreshRequestPromise.then(onFulfill, onReject)\n )\n }\n })\n}\n\nfunction dispatchRetryDueToTreeMismatch(\n isHardRetry: boolean,\n retryUrl: URL,\n retryNextUrl: string | null,\n seed: NavigationSeed | null,\n baseTree: FlightRouterState\n) {\n // If this is the second time in a row that a navigation resulted in a\n // mismatch, fall back to a hard (MPA) refresh.\n isHardRetry = isHardRetry || previousNavigationDidMismatch\n previousNavigationDidMismatch = true\n const retryAction: ServerPatchAction = {\n type: ACTION_SERVER_PATCH,\n previousTree: baseTree,\n url: retryUrl,\n nextUrl: retryNextUrl,\n seed,\n mpa: isHardRetry,\n }\n dispatchAppRouterAction(retryAction)\n}\n\nasync function fetchMissingDynamicData(\n task: NavigationTask,\n dynamicRequestTree: FlightRouterState,\n url: URL,\n nextUrl: string | null,\n freshnessPolicy: FreshnessPolicy\n): Promise<{\n exitStatus: NavigationTaskExitStatus\n url: URL\n seed: NavigationSeed | null\n}> {\n try {\n const result = await fetchServerResponse(url, {\n flightRouterState: dynamicRequestTree,\n nextUrl,\n isHmrRefresh: freshnessPolicy === FreshnessPolicy.HMRRefresh,\n })\n if (typeof result === 'string') {\n // fetchServerResponse will return an href to indicate that the SPA\n // navigation failed. For example, if the server triggered a hard\n // redirect, or the fetch request errored. Initiate an MPA navigation\n // to the given href.\n return {\n exitStatus: NavigationTaskExitStatus.HardRetry,\n url: new URL(result, location.origin),\n seed: null,\n }\n }\n const seed = convertServerPatchToFullTree(\n task.route,\n result.flightData,\n result.renderedSearch\n )\n const didReceiveUnknownParallelRoute = writeDynamicDataIntoNavigationTask(\n task,\n seed.tree,\n seed.data,\n seed.head,\n result.debugInfo\n )\n return {\n exitStatus: didReceiveUnknownParallelRoute\n ? NavigationTaskExitStatus.SoftRetry\n : NavigationTaskExitStatus.Done,\n url: new URL(result.canonicalUrl, location.origin),\n seed,\n }\n } catch {\n // This shouldn't happen because fetchServerResponse's entire body is\n // wrapped in a try/catch. If it does, though, it implies the server failed\n // to respond with any tree at all. So we must fall back to a hard retry.\n return {\n exitStatus: NavigationTaskExitStatus.HardRetry,\n url: url,\n seed: null,\n }\n }\n}\n\nfunction writeDynamicDataIntoNavigationTask(\n task: NavigationTask,\n serverRouterState: FlightRouterState,\n dynamicData: CacheNodeSeedData | null,\n dynamicHead: HeadData,\n debugInfo: Array | null\n): boolean {\n if (task.status === NavigationTaskStatus.Pending && dynamicData !== null) {\n task.status = NavigationTaskStatus.Fulfilled\n finishPendingCacheNode(task.node, dynamicData, dynamicHead, debugInfo)\n }\n\n const taskChildren = task.children\n const serverChildren = serverRouterState[1]\n const dynamicDataChildren = dynamicData !== null ? dynamicData[1] : null\n\n // Detect whether the server sends a parallel route slot that the client\n // doesn't know about.\n let didReceiveUnknownParallelRoute = false\n\n if (taskChildren !== null) {\n for (const parallelRouteKey in serverChildren) {\n const serverRouterStateChild: FlightRouterState =\n serverChildren[parallelRouteKey]\n const dynamicDataChild: CacheNodeSeedData | null | void =\n dynamicDataChildren !== null\n ? dynamicDataChildren[parallelRouteKey]\n : null\n\n const taskChild = taskChildren.get(parallelRouteKey)\n if (taskChild === undefined) {\n // The server sent a child segment that the client doesn't know about.\n //\n // When we receive an unknown parallel route, we must consider it a\n // mismatch. This is unlike the case where the segment itself\n // mismatches, because multiple routes can be active simultaneously.\n // But a given layout should never have a mismatching set of\n // child slots.\n //\n // Theoretically, this should only happen in development during an HMR\n // refresh, because the set of parallel routes for a layout does not\n // change over the lifetime of a build/deployment. In production, we\n // should have already mismatched on either the build id or the segment\n // path. But as an extra precaution, we validate in prod, too.\n didReceiveUnknownParallelRoute = true\n } else {\n const taskSegment = taskChild.route[0]\n if (\n matchSegment(serverRouterStateChild[0], taskSegment) &&\n dynamicDataChild !== null &&\n dynamicDataChild !== undefined\n ) {\n // Found a match for this task. Keep traversing down the task tree.\n const childDidReceiveUnknownParallelRoute =\n writeDynamicDataIntoNavigationTask(\n taskChild,\n serverRouterStateChild,\n dynamicDataChild,\n dynamicHead,\n debugInfo\n )\n if (childDidReceiveUnknownParallelRoute) {\n didReceiveUnknownParallelRoute = true\n }\n }\n }\n }\n }\n\n return didReceiveUnknownParallelRoute\n}\n\nfunction finishPendingCacheNode(\n cacheNode: CacheNode,\n dynamicData: CacheNodeSeedData,\n dynamicHead: HeadData,\n debugInfo: Array | null\n): void {\n // Writes a dynamic response into an existing Cache Node tree. This does _not_\n // create a new tree, it updates the existing tree in-place. So it must follow\n // the Suspense rules of cache safety — it can resolve pending promises, but\n // it cannot overwrite existing data. It can add segments to the tree (because\n // a missing segment will cause the layout router to suspend).\n // but it cannot delete them.\n //\n // We must resolve every promise in the tree, or else it will suspend\n // indefinitely. If we did not receive data for a segment, we will resolve its\n // data promise to `null` to trigger a lazy fetch during render.\n\n // Use the dynamic data from the server to fulfill the deferred RSC promise\n // on the Cache Node.\n const rsc = cacheNode.rsc\n const dynamicSegmentData = dynamicData[0]\n\n if (dynamicSegmentData === null) {\n // This is an empty CacheNode; this particular server request did not\n // render this segment. There may be a separate pending request that will,\n // though, so we won't abort the task until all pending requests finish.\n return\n }\n\n if (rsc === null) {\n // This is a lazy cache node. We can overwrite it. This is only safe\n // because we know that the LayoutRouter suspends if `rsc` is `null`.\n cacheNode.rsc = dynamicSegmentData\n } else if (isDeferredRsc(rsc)) {\n // This is a deferred RSC promise. We can fulfill it with the data we just\n // received from the server. If it was already resolved by a different\n // navigation, then this does nothing because we can't overwrite data.\n rsc.resolve(dynamicSegmentData, debugInfo)\n } else {\n // This is not a deferred RSC promise, nor is it empty, so it must have\n // been populated by a different navigation. We must not overwrite it.\n }\n\n // If we navigated without a prefetch, then `loading` will be a deferred promise too.\n // Fulfill it using the dynamic response so that we can display the loading boundary.\n const loading = cacheNode.loading\n if (isDeferredRsc(loading)) {\n const dynamicLoading = dynamicData[2]\n loading.resolve(dynamicLoading, debugInfo)\n }\n\n // Check if this is a leaf segment. If so, it will have a `head` property with\n // a pending promise that needs to be resolved with the dynamic head from\n // the server.\n const head = cacheNode.head\n if (isDeferredRsc(head)) {\n head.resolve(dynamicHead, debugInfo)\n }\n}\n\nfunction abortRemainingPendingTasks(\n task: NavigationTask,\n error: any,\n debugInfo: Array | null\n): NavigationTaskExitStatus {\n let exitStatus\n if (task.status === NavigationTaskStatus.Pending) {\n // The data for this segment is still missing.\n task.status = NavigationTaskStatus.Rejected\n abortPendingCacheNode(task.node, error, debugInfo)\n\n // If the server failed to fulfill the data for this segment, it implies\n // that the route tree received from the server mismatched the tree that\n // was previously prefetched.\n //\n // In an app with fully static routes and no proxy-driven redirects or\n // rewrites, this should never happen, because the route for a URL would\n // always be the same across multiple requests. So, this implies that some\n // runtime routing condition changed, likely in a proxy, without being\n // pushed to the client.\n //\n // When this happens, we treat this the same as a refresh(). The entire\n // tree will be re-rendered from the root.\n if (task.refreshUrl === null) {\n // Trigger a \"soft\" refresh. Essentially the same as calling `refresh()`\n // in a Server Action.\n exitStatus = NavigationTaskExitStatus.SoftRetry\n } else {\n // The mismatch was discovered inside an inactive parallel route. This\n // implies the inactive parallel route is no longer reachable at the URL\n // that originally rendered it. Fall back to an MPA refresh.\n // TODO: An alternative could be to trigger a soft refresh but to _not_\n // re-use the inactive parallel routes this time. Similar to what would\n // happen if were to do a hard refrehs, but without the HTML page.\n exitStatus = NavigationTaskExitStatus.HardRetry\n }\n } else {\n // This segment finished. (An error here is treated as Done because they are\n // surfaced to the application during render.)\n exitStatus = NavigationTaskExitStatus.Done\n }\n\n const taskChildren = task.children\n if (taskChildren !== null) {\n for (const [, taskChild] of taskChildren) {\n const childExitStatus = abortRemainingPendingTasks(\n taskChild,\n error,\n debugInfo\n )\n // Propagate the exit status up the tree. The statuses are ordered by\n // their precedence.\n if (childExitStatus > exitStatus) {\n exitStatus = childExitStatus\n }\n }\n }\n\n return exitStatus\n}\n\nfunction abortPendingCacheNode(\n cacheNode: CacheNode,\n error: any,\n debugInfo: Array | null\n): void {\n const rsc = cacheNode.rsc\n if (isDeferredRsc(rsc)) {\n if (error === null) {\n // This will trigger a lazy fetch during render.\n rsc.resolve(null, debugInfo)\n } else {\n // This will trigger an error during rendering.\n rsc.reject(error, debugInfo)\n }\n }\n\n const loading = cacheNode.loading\n if (isDeferredRsc(loading)) {\n loading.resolve(null, debugInfo)\n }\n\n // Check if this is a leaf segment. If so, it will have a `head` property with\n // a pending promise that needs to be resolved. If an error was provided, we\n // will not resolve it with an error, since this is rendered at the root of\n // the app. We want the segment to error, not the entire app.\n const head = cacheNode.head\n if (isDeferredRsc(head)) {\n head.resolve(null, debugInfo)\n }\n}\n\nconst DEFERRED = Symbol()\n\ntype PendingDeferredRsc = Promise & {\n status: 'pending'\n resolve: (value: T, debugInfo: Array | null) => void\n reject: (error: any, debugInfo: Array | null) => void\n tag: Symbol\n _debugInfo: Array\n}\n\ntype FulfilledDeferredRsc = Promise & {\n status: 'fulfilled'\n value: T\n resolve: (value: T, debugInfo: Array | null) => void\n reject: (error: any, debugInfo: Array | null) => void\n tag: Symbol\n _debugInfo: Array\n}\n\ntype RejectedDeferredRsc = Promise & {\n status: 'rejected'\n reason: any\n resolve: (value: T, debugInfo: Array | null) => void\n reject: (error: any, debugInfo: Array | null) => void\n tag: Symbol\n _debugInfo: Array\n}\n\ntype DeferredRsc =\n | PendingDeferredRsc\n | FulfilledDeferredRsc\n | RejectedDeferredRsc\n\n// This type exists to distinguish a DeferredRsc from a Flight promise. It's a\n// compromise to avoid adding an extra field on every Cache Node, which would be\n// awkward because the pre-PPR parts of codebase would need to account for it,\n// too. We can remove it once type Cache Node type is more settled.\nexport function isDeferredRsc(value: any): value is DeferredRsc {\n return value && typeof value === 'object' && value.tag === DEFERRED\n}\n\nfunction createDeferredRsc<\n T extends React.ReactNode = React.ReactNode,\n>(): PendingDeferredRsc {\n // Create an unresolved promise that represents data derived from a Flight\n // response. The promise will be resolved later as soon as we start receiving\n // data from the server, i.e. as soon as the Flight client decodes and returns\n // the top-level response object.\n\n // The `_debugInfo` field contains profiling information. Promises that are\n // created by Flight already have this info added by React; for any derived\n // promise created by the router, we need to transfer the Flight debug info\n // onto the derived promise.\n //\n // The debug info represents the latency between the start of the navigation\n // and the start of rendering. (It does not represent the time it takes for\n // whole stream to finish.)\n const debugInfo: Array = []\n\n let resolve: any\n let reject: any\n const pendingRsc = new Promise((res, rej) => {\n resolve = res\n reject = rej\n }) as PendingDeferredRsc\n pendingRsc.status = 'pending'\n pendingRsc.resolve = (value: T, responseDebugInfo: Array | null) => {\n if (pendingRsc.status === 'pending') {\n const fulfilledRsc: FulfilledDeferredRsc = pendingRsc as any\n fulfilledRsc.status = 'fulfilled'\n fulfilledRsc.value = value\n if (responseDebugInfo !== null) {\n // Transfer the debug info to the derived promise.\n debugInfo.push.apply(debugInfo, responseDebugInfo)\n }\n resolve(value)\n }\n }\n pendingRsc.reject = (error: any, responseDebugInfo: Array | null) => {\n if (pendingRsc.status === 'pending') {\n const rejectedRsc: RejectedDeferredRsc = pendingRsc as any\n rejectedRsc.status = 'rejected'\n rejectedRsc.reason = error\n if (responseDebugInfo !== null) {\n // Transfer the debug info to the derived promise.\n debugInfo.push.apply(debugInfo, responseDebugInfo)\n }\n reject(error)\n }\n }\n pendingRsc.tag = DEFERRED\n pendingRsc._debugInfo = debugInfo\n\n return pendingRsc\n}\n","import type {\n CacheNodeSeedData,\n FlightRouterState,\n FlightSegmentPath,\n} from '../../../shared/lib/app-router-types'\nimport type { CacheNode } from '../../../shared/lib/app-router-types'\nimport type {\n HeadData,\n LoadingModuleData,\n} from '../../../shared/lib/app-router-types'\nimport type { NormalizedFlightData } from '../../flight-data-helpers'\nimport { fetchServerResponse } from '../router-reducer/fetch-server-response'\nimport {\n startPPRNavigation,\n spawnDynamicRequests,\n FreshnessPolicy,\n type NavigationTask,\n type NavigationRequestAccumulation,\n} from '../router-reducer/ppr-navigations'\nimport { createHrefFromUrl } from '../router-reducer/create-href-from-url'\nimport {\n EntryStatus,\n readRouteCacheEntry,\n readSegmentCacheEntry,\n waitForSegmentCacheEntry,\n requestOptimisticRouteCacheEntry,\n type RouteTree,\n type FulfilledRouteCacheEntry,\n} from './cache'\nimport { createCacheKey } from './cache-key'\nimport { addSearchParamsIfPageSegment } from '../../../shared/lib/segment'\nimport { NavigationResultTag } from './types'\n\ntype MPANavigationResult = {\n tag: NavigationResultTag.MPA\n data: string\n}\n\ntype SuccessfulNavigationResult = {\n tag: NavigationResultTag.Success\n data: {\n flightRouterState: FlightRouterState\n cacheNode: CacheNode\n canonicalUrl: string\n renderedSearch: string\n scrollableSegments: Array | null\n shouldScroll: boolean\n hash: string\n }\n}\n\ntype AsyncNavigationResult = {\n tag: NavigationResultTag.Async\n data: Promise\n}\n\nexport type NavigationResult =\n | MPANavigationResult\n | SuccessfulNavigationResult\n | AsyncNavigationResult\n\n/**\n * Navigate to a new URL, using the Segment Cache to construct a response.\n *\n * To allow for synchronous navigations whenever possible, this is not an async\n * function. It returns a promise only if there's no matching prefetch in\n * the cache. Otherwise it returns an immediate result and uses Suspense/RSC to\n * stream in any missing data.\n */\nexport function navigate(\n url: URL,\n currentUrl: URL,\n currentCacheNode: CacheNode | null,\n currentFlightRouterState: FlightRouterState,\n nextUrl: string | null,\n freshnessPolicy: FreshnessPolicy,\n shouldScroll: boolean,\n accumulation: { collectedDebugInfo?: Array }\n): NavigationResult {\n const now = Date.now()\n const href = url.href\n\n // We special case navigations to the exact same URL as the current location.\n // It's a common UI pattern for apps to refresh when you click a link to the\n // current page. So when this happens, we refresh the dynamic data in the page\n // segments.\n //\n // Note that this does not apply if the any part of the hash or search query\n // has changed. This might feel a bit weird but it makes more sense when you\n // consider that the way to trigger this behavior is to click the same link\n // multiple times.\n //\n // TODO: We should probably refresh the *entire* route when this case occurs,\n // not just the page segments. Essentially treating it the same as a refresh()\n // triggered by an action, which is the more explicit way of modeling the UI\n // pattern described above.\n //\n // Also note that this only refreshes the dynamic data, not static/ cached\n // data. If the page segment is fully static and prefetched, the request is\n // skipped. (This is also how refresh() works.)\n const isSamePageNavigation = href === currentUrl.href\n\n const cacheKey = createCacheKey(href, nextUrl)\n const route = readRouteCacheEntry(now, cacheKey)\n if (route !== null && route.status === EntryStatus.Fulfilled) {\n // We have a matching prefetch.\n const snapshot = readRenderSnapshotFromCache(now, route, route.tree)\n const prefetchFlightRouterState = snapshot.flightRouterState\n const prefetchSeedData = snapshot.seedData\n const headSnapshot = readHeadSnapshotFromCache(now, route)\n const prefetchHead = headSnapshot.rsc\n const isPrefetchHeadPartial = headSnapshot.isPartial\n // TODO: The \"canonicalUrl\" stored in the cache doesn't include the hash,\n // because hash entries do not vary by hash fragment. However, the one\n // we set in the router state *does* include the hash, and it's used to\n // sync with the actual browser location. To make this less of a refactor\n // hazard, we should always track the hash separately from the rest of\n // the URL.\n const newCanonicalUrl = route.canonicalUrl + url.hash\n const renderedSearch = route.renderedSearch\n return navigateUsingPrefetchedRouteTree(\n now,\n url,\n currentUrl,\n nextUrl,\n isSamePageNavigation,\n currentCacheNode,\n currentFlightRouterState,\n prefetchFlightRouterState,\n prefetchSeedData,\n prefetchHead,\n isPrefetchHeadPartial,\n newCanonicalUrl,\n renderedSearch,\n freshnessPolicy,\n shouldScroll\n )\n }\n\n // There was no matching route tree in the cache. Let's see if we can\n // construct an \"optimistic\" route tree.\n //\n // Do not construct an optimistic route tree if there was a cache hit, but\n // the entry has a rejected status, since it may have been rejected due to a\n // rewrite or redirect based on the search params.\n //\n // TODO: There are multiple reasons a prefetch might be rejected; we should\n // track them explicitly and choose what to do here based on that.\n if (route === null || route.status !== EntryStatus.Rejected) {\n const optimisticRoute = requestOptimisticRouteCacheEntry(now, url, nextUrl)\n if (optimisticRoute !== null) {\n // We have an optimistic route tree. Proceed with the normal flow.\n const snapshot = readRenderSnapshotFromCache(\n now,\n optimisticRoute,\n optimisticRoute.tree\n )\n const prefetchFlightRouterState = snapshot.flightRouterState\n const prefetchSeedData = snapshot.seedData\n const headSnapshot = readHeadSnapshotFromCache(now, optimisticRoute)\n const prefetchHead = headSnapshot.rsc\n const isPrefetchHeadPartial = headSnapshot.isPartial\n const newCanonicalUrl = optimisticRoute.canonicalUrl + url.hash\n const newRenderedSearch = optimisticRoute.renderedSearch\n return navigateUsingPrefetchedRouteTree(\n now,\n url,\n currentUrl,\n nextUrl,\n isSamePageNavigation,\n currentCacheNode,\n currentFlightRouterState,\n prefetchFlightRouterState,\n prefetchSeedData,\n prefetchHead,\n isPrefetchHeadPartial,\n newCanonicalUrl,\n newRenderedSearch,\n freshnessPolicy,\n shouldScroll\n )\n }\n }\n\n // There's no matching prefetch for this route in the cache.\n let collectedDebugInfo = accumulation.collectedDebugInfo ?? []\n if (accumulation.collectedDebugInfo === undefined) {\n collectedDebugInfo = accumulation.collectedDebugInfo = []\n }\n return {\n tag: NavigationResultTag.Async,\n data: navigateDynamicallyWithNoPrefetch(\n now,\n url,\n currentUrl,\n nextUrl,\n currentCacheNode,\n currentFlightRouterState,\n freshnessPolicy,\n shouldScroll,\n collectedDebugInfo\n ),\n }\n}\n\nexport function navigateToSeededRoute(\n now: number,\n url: URL,\n canonicalUrl: string,\n navigationSeed: NavigationSeed,\n currentUrl: URL,\n currentCacheNode: CacheNode | null,\n currentFlightRouterState: FlightRouterState,\n freshnessPolicy: FreshnessPolicy,\n nextUrl: string | null,\n shouldScroll: boolean\n): SuccessfulNavigationResult | MPANavigationResult {\n // A version of navigate() that accepts the target route tree as an argument\n // rather than reading it from the prefetch cache.\n const accumulation: NavigationRequestAccumulation = {\n scrollableSegments: null,\n separateRefreshUrls: null,\n }\n const isSamePageNavigation = url.href === currentUrl.href\n const task = startPPRNavigation(\n now,\n currentUrl,\n currentCacheNode,\n currentFlightRouterState,\n navigationSeed.tree,\n freshnessPolicy,\n navigationSeed.data,\n navigationSeed.head,\n null,\n null,\n false,\n isSamePageNavigation,\n accumulation\n )\n if (task !== null) {\n spawnDynamicRequests(task, url, nextUrl, freshnessPolicy, accumulation)\n return navigationTaskToResult(\n task,\n canonicalUrl,\n navigationSeed.renderedSearch,\n accumulation.scrollableSegments,\n shouldScroll,\n url.hash\n )\n }\n // Could not perform a SPA navigation. Revert to a full-page (MPA) navigation.\n return {\n tag: NavigationResultTag.MPA,\n data: canonicalUrl,\n }\n}\n\nfunction navigateUsingPrefetchedRouteTree(\n now: number,\n url: URL,\n currentUrl: URL,\n nextUrl: string | null,\n isSamePageNavigation: boolean,\n currentCacheNode: CacheNode | null,\n currentFlightRouterState: FlightRouterState,\n prefetchFlightRouterState: FlightRouterState,\n prefetchSeedData: CacheNodeSeedData | null,\n prefetchHead: HeadData | null,\n isPrefetchHeadPartial: boolean,\n canonicalUrl: string,\n renderedSearch: string,\n freshnessPolicy: FreshnessPolicy,\n shouldScroll: boolean\n): SuccessfulNavigationResult | MPANavigationResult {\n // Recursively construct a prefetch tree by reading from the Segment Cache. To\n // maintain compatibility, we output the same data structures as the old\n // prefetching implementation: FlightRouterState and CacheNodeSeedData.\n // TODO: Eventually updateCacheNodeOnNavigation (or the equivalent) should\n // read from the Segment Cache directly. It's only structured this way for now\n // so we can share code with the old prefetching implementation.\n const accumulation: NavigationRequestAccumulation = {\n scrollableSegments: null,\n separateRefreshUrls: null,\n }\n const seedData = null\n const seedHead = null\n const task = startPPRNavigation(\n now,\n currentUrl,\n currentCacheNode,\n currentFlightRouterState,\n prefetchFlightRouterState,\n freshnessPolicy,\n seedData,\n seedHead,\n prefetchSeedData,\n prefetchHead,\n isPrefetchHeadPartial,\n isSamePageNavigation,\n accumulation\n )\n if (task !== null) {\n spawnDynamicRequests(task, url, nextUrl, freshnessPolicy, accumulation)\n return navigationTaskToResult(\n task,\n canonicalUrl,\n renderedSearch,\n accumulation.scrollableSegments,\n shouldScroll,\n url.hash\n )\n }\n // Could not perform a SPA navigation. Revert to a full-page (MPA) navigation.\n return {\n tag: NavigationResultTag.MPA,\n data: canonicalUrl,\n }\n}\n\nfunction navigationTaskToResult(\n task: NavigationTask,\n canonicalUrl: string,\n renderedSearch: string,\n scrollableSegments: Array | null,\n shouldScroll: boolean,\n hash: string\n): SuccessfulNavigationResult | MPANavigationResult {\n return {\n tag: NavigationResultTag.Success,\n data: {\n flightRouterState: task.route,\n cacheNode: task.node,\n canonicalUrl,\n renderedSearch,\n scrollableSegments,\n shouldScroll,\n hash,\n },\n }\n}\n\nfunction readRenderSnapshotFromCache(\n now: number,\n route: FulfilledRouteCacheEntry,\n tree: RouteTree\n): { flightRouterState: FlightRouterState; seedData: CacheNodeSeedData } {\n let childRouterStates: { [parallelRouteKey: string]: FlightRouterState } = {}\n let childSeedDatas: {\n [parallelRouteKey: string]: CacheNodeSeedData | null\n } = {}\n const slots = tree.slots\n if (slots !== null) {\n for (const parallelRouteKey in slots) {\n const childTree = slots[parallelRouteKey]\n const childResult = readRenderSnapshotFromCache(now, route, childTree)\n childRouterStates[parallelRouteKey] = childResult.flightRouterState\n childSeedDatas[parallelRouteKey] = childResult.seedData\n }\n }\n\n let rsc: React.ReactNode | null = null\n let loading: LoadingModuleData | Promise = null\n let isPartial: boolean = true\n\n const segmentEntry = readSegmentCacheEntry(now, tree.varyPath)\n if (segmentEntry !== null) {\n switch (segmentEntry.status) {\n case EntryStatus.Fulfilled: {\n // Happy path: a cache hit\n rsc = segmentEntry.rsc\n loading = segmentEntry.loading\n isPartial = segmentEntry.isPartial\n break\n }\n case EntryStatus.Pending: {\n // We haven't received data for this segment yet, but there's already\n // an in-progress request. Since it's extremely likely to arrive\n // before the dynamic data response, we might as well use it.\n const promiseForFulfilledEntry = waitForSegmentCacheEntry(segmentEntry)\n rsc = promiseForFulfilledEntry.then((entry) =>\n entry !== null ? entry.rsc : null\n )\n loading = promiseForFulfilledEntry.then((entry) =>\n entry !== null ? entry.loading : null\n )\n // Because the request is still pending, we typically don't know yet\n // whether the response will be partial. We shouldn't skip this segment\n // during the dynamic navigation request. Otherwise, we might need to\n // do yet another request to fill in the remaining data, creating\n // a waterfall.\n //\n // The one exception is if this segment is being fetched with via\n // prefetch={true} (i.e. the \"force stale\" or \"full\" strategy). If so,\n // we can assume the response will be full. This field is set to `false`\n // for such segments.\n isPartial = segmentEntry.isPartial\n break\n }\n case EntryStatus.Empty:\n case EntryStatus.Rejected:\n break\n default:\n segmentEntry satisfies never\n }\n }\n\n // The navigation implementation expects the search params to be\n // included in the segment. However, the Segment Cache tracks search\n // params separately from the rest of the segment key. So we need to\n // add them back here.\n //\n // See corresponding comment in convertFlightRouterStateToTree.\n //\n // TODO: What we should do instead is update the navigation diffing\n // logic to compare search params explicitly. This is a temporary\n // solution until more of the Segment Cache implementation has settled.\n const segment = addSearchParamsIfPageSegment(\n tree.segment,\n Object.fromEntries(new URLSearchParams(route.renderedSearch))\n )\n\n // We don't need this information in a render snapshot, so this can just be a placeholder.\n const hasRuntimePrefetch = false\n\n return {\n flightRouterState: [\n segment,\n childRouterStates,\n null,\n null,\n tree.isRootLayout,\n ],\n seedData: [rsc, childSeedDatas, loading, isPartial, hasRuntimePrefetch],\n }\n}\n\nfunction readHeadSnapshotFromCache(\n now: number,\n route: FulfilledRouteCacheEntry\n): { rsc: HeadData; isPartial: boolean } {\n // Same as readRenderSnapshotFromCache, but for the head\n let rsc: React.ReactNode | null = null\n let isPartial: boolean = true\n const segmentEntry = readSegmentCacheEntry(now, route.metadata.varyPath)\n if (segmentEntry !== null) {\n switch (segmentEntry.status) {\n case EntryStatus.Fulfilled: {\n rsc = segmentEntry.rsc\n isPartial = segmentEntry.isPartial\n break\n }\n case EntryStatus.Pending: {\n const promiseForFulfilledEntry = waitForSegmentCacheEntry(segmentEntry)\n rsc = promiseForFulfilledEntry.then((entry) =>\n entry !== null ? entry.rsc : null\n )\n isPartial = segmentEntry.isPartial\n break\n }\n case EntryStatus.Empty:\n case EntryStatus.Rejected:\n break\n default:\n segmentEntry satisfies never\n }\n }\n return { rsc, isPartial }\n}\n\n// Used to request all the dynamic data for a route, rather than just a subset,\n// e.g. during a refresh or a revalidation. Typically this gets constructed\n// during the normal flow when diffing the route tree, but for an unprefetched\n// navigation, where we don't know the structure of the target route, we use\n// this instead.\nconst DynamicRequestTreeForEntireRoute: FlightRouterState = [\n '',\n {},\n null,\n 'refetch',\n]\n\nasync function navigateDynamicallyWithNoPrefetch(\n now: number,\n url: URL,\n currentUrl: URL,\n nextUrl: string | null,\n currentCacheNode: CacheNode | null,\n currentFlightRouterState: FlightRouterState,\n freshnessPolicy: FreshnessPolicy,\n shouldScroll: boolean,\n collectedDebugInfo: Array\n): Promise {\n // Runs when a navigation happens but there's no cached prefetch we can use.\n // Don't bother to wait for a prefetch response; go straight to a full\n // navigation that contains both static and dynamic data in a single stream.\n // (This is unlike the old navigation implementation, which instead blocks\n // the dynamic request until a prefetch request is received.)\n //\n // To avoid duplication of logic, we're going to pretend that the tree\n // returned by the dynamic request is, in fact, a prefetch tree. Then we can\n // use the same server response to write the actual data into the CacheNode\n // tree. So it's the same flow as the \"happy path\" (prefetch, then\n // navigation), except we use a single server response for both stages.\n\n let dynamicRequestTree: FlightRouterState\n switch (freshnessPolicy) {\n case FreshnessPolicy.Default:\n case FreshnessPolicy.HistoryTraversal:\n dynamicRequestTree = currentFlightRouterState\n break\n case FreshnessPolicy.Hydration: // <- shouldn't happen during client nav\n case FreshnessPolicy.RefreshAll:\n case FreshnessPolicy.HMRRefresh:\n dynamicRequestTree = DynamicRequestTreeForEntireRoute\n break\n default:\n freshnessPolicy satisfies never\n dynamicRequestTree = currentFlightRouterState\n break\n }\n\n const promiseForDynamicServerResponse = fetchServerResponse(url, {\n flightRouterState: dynamicRequestTree,\n nextUrl,\n })\n const result = await promiseForDynamicServerResponse\n if (typeof result === 'string') {\n // This is an MPA navigation.\n const newUrl = result\n return {\n tag: NavigationResultTag.MPA,\n data: newUrl,\n }\n }\n\n const {\n flightData,\n canonicalUrl,\n renderedSearch,\n debugInfo: debugInfoFromResponse,\n } = result\n if (debugInfoFromResponse !== null) {\n collectedDebugInfo.push(...debugInfoFromResponse)\n }\n\n // Since the response format of dynamic requests and prefetches is slightly\n // different, we'll need to massage the data a bit. Create FlightRouterState\n // tree that simulates what we'd receive as the result of a prefetch.\n const navigationSeed = convertServerPatchToFullTree(\n currentFlightRouterState,\n flightData,\n renderedSearch\n )\n\n return navigateToSeededRoute(\n now,\n url,\n createHrefFromUrl(canonicalUrl),\n navigationSeed,\n currentUrl,\n currentCacheNode,\n currentFlightRouterState,\n freshnessPolicy,\n nextUrl,\n shouldScroll\n )\n}\n\nexport type NavigationSeed = {\n tree: FlightRouterState\n renderedSearch: string\n data: CacheNodeSeedData | null\n head: HeadData | null\n}\n\nexport function convertServerPatchToFullTree(\n currentTree: FlightRouterState,\n flightData: Array,\n renderedSearch: string\n): NavigationSeed {\n // During a client navigation or prefetch, the server sends back only a patch\n // for the parts of the tree that have changed.\n //\n // This applies the patch to the base tree to create a full representation of\n // the resulting tree.\n //\n // The return type includes a full FlightRouterState tree and a full\n // CacheNodeSeedData tree. (Conceptually these are the same tree, and should\n // eventually be unified, but there's still lots of existing code that\n // operates on FlightRouterState trees alone without the CacheNodeSeedData.)\n //\n // TODO: This similar to what apply-router-state-patch-to-tree does. It\n // will eventually fully replace it. We should get rid of all the remaining\n // places where we iterate over the server patch format. This should also\n // eventually replace normalizeFlightData.\n\n let baseTree: FlightRouterState = currentTree\n let baseData: CacheNodeSeedData | null = null\n let head: HeadData | null = null\n for (const {\n segmentPath,\n tree: treePatch,\n seedData: dataPatch,\n head: headPatch,\n } of flightData) {\n const result = convertServerPatchToFullTreeImpl(\n baseTree,\n baseData,\n treePatch,\n dataPatch,\n segmentPath,\n 0\n )\n baseTree = result.tree\n baseData = result.data\n // This is the same for all patches per response, so just pick an\n // arbitrary one\n head = headPatch\n }\n\n return {\n tree: baseTree,\n data: baseData,\n renderedSearch,\n head,\n }\n}\n\nfunction convertServerPatchToFullTreeImpl(\n baseRouterState: FlightRouterState,\n baseData: CacheNodeSeedData | null,\n treePatch: FlightRouterState,\n dataPatch: CacheNodeSeedData | null,\n segmentPath: FlightSegmentPath,\n index: number\n): { tree: FlightRouterState; data: CacheNodeSeedData | null } {\n if (index === segmentPath.length) {\n // We reached the part of the tree that we need to patch.\n return {\n tree: treePatch,\n data: dataPatch,\n }\n }\n\n // segmentPath represents the parent path of subtree. It's a repeating\n // pattern of parallel route key and segment:\n //\n // [string, Segment, string, Segment, string, Segment, ...]\n //\n // This path tells us which part of the base tree to apply the tree patch.\n //\n // NOTE: We receive the FlightRouterState patch in the same request as the\n // seed data patch. Therefore we don't need to worry about diffing the segment\n // values; we can assume the server sent us a correct result.\n const updatedParallelRouteKey: string = segmentPath[index]\n // const segment: Segment = segmentPath[index + 1] <-- Not used, see note above\n\n const baseTreeChildren = baseRouterState[1]\n const baseSeedDataChildren = baseData !== null ? baseData[1] : null\n const newTreeChildren: Record = {}\n const newSeedDataChildren: Record = {}\n for (const parallelRouteKey in baseTreeChildren) {\n const childBaseRouterState = baseTreeChildren[parallelRouteKey]\n const childBaseSeedData =\n baseSeedDataChildren !== null\n ? (baseSeedDataChildren[parallelRouteKey] ?? null)\n : null\n if (parallelRouteKey === updatedParallelRouteKey) {\n const result = convertServerPatchToFullTreeImpl(\n childBaseRouterState,\n childBaseSeedData,\n treePatch,\n dataPatch,\n segmentPath,\n // Advance the index by two and keep cloning until we reach\n // the end of the segment path.\n index + 2\n )\n\n newTreeChildren[parallelRouteKey] = result.tree\n newSeedDataChildren[parallelRouteKey] = result.data\n } else {\n // This child is not being patched. Copy it over as-is.\n newTreeChildren[parallelRouteKey] = childBaseRouterState\n newSeedDataChildren[parallelRouteKey] = childBaseSeedData\n }\n }\n\n let clonedTree: FlightRouterState\n let clonedSeedData: CacheNodeSeedData\n // Clone all the fields except the children.\n\n // Clone the FlightRouterState tree. Based on equivalent logic in\n // apply-router-state-patch-to-tree, but should confirm whether we need to\n // copy all of these fields. Not sure the server ever sends, e.g. the\n // refetch marker.\n clonedTree = [baseRouterState[0], newTreeChildren]\n if (2 in baseRouterState) {\n clonedTree[2] = baseRouterState[2]\n }\n if (3 in baseRouterState) {\n clonedTree[3] = baseRouterState[3]\n }\n if (4 in baseRouterState) {\n clonedTree[4] = baseRouterState[4]\n }\n\n // Clone the CacheNodeSeedData tree.\n const isEmptySeedDataPartial = true\n clonedSeedData = [\n null,\n newSeedDataChildren,\n null,\n isEmptySeedDataPartial,\n false,\n ]\n\n return {\n tree: clonedTree,\n data: clonedSeedData,\n }\n}\n","import type {\n FlightRouterState,\n FlightSegmentPath,\n} from '../../../../shared/lib/app-router-types'\nimport { createHrefFromUrl } from '../create-href-from-url'\nimport type {\n Mutable,\n NavigateAction,\n ReadonlyReducerState,\n ReducerState,\n} from '../router-reducer-types'\nimport { handleMutable } from '../handle-mutable'\n\nimport {\n navigate as navigateUsingSegmentCache,\n type NavigationResult,\n} from '../../segment-cache/navigation'\nimport { NavigationResultTag } from '../../segment-cache/types'\nimport { getStaleTimeMs } from '../../segment-cache/cache'\nimport { FreshnessPolicy } from '../ppr-navigations'\n\n// These values are set by `define-env-plugin` (based on `nextConfig.experimental.staleTimes`)\n// and default to 5 minutes (static) / 0 seconds (dynamic)\nexport const DYNAMIC_STALETIME_MS =\n Number(process.env.__NEXT_CLIENT_ROUTER_DYNAMIC_STALETIME) * 1000\n\nexport const STATIC_STALETIME_MS = getStaleTimeMs(\n Number(process.env.__NEXT_CLIENT_ROUTER_STATIC_STALETIME)\n)\n\nexport function handleExternalUrl(\n state: ReadonlyReducerState,\n mutable: Mutable,\n url: string,\n pendingPush: boolean\n) {\n mutable.mpaNavigation = true\n mutable.canonicalUrl = url\n mutable.pendingPush = pendingPush\n mutable.scrollableSegments = undefined\n\n return handleMutable(state, mutable)\n}\n\nexport function generateSegmentsFromPatch(\n flightRouterPatch: FlightRouterState\n): FlightSegmentPath[] {\n const segments: FlightSegmentPath[] = []\n const [segment, parallelRoutes] = flightRouterPatch\n\n if (Object.keys(parallelRoutes).length === 0) {\n return [[segment]]\n }\n\n for (const [parallelRouteKey, parallelRoute] of Object.entries(\n parallelRoutes\n )) {\n for (const childSegment of generateSegmentsFromPatch(parallelRoute)) {\n // If the segment is empty, it means we are at the root of the tree\n if (segment === '') {\n segments.push([parallelRouteKey, ...childSegment])\n } else {\n segments.push([segment, parallelRouteKey, ...childSegment])\n }\n }\n }\n\n return segments\n}\n\nexport function handleNavigationResult(\n url: URL,\n state: ReadonlyReducerState,\n mutable: Mutable,\n pendingPush: boolean,\n result: NavigationResult\n): ReducerState {\n switch (result.tag) {\n case NavigationResultTag.MPA: {\n // Perform an MPA navigation.\n const newUrl = result.data\n return handleExternalUrl(state, mutable, newUrl, pendingPush)\n }\n case NavigationResultTag.Success: {\n // Received a new result.\n mutable.cache = result.data.cacheNode\n mutable.patchedTree = result.data.flightRouterState\n mutable.renderedSearch = result.data.renderedSearch\n mutable.canonicalUrl = result.data.canonicalUrl\n // TODO: During a refresh, we don't set the `scrollableSegments`. There's\n // some confusing and subtle logic in `handleMutable` that decides what\n // to do when `shouldScroll` is set but `scrollableSegments` is not. I'm\n // not convinced it's totally coherent but the tests assert on this\n // particular behavior so I've ported the logic as-is from the previous\n // router implementation, for now.\n mutable.scrollableSegments = result.data.scrollableSegments ?? undefined\n mutable.shouldScroll = result.data.shouldScroll\n mutable.hashFragment = result.data.hash\n\n // Check if the only thing that changed was the hash fragment.\n const oldUrl = new URL(state.canonicalUrl, url)\n const onlyHashChange =\n // We don't need to compare the origins, because client-driven\n // navigations are always same-origin.\n url.pathname === oldUrl.pathname &&\n url.search === oldUrl.search &&\n url.hash !== oldUrl.hash\n if (onlyHashChange) {\n // The only updated part of the URL is the hash.\n mutable.onlyHashChange = true\n mutable.shouldScroll = result.data.shouldScroll\n mutable.hashFragment = url.hash\n // Setting this to an empty array triggers a scroll for all new and\n // updated segments. See `ScrollAndFocusHandler` for more details.\n mutable.scrollableSegments = []\n }\n\n return handleMutable(state, mutable)\n }\n case NavigationResultTag.Async: {\n return result.data.then(\n (asyncResult) =>\n handleNavigationResult(url, state, mutable, pendingPush, asyncResult),\n // If the navigation failed, return the current state.\n // TODO: This matches the current behavior but we need to do something\n // better here if the network fails.\n () => {\n return state\n }\n )\n }\n default: {\n result satisfies never\n return state\n }\n }\n}\n\nexport function navigateReducer(\n state: ReadonlyReducerState,\n action: NavigateAction\n): ReducerState {\n const { url, isExternalUrl, navigateType, shouldScroll } = action\n const mutable: Mutable = {}\n const href = createHrefFromUrl(url)\n const pendingPush = navigateType === 'push'\n\n mutable.preserveCustomHistoryState = false\n mutable.pendingPush = pendingPush\n\n if (isExternalUrl) {\n return handleExternalUrl(state, mutable, url.toString(), pendingPush)\n }\n\n // Handles case where `` tag is present,\n // which will trigger an MPA navigation.\n if (document.getElementById('__next-page-redirect')) {\n return handleExternalUrl(state, mutable, href, pendingPush)\n }\n\n // Temporary glue code between the router reducer and the new navigation\n // implementation. Eventually we'll rewrite the router reducer to a\n // state machine.\n const currentUrl = new URL(state.canonicalUrl, location.origin)\n const result = navigateUsingSegmentCache(\n url,\n currentUrl,\n state.cache,\n state.tree,\n state.nextUrl,\n FreshnessPolicy.Default,\n shouldScroll,\n mutable\n )\n return handleNavigationResult(url, state, mutable, pendingPush, result)\n}\n","export function createPromiseWithResolvers(): PromiseWithResolvers {\n // Shim of Stage 4 Promise.withResolvers proposal\n let resolve: (value: T | PromiseLike) => void\n let reject: (reason: any) => void\n const promise = new Promise((res, rej) => {\n resolve = res\n reject = rej\n })\n return { resolve: resolve!, reject: reject!, promise }\n}\n","import type {\n TreePrefetch,\n RootTreePrefetch,\n SegmentPrefetch,\n} from '../../../server/app-render/collect-segment-data'\nimport type { LoadingModuleData } from '../../../shared/lib/app-router-types'\nimport type {\n CacheNodeSeedData,\n Segment as FlightRouterStateSegment,\n} from '../../../shared/lib/app-router-types'\nimport { HasLoadingBoundary } from '../../../shared/lib/app-router-types'\nimport {\n NEXT_DID_POSTPONE_HEADER,\n NEXT_ROUTER_PREFETCH_HEADER,\n NEXT_ROUTER_SEGMENT_PREFETCH_HEADER,\n NEXT_ROUTER_STALE_TIME_HEADER,\n NEXT_ROUTER_STATE_TREE_HEADER,\n NEXT_URL,\n RSC_CONTENT_TYPE_HEADER,\n RSC_HEADER,\n} from '../app-router-headers'\nimport {\n createFetch,\n createFromNextReadableStream,\n type RSCResponse,\n type RequestHeaders,\n} from '../router-reducer/fetch-server-response'\nimport {\n pingPrefetchTask,\n isPrefetchTaskDirty,\n type PrefetchTask,\n type PrefetchSubtaskResult,\n startRevalidationCooldown,\n} from './scheduler'\nimport {\n type RouteVaryPath,\n type SegmentVaryPath,\n type PartialSegmentVaryPath,\n getRouteVaryPath,\n getFulfilledRouteVaryPath,\n getSegmentVaryPathForRequest,\n appendLayoutVaryPath,\n finalizeLayoutVaryPath,\n finalizePageVaryPath,\n clonePageVaryPathWithNewSearchParams,\n type PageVaryPath,\n finalizeMetadataVaryPath,\n} from './vary-path'\nimport { getAppBuildId } from '../../app-build-id'\nimport { createHrefFromUrl } from '../router-reducer/create-href-from-url'\nimport type { NormalizedSearch, RouteCacheKey } from './cache-key'\n// TODO: Rename this module to avoid confusion with other types of cache keys\nimport { createCacheKey as createPrefetchRequestKey } from './cache-key'\nimport {\n doesStaticSegmentAppearInURL,\n getCacheKeyForDynamicParam,\n getRenderedPathname,\n getRenderedSearch,\n parseDynamicParamFromURLPart,\n} from '../../route-params'\nimport {\n createCacheMap,\n getFromCacheMap,\n setInCacheMap,\n setSizeInCacheMap,\n deleteFromCacheMap,\n isValueExpired,\n type CacheMap,\n type UnknownMapEntry,\n} from './cache-map'\nimport {\n appendSegmentRequestKeyPart,\n convertSegmentPathToStaticExportFilename,\n createSegmentRequestKeyPart,\n HEAD_REQUEST_KEY,\n ROOT_SEGMENT_REQUEST_KEY,\n type SegmentRequestKey,\n} from '../../../shared/lib/segment-cache/segment-value-encoding'\nimport type {\n FlightRouterState,\n NavigationFlightResponse,\n} from '../../../shared/lib/app-router-types'\nimport {\n normalizeFlightData,\n prepareFlightRouterStateForRequest,\n} from '../../flight-data-helpers'\nimport { STATIC_STALETIME_MS } from '../router-reducer/reducers/navigate-reducer'\nimport { pingVisibleLinks } from '../links'\nimport { PAGE_SEGMENT_KEY } from '../../../shared/lib/segment'\nimport { FetchStrategy } from './types'\nimport { createPromiseWithResolvers } from '../../../shared/lib/promise-with-resolvers'\n\n/**\n * Ensures a minimum stale time of 30s to avoid issues where the server sends a too\n * short-lived stale time, which would prevent anything from being prefetched.\n */\nexport function getStaleTimeMs(staleTimeSeconds: number): number {\n return Math.max(staleTimeSeconds, 30) * 1000\n}\n\n// A note on async/await when working in the prefetch cache:\n//\n// Most async operations in the prefetch cache should *not* use async/await,\n// Instead, spawn a subtask that writes the results to a cache entry, and attach\n// a \"ping\" listener to notify the prefetch queue to try again.\n//\n// The reason is we need to be able to access the segment cache and traverse its\n// data structures synchronously. For example, if there's a synchronous update\n// we can take an immediate snapshot of the cache to produce something we can\n// render. Limiting the use of async/await also makes it easier to avoid race\n// conditions, which is especially important because is cache is mutable.\n//\n// Another reason is that while we're performing async work, it's possible for\n// existing entries to become stale, or for Link prefetches to be removed from\n// the queue. For optimal scheduling, we need to be able to \"cancel\" subtasks\n// that are no longer needed. So, when a segment is received from the server, we\n// restart from the root of the tree that's being prefetched, to confirm all the\n// parent segments are still cached. If the segment is no longer reachable from\n// the root, then it's effectively canceled. This is similar to the design of\n// Rust Futures, or React Suspense.\n\ntype RouteTreeShared = {\n requestKey: SegmentRequestKey\n // TODO: Remove the `segment` field, now that it can be reconstructed\n // from `param`.\n segment: FlightRouterStateSegment\n slots: null | {\n [parallelRouteKey: string]: RouteTree\n }\n isRootLayout: boolean\n\n // If this is a dynamic route, indicates whether there is a loading boundary\n // somewhere in the tree. If not, we can skip the prefetch for the data,\n // because we know it would be an empty response. (For a static/PPR route,\n // this value is disregarded, because in that model `loading.tsx` is treated\n // like any other Suspense boundary.)\n hasLoadingBoundary: HasLoadingBoundary\n\n // Indicates whether this route has a runtime prefetch that we can request.\n // This is determined by the server; it's not purely a user configuration\n // because the server may determine that a route is fully static and doesn't\n // need runtime prefetching regardless of the configuration.\n hasRuntimePrefetch: boolean\n}\n\ntype LayoutRouteTree = RouteTreeShared & {\n isPage: false\n varyPath: SegmentVaryPath\n}\n\ntype PageRouteTree = RouteTreeShared & {\n isPage: true\n varyPath: PageVaryPath\n}\n\nexport type RouteTree = LayoutRouteTree | PageRouteTree\n\ntype RouteCacheEntryShared = {\n // This is false only if we're certain the route cannot be intercepted. It's\n // true in all other cases, including on initialization when we haven't yet\n // received a response from the server.\n couldBeIntercepted: boolean\n\n // Map-related fields.\n ref: UnknownMapEntry | null\n size: number\n staleAt: number\n version: number\n}\n\n/**\n * Tracks the status of a cache entry as it progresses from no data (Empty),\n * waiting for server data (Pending), and finished (either Fulfilled or\n * Rejected depending on the response from the server.\n */\nexport const enum EntryStatus {\n Empty = 0,\n Pending = 1,\n Fulfilled = 2,\n Rejected = 3,\n}\n\ntype PendingRouteCacheEntry = RouteCacheEntryShared & {\n status: EntryStatus.Empty | EntryStatus.Pending\n blockedTasks: Set | null\n canonicalUrl: null\n renderedSearch: null\n tree: null\n metadata: null\n isPPREnabled: false\n}\n\ntype RejectedRouteCacheEntry = RouteCacheEntryShared & {\n status: EntryStatus.Rejected\n blockedTasks: Set | null\n canonicalUrl: null\n renderedSearch: null\n tree: null\n metadata: null\n isPPREnabled: boolean\n}\n\nexport type FulfilledRouteCacheEntry = RouteCacheEntryShared & {\n status: EntryStatus.Fulfilled\n blockedTasks: null\n canonicalUrl: string\n renderedSearch: NormalizedSearch\n tree: RouteTree\n metadata: RouteTree\n isPPREnabled: boolean\n}\n\nexport type RouteCacheEntry =\n | PendingRouteCacheEntry\n | FulfilledRouteCacheEntry\n | RejectedRouteCacheEntry\n\ntype SegmentCacheEntryShared = {\n fetchStrategy: FetchStrategy\n\n // Map-related fields.\n ref: UnknownMapEntry | null\n size: number\n staleAt: number\n version: number\n}\n\nexport type EmptySegmentCacheEntry = SegmentCacheEntryShared & {\n status: EntryStatus.Empty\n rsc: null\n loading: null\n isPartial: true\n promise: null\n}\n\nexport type PendingSegmentCacheEntry = SegmentCacheEntryShared & {\n status: EntryStatus.Pending\n rsc: null\n loading: null\n isPartial: boolean\n promise: null | PromiseWithResolvers\n}\n\ntype RejectedSegmentCacheEntry = SegmentCacheEntryShared & {\n status: EntryStatus.Rejected\n rsc: null\n loading: null\n isPartial: true\n promise: null\n}\n\nexport type FulfilledSegmentCacheEntry = SegmentCacheEntryShared & {\n status: EntryStatus.Fulfilled\n rsc: React.ReactNode | null\n loading: LoadingModuleData | Promise\n isPartial: boolean\n promise: null\n}\n\nexport type SegmentCacheEntry =\n | EmptySegmentCacheEntry\n | PendingSegmentCacheEntry\n | RejectedSegmentCacheEntry\n | FulfilledSegmentCacheEntry\n\nexport type NonEmptySegmentCacheEntry = Exclude<\n SegmentCacheEntry,\n EmptySegmentCacheEntry\n>\n\nconst isOutputExportMode =\n process.env.NODE_ENV === 'production' &&\n process.env.__NEXT_CONFIG_OUTPUT === 'export'\n\nconst MetadataOnlyRequestTree: FlightRouterState = [\n '',\n {},\n null,\n 'metadata-only',\n]\n\nlet routeCacheMap: CacheMap = createCacheMap()\nlet segmentCacheMap: CacheMap = createCacheMap()\n\n// All invalidation listeners for the whole cache are tracked in single set.\n// Since we don't yet support tag or path-based invalidation, there's no point\n// tracking them any more granularly than this. Once we add granular\n// invalidation, that may change, though generally the model is to just notify\n// the listeners and allow the caller to poll the prefetch cache with a new\n// prefetch task if desired.\nlet invalidationListeners: Set | null = null\n\n// Incrementing counter used to track cache invalidations.\nlet currentCacheVersion = 0\n\nexport function getCurrentCacheVersion(): number {\n return currentCacheVersion\n}\n\n/**\n * Used to clear the client prefetch cache when a server action calls\n * revalidatePath or revalidateTag. Eventually we will support only clearing the\n * segments that were actually affected, but there's more work to be done on the\n * server before the client is able to do this correctly.\n */\nexport function revalidateEntireCache(\n nextUrl: string | null,\n tree: FlightRouterState\n) {\n // Increment the current cache version. This does not eagerly evict anything\n // from the cache, but because all the entries are versioned, and we check\n // the version when reading from the cache, this effectively causes all\n // entries to be evicted lazily. We do it lazily because in the future,\n // actions like revalidateTag or refresh will not evict the entire cache,\n // but rather some subset of the entries.\n currentCacheVersion++\n\n // Start a cooldown before re-prefetching to allow CDN cache propagation.\n startRevalidationCooldown()\n\n // Prefetch all the currently visible links again, to re-fill the cache.\n pingVisibleLinks(nextUrl, tree)\n\n // Similarly, notify all invalidation listeners (i.e. those passed to\n // `router.prefetch(onInvalidate)`), so they can trigger a new prefetch\n // if needed.\n pingInvalidationListeners(nextUrl, tree)\n}\n\nfunction attachInvalidationListener(task: PrefetchTask): void {\n // This function is called whenever a prefetch task reads a cache entry. If\n // the task has an onInvalidate function associated with it — i.e. the one\n // optionally passed to router.prefetch(onInvalidate) — then we attach that\n // listener to the every cache entry that the task reads. Then, if an entry\n // is invalidated, we call the function.\n if (task.onInvalidate !== null) {\n if (invalidationListeners === null) {\n invalidationListeners = new Set([task])\n } else {\n invalidationListeners.add(task)\n }\n }\n}\n\nfunction notifyInvalidationListener(task: PrefetchTask): void {\n const onInvalidate = task.onInvalidate\n if (onInvalidate !== null) {\n // Clear the callback from the task object to guarantee it's not called more\n // than once.\n task.onInvalidate = null\n\n // This is a user-space function, so we must wrap in try/catch.\n try {\n onInvalidate()\n } catch (error) {\n if (typeof reportError === 'function') {\n reportError(error)\n } else {\n console.error(error)\n }\n }\n }\n}\n\nexport function pingInvalidationListeners(\n nextUrl: string | null,\n tree: FlightRouterState\n): void {\n // The rough equivalent of pingVisibleLinks, but for onInvalidate callbacks.\n // This is called when the Next-Url or the base tree changes, since those\n // may affect the result of a prefetch task. It's also called after a\n // cache invalidation.\n if (invalidationListeners !== null) {\n const tasks = invalidationListeners\n invalidationListeners = null\n for (const task of tasks) {\n if (isPrefetchTaskDirty(task, nextUrl, tree)) {\n notifyInvalidationListener(task)\n }\n }\n }\n}\n\nexport function readRouteCacheEntry(\n now: number,\n key: RouteCacheKey\n): RouteCacheEntry | null {\n const varyPath: RouteVaryPath = getRouteVaryPath(\n key.pathname,\n key.search,\n key.nextUrl\n )\n const isRevalidation = false\n return getFromCacheMap(\n now,\n getCurrentCacheVersion(),\n routeCacheMap,\n varyPath,\n isRevalidation\n )\n}\n\nexport function readSegmentCacheEntry(\n now: number,\n varyPath: SegmentVaryPath\n): SegmentCacheEntry | null {\n const isRevalidation = false\n return getFromCacheMap(\n now,\n getCurrentCacheVersion(),\n segmentCacheMap,\n varyPath,\n isRevalidation\n )\n}\n\nfunction readRevalidatingSegmentCacheEntry(\n now: number,\n varyPath: SegmentVaryPath\n): SegmentCacheEntry | null {\n const isRevalidation = true\n return getFromCacheMap(\n now,\n getCurrentCacheVersion(),\n segmentCacheMap,\n varyPath,\n isRevalidation\n )\n}\n\nexport function waitForSegmentCacheEntry(\n pendingEntry: PendingSegmentCacheEntry\n): Promise {\n // Because the entry is pending, there's already a in-progress request.\n // Attach a promise to the entry that will resolve when the server responds.\n let promiseWithResolvers = pendingEntry.promise\n if (promiseWithResolvers === null) {\n promiseWithResolvers = pendingEntry.promise =\n createPromiseWithResolvers()\n } else {\n // There's already a promise we can use\n }\n return promiseWithResolvers.promise\n}\n\n/**\n * Checks if an entry for a route exists in the cache. If so, it returns the\n * entry, If not, it adds an empty entry to the cache and returns it.\n */\nexport function readOrCreateRouteCacheEntry(\n now: number,\n task: PrefetchTask,\n key: RouteCacheKey\n): RouteCacheEntry {\n attachInvalidationListener(task)\n\n const existingEntry = readRouteCacheEntry(now, key)\n if (existingEntry !== null) {\n return existingEntry\n }\n // Create a pending entry and add it to the cache.\n const pendingEntry: PendingRouteCacheEntry = {\n canonicalUrl: null,\n status: EntryStatus.Empty,\n blockedTasks: null,\n tree: null,\n metadata: null,\n // This is initialized to true because we don't know yet whether the route\n // could be intercepted. It's only set to false once we receive a response\n // from the server.\n couldBeIntercepted: true,\n // Similarly, we don't yet know if the route supports PPR.\n isPPREnabled: false,\n renderedSearch: null,\n\n // Map-related fields\n ref: null,\n size: 0,\n // Since this is an empty entry, there's no reason to ever evict it. It will\n // be updated when the data is populated.\n staleAt: Infinity,\n version: getCurrentCacheVersion(),\n }\n const varyPath: RouteVaryPath = getRouteVaryPath(\n key.pathname,\n key.search,\n key.nextUrl\n )\n const isRevalidation = false\n setInCacheMap(routeCacheMap, varyPath, pendingEntry, isRevalidation)\n return pendingEntry\n}\n\nexport function requestOptimisticRouteCacheEntry(\n now: number,\n requestedUrl: URL,\n nextUrl: string | null\n): FulfilledRouteCacheEntry | null {\n // This function is called during a navigation when there was no matching\n // route tree in the prefetch cache. Before de-opting to a blocking,\n // unprefetched navigation, we will first attempt to construct an \"optimistic\"\n // route tree by checking the cache for similar routes.\n //\n // Check if there's a route with the same pathname, but with different\n // search params. We can then base our optimistic route tree on this entry.\n //\n // Conceptually, we are simulating what would happen if we did perform a\n // prefetch the requested URL, under the assumption that the server will\n // not redirect or rewrite the request in a different manner than the\n // base route tree. This assumption might not hold, in which case we'll have\n // to recover when we perform the dynamic navigation request. However, this\n // is what would happen if a route were dynamically rewritten/redirected\n // in between the prefetch and the navigation. So the logic needs to exist\n // to handle this case regardless.\n\n // Look for a route with the same pathname, but with an empty search string.\n // TODO: There's nothing inherently special about the empty search string;\n // it's chosen somewhat arbitrarily, with the rationale that it's the most\n // likely one to exist. But we should update this to match _any_ search\n // string. The plan is to generalize this logic alongside other improvements\n // related to \"fallback\" cache entries.\n const requestedSearch = requestedUrl.search as NormalizedSearch\n if (requestedSearch === '') {\n // The caller would have already checked if a route with an empty search\n // string is in the cache. So we can bail out here.\n return null\n }\n const urlWithoutSearchParams = new URL(requestedUrl)\n urlWithoutSearchParams.search = ''\n const routeWithNoSearchParams = readRouteCacheEntry(\n now,\n createPrefetchRequestKey(urlWithoutSearchParams.href, nextUrl)\n )\n\n if (\n routeWithNoSearchParams === null ||\n routeWithNoSearchParams.status !== EntryStatus.Fulfilled\n ) {\n // Bail out of constructing an optimistic route tree. This will result in\n // a blocking, unprefetched navigation.\n return null\n }\n\n // Now we have a base route tree we can \"patch\" with our optimistic values.\n\n // Optimistically assume that redirects for the requested pathname do\n // not vary on the search string. Therefore, if the base route was\n // redirected to a different search string, then the optimistic route\n // should be redirected to the same search string. Otherwise, we use\n // the requested search string.\n const canonicalUrlForRouteWithNoSearchParams = new URL(\n routeWithNoSearchParams.canonicalUrl,\n requestedUrl.origin\n )\n const optimisticCanonicalSearch =\n canonicalUrlForRouteWithNoSearchParams.search !== ''\n ? // Base route was redirected. Reuse the same redirected search string.\n canonicalUrlForRouteWithNoSearchParams.search\n : requestedSearch\n\n // Similarly, optimistically assume that rewrites for the requested\n // pathname do not vary on the search string. Therefore, if the base\n // route was rewritten to a different search string, then the optimistic\n // route should be rewritten to the same search string. Otherwise, we use\n // the requested search string.\n const optimisticRenderedSearch =\n routeWithNoSearchParams.renderedSearch !== ''\n ? // Base route was rewritten. Reuse the same rewritten search string.\n routeWithNoSearchParams.renderedSearch\n : requestedSearch\n\n const optimisticUrl = new URL(\n routeWithNoSearchParams.canonicalUrl,\n location.origin\n )\n optimisticUrl.search = optimisticCanonicalSearch\n const optimisticCanonicalUrl = createHrefFromUrl(optimisticUrl)\n\n const optimisticRouteTree = createOptimisticRouteTree(\n routeWithNoSearchParams.tree,\n optimisticRenderedSearch\n )\n const optimisticMetadataTree = createOptimisticRouteTree(\n routeWithNoSearchParams.metadata,\n optimisticRenderedSearch\n )\n\n // Clone the base route tree, and override the relevant fields with our\n // optimistic values.\n const optimisticEntry: FulfilledRouteCacheEntry = {\n canonicalUrl: optimisticCanonicalUrl,\n\n status: EntryStatus.Fulfilled,\n // This isn't cloned because it's instance-specific\n blockedTasks: null,\n tree: optimisticRouteTree,\n metadata: optimisticMetadataTree,\n couldBeIntercepted: routeWithNoSearchParams.couldBeIntercepted,\n isPPREnabled: routeWithNoSearchParams.isPPREnabled,\n\n // Override the rendered search with the optimistic value.\n renderedSearch: optimisticRenderedSearch,\n\n // Map-related fields\n ref: null,\n size: 0,\n staleAt: routeWithNoSearchParams.staleAt,\n version: routeWithNoSearchParams.version,\n }\n\n // Do not insert this entry into the cache. It only exists so we can\n // perform the current navigation. Just return it to the caller.\n return optimisticEntry\n}\n\nfunction createOptimisticRouteTree(\n tree: RouteTree,\n newRenderedSearch: NormalizedSearch\n): RouteTree {\n // Create a new route tree that identical to the original one except for\n // the rendered search string, which is contained in the vary path.\n\n let clonedSlots: Record | null = null\n const originalSlots = tree.slots\n if (originalSlots !== null) {\n clonedSlots = {}\n for (const parallelRouteKey in originalSlots) {\n const childTree = originalSlots[parallelRouteKey]\n clonedSlots[parallelRouteKey] = createOptimisticRouteTree(\n childTree,\n newRenderedSearch\n )\n }\n }\n\n // We only need to clone the vary path if the route is a page.\n if (tree.isPage) {\n return {\n requestKey: tree.requestKey,\n segment: tree.segment,\n varyPath: clonePageVaryPathWithNewSearchParams(\n tree.varyPath,\n newRenderedSearch\n ),\n isPage: true,\n slots: clonedSlots,\n isRootLayout: tree.isRootLayout,\n hasLoadingBoundary: tree.hasLoadingBoundary,\n hasRuntimePrefetch: tree.hasRuntimePrefetch,\n }\n }\n\n return {\n requestKey: tree.requestKey,\n segment: tree.segment,\n varyPath: tree.varyPath,\n isPage: false,\n slots: clonedSlots,\n isRootLayout: tree.isRootLayout,\n hasLoadingBoundary: tree.hasLoadingBoundary,\n hasRuntimePrefetch: tree.hasRuntimePrefetch,\n }\n}\n\n/**\n * Checks if an entry for a segment exists in the cache. If so, it returns the\n * entry, If not, it adds an empty entry to the cache and returns it.\n */\nexport function readOrCreateSegmentCacheEntry(\n now: number,\n fetchStrategy: FetchStrategy,\n route: FulfilledRouteCacheEntry,\n tree: RouteTree\n): SegmentCacheEntry {\n const existingEntry = readSegmentCacheEntry(now, tree.varyPath)\n if (existingEntry !== null) {\n return existingEntry\n }\n // Create a pending entry and add it to the cache.\n const varyPathForRequest = getSegmentVaryPathForRequest(fetchStrategy, tree)\n const pendingEntry = createDetachedSegmentCacheEntry(route.staleAt)\n const isRevalidation = false\n setInCacheMap(\n segmentCacheMap,\n varyPathForRequest,\n pendingEntry,\n isRevalidation\n )\n return pendingEntry\n}\n\nexport function readOrCreateRevalidatingSegmentEntry(\n now: number,\n fetchStrategy: FetchStrategy,\n route: FulfilledRouteCacheEntry,\n tree: RouteTree\n): SegmentCacheEntry {\n // This function is called when we've already confirmed that a particular\n // segment is cached, but we want to perform another request anyway in case it\n // returns more complete and/or fresher data than we already have. The logic\n // for deciding whether to replace the existing entry is handled elsewhere;\n // this function just handles retrieving a cache entry that we can use to\n // track the revalidation.\n //\n // The reason revalidations are stored in the cache is because we need to be\n // able to dedupe multiple revalidation requests. The reason they have to be\n // handled specially is because we shouldn't overwrite a \"normal\" entry if\n // one exists at the same keypath. So, for each internal cache location, there\n // is a special \"revalidation\" slot that is used solely for this purpose.\n //\n // You can think of it as if all the revalidation entries were stored in a\n // separate cache map from the canonical entries, and then transfered to the\n // canonical cache map once the request is complete — this isn't how it's\n // actually implemented, since it's more efficient to store them in the same\n // data structure as the normal entries, but that's how it's modeled\n // conceptually.\n\n // TODO: Once we implement Fallback behavior for params, where an entry is\n // re-keyed based on response information, we'll need to account for the\n // possibility that the keypath of the previous entry is more generic than\n // the keypath of the revalidating entry. In other words, the server could\n // return a less generic entry upon revalidation. For now, though, this isn't\n // a concern because the keypath is based solely on the prefetch strategy,\n // not on data contained in the response.\n const existingEntry = readRevalidatingSegmentCacheEntry(now, tree.varyPath)\n if (existingEntry !== null) {\n return existingEntry\n }\n // Create a pending entry and add it to the cache.\n const varyPathForRequest = getSegmentVaryPathForRequest(fetchStrategy, tree)\n const pendingEntry = createDetachedSegmentCacheEntry(route.staleAt)\n const isRevalidation = true\n setInCacheMap(\n segmentCacheMap,\n varyPathForRequest,\n pendingEntry,\n isRevalidation\n )\n return pendingEntry\n}\n\nexport function overwriteRevalidatingSegmentCacheEntry(\n fetchStrategy: FetchStrategy,\n route: FulfilledRouteCacheEntry,\n tree: RouteTree\n) {\n // This function is called when we've already decided to replace an existing\n // revalidation entry. Create a new entry and write it into the cache,\n // overwriting the previous value.\n const varyPathForRequest = getSegmentVaryPathForRequest(fetchStrategy, tree)\n const pendingEntry = createDetachedSegmentCacheEntry(route.staleAt)\n const isRevalidation = true\n setInCacheMap(\n segmentCacheMap,\n varyPathForRequest,\n pendingEntry,\n isRevalidation\n )\n return pendingEntry\n}\n\nexport function upsertSegmentEntry(\n now: number,\n varyPath: SegmentVaryPath,\n candidateEntry: SegmentCacheEntry\n): SegmentCacheEntry | null {\n // We have a new entry that has not yet been inserted into the cache. Before\n // we do so, we need to confirm whether it takes precedence over the existing\n // entry (if one exists).\n // TODO: We should not upsert an entry if its key was invalidated in the time\n // since the request was made. We can do that by passing the \"owner\" entry to\n // this function and confirming it's the same as `existingEntry`.\n\n if (isValueExpired(now, getCurrentCacheVersion(), candidateEntry)) {\n // The entry is expired. We cannot upsert it.\n return null\n }\n\n const existingEntry = readSegmentCacheEntry(now, varyPath)\n if (existingEntry !== null) {\n // Don't replace a more specific segment with a less-specific one. A case where this\n // might happen is if the existing segment was fetched via\n // ``.\n if (\n // We fetched the new segment using a different, less specific fetch strategy\n // than the segment we already have in the cache, so it can't have more content.\n (candidateEntry.fetchStrategy !== existingEntry.fetchStrategy &&\n !canNewFetchStrategyProvideMoreContent(\n existingEntry.fetchStrategy,\n candidateEntry.fetchStrategy\n )) ||\n // The existing entry isn't partial, but the new one is.\n // (TODO: can this be true if `candidateEntry.fetchStrategy >= existingEntry.fetchStrategy`?)\n (!existingEntry.isPartial && candidateEntry.isPartial)\n ) {\n // We're going to leave revalidating entry in the cache so that it doesn't\n // get revalidated again unnecessarily. Downgrade the Fulfilled entry to\n // Rejected and null out the data so it can be garbage collected. We leave\n // `staleAt` intact to prevent subsequent revalidation attempts only until\n // the entry expires.\n const rejectedEntry: RejectedSegmentCacheEntry = candidateEntry as any\n rejectedEntry.status = EntryStatus.Rejected\n rejectedEntry.loading = null\n rejectedEntry.rsc = null\n return null\n }\n\n // Evict the existing entry from the cache.\n deleteFromCacheMap(existingEntry)\n }\n\n const isRevalidation = false\n setInCacheMap(segmentCacheMap, varyPath, candidateEntry, isRevalidation)\n return candidateEntry\n}\n\nexport function createDetachedSegmentCacheEntry(\n staleAt: number\n): EmptySegmentCacheEntry {\n const emptyEntry: EmptySegmentCacheEntry = {\n status: EntryStatus.Empty,\n // Default to assuming the fetch strategy will be PPR. This will be updated\n // when a fetch is actually initiated.\n fetchStrategy: FetchStrategy.PPR,\n rsc: null,\n loading: null,\n isPartial: true,\n promise: null,\n\n // Map-related fields\n ref: null,\n size: 0,\n staleAt,\n version: 0,\n }\n return emptyEntry\n}\n\nexport function upgradeToPendingSegment(\n emptyEntry: EmptySegmentCacheEntry,\n fetchStrategy: FetchStrategy\n): PendingSegmentCacheEntry {\n const pendingEntry: PendingSegmentCacheEntry = emptyEntry as any\n pendingEntry.status = EntryStatus.Pending\n pendingEntry.fetchStrategy = fetchStrategy\n\n if (fetchStrategy === FetchStrategy.Full) {\n // We can assume the response will contain the full segment data. Set this\n // to false so we know it's OK to omit this segment from any navigation\n // requests that may happen while the data is still pending.\n pendingEntry.isPartial = false\n }\n\n // Set the version here, since this is right before the request is initiated.\n // The next time the global cache version is incremented, the entry will\n // effectively be evicted. This happens before initiating the request, rather\n // than when receiving the response, because it's guaranteed to happen\n // before the data is read on the server.\n pendingEntry.version = getCurrentCacheVersion()\n return pendingEntry\n}\n\nfunction pingBlockedTasks(entry: {\n blockedTasks: Set | null\n}): void {\n const blockedTasks = entry.blockedTasks\n if (blockedTasks !== null) {\n for (const task of blockedTasks) {\n pingPrefetchTask(task)\n }\n entry.blockedTasks = null\n }\n}\n\nfunction fulfillRouteCacheEntry(\n entry: RouteCacheEntry,\n tree: RouteTree,\n metadataVaryPath: PageVaryPath,\n staleAt: number,\n couldBeIntercepted: boolean,\n canonicalUrl: string,\n renderedSearch: NormalizedSearch,\n isPPREnabled: boolean\n): FulfilledRouteCacheEntry {\n // The Head is not actually part of the route tree, but other than that, it's\n // fetched and cached like a segment. Some functions expect a RouteTree\n // object, so rather than fork the logic in all those places, we use this\n // \"fake\" one.\n const metadata: RouteTree = {\n requestKey: HEAD_REQUEST_KEY,\n segment: HEAD_REQUEST_KEY,\n varyPath: metadataVaryPath,\n // The metadata isn't really a \"page\" (though it isn't really a \"segment\"\n // either) but for the purposes of how this field is used, it behaves like\n // one. If this logic ever gets more complex we can change this to an enum.\n isPage: true,\n slots: null,\n isRootLayout: false,\n hasLoadingBoundary: HasLoadingBoundary.SubtreeHasNoLoadingBoundary,\n hasRuntimePrefetch: false,\n }\n const fulfilledEntry: FulfilledRouteCacheEntry = entry as any\n fulfilledEntry.status = EntryStatus.Fulfilled\n fulfilledEntry.tree = tree\n fulfilledEntry.metadata = metadata\n fulfilledEntry.staleAt = staleAt\n fulfilledEntry.couldBeIntercepted = couldBeIntercepted\n fulfilledEntry.canonicalUrl = canonicalUrl\n fulfilledEntry.renderedSearch = renderedSearch\n fulfilledEntry.isPPREnabled = isPPREnabled\n pingBlockedTasks(entry)\n return fulfilledEntry\n}\n\nfunction fulfillSegmentCacheEntry(\n segmentCacheEntry: PendingSegmentCacheEntry,\n rsc: React.ReactNode,\n loading: LoadingModuleData | Promise,\n staleAt: number,\n isPartial: boolean\n): FulfilledSegmentCacheEntry {\n const fulfilledEntry: FulfilledSegmentCacheEntry = segmentCacheEntry as any\n fulfilledEntry.status = EntryStatus.Fulfilled\n fulfilledEntry.rsc = rsc\n fulfilledEntry.loading = loading\n fulfilledEntry.staleAt = staleAt\n fulfilledEntry.isPartial = isPartial\n // Resolve any listeners that were waiting for this data.\n if (segmentCacheEntry.promise !== null) {\n segmentCacheEntry.promise.resolve(fulfilledEntry)\n // Free the promise for garbage collection.\n fulfilledEntry.promise = null\n }\n return fulfilledEntry\n}\n\nfunction rejectRouteCacheEntry(\n entry: PendingRouteCacheEntry,\n staleAt: number\n): void {\n const rejectedEntry: RejectedRouteCacheEntry = entry as any\n rejectedEntry.status = EntryStatus.Rejected\n rejectedEntry.staleAt = staleAt\n pingBlockedTasks(entry)\n}\n\nfunction rejectSegmentCacheEntry(\n entry: PendingSegmentCacheEntry,\n staleAt: number\n): void {\n const rejectedEntry: RejectedSegmentCacheEntry = entry as any\n rejectedEntry.status = EntryStatus.Rejected\n rejectedEntry.staleAt = staleAt\n if (entry.promise !== null) {\n // NOTE: We don't currently propagate the reason the prefetch was canceled\n // but we could by accepting a `reason` argument.\n entry.promise.resolve(null)\n entry.promise = null\n }\n}\n\ntype RouteTreeAccumulator = {\n metadataVaryPath: PageVaryPath | null\n}\n\nfunction convertRootTreePrefetchToRouteTree(\n rootTree: RootTreePrefetch,\n renderedPathname: string,\n renderedSearch: NormalizedSearch,\n acc: RouteTreeAccumulator\n) {\n // Remove trailing and leading slashes\n const pathnameParts = renderedPathname.split('/').filter((p) => p !== '')\n const index = 0\n const rootSegment = ROOT_SEGMENT_REQUEST_KEY\n return convertTreePrefetchToRouteTree(\n rootTree.tree,\n rootSegment,\n null,\n ROOT_SEGMENT_REQUEST_KEY,\n pathnameParts,\n index,\n renderedSearch,\n acc\n )\n}\n\nfunction convertTreePrefetchToRouteTree(\n prefetch: TreePrefetch,\n segment: FlightRouterStateSegment,\n partialVaryPath: PartialSegmentVaryPath | null,\n requestKey: SegmentRequestKey,\n pathnameParts: Array,\n pathnamePartsIndex: number,\n renderedSearch: NormalizedSearch,\n acc: RouteTreeAccumulator\n): RouteTree {\n // Converts the route tree sent by the server into the format used by the\n // cache. The cached version of the tree includes additional fields, such as a\n // cache key for each segment. Since this is frequently accessed, we compute\n // it once instead of on every access. This same cache key is also used to\n // request the segment from the server.\n\n let slots: { [parallelRouteKey: string]: RouteTree } | null = null\n let isPage: boolean\n let varyPath: SegmentVaryPath\n const prefetchSlots = prefetch.slots\n if (prefetchSlots !== null) {\n isPage = false\n varyPath = finalizeLayoutVaryPath(requestKey, partialVaryPath)\n\n slots = {}\n for (let parallelRouteKey in prefetchSlots) {\n const childPrefetch = prefetchSlots[parallelRouteKey]\n const childParamName = childPrefetch.name\n const childParamType = childPrefetch.paramType\n const childServerSentParamKey = childPrefetch.paramKey\n\n let childDoesAppearInURL: boolean\n let childSegment: FlightRouterStateSegment\n let childPartialVaryPath: PartialSegmentVaryPath | null\n if (childParamType !== null) {\n // This segment is parameterized. Get the param from the pathname.\n const childParamValue = parseDynamicParamFromURLPart(\n childParamType,\n pathnameParts,\n pathnamePartsIndex\n )\n\n // Assign a cache key to the segment, based on the param value. In the\n // pre-Segment Cache implementation, the server computes this and sends\n // it in the body of the response. In the Segment Cache implementation,\n // the server sends an empty string and we fill it in here.\n\n // TODO: We're intentionally not adding the search param to page\n // segments here; it's tracked separately and added back during a read.\n // This would clearer if we waited to construct the segment until it's\n // read from the cache, since that's effectively what we're\n // doing anyway.\n const childParamKey =\n // The server omits this field from the prefetch response when\n // cacheComponents is enabled.\n childServerSentParamKey !== null\n ? childServerSentParamKey\n : // If no param key was sent, use the value parsed on the client.\n getCacheKeyForDynamicParam(\n childParamValue,\n '' as NormalizedSearch\n )\n\n childPartialVaryPath = appendLayoutVaryPath(\n partialVaryPath,\n childParamKey\n )\n childSegment = [childParamName, childParamKey, childParamType]\n childDoesAppearInURL = true\n } else {\n // This segment does not have a param. Inherit the partial vary path of\n // the parent.\n childPartialVaryPath = partialVaryPath\n childSegment = childParamName\n childDoesAppearInURL = doesStaticSegmentAppearInURL(childParamName)\n }\n\n // Only increment the index if the segment appears in the URL. If it's a\n // \"virtual\" segment, like a route group, it remains the same.\n const childPathnamePartsIndex = childDoesAppearInURL\n ? pathnamePartsIndex + 1\n : pathnamePartsIndex\n\n const childRequestKeyPart = createSegmentRequestKeyPart(childSegment)\n const childRequestKey = appendSegmentRequestKeyPart(\n requestKey,\n parallelRouteKey,\n childRequestKeyPart\n )\n slots[parallelRouteKey] = convertTreePrefetchToRouteTree(\n childPrefetch,\n childSegment,\n childPartialVaryPath,\n childRequestKey,\n pathnameParts,\n childPathnamePartsIndex,\n renderedSearch,\n acc\n )\n }\n } else {\n if (requestKey.endsWith(PAGE_SEGMENT_KEY)) {\n // This is a page segment.\n isPage = true\n varyPath = finalizePageVaryPath(\n requestKey,\n renderedSearch,\n partialVaryPath\n )\n // The metadata \"segment\" is not part the route tree, but it has the same\n // conceptual params as a page segment. Write the vary path into the\n // accumulator object. If there are multiple parallel pages, we use the\n // first one. Which page we choose is arbitrary as long as it's\n // consistently the same one every time every time. See\n // finalizeMetadataVaryPath for more details.\n if (acc.metadataVaryPath === null) {\n acc.metadataVaryPath = finalizeMetadataVaryPath(\n requestKey,\n renderedSearch,\n partialVaryPath\n )\n }\n } else {\n // This is a layout segment.\n isPage = false\n varyPath = finalizeLayoutVaryPath(requestKey, partialVaryPath)\n }\n }\n\n return {\n requestKey,\n segment,\n varyPath,\n // TODO: Cheating the type system here a bit because TypeScript can't tell\n // that the type of isPage and varyPath are consistent. The fix would be to\n // create separate constructors and call the appropriate one from each of\n // the branches above. Just seems a bit overkill only for one field so I'll\n // leave it as-is for now. If isPage were wrong it would break the behavior\n // and we'd catch it quickly, anyway.\n isPage: isPage as boolean as any,\n slots,\n isRootLayout: prefetch.isRootLayout,\n // This field is only relevant to dynamic routes. For a PPR/static route,\n // there's always some partial loading state we can fetch.\n hasLoadingBoundary: HasLoadingBoundary.SegmentHasLoadingBoundary,\n hasRuntimePrefetch: prefetch.hasRuntimePrefetch,\n }\n}\n\nfunction convertRootFlightRouterStateToRouteTree(\n flightRouterState: FlightRouterState,\n renderedSearch: NormalizedSearch,\n acc: RouteTreeAccumulator\n): RouteTree {\n return convertFlightRouterStateToRouteTree(\n flightRouterState,\n ROOT_SEGMENT_REQUEST_KEY,\n null,\n renderedSearch,\n acc\n )\n}\n\nfunction convertFlightRouterStateToRouteTree(\n flightRouterState: FlightRouterState,\n requestKey: SegmentRequestKey,\n parentPartialVaryPath: PartialSegmentVaryPath | null,\n renderedSearch: NormalizedSearch,\n acc: RouteTreeAccumulator\n): RouteTree {\n const originalSegment = flightRouterState[0]\n\n let segment: FlightRouterStateSegment\n let partialVaryPath: PartialSegmentVaryPath | null\n let isPage: boolean\n let varyPath: SegmentVaryPath\n if (Array.isArray(originalSegment)) {\n isPage = false\n const paramCacheKey = originalSegment[1]\n partialVaryPath = appendLayoutVaryPath(parentPartialVaryPath, paramCacheKey)\n varyPath = finalizeLayoutVaryPath(requestKey, partialVaryPath)\n segment = originalSegment\n } else {\n // This segment does not have a param. Inherit the partial vary path of\n // the parent.\n partialVaryPath = parentPartialVaryPath\n if (requestKey.endsWith(PAGE_SEGMENT_KEY)) {\n // This is a page segment.\n isPage = true\n\n // The navigation implementation expects the search params to be included\n // in the segment. However, in the case of a static response, the search\n // params are omitted. So the client needs to add them back in when reading\n // from the Segment Cache.\n //\n // For consistency, we'll do this for dynamic responses, too.\n //\n // TODO: We should move search params out of FlightRouterState and handle\n // them entirely on the client, similar to our plan for dynamic params.\n segment = PAGE_SEGMENT_KEY\n varyPath = finalizePageVaryPath(\n requestKey,\n renderedSearch,\n partialVaryPath\n )\n // The metadata \"segment\" is not part the route tree, but it has the same\n // conceptual params as a page segment. Write the vary path into the\n // accumulator object. If there are multiple parallel pages, we use the\n // first one. Which page we choose is arbitrary as long as it's\n // consistently the same one every time every time. See\n // finalizeMetadataVaryPath for more details.\n if (acc.metadataVaryPath === null) {\n acc.metadataVaryPath = finalizeMetadataVaryPath(\n requestKey,\n renderedSearch,\n partialVaryPath\n )\n }\n } else {\n // This is a layout segment.\n isPage = false\n segment = originalSegment\n varyPath = finalizeLayoutVaryPath(requestKey, partialVaryPath)\n }\n }\n\n let slots: { [parallelRouteKey: string]: RouteTree } | null = null\n\n const parallelRoutes = flightRouterState[1]\n for (let parallelRouteKey in parallelRoutes) {\n const childRouterState = parallelRoutes[parallelRouteKey]\n const childSegment = childRouterState[0]\n // TODO: Eventually, the param values will not be included in the response\n // from the server. We'll instead fill them in on the client by parsing\n // the URL. This is where we'll do that.\n const childRequestKeyPart = createSegmentRequestKeyPart(childSegment)\n const childRequestKey = appendSegmentRequestKeyPart(\n requestKey,\n parallelRouteKey,\n childRequestKeyPart\n )\n const childTree = convertFlightRouterStateToRouteTree(\n childRouterState,\n childRequestKey,\n partialVaryPath,\n renderedSearch,\n acc\n )\n if (slots === null) {\n slots = {\n [parallelRouteKey]: childTree,\n }\n } else {\n slots[parallelRouteKey] = childTree\n }\n }\n\n return {\n requestKey,\n segment,\n varyPath,\n // TODO: Cheating the type system here a bit because TypeScript can't tell\n // that the type of isPage and varyPath are consistent. The fix would be to\n // create separate constructors and call the appropriate one from each of\n // the branches above. Just seems a bit overkill only for one field so I'll\n // leave it as-is for now. If isPage were wrong it would break the behavior\n // and we'd catch it quickly, anyway.\n isPage: isPage as boolean as any,\n slots,\n isRootLayout: flightRouterState[4] === true,\n hasLoadingBoundary:\n flightRouterState[5] !== undefined\n ? flightRouterState[5]\n : HasLoadingBoundary.SubtreeHasNoLoadingBoundary,\n\n // Non-static tree responses are only used by apps that haven't adopted\n // Cache Components. So this is always false.\n hasRuntimePrefetch: false,\n }\n}\n\nexport function convertRouteTreeToFlightRouterState(\n routeTree: RouteTree\n): FlightRouterState {\n const parallelRoutes: Record = {}\n if (routeTree.slots !== null) {\n for (const parallelRouteKey in routeTree.slots) {\n parallelRoutes[parallelRouteKey] = convertRouteTreeToFlightRouterState(\n routeTree.slots[parallelRouteKey]\n )\n }\n }\n const flightRouterState: FlightRouterState = [\n routeTree.segment,\n parallelRoutes,\n null,\n null,\n routeTree.isRootLayout,\n ]\n return flightRouterState\n}\n\nexport async function fetchRouteOnCacheMiss(\n entry: PendingRouteCacheEntry,\n task: PrefetchTask,\n key: RouteCacheKey\n): Promise | null> {\n // This function is allowed to use async/await because it contains the actual\n // fetch that gets issued on a cache miss. Notice it writes the result to the\n // cache entry directly, rather than return data that is then written by\n // the caller.\n const pathname = key.pathname\n const search = key.search\n const nextUrl = key.nextUrl\n const segmentPath = '/_tree' as SegmentRequestKey\n\n const headers: RequestHeaders = {\n [RSC_HEADER]: '1',\n [NEXT_ROUTER_PREFETCH_HEADER]: '1',\n [NEXT_ROUTER_SEGMENT_PREFETCH_HEADER]: segmentPath,\n }\n if (nextUrl !== null) {\n headers[NEXT_URL] = nextUrl\n }\n\n try {\n const url = new URL(pathname + search, location.origin)\n let response\n let urlAfterRedirects\n if (isOutputExportMode) {\n // In output: \"export\" mode, we can't use headers to request a particular\n // segment. Instead, we encode the extra request information into the URL.\n // This is not part of the \"public\" interface of the app; it's an internal\n // Next.js implementation detail that the app developer should not need to\n // concern themselves with.\n //\n // For example, to request a segment:\n //\n // Path passed to : /path/to/page\n // Path passed to fetch: /path/to/page/__next-segments/_tree\n //\n // (This is not the exact protocol, just an illustration.)\n //\n // Before we do that, though, we need to account for redirects. Even in\n // output: \"export\" mode, a proxy might redirect the page to a different\n // location, but we shouldn't assume or expect that they also redirect all\n // the segment files, too.\n //\n // To check whether the page is redirected, previously we perform a range\n // request of 64 bytes of the HTML document to check if the target page\n // is part of this app (by checking if build id matches). Only if the target\n // page is part of this app do we determine the final canonical URL.\n //\n // However, as mentioned in https://github.com/vercel/next.js/pull/85903,\n // some popular static hosting providers (like Cloudflare Pages or Render.com)\n // do not support range requests, in the worst case, the entire HTML instead\n // of 64 bytes could be returned, which is wasteful.\n //\n // So instead, we drops the check for build id here, and simply perform\n // a HEAD request to rejects 1xx/4xx/5xx responses, and then determine the\n // final URL after redirects.\n //\n // NOTE: We could embed the route tree into the HTML document, to avoid\n // a second request. We're not doing that currently because it would make\n // the HTML document larger and affect normal page loads.\n const headResponse = await fetch(url, {\n method: 'HEAD',\n })\n if (headResponse.status < 200 || headResponse.status >= 400) {\n // The target page responded w/o a successful status code\n // Could be a WAF serving a 403, or a 5xx from a backend\n //\n // Note that we can't use headResponse.ok here, because\n // Response#ok returns `false` with 3xx responses.\n rejectRouteCacheEntry(entry, Date.now() + 10 * 1000)\n return null\n }\n\n urlAfterRedirects = headResponse.redirected\n ? new URL(headResponse.url)\n : url\n\n response = await fetchPrefetchResponse(\n addSegmentPathToUrlInOutputExportMode(urlAfterRedirects, segmentPath),\n headers\n )\n } else {\n // \"Server\" mode. We can use request headers instead of the pathname.\n // TODO: The eventual plan is to get rid of our custom request headers and\n // encode everything into the URL, using a similar strategy to the\n // \"output: export\" block above.\n response = await fetchPrefetchResponse(url, headers)\n urlAfterRedirects =\n response !== null && response.redirected ? new URL(response.url) : url\n }\n\n if (\n !response ||\n !response.ok ||\n // 204 is a Cache miss. Though theoretically this shouldn't happen when\n // PPR is enabled, because we always respond to route tree requests, even\n // if it needs to be blockingly generated on demand.\n response.status === 204 ||\n !response.body\n ) {\n // Server responded with an error, or with a miss. We should still cache\n // the response, but we can try again after 10 seconds.\n rejectRouteCacheEntry(entry, Date.now() + 10 * 1000)\n return null\n }\n\n // TODO: The canonical URL is the href without the origin. I think\n // historically the reason for this is because the initial canonical URL\n // gets passed as a prop to the top-level React component, which means it\n // needs to be computed during SSR. If it were to include the origin, it\n // would need to always be same as location.origin on the client, to prevent\n // a hydration mismatch. To sidestep this complexity, we omit the origin.\n //\n // However, since this is neither a native URL object nor a fully qualified\n // URL string, we need to be careful about how we use it. To prevent subtle\n // mistakes, we should create a special type for it, instead of just string.\n // Or, we should just use a (readonly) URL object instead. The type of the\n // prop that we pass to seed the initial state does not need to be the same\n // type as the state itself.\n const canonicalUrl = createHrefFromUrl(urlAfterRedirects)\n\n // Check whether the response varies based on the Next-Url header.\n const varyHeader = response.headers.get('vary')\n const couldBeIntercepted =\n varyHeader !== null && varyHeader.includes(NEXT_URL)\n\n // Track when the network connection closes.\n const closed = createPromiseWithResolvers()\n\n // This checks whether the response was served from the per-segment cache,\n // rather than the old prefetching flow. If it fails, it implies that PPR\n // is disabled on this route.\n const routeIsPPREnabled =\n response.headers.get(NEXT_DID_POSTPONE_HEADER) === '2' ||\n // In output: \"export\" mode, we can't rely on response headers. But if we\n // receive a well-formed response, we can assume it's a static response,\n // because all data is static in this mode.\n isOutputExportMode\n\n if (routeIsPPREnabled) {\n const prefetchStream = createPrefetchResponseStream(\n response.body,\n closed.resolve,\n function onResponseSizeUpdate(size) {\n setSizeInCacheMap(entry, size)\n }\n )\n const serverData = await createFromNextReadableStream(\n prefetchStream,\n headers\n )\n if (serverData.buildId !== getAppBuildId()) {\n // The server build does not match the client. Treat as a 404. During\n // an actual navigation, the router will trigger an MPA navigation.\n // TODO: Consider moving the build ID to a response header so we can check\n // it before decoding the response, and so there's one way of checking\n // across all response types.\n // TODO: We should cache the fact that this is an MPA navigation.\n rejectRouteCacheEntry(entry, Date.now() + 10 * 1000)\n return null\n }\n\n // Get the params that were used to render the target page. These may\n // be different from the params in the request URL, if the page\n // was rewritten.\n const renderedPathname = getRenderedPathname(response)\n const renderedSearch = getRenderedSearch(response)\n\n // Convert the server-sent data into the RouteTree format used by the\n // client cache.\n //\n // During this traversal, we accumulate additional data into this\n // \"accumulator\" object.\n const acc: RouteTreeAccumulator = { metadataVaryPath: null }\n const routeTree = convertRootTreePrefetchToRouteTree(\n serverData,\n renderedPathname,\n renderedSearch,\n acc\n )\n const metadataVaryPath = acc.metadataVaryPath\n if (metadataVaryPath === null) {\n rejectRouteCacheEntry(entry, Date.now() + 10 * 1000)\n return null\n }\n\n const staleTimeMs = getStaleTimeMs(serverData.staleTime)\n fulfillRouteCacheEntry(\n entry,\n routeTree,\n metadataVaryPath,\n Date.now() + staleTimeMs,\n couldBeIntercepted,\n canonicalUrl,\n renderedSearch,\n routeIsPPREnabled\n )\n } else {\n // PPR is not enabled for this route. The server responds with a\n // different format (FlightRouterState) that we need to convert.\n // TODO: We will unify the responses eventually. I'm keeping the types\n // separate for now because FlightRouterState has so many\n // overloaded concerns.\n const prefetchStream = createPrefetchResponseStream(\n response.body,\n closed.resolve,\n function onResponseSizeUpdate(size) {\n setSizeInCacheMap(entry, size)\n }\n )\n const serverData =\n await createFromNextReadableStream(\n prefetchStream,\n headers\n )\n if (serverData.b !== getAppBuildId()) {\n // The server build does not match the client. Treat as a 404. During\n // an actual navigation, the router will trigger an MPA navigation.\n // TODO: Consider moving the build ID to a response header so we can check\n // it before decoding the response, and so there's one way of checking\n // across all response types.\n // TODO: We should cache the fact that this is an MPA navigation.\n rejectRouteCacheEntry(entry, Date.now() + 10 * 1000)\n return null\n }\n\n writeDynamicTreeResponseIntoCache(\n Date.now(),\n task,\n // The non-PPR response format is what we'd get if we prefetched these segments\n // using the LoadingBoundary fetch strategy, so mark their cache entries accordingly.\n FetchStrategy.LoadingBoundary,\n response as RSCResponse,\n serverData,\n entry,\n couldBeIntercepted,\n canonicalUrl,\n routeIsPPREnabled\n )\n }\n\n if (!couldBeIntercepted) {\n // This route will never be intercepted. So we can use this entry for all\n // requests to this route, regardless of the Next-Url header. This works\n // because when reading the cache we always check for a valid\n // non-intercepted entry first.\n\n // Re-key the entry. The `set` implementation handles removing it from\n // its previous position in the cache. We don't need to do anything to\n // update the LRU, because the entry is already in it.\n // TODO: Treat this as an upsert — should check if an entry already\n // exists at the new keypath, and if so, whether we should keep that\n // one instead.\n const fulfilledVaryPath: RouteVaryPath = getFulfilledRouteVaryPath(\n pathname,\n search,\n nextUrl,\n couldBeIntercepted\n )\n const isRevalidation = false\n setInCacheMap(routeCacheMap, fulfilledVaryPath, entry, isRevalidation)\n }\n // Return a promise that resolves when the network connection closes, so\n // the scheduler can track the number of concurrent network connections.\n return { value: null, closed: closed.promise }\n } catch (error) {\n // Either the connection itself failed, or something bad happened while\n // decoding the response.\n rejectRouteCacheEntry(entry, Date.now() + 10 * 1000)\n return null\n }\n}\n\nexport async function fetchSegmentOnCacheMiss(\n route: FulfilledRouteCacheEntry,\n segmentCacheEntry: PendingSegmentCacheEntry,\n routeKey: RouteCacheKey,\n tree: RouteTree\n): Promise | null> {\n // This function is allowed to use async/await because it contains the actual\n // fetch that gets issued on a cache miss. Notice it writes the result to the\n // cache entry directly, rather than return data that is then written by\n // the caller.\n //\n // Segment fetches are non-blocking so we don't need to ping the scheduler\n // on completion.\n\n // Use the canonical URL to request the segment, not the original URL. These\n // are usually the same, but the canonical URL will be different if the route\n // tree response was redirected. To avoid an extra waterfall on every segment\n // request, we pass the redirected URL instead of the original one.\n const url = new URL(route.canonicalUrl, location.origin)\n const nextUrl = routeKey.nextUrl\n\n const requestKey = tree.requestKey\n const normalizedRequestKey =\n requestKey === ROOT_SEGMENT_REQUEST_KEY\n ? // The root segment is a special case. To simplify the server-side\n // handling of these requests, we encode the root segment path as\n // `_index` instead of as an empty string. This should be treated as\n // an implementation detail and not as a stable part of the protocol.\n // It just needs to match the equivalent logic that happens when\n // prerendering the responses. It should not leak outside of Next.js.\n ('/_index' as SegmentRequestKey)\n : requestKey\n\n const headers: RequestHeaders = {\n [RSC_HEADER]: '1',\n [NEXT_ROUTER_PREFETCH_HEADER]: '1',\n [NEXT_ROUTER_SEGMENT_PREFETCH_HEADER]: normalizedRequestKey,\n }\n if (nextUrl !== null) {\n headers[NEXT_URL] = nextUrl\n }\n\n const requestUrl = isOutputExportMode\n ? // In output: \"export\" mode, we need to add the segment path to the URL.\n addSegmentPathToUrlInOutputExportMode(url, normalizedRequestKey)\n : url\n try {\n const response = await fetchPrefetchResponse(requestUrl, headers)\n if (\n !response ||\n !response.ok ||\n response.status === 204 || // Cache miss\n // This checks whether the response was served from the per-segment cache,\n // rather than the old prefetching flow. If it fails, it implies that PPR\n // is disabled on this route. Theoretically this should never happen\n // because we only issue requests for segments once we've verified that\n // the route supports PPR.\n (response.headers.get(NEXT_DID_POSTPONE_HEADER) !== '2' &&\n // In output: \"export\" mode, we can't rely on response headers. But if\n // we receive a well-formed response, we can assume it's a static\n // response, because all data is static in this mode.\n !isOutputExportMode) ||\n !response.body\n ) {\n // Server responded with an error, or with a miss. We should still cache\n // the response, but we can try again after 10 seconds.\n rejectSegmentCacheEntry(segmentCacheEntry, Date.now() + 10 * 1000)\n return null\n }\n\n // Track when the network connection closes.\n const closed = createPromiseWithResolvers()\n\n // Wrap the original stream in a new stream that never closes. That way the\n // Flight client doesn't error if there's a hanging promise.\n const prefetchStream = createPrefetchResponseStream(\n response.body,\n closed.resolve,\n function onResponseSizeUpdate(size) {\n setSizeInCacheMap(segmentCacheEntry, size)\n }\n )\n const serverData = await (createFromNextReadableStream(\n prefetchStream,\n headers\n ) as Promise)\n if (serverData.buildId !== getAppBuildId()) {\n // The server build does not match the client. Treat as a 404. During\n // an actual navigation, the router will trigger an MPA navigation.\n // TODO: Consider moving the build ID to a response header so we can check\n // it before decoding the response, and so there's one way of checking\n // across all response types.\n rejectSegmentCacheEntry(segmentCacheEntry, Date.now() + 10 * 1000)\n return null\n }\n return {\n value: fulfillSegmentCacheEntry(\n segmentCacheEntry,\n serverData.rsc,\n serverData.loading,\n // TODO: The server does not currently provide per-segment stale time.\n // So we use the stale time of the route.\n route.staleAt,\n serverData.isPartial\n ),\n // Return a promise that resolves when the network connection closes, so\n // the scheduler can track the number of concurrent network connections.\n closed: closed.promise,\n }\n } catch (error) {\n // Either the connection itself failed, or something bad happened while\n // decoding the response.\n rejectSegmentCacheEntry(segmentCacheEntry, Date.now() + 10 * 1000)\n return null\n }\n}\n\nexport async function fetchSegmentPrefetchesUsingDynamicRequest(\n task: PrefetchTask,\n route: FulfilledRouteCacheEntry,\n fetchStrategy:\n | FetchStrategy.LoadingBoundary\n | FetchStrategy.PPRRuntime\n | FetchStrategy.Full,\n dynamicRequestTree: FlightRouterState,\n spawnedEntries: Map\n): Promise | null> {\n const key = task.key\n const url = new URL(route.canonicalUrl, location.origin)\n const nextUrl = key.nextUrl\n\n if (\n spawnedEntries.size === 1 &&\n spawnedEntries.has(route.metadata.requestKey)\n ) {\n // The only thing pending is the head. Instruct the server to\n // skip over everything else.\n dynamicRequestTree = MetadataOnlyRequestTree\n }\n\n const headers: RequestHeaders = {\n [RSC_HEADER]: '1',\n [NEXT_ROUTER_STATE_TREE_HEADER]:\n prepareFlightRouterStateForRequest(dynamicRequestTree),\n }\n if (nextUrl !== null) {\n headers[NEXT_URL] = nextUrl\n }\n switch (fetchStrategy) {\n case FetchStrategy.Full: {\n // We omit the prefetch header from a full prefetch because it's essentially\n // just a navigation request that happens ahead of time — it should include\n // all the same data in the response.\n break\n }\n case FetchStrategy.PPRRuntime: {\n headers[NEXT_ROUTER_PREFETCH_HEADER] = '2'\n break\n }\n case FetchStrategy.LoadingBoundary: {\n headers[NEXT_ROUTER_PREFETCH_HEADER] = '1'\n break\n }\n default: {\n fetchStrategy satisfies never\n }\n }\n\n try {\n const response = await fetchPrefetchResponse(url, headers)\n if (!response || !response.ok || !response.body) {\n // Server responded with an error, or with a miss. We should still cache\n // the response, but we can try again after 10 seconds.\n rejectSegmentEntriesIfStillPending(spawnedEntries, Date.now() + 10 * 1000)\n return null\n }\n\n const renderedSearch = getRenderedSearch(response)\n if (renderedSearch !== route.renderedSearch) {\n // The search params that were used to render the target page are\n // different from the search params in the request URL. This only happens\n // when there's a dynamic rewrite in between the tree prefetch and the\n // data prefetch.\n // TODO: For now, since this is an edge case, we reject the prefetch, but\n // the proper way to handle this is to evict the stale route tree entry\n // then fill the cache with the new response.\n rejectSegmentEntriesIfStillPending(spawnedEntries, Date.now() + 10 * 1000)\n return null\n }\n\n // Track when the network connection closes.\n const closed = createPromiseWithResolvers()\n\n let fulfilledEntries: Array | null = null\n const prefetchStream = createPrefetchResponseStream(\n response.body,\n closed.resolve,\n function onResponseSizeUpdate(totalBytesReceivedSoFar) {\n // When processing a dynamic response, we don't know how large each\n // individual segment is, so approximate by assiging each segment\n // the average of the total response size.\n if (fulfilledEntries === null) {\n // Haven't received enough data yet to know which segments\n // were included.\n return\n }\n const averageSize = totalBytesReceivedSoFar / fulfilledEntries.length\n for (const entry of fulfilledEntries) {\n setSizeInCacheMap(entry, averageSize)\n }\n }\n )\n const serverData = await (createFromNextReadableStream(\n prefetchStream,\n headers\n ) as Promise)\n\n const isResponsePartial =\n fetchStrategy === FetchStrategy.PPRRuntime\n ? // A runtime prefetch may have holes.\n serverData.rp?.[0] === true\n : // Full and LoadingBoundary prefetches cannot have holes.\n // (even if we did set the prefetch header, we only use this codepath for non-PPR-enabled routes)\n false\n\n // Aside from writing the data into the cache, this function also returns\n // the entries that were fulfilled, so we can streamingly update their sizes\n // in the LRU as more data comes in.\n fulfilledEntries = writeDynamicRenderResponseIntoCache(\n Date.now(),\n task,\n fetchStrategy,\n response as RSCResponse,\n serverData,\n isResponsePartial,\n route,\n spawnedEntries\n )\n\n // Return a promise that resolves when the network connection closes, so\n // the scheduler can track the number of concurrent network connections.\n return { value: null, closed: closed.promise }\n } catch (error) {\n rejectSegmentEntriesIfStillPending(spawnedEntries, Date.now() + 10 * 1000)\n return null\n }\n}\n\nfunction writeDynamicTreeResponseIntoCache(\n now: number,\n task: PrefetchTask,\n fetchStrategy:\n | FetchStrategy.LoadingBoundary\n | FetchStrategy.PPRRuntime\n | FetchStrategy.Full,\n response: RSCResponse,\n serverData: NavigationFlightResponse,\n entry: PendingRouteCacheEntry,\n couldBeIntercepted: boolean,\n canonicalUrl: string,\n routeIsPPREnabled: boolean\n) {\n // Get the URL that was used to render the target page. This may be different\n // from the URL in the request URL, if the page was rewritten.\n const renderedSearch = getRenderedSearch(response)\n\n const normalizedFlightDataResult = normalizeFlightData(serverData.f)\n if (\n // A string result means navigating to this route will result in an\n // MPA navigation.\n typeof normalizedFlightDataResult === 'string' ||\n normalizedFlightDataResult.length !== 1\n ) {\n rejectRouteCacheEntry(entry, now + 10 * 1000)\n return\n }\n const flightData = normalizedFlightDataResult[0]\n if (!flightData.isRootRender) {\n // Unexpected response format.\n rejectRouteCacheEntry(entry, now + 10 * 1000)\n return\n }\n\n const flightRouterState = flightData.tree\n // For runtime prefetches, stale time is in the payload at rp[1].\n // For other responses, fall back to the header.\n const staleTimeSeconds =\n typeof serverData.rp?.[1] === 'number'\n ? serverData.rp[1]\n : parseInt(response.headers.get(NEXT_ROUTER_STALE_TIME_HEADER) ?? '', 10)\n const staleTimeMs = !isNaN(staleTimeSeconds)\n ? getStaleTimeMs(staleTimeSeconds)\n : STATIC_STALETIME_MS\n\n // If the response contains dynamic holes, then we must conservatively assume\n // that any individual segment might contain dynamic holes, and also the\n // head. If it did not contain dynamic holes, then we can assume every segment\n // and the head is completely static.\n const isResponsePartial =\n response.headers.get(NEXT_DID_POSTPONE_HEADER) === '1'\n\n // Convert the server-sent data into the RouteTree format used by the\n // client cache.\n //\n // During this traversal, we accumulate additional data into this\n // \"accumulator\" object.\n const acc: RouteTreeAccumulator = { metadataVaryPath: null }\n const routeTree = convertRootFlightRouterStateToRouteTree(\n flightRouterState,\n renderedSearch,\n acc\n )\n const metadataVaryPath = acc.metadataVaryPath\n if (metadataVaryPath === null) {\n rejectRouteCacheEntry(entry, now + 10 * 1000)\n return\n }\n\n const fulfilledEntry = fulfillRouteCacheEntry(\n entry,\n routeTree,\n metadataVaryPath,\n now + staleTimeMs,\n couldBeIntercepted,\n canonicalUrl,\n renderedSearch,\n routeIsPPREnabled\n )\n\n // If the server sent segment data as part of the response, we should write\n // it into the cache to prevent a second, redundant prefetch request.\n //\n // TODO: When `clientSegmentCache` is enabled, the server does not include\n // segment data when responding to a route tree prefetch request. However,\n // when `clientSegmentCache` is set to \"client-only\", and PPR is enabled (or\n // the page is fully static), the normal check is bypassed and the server\n // responds with the full page. This is a temporary situation until we can\n // remove the \"client-only\" option. Then, we can delete this function call.\n writeDynamicRenderResponseIntoCache(\n now,\n task,\n fetchStrategy,\n response,\n serverData,\n isResponsePartial,\n fulfilledEntry,\n null\n )\n}\n\nfunction rejectSegmentEntriesIfStillPending(\n entries: Map,\n staleAt: number\n): Array {\n const fulfilledEntries = []\n for (const entry of entries.values()) {\n if (entry.status === EntryStatus.Pending) {\n rejectSegmentCacheEntry(entry, staleAt)\n } else if (entry.status === EntryStatus.Fulfilled) {\n fulfilledEntries.push(entry)\n }\n }\n return fulfilledEntries\n}\n\nfunction writeDynamicRenderResponseIntoCache(\n now: number,\n task: PrefetchTask,\n fetchStrategy:\n | FetchStrategy.LoadingBoundary\n | FetchStrategy.PPRRuntime\n | FetchStrategy.Full,\n response: RSCResponse,\n serverData: NavigationFlightResponse,\n isResponsePartial: boolean,\n route: FulfilledRouteCacheEntry,\n spawnedEntries: Map | null\n): Array | null {\n if (serverData.b !== getAppBuildId()) {\n // The server build does not match the client. Treat as a 404. During\n // an actual navigation, the router will trigger an MPA navigation.\n // TODO: Consider moving the build ID to a response header so we can check\n // it before decoding the response, and so there's one way of checking\n // across all response types.\n if (spawnedEntries !== null) {\n rejectSegmentEntriesIfStillPending(spawnedEntries, now + 10 * 1000)\n }\n return null\n }\n\n const flightDatas = normalizeFlightData(serverData.f)\n if (typeof flightDatas === 'string') {\n // This means navigating to this route will result in an MPA navigation.\n // TODO: We should cache this, too, so that the MPA navigation is immediate.\n return null\n }\n\n // For runtime prefetches, stale time is in the payload at rp[1].\n // For other responses, fall back to the header.\n const staleTimeSeconds =\n typeof serverData.rp?.[1] === 'number'\n ? serverData.rp[1]\n : parseInt(response.headers.get(NEXT_ROUTER_STALE_TIME_HEADER) ?? '', 10)\n const staleTimeMs = !isNaN(staleTimeSeconds)\n ? getStaleTimeMs(staleTimeSeconds)\n : STATIC_STALETIME_MS\n const staleAt = now + staleTimeMs\n\n for (const flightData of flightDatas) {\n const seedData = flightData.seedData\n if (seedData !== null) {\n // The data sent by the server represents only a subtree of the app. We\n // need to find the part of the task tree that matches the response.\n //\n // segmentPath represents the parent path of subtree. It's a repeating\n // pattern of parallel route key and segment:\n //\n // [string, Segment, string, Segment, string, Segment, ...]\n const segmentPath = flightData.segmentPath\n let tree = route.tree\n for (let i = 0; i < segmentPath.length; i += 2) {\n const parallelRouteKey: string = segmentPath[i]\n if (tree?.slots?.[parallelRouteKey] !== undefined) {\n tree = tree.slots[parallelRouteKey]\n } else {\n if (spawnedEntries !== null) {\n rejectSegmentEntriesIfStillPending(spawnedEntries, now + 10 * 1000)\n }\n return null\n }\n }\n\n writeSeedDataIntoCache(\n now,\n task,\n fetchStrategy,\n route,\n tree,\n staleAt,\n seedData,\n isResponsePartial,\n spawnedEntries\n )\n }\n\n const head = flightData.head\n if (head !== null) {\n fulfillEntrySpawnedByRuntimePrefetch(\n now,\n fetchStrategy,\n route,\n head,\n null,\n flightData.isHeadPartial,\n staleAt,\n route.metadata,\n spawnedEntries\n )\n }\n }\n // Any entry that's still pending was intentionally not rendered by the\n // server, because it was inside the loading boundary. Mark them as rejected\n // so we know not to fetch them again.\n // TODO: If PPR is enabled on some routes but not others, then it's possible\n // that a different page is able to do a per-segment prefetch of one of the\n // segments we're marking as rejected here. We should mark on the segment\n // somehow that the reason for the rejection is because of a non-PPR prefetch.\n // That way a per-segment prefetch knows to disregard the rejection.\n if (spawnedEntries !== null) {\n const fulfilledEntries = rejectSegmentEntriesIfStillPending(\n spawnedEntries,\n now + 10 * 1000\n )\n return fulfilledEntries\n }\n return null\n}\n\nfunction writeSeedDataIntoCache(\n now: number,\n task: PrefetchTask,\n fetchStrategy:\n | FetchStrategy.LoadingBoundary\n | FetchStrategy.PPRRuntime\n | FetchStrategy.Full,\n route: FulfilledRouteCacheEntry,\n tree: RouteTree,\n staleAt: number,\n seedData: CacheNodeSeedData,\n isResponsePartial: boolean,\n entriesOwnedByCurrentTask: Map<\n SegmentRequestKey,\n PendingSegmentCacheEntry\n > | null\n) {\n // This function is used to write the result of a runtime server request\n // (CacheNodeSeedData) into the prefetch cache.\n const rsc = seedData[0]\n const loading = seedData[2]\n const isPartial = rsc === null || isResponsePartial\n fulfillEntrySpawnedByRuntimePrefetch(\n now,\n fetchStrategy,\n route,\n rsc,\n loading,\n isPartial,\n staleAt,\n tree,\n entriesOwnedByCurrentTask\n )\n\n // Recursively write the child data into the cache.\n const slots = tree.slots\n if (slots !== null) {\n const seedDataChildren = seedData[1]\n for (const parallelRouteKey in slots) {\n const childTree = slots[parallelRouteKey]\n const childSeedData: CacheNodeSeedData | null | void =\n seedDataChildren[parallelRouteKey]\n if (childSeedData !== null && childSeedData !== undefined) {\n writeSeedDataIntoCache(\n now,\n task,\n fetchStrategy,\n route,\n childTree,\n staleAt,\n childSeedData,\n isResponsePartial,\n entriesOwnedByCurrentTask\n )\n }\n }\n }\n}\n\nfunction fulfillEntrySpawnedByRuntimePrefetch(\n now: number,\n fetchStrategy:\n | FetchStrategy.LoadingBoundary\n | FetchStrategy.PPRRuntime\n | FetchStrategy.Full,\n route: FulfilledRouteCacheEntry,\n rsc: React.ReactNode,\n loading: LoadingModuleData | Promise,\n isPartial: boolean,\n staleAt: number,\n tree: RouteTree,\n entriesOwnedByCurrentTask: Map<\n SegmentRequestKey,\n PendingSegmentCacheEntry\n > | null\n) {\n // We should only write into cache entries that are owned by us. Or create\n // a new one and write into that. We must never write over an entry that was\n // created by a different task, because that causes data races.\n const ownedEntry =\n entriesOwnedByCurrentTask !== null\n ? entriesOwnedByCurrentTask.get(tree.requestKey)\n : undefined\n if (ownedEntry !== undefined) {\n fulfillSegmentCacheEntry(ownedEntry, rsc, loading, staleAt, isPartial)\n } else {\n // There's no matching entry. Attempt to create a new one.\n const possiblyNewEntry = readOrCreateSegmentCacheEntry(\n now,\n fetchStrategy,\n route,\n tree\n )\n if (possiblyNewEntry.status === EntryStatus.Empty) {\n // Confirmed this is a new entry. We can fulfill it.\n const newEntry = possiblyNewEntry\n fulfillSegmentCacheEntry(\n upgradeToPendingSegment(newEntry, fetchStrategy),\n rsc,\n loading,\n staleAt,\n isPartial\n )\n } else {\n // There was already an entry in the cache. But we may be able to\n // replace it with the new one from the server.\n const newEntry = fulfillSegmentCacheEntry(\n upgradeToPendingSegment(\n createDetachedSegmentCacheEntry(staleAt),\n fetchStrategy\n ),\n rsc,\n loading,\n staleAt,\n isPartial\n )\n upsertSegmentEntry(\n now,\n getSegmentVaryPathForRequest(fetchStrategy, tree),\n newEntry\n )\n }\n }\n}\n\nasync function fetchPrefetchResponse(\n url: URL,\n headers: RequestHeaders\n): Promise | null> {\n const fetchPriority = 'low'\n // When issuing a prefetch request, don't immediately decode the response; we\n // use the lower level `createFromResponse` API instead because we need to do\n // some extra processing of the response stream. See\n // `createPrefetchResponseStream` for more details.\n const shouldImmediatelyDecode = false\n const response = await createFetch(\n url,\n headers,\n fetchPriority,\n shouldImmediatelyDecode\n )\n if (!response.ok) {\n return null\n }\n\n // Check the content type\n if (isOutputExportMode) {\n // In output: \"export\" mode, we relaxed about the content type, since it's\n // not Next.js that's serving the response. If the status is OK, assume the\n // response is valid. If it's not a valid response, the Flight client won't\n // be able to decode it, and we'll treat it as a miss.\n } else {\n const contentType = response.headers.get('content-type')\n const isFlightResponse =\n contentType && contentType.startsWith(RSC_CONTENT_TYPE_HEADER)\n if (!isFlightResponse) {\n return null\n }\n }\n return response\n}\n\nfunction createPrefetchResponseStream(\n originalFlightStream: ReadableStream,\n onStreamClose: () => void,\n onResponseSizeUpdate: (size: number) => void\n): ReadableStream {\n // When PPR is enabled, prefetch streams may contain references that never\n // resolve, because that's how we encode dynamic data access. In the decoded\n // object returned by the Flight client, these are reified into hanging\n // promises that suspend during render, which is effectively what we want.\n // The UI resolves when it switches to the dynamic data stream\n // (via useDeferredValue(dynamic, static)).\n //\n // However, the Flight implementation currently errors if the server closes\n // the response before all the references are resolved. As a cheat to work\n // around this, we wrap the original stream in a new stream that never closes,\n // and therefore doesn't error.\n //\n // While processing the original stream, we also incrementally update the size\n // of the cache entry in the LRU.\n let totalByteLength = 0\n const reader = originalFlightStream.getReader()\n return new ReadableStream({\n async pull(controller) {\n while (true) {\n const { done, value } = await reader.read()\n if (!done) {\n // Pass to the target stream and keep consuming the Flight response\n // from the server.\n controller.enqueue(value)\n\n // Incrementally update the size of the cache entry in the LRU.\n // NOTE: Since prefetch responses are delivered in a single chunk,\n // it's not really necessary to do this streamingly, but I'm doing it\n // anyway in case this changes in the future.\n totalByteLength += value.byteLength\n onResponseSizeUpdate(totalByteLength)\n continue\n }\n // The server stream has closed. Exit, but intentionally do not close\n // the target stream. We do notify the caller, though.\n onStreamClose()\n return\n }\n },\n })\n}\n\nfunction addSegmentPathToUrlInOutputExportMode(\n url: URL,\n segmentPath: SegmentRequestKey\n): URL {\n if (isOutputExportMode) {\n // In output: \"export\" mode, we cannot use a header to encode the segment\n // path. Instead, we append it to the end of the pathname.\n const staticUrl = new URL(url)\n const routeDir = staticUrl.pathname.endsWith('/')\n ? staticUrl.pathname.slice(0, -1)\n : staticUrl.pathname\n const staticExportFilename =\n convertSegmentPathToStaticExportFilename(segmentPath)\n staticUrl.pathname = `${routeDir}/${staticExportFilename}`\n return staticUrl\n }\n return url\n}\n\n/**\n * Checks whether the new fetch strategy is likely to provide more content than the old one.\n *\n * Generally, when an app uses dynamic data, a \"more specific\" fetch strategy is expected to provide more content:\n * - `LoadingBoundary` only provides static layouts\n * - `PPR` can provide shells for each segment (even for segments that use dynamic data)\n * - `PPRRuntime` can additionally include content that uses searchParams, params, or cookies\n * - `Full` includes all the content, even if it uses dynamic data\n *\n * However, it's possible that a more specific fetch strategy *won't* give us more content if:\n * - a segment is fully static\n * (then, `PPR`/`PPRRuntime`/`Full` will all yield equivalent results)\n * - providing searchParams/params/cookies doesn't reveal any more content, e.g. because of an `await connection()`\n * (then, `PPR` and `PPRRuntime` will yield equivalent results, only `Full` will give us more)\n * Because of this, when comparing two segments, we should also check if the existing segment is partial.\n * If it's not partial, then there's no need to prefetch it again, even using a \"more specific\" strategy.\n * There's currently no way to know if `PPRRuntime` will yield more data that `PPR`, so we have to assume it will.\n *\n * Also note that, in practice, we don't expect to be comparing `LoadingBoundary` to `PPR`/`PPRRuntime`,\n * because a non-PPR-enabled route wouldn't ever use the latter strategies. It might however use `Full`.\n */\nexport function canNewFetchStrategyProvideMoreContent(\n currentStrategy: FetchStrategy,\n newStrategy: FetchStrategy\n): boolean {\n return currentStrategy < newStrategy\n}\n","import type {\n FlightRouterState,\n Segment as FlightRouterStateSegment,\n Segment,\n} from '../../../shared/lib/app-router-types'\nimport { HasLoadingBoundary } from '../../../shared/lib/app-router-types'\nimport { matchSegment } from '../match-segments'\nimport {\n readOrCreateRouteCacheEntry,\n readOrCreateSegmentCacheEntry,\n fetchRouteOnCacheMiss,\n fetchSegmentOnCacheMiss,\n EntryStatus,\n type FulfilledRouteCacheEntry,\n type RouteCacheEntry,\n type SegmentCacheEntry,\n type RouteTree,\n fetchSegmentPrefetchesUsingDynamicRequest,\n type PendingSegmentCacheEntry,\n convertRouteTreeToFlightRouterState,\n readOrCreateRevalidatingSegmentEntry,\n upsertSegmentEntry,\n type FulfilledSegmentCacheEntry,\n upgradeToPendingSegment,\n waitForSegmentCacheEntry,\n overwriteRevalidatingSegmentCacheEntry,\n canNewFetchStrategyProvideMoreContent,\n} from './cache'\nimport { getSegmentVaryPathForRequest, type SegmentVaryPath } from './vary-path'\nimport type { RouteCacheKey } from './cache-key'\nimport { createCacheKey } from './cache-key'\nimport {\n FetchStrategy,\n type PrefetchTaskFetchStrategy,\n PrefetchPriority,\n} from './types'\nimport { getCurrentCacheVersion } from './cache'\nimport {\n addSearchParamsIfPageSegment,\n PAGE_SEGMENT_KEY,\n} from '../../../shared/lib/segment'\nimport type { SegmentRequestKey } from '../../../shared/lib/segment-cache/segment-value-encoding'\n\nconst scheduleMicrotask =\n typeof queueMicrotask === 'function'\n ? queueMicrotask\n : (fn: () => unknown) =>\n Promise.resolve()\n .then(fn)\n .catch((error) =>\n setTimeout(() => {\n throw error\n })\n )\n\nexport type PrefetchTask = {\n key: RouteCacheKey\n\n /**\n * The FlightRouterState at the time the task was initiated. This is needed\n * when falling back to the non-PPR behavior, which only prefetches up to\n * the first loading boundary.\n */\n treeAtTimeOfPrefetch: FlightRouterState\n\n /**\n * The cache version at the time the task was initiated. This is used to\n * determine if the cache was invalidated since the task was initiated.\n */\n cacheVersion: number\n\n /**\n * Whether to prefetch dynamic data, in addition to static data. This is\n * used by ``.\n *\n * Note that a task with `FetchStrategy.PPR` might need to use\n * `FetchStrategy.LoadingBoundary` instead if we find out that a route\n * does not support PPR after doing the initial route prefetch.\n */\n fetchStrategy: PrefetchTaskFetchStrategy\n\n /**\n * sortId is an incrementing counter\n *\n * Newer prefetches are prioritized over older ones, so that as new links\n * enter the viewport, they are not starved by older links that are no\n * longer relevant. In the future, we can add additional prioritization\n * heuristics, like removing prefetches once a link leaves the viewport.\n *\n * The sortId is assigned when the prefetch is initiated, and reassigned if\n * the same task is prefetched again (effectively bumping it to the top of\n * the queue).\n *\n * TODO: We can add additional fields here to indicate what kind of prefetch\n * it is. For example, was it initiated by a link? Or was it an imperative\n * call? If it was initiated by a link, we can remove it from the queue when\n * the link leaves the viewport, but if it was an imperative call, then we\n * should keep it in the queue until it's fulfilled.\n *\n * We can also add priority levels. For example, hovering over a link could\n * increase the priority of its prefetch.\n */\n sortId: number\n\n /**\n * The priority of the task. Like sortId, this affects the task's position in\n * the queue, so it must never be updated without resifting the heap.\n */\n priority: PrefetchPriority\n\n /**\n * The phase of the task. Tasks are split into multiple phases so that their\n * priority can be adjusted based on what kind of work they're doing.\n * Concretely, prefetching the route tree is higher priority than prefetching\n * segment data.\n */\n phase: PrefetchPhase\n\n /**\n * These fields are temporary state for tracking the currently running task.\n * They are reset after each iteration of the task queue.\n */\n hasBackgroundWork: boolean\n spawnedRuntimePrefetches: Set | null\n\n /**\n * True if the prefetch was cancelled.\n */\n isCanceled: boolean\n\n /**\n * The callback passed to `router.prefetch`, if given.\n */\n onInvalidate: null | (() => void)\n\n /**\n * The index of the task in the heap's backing array. Used to efficiently\n * change the priority of a task by re-sifting it, which requires knowing\n * where it is in the array. This is only used internally by the heap\n * algorithm. The naive alternative is indexOf every time a task is queued,\n * which has O(n) complexity.\n *\n * We also use this field to check whether a task is currently in the queue.\n */\n _heapIndex: number\n}\n\nconst enum PrefetchTaskExitStatus {\n /**\n * The task yielded because there are too many requests in progress.\n */\n InProgress,\n\n /**\n * The task is blocked. It needs more data before it can proceed.\n *\n * Currently the only reason this happens is we're still waiting to receive a\n * route tree from the server, because we can't start prefetching the segments\n * until we know what to prefetch.\n */\n Blocked,\n\n /**\n * There's nothing left to prefetch.\n */\n Done,\n}\n\n/**\n * Prefetch tasks are processed in two phases: first the route tree is fetched,\n * then the segments. We use this to priortize tasks that have not yet fetched\n * the route tree.\n */\nconst enum PrefetchPhase {\n RouteTree = 1,\n Segments = 0,\n}\n\nexport type PrefetchSubtaskResult = {\n /**\n * A promise that resolves when the network connection is closed.\n */\n closed: Promise\n value: T\n}\n\nconst taskHeap: Array = []\n\nlet inProgressRequests = 0\n\nlet sortIdCounter = 0\nlet didScheduleMicrotask = false\n\n// The most recently hovered (or touched, etc) link, i.e. the most recent task\n// scheduled at Intent priority. There's only ever a single task at Intent\n// priority at a time. We reserve special network bandwidth for this task only.\nlet mostRecentlyHoveredLink: PrefetchTask | null = null\n\n// CDN cache propagation delay after revalidation (in milliseconds)\nconst REVALIDATION_COOLDOWN_MS = 300\n\n// Timeout handle for the revalidation cooldown. When non-null, prefetch\n// requests are blocked to allow CDN cache propagation.\nlet revalidationCooldownTimeoutHandle: ReturnType | null =\n null\n\n/**\n * Called by the cache when revalidation occurs. Starts a cooldown period\n * during which prefetch requests are blocked to allow CDN cache propagation.\n */\nexport function startRevalidationCooldown(): void {\n // Clear any existing timeout in case multiple revalidations happen\n // in quick succession.\n if (revalidationCooldownTimeoutHandle !== null) {\n clearTimeout(revalidationCooldownTimeoutHandle)\n }\n\n // Schedule the cooldown to expire after the delay.\n revalidationCooldownTimeoutHandle = setTimeout(() => {\n revalidationCooldownTimeoutHandle = null\n // Retry the prefetch queue now that the cooldown has expired.\n ensureWorkIsScheduled()\n }, REVALIDATION_COOLDOWN_MS)\n}\n\nexport type IncludeDynamicData = null | 'full' | 'dynamic'\n\n/**\n * Initiates a prefetch task for the given URL. If a prefetch for the same URL\n * is already in progress, this will bump it to the top of the queue.\n *\n * This is not a user-facing function. By the time this is called, the href is\n * expected to be validated and normalized.\n *\n * @param key The RouteCacheKey to prefetch.\n * @param treeAtTimeOfPrefetch The app's current FlightRouterState\n * @param fetchStrategy Whether to prefetch dynamic data, in addition to\n * static data. This is used by ``.\n */\nexport function schedulePrefetchTask(\n key: RouteCacheKey,\n treeAtTimeOfPrefetch: FlightRouterState,\n fetchStrategy: PrefetchTaskFetchStrategy,\n priority: PrefetchPriority,\n onInvalidate: null | (() => void)\n): PrefetchTask {\n // Spawn a new prefetch task\n const task: PrefetchTask = {\n key,\n treeAtTimeOfPrefetch,\n cacheVersion: getCurrentCacheVersion(),\n priority,\n phase: PrefetchPhase.RouteTree,\n hasBackgroundWork: false,\n spawnedRuntimePrefetches: null,\n fetchStrategy,\n sortId: sortIdCounter++,\n isCanceled: false,\n onInvalidate,\n _heapIndex: -1,\n }\n\n trackMostRecentlyHoveredLink(task)\n\n heapPush(taskHeap, task)\n\n // Schedule an async task to process the queue.\n //\n // The main reason we process the queue in an async task is for batching.\n // It's common for a single JS task/event to trigger multiple prefetches.\n // By deferring to a microtask, we only process the queue once per JS task.\n // If they have different priorities, it also ensures they are processed in\n // the optimal order.\n ensureWorkIsScheduled()\n\n return task\n}\n\nexport function cancelPrefetchTask(task: PrefetchTask): void {\n // Remove the prefetch task from the queue. If the task already completed,\n // then this is a no-op.\n //\n // We must also explicitly mark the task as canceled so that a blocked task\n // does not get added back to the queue when it's pinged by the network.\n task.isCanceled = true\n heapDelete(taskHeap, task)\n}\n\nexport function reschedulePrefetchTask(\n task: PrefetchTask,\n treeAtTimeOfPrefetch: FlightRouterState,\n fetchStrategy: PrefetchTaskFetchStrategy,\n priority: PrefetchPriority\n): void {\n // Bump the prefetch task to the top of the queue, as if it were a fresh\n // task. This is essentially the same as canceling the task and scheduling\n // a new one, except it reuses the original object.\n //\n // The primary use case is to increase the priority of a Link-initated\n // prefetch on hover.\n\n // Un-cancel the task, in case it was previously canceled.\n task.isCanceled = false\n task.phase = PrefetchPhase.RouteTree\n\n // Assign a new sort ID to move it ahead of all other tasks at the same\n // priority level. (Higher sort IDs are processed first.)\n task.sortId = sortIdCounter++\n task.priority =\n // If this task is the most recently hovered link, maintain its\n // Intent priority, even if the rescheduled priority is lower.\n task === mostRecentlyHoveredLink ? PrefetchPriority.Intent : priority\n\n task.treeAtTimeOfPrefetch = treeAtTimeOfPrefetch\n task.fetchStrategy = fetchStrategy\n\n trackMostRecentlyHoveredLink(task)\n\n if (task._heapIndex !== -1) {\n // The task is already in the queue.\n heapResift(taskHeap, task)\n } else {\n heapPush(taskHeap, task)\n }\n ensureWorkIsScheduled()\n}\n\nexport function isPrefetchTaskDirty(\n task: PrefetchTask,\n nextUrl: string | null,\n tree: FlightRouterState\n): boolean {\n // This is used to quickly bail out of a prefetch task if the result is\n // guaranteed to not have changed since the task was initiated. This is\n // strictly an optimization — theoretically, if it always returned true, no\n // behavior should change because a full prefetch task will effectively\n // perform the same checks.\n const currentCacheVersion = getCurrentCacheVersion()\n return (\n task.cacheVersion !== currentCacheVersion ||\n task.treeAtTimeOfPrefetch !== tree ||\n task.key.nextUrl !== nextUrl\n )\n}\n\nfunction trackMostRecentlyHoveredLink(task: PrefetchTask) {\n // Track the mostly recently hovered link, i.e. the most recently scheduled\n // task at Intent priority. There must only be one such task at a time.\n if (\n task.priority === PrefetchPriority.Intent &&\n task !== mostRecentlyHoveredLink\n ) {\n if (mostRecentlyHoveredLink !== null) {\n // Bump the previously hovered link's priority down to Default.\n if (mostRecentlyHoveredLink.priority !== PrefetchPriority.Background) {\n mostRecentlyHoveredLink.priority = PrefetchPriority.Default\n heapResift(taskHeap, mostRecentlyHoveredLink)\n }\n }\n mostRecentlyHoveredLink = task\n }\n}\n\nfunction ensureWorkIsScheduled() {\n if (didScheduleMicrotask) {\n // Already scheduled a task to process the queue\n return\n }\n didScheduleMicrotask = true\n scheduleMicrotask(processQueueInMicrotask)\n}\n\n/**\n * Checks if we've exceeded the maximum number of concurrent prefetch requests,\n * to avoid saturating the browser's internal network queue. This is a\n * cooperative limit — prefetch tasks should check this before issuing\n * new requests.\n *\n * Also checks if we're within the revalidation cooldown window, during which\n * prefetch requests are delayed to allow CDN cache propagation.\n */\nfunction hasNetworkBandwidth(task: PrefetchTask): boolean {\n // Check if we're within the revalidation cooldown window\n if (revalidationCooldownTimeoutHandle !== null) {\n // We're within the cooldown window. Return false to prevent prefetching.\n // When the cooldown expires, the timeout will call ensureWorkIsScheduled()\n // to retry the queue.\n return false\n }\n\n // TODO: Also check if there's an in-progress navigation. We should never\n // add prefetch requests to the network queue if an actual navigation is\n // taking place, to ensure there's sufficient bandwidth for render-blocking\n // data and resources.\n\n // TODO: Consider reserving some amount of bandwidth for static prefetches.\n\n if (task.priority === PrefetchPriority.Intent) {\n // The most recently hovered link is allowed to exceed the default limit.\n //\n // The goal is to always have enough bandwidth to start a new prefetch\n // request when hovering over a link.\n //\n // However, because we don't abort in-progress requests, it's still possible\n // we'll run out of bandwidth. When links are hovered in quick succession,\n // there could be multiple hover requests running simultaneously.\n return inProgressRequests < 12\n }\n\n // The default limit is lower than the limit for a hovered link.\n return inProgressRequests < 4\n}\n\nfunction spawnPrefetchSubtask(\n prefetchSubtask: Promise | null>\n): Promise {\n // When the scheduler spawns an async task, we don't await its result.\n // Instead, the async task writes its result directly into the cache, then\n // pings the scheduler to continue.\n //\n // We process server responses streamingly, so the prefetch subtask will\n // likely resolve before we're finished receiving all the data. The subtask\n // result includes a promise that resolves once the network connection is\n // closed. The scheduler uses this to control network bandwidth by tracking\n // and limiting the number of concurrent requests.\n inProgressRequests++\n return prefetchSubtask.then((result) => {\n if (result === null) {\n // The prefetch task errored before it could start processing the\n // network stream. Assume the connection is closed.\n onPrefetchConnectionClosed()\n return null\n }\n // Wait for the connection to close before freeing up more bandwidth.\n result.closed.then(onPrefetchConnectionClosed)\n return result.value\n })\n}\n\nfunction onPrefetchConnectionClosed(): void {\n inProgressRequests--\n\n // Notify the scheduler that we have more bandwidth, and can continue\n // processing tasks.\n ensureWorkIsScheduled()\n}\n\n/**\n * Notify the scheduler that we've received new data for an in-progress\n * prefetch. The corresponding task will be added back to the queue (unless the\n * task has been canceled in the meantime).\n */\nexport function pingPrefetchTask(task: PrefetchTask) {\n // \"Ping\" a prefetch that's already in progress to notify it of new data.\n if (\n // Check if prefetch was canceled.\n task.isCanceled ||\n // Check if prefetch is already queued.\n task._heapIndex !== -1\n ) {\n return\n }\n // Add the task back to the queue.\n heapPush(taskHeap, task)\n ensureWorkIsScheduled()\n}\n\nfunction processQueueInMicrotask() {\n didScheduleMicrotask = false\n\n // We aim to minimize how often we read the current time. Since nearly all\n // functions in the prefetch scheduler are synchronous, we can read the time\n // once and pass it as an argument wherever it's needed.\n const now = Date.now()\n\n // Process the task queue until we run out of network bandwidth.\n let task = heapPeek(taskHeap)\n while (task !== null && hasNetworkBandwidth(task)) {\n task.cacheVersion = getCurrentCacheVersion()\n\n const exitStatus = pingRoute(now, task)\n\n // These fields are only valid for a single attempt. Reset them after each\n // iteration of the task queue.\n const hasBackgroundWork = task.hasBackgroundWork\n task.hasBackgroundWork = false\n task.spawnedRuntimePrefetches = null\n\n switch (exitStatus) {\n case PrefetchTaskExitStatus.InProgress:\n // The task yielded because there are too many requests in progress.\n // Stop processing tasks until we have more bandwidth.\n return\n case PrefetchTaskExitStatus.Blocked:\n // The task is blocked. It needs more data before it can proceed.\n // Keep the task out of the queue until the server responds.\n heapPop(taskHeap)\n // Continue to the next task\n task = heapPeek(taskHeap)\n continue\n case PrefetchTaskExitStatus.Done:\n if (task.phase === PrefetchPhase.RouteTree) {\n // Finished prefetching the route tree. Proceed to prefetching\n // the segments.\n task.phase = PrefetchPhase.Segments\n heapResift(taskHeap, task)\n } else if (hasBackgroundWork) {\n // The task spawned additional background work. Reschedule the task\n // at background priority.\n task.priority = PrefetchPriority.Background\n heapResift(taskHeap, task)\n } else {\n // The prefetch is complete. Continue to the next task.\n heapPop(taskHeap)\n }\n task = heapPeek(taskHeap)\n continue\n default:\n exitStatus satisfies never\n }\n }\n}\n\n/**\n * Check this during a prefetch task to determine if background work can be\n * performed. If so, it evaluates to `true`. Otherwise, it returns `false`,\n * while also scheduling a background task to run later. Usage:\n *\n * @example\n * if (background(task)) {\n * // Perform background-pri work\n * }\n */\nfunction background(task: PrefetchTask): boolean {\n if (task.priority === PrefetchPriority.Background) {\n return true\n }\n task.hasBackgroundWork = true\n return false\n}\n\nfunction pingRoute(now: number, task: PrefetchTask): PrefetchTaskExitStatus {\n const key = task.key\n const route = readOrCreateRouteCacheEntry(now, task, key)\n const exitStatus = pingRootRouteTree(now, task, route)\n\n if (exitStatus !== PrefetchTaskExitStatus.InProgress && key.search !== '') {\n // If the URL has a non-empty search string, also prefetch the pathname\n // without the search string. We use the searchless route tree as a base for\n // optimistic routing; see requestOptimisticRouteCacheEntry for details.\n //\n // Note that we don't need to prefetch any of the segment data. Just the\n // route tree.\n //\n // TODO: This is a temporary solution; the plan is to replace this by adding\n // a wildcard lookup method to the TupleMap implementation. This is\n // non-trivial to implement because it needs to account for things like\n // fallback route entries, hence this temporary workaround.\n const url = new URL(key.pathname, location.origin)\n const keyWithoutSearch = createCacheKey(url.href, key.nextUrl)\n const routeWithoutSearch = readOrCreateRouteCacheEntry(\n now,\n task,\n keyWithoutSearch\n )\n switch (routeWithoutSearch.status) {\n case EntryStatus.Empty: {\n if (background(task)) {\n routeWithoutSearch.status = EntryStatus.Pending\n spawnPrefetchSubtask(\n fetchRouteOnCacheMiss(routeWithoutSearch, task, keyWithoutSearch)\n )\n }\n break\n }\n case EntryStatus.Pending:\n case EntryStatus.Fulfilled:\n case EntryStatus.Rejected: {\n // Either the route tree is already cached, or there's already a\n // request in progress. Since we don't need to fetch any segment data\n // for this route, there's nothing left to do.\n break\n }\n default:\n routeWithoutSearch satisfies never\n }\n }\n\n return exitStatus\n}\n\nfunction pingRootRouteTree(\n now: number,\n task: PrefetchTask,\n route: RouteCacheEntry\n): PrefetchTaskExitStatus {\n switch (route.status) {\n case EntryStatus.Empty: {\n // Route is not yet cached, and there's no request already in progress.\n // Spawn a task to request the route, load it into the cache, and ping\n // the task to continue.\n\n // TODO: There are multiple strategies in the API for prefetching\n // a route. Currently we've only implemented the main one: per-segment,\n // static-data only.\n //\n // There's also ``\n // which prefetch both static *and* dynamic data.\n // Similarly, we need to fallback to the old, per-page\n // behavior if PPR is disabled for a route (via the incremental opt-in).\n //\n // Those cases will be handled here.\n spawnPrefetchSubtask(fetchRouteOnCacheMiss(route, task, task.key))\n\n // If the request takes longer than a minute, a subsequent request should\n // retry instead of waiting for this one. When the response is received,\n // this value will be replaced by a new value based on the stale time sent\n // from the server.\n // TODO: We should probably also manually abort the fetch task, to reclaim\n // server bandwidth.\n route.staleAt = now + 60 * 1000\n\n // Upgrade to Pending so we know there's already a request in progress\n route.status = EntryStatus.Pending\n\n // Intentional fallthrough to the Pending branch\n }\n case EntryStatus.Pending: {\n // Still pending. We can't start prefetching the segments until the route\n // tree has loaded. Add the task to the set of blocked tasks so that it\n // is notified when the route tree is ready.\n const blockedTasks = route.blockedTasks\n if (blockedTasks === null) {\n route.blockedTasks = new Set([task])\n } else {\n blockedTasks.add(task)\n }\n return PrefetchTaskExitStatus.Blocked\n }\n case EntryStatus.Rejected: {\n // Route tree failed to load. Treat as a 404.\n return PrefetchTaskExitStatus.Done\n }\n case EntryStatus.Fulfilled: {\n if (task.phase !== PrefetchPhase.Segments) {\n // Do not prefetch segment data until we've entered the segment phase.\n return PrefetchTaskExitStatus.Done\n }\n // Recursively fill in the segment tree.\n if (!hasNetworkBandwidth(task)) {\n // Stop prefetching segments until there's more bandwidth.\n return PrefetchTaskExitStatus.InProgress\n }\n const tree = route.tree\n\n // A task's fetch strategy gets set to `PPR` for any \"auto\" prefetch.\n // If it turned out that the route isn't PPR-enabled, we need to use `LoadingBoundary` instead.\n // We don't need to do this for runtime prefetches, because those are only available in\n // `cacheComponents`, where every route is PPR.\n const fetchStrategy =\n task.fetchStrategy === FetchStrategy.PPR\n ? route.isPPREnabled\n ? FetchStrategy.PPR\n : FetchStrategy.LoadingBoundary\n : task.fetchStrategy\n\n switch (fetchStrategy) {\n case FetchStrategy.PPR: {\n // For Cache Components pages, each segment may be prefetched\n // statically or using a runtime request, based on various\n // configurations and heuristics. We'll do this in two passes: first\n // traverse the tree and perform all the static prefetches.\n //\n // Then, if there are any segments that need a runtime request,\n // do another pass to perform a runtime prefetch.\n pingStaticHead(now, task, route)\n const exitStatus = pingSharedPartOfCacheComponentsTree(\n now,\n task,\n route,\n task.treeAtTimeOfPrefetch,\n tree\n )\n if (exitStatus === PrefetchTaskExitStatus.InProgress) {\n // Child yielded without finishing.\n return PrefetchTaskExitStatus.InProgress\n }\n const spawnedRuntimePrefetches = task.spawnedRuntimePrefetches\n if (spawnedRuntimePrefetches !== null) {\n // During the first pass, we discovered segments that require a\n // runtime prefetch. Do a second pass to construct a request tree.\n const spawnedEntries = new Map<\n SegmentRequestKey,\n PendingSegmentCacheEntry\n >()\n pingRuntimeHead(\n now,\n task,\n route,\n spawnedEntries,\n FetchStrategy.PPRRuntime\n )\n const requestTree = pingRuntimePrefetches(\n now,\n task,\n route,\n tree,\n spawnedRuntimePrefetches,\n spawnedEntries\n )\n let needsDynamicRequest = spawnedEntries.size > 0\n if (needsDynamicRequest) {\n // Perform a dynamic prefetch request and populate the cache with\n // the result.\n spawnPrefetchSubtask(\n fetchSegmentPrefetchesUsingDynamicRequest(\n task,\n route,\n FetchStrategy.PPRRuntime,\n requestTree,\n spawnedEntries\n )\n )\n }\n }\n return PrefetchTaskExitStatus.Done\n }\n case FetchStrategy.Full:\n case FetchStrategy.PPRRuntime:\n case FetchStrategy.LoadingBoundary: {\n // Prefetch multiple segments using a single dynamic request.\n // TODO: We can consolidate this branch with previous one by modeling\n // it as if the first segment in the new tree has runtime prefetching\n // enabled. Will do this as a follow-up refactor. Might want to remove\n // the special metatdata case below first. In the meantime, it's not\n // really that much duplication, just would be nice to remove one of\n // these codepaths.\n const spawnedEntries = new Map<\n SegmentRequestKey,\n PendingSegmentCacheEntry\n >()\n pingRuntimeHead(now, task, route, spawnedEntries, fetchStrategy)\n const dynamicRequestTree = diffRouteTreeAgainstCurrent(\n now,\n task,\n route,\n task.treeAtTimeOfPrefetch,\n tree,\n spawnedEntries,\n fetchStrategy\n )\n let needsDynamicRequest = spawnedEntries.size > 0\n if (needsDynamicRequest) {\n spawnPrefetchSubtask(\n fetchSegmentPrefetchesUsingDynamicRequest(\n task,\n route,\n fetchStrategy,\n dynamicRequestTree,\n spawnedEntries\n )\n )\n }\n return PrefetchTaskExitStatus.Done\n }\n default:\n fetchStrategy satisfies never\n }\n break\n }\n default: {\n route satisfies never\n }\n }\n return PrefetchTaskExitStatus.Done\n}\n\nfunction pingStaticHead(\n now: number,\n task: PrefetchTask,\n route: FulfilledRouteCacheEntry\n): void {\n // The Head data for a page (metadata, viewport) is not really a route\n // segment, in the sense that it doesn't appear in the route tree. But we\n // store it in the cache as if it were, using a special key.\n pingStaticSegmentData(\n now,\n task,\n route,\n readOrCreateSegmentCacheEntry(\n now,\n FetchStrategy.PPR,\n route,\n route.metadata\n ),\n task.key,\n route.metadata\n )\n}\n\nfunction pingRuntimeHead(\n now: number,\n task: PrefetchTask,\n route: FulfilledRouteCacheEntry,\n spawnedEntries: Map,\n fetchStrategy:\n | FetchStrategy.Full\n | FetchStrategy.PPRRuntime\n | FetchStrategy.LoadingBoundary\n): void {\n pingRouteTreeAndIncludeDynamicData(\n now,\n task,\n route,\n route.metadata,\n false,\n spawnedEntries,\n // When prefetching the head, there's no difference between Full\n // and LoadingBoundary\n fetchStrategy === FetchStrategy.LoadingBoundary\n ? FetchStrategy.Full\n : fetchStrategy\n )\n}\n\n// TODO: Rename dynamic -> runtime throughout this module\n\nfunction pingSharedPartOfCacheComponentsTree(\n now: number,\n task: PrefetchTask,\n route: FulfilledRouteCacheEntry,\n oldTree: FlightRouterState,\n newTree: RouteTree\n): PrefetchTaskExitStatus {\n // When Cache Components is enabled (or PPR, or a fully static route when PPR\n // is disabled; those cases are treated equivalently to Cache Components), we\n // start by prefetching each segment individually. Once we reach the \"new\"\n // part of the tree — the part that doesn't exist on the current page — we\n // may choose to switch to a runtime prefetch instead, based on the\n // information sent by the server in the route tree.\n //\n // The traversal starts in the \"shared\" part of the tree. Once we reach the\n // \"new\" part of the tree, we switch to a different traversal,\n // pingNewPartOfCacheComponentsTree.\n\n // Prefetch this segment's static data.\n const segment = readOrCreateSegmentCacheEntry(\n now,\n task.fetchStrategy,\n route,\n newTree\n )\n pingStaticSegmentData(now, task, route, segment, task.key, newTree)\n\n // Recursively ping the children.\n const oldTreeChildren = oldTree[1]\n const newTreeChildren = newTree.slots\n if (newTreeChildren !== null) {\n for (const parallelRouteKey in newTreeChildren) {\n if (!hasNetworkBandwidth(task)) {\n // Stop prefetching segments until there's more bandwidth.\n return PrefetchTaskExitStatus.InProgress\n }\n const newTreeChild = newTreeChildren[parallelRouteKey]\n const newTreeChildSegment = newTreeChild.segment\n const oldTreeChild: FlightRouterState | void =\n oldTreeChildren[parallelRouteKey]\n const oldTreeChildSegment: FlightRouterStateSegment | void =\n oldTreeChild?.[0]\n let childExitStatus\n if (\n oldTreeChildSegment !== undefined &&\n doesCurrentSegmentMatchCachedSegment(\n route,\n newTreeChildSegment,\n oldTreeChildSegment\n )\n ) {\n // We're still in the \"shared\" part of the tree.\n childExitStatus = pingSharedPartOfCacheComponentsTree(\n now,\n task,\n route,\n oldTreeChild,\n newTreeChild\n )\n } else {\n // We've entered the \"new\" part of the tree. Switch\n // traversal functions.\n childExitStatus = pingNewPartOfCacheComponentsTree(\n now,\n task,\n route,\n newTreeChild\n )\n }\n if (childExitStatus === PrefetchTaskExitStatus.InProgress) {\n // Child yielded without finishing.\n return PrefetchTaskExitStatus.InProgress\n }\n }\n }\n\n return PrefetchTaskExitStatus.Done\n}\n\nfunction pingNewPartOfCacheComponentsTree(\n now: number,\n task: PrefetchTask,\n route: FulfilledRouteCacheEntry,\n tree: RouteTree\n): PrefetchTaskExitStatus.InProgress | PrefetchTaskExitStatus.Done {\n // We're now prefetching in the \"new\" part of the tree, the part that doesn't\n // exist on the current page. (In other words, we're deeper than the\n // shared layouts.) Segments in here default to being prefetched statically.\n // However, if the server instructs us to, we may switch to a runtime\n // prefetch instead. Traverse the tree and check at each segment.\n if (tree.hasRuntimePrefetch) {\n // This route has a runtime prefetch response. Since we're below the shared\n // layout, everything from this point should be prefetched using a single,\n // combined runtime request, rather than using per-segment static requests.\n // This is true even if some of the child segments are known to be fully\n // static — once we've decided to perform a runtime prefetch, we might as\n // well respond with the static segments in the same roundtrip. (That's how\n // regular navigations work, too.) We'll still skip over segments that are\n // already cached, though.\n //\n // It's the server's responsibility to set a reasonable value of\n // `hasRuntimePrefetch`. Currently it's user-defined, but eventually, the\n // server may send a value of `false` even if the user opts in, if it\n // determines during build that the route is always fully static. There are\n // more optimizations we can do once we implement fallback param\n // tracking, too.\n //\n // Use the task object to collect the segments that need a runtime prefetch.\n // This will signal to the outer task queue that a second traversal is\n // required to construct a request tree.\n if (task.spawnedRuntimePrefetches === null) {\n task.spawnedRuntimePrefetches = new Set([tree.requestKey])\n } else {\n task.spawnedRuntimePrefetches.add(tree.requestKey)\n }\n // Then exit the traversal without prefetching anything further.\n return PrefetchTaskExitStatus.Done\n }\n\n // This segment should not be runtime prefetched. Prefetch its static data.\n const segment = readOrCreateSegmentCacheEntry(\n now,\n task.fetchStrategy,\n route,\n tree\n )\n pingStaticSegmentData(now, task, route, segment, task.key, tree)\n if (tree.slots !== null) {\n if (!hasNetworkBandwidth(task)) {\n // Stop prefetching segments until there's more bandwidth.\n return PrefetchTaskExitStatus.InProgress\n }\n // Recursively ping the children.\n for (const parallelRouteKey in tree.slots) {\n const childTree = tree.slots[parallelRouteKey]\n const childExitStatus = pingNewPartOfCacheComponentsTree(\n now,\n task,\n route,\n childTree\n )\n if (childExitStatus === PrefetchTaskExitStatus.InProgress) {\n // Child yielded without finishing.\n return PrefetchTaskExitStatus.InProgress\n }\n }\n }\n // This segment and all its children have finished prefetching.\n return PrefetchTaskExitStatus.Done\n}\n\nfunction diffRouteTreeAgainstCurrent(\n now: number,\n task: PrefetchTask,\n route: FulfilledRouteCacheEntry,\n oldTree: FlightRouterState,\n newTree: RouteTree,\n spawnedEntries: Map,\n fetchStrategy:\n | FetchStrategy.Full\n | FetchStrategy.PPRRuntime\n | FetchStrategy.LoadingBoundary\n): FlightRouterState {\n // This is a single recursive traversal that does multiple things:\n // - Finds the parts of the target route (newTree) that are not part of\n // of the current page (oldTree) by diffing them, using the same algorithm\n // as a real navigation.\n // - Constructs a request tree (FlightRouterState) that describes which\n // segments need to be prefetched and which ones are already cached.\n // - Creates a set of pending cache entries for the segments that need to\n // be prefetched, so that a subsequent prefetch task does not request the\n // same segments again.\n const oldTreeChildren = oldTree[1]\n const newTreeChildren = newTree.slots\n let requestTreeChildren: Record = {}\n if (newTreeChildren !== null) {\n for (const parallelRouteKey in newTreeChildren) {\n const newTreeChild = newTreeChildren[parallelRouteKey]\n const newTreeChildSegment = newTreeChild.segment\n const oldTreeChild: FlightRouterState | void =\n oldTreeChildren[parallelRouteKey]\n const oldTreeChildSegment: FlightRouterStateSegment | void =\n oldTreeChild?.[0]\n if (\n oldTreeChildSegment !== undefined &&\n doesCurrentSegmentMatchCachedSegment(\n route,\n newTreeChildSegment,\n oldTreeChildSegment\n )\n ) {\n // This segment is already part of the current route. Keep traversing.\n const requestTreeChild = diffRouteTreeAgainstCurrent(\n now,\n task,\n route,\n oldTreeChild,\n newTreeChild,\n spawnedEntries,\n fetchStrategy\n )\n requestTreeChildren[parallelRouteKey] = requestTreeChild\n } else {\n // This segment is not part of the current route. We're entering a\n // part of the tree that we need to prefetch (unless everything is\n // already cached).\n switch (fetchStrategy) {\n case FetchStrategy.LoadingBoundary: {\n // When PPR is disabled, we can't prefetch per segment. We must\n // fallback to the old prefetch behavior and send a dynamic request.\n // Only routes that include a loading boundary can be prefetched in\n // this way.\n //\n // This is simlar to a \"full\" prefetch, but we're much more\n // conservative about which segments to include in the request.\n //\n // The server will only render up to the first loading boundary\n // inside new part of the tree. If there's no loading boundary\n // anywhere in the tree, the server will never return any data, so\n // we can skip the request.\n const subtreeHasLoadingBoundary =\n newTreeChild.hasLoadingBoundary !==\n HasLoadingBoundary.SubtreeHasNoLoadingBoundary\n const requestTreeChild = subtreeHasLoadingBoundary\n ? pingPPRDisabledRouteTreeUpToLoadingBoundary(\n now,\n task,\n route,\n newTreeChild,\n null,\n spawnedEntries\n )\n : // There's no loading boundary within this tree. Bail out.\n convertRouteTreeToFlightRouterState(newTreeChild)\n requestTreeChildren[parallelRouteKey] = requestTreeChild\n break\n }\n case FetchStrategy.PPRRuntime: {\n // This is a runtime prefetch. Fetch all cacheable data in the tree,\n // not just the static PPR shell.\n const requestTreeChild = pingRouteTreeAndIncludeDynamicData(\n now,\n task,\n route,\n newTreeChild,\n false,\n spawnedEntries,\n fetchStrategy\n )\n requestTreeChildren[parallelRouteKey] = requestTreeChild\n break\n }\n case FetchStrategy.Full: {\n // This is a \"full\" prefetch. Fetch all the data in the tree, both\n // static and dynamic. We issue roughly the same request that we\n // would during a real navigation. The goal is that once the\n // navigation occurs, the router should not have to fetch any\n // additional data.\n //\n // Although the response will include dynamic data, opting into a\n // Full prefetch — via — implicitly\n // instructs the cache to treat the response as \"static\", or non-\n // dynamic, since the whole point is to cache it for\n // future navigations.\n //\n // Construct a tree (currently a FlightRouterState) that represents\n // which segments need to be prefetched and which ones are already\n // cached. If the tree is empty, then we can exit. Otherwise, we'll\n // send the request tree to the server and use the response to\n // populate the segment cache.\n const requestTreeChild = pingRouteTreeAndIncludeDynamicData(\n now,\n task,\n route,\n newTreeChild,\n false,\n spawnedEntries,\n fetchStrategy\n )\n requestTreeChildren[parallelRouteKey] = requestTreeChild\n break\n }\n default:\n fetchStrategy satisfies never\n }\n }\n }\n }\n const requestTree: FlightRouterState = [\n newTree.segment,\n requestTreeChildren,\n null,\n null,\n newTree.isRootLayout,\n ]\n return requestTree\n}\n\nfunction pingPPRDisabledRouteTreeUpToLoadingBoundary(\n now: number,\n task: PrefetchTask,\n route: FulfilledRouteCacheEntry,\n tree: RouteTree,\n refetchMarkerContext: 'refetch' | 'inside-shared-layout' | null,\n spawnedEntries: Map\n): FlightRouterState {\n // This function is similar to pingRouteTreeAndIncludeDynamicData, except the\n // server is only going to return a minimal loading state — it will stop\n // rendering at the first loading boundary. Whereas a Full prefetch is\n // intentionally aggressive and tries to pretfetch all the data that will be\n // needed for a navigation, a LoadingBoundary prefetch is much more\n // conservative. For example, it will omit from the request tree any segment\n // that is already cached, regardles of whether it's partial or full. By\n // contrast, a Full prefetch will refetch partial segments.\n\n // \"inside-shared-layout\" tells the server where to start looking for a\n // loading boundary.\n let refetchMarker: 'refetch' | 'inside-shared-layout' | null =\n refetchMarkerContext === null ? 'inside-shared-layout' : null\n\n const segment = readOrCreateSegmentCacheEntry(\n now,\n task.fetchStrategy,\n route,\n tree\n )\n switch (segment.status) {\n case EntryStatus.Empty: {\n // This segment is not cached. Add a refetch marker so the server knows\n // to start rendering here.\n // TODO: Instead of a \"refetch\" marker, we could just omit this subtree's\n // FlightRouterState from the request tree. I think this would probably\n // already work even without any updates to the server. For consistency,\n // though, I'll send the full tree and we'll look into this later as part\n // of a larger redesign of the request protocol.\n\n // Add the pending cache entry to the result map.\n spawnedEntries.set(\n tree.requestKey,\n upgradeToPendingSegment(\n segment,\n // Set the fetch strategy to LoadingBoundary to indicate that the server\n // might not include it in the pending response. If another route is able\n // to issue a per-segment request, we'll do that in the background.\n FetchStrategy.LoadingBoundary\n )\n )\n if (refetchMarkerContext !== 'refetch') {\n refetchMarker = refetchMarkerContext = 'refetch'\n } else {\n // There's already a parent with a refetch marker, so we don't need\n // to add another one.\n }\n break\n }\n case EntryStatus.Fulfilled: {\n // The segment is already cached.\n const segmentHasLoadingBoundary =\n tree.hasLoadingBoundary === HasLoadingBoundary.SegmentHasLoadingBoundary\n if (segmentHasLoadingBoundary) {\n // This segment has a loading boundary, which means the server won't\n // render its children. So there's nothing left to prefetch along this\n // path. We can bail out.\n return convertRouteTreeToFlightRouterState(tree)\n }\n // NOTE: If the cached segment were fetched using PPR, then it might be\n // partial. We could get a more complete version of the segment by\n // including it in this non-PPR request.\n //\n // We're intentionally choosing not to, though, because it's generally\n // better to avoid doing a full prefetch whenever possible.\n break\n }\n case EntryStatus.Pending: {\n // There's another prefetch currently in progress. Don't add the refetch\n // marker yet, so the server knows it can skip rendering this segment.\n break\n }\n case EntryStatus.Rejected: {\n // The segment failed to load. We shouldn't issue another request until\n // the stale time has elapsed.\n break\n }\n default:\n segment satisfies never\n }\n const requestTreeChildren: Record = {}\n if (tree.slots !== null) {\n for (const parallelRouteKey in tree.slots) {\n const childTree = tree.slots[parallelRouteKey]\n requestTreeChildren[parallelRouteKey] =\n pingPPRDisabledRouteTreeUpToLoadingBoundary(\n now,\n task,\n route,\n childTree,\n refetchMarkerContext,\n spawnedEntries\n )\n }\n }\n const requestTree: FlightRouterState = [\n tree.segment,\n requestTreeChildren,\n null,\n refetchMarker,\n tree.isRootLayout,\n ]\n return requestTree\n}\n\nfunction pingRouteTreeAndIncludeDynamicData(\n now: number,\n task: PrefetchTask,\n route: FulfilledRouteCacheEntry,\n tree: RouteTree,\n isInsideRefetchingParent: boolean,\n spawnedEntries: Map,\n fetchStrategy: FetchStrategy.Full | FetchStrategy.PPRRuntime\n): FlightRouterState {\n // The tree we're constructing is the same shape as the tree we're navigating\n // to. But even though this is a \"new\" tree, some of the individual segments\n // may be cached as a result of other route prefetches.\n //\n // So we need to find the first uncached segment along each path add an\n // explicit \"refetch\" marker so the server knows where to start rendering.\n // Once the server starts rendering along a path, it keeps rendering the\n // entire subtree.\n const segment = readOrCreateSegmentCacheEntry(\n now,\n // Note that `fetchStrategy` might be different from `task.fetchStrategy`,\n // and we have to use the former here.\n // We can have a task with `FetchStrategy.PPR` where some of its segments are configured to\n // always use runtime prefetching (via `export const prefetch`), and those should check for\n // entries that include search params.\n fetchStrategy,\n route,\n tree\n )\n\n let spawnedSegment: PendingSegmentCacheEntry | null = null\n\n switch (segment.status) {\n case EntryStatus.Empty: {\n // This segment is not cached. Include it in the request.\n spawnedSegment = upgradeToPendingSegment(segment, fetchStrategy)\n break\n }\n case EntryStatus.Fulfilled: {\n // The segment is already cached.\n if (\n segment.isPartial &&\n canNewFetchStrategyProvideMoreContent(\n segment.fetchStrategy,\n fetchStrategy\n )\n ) {\n // The cached segment contains dynamic holes, and was prefetched using a less specific strategy than the current one.\n // This means we're in one of these cases:\n // - we have a static prefetch, and we're doing a runtime prefetch\n // - we have a static or runtime prefetch, and we're doing a Full prefetch (or a navigation).\n // In either case, we need to include it in the request to get a more specific (or full) version.\n spawnedSegment = pingFullSegmentRevalidation(\n now,\n route,\n tree,\n fetchStrategy\n )\n }\n break\n }\n case EntryStatus.Pending:\n case EntryStatus.Rejected: {\n // There's either another prefetch currently in progress, or the previous\n // attempt failed. If the new strategy can provide more content, fetch it again.\n if (\n canNewFetchStrategyProvideMoreContent(\n segment.fetchStrategy,\n fetchStrategy\n )\n ) {\n spawnedSegment = pingFullSegmentRevalidation(\n now,\n route,\n tree,\n fetchStrategy\n )\n }\n break\n }\n default:\n segment satisfies never\n }\n const requestTreeChildren: Record = {}\n if (tree.slots !== null) {\n for (const parallelRouteKey in tree.slots) {\n const childTree = tree.slots[parallelRouteKey]\n requestTreeChildren[parallelRouteKey] =\n pingRouteTreeAndIncludeDynamicData(\n now,\n task,\n route,\n childTree,\n isInsideRefetchingParent || spawnedSegment !== null,\n spawnedEntries,\n fetchStrategy\n )\n }\n }\n\n if (spawnedSegment !== null) {\n // Add the pending entry to the result map.\n spawnedEntries.set(tree.requestKey, spawnedSegment)\n }\n\n // Don't bother to add a refetch marker if one is already present in a parent.\n const refetchMarker =\n !isInsideRefetchingParent && spawnedSegment !== null ? 'refetch' : null\n\n const requestTree: FlightRouterState = [\n tree.segment,\n requestTreeChildren,\n null,\n refetchMarker,\n tree.isRootLayout,\n ]\n return requestTree\n}\n\nfunction pingRuntimePrefetches(\n now: number,\n task: PrefetchTask,\n route: FulfilledRouteCacheEntry,\n tree: RouteTree,\n spawnedRuntimePrefetches: Set,\n spawnedEntries: Map\n): FlightRouterState {\n // Construct a request tree (FlightRouterState) for a runtime prefetch. If\n // a segment is part of the runtime prefetch, the tree is constructed by\n // diffing against what's already in the prefetch cache. Otherwise, we send\n // a regular FlightRouterState with no special markers.\n //\n // See pingRouteTreeAndIncludeDynamicData for details.\n if (spawnedRuntimePrefetches.has(tree.requestKey)) {\n // This segment needs a runtime prefetch.\n return pingRouteTreeAndIncludeDynamicData(\n now,\n task,\n route,\n tree,\n false,\n spawnedEntries,\n FetchStrategy.PPRRuntime\n )\n }\n let requestTreeChildren: Record = {}\n const slots = tree.slots\n if (slots !== null) {\n for (const parallelRouteKey in slots) {\n const childTree = slots[parallelRouteKey]\n requestTreeChildren[parallelRouteKey] = pingRuntimePrefetches(\n now,\n task,\n route,\n childTree,\n spawnedRuntimePrefetches,\n spawnedEntries\n )\n }\n }\n\n // This segment is not part of the runtime prefetch. Clone the base tree.\n const requestTree: FlightRouterState = [\n tree.segment,\n requestTreeChildren,\n null,\n null,\n ]\n return requestTree\n}\n\nfunction pingStaticSegmentData(\n now: number,\n task: PrefetchTask,\n route: FulfilledRouteCacheEntry,\n segment: SegmentCacheEntry,\n routeKey: RouteCacheKey,\n tree: RouteTree\n): void {\n switch (segment.status) {\n case EntryStatus.Empty:\n // Upgrade to Pending so we know there's already a request in progress\n spawnPrefetchSubtask(\n fetchSegmentOnCacheMiss(\n route,\n upgradeToPendingSegment(segment, FetchStrategy.PPR),\n routeKey,\n tree\n )\n )\n break\n case EntryStatus.Pending: {\n // There's already a request in progress. Depending on what kind of\n // request it is, we may want to revalidate it.\n switch (segment.fetchStrategy) {\n case FetchStrategy.PPR:\n case FetchStrategy.PPRRuntime:\n case FetchStrategy.Full:\n // There's already a request in progress. Don't do anything.\n break\n case FetchStrategy.LoadingBoundary:\n // There's a pending request, but because it's using the old\n // prefetching strategy, we can't be sure if it will be fulfilled by\n // the response — it might be inside the loading boundary. Perform\n // a revalidation, but because it's speculative, wait to do it at\n // background priority.\n if (background(task)) {\n // TODO: Instead of speculatively revalidating, consider including\n // `hasLoading` in the route tree prefetch response.\n pingPPRSegmentRevalidation(now, route, routeKey, tree)\n }\n break\n default:\n segment.fetchStrategy satisfies never\n }\n break\n }\n case EntryStatus.Rejected: {\n // The existing entry in the cache was rejected. Depending on how it\n // was originally fetched, we may or may not want to revalidate it.\n switch (segment.fetchStrategy) {\n case FetchStrategy.PPR:\n case FetchStrategy.PPRRuntime:\n case FetchStrategy.Full:\n // The previous attempt to fetch this entry failed. Don't attempt to\n // fetch it again until the entry expires.\n break\n case FetchStrategy.LoadingBoundary:\n // There's a rejected entry, but it was fetched using the loading\n // boundary strategy. So the reason it wasn't returned by the server\n // might just be because it was inside a loading boundary. Or because\n // there was a dynamic rewrite. Revalidate it using the per-\n // segment strategy.\n //\n // Because a rejected segment will definitely prevent the segment (and\n // all of its children) from rendering, we perform this revalidation\n // immediately instead of deferring it to a background task.\n pingPPRSegmentRevalidation(now, route, routeKey, tree)\n break\n default:\n segment.fetchStrategy satisfies never\n }\n break\n }\n case EntryStatus.Fulfilled:\n // Segment is already cached. There's nothing left to prefetch.\n break\n default:\n segment satisfies never\n }\n\n // Segments do not have dependent tasks, so once the prefetch is initiated,\n // there's nothing else for us to do (except write the server data into the\n // entry, which is handled by `fetchSegmentOnCacheMiss`).\n}\n\nfunction pingPPRSegmentRevalidation(\n now: number,\n route: FulfilledRouteCacheEntry,\n routeKey: RouteCacheKey,\n tree: RouteTree\n): void {\n const revalidatingSegment = readOrCreateRevalidatingSegmentEntry(\n now,\n FetchStrategy.PPR,\n route,\n tree\n )\n switch (revalidatingSegment.status) {\n case EntryStatus.Empty:\n // Spawn a prefetch request and upsert the segment into the cache\n // upon completion.\n upsertSegmentOnCompletion(\n spawnPrefetchSubtask(\n fetchSegmentOnCacheMiss(\n route,\n upgradeToPendingSegment(revalidatingSegment, FetchStrategy.PPR),\n routeKey,\n tree\n )\n ),\n getSegmentVaryPathForRequest(FetchStrategy.PPR, tree)\n )\n break\n case EntryStatus.Pending:\n // There's already a revalidation in progress.\n break\n case EntryStatus.Fulfilled:\n case EntryStatus.Rejected:\n // A previous revalidation attempt finished, but we chose not to replace\n // the existing entry in the cache. Don't try again until or unless the\n // revalidation entry expires.\n break\n default:\n revalidatingSegment satisfies never\n }\n}\n\nfunction pingFullSegmentRevalidation(\n now: number,\n route: FulfilledRouteCacheEntry,\n tree: RouteTree,\n fetchStrategy: FetchStrategy.Full | FetchStrategy.PPRRuntime\n): PendingSegmentCacheEntry | null {\n const revalidatingSegment = readOrCreateRevalidatingSegmentEntry(\n now,\n fetchStrategy,\n route,\n tree\n )\n if (revalidatingSegment.status === EntryStatus.Empty) {\n // During a Full/PPRRuntime prefetch, a single dynamic request is made for all the\n // segments that we need. So we don't initiate a request here directly. By\n // returning a pending entry from this function, it signals to the caller\n // that this segment should be included in the request that's sent to\n // the server.\n const pendingSegment = upgradeToPendingSegment(\n revalidatingSegment,\n fetchStrategy\n )\n upsertSegmentOnCompletion(\n waitForSegmentCacheEntry(pendingSegment),\n getSegmentVaryPathForRequest(fetchStrategy, tree)\n )\n return pendingSegment\n } else {\n // There's already a revalidation in progress.\n const nonEmptyRevalidatingSegment = revalidatingSegment\n if (\n canNewFetchStrategyProvideMoreContent(\n nonEmptyRevalidatingSegment.fetchStrategy,\n fetchStrategy\n )\n ) {\n // The existing revalidation was fetched using a less specific strategy.\n // Reset it and start a new revalidation.\n const emptySegment = overwriteRevalidatingSegmentCacheEntry(\n fetchStrategy,\n route,\n tree\n )\n const pendingSegment = upgradeToPendingSegment(\n emptySegment,\n fetchStrategy\n )\n upsertSegmentOnCompletion(\n waitForSegmentCacheEntry(pendingSegment),\n getSegmentVaryPathForRequest(fetchStrategy, tree)\n )\n return pendingSegment\n }\n switch (nonEmptyRevalidatingSegment.status) {\n case EntryStatus.Pending:\n // There's already an in-progress prefetch that includes this segment.\n return null\n case EntryStatus.Fulfilled:\n case EntryStatus.Rejected:\n // A previous revalidation attempt finished, but we chose not to replace\n // the existing entry in the cache. Don't try again until or unless the\n // revalidation entry expires.\n return null\n default:\n nonEmptyRevalidatingSegment satisfies never\n return null\n }\n }\n}\n\nconst noop = () => {}\n\nfunction upsertSegmentOnCompletion(\n promise: Promise,\n varyPath: SegmentVaryPath\n) {\n // Wait for a segment to finish loading, then upsert it into the cache\n promise.then((fulfilled) => {\n if (fulfilled !== null) {\n // Received new data. Attempt to replace the existing entry in the cache.\n upsertSegmentEntry(Date.now(), varyPath, fulfilled)\n }\n }, noop)\n}\n\nfunction doesCurrentSegmentMatchCachedSegment(\n route: FulfilledRouteCacheEntry,\n currentSegment: Segment,\n cachedSegment: Segment\n): boolean {\n if (cachedSegment === PAGE_SEGMENT_KEY) {\n // In the FlightRouterState stored by the router, the page segment has the\n // rendered search params appended to the name of the segment. In the\n // prefetch cache, however, this is stored separately. So, when comparing\n // the router's current FlightRouterState to the cached FlightRouterState,\n // we need to make sure we compare both parts of the segment.\n // TODO: This is not modeled clearly. We use the same type,\n // FlightRouterState, for both the CacheNode tree _and_ the prefetch cache\n // _and_ the server response format, when conceptually those are three\n // different things and treated in different ways. We should encode more of\n // this information into the type design so mistakes are less likely.\n return (\n currentSegment ===\n addSearchParamsIfPageSegment(\n PAGE_SEGMENT_KEY,\n Object.fromEntries(new URLSearchParams(route.renderedSearch))\n )\n )\n }\n // Non-page segments are compared using the same function as the server\n return matchSegment(cachedSegment, currentSegment)\n}\n\n// -----------------------------------------------------------------------------\n// The remainder of the module is a MinHeap implementation. Try not to put any\n// logic below here unless it's related to the heap algorithm. We can extract\n// this to a separate module if/when we need multiple kinds of heaps.\n// -----------------------------------------------------------------------------\n\nfunction compareQueuePriority(a: PrefetchTask, b: PrefetchTask) {\n // Since the queue is a MinHeap, this should return a positive number if b is\n // higher priority than a, and a negative number if a is higher priority\n // than b.\n\n // `priority` is an integer, where higher numbers are higher priority.\n const priorityDiff = b.priority - a.priority\n if (priorityDiff !== 0) {\n return priorityDiff\n }\n\n // If the priority is the same, check which phase the prefetch is in — is it\n // prefetching the route tree, or the segments? Route trees are prioritized.\n const phaseDiff = b.phase - a.phase\n if (phaseDiff !== 0) {\n return phaseDiff\n }\n\n // Finally, check the insertion order. `sortId` is an incrementing counter\n // assigned to prefetches. We want to process the newest prefetches first.\n return b.sortId - a.sortId\n}\n\nfunction heapPush(heap: Array, node: PrefetchTask): void {\n const index = heap.length\n heap.push(node)\n node._heapIndex = index\n heapSiftUp(heap, node, index)\n}\n\nfunction heapPeek(heap: Array): PrefetchTask | null {\n return heap.length === 0 ? null : heap[0]\n}\n\nfunction heapPop(heap: Array): PrefetchTask | null {\n if (heap.length === 0) {\n return null\n }\n const first = heap[0]\n first._heapIndex = -1\n const last = heap.pop() as PrefetchTask\n if (last !== first) {\n heap[0] = last\n last._heapIndex = 0\n heapSiftDown(heap, last, 0)\n }\n return first\n}\n\nfunction heapDelete(heap: Array, node: PrefetchTask): void {\n const index = node._heapIndex\n if (index !== -1) {\n node._heapIndex = -1\n if (heap.length !== 0) {\n const last = heap.pop() as PrefetchTask\n if (last !== node) {\n heap[index] = last\n last._heapIndex = index\n heapSiftDown(heap, last, index)\n }\n }\n }\n}\n\nfunction heapResift(heap: Array, node: PrefetchTask): void {\n const index = node._heapIndex\n if (index !== -1) {\n if (index === 0) {\n heapSiftDown(heap, node, 0)\n } else {\n const parentIndex = (index - 1) >>> 1\n const parent = heap[parentIndex]\n if (compareQueuePriority(parent, node) > 0) {\n // The parent is larger. Sift up.\n heapSiftUp(heap, node, index)\n } else {\n // The parent is smaller (or equal). Sift down.\n heapSiftDown(heap, node, index)\n }\n }\n }\n}\n\nfunction heapSiftUp(\n heap: Array,\n node: PrefetchTask,\n i: number\n): void {\n let index = i\n while (index > 0) {\n const parentIndex = (index - 1) >>> 1\n const parent = heap[parentIndex]\n if (compareQueuePriority(parent, node) > 0) {\n // The parent is larger. Swap positions.\n heap[parentIndex] = node\n node._heapIndex = parentIndex\n heap[index] = parent\n parent._heapIndex = index\n\n index = parentIndex\n } else {\n // The parent is smaller. Exit.\n return\n }\n }\n}\n\nfunction heapSiftDown(\n heap: Array,\n node: PrefetchTask,\n i: number\n): void {\n let index = i\n const length = heap.length\n const halfLength = length >>> 1\n while (index < halfLength) {\n const leftIndex = (index + 1) * 2 - 1\n const left = heap[leftIndex]\n const rightIndex = leftIndex + 1\n const right = heap[rightIndex]\n\n // If the left or right node is smaller, swap with the smaller of those.\n if (compareQueuePriority(left, node) < 0) {\n if (rightIndex < length && compareQueuePriority(right, left) < 0) {\n heap[index] = right\n right._heapIndex = index\n heap[rightIndex] = node\n node._heapIndex = rightIndex\n\n index = rightIndex\n } else {\n heap[index] = left\n left._heapIndex = index\n heap[leftIndex] = node\n node._heapIndex = leftIndex\n\n index = leftIndex\n }\n } else if (rightIndex < length && compareQueuePriority(right, node) < 0) {\n heap[index] = right\n right._heapIndex = index\n heap[rightIndex] = node\n node._heapIndex = rightIndex\n\n index = rightIndex\n } else {\n // Neither child is smaller. Exit.\n return\n }\n }\n}\n","import type { FlightRouterState } from '../../shared/lib/app-router-types'\nimport type { AppRouterInstance } from '../../shared/lib/app-router-context.shared-runtime'\nimport {\n FetchStrategy,\n type PrefetchTaskFetchStrategy,\n PrefetchPriority,\n} from './segment-cache/types'\nimport { createCacheKey } from './segment-cache/cache-key'\nimport {\n type PrefetchTask,\n schedulePrefetchTask as scheduleSegmentPrefetchTask,\n cancelPrefetchTask,\n reschedulePrefetchTask,\n isPrefetchTaskDirty,\n} from './segment-cache/scheduler'\nimport { startTransition } from 'react'\n\ntype LinkElement = HTMLAnchorElement | SVGAElement\n\ntype Element = LinkElement | HTMLFormElement\n\n// Properties that are shared between Link and Form instances. We use the same\n// shape for both to prevent a polymorphic de-opt in the VM.\ntype LinkOrFormInstanceShared = {\n router: AppRouterInstance\n fetchStrategy: PrefetchTaskFetchStrategy\n\n isVisible: boolean\n\n // The most recently initiated prefetch task. It may or may not have\n // already completed. The same prefetch task object can be reused across\n // multiple prefetches of the same link.\n prefetchTask: PrefetchTask | null\n}\n\nexport type FormInstance = LinkOrFormInstanceShared & {\n prefetchHref: string\n setOptimisticLinkStatus: null\n}\n\ntype PrefetchableLinkInstance = LinkOrFormInstanceShared & {\n prefetchHref: string\n setOptimisticLinkStatus: (status: { pending: boolean }) => void\n}\n\ntype NonPrefetchableLinkInstance = LinkOrFormInstanceShared & {\n prefetchHref: null\n setOptimisticLinkStatus: (status: { pending: boolean }) => void\n}\n\ntype PrefetchableInstance = PrefetchableLinkInstance | FormInstance\n\nexport type LinkInstance =\n | PrefetchableLinkInstance\n | NonPrefetchableLinkInstance\n\n// Tracks the most recently navigated link instance. When null, indicates\n// the current navigation was not initiated by a link click.\nlet linkForMostRecentNavigation: LinkInstance | null = null\n\n// Status object indicating link is pending\nexport const PENDING_LINK_STATUS = { pending: true }\n\n// Status object indicating link is idle\nexport const IDLE_LINK_STATUS = { pending: false }\n\n// Updates the loading state when navigating between links\n// - Resets the previous link's loading state\n// - Sets the new link's loading state\n// - Updates tracking of current navigation\nexport function setLinkForCurrentNavigation(link: LinkInstance | null) {\n startTransition(() => {\n linkForMostRecentNavigation?.setOptimisticLinkStatus(IDLE_LINK_STATUS)\n link?.setOptimisticLinkStatus(PENDING_LINK_STATUS)\n linkForMostRecentNavigation = link\n })\n}\n\n// Unmounts the current link instance from navigation tracking\nexport function unmountLinkForCurrentNavigation(link: LinkInstance) {\n if (linkForMostRecentNavigation === link) {\n linkForMostRecentNavigation = null\n }\n}\n\n// Use a WeakMap to associate a Link instance with its DOM element. This is\n// used by the IntersectionObserver to track the link's visibility.\nconst prefetchable:\n | WeakMap\n | Map =\n typeof WeakMap === 'function' ? new WeakMap() : new Map()\n\n// A Set of the currently visible links. We re-prefetch visible links after a\n// cache invalidation, or when the current URL changes. It's a separate data\n// structure from the WeakMap above because only the visible links need to\n// be enumerated.\nconst prefetchableAndVisible: Set = new Set()\n\n// A single IntersectionObserver instance shared by all components.\nconst observer: IntersectionObserver | null =\n typeof IntersectionObserver === 'function'\n ? new IntersectionObserver(handleIntersect, {\n rootMargin: '200px',\n })\n : null\n\nfunction observeVisibility(element: Element, instance: PrefetchableInstance) {\n const existingInstance = prefetchable.get(element)\n if (existingInstance !== undefined) {\n // This shouldn't happen because each component should have its own\n // anchor tag instance, but it's defensive coding to avoid a memory leak in\n // case there's a logical error somewhere else.\n unmountPrefetchableInstance(element)\n }\n // Only track prefetchable links that have a valid prefetch URL\n prefetchable.set(element, instance)\n if (observer !== null) {\n observer.observe(element)\n }\n}\n\nfunction coercePrefetchableUrl(href: string): URL | null {\n if (typeof window !== 'undefined') {\n const { createPrefetchURL } =\n require('./app-router-utils') as typeof import('./app-router-utils')\n\n try {\n return createPrefetchURL(href)\n } catch {\n // createPrefetchURL sometimes throws an error if an invalid URL is\n // provided, though I'm not sure if it's actually necessary.\n // TODO: Consider removing the throw from the inner function, or change it\n // to reportError. Or maybe the error isn't even necessary for automatic\n // prefetches, just navigations.\n const reportErrorFn =\n typeof reportError === 'function' ? reportError : console.error\n reportErrorFn(\n `Cannot prefetch '${href}' because it cannot be converted to a URL.`\n )\n return null\n }\n } else {\n return null\n }\n}\n\nexport function mountLinkInstance(\n element: LinkElement,\n href: string,\n router: AppRouterInstance,\n fetchStrategy: PrefetchTaskFetchStrategy,\n prefetchEnabled: boolean,\n setOptimisticLinkStatus: (status: { pending: boolean }) => void\n): LinkInstance {\n if (prefetchEnabled) {\n const prefetchURL = coercePrefetchableUrl(href)\n if (prefetchURL !== null) {\n const instance: PrefetchableLinkInstance = {\n router,\n fetchStrategy,\n isVisible: false,\n prefetchTask: null,\n prefetchHref: prefetchURL.href,\n setOptimisticLinkStatus,\n }\n // We only observe the link's visibility if it's prefetchable. For\n // example, this excludes links to external URLs.\n observeVisibility(element, instance)\n return instance\n }\n }\n // If the link is not prefetchable, we still create an instance so we can\n // track its optimistic state (i.e. useLinkStatus).\n const instance: NonPrefetchableLinkInstance = {\n router,\n fetchStrategy,\n isVisible: false,\n prefetchTask: null,\n prefetchHref: null,\n setOptimisticLinkStatus,\n }\n return instance\n}\n\nexport function mountFormInstance(\n element: HTMLFormElement,\n href: string,\n router: AppRouterInstance,\n fetchStrategy: PrefetchTaskFetchStrategy\n): void {\n const prefetchURL = coercePrefetchableUrl(href)\n if (prefetchURL === null) {\n // This href is not prefetchable, so we don't track it.\n // TODO: We currently observe/unobserve a form every time its href changes.\n // For Links, this isn't a big deal because the href doesn't usually change,\n // but for forms it's extremely common. We should optimize this.\n return\n }\n const instance: FormInstance = {\n router,\n fetchStrategy,\n isVisible: false,\n prefetchTask: null,\n prefetchHref: prefetchURL.href,\n setOptimisticLinkStatus: null,\n }\n observeVisibility(element, instance)\n}\n\nexport function unmountPrefetchableInstance(element: Element) {\n const instance = prefetchable.get(element)\n if (instance !== undefined) {\n prefetchable.delete(element)\n prefetchableAndVisible.delete(instance)\n const prefetchTask = instance.prefetchTask\n if (prefetchTask !== null) {\n cancelPrefetchTask(prefetchTask)\n }\n }\n if (observer !== null) {\n observer.unobserve(element)\n }\n}\n\nfunction handleIntersect(entries: Array) {\n for (const entry of entries) {\n // Some extremely old browsers or polyfills don't reliably support\n // isIntersecting so we check intersectionRatio instead. (Do we care? Not\n // really. But whatever this is fine.)\n const isVisible = entry.intersectionRatio > 0\n onLinkVisibilityChanged(entry.target as HTMLAnchorElement, isVisible)\n }\n}\n\nexport function onLinkVisibilityChanged(element: Element, isVisible: boolean) {\n if (process.env.NODE_ENV !== 'production') {\n // Prefetching on viewport is disabled in development for performance\n // reasons, because it requires compiling the target page.\n // TODO: Investigate re-enabling this.\n return\n }\n\n const instance = prefetchable.get(element)\n if (instance === undefined) {\n return\n }\n\n instance.isVisible = isVisible\n if (isVisible) {\n prefetchableAndVisible.add(instance)\n } else {\n prefetchableAndVisible.delete(instance)\n }\n rescheduleLinkPrefetch(instance, PrefetchPriority.Default)\n}\n\nexport function onNavigationIntent(\n element: HTMLAnchorElement | SVGAElement,\n unstable_upgradeToDynamicPrefetch: boolean\n) {\n const instance = prefetchable.get(element)\n if (instance === undefined) {\n return\n }\n // Prefetch the link on hover/touchstart.\n if (instance !== undefined) {\n if (\n process.env.__NEXT_DYNAMIC_ON_HOVER &&\n unstable_upgradeToDynamicPrefetch\n ) {\n // Switch to a full prefetch\n instance.fetchStrategy = FetchStrategy.Full\n }\n rescheduleLinkPrefetch(instance, PrefetchPriority.Intent)\n }\n}\n\nfunction rescheduleLinkPrefetch(\n instance: PrefetchableInstance,\n priority: PrefetchPriority.Default | PrefetchPriority.Intent\n) {\n // Ensures that app-router-instance is not compiled in the server bundle\n if (typeof window !== 'undefined') {\n const existingPrefetchTask = instance.prefetchTask\n\n if (!instance.isVisible) {\n // Cancel any in-progress prefetch task. (If it already finished then this\n // is a no-op.)\n if (existingPrefetchTask !== null) {\n cancelPrefetchTask(existingPrefetchTask)\n }\n // We don't need to reset the prefetchTask to null upon cancellation; an\n // old task object can be rescheduled with reschedulePrefetchTask. This is a\n // micro-optimization but also makes the code simpler (don't need to\n // worry about whether an old task object is stale).\n return\n }\n\n const { getCurrentAppRouterState } =\n require('./app-router-instance') as typeof import('./app-router-instance')\n\n const appRouterState = getCurrentAppRouterState()\n if (appRouterState !== null) {\n const treeAtTimeOfPrefetch = appRouterState.tree\n if (existingPrefetchTask === null) {\n // Initiate a prefetch task.\n const nextUrl = appRouterState.nextUrl\n const cacheKey = createCacheKey(instance.prefetchHref, nextUrl)\n instance.prefetchTask = scheduleSegmentPrefetchTask(\n cacheKey,\n treeAtTimeOfPrefetch,\n instance.fetchStrategy,\n priority,\n null\n )\n } else {\n // We already have an old task object that we can reschedule. This is\n // effectively the same as canceling the old task and creating a new one.\n reschedulePrefetchTask(\n existingPrefetchTask,\n treeAtTimeOfPrefetch,\n instance.fetchStrategy,\n priority\n )\n }\n }\n }\n}\n\nexport function pingVisibleLinks(\n nextUrl: string | null,\n tree: FlightRouterState\n) {\n // For each currently visible link, cancel the existing prefetch task (if it\n // exists) and schedule a new one. This is effectively the same as if all the\n // visible links left and then re-entered the viewport.\n //\n // This is called when the Next-Url or the base tree changes, since those\n // may affect the result of a prefetch task. It's also called after a\n // cache invalidation.\n for (const instance of prefetchableAndVisible) {\n const task = instance.prefetchTask\n if (task !== null && !isPrefetchTaskDirty(task, nextUrl, tree)) {\n // The cache has not been invalidated, and none of the inputs have\n // changed. Bail out.\n continue\n }\n // Something changed. Cancel the existing prefetch task and schedule a\n // new one.\n if (task !== null) {\n cancelPrefetchTask(task)\n }\n const cacheKey = createCacheKey(instance.prefetchHref, nextUrl)\n instance.prefetchTask = scheduleSegmentPrefetchTask(\n cacheKey,\n tree,\n instance.fetchStrategy,\n PrefetchPriority.Default,\n null\n )\n }\n}\n","import { parsePath } from './parse-path'\n\n/**\n * Checks if a given path starts with a given prefix. It ensures it matches\n * exactly without containing extra chars. e.g. prefix /docs should replace\n * for /docs, /docs/, /docs/a but not /docsss\n * @param path The path to check.\n * @param prefix The prefix to check against.\n */\nexport function pathHasPrefix(path: string, prefix: string) {\n if (typeof path !== 'string') {\n return false\n }\n\n const { pathname } = parsePath(path)\n return pathname === prefix || pathname.startsWith(prefix + '/')\n}\n","import { pathHasPrefix } from '../shared/lib/router/utils/path-has-prefix'\n\nconst basePath = (process.env.__NEXT_ROUTER_BASEPATH as string) || ''\n\nexport function hasBasePath(path: string): boolean {\n return pathHasPrefix(path, basePath)\n}\n","import { isAbsoluteUrl, getLocationOrigin } from '../../utils'\nimport { hasBasePath } from '../../../../client/has-base-path'\n\n/**\n * Detects whether a given url is routable by the Next.js router (browser only).\n */\nexport function isLocalURL(url: string): boolean {\n // prevent a hydration mismatch on href for url with anchor refs\n if (!isAbsoluteUrl(url)) return true\n try {\n // absolute urls can be local if they are on the same origin\n const locationOrigin = getLocationOrigin()\n const resolved = new URL(url, locationOrigin)\n return resolved.origin === locationOrigin && hasBasePath(resolved.pathname)\n } catch (_) {\n return false\n }\n}\n","let errorOnce = (_: string) => {}\nif (process.env.NODE_ENV !== 'production') {\n const errors = new Set()\n errorOnce = (msg: string) => {\n if (!errors.has(msg)) {\n console.error(msg)\n }\n errors.add(msg)\n }\n}\n\nexport { errorOnce }\n","'use client'\n\nimport React, { createContext, useContext, useOptimistic, useRef } from 'react'\nimport type { UrlObject } from 'url'\nimport { formatUrl } from '../../shared/lib/router/utils/format-url'\nimport { AppRouterContext } from '../../shared/lib/app-router-context.shared-runtime'\nimport { useMergedRef } from '../use-merged-ref'\nimport { isAbsoluteUrl } from '../../shared/lib/utils'\nimport { addBasePath } from '../add-base-path'\nimport { warnOnce } from '../../shared/lib/utils/warn-once'\nimport type { PENDING_LINK_STATUS } from '../components/links'\nimport {\n IDLE_LINK_STATUS,\n mountLinkInstance,\n onNavigationIntent,\n unmountLinkForCurrentNavigation,\n unmountPrefetchableInstance,\n type LinkInstance,\n} from '../components/links'\nimport { isLocalURL } from '../../shared/lib/router/utils/is-local-url'\nimport {\n FetchStrategy,\n type PrefetchTaskFetchStrategy,\n} from '../components/segment-cache/types'\nimport { errorOnce } from '../../shared/lib/utils/error-once'\n\ntype Url = string | UrlObject\ntype RequiredKeys = {\n [K in keyof T]-?: {} extends Pick ? never : K\n}[keyof T]\ntype OptionalKeys = {\n [K in keyof T]-?: {} extends Pick ? K : never\n}[keyof T]\n\ntype OnNavigateEventHandler = (event: { preventDefault: () => void }) => void\n\ntype InternalLinkProps = {\n /**\n * **Required**. The path or URL to navigate to. It can also be an object (similar to `URL`).\n *\n * @example\n * ```tsx\n * // Navigate to /dashboard:\n * Dashboard\n *\n * // Navigate to /about?name=test:\n * \n * About\n * \n * ```\n *\n * @remarks\n * - For external URLs, use a fully qualified URL such as `https://...`.\n * - In the App Router, dynamic routes must not include bracketed segments in `href`.\n */\n href: Url\n\n /**\n * @deprecated v10.0.0: `href` props pointing to a dynamic route are\n * automatically resolved and no longer require the `as` prop.\n */\n as?: Url\n\n /**\n * Replace the current `history` state instead of adding a new URL into the stack.\n *\n * @defaultValue `false`\n *\n * @example\n * ```tsx\n * \n * About (replaces the history state)\n * \n * ```\n */\n replace?: boolean\n\n /**\n * Whether to override the default scroll behavior. If `true`, Next.js attempts to maintain\n * the scroll position if the newly navigated page is still visible. If not, it scrolls to the top.\n *\n * If `false`, Next.js will not modify the scroll behavior at all.\n *\n * @defaultValue `true`\n *\n * @example\n * ```tsx\n * \n * No auto scroll\n * \n * ```\n */\n scroll?: boolean\n\n /**\n * Update the path of the current page without rerunning data fetching methods\n * like `getStaticProps`, `getServerSideProps`, or `getInitialProps`.\n *\n * @remarks\n * `shallow` only applies to the Pages Router. For the App Router, see the\n * [following documentation](https://nextjs.org/docs/app/building-your-application/routing/linking-and-navigating#using-the-native-history-api).\n *\n * @defaultValue `false`\n *\n * @example\n * ```tsx\n * \n * Shallow navigation\n * \n * ```\n */\n shallow?: boolean\n\n /**\n * Forces `Link` to pass its `href` to the child component. Useful if the child is a custom\n * component that wraps an `` tag, or if you're using certain styling libraries.\n *\n * @defaultValue `false`\n *\n * @example\n * ```tsx\n * \n * Dashboard\n * \n * ```\n */\n passHref?: boolean\n\n /**\n * Prefetch the page in the background.\n * Any `` that is in the viewport (initially or through scroll) will be prefetched.\n * Prefetch can be disabled by passing `prefetch={false}`.\n *\n * @remarks\n * Prefetching is only enabled in production.\n *\n * - In the **App Router**:\n * - `\"auto\"`, `null`, `undefined` (default): Prefetch behavior depends on static vs dynamic routes:\n * - Static routes: fully prefetched\n * - Dynamic routes: partial prefetch to the nearest segment with a `loading.js`\n * - `true`: Always prefetch the full route and data.\n * - `false`: Disable prefetching on both viewport and hover.\n * - In the **Pages Router**:\n * - `true` (default): Prefetches the route and data in the background on viewport or hover.\n * - `false`: Prefetch only on hover, not on viewport.\n *\n * @defaultValue `true` (Pages Router) or `null` (App Router)\n *\n * @example\n * ```tsx\n * \n * Dashboard\n * \n * ```\n */\n prefetch?: boolean | 'auto' | null\n\n /**\n * (unstable) Switch to a full prefetch on hover. Effectively the same as\n * updating the prefetch prop to `true` in a mouse event.\n */\n unstable_dynamicOnHover?: boolean\n\n /**\n * The active locale is automatically prepended in the Pages Router. `locale` allows for providing\n * a different locale, or can be set to `false` to opt out of automatic locale behavior.\n *\n * @remarks\n * Note: locale only applies in the Pages Router and is ignored in the App Router.\n *\n * @example\n * ```tsx\n * // Use the 'fr' locale:\n * \n * About (French)\n * \n *\n * // Disable locale prefix:\n * \n * About (no locale prefix)\n * \n * ```\n */\n locale?: string | false\n\n /**\n * Enable legacy link behavior.\n *\n * @deprecated This will be removed in a future version\n * @defaultValue `false`\n * @see https://github.com/vercel/next.js/commit/489e65ed98544e69b0afd7e0cfc3f9f6c2b803b7\n */\n legacyBehavior?: boolean\n\n /**\n * Optional event handler for when the mouse pointer is moved onto the ``.\n */\n onMouseEnter?: React.MouseEventHandler\n\n /**\n * Optional event handler for when the `` is touched.\n */\n onTouchStart?: React.TouchEventHandler\n\n /**\n * Optional event handler for when the `` is clicked.\n */\n onClick?: React.MouseEventHandler\n\n /**\n * Optional event handler for when the `` is navigated.\n */\n onNavigate?: OnNavigateEventHandler\n}\n\n// TODO-APP: Include the full set of Anchor props\n// adding this to the publicly exported type currently breaks existing apps\n\n// `RouteInferType` is a stub here to avoid breaking `typedRoutes` when the type\n// isn't generated yet. It will be replaced when type generation runs.\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport type LinkProps = InternalLinkProps\ntype LinkPropsRequired = RequiredKeys\ntype LinkPropsOptional = OptionalKeys>\n\nfunction isModifiedEvent(event: React.MouseEvent): boolean {\n const eventTarget = event.currentTarget as HTMLAnchorElement | SVGAElement\n const target = eventTarget.getAttribute('target')\n return (\n (target && target !== '_self') ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey ||\n event.altKey || // triggers resource download\n (event.nativeEvent && event.nativeEvent.which === 2)\n )\n}\n\nfunction linkClicked(\n e: React.MouseEvent,\n href: string,\n as: string,\n linkInstanceRef: React.RefObject,\n replace?: boolean,\n scroll?: boolean,\n onNavigate?: OnNavigateEventHandler\n): void {\n if (typeof window !== 'undefined') {\n const { nodeName } = e.currentTarget\n\n // anchors inside an svg have a lowercase nodeName\n const isAnchorNodeName = nodeName.toUpperCase() === 'A'\n if (\n (isAnchorNodeName && isModifiedEvent(e)) ||\n e.currentTarget.hasAttribute('download')\n ) {\n // ignore click for browser’s default behavior\n return\n }\n\n if (!isLocalURL(href)) {\n if (replace) {\n // browser default behavior does not replace the history state\n // so we need to do it manually\n e.preventDefault()\n location.replace(href)\n }\n\n // ignore click for browser’s default behavior\n return\n }\n\n e.preventDefault()\n\n if (onNavigate) {\n let isDefaultPrevented = false\n\n onNavigate({\n preventDefault: () => {\n isDefaultPrevented = true\n },\n })\n\n if (isDefaultPrevented) {\n return\n }\n }\n\n const { dispatchNavigateAction } =\n require('../components/app-router-instance') as typeof import('../components/app-router-instance')\n\n React.startTransition(() => {\n dispatchNavigateAction(\n as || href,\n replace ? 'replace' : 'push',\n scroll ?? true,\n linkInstanceRef.current\n )\n })\n }\n}\n\nfunction formatStringOrUrl(urlObjOrString: UrlObject | string): string {\n if (typeof urlObjOrString === 'string') {\n return urlObjOrString\n }\n\n return formatUrl(urlObjOrString)\n}\n\n/**\n * A React component that extends the HTML `` element to provide\n * [prefetching](https://nextjs.org/docs/app/building-your-application/routing/linking-and-navigating#2-prefetching)\n * and client-side navigation. This is the primary way to navigate between routes in Next.js.\n *\n * @remarks\n * - Prefetching is only enabled in production.\n *\n * @see https://nextjs.org/docs/app/api-reference/components/link\n */\nexport default function LinkComponent(\n props: LinkProps & {\n children: React.ReactNode\n ref: React.Ref\n }\n) {\n const [linkStatus, setOptimisticLinkStatus] = useOptimistic(IDLE_LINK_STATUS)\n\n let children: React.ReactNode\n\n const linkInstanceRef = useRef(null)\n\n const {\n href: hrefProp,\n as: asProp,\n children: childrenProp,\n prefetch: prefetchProp = null,\n passHref,\n replace,\n shallow,\n scroll,\n onClick,\n onMouseEnter: onMouseEnterProp,\n onTouchStart: onTouchStartProp,\n legacyBehavior = false,\n onNavigate,\n ref: forwardedRef,\n unstable_dynamicOnHover,\n ...restProps\n } = props\n\n children = childrenProp\n\n if (\n legacyBehavior &&\n (typeof children === 'string' || typeof children === 'number')\n ) {\n children = {children}\n }\n\n const router = React.useContext(AppRouterContext)\n\n const prefetchEnabled = prefetchProp !== false\n\n const fetchStrategy =\n prefetchProp !== false\n ? getFetchStrategyFromPrefetchProp(prefetchProp)\n : // TODO: it makes no sense to assign a fetchStrategy when prefetching is disabled.\n FetchStrategy.PPR\n\n if (process.env.NODE_ENV !== 'production') {\n function createPropError(args: {\n key: string\n expected: string\n actual: string\n }) {\n return new Error(\n `Failed prop type: The prop \\`${args.key}\\` expects a ${args.expected} in \\`\\`, but got \\`${args.actual}\\` instead.` +\n (typeof window !== 'undefined'\n ? \"\\nOpen your browser's console to view the Component stack trace.\"\n : '')\n )\n }\n\n // TypeScript trick for type-guarding:\n const requiredPropsGuard: Record = {\n href: true,\n } as const\n const requiredProps: LinkPropsRequired[] = Object.keys(\n requiredPropsGuard\n ) as LinkPropsRequired[]\n requiredProps.forEach((key: LinkPropsRequired) => {\n if (key === 'href') {\n if (\n props[key] == null ||\n (typeof props[key] !== 'string' && typeof props[key] !== 'object')\n ) {\n throw createPropError({\n key,\n expected: '`string` or `object`',\n actual: props[key] === null ? 'null' : typeof props[key],\n })\n }\n } else {\n // TypeScript trick for type-guarding:\n const _: never = key\n }\n })\n\n // TypeScript trick for type-guarding:\n const optionalPropsGuard: Record = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n unstable_dynamicOnHover: true,\n onClick: true,\n onMouseEnter: true,\n onTouchStart: true,\n legacyBehavior: true,\n onNavigate: true,\n } as const\n const optionalProps: LinkPropsOptional[] = Object.keys(\n optionalPropsGuard\n ) as LinkPropsOptional[]\n optionalProps.forEach((key: LinkPropsOptional) => {\n const valType = typeof props[key]\n\n if (key === 'as') {\n if (props[key] && valType !== 'string' && valType !== 'object') {\n throw createPropError({\n key,\n expected: '`string` or `object`',\n actual: valType,\n })\n }\n } else if (\n key === 'onClick' ||\n key === 'onMouseEnter' ||\n key === 'onTouchStart' ||\n key === 'onNavigate'\n ) {\n if (props[key] && valType !== 'function') {\n throw createPropError({\n key,\n expected: '`function`',\n actual: valType,\n })\n }\n } else if (\n key === 'replace' ||\n key === 'scroll' ||\n key === 'shallow' ||\n key === 'passHref' ||\n key === 'legacyBehavior' ||\n key === 'unstable_dynamicOnHover'\n ) {\n if (props[key] != null && valType !== 'boolean') {\n throw createPropError({\n key,\n expected: '`boolean`',\n actual: valType,\n })\n }\n } else if (key === 'prefetch') {\n if (\n props[key] != null &&\n valType !== 'boolean' &&\n props[key] !== 'auto'\n ) {\n throw createPropError({\n key,\n expected: '`boolean | \"auto\"`',\n actual: valType,\n })\n }\n } else {\n // TypeScript trick for type-guarding:\n const _: never = key\n }\n })\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (props.locale) {\n warnOnce(\n 'The `locale` prop is not supported in `next/link` while using the `app` router. Read more about app router internalization: https://nextjs.org/docs/app/building-your-application/routing/internationalization'\n )\n }\n if (!asProp) {\n let href: string | undefined\n if (typeof hrefProp === 'string') {\n href = hrefProp\n } else if (\n typeof hrefProp === 'object' &&\n typeof hrefProp.pathname === 'string'\n ) {\n href = hrefProp.pathname\n }\n\n if (href) {\n const hasDynamicSegment = href\n .split('/')\n .some((segment) => segment.startsWith('[') && segment.endsWith(']'))\n\n if (hasDynamicSegment) {\n throw new Error(\n `Dynamic href \\`${href}\\` found in while using the \\`/app\\` router, this is not supported. Read more: https://nextjs.org/docs/messages/app-dir-dynamic-href`\n )\n }\n }\n }\n }\n\n const { href, as } = React.useMemo(() => {\n const resolvedHref = formatStringOrUrl(hrefProp)\n return {\n href: resolvedHref,\n as: asProp ? formatStringOrUrl(asProp) : resolvedHref,\n }\n }, [hrefProp, asProp])\n\n // This will return the first child, if multiple are provided it will throw an error\n let child: any\n if (legacyBehavior) {\n if ((children as any)?.$$typeof === Symbol.for('react.lazy')) {\n throw new Error(\n `\\`\\` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's \\`\\` tag.`\n )\n }\n\n if (process.env.NODE_ENV === 'development') {\n if (onClick) {\n console.warn(\n `\"onClick\" was passed to with \\`href\\` of \\`${hrefProp}\\` but \"legacyBehavior\" was set. The legacy behavior requires onClick be set on the child of next/link`\n )\n }\n if (onMouseEnterProp) {\n console.warn(\n `\"onMouseEnter\" was passed to with \\`href\\` of \\`${hrefProp}\\` but \"legacyBehavior\" was set. The legacy behavior requires onMouseEnter be set on the child of next/link`\n )\n }\n try {\n child = React.Children.only(children)\n } catch (err) {\n if (!children) {\n throw new Error(\n `No children were passed to with \\`href\\` of \\`${hrefProp}\\` but one child is required https://nextjs.org/docs/messages/link-no-children`\n )\n }\n throw new Error(\n `Multiple children were passed to with \\`href\\` of \\`${hrefProp}\\` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children` +\n (typeof window !== 'undefined'\n ? \" \\nOpen your browser's console to view the Component stack trace.\"\n : '')\n )\n }\n } else {\n child = React.Children.only(children)\n }\n } else {\n if (process.env.NODE_ENV === 'development') {\n if ((children as any)?.type === 'a') {\n throw new Error(\n 'Invalid with child. Please remove or use .\\nLearn more: https://nextjs.org/docs/messages/invalid-new-link-with-extra-anchor'\n )\n }\n }\n }\n\n const childRef: any = legacyBehavior\n ? child && typeof child === 'object' && child.ref\n : forwardedRef\n\n // Use a callback ref to attach an IntersectionObserver to the anchor tag on\n // mount. In the future we will also use this to keep track of all the\n // currently mounted instances, e.g. so we can re-prefetch them after\n // a revalidation or refresh.\n const observeLinkVisibilityOnMount = React.useCallback(\n (element: HTMLAnchorElement | SVGAElement) => {\n if (router !== null) {\n linkInstanceRef.current = mountLinkInstance(\n element,\n href,\n router,\n fetchStrategy,\n prefetchEnabled,\n setOptimisticLinkStatus\n )\n }\n\n return () => {\n if (linkInstanceRef.current) {\n unmountLinkForCurrentNavigation(linkInstanceRef.current)\n linkInstanceRef.current = null\n }\n unmountPrefetchableInstance(element)\n }\n },\n [prefetchEnabled, href, router, fetchStrategy, setOptimisticLinkStatus]\n )\n\n const mergedRef = useMergedRef(observeLinkVisibilityOnMount, childRef)\n\n const childProps: {\n onTouchStart?: React.TouchEventHandler\n onMouseEnter: React.MouseEventHandler\n onClick: React.MouseEventHandler\n href?: string\n ref?: any\n } = {\n ref: mergedRef,\n onClick(e) {\n if (process.env.NODE_ENV !== 'production') {\n if (!e) {\n throw new Error(\n `Component rendered inside next/link has to pass click event to \"onClick\" prop.`\n )\n }\n }\n\n if (!legacyBehavior && typeof onClick === 'function') {\n onClick(e)\n }\n\n if (\n legacyBehavior &&\n child.props &&\n typeof child.props.onClick === 'function'\n ) {\n child.props.onClick(e)\n }\n\n if (!router) {\n return\n }\n if (e.defaultPrevented) {\n return\n }\n linkClicked(e, href, as, linkInstanceRef, replace, scroll, onNavigate)\n },\n onMouseEnter(e) {\n if (!legacyBehavior && typeof onMouseEnterProp === 'function') {\n onMouseEnterProp(e)\n }\n\n if (\n legacyBehavior &&\n child.props &&\n typeof child.props.onMouseEnter === 'function'\n ) {\n child.props.onMouseEnter(e)\n }\n\n if (!router) {\n return\n }\n if (!prefetchEnabled || process.env.NODE_ENV === 'development') {\n return\n }\n\n const upgradeToDynamicPrefetch = unstable_dynamicOnHover === true\n onNavigationIntent(\n e.currentTarget as HTMLAnchorElement | SVGAElement,\n upgradeToDynamicPrefetch\n )\n },\n onTouchStart: process.env.__NEXT_LINK_NO_TOUCH_START\n ? undefined\n : function onTouchStart(e) {\n if (!legacyBehavior && typeof onTouchStartProp === 'function') {\n onTouchStartProp(e)\n }\n\n if (\n legacyBehavior &&\n child.props &&\n typeof child.props.onTouchStart === 'function'\n ) {\n child.props.onTouchStart(e)\n }\n\n if (!router) {\n return\n }\n if (!prefetchEnabled) {\n return\n }\n\n const upgradeToDynamicPrefetch = unstable_dynamicOnHover === true\n onNavigationIntent(\n e.currentTarget as HTMLAnchorElement | SVGAElement,\n upgradeToDynamicPrefetch\n )\n },\n }\n\n // If the url is absolute, we can bypass the logic to prepend the basePath.\n if (isAbsoluteUrl(as)) {\n childProps.href = as\n } else if (\n !legacyBehavior ||\n passHref ||\n (child.type === 'a' && !('href' in child.props))\n ) {\n childProps.href = addBasePath(as)\n }\n\n let link: React.ReactNode\n\n if (legacyBehavior) {\n if (process.env.NODE_ENV === 'development') {\n errorOnce(\n '`legacyBehavior` is deprecated and will be removed in a future ' +\n 'release. A codemod is available to upgrade your components:\\n\\n' +\n 'npx @next/codemod@latest new-link .\\n\\n' +\n 'Learn more: https://nextjs.org/docs/app/building-your-application/upgrading/codemods#remove-a-tags-from-link-components'\n )\n }\n link = React.cloneElement(child, childProps)\n } else {\n link = (\n \n {children}\n \n )\n }\n\n return (\n \n {link}\n \n )\n}\n\nconst LinkStatusContext = createContext<\n typeof PENDING_LINK_STATUS | typeof IDLE_LINK_STATUS\n>(IDLE_LINK_STATUS)\n\nexport const useLinkStatus = () => {\n return useContext(LinkStatusContext)\n}\n\nfunction getFetchStrategyFromPrefetchProp(\n prefetchProp: Exclude\n): PrefetchTaskFetchStrategy {\n if (process.env.__NEXT_CACHE_COMPONENTS) {\n if (prefetchProp === true) {\n return FetchStrategy.Full\n }\n\n // `null` or `\"auto\"`: this is the default \"auto\" mode, where we will prefetch partially if the link is in the viewport.\n // This will also include invalid prop values that don't match the types specified here.\n // (although those should've been filtered out by prop validation in dev)\n prefetchProp satisfies null | 'auto'\n return FetchStrategy.PPR\n } else {\n return prefetchProp === null || prefetchProp === 'auto'\n ? // We default to PPR, and we'll discover whether or not the route supports it with the initial prefetch.\n FetchStrategy.PPR\n : // In the old implementation without runtime prefetches, `prefetch={true}` forces all dynamic data to be prefetched.\n // To preserve backwards-compatibility, anything other than `false`, `null`, or `\"auto\"` results in a full prefetch.\n // (although invalid values should've been filtered out by prop validation in dev)\n FetchStrategy.Full\n }\n}\n"],"names":["assign","searchParamsToUrlQuery","urlQueryToSearchParams","searchParams","query","key","value","entries","existing","Array","isArray","push","stringifyUrlQueryParam","param","isNaN","String","URLSearchParams","Object","item","append","set","target","searchParamsList","keys","delete","formatUrl","formatWithValidation","urlObjectKeys","slashedProtocols","urlObj","auth","hostname","protocol","pathname","hash","host","encodeURIComponent","replace","indexOf","port","querystring","search","endsWith","slashes","test","url","process","env","NODE_ENV","forEach","includes","console","warn","useMergedRef","refA","refB","cleanupA","useRef","cleanupB","useCallback","current","cleanupFnA","cleanupFnB","applyRef","cleanup","DecodeError","MiddlewareNotFoundError","MissingStaticPage","NormalizeError","PageNotFoundError","SP","ST","WEB_VITALS","execOnce","getDisplayName","getLocationOrigin","getURL","isAbsoluteUrl","isResSent","loadGetInitialProps","normalizeRepeatedSlashes","stringifyError","fn","used","result","args","ABSOLUTE_URL_REGEX","window","location","href","origin","substring","length","Component","displayName","name","res","finished","headersSent","urlParts","split","urlNoQuery","slice","join","App","ctx","prototype","getInitialProps","message","Error","pageProps","props","performance","every","method","constructor","page","code","error","JSON","stringify","stack","parsePath","path","hashIndex","queryIndex","hasQuery","undefined","addPathPrefix","prefix","startsWith","removeTrailingSlash","route","normalizePathTrailingSlash","__NEXT_MANUAL_TRAILING_SLASH","__NEXT_TRAILING_SLASH","addBasePath","basePath","__NEXT_ROUTER_BASEPATH","required","__NEXT_MANUAL_CLIENT_BASE_PATH","FetchStrategy","NavigationResultTag","PrefetchPriority","createCacheKey","originalHref","nextUrl","originalUrl","URL","cacheKey","HasLoadingBoundary","matchSegment","existingSegment","segment","ACTION_HEADER","FLIGHT_HEADERS","NEXT_ACTION_NOT_FOUND_HEADER","NEXT_ACTION_REVALIDATED_HEADER","NEXT_DID_POSTPONE_HEADER","NEXT_HMR_REFRESH_HASH_COOKIE","NEXT_HMR_REFRESH_HEADER","NEXT_HTML_REQUEST_ID_HEADER","NEXT_IS_PRERENDER_HEADER","NEXT_REQUEST_ID_HEADER","NEXT_REWRITTEN_PATH_HEADER","NEXT_REWRITTEN_QUERY_HEADER","NEXT_ROUTER_PREFETCH_HEADER","NEXT_ROUTER_SEGMENT_PREFETCH_HEADER","NEXT_ROUTER_STALE_TIME_HEADER","NEXT_ROUTER_STATE_TREE_HEADER","NEXT_RSC_UNION_QUERY","NEXT_URL","RSC_CONTENT_TYPE_HEADER","RSC_HEADER","ACTION_HMR_REFRESH","ACTION_NAVIGATE","ACTION_REFRESH","ACTION_RESTORE","ACTION_SERVER_ACTION","ACTION_SERVER_PATCH","PrefetchKind","isThenable","promise","then","dispatchAppRouterAction","useActionQueue","dispatch","action","__DEV__","promisesWithDebugInfo","WeakMap","actionQueue","state","setState","React","useState","useAppDevRenderingIndicator","require","appDevRenderingIndicator","stateWithDebugInfo","useMemo","promiseWithDebugInfo","get","debugInfo","Promise","resolve","asyncState","_debugInfo","use","callServer","actionId","actionArgs","reject","startTransition","type","findSourceMapURL","filename","document","DEFAULT_SEGMENT_KEY","NOT_FOUND_SEGMENT_KEY","PAGE_SEGMENT_KEY","addSearchParamsIfPageSegment","computeSelectedLayoutSegment","getSegmentValue","getSelectedLayoutSegmentPath","isGroupSegment","isParallelRouteSegment","isPageSegment","stringifiedQuery","segments","parallelRouteKey","rawSegment","tree","first","segmentPath","node","parallelRoutes","children","values","segmentValue","HEAD_REQUEST_KEY","ROOT_SEGMENT_REQUEST_KEY","appendSegmentRequestKeyPart","convertSegmentPathToStaticExportFilename","createSegmentRequestKeyPart","safeName","encodeToFilesystemAndURLSafeString","paramType","encodedName","parentRequestKey","childRequestKeyPart","slotKey","simpleParamValueRegex","base64url","btoa","doesStaticSegmentAppearInURL","getCacheKeyForDynamicParam","getParamValueFromCacheKey","getRenderedPathname","getRenderedSearch","parseDynamicParamFromURLPart","urlSearchParamsToParsedUrlQuery","urlToUrlWithoutFlightMarker","response","rewrittenQuery","headers","rewrittenPath","pathnameParts","partIndex","map","s","i","paramValue","renderedSearch","pageSegmentWithSearchParams","fromEntries","urlWithoutFlightParameters","__NEXT_CONFIG_OUTPUT","paramCacheKey","isCatchAll","createHrefFromUrl","includeHash","createInitialRSCPayloadFromFallbackPrerender","getFlightDataPartsFromPath","getNextFlightSegmentPath","normalizeFlightData","prepareFlightRouterStateForRequest","flightDataPath","flightDataPathLength","seedData","head","isHeadPartial","pathToSegment","isRootRender","fallbackInitialRSCPayload","renderedPathname","canonicalUrl","originalFlightDataPath","f","originalFlightRouterState","b","c","q","fillInFallbackFlightRouterState","m","G","S","flightRouterState","filter","p","index","fillInFallbackFlightRouterStateImpl","pathnamePartsIndex","originalSegment","newSegment","doesAppearInURL","paramName","childPathnamePartsIndex","newChildren","childFlightRouterState","newState","flightSegmentPath","flightData","isHmrRefresh","stripClientOnlyDataFromFlightRouterState","_url","refreshMarker","isRootLayout","hasLoadingBoundary","cleanedSegment","stripSearchParamsFromPageSegment","cleanedParallelRoutes","childState","shouldPreserveRefreshMarker","Boolean","getAppBuildId","setAppBuildId","globalBuildId","buildId","djb2Hash","hexHash","str","char","charCodeAt","toString","computeCacheBustingSearchParam","prefetchHeader","segmentPrefetchHeader","stateTreeHeader","nextUrlHeader","setCacheBustingSearchParam","setCacheBustingSearchParamWithHash","uniqueCacheKey","existingSearch","rawQuery","pairs","pair","getDeploymentId","getDeploymentIdQueryOrEmptyString","NEXT_DEPLOYMENT_ID","deploymentId","createFetch","createFromNextReadableStream","fetchServerResponse","createFromReadableStream","createFromReadableStreamBrowser","createFromFetch","createFromFetchBrowser","createDebugChannel","__NEXT_REACT_DEBUG_CHANNEL","doMpaNavigation","isPageUnloading","addEventListener","options","isLegacyPPR","__NEXT_PPR","__NEXT_CACHE_COMPONENTS","shouldImmediatelyDecode","responseUrl","redirected","contentType","interception","postponed","staleTimeHeaderSeconds","staleTime","parseInt","isFlightResponse","ok","body","TURBOPACK","waitForWebpackRuntimeHotUpdate","flightResponsePromise","flightResponse","flightStream","createUnclosingPrefetchStream","normalizedFlightData","couldBeIntercepted","prerendered","err","fetchPriority","signal","__NEXT_TEST_MODE","self","__next_r","crypto","getRandomValues","Uint32Array","fetchOptions","credentials","priority","fetchUrl","fetchPromise","fetch","createFromNextFetch","browserResponse","__NEXT_CLIENT_VALIDATE_RSC_REQUEST_HEADERS","MAX_REDIRECTS","n","rscResponse","status","requestHeaders","debugChannel","promiseForResponse","originalFlightStream","reader","getReader","ReadableStream","pull","controller","done","read","enqueue","deleteFromLru","lruPut","updateLruSize","didScheduleCleanup","lruSize","maxLruSize","prev","next","size","ensureCleanupIsScheduled","tail","newNodeSize","prevNodeSize","deleted","requestCleanupCallback","ninetyPercentMax","deleteMapEntry","requestIdleCallback","cb","setTimeout","Fallback","createCacheMap","deleteFromCacheMap","getFromCacheMap","isValueExpired","setInCacheMap","setSizeInCacheMap","Revalidation","cacheMap","parent","getOrInitialize","isRevalidation","entry","remainingKeys","previousKey","existingEntry","Map","newEntry","now","currentCacheVersion","rootEntry","getEntryWithFallbackImpl","staleAt","version","lazilyEvictIfNeeded","fallbackEntry","setMapEntryValue","dropRef","oldEntry","ref","parentMap","revalidatingEntry","appendLayoutVaryPath","clonePageVaryPathWithNewSearchParams","finalizeLayoutVaryPath","finalizeMetadataVaryPath","finalizePageVaryPath","getFulfilledRouteVaryPath","getRouteVaryPath","getSegmentVaryPathForRequest","varyPath","parentPath","varyPathPart","requestKey","layoutVaryPath","pageVaryPath","pageRequestKey","fetchStrategy","originalVaryPath","isPage","doesVaryOnSearchParams","Full","PPRRuntime","searchParamsVaryPath","pathParamsVaryPath","patchedVaryPath","newSearch","clonedVaryPath","ensureLeadingSlash","normalizeAppPath","normalizeRscURL","reduce","INTERCEPTION_ROUTE_MARKERS","extractInterceptionRouteInformation","isInterceptionRouteAppPath","find","interceptingRoute","marker","interceptedRoute","concat","splitInterceptingRoute","computeChangedPath","extractPathFromFlightRouterState","getSelectedParams","removeLeadingSlash","segmentToPathname","normalizeSegments","acc","some","childrenPath","childPath","computeChangedPathImpl","treeA","treeB","segmentA","parallelRoutesA","segmentB","parallelRoutesB","normalizedSegmentA","normalizedSegmentB","parallelRouterKey","changedPath","currentTree","params","parallelRoute","isDynamicParameter","handleMutable","isNotUndefined","mutable","shouldScroll","previousNextUrl","patchedTree","pushRef","pendingPush","mpaNavigation","preserveCustomHistoryState","focusAndScrollRef","apply","scrollableSegments","onlyHashChange","hashFragment","decodeURIComponent","segmentPaths","cache","collectedDebugInfo","createRouterCacheKey","withoutSearchParameters","isNavigatingToNewRootLayout","nextTree","currentTreeSegment","nextTreeSegment","currentTreeChild","nextTreeChild","FreshnessPolicy","createInitialCacheNodeForHydration","isDeferredRsc","spawnDynamicRequests","startPPRNavigation","noop","navigatedAt","initialTree","seedHead","accumulation","separateRefreshUrls","task","createCacheNodeOnNavigation","oldUrl","oldCacheNode","oldRouterState","newRouterState","freshness","prefetchData","prefetchHead","isPrefetchHeadPartial","isSamePageNavigation","didFindRootLayout","parentNeedsDynamicRequest","parentRefreshUrl","updateCacheNodeOnNavigation","parentSegmentPath","parentParallelRouteKey","oldSegment","newRouterStateChildren","oldRouterStateChildren","seedDataChildren","prefetchDataChildren","childDidFindRootLayout","oldParallelRoutes","shouldDropSiblingCaches","shouldRefreshDynamicData","newParallelRoutes","isLeafSegment","newCacheNode","needsDynamicRequest","dropPrefetchRsc","reuseDynamicCacheNode","seedRsc","seedLoading","isSeedRscPartial","isSeedHeadPartial","readCacheNodeFromSeedData","prefetchRsc","prefetchLoading","isPrefetchRSCPartial","spawnNewCacheNode","refreshUrl","accumulateRefreshUrl","patchedRouterStateChildren","taskChildren","childNeedsDynamicRequest","dynamicRequestTreeChildren","newRouterStateChild","oldRouterStateChild","oldSegmentMapChild","seedDataChild","prefetchDataChild","newSegmentChild","seedHeadChild","prefetchHeadChild","isPrefetchHeadPartialChild","reuseActiveSegmentInDefaultSlot","newSegmentKeyChild","oldCacheNodeChild","taskChild","newCacheNodeChild","newSegmentMapChild","taskChildRoute","dynamicRequestTreeChild","dynamicRequestTree","patchRouterStateWithNewChildren","createDynamicRequestTree","DYNAMIC_STALETIME_MS","oldRsc","rsc","oldRscDidResolve","baseRouterState","clone","Set","add","reusedRouterState","oldRefreshMarker","existingCacheNode","cacheNode","loading","createDeferredRsc","isHydration","previousNavigationDidMismatch","primaryUrl","freshnessPolicy","primaryRequestPromise","fetchMissingDynamicData","refreshRequestPromises","scopedDynamicRequestTree","voidPromise","finishNavigationTask","exitStatus","waitForRequestsToFinish","abortRemainingPendingTasks","isHardRetry","primaryRequestResult","dispatchRetryDueToTreeMismatch","seed","onFulfill","remainingCount","onReject","refreshRequestPromise","retryUrl","retryNextUrl","baseTree","retryAction","previousTree","mpa","convertServerPatchToFullTree","didReceiveUnknownParallelRoute","writeDynamicDataIntoNavigationTask","data","serverRouterState","dynamicData","dynamicHead","finishPendingCacheNode","serverChildren","dynamicDataChildren","serverRouterStateChild","dynamicDataChild","taskSegment","childDidReceiveUnknownParallelRoute","dynamicSegmentData","dynamicLoading","abortPendingCacheNode","childExitStatus","DEFERRED","Symbol","tag","pendingRsc","rej","responseDebugInfo","fulfilledRsc","rejectedRsc","reason","navigate","navigateToSeededRoute","currentUrl","currentCacheNode","currentFlightRouterState","Date","readRouteCacheEntry","EntryStatus","Fulfilled","snapshot","readRenderSnapshotFromCache","prefetchFlightRouterState","prefetchSeedData","headSnapshot","readHeadSnapshotFromCache","isPartial","newCanonicalUrl","navigateUsingPrefetchedRouteTree","Rejected","optimisticRoute","requestOptimisticRouteCacheEntry","newRenderedSearch","Async","navigateDynamicallyWithNoPrefetch","navigationSeed","navigationTaskToResult","MPA","Success","childRouterStates","childSeedDatas","slots","childTree","childResult","segmentEntry","readSegmentCacheEntry","Pending","promiseForFulfilledEntry","waitForSegmentCacheEntry","Empty","hasRuntimePrefetch","metadata","DynamicRequestTreeForEntireRoute","Default","HistoryTraversal","Hydration","RefreshAll","HMRRefresh","promiseForDynamicServerResponse","newUrl","debugInfoFromResponse","baseData","treePatch","dataPatch","headPatch","convertServerPatchToFullTreeImpl","updatedParallelRouteKey","baseTreeChildren","baseSeedDataChildren","newTreeChildren","newSeedDataChildren","childBaseRouterState","childBaseSeedData","clonedTree","clonedSeedData","isEmptySeedDataPartial","STATIC_STALETIME_MS","generateSegmentsFromPatch","handleExternalUrl","handleNavigationResult","navigateReducer","Number","__NEXT_CLIENT_ROUTER_DYNAMIC_STALETIME","getStaleTimeMs","__NEXT_CLIENT_ROUTER_STATIC_STALETIME","flightRouterPatch","childSegment","asyncResult","isExternalUrl","navigateType","getElementById","navigateUsingSegmentCache","createPromiseWithResolvers","canNewFetchStrategyProvideMoreContent","convertRouteTreeToFlightRouterState","createDetachedSegmentCacheEntry","fetchRouteOnCacheMiss","fetchSegmentOnCacheMiss","fetchSegmentPrefetchesUsingDynamicRequest","getCurrentCacheVersion","overwriteRevalidatingSegmentCacheEntry","pingInvalidationListeners","readOrCreateRevalidatingSegmentEntry","readOrCreateRouteCacheEntry","readOrCreateSegmentCacheEntry","revalidateEntireCache","upgradeToPendingSegment","upsertSegmentEntry","staleTimeSeconds","Math","max","isOutputExportMode","MetadataOnlyRequestTree","routeCacheMap","segmentCacheMap","invalidationListeners","startRevalidationCooldown","pingVisibleLinks","attachInvalidationListener","onInvalidate","notifyInvalidationListener","reportError","tasks","isPrefetchTaskDirty","readRevalidatingSegmentCacheEntry","pendingEntry","promiseWithResolvers","blockedTasks","isPPREnabled","Infinity","requestedUrl","requestedSearch","urlWithoutSearchParams","routeWithNoSearchParams","createPrefetchRequestKey","canonicalUrlForRouteWithNoSearchParams","optimisticCanonicalSearch","optimisticRenderedSearch","optimisticUrl","optimisticCanonicalUrl","optimisticRouteTree","createOptimisticRouteTree","optimisticMetadataTree","optimisticEntry","clonedSlots","originalSlots","varyPathForRequest","candidateEntry","rejectedEntry","emptyEntry","PPR","pingBlockedTasks","pingPrefetchTask","fulfillRouteCacheEntry","metadataVaryPath","SubtreeHasNoLoadingBoundary","fulfilledEntry","fulfillSegmentCacheEntry","segmentCacheEntry","rejectRouteCacheEntry","rejectSegmentCacheEntry","convertRootTreePrefetchToRouteTree","rootTree","rootSegment","convertTreePrefetchToRouteTree","prefetch","partialVaryPath","prefetchSlots","childPrefetch","childParamName","childParamType","childServerSentParamKey","paramKey","childDoesAppearInURL","childPartialVaryPath","childParamValue","childParamKey","childRequestKey","SegmentHasLoadingBoundary","convertRootFlightRouterStateToRouteTree","convertFlightRouterStateToRouteTree","parentPartialVaryPath","childRouterState","routeTree","urlAfterRedirects","headResponse","fetchPrefetchResponse","addSegmentPathToUrlInOutputExportMode","varyHeader","closed","routeIsPPREnabled","prefetchStream","createPrefetchResponseStream","onResponseSizeUpdate","serverData","staleTimeMs","writeDynamicTreeResponseIntoCache","LoadingBoundary","fulfilledVaryPath","routeKey","normalizedRequestKey","requestUrl","spawnedEntries","has","rejectSegmentEntriesIfStillPending","fulfilledEntries","totalBytesReceivedSoFar","averageSize","isResponsePartial","rp","writeDynamicRenderResponseIntoCache","normalizedFlightDataResult","flightDatas","writeSeedDataIntoCache","fulfillEntrySpawnedByRuntimePrefetch","entriesOwnedByCurrentTask","childSeedData","ownedEntry","possiblyNewEntry","onStreamClose","totalByteLength","byteLength","staticUrl","routeDir","staticExportFilename","currentStrategy","newStrategy","cancelPrefetchTask","reschedulePrefetchTask","schedulePrefetchTask","scheduleMicrotask","queueMicrotask","catch","taskHeap","inProgressRequests","sortIdCounter","didScheduleMicrotask","mostRecentlyHoveredLink","REVALIDATION_COOLDOWN_MS","revalidationCooldownTimeoutHandle","clearTimeout","ensureWorkIsScheduled","treeAtTimeOfPrefetch","cacheVersion","phase","hasBackgroundWork","spawnedRuntimePrefetches","sortId","isCanceled","_heapIndex","trackMostRecentlyHoveredLink","heapPush","heapDelete","Intent","heapResift","Background","processQueueInMicrotask","hasNetworkBandwidth","spawnPrefetchSubtask","prefetchSubtask","onPrefetchConnectionClosed","heapPeek","pingRoute","heapPop","background","pingRootRouteTree","keyWithoutSearch","routeWithoutSearch","pingStaticHead","pingSharedPartOfCacheComponentsTree","pingRuntimeHead","requestTree","pingRuntimePrefetches","diffRouteTreeAgainstCurrent","pingStaticSegmentData","pingRouteTreeAndIncludeDynamicData","oldTree","newTree","oldTreeChildren","newTreeChild","newTreeChildSegment","oldTreeChild","oldTreeChildSegment","doesCurrentSegmentMatchCachedSegment","pingNewPartOfCacheComponentsTree","requestTreeChildren","requestTreeChild","subtreeHasLoadingBoundary","pingPPRDisabledRouteTreeUpToLoadingBoundary","refetchMarkerContext","refetchMarker","segmentHasLoadingBoundary","isInsideRefetchingParent","spawnedSegment","pingFullSegmentRevalidation","pingPPRSegmentRevalidation","revalidatingSegment","upsertSegmentOnCompletion","pendingSegment","nonEmptyRevalidatingSegment","emptySegment","fulfilled","currentSegment","cachedSegment","compareQueuePriority","a","priorityDiff","phaseDiff","heap","heapSiftUp","last","pop","heapSiftDown","parentIndex","halfLength","leftIndex","left","rightIndex","right","IDLE_LINK_STATUS","PENDING_LINK_STATUS","mountFormInstance","mountLinkInstance","onLinkVisibilityChanged","onNavigationIntent","setLinkForCurrentNavigation","unmountLinkForCurrentNavigation","unmountPrefetchableInstance","linkForMostRecentNavigation","pending","link","setOptimisticLinkStatus","prefetchable","prefetchableAndVisible","observer","IntersectionObserver","handleIntersect","rootMargin","observeVisibility","element","instance","existingInstance","observe","coercePrefetchableUrl","createPrefetchURL","reportErrorFn","router","prefetchEnabled","prefetchURL","isVisible","prefetchTask","prefetchHref","unobserve","intersectionRatio","rescheduleLinkPrefetch","unstable_upgradeToDynamicPrefetch","__NEXT_DYNAMIC_ON_HOVER","existingPrefetchTask","getCurrentAppRouterState","appRouterState","scheduleSegmentPrefetchTask","pathHasPrefix","hasBasePath","isLocalURL","locationOrigin","resolved","_","errorOnce","errors","msg","LinkComponent","useLinkStatus","isModifiedEvent","event","eventTarget","currentTarget","getAttribute","metaKey","ctrlKey","shiftKey","altKey","nativeEvent","which","linkClicked","e","as","linkInstanceRef","scroll","onNavigate","nodeName","isAnchorNodeName","toUpperCase","hasAttribute","preventDefault","isDefaultPrevented","dispatchNavigateAction","formatStringOrUrl","urlObjOrString","linkStatus","useOptimistic","hrefProp","asProp","childrenProp","prefetchProp","passHref","shallow","onClick","onMouseEnter","onMouseEnterProp","onTouchStart","onTouchStartProp","legacyBehavior","forwardedRef","unstable_dynamicOnHover","restProps","useContext","AppRouterContext","getFetchStrategyFromPrefetchProp","createPropError","expected","actual","requiredPropsGuard","requiredProps","optionalPropsGuard","optionalProps","valType","locale","warnOnce","hasDynamicSegment","resolvedHref","child","$$typeof","for","Children","only","childRef","observeLinkVisibilityOnMount","mergedRef","childProps","defaultPrevented","upgradeToDynamicPrefetch","__NEXT_LINK_NO_TOUCH_START","cloneElement","LinkStatusContext","Provider","createContext"],"mappings":"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","ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51]}}] -} \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__57266d7f._.js b/.next/server/chunks/ssr/[root-of-the-server]__00212f08._.js similarity index 99% rename from .next/server/chunks/ssr/[root-of-the-server]__57266d7f._.js rename to .next/server/chunks/ssr/[root-of-the-server]__00212f08._.js index 2d8f67bb9..0ac0f8dd0 100644 --- a/.next/server/chunks/ssr/[root-of-the-server]__57266d7f._.js +++ b/.next/server/chunks/ssr/[root-of-the-server]__00212f08._.js @@ -2,4 +2,4 @@ module.exports=[605365,(a,b,c)=>{b.exports=a.x("process",()=>require("process"))},410430,(a,b,c)=>{b.exports=a.x("async_hooks",()=>require("async_hooks"))},792509,(a,b,c)=>{b.exports=a.x("url",()=>require("url"))},427699,(a,b,c)=>{b.exports=a.x("events",()=>require("events"))},81111,(a,b,c)=>{b.exports=a.x("node:stream",()=>require("node:stream"))},446786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},224361,(a,b,c)=>{b.exports=a.x("util",()=>require("util"))},814747,(a,b,c)=>{b.exports=a.x("path",()=>require("path"))},522734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},233405,(a,b,c)=>{b.exports=a.x("child_process",()=>require("child_process"))},254799,(a,b,c)=>{b.exports=a.x("crypto",()=>require("crypto"))},362562,(a,b,c)=>{b.exports=a.x("module",()=>require("module"))},156823,(a,b,c)=>{b.exports=a.x("require-in-the-middle-a99415fa67232f7f",()=>require("require-in-the-middle-a99415fa67232f7f"))},285512,(a,b,c)=>{b.exports=a.x("import-in-the-middle-138cd032e4b029f3",()=>require("import-in-the-middle-138cd032e4b029f3"))},677652,(a,b,c)=>{b.exports=a.x("node:diagnostics_channel",()=>require("node:diagnostics_channel"))},687769,(a,b,c)=>{b.exports=a.x("node:events",()=>require("node:events"))},154993,(a,b,c)=>{b.exports=a.x("diagnostics_channel",()=>require("diagnostics_channel"))},874533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},902157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},812057,(a,b,c)=>{b.exports=a.x("node:util",()=>require("node:util"))},601457,(a,b,c)=>{b.exports=a.x("node:readline",()=>require("node:readline"))},925127,(a,b,c)=>{b.exports=a.x("node:worker_threads",()=>require("node:worker_threads"))},37702,(a,b,c)=>{b.exports=a.x("worker_threads",()=>require("worker_threads"))},347299,(a,b,c)=>{b.exports=a.x("node:http",()=>require("node:http"))},743698,(a,b,c)=>{b.exports=a.x("node:https",()=>require("node:https"))},727028,(a,b,c)=>{b.exports=a.x("node:zlib",()=>require("node:zlib"))},761095,(a,b,c)=>{b.exports=a.x("node:net",()=>require("node:net"))},685560,(a,b,c)=>{b.exports=a.x("node:tls",()=>require("node:tls"))},60438,(a,b,c)=>{b.exports=a.x("perf_hooks",()=>require("perf_hooks"))},74667,(a,b,c)=>{b.exports=a.x("import-in-the-middle-6ecbfda1283b1532",()=>require("import-in-the-middle-6ecbfda1283b1532"))},989801,a=>{a.v({name:"@fastify/otel",version:"0.18.0",description:"Official Fastify OpenTelemetry Instrumentation",main:"index.js",type:"commonjs",types:"types/index.d.ts",scripts:{lint:"eslint","lint:fix":"eslint --fix",test:"npm run test:all && npm run test:typescript","test:unit":"c8 --100 node --test","test:all":"npm run test:v4 && npm run test:v5","test:v4":"cross-env FASTIFY_VERSION=fastifyv4 npm run test:unit","test:v5":"cross-env FASTIFY_VERSION=fastify npm run test:unit","test:coverage":"c8 node --test && c8 report --reporter=html","test:typescript":"tsd"},repository:{type:"git",url:"git+https://github.com/fastify/otel.git"},keywords:["plugin","helper","fastify","instrumentation","otel","opentelemetry"],author:"Carlos Fuentes - @metcoder95 (https://metcoder.dev)",license:"MIT",bugs:{url:"https://github.com/fastify/otel/issues"},homepage:"https://github.com/fastify/otel#readme",funding:[{type:"github",url:"https://github.com/sponsors/fastify"},{type:"opencollective",url:"https://opencollective.com/fastify"}],devDependencies:{"@fastify/type-provider-typebox":"^6.1.0","@opentelemetry/context-async-hooks":"^2.0.0","@opentelemetry/contrib-test-utils":"^0.59.0","@opentelemetry/instrumentation-http":"^0.212.0","@opentelemetry/propagator-jaeger":"^2.0.0","@opentelemetry/sdk-trace-base":"^2.0.0","@opentelemetry/sdk-trace-node":"^2.2.0","@types/node":"^25.0.3",c8:"^11.0.0","cross-env":"^10.0.0",eslint:"^9.16.0",fastify:"^5.1.0","fastify-plugin":"^5.1.0",fastifyv4:"npm:fastify@^4.0.0",neostandard:"^0.12.0",tsd:"^0.33.0"},dependencies:{"@opentelemetry/core":"^2.0.0","@opentelemetry/instrumentation":"^0.212.0","@opentelemetry/semantic-conventions":"^1.28.0",minimatch:"^10.2.4"},peerDependencies:{"@opentelemetry/api":"^1.9.0"},tsd:{directory:"types"}})},385603,750470,70226,563305,a=>{"use strict";var b,c;let d="1.9.1",e=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/,f=function(a){let b=new Set([a]),c=new Set,d=a.match(e);if(!d)return()=>!1;let f={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=f.prerelease)return function(b){return b===a};function g(a){return c.add(a),!1}return function(a){if(b.has(a))return!0;if(c.has(a))return!1;let d=a.match(e);if(!d)return g(a);let h={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=h.prerelease||f.major!==h.major)return g(a);if(0===f.major)return f.minor===h.minor&&f.patch<=h.patch?(b.add(a),!0):g(a);return f.minor<=h.minor?(b.add(a),!0):g(a)}}(d),g=d.split(".")[0],h=Symbol.for(`opentelemetry.js.api.${g}`),i="object"==typeof globalThis?globalThis:"object"==typeof self?self:a.g;function j(a,b,c,e=!1){var f;let g=i[h]=null!=(f=i[h])?f:{version:d};if(!e&&g[a]){let b=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${a}`);return c.error(b.stack||b.message),!1}if(g.version!==d){let b=Error(`@opentelemetry/api: Registration of version v${g.version} for ${a} does not match previously registered API v${d}`);return c.error(b.stack||b.message),!1}return g[a]=b,c.debug(`@opentelemetry/api: Registered a global for ${a} v${d}.`),!0}function k(a){var b,c;let d=null==(b=i[h])?void 0:b.version;if(d&&f(d))return null==(c=i[h])?void 0:c[a]}function l(a,b){b.debug(`@opentelemetry/api: Unregistering a global for ${a} v${d}.`);let c=i[h];c&&delete c[a]}a.s(["getGlobal",()=>k,"registerGlobal",()=>j,"unregisterGlobal",()=>l],750470);class m{constructor(a){this._namespace=a.namespace||"DiagComponentLogger"}debug(...a){return n("debug",this._namespace,a)}error(...a){return n("error",this._namespace,a)}info(...a){return n("info",this._namespace,a)}warn(...a){return n("warn",this._namespace,a)}verbose(...a){return n("verbose",this._namespace,a)}}function n(a,b,c){let d=k("diag");if(d)return d[a](b,...c)}(c=b||(b={}))[c.NONE=0]="NONE",c[c.ERROR=30]="ERROR",c[c.WARN=50]="WARN",c[c.INFO=60]="INFO",c[c.DEBUG=70]="DEBUG",c[c.VERBOSE=80]="VERBOSE",c[c.ALL=9999]="ALL",a.s(["DiagLogLevel",()=>b],70226);class o{static instance(){return this._instance||(this._instance=new o),this._instance}constructor(){function a(a){return function(...b){let c=k("diag");if(c)return c[a](...b)}}const c=this,d=(a,d={logLevel:b.INFO})=>{var e,f,g;if(a===c){let a=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return c.error(null!=(e=a.stack)?e:a.message),!1}"number"==typeof d&&(d={logLevel:d});let h=k("diag"),i=function(a,c){function d(b,d){let e=c[b];return"function"==typeof e&&a>=d?e.bind(c):function(){}}return ab.ALL&&(a=b.ALL),c=c||{},{error:d("error",b.ERROR),warn:d("warn",b.WARN),info:d("info",b.INFO),debug:d("debug",b.DEBUG),verbose:d("verbose",b.VERBOSE)}}(null!=(f=d.logLevel)?f:b.INFO,a);if(h&&!d.suppressOverrideMessage){let a=null!=(g=Error().stack)?g:"";h.warn(`Current logger will be overwritten from ${a}`),i.warn(`Current logger will overwrite one already registered from ${a}`)}return j("diag",i,c,!0)};c.setLogger=d,c.disable=()=>{l("diag",c)},c.createComponentLogger=a=>new m(a),c.verbose=a("verbose"),c.debug=a("debug"),c.info=a("info"),c.warn=a("warn"),c.error=a("error")}}a.s(["DiagAPI",()=>o],563305);let p=o.instance();a.s(["diag",0,p],385603)},234177,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node:inspector_7a4283c6._.js"].map(b=>a.l(b))).then(()=>b(237221)))},872097,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__fbc63b72._.js"].map(b=>a.l(b))).then(()=>b(524177)))},992965,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__9bfda315._.js"].map(b=>a.l(b))).then(()=>b(435235)))},846524,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__9eff91eb._.js"].map(b=>a.l(b))).then(()=>b(20549)))},189011,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__16d71f56._.js"].map(b=>a.l(b))).then(()=>b(800164)))},18291,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules__pnpm_8387bcd6._.js"].map(b=>a.l(b))).then(()=>b(282793)))}]; //# debugId=1d097e8c-f5f5-cac8-209e-99330b741a4f -//# sourceMappingURL=%5Broot-of-the-server%5D__57266d7f._.js.map \ No newline at end of file +//# sourceMappingURL=%5Broot-of-the-server%5D__00212f08._.js.map \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__22b888eb._.js.map b/.next/server/chunks/ssr/[root-of-the-server]__00212f08._.js.map similarity index 100% rename from .next/server/chunks/ssr/[root-of-the-server]__22b888eb._.js.map rename to .next/server/chunks/ssr/[root-of-the-server]__00212f08._.js.map diff --git a/.next/server/chunks/ssr/[root-of-the-server]__22b888eb._.js b/.next/server/chunks/ssr/[root-of-the-server]__047498e4._.js similarity index 99% rename from .next/server/chunks/ssr/[root-of-the-server]__22b888eb._.js rename to .next/server/chunks/ssr/[root-of-the-server]__047498e4._.js index 02e141f92..10c550622 100644 --- a/.next/server/chunks/ssr/[root-of-the-server]__22b888eb._.js +++ b/.next/server/chunks/ssr/[root-of-the-server]__047498e4._.js @@ -2,4 +2,4 @@ module.exports=[605365,(a,b,c)=>{b.exports=a.x("process",()=>require("process"))},410430,(a,b,c)=>{b.exports=a.x("async_hooks",()=>require("async_hooks"))},792509,(a,b,c)=>{b.exports=a.x("url",()=>require("url"))},427699,(a,b,c)=>{b.exports=a.x("events",()=>require("events"))},81111,(a,b,c)=>{b.exports=a.x("node:stream",()=>require("node:stream"))},446786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},224361,(a,b,c)=>{b.exports=a.x("util",()=>require("util"))},814747,(a,b,c)=>{b.exports=a.x("path",()=>require("path"))},522734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},233405,(a,b,c)=>{b.exports=a.x("child_process",()=>require("child_process"))},254799,(a,b,c)=>{b.exports=a.x("crypto",()=>require("crypto"))},362562,(a,b,c)=>{b.exports=a.x("module",()=>require("module"))},156823,(a,b,c)=>{b.exports=a.x("require-in-the-middle-a99415fa67232f7f",()=>require("require-in-the-middle-a99415fa67232f7f"))},285512,(a,b,c)=>{b.exports=a.x("import-in-the-middle-138cd032e4b029f3",()=>require("import-in-the-middle-138cd032e4b029f3"))},677652,(a,b,c)=>{b.exports=a.x("node:diagnostics_channel",()=>require("node:diagnostics_channel"))},687769,(a,b,c)=>{b.exports=a.x("node:events",()=>require("node:events"))},154993,(a,b,c)=>{b.exports=a.x("diagnostics_channel",()=>require("diagnostics_channel"))},874533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},902157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},812057,(a,b,c)=>{b.exports=a.x("node:util",()=>require("node:util"))},601457,(a,b,c)=>{b.exports=a.x("node:readline",()=>require("node:readline"))},925127,(a,b,c)=>{b.exports=a.x("node:worker_threads",()=>require("node:worker_threads"))},37702,(a,b,c)=>{b.exports=a.x("worker_threads",()=>require("worker_threads"))},347299,(a,b,c)=>{b.exports=a.x("node:http",()=>require("node:http"))},743698,(a,b,c)=>{b.exports=a.x("node:https",()=>require("node:https"))},727028,(a,b,c)=>{b.exports=a.x("node:zlib",()=>require("node:zlib"))},761095,(a,b,c)=>{b.exports=a.x("node:net",()=>require("node:net"))},685560,(a,b,c)=>{b.exports=a.x("node:tls",()=>require("node:tls"))},60438,(a,b,c)=>{b.exports=a.x("perf_hooks",()=>require("perf_hooks"))},74667,(a,b,c)=>{b.exports=a.x("import-in-the-middle-6ecbfda1283b1532",()=>require("import-in-the-middle-6ecbfda1283b1532"))},989801,a=>{a.v({name:"@fastify/otel",version:"0.18.0",description:"Official Fastify OpenTelemetry Instrumentation",main:"index.js",type:"commonjs",types:"types/index.d.ts",scripts:{lint:"eslint","lint:fix":"eslint --fix",test:"npm run test:all && npm run test:typescript","test:unit":"c8 --100 node --test","test:all":"npm run test:v4 && npm run test:v5","test:v4":"cross-env FASTIFY_VERSION=fastifyv4 npm run test:unit","test:v5":"cross-env FASTIFY_VERSION=fastify npm run test:unit","test:coverage":"c8 node --test && c8 report --reporter=html","test:typescript":"tsd"},repository:{type:"git",url:"git+https://github.com/fastify/otel.git"},keywords:["plugin","helper","fastify","instrumentation","otel","opentelemetry"],author:"Carlos Fuentes - @metcoder95 (https://metcoder.dev)",license:"MIT",bugs:{url:"https://github.com/fastify/otel/issues"},homepage:"https://github.com/fastify/otel#readme",funding:[{type:"github",url:"https://github.com/sponsors/fastify"},{type:"opencollective",url:"https://opencollective.com/fastify"}],devDependencies:{"@fastify/type-provider-typebox":"^6.1.0","@opentelemetry/context-async-hooks":"^2.0.0","@opentelemetry/contrib-test-utils":"^0.59.0","@opentelemetry/instrumentation-http":"^0.212.0","@opentelemetry/propagator-jaeger":"^2.0.0","@opentelemetry/sdk-trace-base":"^2.0.0","@opentelemetry/sdk-trace-node":"^2.2.0","@types/node":"^25.0.3",c8:"^11.0.0","cross-env":"^10.0.0",eslint:"^9.16.0",fastify:"^5.1.0","fastify-plugin":"^5.1.0",fastifyv4:"npm:fastify@^4.0.0",neostandard:"^0.12.0",tsd:"^0.33.0"},dependencies:{"@opentelemetry/core":"^2.0.0","@opentelemetry/instrumentation":"^0.212.0","@opentelemetry/semantic-conventions":"^1.28.0",minimatch:"^10.2.4"},peerDependencies:{"@opentelemetry/api":"^1.9.0"},tsd:{directory:"types"}})},385603,750470,70226,563305,a=>{"use strict";var b,c;let d="1.9.1",e=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/,f=function(a){let b=new Set([a]),c=new Set,d=a.match(e);if(!d)return()=>!1;let f={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=f.prerelease)return function(b){return b===a};function g(a){return c.add(a),!1}return function(a){if(b.has(a))return!0;if(c.has(a))return!1;let d=a.match(e);if(!d)return g(a);let h={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=h.prerelease||f.major!==h.major)return g(a);if(0===f.major)return f.minor===h.minor&&f.patch<=h.patch?(b.add(a),!0):g(a);return f.minor<=h.minor?(b.add(a),!0):g(a)}}(d),g=d.split(".")[0],h=Symbol.for(`opentelemetry.js.api.${g}`),i="object"==typeof globalThis?globalThis:"object"==typeof self?self:a.g;function j(a,b,c,e=!1){var f;let g=i[h]=null!=(f=i[h])?f:{version:d};if(!e&&g[a]){let b=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${a}`);return c.error(b.stack||b.message),!1}if(g.version!==d){let b=Error(`@opentelemetry/api: Registration of version v${g.version} for ${a} does not match previously registered API v${d}`);return c.error(b.stack||b.message),!1}return g[a]=b,c.debug(`@opentelemetry/api: Registered a global for ${a} v${d}.`),!0}function k(a){var b,c;let d=null==(b=i[h])?void 0:b.version;if(d&&f(d))return null==(c=i[h])?void 0:c[a]}function l(a,b){b.debug(`@opentelemetry/api: Unregistering a global for ${a} v${d}.`);let c=i[h];c&&delete c[a]}a.s(["getGlobal",()=>k,"registerGlobal",()=>j,"unregisterGlobal",()=>l],750470);class m{constructor(a){this._namespace=a.namespace||"DiagComponentLogger"}debug(...a){return n("debug",this._namespace,a)}error(...a){return n("error",this._namespace,a)}info(...a){return n("info",this._namespace,a)}warn(...a){return n("warn",this._namespace,a)}verbose(...a){return n("verbose",this._namespace,a)}}function n(a,b,c){let d=k("diag");if(d)return d[a](b,...c)}(c=b||(b={}))[c.NONE=0]="NONE",c[c.ERROR=30]="ERROR",c[c.WARN=50]="WARN",c[c.INFO=60]="INFO",c[c.DEBUG=70]="DEBUG",c[c.VERBOSE=80]="VERBOSE",c[c.ALL=9999]="ALL",a.s(["DiagLogLevel",()=>b],70226);class o{static instance(){return this._instance||(this._instance=new o),this._instance}constructor(){function a(a){return function(...b){let c=k("diag");if(c)return c[a](...b)}}const c=this,d=(a,d={logLevel:b.INFO})=>{var e,f,g;if(a===c){let a=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return c.error(null!=(e=a.stack)?e:a.message),!1}"number"==typeof d&&(d={logLevel:d});let h=k("diag"),i=function(a,c){function d(b,d){let e=c[b];return"function"==typeof e&&a>=d?e.bind(c):function(){}}return ab.ALL&&(a=b.ALL),c=c||{},{error:d("error",b.ERROR),warn:d("warn",b.WARN),info:d("info",b.INFO),debug:d("debug",b.DEBUG),verbose:d("verbose",b.VERBOSE)}}(null!=(f=d.logLevel)?f:b.INFO,a);if(h&&!d.suppressOverrideMessage){let a=null!=(g=Error().stack)?g:"";h.warn(`Current logger will be overwritten from ${a}`),i.warn(`Current logger will overwrite one already registered from ${a}`)}return j("diag",i,c,!0)};c.setLogger=d,c.disable=()=>{l("diag",c)},c.createComponentLogger=a=>new m(a),c.verbose=a("verbose"),c.debug=a("debug"),c.info=a("info"),c.warn=a("warn"),c.error=a("error")}}a.s(["DiagAPI",()=>o],563305);let p=o.instance();a.s(["diag",0,p],385603)},234177,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node:inspector_7a4283c6._.js"].map(b=>a.l(b))).then(()=>b(237221)))},872097,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__fbc63b72._.js"].map(b=>a.l(b))).then(()=>b(524177)))},992965,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__9bfda315._.js"].map(b=>a.l(b))).then(()=>b(435235)))},846524,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__9eff91eb._.js"].map(b=>a.l(b))).then(()=>b(20549)))},189011,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__16d71f56._.js"].map(b=>a.l(b))).then(()=>b(800164)))},18291,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules__pnpm_8387bcd6._.js"].map(b=>a.l(b))).then(()=>b(282793)))}]; //# debugId=1d097e8c-f5f5-cac8-209e-99330b741a4f -//# sourceMappingURL=%5Broot-of-the-server%5D__22b888eb._.js.map \ No newline at end of file +//# sourceMappingURL=%5Broot-of-the-server%5D__047498e4._.js.map \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__57266d7f._.js.map b/.next/server/chunks/ssr/[root-of-the-server]__047498e4._.js.map similarity index 100% rename from .next/server/chunks/ssr/[root-of-the-server]__57266d7f._.js.map rename to .next/server/chunks/ssr/[root-of-the-server]__047498e4._.js.map diff --git a/.next/server/chunks/ssr/[root-of-the-server]__9aa0d618._.js b/.next/server/chunks/ssr/[root-of-the-server]__0acb6d60._.js similarity index 99% rename from .next/server/chunks/ssr/[root-of-the-server]__9aa0d618._.js rename to .next/server/chunks/ssr/[root-of-the-server]__0acb6d60._.js index f19d2ca6b..7f3f05449 100644 --- a/.next/server/chunks/ssr/[root-of-the-server]__9aa0d618._.js +++ b/.next/server/chunks/ssr/[root-of-the-server]__0acb6d60._.js @@ -2,4 +2,4 @@ module.exports=[605365,(a,b,c)=>{b.exports=a.x("process",()=>require("process"))},410430,(a,b,c)=>{b.exports=a.x("async_hooks",()=>require("async_hooks"))},792509,(a,b,c)=>{b.exports=a.x("url",()=>require("url"))},427699,(a,b,c)=>{b.exports=a.x("events",()=>require("events"))},81111,(a,b,c)=>{b.exports=a.x("node:stream",()=>require("node:stream"))},446786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},224361,(a,b,c)=>{b.exports=a.x("util",()=>require("util"))},814747,(a,b,c)=>{b.exports=a.x("path",()=>require("path"))},522734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},233405,(a,b,c)=>{b.exports=a.x("child_process",()=>require("child_process"))},254799,(a,b,c)=>{b.exports=a.x("crypto",()=>require("crypto"))},362562,(a,b,c)=>{b.exports=a.x("module",()=>require("module"))},156823,(a,b,c)=>{b.exports=a.x("require-in-the-middle-a99415fa67232f7f",()=>require("require-in-the-middle-a99415fa67232f7f"))},285512,(a,b,c)=>{b.exports=a.x("import-in-the-middle-138cd032e4b029f3",()=>require("import-in-the-middle-138cd032e4b029f3"))},677652,(a,b,c)=>{b.exports=a.x("node:diagnostics_channel",()=>require("node:diagnostics_channel"))},687769,(a,b,c)=>{b.exports=a.x("node:events",()=>require("node:events"))},154993,(a,b,c)=>{b.exports=a.x("diagnostics_channel",()=>require("diagnostics_channel"))},874533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},902157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},812057,(a,b,c)=>{b.exports=a.x("node:util",()=>require("node:util"))},601457,(a,b,c)=>{b.exports=a.x("node:readline",()=>require("node:readline"))},925127,(a,b,c)=>{b.exports=a.x("node:worker_threads",()=>require("node:worker_threads"))},37702,(a,b,c)=>{b.exports=a.x("worker_threads",()=>require("worker_threads"))},347299,(a,b,c)=>{b.exports=a.x("node:http",()=>require("node:http"))},743698,(a,b,c)=>{b.exports=a.x("node:https",()=>require("node:https"))},727028,(a,b,c)=>{b.exports=a.x("node:zlib",()=>require("node:zlib"))},761095,(a,b,c)=>{b.exports=a.x("node:net",()=>require("node:net"))},685560,(a,b,c)=>{b.exports=a.x("node:tls",()=>require("node:tls"))},60438,(a,b,c)=>{b.exports=a.x("perf_hooks",()=>require("perf_hooks"))},74667,(a,b,c)=>{b.exports=a.x("import-in-the-middle-6ecbfda1283b1532",()=>require("import-in-the-middle-6ecbfda1283b1532"))},989801,a=>{a.v({name:"@fastify/otel",version:"0.18.0",description:"Official Fastify OpenTelemetry Instrumentation",main:"index.js",type:"commonjs",types:"types/index.d.ts",scripts:{lint:"eslint","lint:fix":"eslint --fix",test:"npm run test:all && npm run test:typescript","test:unit":"c8 --100 node --test","test:all":"npm run test:v4 && npm run test:v5","test:v4":"cross-env FASTIFY_VERSION=fastifyv4 npm run test:unit","test:v5":"cross-env FASTIFY_VERSION=fastify npm run test:unit","test:coverage":"c8 node --test && c8 report --reporter=html","test:typescript":"tsd"},repository:{type:"git",url:"git+https://github.com/fastify/otel.git"},keywords:["plugin","helper","fastify","instrumentation","otel","opentelemetry"],author:"Carlos Fuentes - @metcoder95 (https://metcoder.dev)",license:"MIT",bugs:{url:"https://github.com/fastify/otel/issues"},homepage:"https://github.com/fastify/otel#readme",funding:[{type:"github",url:"https://github.com/sponsors/fastify"},{type:"opencollective",url:"https://opencollective.com/fastify"}],devDependencies:{"@fastify/type-provider-typebox":"^6.1.0","@opentelemetry/context-async-hooks":"^2.0.0","@opentelemetry/contrib-test-utils":"^0.59.0","@opentelemetry/instrumentation-http":"^0.212.0","@opentelemetry/propagator-jaeger":"^2.0.0","@opentelemetry/sdk-trace-base":"^2.0.0","@opentelemetry/sdk-trace-node":"^2.2.0","@types/node":"^25.0.3",c8:"^11.0.0","cross-env":"^10.0.0",eslint:"^9.16.0",fastify:"^5.1.0","fastify-plugin":"^5.1.0",fastifyv4:"npm:fastify@^4.0.0",neostandard:"^0.12.0",tsd:"^0.33.0"},dependencies:{"@opentelemetry/core":"^2.0.0","@opentelemetry/instrumentation":"^0.212.0","@opentelemetry/semantic-conventions":"^1.28.0",minimatch:"^10.2.4"},peerDependencies:{"@opentelemetry/api":"^1.9.0"},tsd:{directory:"types"}})},385603,750470,70226,563305,a=>{"use strict";var b,c;let d="1.9.1",e=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/,f=function(a){let b=new Set([a]),c=new Set,d=a.match(e);if(!d)return()=>!1;let f={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=f.prerelease)return function(b){return b===a};function g(a){return c.add(a),!1}return function(a){if(b.has(a))return!0;if(c.has(a))return!1;let d=a.match(e);if(!d)return g(a);let h={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=h.prerelease||f.major!==h.major)return g(a);if(0===f.major)return f.minor===h.minor&&f.patch<=h.patch?(b.add(a),!0):g(a);return f.minor<=h.minor?(b.add(a),!0):g(a)}}(d),g=d.split(".")[0],h=Symbol.for(`opentelemetry.js.api.${g}`),i="object"==typeof globalThis?globalThis:"object"==typeof self?self:a.g;function j(a,b,c,e=!1){var f;let g=i[h]=null!=(f=i[h])?f:{version:d};if(!e&&g[a]){let b=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${a}`);return c.error(b.stack||b.message),!1}if(g.version!==d){let b=Error(`@opentelemetry/api: Registration of version v${g.version} for ${a} does not match previously registered API v${d}`);return c.error(b.stack||b.message),!1}return g[a]=b,c.debug(`@opentelemetry/api: Registered a global for ${a} v${d}.`),!0}function k(a){var b,c;let d=null==(b=i[h])?void 0:b.version;if(d&&f(d))return null==(c=i[h])?void 0:c[a]}function l(a,b){b.debug(`@opentelemetry/api: Unregistering a global for ${a} v${d}.`);let c=i[h];c&&delete c[a]}a.s(["getGlobal",()=>k,"registerGlobal",()=>j,"unregisterGlobal",()=>l],750470);class m{constructor(a){this._namespace=a.namespace||"DiagComponentLogger"}debug(...a){return n("debug",this._namespace,a)}error(...a){return n("error",this._namespace,a)}info(...a){return n("info",this._namespace,a)}warn(...a){return n("warn",this._namespace,a)}verbose(...a){return n("verbose",this._namespace,a)}}function n(a,b,c){let d=k("diag");if(d)return d[a](b,...c)}(c=b||(b={}))[c.NONE=0]="NONE",c[c.ERROR=30]="ERROR",c[c.WARN=50]="WARN",c[c.INFO=60]="INFO",c[c.DEBUG=70]="DEBUG",c[c.VERBOSE=80]="VERBOSE",c[c.ALL=9999]="ALL",a.s(["DiagLogLevel",()=>b],70226);class o{static instance(){return this._instance||(this._instance=new o),this._instance}constructor(){function a(a){return function(...b){let c=k("diag");if(c)return c[a](...b)}}const c=this,d=(a,d={logLevel:b.INFO})=>{var e,f,g;if(a===c){let a=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return c.error(null!=(e=a.stack)?e:a.message),!1}"number"==typeof d&&(d={logLevel:d});let h=k("diag"),i=function(a,c){function d(b,d){let e=c[b];return"function"==typeof e&&a>=d?e.bind(c):function(){}}return ab.ALL&&(a=b.ALL),c=c||{},{error:d("error",b.ERROR),warn:d("warn",b.WARN),info:d("info",b.INFO),debug:d("debug",b.DEBUG),verbose:d("verbose",b.VERBOSE)}}(null!=(f=d.logLevel)?f:b.INFO,a);if(h&&!d.suppressOverrideMessage){let a=null!=(g=Error().stack)?g:"";h.warn(`Current logger will be overwritten from ${a}`),i.warn(`Current logger will overwrite one already registered from ${a}`)}return j("diag",i,c,!0)};c.setLogger=d,c.disable=()=>{l("diag",c)},c.createComponentLogger=a=>new m(a),c.verbose=a("verbose"),c.debug=a("debug"),c.info=a("info"),c.warn=a("warn"),c.error=a("error")}}a.s(["DiagAPI",()=>o],563305);let p=o.instance();a.s(["diag",0,p],385603)},234177,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node:inspector_7a4283c6._.js"].map(b=>a.l(b))).then(()=>b(237221)))},872097,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__fbc63b72._.js"].map(b=>a.l(b))).then(()=>b(524177)))},992965,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__9bfda315._.js"].map(b=>a.l(b))).then(()=>b(435235)))},846524,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__9eff91eb._.js"].map(b=>a.l(b))).then(()=>b(20549)))},189011,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__16d71f56._.js"].map(b=>a.l(b))).then(()=>b(800164)))},18291,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules__pnpm_8387bcd6._.js"].map(b=>a.l(b))).then(()=>b(282793)))}]; //# debugId=1d097e8c-f5f5-cac8-209e-99330b741a4f -//# sourceMappingURL=%5Broot-of-the-server%5D__9aa0d618._.js.map \ No newline at end of file +//# sourceMappingURL=%5Broot-of-the-server%5D__0acb6d60._.js.map \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__6bb30663._.js.map b/.next/server/chunks/ssr/[root-of-the-server]__0acb6d60._.js.map similarity index 100% rename from .next/server/chunks/ssr/[root-of-the-server]__6bb30663._.js.map rename to .next/server/chunks/ssr/[root-of-the-server]__0acb6d60._.js.map diff --git a/.next/server/chunks/ssr/[root-of-the-server]__0bdab930._.js b/.next/server/chunks/ssr/[root-of-the-server]__0bdab930._.js new file mode 100644 index 000000000..f1945dc22 --- /dev/null +++ b/.next/server/chunks/ssr/[root-of-the-server]__0bdab930._.js @@ -0,0 +1,5 @@ +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="c59f5345-fcf5-5a05-6bed-6927575ed90b")}catch(e){}}(); +module.exports=[324725,(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"))},64293,(a,b,c)=>{b.exports=a.x("pino-2e79642258e38174",()=>require("pino-2e79642258e38174"))},274209,281682,a=>{"use strict";var b=a.i(150765),c=a.i(475625);function d(){let a=(0,c.getAppServices)();return{trackEvent:(0,b.useCallback)((b,c)=>{a.analytics.track(b,c)},[a]),trackPageview:(0,b.useCallback)(b=>{a.analytics.trackPageview(b)},[a])}}a.s(["useAnalytics",()=>d],274209),a.s(["AnalyticsEvents",0,{PAGE_VIEW:"pageview",PAGE_SCROLL:"page_scroll",PAGE_EXIT:"page_exit",SCROLL_DEPTH:"scroll_depth",BUTTON_CLICK:"button_click",LINK_CLICK:"link_click",FORM_SUBMIT:"form_submit",FORM_START:"form_start",FORM_ERROR:"form_error",FORM_FIELD_FOCUS:"form_field_focus",PRODUCT_VIEW:"product_view",PRODUCT_ADD_TO_CART:"product_add_to_cart",PRODUCT_REMOVE_FROM_CART:"product_remove_from_cart",PRODUCT_PURCHASE:"product_purchase",PRODUCT_WISHLIST_ADD:"product_wishlist_add",PRODUCT_WISHLIST_REMOVE:"product_wishlist_remove",PRODUCT_TAB_SWITCH:"product_tab_switch",SEARCH:"search",FILTER_APPLY:"filter_apply",FILTER_CLEAR:"filter_clear",USER_SIGNUP:"user_signup",USER_LOGIN:"user_login",USER_LOGOUT:"user_logout",USER_PROFILE_UPDATE:"user_profile_update",BLOG_POST_VIEW:"blog_post_view",VIDEO_PLAY:"video_play",VIDEO_PAUSE:"video_pause",VIDEO_COMPLETE:"video_complete",DOWNLOAD:"download",MODAL_OPEN:"modal_open",MODAL_CLOSE:"modal_close",TOGGLE_SWITCH:"toggle_switch",ACCORDION_TOGGLE:"accordion_toggle",TAB_SWITCH:"tab_switch",TOC_CLICK:"toc_click",ERROR:"error",PERFORMANCE:"performance",API_ERROR:"api_error",API_SUCCESS:"api_success",QUOTE_REQUEST:"quote_request",CONTACT_FORM_SUBMIT:"contact_form_submit",NEWSLETTER_SUBSCRIBE:"newsletter_subscribe",BROCHURE_DOWNLOAD:"brochure_download"}],281682)},594214,90695,5515,544027,434904,618180,781027,41100,a=>{"use strict";var b=a.i(829091);a.i(912466);var c=a.i(526156);function d({className:a,children:d,...e}){return(0,c.jsx)("section",{className:(0,b.cn)("py-16 md:py-28 lg:py-36 overflow-hidden content-visibility-auto",a),...e,children:d})}function e({className:a,children:d,...e}){return(0,c.jsx)("div",{className:(0,b.cn)("container mx-auto px-4 md:px-12 lg:px-16 max-w-7xl",a),...e,children:d})}function f({level:a=2,children:d,className:e,subtitle:f,align:g="left"}){let h=`h${a}`;return(0,c.jsxs)("div",{className:(0,b.cn)("mb-6 md:mb-12 text-primary",{left:"text-left",center:"text-center mx-auto",right:"text-right"}[g],e),children:[f&&(0,c.jsx)("span",{className:"inline-block text-accent font-bold tracking-widest uppercase text-xs md:text-sm mb-3 md:mb-4 animate-fade-in",children:f}),(0,c.jsx)(h,{className:(0,b.cn)({1:"text-2xl md:text-4xl lg:text-5xl font-bold leading-[1.1] tracking-tight",2:"text-xl md:text-3xl lg:text-4xl font-bold leading-[1.2] tracking-tight",3:"text-lg md:text-2xl lg:text-3xl font-bold leading-[1.3] tracking-tight",4:"text-lg md:text-xl lg:text-2xl font-bold leading-[1.4]",5:"text-base md:text-lg font-bold leading-[1.5]",6:"text-base md:text-lg font-semibold leading-[1.6]"}[a]),children:d})]})}function g({className:a,children:d,tag:e="div",...f}){return(0,c.jsx)(e,{className:(0,b.cn)("premium-card overflow-hidden",a),...f,children:d})}function h({className:a,...d}){return(0,c.jsx)("input",{className:(0,b.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg",a),...d})}function i({className:a,...d}){return(0,c.jsx)("textarea",{className:(0,b.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg resize-none",a),...d})}function j({className:a,...d}){return(0,c.jsx)("label",{className:(0,b.cn)("text-[10px] md:text-xs font-extrabold text-primary uppercase tracking-widest",a),...d})}a.s(["Section",()=>d],90695),a.s(["Container",()=>e],5515),a.s(["Heading",()=>f],544027),a.s(["Card",()=>g],434904),a.s(["Input",()=>h],618180),a.s(["Textarea",()=>i],781027),a.s(["Label",()=>j],41100),a.s([],594214)},188457,a=>{"use strict";var b=a.i(526156),c=a.i(150765);a.i(594214);var d=a.i(829091);function e({children:a,className:e,threshold:f=.1,delay:g=0}){let[h,i]=(0,c.useState)(!1),j=(0,c.useRef)(null);return(0,c.useEffect)(()=>{let a=new IntersectionObserver(([b])=>{b.isIntersecting&&(i(!0),a.unobserve(b.target))},{threshold:f}),b=j.current;return b&&a.observe(b),()=>{b&&a.unobserve(b)}},[f]),(0,b.jsx)("div",{ref:j,className:(0,d.cn)("reveal-on-scroll",h&&"is-visible",e),style:{transitionDelay:`${g}ms`},children:a})}a.s(["default",()=>e])},26701,a=>{"use strict";var b=a.i(526156),c=a.i(603836),d=a.i(150765),e=a.i(110644),f=a.i(411487);a.i(594214);var g=a.i(90695),h=a.i(5515),i=a.i(544027);let j=(0,f.default)(async()=>{},{loadableGenerated:{modules:[888085]},ssr:!1});function k(){let a=(0,c.useTranslations)("Team"),[f,k]=(0,d.useState)(!1),[l,m]=(0,d.useState)(0),n=["/uploads/2024/12/DSC07539-Large-600x400.webp","/uploads/2024/12/DSC07460-Large-600x400.webp","/uploads/2024/12/DSC07469-Large-600x400.webp","/uploads/2024/12/DSC07433-Large-600x400.webp","/uploads/2024/12/DSC07387-Large-600x400.webp"];return(0,b.jsxs)(g.Section,{className:"bg-primary-dark py-16 md:py-32",children:[(0,b.jsxs)(h.Container,{children:[(0,b.jsx)(i.Heading,{level:2,subtitle:a("gallery.subtitle"),align:"center",className:"text-white mb-12 md:mb-20",children:(0,b.jsx)("span",{className:"text-white",children:a("gallery.title")})}),(0,b.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-5 gap-3 md:gap-6",children:n.map((c,d)=>(0,b.jsxs)("button",{onClick:()=>{m(d),k(!0)},className:"relative aspect-[3/4] rounded-2xl md:rounded-[32px] overflow-hidden group shadow-2xl cursor-pointer",children:[(0,b.jsx)(e.default,{src:c,alt:a("gallery.title"),fill:!0,className:"object-cover transition-transform duration-1000 group-hover:scale-110"}),(0,b.jsx)("div",{className:"absolute inset-0 bg-primary-dark/40 group-hover:bg-transparent transition-all duration-500"}),(0,b.jsx)("div",{className:"absolute inset-0 border-0 group-hover:border-[8px] md:group-hover:border-[12px] border-white/10 transition-all duration-500 pointer-events-none"})]},d))})]}),(0,b.jsx)(j,{isOpen:f,images:n,initialIndex:l,onClose:()=>k(!1)})]})}a.s(["default",()=>k])},390265,a=>{"use strict";var b=a.i(526156),c=a.i(912466),d=a.i(274209),e=a.i(281682);function f({eventName:a=e.AnalyticsEvents.BUTTON_CLICK,eventProperties:f={},onClick:g,...h}){let{trackEvent:i}=(0,d.useAnalytics)();return(0,b.jsx)(c.Button,{...h,onClick:b=>{i(a,{...f,label:"string"==typeof h.children?h.children:f.label}),g&&g(b)}})}a.s(["default",()=>f])},163041,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__5209d0e9._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js"].map(b=>a.l(b))).then(()=>b(17814)))}]; + +//# debugId=c59f5345-fcf5-5a05-6bed-6927575ed90b +//# sourceMappingURL=%5Broot-of-the-server%5D__0bdab930._.js.map \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__0bdab930._.js.map b/.next/server/chunks/ssr/[root-of-the-server]__0bdab930._.js.map new file mode 100644 index 000000000..9821f1f97 --- /dev/null +++ b/.next/server/chunks/ssr/[root-of-the-server]__0bdab930._.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": [], + "debugId": "c59f5345-fcf5-5a05-6bed-6927575ed90b", + "sections": [ + {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["../../../../components/analytics/useAnalytics.ts","../../../../components/analytics/analytics-events.ts","../../../../components/ui/index.ts","../../../../components/ui/Section.tsx","../../../../components/ui/Container.tsx","../../../../components/ui/Heading.tsx","../../../../components/ui/Card.tsx","../../../../components/ui/Badge.tsx","../../../../components/ui/Input.tsx","../../../../components/ui/Textarea.tsx","../../../../components/ui/Label.tsx","../../../../components/ui/Callout.tsx","../../../../components/Reveal.tsx","../../../../components/team/Gallery.tsx","../../../../components/analytics/TrackedButton.tsx"],"sourcesContent":["'use client';\n\nimport { useCallback } from 'react';\nimport { getAppServices } from '@/lib/services/create-services';\nimport type { AnalyticsEventProperties } from '@/lib/services/analytics/analytics-service';\n\n/**\n * Custom hook for tracking analytics events with Umami.\n * \n * Provides a convenient way to track custom events throughout your application.\n * \n * @example\n * ```tsx\n * import { useAnalytics } from '@/components/analytics/useAnalytics';\n * \n * function MyComponent() {\n * const { trackEvent, trackPageview } = useAnalytics();\n * \n * const handleButtonClick = () => {\n * trackEvent('button_click', {\n * button_id: 'cta-primary',\n * page: 'homepage'\n * });\n * };\n * \n * return ;\n * }\n * ```\n * \n * @example\n * ```tsx\n * // Track a custom pageview\n * const { trackPageview } = useAnalytics();\n * trackPageview('/custom-path?param=value');\n * ```\n */\nexport function useAnalytics() {\n const services = getAppServices();\n\n /**\n * Track a custom event with optional properties.\n * \n * @param eventName - The name of the event to track\n * @param properties - Optional event properties (metadata)\n */\n const trackEvent = useCallback(\n (eventName: string, properties?: AnalyticsEventProperties) => {\n services.analytics.track(eventName, properties);\n \n if (process.env.NODE_ENV === 'development') {\n console.log('[Umami] Tracked event:', eventName, properties);\n }\n },\n [services]\n );\n\n /**\n * Track a pageview (useful for custom navigation or SPA routing).\n * \n * @param url - The URL to track (defaults to current location)\n */\n const trackPageview = useCallback(\n (url?: string) => {\n services.analytics.trackPageview(url);\n \n if (process.env.NODE_ENV === 'development') {\n console.log('[Umami] Tracked pageview:', url ?? 'current location');\n }\n },\n [services]\n );\n\n return {\n trackEvent,\n trackPageview,\n };\n}\n","/**\n * Analytics Events Utility\n *\n * Centralized definitions for common analytics events and their properties.\n * This helps maintain consistency across the application and makes it easier\n * to track meaningful events.\n *\n * @example\n * ```tsx\n * import { useAnalytics } from '@/components/analytics/useAnalytics';\n * import { AnalyticsEvents } from '@/components/analytics/analytics-events';\n *\n * function ProductPage() {\n * const { trackEvent } = useAnalytics();\n *\n * const handleAddToCart = (productId: string, productName: string) => {\n * trackEvent(AnalyticsEvents.PRODUCT_ADD_TO_CART, {\n * product_id: productId,\n * product_name: productName,\n * page: 'product-detail'\n * });\n * };\n *\n * return ;\n * }\n * ```\n */\n\nexport const AnalyticsEvents = {\n // Page & Navigation Events\n PAGE_VIEW: 'pageview',\n PAGE_SCROLL: 'page_scroll',\n PAGE_EXIT: 'page_exit',\n SCROLL_DEPTH: 'scroll_depth',\n\n // User Interaction Events\n BUTTON_CLICK: 'button_click',\n LINK_CLICK: 'link_click',\n FORM_SUBMIT: 'form_submit',\n FORM_START: 'form_start',\n FORM_ERROR: 'form_error',\n FORM_FIELD_FOCUS: 'form_field_focus',\n\n // E-commerce Events\n PRODUCT_VIEW: 'product_view',\n PRODUCT_ADD_TO_CART: 'product_add_to_cart',\n PRODUCT_REMOVE_FROM_CART: 'product_remove_from_cart',\n PRODUCT_PURCHASE: 'product_purchase',\n PRODUCT_WISHLIST_ADD: 'product_wishlist_add',\n PRODUCT_WISHLIST_REMOVE: 'product_wishlist_remove',\n PRODUCT_TAB_SWITCH: 'product_tab_switch',\n\n // Search & Filter Events\n SEARCH: 'search',\n FILTER_APPLY: 'filter_apply',\n FILTER_CLEAR: 'filter_clear',\n\n // User Account Events\n USER_SIGNUP: 'user_signup',\n USER_LOGIN: 'user_login',\n USER_LOGOUT: 'user_logout',\n USER_PROFILE_UPDATE: 'user_profile_update',\n\n // Content Events\n BLOG_POST_VIEW: 'blog_post_view',\n VIDEO_PLAY: 'video_play',\n VIDEO_PAUSE: 'video_pause',\n VIDEO_COMPLETE: 'video_complete',\n DOWNLOAD: 'download',\n\n // UI Interaction Events\n MODAL_OPEN: 'modal_open',\n MODAL_CLOSE: 'modal_close',\n TOGGLE_SWITCH: 'toggle_switch',\n ACCORDION_TOGGLE: 'accordion_toggle',\n TAB_SWITCH: 'tab_switch',\n TOC_CLICK: 'toc_click',\n\n // Error & Performance Events\n ERROR: 'error',\n PERFORMANCE: 'performance',\n API_ERROR: 'api_error',\n API_SUCCESS: 'api_success',\n\n // Custom Business Events\n QUOTE_REQUEST: 'quote_request',\n CONTACT_FORM_SUBMIT: 'contact_form_submit',\n NEWSLETTER_SUBSCRIBE: 'newsletter_subscribe',\n BROCHURE_DOWNLOAD: 'brochure_download',\n} as const;\n\n/**\n * Type-safe event properties for common events\n */\nexport type AnalyticsEventName = (typeof AnalyticsEvents)[keyof typeof AnalyticsEvents];\n\n/**\n * Common event property helpers\n */\nexport const AnalyticsEventProperties = {\n /**\n * Create properties for a product event\n */\n product: (productId: string, productName: string, category?: string) => ({\n product_id: productId,\n product_name: productName,\n product_category: category,\n }),\n\n /**\n * Create properties for a form event\n */\n form: (formId: string, formName: string, fields?: Record) => ({\n form_id: formId,\n form_name: formName,\n form_fields: fields,\n }),\n\n /**\n * Create properties for a search event\n */\n search: (query: string, filters?: Record) => ({\n search_query: query,\n search_filters: filters,\n }),\n\n /**\n * Create properties for a navigation event\n */\n navigation: (from: string, to: string) => ({\n from_page: from,\n to_page: to,\n }),\n} as const;\n","export * from './utils';\nexport * from './Button';\nexport * from './Section';\nexport * from './Container';\nexport * from './Heading';\nexport * from './Card';\nexport * from './Badge';\nexport * from './Input';\nexport * from './Textarea';\nexport * from './Label';\nexport * from './Callout';\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Section({ className, children, ...props }: React.HTMLAttributes) {\n return (\n

\n {children}\n
\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Container({ className, children, ...props }: React.HTMLAttributes) {\n return (\n
\n {children}\n
\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Heading({\n level = 2,\n children,\n className,\n subtitle,\n align = 'left'\n}: {\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n children: React.ReactNode;\n className?: string;\n subtitle?: string;\n align?: 'left' | 'center' | 'right';\n}) {\n const Tag = `h${level}` as any;\n \n const sizes = {\n 1: 'text-2xl md:text-4xl lg:text-5xl font-bold leading-[1.1] tracking-tight',\n 2: 'text-xl md:text-3xl lg:text-4xl font-bold leading-[1.2] tracking-tight',\n 3: 'text-lg md:text-2xl lg:text-3xl font-bold leading-[1.3] tracking-tight',\n 4: 'text-lg md:text-xl lg:text-2xl font-bold leading-[1.4]',\n 5: 'text-base md:text-lg font-bold leading-[1.5]',\n 6: 'text-base md:text-lg font-semibold leading-[1.6]',\n };\n\n const alignments = {\n left: 'text-left',\n center: 'text-center mx-auto',\n right: 'text-right',\n };\n\n return (\n
\n {subtitle && (\n \n {subtitle}\n \n )}\n \n {children}\n \n
\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\ninterface CardProps extends React.HTMLAttributes {\n tag?: 'div' | 'article' | 'section' | 'aside' | 'header' | 'footer' | 'nav' | 'main';\n}\n\nexport function Card({ className, children, tag: Tag = 'div', ...props }: CardProps) {\n return (\n \n {children}\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Badge({ children, className, variant = 'primary' }: { children: React.ReactNode, className?: string, variant?: 'primary' | 'accent' | 'neutral' | 'saturated' }) {\n const variants = {\n primary: 'bg-primary-light text-primary',\n accent: 'bg-accent-light text-accent-dark',\n neutral: 'bg-neutral-medium text-text-secondary',\n saturated: 'bg-saturated text-white',\n };\n \n return (\n \n {children}\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport interface InputProps extends React.InputHTMLAttributes {\n className?: string;\n}\n\nexport function Input({ className, ...props }: InputProps) {\n return (\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport interface TextareaProps extends React.TextareaHTMLAttributes {\n className?: string;\n}\n\nexport function Textarea({ className, ...props }: TextareaProps) {\n return (\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport interface LabelProps extends React.LabelHTMLAttributes {\n className?: string;\n}\n\nexport function Label({ className, ...props }: LabelProps) {\n return (\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\ninterface CalloutProps {\n type?: 'info' | 'warning' | 'success' | 'tip';\n title?: string;\n children: React.ReactNode;\n className?: string;\n}\n\nconst icons = {\n info: (\n \n \n \n ),\n warning: (\n \n \n \n ),\n success: (\n \n \n \n ),\n tip: (\n \n \n \n ),\n};\n\nconst styles = {\n info: 'bg-blue-50 border-blue-200 text-blue-900',\n warning: 'bg-yellow-50 border-yellow-200 text-yellow-900',\n success: 'bg-green-50 border-green-200 text-green-900',\n tip: 'bg-purple-50 border-purple-200 text-purple-900',\n};\n\nconst iconColors = {\n info: 'text-blue-500',\n warning: 'text-yellow-500',\n success: 'text-green-500',\n tip: 'text-purple-500',\n};\n\nexport function Callout({ type = 'info', title, children, className }: CalloutProps) {\n return (\n
\n
\n
\n {icons[type]}\n
\n
\n {title && (\n

{title}

\n )}\n
\n {children}\n
\n
\n
\n
\n );\n}\n","'use client';\n\nimport React, { useEffect, useRef, useState } from 'react';\nimport { cn } from '@/components/ui';\n\ninterface RevealProps {\n children: React.ReactNode;\n className?: string;\n threshold?: number;\n delay?: number;\n}\n\nexport default function Reveal({ children, className, threshold = 0.1, delay = 0 }: RevealProps) {\n const [isVisible, setIsVisible] = useState(false);\n const ref = useRef(null);\n\n useEffect(() => {\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (entry.isIntersecting) {\n setIsVisible(true);\n observer.unobserve(entry.target);\n }\n },\n { threshold }\n );\n\n const currentRef = ref.current;\n if (currentRef) {\n observer.observe(currentRef);\n }\n\n return () => {\n if (currentRef) {\n observer.unobserve(currentRef);\n }\n };\n }, [threshold]);\n\n return (\n \n {children}\n \n );\n}\n","'use client';\n\nimport { useTranslations } from 'next-intl';\nimport { useState } from 'react';\nimport Image from 'next/image';\nimport dynamic from 'next/dynamic';\nconst Lightbox = dynamic(() => import('@/components/Lightbox'), { ssr: false });\nimport { Section, Container, Heading } from '@/components/ui';\n\nexport default function Gallery() {\n const t = useTranslations('Team');\n\n const [lightboxOpen, setLightboxOpen] = useState(false);\n const [lightboxIndex, setLightboxIndex] = useState(0);\n\n const teamGalleryImages = [\n '/uploads/2024/12/DSC07539-Large-600x400.webp',\n '/uploads/2024/12/DSC07460-Large-600x400.webp',\n '/uploads/2024/12/DSC07469-Large-600x400.webp',\n '/uploads/2024/12/DSC07433-Large-600x400.webp',\n '/uploads/2024/12/DSC07387-Large-600x400.webp'\n ];\n\n return (\n
\n \n \n {t('gallery.title')}\n \n
\n {teamGalleryImages.map((src, idx) => (\n {\n setLightboxIndex(idx);\n setLightboxOpen(true);\n }}\n className=\"relative aspect-[3/4] rounded-2xl md:rounded-[32px] overflow-hidden group shadow-2xl cursor-pointer\"\n >\n {t('gallery.title')}\n
\n
\n \n ))}\n
\n \n\n setLightboxOpen(false)}\n />\n
\n );\n}","'use client';\n\nimport React from 'react';\nimport { Button, ButtonProps } from '../ui/Button';\nimport { useAnalytics } from './useAnalytics';\nimport { AnalyticsEvents } from './analytics-events';\n\ninterface TrackedButtonProps extends ButtonProps {\n eventName?: string;\n eventProperties?: Record;\n}\n\n/**\n * A wrapper around the project's Button component that tracks click events.\n * Safe to use in server components.\n */\nexport default function TrackedButton({\n eventName = AnalyticsEvents.BUTTON_CLICK,\n eventProperties = {},\n onClick,\n ...props\n}: TrackedButtonProps) {\n const { trackEvent } = useAnalytics();\n\n const handleClick = (e: React.MouseEvent) => {\n trackEvent(eventName, {\n ...eventProperties,\n label: typeof props.children === 'string' ? props.children : eventProperties.label,\n });\n if (onClick) onClick(e);\n };\n\n return ;\n * }\n * ```\n * \n * @example\n * ```tsx\n * // Track a custom pageview\n * const { trackPageview } = useAnalytics();\n * trackPageview('/custom-path?param=value');\n * ```\n */\nexport function useAnalytics() {\n const services = getAppServices();\n\n /**\n * Track a custom event with optional properties.\n * \n * @param eventName - The name of the event to track\n * @param properties - Optional event properties (metadata)\n */\n const trackEvent = useCallback(\n (eventName: string, properties?: AnalyticsEventProperties) => {\n services.analytics.track(eventName, properties);\n \n if (process.env.NODE_ENV === 'development') {\n console.log('[Umami] Tracked event:', eventName, properties);\n }\n },\n [services]\n );\n\n /**\n * Track a pageview (useful for custom navigation or SPA routing).\n * \n * @param url - The URL to track (defaults to current location)\n */\n const trackPageview = useCallback(\n (url?: string) => {\n services.analytics.trackPageview(url);\n \n if (process.env.NODE_ENV === 'development') {\n console.log('[Umami] Tracked pageview:', url ?? 'current location');\n }\n },\n [services]\n );\n\n return {\n trackEvent,\n trackPageview,\n };\n}\n","/**\n * Analytics Events Utility\n *\n * Centralized definitions for common analytics events and their properties.\n * This helps maintain consistency across the application and makes it easier\n * to track meaningful events.\n *\n * @example\n * ```tsx\n * import { useAnalytics } from '@/components/analytics/useAnalytics';\n * import { AnalyticsEvents } from '@/components/analytics/analytics-events';\n *\n * function ProductPage() {\n * const { trackEvent } = useAnalytics();\n *\n * const handleAddToCart = (productId: string, productName: string) => {\n * trackEvent(AnalyticsEvents.PRODUCT_ADD_TO_CART, {\n * product_id: productId,\n * product_name: productName,\n * page: 'product-detail'\n * });\n * };\n *\n * return ;\n * }\n * ```\n */\n\nexport const AnalyticsEvents = {\n // Page & Navigation Events\n PAGE_VIEW: 'pageview',\n PAGE_SCROLL: 'page_scroll',\n PAGE_EXIT: 'page_exit',\n SCROLL_DEPTH: 'scroll_depth',\n\n // User Interaction Events\n BUTTON_CLICK: 'button_click',\n LINK_CLICK: 'link_click',\n FORM_SUBMIT: 'form_submit',\n FORM_START: 'form_start',\n FORM_ERROR: 'form_error',\n FORM_FIELD_FOCUS: 'form_field_focus',\n\n // E-commerce Events\n PRODUCT_VIEW: 'product_view',\n PRODUCT_ADD_TO_CART: 'product_add_to_cart',\n PRODUCT_REMOVE_FROM_CART: 'product_remove_from_cart',\n PRODUCT_PURCHASE: 'product_purchase',\n PRODUCT_WISHLIST_ADD: 'product_wishlist_add',\n PRODUCT_WISHLIST_REMOVE: 'product_wishlist_remove',\n PRODUCT_TAB_SWITCH: 'product_tab_switch',\n\n // Search & Filter Events\n SEARCH: 'search',\n FILTER_APPLY: 'filter_apply',\n FILTER_CLEAR: 'filter_clear',\n\n // User Account Events\n USER_SIGNUP: 'user_signup',\n USER_LOGIN: 'user_login',\n USER_LOGOUT: 'user_logout',\n USER_PROFILE_UPDATE: 'user_profile_update',\n\n // Content Events\n BLOG_POST_VIEW: 'blog_post_view',\n VIDEO_PLAY: 'video_play',\n VIDEO_PAUSE: 'video_pause',\n VIDEO_COMPLETE: 'video_complete',\n DOWNLOAD: 'download',\n\n // UI Interaction Events\n MODAL_OPEN: 'modal_open',\n MODAL_CLOSE: 'modal_close',\n TOGGLE_SWITCH: 'toggle_switch',\n ACCORDION_TOGGLE: 'accordion_toggle',\n TAB_SWITCH: 'tab_switch',\n TOC_CLICK: 'toc_click',\n\n // Error & Performance Events\n ERROR: 'error',\n PERFORMANCE: 'performance',\n API_ERROR: 'api_error',\n API_SUCCESS: 'api_success',\n\n // Custom Business Events\n QUOTE_REQUEST: 'quote_request',\n CONTACT_FORM_SUBMIT: 'contact_form_submit',\n NEWSLETTER_SUBSCRIBE: 'newsletter_subscribe',\n BROCHURE_DOWNLOAD: 'brochure_download',\n} as const;\n\n/**\n * Type-safe event properties for common events\n */\nexport type AnalyticsEventName = (typeof AnalyticsEvents)[keyof typeof AnalyticsEvents];\n\n/**\n * Common event property helpers\n */\nexport const AnalyticsEventProperties = {\n /**\n * Create properties for a product event\n */\n product: (productId: string, productName: string, category?: string) => ({\n product_id: productId,\n product_name: productName,\n product_category: category,\n }),\n\n /**\n * Create properties for a form event\n */\n form: (formId: string, formName: string, fields?: Record) => ({\n form_id: formId,\n form_name: formName,\n form_fields: fields,\n }),\n\n /**\n * Create properties for a search event\n */\n search: (query: string, filters?: Record) => ({\n search_query: query,\n search_filters: filters,\n }),\n\n /**\n * Create properties for a navigation event\n */\n navigation: (from: string, to: string) => ({\n from_page: from,\n to_page: to,\n }),\n} as const;\n","import React from 'react';\nimport Link from 'next/link';\nimport { cn } from './utils';\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes {\n variant?:\n | 'primary'\n | 'secondary'\n | 'accent'\n | 'saturated'\n | 'outline'\n | 'ghost'\n | 'white'\n | 'destructive';\n size?: 'sm' | 'md' | 'lg' | 'xl';\n href?: string;\n className?: string;\n children?: React.ReactNode;\n}\n\nexport const buttonBaseStyles =\n 'inline-flex items-center justify-center whitespace-nowrap rounded-full font-semibold transition-all duration-500 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none active:scale-95 hover:-translate-y-1 hover:scale-[1.02] relative overflow-hidden group/btn isolate';\n\nexport const buttonVariantsMap = {\n primary: 'bg-primary text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl',\n secondary: 'bg-secondary text-white shadow-md hover:shadow-secondary/30 hover:shadow-2xl',\n accent: 'bg-accent text-primary-dark shadow-md hover:shadow-accent/30 hover:shadow-2xl',\n saturated: 'bg-saturated text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl',\n outline:\n 'border-2 border-primary bg-transparent text-primary hover:text-white hover:shadow-primary/20 hover:shadow-xl',\n ghost: 'text-primary hover:shadow-lg',\n white:\n 'bg-white text-primary shadow-md hover:shadow-primary/30 hover:shadow-2xl hover:text-white',\n destructive:\n 'bg-destructive text-destructive-foreground shadow-md hover:shadow-destructive/30 hover:shadow-2xl',\n};\n\nexport const buttonSizesMap = {\n sm: 'h-9 px-4 text-sm md:text-base',\n md: 'h-11 px-6 text-base md:text-lg',\n lg: 'h-14 px-5 md:px-8 text-base md:text-lg',\n xl: 'h-16 px-6 md:px-10 text-lg md:text-xl',\n};\n\nexport const buttonOverlayColorsMap = {\n primary: 'bg-primary-dark',\n secondary: 'bg-secondary-light',\n accent: 'bg-accent-dark',\n saturated: 'bg-primary',\n outline: 'bg-primary',\n ghost: 'bg-primary-light/10',\n white: 'bg-primary-light',\n destructive: 'bg-destructive/90',\n};\n\nexport function getButtonClasses(variant: keyof typeof buttonVariantsMap = 'primary', size: keyof typeof buttonSizesMap = 'md', className?: string) {\n return cn(buttonBaseStyles, buttonVariantsMap[variant], buttonSizesMap[size], className);\n}\n\nexport function ButtonOverlay({ variant = 'primary' }: { variant?: keyof typeof buttonVariantsMap }) {\n return (\n \n );\n}\n\nexport function Button({\n className,\n variant = 'primary',\n size = 'md',\n href,\n ...props\n}: ButtonProps) {\n const styles = getButtonClasses(variant, size, className);\n\n const content = (\n <>\n \n {props.children}\n \n \n \n );\n\n if (href) {\n return (\n \n {content}\n \n );\n }\n\n return (\n \n );\n}\n","export * from './utils';\nexport * from './Button';\nexport * from './Section';\nexport * from './Container';\nexport * from './Heading';\nexport * from './Card';\nexport * from './Badge';\nexport * from './Input';\nexport * from './Textarea';\nexport * from './Label';\nexport * from './Callout';\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Section({ className, children, ...props }: React.HTMLAttributes) {\n return (\n
\n {children}\n
\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Container({ className, children, ...props }: React.HTMLAttributes) {\n return (\n
\n {children}\n
\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Heading({\n level = 2,\n children,\n className,\n subtitle,\n align = 'left'\n}: {\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n children: React.ReactNode;\n className?: string;\n subtitle?: string;\n align?: 'left' | 'center' | 'right';\n}) {\n const Tag = `h${level}` as any;\n \n const sizes = {\n 1: 'text-2xl md:text-4xl lg:text-5xl font-bold leading-[1.1] tracking-tight',\n 2: 'text-xl md:text-3xl lg:text-4xl font-bold leading-[1.2] tracking-tight',\n 3: 'text-lg md:text-2xl lg:text-3xl font-bold leading-[1.3] tracking-tight',\n 4: 'text-lg md:text-xl lg:text-2xl font-bold leading-[1.4]',\n 5: 'text-base md:text-lg font-bold leading-[1.5]',\n 6: 'text-base md:text-lg font-semibold leading-[1.6]',\n };\n\n const alignments = {\n left: 'text-left',\n center: 'text-center mx-auto',\n right: 'text-right',\n };\n\n return (\n
\n {subtitle && (\n \n {subtitle}\n \n )}\n \n {children}\n \n
\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\ninterface CardProps extends React.HTMLAttributes {\n tag?: 'div' | 'article' | 'section' | 'aside' | 'header' | 'footer' | 'nav' | 'main';\n}\n\nexport function Card({ className, children, tag: Tag = 'div', ...props }: CardProps) {\n return (\n \n {children}\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Badge({ children, className, variant = 'primary' }: { children: React.ReactNode, className?: string, variant?: 'primary' | 'accent' | 'neutral' | 'saturated' }) {\n const variants = {\n primary: 'bg-primary-light text-primary',\n accent: 'bg-accent-light text-accent-dark',\n neutral: 'bg-neutral-medium text-text-secondary',\n saturated: 'bg-saturated text-white',\n };\n \n return (\n \n {children}\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport interface InputProps extends React.InputHTMLAttributes {\n className?: string;\n}\n\nexport function Input({ className, ...props }: InputProps) {\n return (\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport interface TextareaProps extends React.TextareaHTMLAttributes {\n className?: string;\n}\n\nexport function Textarea({ className, ...props }: TextareaProps) {\n return (\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport interface LabelProps extends React.LabelHTMLAttributes {\n className?: string;\n}\n\nexport function Label({ className, ...props }: LabelProps) {\n return (\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\ninterface CalloutProps {\n type?: 'info' | 'warning' | 'success' | 'tip';\n title?: string;\n children: React.ReactNode;\n className?: string;\n}\n\nconst icons = {\n info: (\n \n \n \n ),\n warning: (\n \n \n \n ),\n success: (\n \n \n \n ),\n tip: (\n \n \n \n ),\n};\n\nconst styles = {\n info: 'bg-blue-50 border-blue-200 text-blue-900',\n warning: 'bg-yellow-50 border-yellow-200 text-yellow-900',\n success: 'bg-green-50 border-green-200 text-green-900',\n tip: 'bg-purple-50 border-purple-200 text-purple-900',\n};\n\nconst iconColors = {\n info: 'text-blue-500',\n warning: 'text-yellow-500',\n success: 'text-green-500',\n tip: 'text-purple-500',\n};\n\nexport function Callout({ type = 'info', title, children, className }: CalloutProps) {\n return (\n
\n
\n
\n {icons[type]}\n
\n
\n {title && (\n

{title}

\n )}\n
\n {children}\n
\n
\n
\n
\n );\n}\n","'use client';\n\nimport React from 'react';\nimport { cn } from '@/components/ui';\n\ninterface ScribbleProps {\n variant: 'circle' | 'underline';\n className?: string;\n color?: string;\n}\n\nexport default function Scribble({ variant, className, color = '#82ed20' }: ScribbleProps) {\n if (variant === 'circle') {\n return (\n \n \n \n );\n }\n\n if (variant === 'underline') {\n return (\n \n \n \n );\n }\n\n return null;\n}\n","'use client';\n\nimport { useEffect } from 'react';\nimport { useAnalytics } from './useAnalytics';\nimport { AnalyticsEvents } from './analytics-events';\n\nexport default function ClientNotFoundTracker({ path }: { path: string }) {\n const { trackEvent } = useAnalytics();\n\n useEffect(() => {\n trackEvent(AnalyticsEvents.ERROR, {\n type: '404_not_found',\n path,\n });\n\n import('@sentry/nextjs').then((Sentry) => {\n Sentry.withScope((scope) => {\n scope.setTag('status_code', '404');\n scope.setTag('path', path);\n Sentry.captureMessage(`Route Not Found: ${path}`, 'warning');\n });\n });\n }, [trackEvent, path]);\n\n return null;\n}\n"],"names":[],"mappings":"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"}}] -} \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__2da52317._.js b/.next/server/chunks/ssr/[root-of-the-server]__2da52317._.js new file mode 100644 index 000000000..6981dabcc --- /dev/null +++ b/.next/server/chunks/ssr/[root-of-the-server]__2da52317._.js @@ -0,0 +1,5 @@ +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="c430e1fd-dd6f-d4be-4e59-fb94210c3fea")}catch(e){}}(); +module.exports=[180064,(a,b,c)=>{(()=>{"use strict";"u">typeof __nccwpck_require__&&(__nccwpck_require__.ab="/ROOT/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/cookie/");var a,c,d,e,f={};f.parse=function(b,c){if("string"!=typeof b)throw TypeError("argument str must be a string");for(var e={},f=b.split(d),g=(c||{}).decode||a,h=0;h{b.exports=a.x("process",()=>require("process"))},410430,(a,b,c)=>{b.exports=a.x("async_hooks",()=>require("async_hooks"))},522734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},233405,(a,b,c)=>{b.exports=a.x("child_process",()=>require("child_process"))},254799,(a,b,c)=>{b.exports=a.x("crypto",()=>require("crypto"))},792509,(a,b,c)=>{b.exports=a.x("url",()=>require("url"))},427699,(a,b,c)=>{b.exports=a.x("events",()=>require("events"))},81111,(a,b,c)=>{b.exports=a.x("node:stream",()=>require("node:stream"))},446786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},362562,(a,b,c)=>{b.exports=a.x("module",()=>require("module"))},156823,(a,b,c)=>{b.exports=a.x("require-in-the-middle-a99415fa67232f7f",()=>require("require-in-the-middle-a99415fa67232f7f"))},285512,(a,b,c)=>{b.exports=a.x("import-in-the-middle-138cd032e4b029f3",()=>require("import-in-the-middle-138cd032e4b029f3"))},677652,(a,b,c)=>{b.exports=a.x("node:diagnostics_channel",()=>require("node:diagnostics_channel"))},687769,(a,b,c)=>{b.exports=a.x("node:events",()=>require("node:events"))},154993,(a,b,c)=>{b.exports=a.x("diagnostics_channel",()=>require("diagnostics_channel"))},874533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},902157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},812057,(a,b,c)=>{b.exports=a.x("node:util",()=>require("node:util"))},601457,(a,b,c)=>{b.exports=a.x("node:readline",()=>require("node:readline"))},925127,(a,b,c)=>{b.exports=a.x("node:worker_threads",()=>require("node:worker_threads"))},37702,(a,b,c)=>{b.exports=a.x("worker_threads",()=>require("worker_threads"))},347299,(a,b,c)=>{b.exports=a.x("node:http",()=>require("node:http"))},743698,(a,b,c)=>{b.exports=a.x("node:https",()=>require("node:https"))},727028,(a,b,c)=>{b.exports=a.x("node:zlib",()=>require("node:zlib"))},761095,(a,b,c)=>{b.exports=a.x("node:net",()=>require("node:net"))},685560,(a,b,c)=>{b.exports=a.x("node:tls",()=>require("node:tls"))},60438,(a,b,c)=>{b.exports=a.x("perf_hooks",()=>require("perf_hooks"))},74667,(a,b,c)=>{b.exports=a.x("import-in-the-middle-6ecbfda1283b1532",()=>require("import-in-the-middle-6ecbfda1283b1532"))},989801,a=>{a.v({name:"@fastify/otel",version:"0.18.0",description:"Official Fastify OpenTelemetry Instrumentation",main:"index.js",type:"commonjs",types:"types/index.d.ts",scripts:{lint:"eslint","lint:fix":"eslint --fix",test:"npm run test:all && npm run test:typescript","test:unit":"c8 --100 node --test","test:all":"npm run test:v4 && npm run test:v5","test:v4":"cross-env FASTIFY_VERSION=fastifyv4 npm run test:unit","test:v5":"cross-env FASTIFY_VERSION=fastify npm run test:unit","test:coverage":"c8 node --test && c8 report --reporter=html","test:typescript":"tsd"},repository:{type:"git",url:"git+https://github.com/fastify/otel.git"},keywords:["plugin","helper","fastify","instrumentation","otel","opentelemetry"],author:"Carlos Fuentes - @metcoder95 (https://metcoder.dev)",license:"MIT",bugs:{url:"https://github.com/fastify/otel/issues"},homepage:"https://github.com/fastify/otel#readme",funding:[{type:"github",url:"https://github.com/sponsors/fastify"},{type:"opencollective",url:"https://opencollective.com/fastify"}],devDependencies:{"@fastify/type-provider-typebox":"^6.1.0","@opentelemetry/context-async-hooks":"^2.0.0","@opentelemetry/contrib-test-utils":"^0.59.0","@opentelemetry/instrumentation-http":"^0.212.0","@opentelemetry/propagator-jaeger":"^2.0.0","@opentelemetry/sdk-trace-base":"^2.0.0","@opentelemetry/sdk-trace-node":"^2.2.0","@types/node":"^25.0.3",c8:"^11.0.0","cross-env":"^10.0.0",eslint:"^9.16.0",fastify:"^5.1.0","fastify-plugin":"^5.1.0",fastifyv4:"npm:fastify@^4.0.0",neostandard:"^0.12.0",tsd:"^0.33.0"},dependencies:{"@opentelemetry/core":"^2.0.0","@opentelemetry/instrumentation":"^0.212.0","@opentelemetry/semantic-conventions":"^1.28.0",minimatch:"^10.2.4"},peerDependencies:{"@opentelemetry/api":"^1.9.0"},tsd:{directory:"types"}})},955289,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}},254508,(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}},888128,a=>{"use strict";let b=(0,a.i(783505).cache)(function(){return{locale:void 0}});function c(){return b().locale}function d(a){b().locale=a}a.s(["getCachedRequestLocale",()=>c,"setCachedRequestLocale",()=>d])},183751,a=>{"use strict";var b=a.i(783505),c=a.i(146319),d=a.i(450651),e=a.i(686122),f=(0,b.cache)(function(a,b){return function({_cache:a=(0,d.b)(),_formatters:b=(0,d.c)(a),getMessageFallback:c=e.d,messages:f,namespace:g,onError:h=e.b,...i}){return function({messages:a,namespace:b,...c},d){return a=a["!"],b=(0,e.r)(b,"!"),(0,e.a)({...c,messages:a,namespace:b})}({...i,onError:h,cache:a,formatters:b,getMessageFallback:c,messages:{"!":f},namespace:g?`!.${g}`:"!"},0)}({...a,namespace:b})}),g=(0,b.cache)(async function(a){let b,d;return"string"==typeof a?b=a:a&&(d=a.locale,b=a.namespace),f(await (0,c.default)(d),b)});a.s(["getTranslations",()=>g],183751)},787368,a=>{"use strict";a.i(998511),a.i(149312),a.i(183751),a.i(534406);let b=a.i(446524).OG_IMAGE_SIZE;var c=a.i(335076);let d={contentType:"image/png",runtime:"nodejs",size:b};async function e(a){let{__metadata_id__:b,...e}=await a.params,f=(0,c.fillMetadataSegment)("/[locale]",e,"opengraph-image");return[function(a,b){let c={alt:a.alt,type:a.contentType||"image/png",url:f+"?6076960dae8670a5"},{size:d}=a;return d&&(c.width=d.width,c.height=d.height),c}(d,0)]}a.s(["default",0,e],787368)},791227,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_next_dist_compiled_@vercel_og_index_node_055f47ab.js"].map(b=>a.l(b))).then(()=>b(121425)))},234177,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node:inspector_7a4283c6._.js"].map(b=>a.l(b))).then(()=>b(237221)))},939510,a=>{a.v(b=>Promise.all(["server/chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_634cb413._.js"].map(b=>a.l(b))).then(()=>b(996454)))},962327,a=>{a.v(b=>Promise.all(["server/chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_f7a67094.js"].map(b=>a.l(b))).then(()=>b(868047)))},665688,a=>{a.v(b=>Promise.all(["server/chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_88fed31f._.js"].map(b=>a.l(b))).then(()=>b(483274)))},256493,a=>{a.v(b=>Promise.all(["server/chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_929773f6._.js"].map(b=>a.l(b))).then(()=>b(190438)))},205639,a=>{a.v(b=>Promise.all(["server/chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_e2e05945.js"].map(b=>a.l(b))).then(()=>b(335359)))},65575,a=>{a.v(b=>Promise.all(["server/chunks/ssr/messages_de_json_56e8cde5._.js"].map(b=>a.l(b))).then(()=>b(763974)))},17741,a=>{a.v(b=>Promise.all(["server/chunks/ssr/messages_en_json_a7997480._.js"].map(b=>a.l(b))).then(()=>b(50929)))}]; + +//# debugId=c430e1fd-dd6f-d4be-4e59-fb94210c3fea +//# sourceMappingURL=%5Broot-of-the-server%5D__2da52317._.js.map \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__2da52317._.js.map b/.next/server/chunks/ssr/[root-of-the-server]__2da52317._.js.map new file mode 100644 index 000000000..a39c392a3 --- /dev/null +++ b/.next/server/chunks/ssr/[root-of-the-server]__2da52317._.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": [], + "debugId": "c430e1fd-dd6f-d4be-4e59-fb94210c3fea", + "sections": [ + {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/dist/compiled/cookie/index.js","turbopack:///[project]/node_modules/.pnpm/@fastify+otel@0.18.0_@opentelemetry+api@1.9.1/node_modules/@fastify/otel/package.json","../../../../node_modules/.pnpm/%40swc%2Bhelpers%400.5.15/node_modules/%40swc/helpers/cjs/_interop_require_default.cjs","../../../../node_modules/.pnpm/%40swc%2Bhelpers%400.5.15/node_modules/%40swc/helpers/cjs/_interop_require_wildcard.cjs","../../../../node_modules/.pnpm/next-intl%404.9.0_%40swc%2Bhelpers%400.5.20_next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/server/react-server/RequestLocaleCache.js","../../../../node_modules/.pnpm/next-intl%404.9.0_%40swc%2Bhelpers%400.5.20_next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/server/react-server/getTranslations.js","../../../../node_modules/.pnpm/use-intl%404.9.0_react%4019.2.4/node_modules/use-intl/dist/esm/production/core.js","../../../../node_modules/.pnpm/next-intl%404.9.0_%40swc%2Bhelpers%400.5.20_next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/server/react-server/getServerTranslator.js","../../../../app/%5Blocale%5D/opengraph-image.tsx","../../../../app/%5Blocale%5D/opengraph-image--metadata.js"],"sourcesContent":["(()=>{\"use strict\";if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var e={};(()=>{var r=e;\n/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */r.parse=parse;r.serialize=serialize;var i=decodeURIComponent;var t=encodeURIComponent;var a=/; */;var n=/^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;function parse(e,r){if(typeof e!==\"string\"){throw new TypeError(\"argument str must be a string\")}var t={};var n=r||{};var o=e.split(a);var s=n.decode||i;for(var p=0;p }) {\n const { locale } = await params;\n const t = await getTranslations({ locale, namespace: 'Index.meta' });\n const fonts = await getOgFonts();\n\n return new ImageResponse(\n ,\n {\n ...OG_IMAGE_SIZE,\n fonts,\n },\n );\n}\n","import { contentType, runtime, size } from \"./opengraph-image.tsx\"\nimport { fillMetadataSegment } from 'next/dist/lib/metadata/get-metadata-route'\n\nconst imageModule = { contentType, runtime, size }\n\nexport default async function (props) {\n const { __metadata_id__: _, ...params } = await props.params\n const imageUrl = fillMetadataSegment(\"/[locale]\", params, \"opengraph-image\")\n\n function getImageMetadata(imageMetadata, idParam) {\n const data = {\n alt: imageMetadata.alt,\n type: imageMetadata.contentType || 'image/png',\n url: imageUrl + (idParam ? ('/' + idParam) : '') + \"?6076960dae8670a5\",\n }\n const { size } = imageMetadata\n if (size) {\n data.width = size.width; data.height = size.height;\n }\n return data\n }\n\n return [getImageMetadata(imageModule, '')]\n}\n"],"names":[],"mappings":"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","ignoreList":[0,2,3,4,5,6,7]}}] +} \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__2e5112e6._.js b/.next/server/chunks/ssr/[root-of-the-server]__2e5112e6._.js index dde51d2b8..5b68db7f4 100644 --- a/.next/server/chunks/ssr/[root-of-the-server]__2e5112e6._.js +++ b/.next/server/chunks/ssr/[root-of-the-server]__2e5112e6._.js @@ -1,5 +1,5 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="02c703dd-0350-4756-86f2-da006024e9f6")}catch(e){}}(); -module.exports=[500874,(a,b,c)=>{b.exports=a.x("buffer",()=>require("buffer"))},193695,(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"))},994367,a=>{a.n(a.i(216893))},298936,a=>{a.n(a.i(55385))},711681,a=>{a.n(a.i(539051))},153884,a=>{a.n(a.i(932922))},727894,a=>{a.n(a.i(787368))},530419,a=>{a.n(a.i(627641))},999040,a=>{a.n(a.i(144505))},727501,a=>{a.n(a.i(825138))},25341,a=>{"use strict";var b=a.i(522734),c=a.i(814747),d=a.i(328860);let e=c.default.join(process.cwd(),"content");async function f(a,f){let g=c.default.join(e,a,`${f}.mdx`);if(!b.default.existsSync(g))return null;let h=b.default.readFileSync(g,"utf8"),{content:i,data:j}=(0,d.default)(h);return{content:i,frontmatter:j}}a.s(["getMdxContent",()=>f])},486180,a=>a.a(async(b,c)=>{try{var d=a.i(998511),e=a.i(838742);a.i(612641);var f=a.i(909547),g=a.i(25341),h=a.i(403492),i=a.i(460095),j=a.i(490907),k=a.i(422515),l=a.i(175670),m=b([h]);[h]=m.then?(await m)():m;let p={HomeHero:i.HeroVideo,HomeSubCompanyTiles:j.SubCompanyTiles,HomeCompetenceBentoGrid:k.CompetenceBentoGrid,HomeReferencesSlider:l.ReferencesSlider};async function n(a){let{locale:b}=await a.params;if("de"!==b&&"en"!==b)return{};let c=await (0,g.getMdxContent)(b,"home");return{title:c?.frontmatter?.title||("de"===b?"Startseite":"Home"),description:c?.frontmatter?.description}}async function o(a){let{locale:b}=await a.params;"de"!==b&&"en"!==b&&(0,f.notFound)(),(0,e.setRequestLocale)(b);let c=await (0,g.getMdxContent)(b,"home");return c||(0,f.notFound)(),(0,d.jsx)("main",{children:(0,d.jsx)(h.MDXRemote,{source:c.content,components:p})})}a.s(["default",()=>o,"dynamic",0,"force-dynamic","generateMetadata",()=>n]),c()}catch(a){c(a)}},!1)]; +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="6ac54d20-dc34-41af-4151-8a084536c0d2")}catch(e){}}(); +module.exports=[500874,(a,b,c)=>{b.exports=a.x("buffer",()=>require("buffer"))},193695,(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"))},994367,a=>{a.n(a.i(216893))},298936,a=>{a.n(a.i(55385))},711681,a=>{a.n(a.i(539051))},153884,a=>{a.n(a.i(932922))},727894,a=>{a.n(a.i(787368))},530419,a=>{a.n(a.i(627641))},999040,a=>{a.n(a.i(144505))},727501,a=>{a.n(a.i(825138))},25341,a=>{"use strict";var b=a.i(522734),c=a.i(814747),d=a.i(328860);let e=c.default.join(process.cwd(),"content");async function f(a,f){let g=c.default.join(e,a,`${f}.mdx`);if(!b.default.existsSync(g))return null;let h=b.default.readFileSync(g,"utf8"),{content:i,data:j}=(0,d.default)(h);return{content:i,frontmatter:j}}a.s(["getMdxContent",()=>f])},486180,a=>a.a(async(b,c)=>{try{var d=a.i(998511),e=a.i(838742);a.i(612641);var f=a.i(909547),g=a.i(25341),h=a.i(403492),i=a.i(460095),j=a.i(490907),k=a.i(422515),l=a.i(175670),m=a.i(401719),n=b([h]);[h]=n.then?(await n)():n;let q={HomeHero:i.HeroVideo,HomeSubCompanyTiles:j.SubCompanyTiles,HomeCompetenceBentoGrid:k.CompetenceBentoGrid,HomeReferencesSlider:l.ReferencesSlider,Button:m.Button};async function o(a){let{locale:b}=await a.params;if("de"!==b&&"en"!==b)return{};let c=await (0,g.getMdxContent)(b,"home");return{title:c?.frontmatter?.title||("de"===b?"Startseite":"Home"),description:c?.frontmatter?.description}}async function p(a){let{locale:b}=await a.params;"de"!==b&&"en"!==b&&(0,f.notFound)(),(0,e.setRequestLocale)(b);let c=await (0,g.getMdxContent)(b,"home");return c||(0,f.notFound)(),(0,d.jsx)("main",{children:(0,d.jsx)(h.MDXRemote,{source:c.content,components:q})})}a.s(["default",()=>p,"dynamic",0,"force-dynamic","generateMetadata",()=>o]),c()}catch(a){c(a)}},!1)]; -//# debugId=02c703dd-0350-4756-86f2-da006024e9f6 +//# debugId=6ac54d20-dc34-41af-4151-8a084536c0d2 //# sourceMappingURL=%5Broot-of-the-server%5D__2e5112e6._.js.map \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__2e5112e6._.js.map b/.next/server/chunks/ssr/[root-of-the-server]__2e5112e6._.js.map index 0a9231fac..acfca2d06 100644 --- a/.next/server/chunks/ssr/[root-of-the-server]__2e5112e6._.js.map +++ b/.next/server/chunks/ssr/[root-of-the-server]__2e5112e6._.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": [], - "debugId": "02c703dd-0350-4756-86f2-da006024e9f6", + "debugId": "6ac54d20-dc34-41af-4151-8a084536c0d2", "sections": [ - {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["../../../../lib/mdx.ts","../../../../app/%5Blocale%5D/page.tsx"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport matter from 'gray-matter';\n\nconst CONTENT_DIR = path.join(process.cwd(), 'content');\n\nexport async function getMdxContent(locale: string, slug: string) {\n const filePath = path.join(CONTENT_DIR, locale, `${slug}.mdx`);\n \n if (!fs.existsSync(filePath)) {\n return null;\n }\n\n const source = fs.readFileSync(filePath, 'utf8');\n const { content, data } = matter(source);\n\n return {\n content,\n frontmatter: data,\n };\n}\n","import { Metadata } from 'next';\nimport { setRequestLocale } from 'next-intl/server';\nimport { notFound } from 'next/navigation';\nimport { getMdxContent } from '@/lib/mdx';\nimport { MDXRemote } from 'next-mdx-remote/rsc';\n\nexport const dynamic = 'force-dynamic';\n\n// Import components used in MDX\nimport { HeroVideo as HomeHero } from '@/components/blocks/HeroVideo';\nimport { SubCompanyTiles as HomeSubCompanyTiles } from '@/components/blocks/SubCompanyTiles';\nimport { CompetenceBentoGrid as HomeCompetenceBentoGrid } from '@/components/blocks/CompetenceBentoGrid';\nimport { ReferencesSlider as HomeReferencesSlider } from '@/components/blocks/ReferencesSlider';\n\nconst mdxComponents = {\n HomeHero,\n HomeSubCompanyTiles,\n HomeCompetenceBentoGrid,\n HomeReferencesSlider,\n};\n\nexport async function generateMetadata(props: any): Promise {\n const { locale } = await props.params;\n if (locale !== 'de' && locale !== 'en') return {};\n \n const mdx = await getMdxContent(locale, 'home');\n \n return {\n title: mdx?.frontmatter?.title || (locale === 'de' ? 'Startseite' : 'Home'),\n description: mdx?.frontmatter?.description,\n };\n}\n\nexport default async function Home(props: any) {\n const { locale } = await props.params;\n \n if (locale !== 'de' && locale !== 'en') {\n notFound();\n }\n \n setRequestLocale(locale);\n\n const mdx = await getMdxContent(locale, 'home');\n\n if (!mdx) {\n notFound();\n }\n\n return (\n
\n \n
\n );\n}\n\n"],"names":[],"mappings":"seAAA,IAAA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QAEA,IAAM,EAAc,EAAA,OAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAI,WAEtC,eAAe,EAAc,CAAc,CAAE,CAAY,EAC9D,IAAM,EAAW,EAAA,OAAI,CAAC,IAAI,CAAC,EAAa,EAAQ,CAAA,EAAG,EAAK,IAAI,CAAC,EAE7D,GAAI,CAAC,EAAA,OAAE,CAAC,UAAU,CAAC,GACjB,OAAO,CADqB,IAI9B,IAAM,EAAS,EAAA,OAAE,CAAC,YAAY,CAAC,EAAU,QACnC,SAAE,CAAO,MAAE,CAAI,CAAE,CAAG,CAAA,EAAA,EAAA,OAAA,AAAM,EAAC,GAEjC,MAAO,SACL,EACA,YAAa,CACf,CACF,gFCnBA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,CAAA,CAAA,QAAA,IAAA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,QAKA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,0CAEA,IAAM,EAAgB,CACpB,SAAA,EAAA,SAAQ,CACR,oBAAA,EAAA,eAAmB,CACnB,wBAAA,EAAA,mBAAuB,CACvB,qBAAA,EAAA,gBAAoB,AACtB,EAEO,eAAe,EAAiB,CAAU,EAC/C,GAAM,QAAE,CAAM,CAAE,CAAG,MAAM,EAAM,MAAM,CACrC,GAAe,OAAX,GAAmB,AAAW,SAAM,MAAO,CAAC,EAEhD,IAAM,EAAM,MAAM,CAAA,EAAA,EAAA,aAAA,AAAa,EAAC,EAAQ,QAExC,MAAO,CACL,MAAO,GAAK,aAAa,QAAU,AAAW,CAAZ,QAAmB,aAAe,MAAA,CAAM,CAC1E,YAAa,GAAK,aAAa,WACjC,CACF,CAEe,eAAe,EAAK,CAAU,EAC3C,GAAM,QAAE,CAAM,CAAE,CAAG,MAAM,EAAM,MAAM,CAEtB,OAAX,GAAmB,AAAW,MAAM,IACtC,CAAA,EAAA,EAAA,QAAA,AAAQ,IAGV,CAAA,EAAA,EAAA,gBAAA,AAAgB,EAAC,GAEjB,IAAM,EAAM,MAAM,CAAA,EAAA,EAAA,aAAA,AAAa,EAAC,EAAQ,QAMxC,OAJI,AAAC,GACH,CAAA,CADQ,CACR,EAAA,QAAA,AAAQ,IAIR,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,UACC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,SAAS,CAAA,CAAC,OAAQ,EAAI,OAAO,CAAE,WAAY,KAGlD,kCA/CuB"}}] + {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["../../../../lib/mdx.ts","../../../../app/%5Blocale%5D/page.tsx"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport matter from 'gray-matter';\n\nconst CONTENT_DIR = path.join(process.cwd(), 'content');\n\nexport async function getMdxContent(locale: string, slug: string) {\n const filePath = path.join(CONTENT_DIR, locale, `${slug}.mdx`);\n \n if (!fs.existsSync(filePath)) {\n return null;\n }\n\n const source = fs.readFileSync(filePath, 'utf8');\n const { content, data } = matter(source);\n\n return {\n content,\n frontmatter: data,\n };\n}\n","import { Metadata } from 'next';\nimport { setRequestLocale } from 'next-intl/server';\nimport { notFound } from 'next/navigation';\nimport { getMdxContent } from '@/lib/mdx';\nimport { MDXRemote } from 'next-mdx-remote/rsc';\n\nexport const dynamic = 'force-dynamic';\n\n// Import components used in MDX\nimport { HeroVideo as HomeHero } from '@/components/blocks/HeroVideo';\nimport { SubCompanyTiles as HomeSubCompanyTiles } from '@/components/blocks/SubCompanyTiles';\nimport { CompetenceBentoGrid as HomeCompetenceBentoGrid } from '@/components/blocks/CompetenceBentoGrid';\nimport { ReferencesSlider as HomeReferencesSlider } from '@/components/blocks/ReferencesSlider';\n\nimport { Button } from '@/components/ui/Button';\n\nconst mdxComponents = {\n HomeHero,\n HomeSubCompanyTiles,\n HomeCompetenceBentoGrid,\n HomeReferencesSlider,\n Button,\n};\n\nexport async function generateMetadata(props: any): Promise {\n const { locale } = await props.params;\n if (locale !== 'de' && locale !== 'en') return {};\n \n const mdx = await getMdxContent(locale, 'home');\n \n return {\n title: mdx?.frontmatter?.title || (locale === 'de' ? 'Startseite' : 'Home'),\n description: mdx?.frontmatter?.description,\n };\n}\n\nexport default async function Home(props: any) {\n const { locale } = await props.params;\n \n if (locale !== 'de' && locale !== 'en') {\n notFound();\n }\n \n setRequestLocale(locale);\n\n const mdx = await getMdxContent(locale, 'home');\n\n if (!mdx) {\n notFound();\n }\n\n return (\n
\n \n
\n );\n}\n\n"],"names":[],"mappings":"seAAA,IAAA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QAEA,IAAM,EAAc,EAAA,OAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAI,WAEtC,eAAe,EAAc,CAAc,CAAE,CAAY,EAC9D,IAAM,EAAW,EAAA,OAAI,CAAC,IAAI,CAAC,EAAa,EAAQ,CAAA,EAAG,EAAK,IAAI,CAAC,EAE7D,GAAI,CAAC,EAAA,OAAE,CAAC,UAAU,CAAC,GACjB,OAAO,CADqB,IAI9B,IAAM,EAAS,EAAA,OAAE,CAAC,YAAY,CAAC,EAAU,QACnC,SAAE,CAAO,MAAE,CAAI,CAAE,CAAG,CAAA,EAAA,EAAA,OAAA,AAAM,EAAC,GAEjC,MAAO,SACL,EACA,YAAa,CACf,CACF,gFCnBA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,CAAA,CAAA,QAAA,IAAA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,QAKA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QAEA,EAAA,EAAA,CAAA,CAAA,0CAEA,IAAM,EAAgB,CACpB,SAAA,EAAA,SAAQ,CACR,oBAAA,EAAA,eAAmB,CACnB,wBAAA,EAAA,mBAAuB,CACvB,qBAAA,EAAA,gBAAoB,CACpB,OAAA,EAAA,MAAM,AACR,EAEO,eAAe,EAAiB,CAAU,EAC/C,GAAM,QAAE,CAAM,CAAE,CAAG,MAAM,EAAM,MAAM,CACrC,GAAe,OAAX,GAA8B,OAAX,EAAiB,MAAO,CAAC,EAEhD,IAAM,EAAM,MAAM,CAAA,EAAA,EAAA,aAAA,AAAa,EAAC,EAAQ,QAExC,MAAO,CACL,MAAO,GAAK,aAAa,QAAqB,AAAX,CAAD,QAAmB,aAAe,MAAA,CAAM,CAC1E,YAAa,GAAK,aAAa,WACjC,CACF,CAEe,eAAe,EAAK,CAAU,EAC3C,GAAM,QAAE,CAAM,CAAE,CAAG,MAAM,EAAM,MAAM,AAEtB,QAAX,GAA8B,MAAM,CAAjB,GACrB,CAAA,EAAA,EAAA,QAAQ,AAAR,IAGF,CAAA,EAAA,EAAA,gBAAA,AAAgB,EAAC,GAEjB,IAAM,EAAM,MAAM,CAAA,EAAA,EAAA,aAAA,AAAa,EAAC,EAAQ,QAMxC,OAJI,AAAC,GACH,CAAA,CADQ,CACR,EAAA,QAAA,AAAQ,IAIR,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,UACC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,SAAS,CAAA,CAAC,OAAQ,EAAI,OAAO,CAAE,WAAY,KAGlD,kCAlDuB"}}] } \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__34977423._.js b/.next/server/chunks/ssr/[root-of-the-server]__34977423._.js new file mode 100644 index 000000000..093d49b2d --- /dev/null +++ b/.next/server/chunks/ssr/[root-of-the-server]__34977423._.js @@ -0,0 +1,5 @@ +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="eaa1f92a-3694-bc47-1860-558b44c13136")}catch(e){}}(); +module.exports=[324725,(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"))},64293,(a,b,c)=>{b.exports=a.x("pino-2e79642258e38174",()=>require("pino-2e79642258e38174"))},594214,90695,5515,544027,434904,618180,781027,41100,a=>{"use strict";var b=a.i(829091);a.i(912466);var c=a.i(526156);function d({className:a,children:d,...e}){return(0,c.jsx)("section",{className:(0,b.cn)("py-16 md:py-28 lg:py-36 overflow-hidden content-visibility-auto",a),...e,children:d})}function e({className:a,children:d,...e}){return(0,c.jsx)("div",{className:(0,b.cn)("container mx-auto px-4 md:px-12 lg:px-16 max-w-7xl",a),...e,children:d})}function f({level:a=2,children:d,className:e,subtitle:f,align:g="left"}){let h=`h${a}`;return(0,c.jsxs)("div",{className:(0,b.cn)("mb-6 md:mb-12 text-primary",{left:"text-left",center:"text-center mx-auto",right:"text-right"}[g],e),children:[f&&(0,c.jsx)("span",{className:"inline-block text-accent font-bold tracking-widest uppercase text-xs md:text-sm mb-3 md:mb-4 animate-fade-in",children:f}),(0,c.jsx)(h,{className:(0,b.cn)({1:"text-2xl md:text-4xl lg:text-5xl font-bold leading-[1.1] tracking-tight",2:"text-xl md:text-3xl lg:text-4xl font-bold leading-[1.2] tracking-tight",3:"text-lg md:text-2xl lg:text-3xl font-bold leading-[1.3] tracking-tight",4:"text-lg md:text-xl lg:text-2xl font-bold leading-[1.4]",5:"text-base md:text-lg font-bold leading-[1.5]",6:"text-base md:text-lg font-semibold leading-[1.6]"}[a]),children:d})]})}function g({className:a,children:d,tag:e="div",...f}){return(0,c.jsx)(e,{className:(0,b.cn)("premium-card overflow-hidden",a),...f,children:d})}function h({className:a,...d}){return(0,c.jsx)("input",{className:(0,b.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg",a),...d})}function i({className:a,...d}){return(0,c.jsx)("textarea",{className:(0,b.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg resize-none",a),...d})}function j({className:a,...d}){return(0,c.jsx)("label",{className:(0,b.cn)("text-[10px] md:text-xs font-extrabold text-primary uppercase tracking-widest",a),...d})}a.s(["Section",()=>d],90695),a.s(["Container",()=>e],5515),a.s(["Heading",()=>f],544027),a.s(["Card",()=>g],434904),a.s(["Input",()=>h],618180),a.s(["Textarea",()=>i],781027),a.s(["Label",()=>j],41100),a.s([],594214)},991320,a=>{"use strict";var b=a.i(526156);a.i(594214);var c=a.i(829091);function d({variant:a,className:d,color:e="#82ed20"}){return"circle"===a?(0,b.jsx)("svg",{className:(0,c.cn)("absolute pointer-events-none",d),"aria-hidden":"true",viewBox:"0 0 800 350",preserveAspectRatio:"none",children:(0,b.jsx)("path",{className:"animate-draw-stroke",pathLength:"1",style:{strokeDasharray:1,strokeDashoffset:1,animation:"draw-stroke 1.8s ease-in-out 0.5s forwards"},transform:"matrix(0.9791300296783447,0,0,0.9791300296783447,400,179)",strokeLinejoin:"miter",fillOpacity:"0",strokeMiterlimit:"4",stroke:e,strokeOpacity:"1",strokeWidth:"20",d:" M253,-161 C253,-161 -284.78900146484375,-201.4600067138672 -376,-21 C-469,163 67.62300109863281,174.2100067138672 256,121 C564,34 250.82899475097656,-141.6929931640625 19.10700035095215,-116.93599700927734"})}):"underline"===a?(0,b.jsx)("svg",{className:(0,c.cn)("absolute pointer-events-none",d),"aria-hidden":"true",viewBox:"-400 -55 730 60",preserveAspectRatio:"none",children:(0,b.jsx)("path",{className:"animate-draw-stroke",pathLength:"1",style:{strokeDasharray:1,strokeDashoffset:1,animation:"draw-stroke 1.8s ease-in-out 0.5s forwards"},d:"m -383.25 -6 c 55.25 -22 130.75 -33.5 293.25 -38 c 54.5 -0.5 195 -2.5 401 15",stroke:e,strokeWidth:"20",fill:"none"})}):null}a.s(["default",()=>d])},497627,a=>{"use strict";var b=a.i(526156),c=a.i(150765),d=a.i(603836),e=a.i(475625);a.i(594214);var f=a.i(5515),g=a.i(912466),h=a.i(544027),i=a.i(991320);function j({error:a,reset:j}){let k=(0,d.useTranslations)("Error");return(0,c.useEffect)(()=>{if(a?.message?.includes("Failed to find Server Action"))return void window.location.reload();let b=(0,e.getAppServices)();return b.errors.captureException(a),b.logger.error("Application error caught by boundary",{message:a?.message||"Unknown error",stack:a?.stack,digest:a?.digest}),document.body.setAttribute("data-force-solid-header","true"),()=>{document.body.removeAttribute("data-force-solid-header")}},[a]),(0,b.jsx)(b.Fragment,{children:(0,b.jsxs)(f.Container,{className:"relative py-32 mt-16 flex flex-col items-center justify-center text-center min-h-[70vh] overflow-hidden",children:[(0,b.jsx)("div",{className:"absolute inset-0 -z-10 opacity-[0.03] pointer-events-none flex items-center justify-center",children:(0,b.jsx)("span",{className:"text-[20rem] font-bold select-none",children:"500"})}),(0,b.jsxs)("div",{className:"relative mb-8",children:[(0,b.jsx)(h.Heading,{level:1,className:"text-6xl md:text-8xl font-bold mb-2 text-saturated",children:"500"}),(0,b.jsx)(i.default,{variant:"underline",className:"w-full h-6 -bottom-2 left-0 text-saturated/40"})]}),(0,b.jsx)(h.Heading,{level:2,className:"text-2xl md:text-3xl font-bold mb-4 text-primary",children:k("title")}),(0,b.jsx)("p",{className:"text-text-secondary mb-10 max-w-md text-lg mx-auto",children:k("description")}),(0,b.jsxs)("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[(0,b.jsx)(g.Button,{onClick:()=>j(),variant:"saturated",size:"lg",children:k("tryAgain")}),(0,b.jsx)(g.Button,{href:"/",variant:"outline",size:"lg",children:k("goHome")})]}),(0,b.jsx)("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 w-px h-24 bg-gradient-to-b from-saturated/50 to-transparent"})]})})}a.s(["default",()=>j])},163041,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__047498e4._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js"].map(b=>a.l(b))).then(()=>b(17814)))}]; + +//# debugId=eaa1f92a-3694-bc47-1860-558b44c13136 +//# sourceMappingURL=%5Broot-of-the-server%5D__34977423._.js.map \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__34977423._.js.map b/.next/server/chunks/ssr/[root-of-the-server]__34977423._.js.map new file mode 100644 index 000000000..ff44b4e22 --- /dev/null +++ b/.next/server/chunks/ssr/[root-of-the-server]__34977423._.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": [], + "debugId": "eaa1f92a-3694-bc47-1860-558b44c13136", + "sections": [ + {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["../../../../components/ui/index.ts","../../../../components/ui/Section.tsx","../../../../components/ui/Container.tsx","../../../../components/ui/Heading.tsx","../../../../components/ui/Card.tsx","../../../../components/ui/Badge.tsx","../../../../components/ui/Input.tsx","../../../../components/ui/Textarea.tsx","../../../../components/ui/Label.tsx","../../../../components/ui/Callout.tsx","../../../../components/Scribble.tsx","../../../../app/%5Blocale%5D/error.tsx"],"sourcesContent":["export * from './utils';\nexport * from './Button';\nexport * from './Section';\nexport * from './Container';\nexport * from './Heading';\nexport * from './Card';\nexport * from './Badge';\nexport * from './Input';\nexport * from './Textarea';\nexport * from './Label';\nexport * from './Callout';\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Section({ className, children, ...props }: React.HTMLAttributes) {\n return (\n
\n {children}\n
\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Container({ className, children, ...props }: React.HTMLAttributes) {\n return (\n
\n {children}\n
\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Heading({\n level = 2,\n children,\n className,\n subtitle,\n align = 'left'\n}: {\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n children: React.ReactNode;\n className?: string;\n subtitle?: string;\n align?: 'left' | 'center' | 'right';\n}) {\n const Tag = `h${level}` as any;\n \n const sizes = {\n 1: 'text-2xl md:text-4xl lg:text-5xl font-bold leading-[1.1] tracking-tight',\n 2: 'text-xl md:text-3xl lg:text-4xl font-bold leading-[1.2] tracking-tight',\n 3: 'text-lg md:text-2xl lg:text-3xl font-bold leading-[1.3] tracking-tight',\n 4: 'text-lg md:text-xl lg:text-2xl font-bold leading-[1.4]',\n 5: 'text-base md:text-lg font-bold leading-[1.5]',\n 6: 'text-base md:text-lg font-semibold leading-[1.6]',\n };\n\n const alignments = {\n left: 'text-left',\n center: 'text-center mx-auto',\n right: 'text-right',\n };\n\n return (\n
\n {subtitle && (\n \n {subtitle}\n \n )}\n \n {children}\n \n
\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\ninterface CardProps extends React.HTMLAttributes {\n tag?: 'div' | 'article' | 'section' | 'aside' | 'header' | 'footer' | 'nav' | 'main';\n}\n\nexport function Card({ className, children, tag: Tag = 'div', ...props }: CardProps) {\n return (\n \n {children}\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Badge({ children, className, variant = 'primary' }: { children: React.ReactNode, className?: string, variant?: 'primary' | 'accent' | 'neutral' | 'saturated' }) {\n const variants = {\n primary: 'bg-primary-light text-primary',\n accent: 'bg-accent-light text-accent-dark',\n neutral: 'bg-neutral-medium text-text-secondary',\n saturated: 'bg-saturated text-white',\n };\n \n return (\n \n {children}\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport interface InputProps extends React.InputHTMLAttributes {\n className?: string;\n}\n\nexport function Input({ className, ...props }: InputProps) {\n return (\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport interface TextareaProps extends React.TextareaHTMLAttributes {\n className?: string;\n}\n\nexport function Textarea({ className, ...props }: TextareaProps) {\n return (\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport interface LabelProps extends React.LabelHTMLAttributes {\n className?: string;\n}\n\nexport function Label({ className, ...props }: LabelProps) {\n return (\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\ninterface CalloutProps {\n type?: 'info' | 'warning' | 'success' | 'tip';\n title?: string;\n children: React.ReactNode;\n className?: string;\n}\n\nconst icons = {\n info: (\n \n \n \n ),\n warning: (\n \n \n \n ),\n success: (\n \n \n \n ),\n tip: (\n \n \n \n ),\n};\n\nconst styles = {\n info: 'bg-blue-50 border-blue-200 text-blue-900',\n warning: 'bg-yellow-50 border-yellow-200 text-yellow-900',\n success: 'bg-green-50 border-green-200 text-green-900',\n tip: 'bg-purple-50 border-purple-200 text-purple-900',\n};\n\nconst iconColors = {\n info: 'text-blue-500',\n warning: 'text-yellow-500',\n success: 'text-green-500',\n tip: 'text-purple-500',\n};\n\nexport function Callout({ type = 'info', title, children, className }: CalloutProps) {\n return (\n
\n
\n
\n {icons[type]}\n
\n
\n {title && (\n

{title}

\n )}\n
\n {children}\n
\n
\n
\n
\n );\n}\n","'use client';\n\nimport React from 'react';\nimport { cn } from '@/components/ui';\n\ninterface ScribbleProps {\n variant: 'circle' | 'underline';\n className?: string;\n color?: string;\n}\n\nexport default function Scribble({ variant, className, color = '#82ed20' }: ScribbleProps) {\n if (variant === 'circle') {\n return (\n \n \n \n );\n }\n\n if (variant === 'underline') {\n return (\n \n \n \n );\n }\n\n return null;\n}\n","'use client';\n\nimport { useEffect } from 'react';\nimport { useTranslations } from 'next-intl';\nimport { getAppServices } from '@/lib/services/create-services';\nimport { Container, Button, Heading } from '@/components/ui';\nimport Scribble from '@/components/Scribble';\n\nexport default function Error({\n error,\n reset,\n}: {\n error: Error & { digest?: string };\n reset: () => void;\n}) {\n const t = useTranslations('Error');\n\n useEffect(() => {\n // Treat \"Failed to find Server Action\" as a deployment sync issue and reload\n if (error?.message?.includes('Failed to find Server Action')) {\n window.location.reload();\n return;\n }\n\n const services = getAppServices();\n services.errors.captureException(error);\n services.logger.error('Application error caught by boundary', {\n message: error?.message || 'Unknown error',\n stack: error?.stack,\n digest: error?.digest,\n });\n \n // Force solid header\n document.body.setAttribute('data-force-solid-header', 'true');\n return () => {\n document.body.removeAttribute('data-force-solid-header');\n };\n }, [error]);\n\n return (\n <>\n \n {/* Industrial Background Element */}\n
\n 500\n
\n\n
\n \n 500\n \n \n
\n\n \n {t('title')}\n \n\n

{t('description')}

\n\n
\n \n \n
\n\n {/* Decorative Industrial Line */}\n
\n \n \n );\n}\n"],"names":[],"mappings":"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"}}] +} \ No newline at end of file diff --git a/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__3b46c561._.js b/.next/server/chunks/ssr/[root-of-the-server]__4f559f29._.js similarity index 94% rename from .next/standalone/.next/server/chunks/ssr/[root-of-the-server]__3b46c561._.js rename to .next/server/chunks/ssr/[root-of-the-server]__4f559f29._.js index 87b3af334..61da9962b 100644 --- a/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__3b46c561._.js +++ b/.next/server/chunks/ssr/[root-of-the-server]__4f559f29._.js @@ -1,5 +1,5 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="eddf81a4-faae-db8c-d575-f61aed717606")}catch(e){}}(); -module.exports=[324725,(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"))},64293,(a,b,c)=>{b.exports=a.x("pino-2e79642258e38174",()=>require("pino-2e79642258e38174"))},274209,281682,a=>{"use strict";var b=a.i(150765),c=a.i(475625);function d(){let a=(0,c.getAppServices)();return{trackEvent:(0,b.useCallback)((b,c)=>{a.analytics.track(b,c)},[a]),trackPageview:(0,b.useCallback)(b=>{a.analytics.trackPageview(b)},[a])}}a.s(["useAnalytics",()=>d],274209),a.s(["AnalyticsEvents",0,{PAGE_VIEW:"pageview",PAGE_SCROLL:"page_scroll",PAGE_EXIT:"page_exit",SCROLL_DEPTH:"scroll_depth",BUTTON_CLICK:"button_click",LINK_CLICK:"link_click",FORM_SUBMIT:"form_submit",FORM_START:"form_start",FORM_ERROR:"form_error",FORM_FIELD_FOCUS:"form_field_focus",PRODUCT_VIEW:"product_view",PRODUCT_ADD_TO_CART:"product_add_to_cart",PRODUCT_REMOVE_FROM_CART:"product_remove_from_cart",PRODUCT_PURCHASE:"product_purchase",PRODUCT_WISHLIST_ADD:"product_wishlist_add",PRODUCT_WISHLIST_REMOVE:"product_wishlist_remove",PRODUCT_TAB_SWITCH:"product_tab_switch",SEARCH:"search",FILTER_APPLY:"filter_apply",FILTER_CLEAR:"filter_clear",USER_SIGNUP:"user_signup",USER_LOGIN:"user_login",USER_LOGOUT:"user_logout",USER_PROFILE_UPDATE:"user_profile_update",BLOG_POST_VIEW:"blog_post_view",VIDEO_PLAY:"video_play",VIDEO_PAUSE:"video_pause",VIDEO_COMPLETE:"video_complete",DOWNLOAD:"download",MODAL_OPEN:"modal_open",MODAL_CLOSE:"modal_close",TOGGLE_SWITCH:"toggle_switch",ACCORDION_TOGGLE:"accordion_toggle",TAB_SWITCH:"tab_switch",TOC_CLICK:"toc_click",ERROR:"error",PERFORMANCE:"performance",API_ERROR:"api_error",API_SUCCESS:"api_success",QUOTE_REQUEST:"quote_request",CONTACT_FORM_SUBMIT:"contact_form_submit",NEWSLETTER_SUBSCRIBE:"newsletter_subscribe",BROCHURE_DOWNLOAD:"brochure_download"}],281682)},762771,a=>{"use strict";var b=a.i(526156),c=a.i(150765),d=a.i(829091),e=a.i(274209),f=a.i(281682);function g({headings:a,locale:g}){let[h,i]=(0,c.useState)(""),{trackEvent:j}=(0,e.useAnalytics)();return((0,c.useEffect)(()=>{let b=new IntersectionObserver(a=>{a.forEach(a=>{a.isIntersecting&&i(a.target.id)})},{rootMargin:"-10% 0% -70% 0%",threshold:0}),c=setTimeout(()=>{a.map(a=>document.getElementById(a.id)).forEach(a=>{a&&b.observe(a)})},500);return()=>{clearTimeout(c),b.disconnect()}},[a]),0===a.length)?null:(0,b.jsx)("nav",{className:"hidden lg:block w-full ml-12",children:(0,b.jsxs)("div",{className:"relative pl-6 border-l border-neutral-200",children:[(0,b.jsx)("h4",{className:"text-xs md:text-sm font-bold uppercase tracking-[0.2em] text-text-primary/70 mb-6",children:"de"===g?"Inhalt":"Table of Contents"}),(0,b.jsx)("ul",{className:"space-y-4",children:a.map(a=>(0,b.jsxs)("li",{style:{paddingLeft:`${(a.level-2)*1}rem`},className:"relative",children:[h===a.id&&(0,b.jsx)("div",{className:"absolute -left-[25px] top-0 w-[2px] h-full bg-primary transition-all duration-300"}),(0,b.jsx)("a",{href:`#${a.id}`,className:(0,d.cn)("text-sm md:text-base transition-all duration-300 hover:text-primary block leading-snug",h===a.id?"text-primary font-bold translate-x-1":"text-text-secondary font-medium hover:translate-x-1"),onClick:b=>{b.preventDefault();let c=document.getElementById(a.id);if(c){j(f.AnalyticsEvents.TOC_CLICK,{heading_id:a.id,heading_text:a.text,location:"blog_sidebar"});let b=c.getBoundingClientRect().top+window.pageYOffset+-100;window.scrollTo({top:b,behavior:"smooth"})}},children:a.text.replace(/\*\*(.*?)\*\*/g,"$1")})]},a.id))})]})})}a.s(["default",()=>g])},679329,a=>{"use strict";var b=a.i(150765),c=a.i(274209),d=a.i(281682);function e({title:a,slug:e,category:f,readingTime:g}){let{trackEvent:h}=(0,c.useAnalytics)();return(0,b.useEffect)(()=>{h(d.AnalyticsEvents.BLOG_POST_VIEW,{title:a,slug:e,category:f,estimated_reading_time:g,location:"blog_post_pdp"});let b=Date.now();return()=>{let c=Math.round((Date.now()-b)/1e3);h("blog_dwell_time",{title:a,slug:e,seconds:c,reading_time_completion:Math.min(100,Math.round(c/(60*g)*100))})}},[a,e,f,g,h]),null}a.s(["default",()=>e])},163041,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__a965d2a8._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js"].map(b=>a.l(b))).then(()=>b(17814)))}]; +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="444399ca-aa81-f3e3-3e63-3e6d608aaeed")}catch(e){}}(); +module.exports=[324725,(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"))},64293,(a,b,c)=>{b.exports=a.x("pino-2e79642258e38174",()=>require("pino-2e79642258e38174"))},274209,281682,a=>{"use strict";var b=a.i(150765),c=a.i(475625);function d(){let a=(0,c.getAppServices)();return{trackEvent:(0,b.useCallback)((b,c)=>{a.analytics.track(b,c)},[a]),trackPageview:(0,b.useCallback)(b=>{a.analytics.trackPageview(b)},[a])}}a.s(["useAnalytics",()=>d],274209),a.s(["AnalyticsEvents",0,{PAGE_VIEW:"pageview",PAGE_SCROLL:"page_scroll",PAGE_EXIT:"page_exit",SCROLL_DEPTH:"scroll_depth",BUTTON_CLICK:"button_click",LINK_CLICK:"link_click",FORM_SUBMIT:"form_submit",FORM_START:"form_start",FORM_ERROR:"form_error",FORM_FIELD_FOCUS:"form_field_focus",PRODUCT_VIEW:"product_view",PRODUCT_ADD_TO_CART:"product_add_to_cart",PRODUCT_REMOVE_FROM_CART:"product_remove_from_cart",PRODUCT_PURCHASE:"product_purchase",PRODUCT_WISHLIST_ADD:"product_wishlist_add",PRODUCT_WISHLIST_REMOVE:"product_wishlist_remove",PRODUCT_TAB_SWITCH:"product_tab_switch",SEARCH:"search",FILTER_APPLY:"filter_apply",FILTER_CLEAR:"filter_clear",USER_SIGNUP:"user_signup",USER_LOGIN:"user_login",USER_LOGOUT:"user_logout",USER_PROFILE_UPDATE:"user_profile_update",BLOG_POST_VIEW:"blog_post_view",VIDEO_PLAY:"video_play",VIDEO_PAUSE:"video_pause",VIDEO_COMPLETE:"video_complete",DOWNLOAD:"download",MODAL_OPEN:"modal_open",MODAL_CLOSE:"modal_close",TOGGLE_SWITCH:"toggle_switch",ACCORDION_TOGGLE:"accordion_toggle",TAB_SWITCH:"tab_switch",TOC_CLICK:"toc_click",ERROR:"error",PERFORMANCE:"performance",API_ERROR:"api_error",API_SUCCESS:"api_success",QUOTE_REQUEST:"quote_request",CONTACT_FORM_SUBMIT:"contact_form_submit",NEWSLETTER_SUBSCRIBE:"newsletter_subscribe",BROCHURE_DOWNLOAD:"brochure_download"}],281682)},762771,a=>{"use strict";var b=a.i(526156),c=a.i(150765),d=a.i(829091),e=a.i(274209),f=a.i(281682);function g({headings:a,locale:g}){let[h,i]=(0,c.useState)(""),{trackEvent:j}=(0,e.useAnalytics)();return((0,c.useEffect)(()=>{let b=new IntersectionObserver(a=>{a.forEach(a=>{a.isIntersecting&&i(a.target.id)})},{rootMargin:"-10% 0% -70% 0%",threshold:0}),c=setTimeout(()=>{a.map(a=>document.getElementById(a.id)).forEach(a=>{a&&b.observe(a)})},500);return()=>{clearTimeout(c),b.disconnect()}},[a]),0===a.length)?null:(0,b.jsx)("nav",{className:"hidden lg:block w-full ml-12",children:(0,b.jsxs)("div",{className:"relative pl-6 border-l border-neutral-200",children:[(0,b.jsx)("h4",{className:"text-xs md:text-sm font-bold uppercase tracking-[0.2em] text-text-primary/70 mb-6",children:"de"===g?"Inhalt":"Table of Contents"}),(0,b.jsx)("ul",{className:"space-y-4",children:a.map(a=>(0,b.jsxs)("li",{style:{paddingLeft:`${(a.level-2)*1}rem`},className:"relative",children:[h===a.id&&(0,b.jsx)("div",{className:"absolute -left-[25px] top-0 w-[2px] h-full bg-primary transition-all duration-300"}),(0,b.jsx)("a",{href:`#${a.id}`,className:(0,d.cn)("text-sm md:text-base transition-all duration-300 hover:text-primary block leading-snug",h===a.id?"text-primary font-bold translate-x-1":"text-text-secondary font-medium hover:translate-x-1"),onClick:b=>{b.preventDefault();let c=document.getElementById(a.id);if(c){j(f.AnalyticsEvents.TOC_CLICK,{heading_id:a.id,heading_text:a.text,location:"blog_sidebar"});let b=c.getBoundingClientRect().top+window.pageYOffset+-100;window.scrollTo({top:b,behavior:"smooth"})}},children:a.text.replace(/\*\*(.*?)\*\*/g,"$1")})]},a.id))})]})})}a.s(["default",()=>g])},679329,a=>{"use strict";var b=a.i(150765),c=a.i(274209),d=a.i(281682);function e({title:a,slug:e,category:f,readingTime:g}){let{trackEvent:h}=(0,c.useAnalytics)();return(0,b.useEffect)(()=>{h(d.AnalyticsEvents.BLOG_POST_VIEW,{title:a,slug:e,category:f,estimated_reading_time:g,location:"blog_post_pdp"});let b=Date.now();return()=>{let c=Math.round((Date.now()-b)/1e3);h("blog_dwell_time",{title:a,slug:e,seconds:c,reading_time_completion:Math.min(100,Math.round(c/(60*g)*100))})}},[a,e,f,g,h]),null}a.s(["default",()=>e])},163041,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__cf9f2fa5._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js"].map(b=>a.l(b))).then(()=>b(17814)))}]; -//# debugId=eddf81a4-faae-db8c-d575-f61aed717606 -//# sourceMappingURL=%5Broot-of-the-server%5D__3b46c561._.js.map \ No newline at end of file +//# debugId=444399ca-aa81-f3e3-3e63-3e6d608aaeed +//# sourceMappingURL=%5Broot-of-the-server%5D__4f559f29._.js.map \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__3b46c561._.js.map b/.next/server/chunks/ssr/[root-of-the-server]__4f559f29._.js.map similarity index 99% rename from .next/server/chunks/ssr/[root-of-the-server]__3b46c561._.js.map rename to .next/server/chunks/ssr/[root-of-the-server]__4f559f29._.js.map index df8562058..1aa08381c 100644 --- a/.next/server/chunks/ssr/[root-of-the-server]__3b46c561._.js.map +++ b/.next/server/chunks/ssr/[root-of-the-server]__4f559f29._.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": [], - "debugId": "eddf81a4-faae-db8c-d575-f61aed717606", + "debugId": "444399ca-aa81-f3e3-3e63-3e6d608aaeed", "sections": [ {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["../../../../components/analytics/useAnalytics.ts","../../../../components/analytics/analytics-events.ts","../../../../components/blog/TableOfContents.tsx","../../../../components/analytics/BlogEngagementTracker.tsx"],"sourcesContent":["'use client';\n\nimport { useCallback } from 'react';\nimport { getAppServices } from '@/lib/services/create-services';\nimport type { AnalyticsEventProperties } from '@/lib/services/analytics/analytics-service';\n\n/**\n * Custom hook for tracking analytics events with Umami.\n * \n * Provides a convenient way to track custom events throughout your application.\n * \n * @example\n * ```tsx\n * import { useAnalytics } from '@/components/analytics/useAnalytics';\n * \n * function MyComponent() {\n * const { trackEvent, trackPageview } = useAnalytics();\n * \n * const handleButtonClick = () => {\n * trackEvent('button_click', {\n * button_id: 'cta-primary',\n * page: 'homepage'\n * });\n * };\n * \n * return ;\n * }\n * ```\n * \n * @example\n * ```tsx\n * // Track a custom pageview\n * const { trackPageview } = useAnalytics();\n * trackPageview('/custom-path?param=value');\n * ```\n */\nexport function useAnalytics() {\n const services = getAppServices();\n\n /**\n * Track a custom event with optional properties.\n * \n * @param eventName - The name of the event to track\n * @param properties - Optional event properties (metadata)\n */\n const trackEvent = useCallback(\n (eventName: string, properties?: AnalyticsEventProperties) => {\n services.analytics.track(eventName, properties);\n \n if (process.env.NODE_ENV === 'development') {\n console.log('[Umami] Tracked event:', eventName, properties);\n }\n },\n [services]\n );\n\n /**\n * Track a pageview (useful for custom navigation or SPA routing).\n * \n * @param url - The URL to track (defaults to current location)\n */\n const trackPageview = useCallback(\n (url?: string) => {\n services.analytics.trackPageview(url);\n \n if (process.env.NODE_ENV === 'development') {\n console.log('[Umami] Tracked pageview:', url ?? 'current location');\n }\n },\n [services]\n );\n\n return {\n trackEvent,\n trackPageview,\n };\n}\n","/**\n * Analytics Events Utility\n *\n * Centralized definitions for common analytics events and their properties.\n * This helps maintain consistency across the application and makes it easier\n * to track meaningful events.\n *\n * @example\n * ```tsx\n * import { useAnalytics } from '@/components/analytics/useAnalytics';\n * import { AnalyticsEvents } from '@/components/analytics/analytics-events';\n *\n * function ProductPage() {\n * const { trackEvent } = useAnalytics();\n *\n * const handleAddToCart = (productId: string, productName: string) => {\n * trackEvent(AnalyticsEvents.PRODUCT_ADD_TO_CART, {\n * product_id: productId,\n * product_name: productName,\n * page: 'product-detail'\n * });\n * };\n *\n * return ;\n * }\n * ```\n */\n\nexport const AnalyticsEvents = {\n // Page & Navigation Events\n PAGE_VIEW: 'pageview',\n PAGE_SCROLL: 'page_scroll',\n PAGE_EXIT: 'page_exit',\n SCROLL_DEPTH: 'scroll_depth',\n\n // User Interaction Events\n BUTTON_CLICK: 'button_click',\n LINK_CLICK: 'link_click',\n FORM_SUBMIT: 'form_submit',\n FORM_START: 'form_start',\n FORM_ERROR: 'form_error',\n FORM_FIELD_FOCUS: 'form_field_focus',\n\n // E-commerce Events\n PRODUCT_VIEW: 'product_view',\n PRODUCT_ADD_TO_CART: 'product_add_to_cart',\n PRODUCT_REMOVE_FROM_CART: 'product_remove_from_cart',\n PRODUCT_PURCHASE: 'product_purchase',\n PRODUCT_WISHLIST_ADD: 'product_wishlist_add',\n PRODUCT_WISHLIST_REMOVE: 'product_wishlist_remove',\n PRODUCT_TAB_SWITCH: 'product_tab_switch',\n\n // Search & Filter Events\n SEARCH: 'search',\n FILTER_APPLY: 'filter_apply',\n FILTER_CLEAR: 'filter_clear',\n\n // User Account Events\n USER_SIGNUP: 'user_signup',\n USER_LOGIN: 'user_login',\n USER_LOGOUT: 'user_logout',\n USER_PROFILE_UPDATE: 'user_profile_update',\n\n // Content Events\n BLOG_POST_VIEW: 'blog_post_view',\n VIDEO_PLAY: 'video_play',\n VIDEO_PAUSE: 'video_pause',\n VIDEO_COMPLETE: 'video_complete',\n DOWNLOAD: 'download',\n\n // UI Interaction Events\n MODAL_OPEN: 'modal_open',\n MODAL_CLOSE: 'modal_close',\n TOGGLE_SWITCH: 'toggle_switch',\n ACCORDION_TOGGLE: 'accordion_toggle',\n TAB_SWITCH: 'tab_switch',\n TOC_CLICK: 'toc_click',\n\n // Error & Performance Events\n ERROR: 'error',\n PERFORMANCE: 'performance',\n API_ERROR: 'api_error',\n API_SUCCESS: 'api_success',\n\n // Custom Business Events\n QUOTE_REQUEST: 'quote_request',\n CONTACT_FORM_SUBMIT: 'contact_form_submit',\n NEWSLETTER_SUBSCRIBE: 'newsletter_subscribe',\n BROCHURE_DOWNLOAD: 'brochure_download',\n} as const;\n\n/**\n * Type-safe event properties for common events\n */\nexport type AnalyticsEventName = (typeof AnalyticsEvents)[keyof typeof AnalyticsEvents];\n\n/**\n * Common event property helpers\n */\nexport const AnalyticsEventProperties = {\n /**\n * Create properties for a product event\n */\n product: (productId: string, productName: string, category?: string) => ({\n product_id: productId,\n product_name: productName,\n product_category: category,\n }),\n\n /**\n * Create properties for a form event\n */\n form: (formId: string, formName: string, fields?: Record) => ({\n form_id: formId,\n form_name: formName,\n form_fields: fields,\n }),\n\n /**\n * Create properties for a search event\n */\n search: (query: string, filters?: Record) => ({\n search_query: query,\n search_filters: filters,\n }),\n\n /**\n * Create properties for a navigation event\n */\n navigation: (from: string, to: string) => ({\n from_page: from,\n to_page: to,\n }),\n} as const;\n","'use client';\n\nimport React, { useEffect, useState } from 'react';\nimport { cn } from '@/components/ui/utils';\nimport { useAnalytics } from '../analytics/useAnalytics';\nimport { AnalyticsEvents } from '../analytics/analytics-events';\n\ninterface TocItem {\n id: string;\n text: string;\n level: number;\n}\n\ninterface TableOfContentsProps {\n headings: TocItem[];\n locale: string;\n}\n\nexport default function TableOfContents({ headings, locale }: TableOfContentsProps) {\n const [activeId, setActiveId] = useState('');\n const { trackEvent } = useAnalytics();\n\n useEffect(() => {\n const observerOptions = {\n rootMargin: '-10% 0% -70% 0%',\n threshold: 0,\n };\n\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n setActiveId(entry.target.id);\n }\n });\n }, observerOptions);\n\n // Use a small delay to ensure MDX content is rendered and IDs are present\n const timer = setTimeout(() => {\n const elements = headings.map((h) => document.getElementById(h.id));\n elements.forEach((el) => {\n if (el) observer.observe(el);\n });\n }, 500);\n\n return () => {\n clearTimeout(timer);\n observer.disconnect();\n };\n }, [headings]);\n\n if (headings.length === 0) return null;\n\n return (\n \n );\n}\n","'use client';\n\nimport { useEffect } from 'react';\nimport { useAnalytics } from './useAnalytics';\nimport { AnalyticsEvents } from './analytics-events';\n\ninterface BlogEngagementTrackerProps {\n title: string;\n slug: string;\n category?: string;\n readingTime: number;\n}\n\n/**\n * BlogEngagementTracker\n * Tracks reading time and article completion.\n */\nexport default function BlogEngagementTracker({\n title,\n slug,\n category,\n readingTime,\n}: BlogEngagementTrackerProps) {\n const { trackEvent } = useAnalytics();\n\n useEffect(() => {\n // Article start\n trackEvent(AnalyticsEvents.BLOG_POST_VIEW, {\n title,\n slug,\n category,\n estimated_reading_time: readingTime,\n location: 'blog_post_pdp',\n });\n\n const startTime = Date.now();\n\n return () => {\n const dwellTime = Math.round((Date.now() - startTime) / 1000);\n\n // We only consider it a \"read\" if they stay a reasonable amount of time\n // or if they scroll (covered by ScrollDepthTracker)\n trackEvent('blog_dwell_time', {\n title,\n slug,\n seconds: dwellTime,\n reading_time_completion: Math.min(100, Math.round((dwellTime / (readingTime * 60)) * 100)),\n });\n };\n }, [title, slug, category, readingTime, trackEvent]);\n\n return null;\n}\n"],"names":[],"mappings":"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"}}] } \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__515fce6c._.js b/.next/server/chunks/ssr/[root-of-the-server]__515fce6c._.js new file mode 100644 index 000000000..b2a221b6c --- /dev/null +++ b/.next/server/chunks/ssr/[root-of-the-server]__515fce6c._.js @@ -0,0 +1,5 @@ +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="4cc68a43-210c-06a5-31e7-cc9bb07c50eb")}catch(e){}}(); +module.exports=[324725,(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"))},64293,(a,b,c)=>{b.exports=a.x("pino-2e79642258e38174",()=>require("pino-2e79642258e38174"))},274209,281682,a=>{"use strict";var b=a.i(150765),c=a.i(475625);function d(){let a=(0,c.getAppServices)();return{trackEvent:(0,b.useCallback)((b,c)=>{a.analytics.track(b,c)},[a]),trackPageview:(0,b.useCallback)(b=>{a.analytics.trackPageview(b)},[a])}}a.s(["useAnalytics",()=>d],274209),a.s(["AnalyticsEvents",0,{PAGE_VIEW:"pageview",PAGE_SCROLL:"page_scroll",PAGE_EXIT:"page_exit",SCROLL_DEPTH:"scroll_depth",BUTTON_CLICK:"button_click",LINK_CLICK:"link_click",FORM_SUBMIT:"form_submit",FORM_START:"form_start",FORM_ERROR:"form_error",FORM_FIELD_FOCUS:"form_field_focus",PRODUCT_VIEW:"product_view",PRODUCT_ADD_TO_CART:"product_add_to_cart",PRODUCT_REMOVE_FROM_CART:"product_remove_from_cart",PRODUCT_PURCHASE:"product_purchase",PRODUCT_WISHLIST_ADD:"product_wishlist_add",PRODUCT_WISHLIST_REMOVE:"product_wishlist_remove",PRODUCT_TAB_SWITCH:"product_tab_switch",SEARCH:"search",FILTER_APPLY:"filter_apply",FILTER_CLEAR:"filter_clear",USER_SIGNUP:"user_signup",USER_LOGIN:"user_login",USER_LOGOUT:"user_logout",USER_PROFILE_UPDATE:"user_profile_update",BLOG_POST_VIEW:"blog_post_view",VIDEO_PLAY:"video_play",VIDEO_PAUSE:"video_pause",VIDEO_COMPLETE:"video_complete",DOWNLOAD:"download",MODAL_OPEN:"modal_open",MODAL_CLOSE:"modal_close",TOGGLE_SWITCH:"toggle_switch",ACCORDION_TOGGLE:"accordion_toggle",TAB_SWITCH:"tab_switch",TOC_CLICK:"toc_click",ERROR:"error",PERFORMANCE:"performance",API_ERROR:"api_error",API_SUCCESS:"api_success",QUOTE_REQUEST:"quote_request",CONTACT_FORM_SUBMIT:"contact_form_submit",NEWSLETTER_SUBSCRIBE:"newsletter_subscribe",BROCHURE_DOWNLOAD:"brochure_download"}],281682)},163041,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__0acb6d60._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js"].map(b=>a.l(b))).then(()=>b(17814)))}]; + +//# debugId=4cc68a43-210c-06a5-31e7-cc9bb07c50eb +//# sourceMappingURL=%5Broot-of-the-server%5D__515fce6c._.js.map \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__515fce6c._.js.map b/.next/server/chunks/ssr/[root-of-the-server]__515fce6c._.js.map new file mode 100644 index 000000000..adee6e0bf --- /dev/null +++ b/.next/server/chunks/ssr/[root-of-the-server]__515fce6c._.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": [], + "debugId": "4cc68a43-210c-06a5-31e7-cc9bb07c50eb", + "sections": [ + {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["../../../../components/analytics/useAnalytics.ts","../../../../components/analytics/analytics-events.ts"],"sourcesContent":["'use client';\n\nimport { useCallback } from 'react';\nimport { getAppServices } from '@/lib/services/create-services';\nimport type { AnalyticsEventProperties } from '@/lib/services/analytics/analytics-service';\n\n/**\n * Custom hook for tracking analytics events with Umami.\n * \n * Provides a convenient way to track custom events throughout your application.\n * \n * @example\n * ```tsx\n * import { useAnalytics } from '@/components/analytics/useAnalytics';\n * \n * function MyComponent() {\n * const { trackEvent, trackPageview } = useAnalytics();\n * \n * const handleButtonClick = () => {\n * trackEvent('button_click', {\n * button_id: 'cta-primary',\n * page: 'homepage'\n * });\n * };\n * \n * return ;\n * }\n * ```\n * \n * @example\n * ```tsx\n * // Track a custom pageview\n * const { trackPageview } = useAnalytics();\n * trackPageview('/custom-path?param=value');\n * ```\n */\nexport function useAnalytics() {\n const services = getAppServices();\n\n /**\n * Track a custom event with optional properties.\n * \n * @param eventName - The name of the event to track\n * @param properties - Optional event properties (metadata)\n */\n const trackEvent = useCallback(\n (eventName: string, properties?: AnalyticsEventProperties) => {\n services.analytics.track(eventName, properties);\n \n if (process.env.NODE_ENV === 'development') {\n console.log('[Umami] Tracked event:', eventName, properties);\n }\n },\n [services]\n );\n\n /**\n * Track a pageview (useful for custom navigation or SPA routing).\n * \n * @param url - The URL to track (defaults to current location)\n */\n const trackPageview = useCallback(\n (url?: string) => {\n services.analytics.trackPageview(url);\n \n if (process.env.NODE_ENV === 'development') {\n console.log('[Umami] Tracked pageview:', url ?? 'current location');\n }\n },\n [services]\n );\n\n return {\n trackEvent,\n trackPageview,\n };\n}\n","/**\n * Analytics Events Utility\n *\n * Centralized definitions for common analytics events and their properties.\n * This helps maintain consistency across the application and makes it easier\n * to track meaningful events.\n *\n * @example\n * ```tsx\n * import { useAnalytics } from '@/components/analytics/useAnalytics';\n * import { AnalyticsEvents } from '@/components/analytics/analytics-events';\n *\n * function ProductPage() {\n * const { trackEvent } = useAnalytics();\n *\n * const handleAddToCart = (productId: string, productName: string) => {\n * trackEvent(AnalyticsEvents.PRODUCT_ADD_TO_CART, {\n * product_id: productId,\n * product_name: productName,\n * page: 'product-detail'\n * });\n * };\n *\n * return ;\n * }\n * ```\n */\n\nexport const AnalyticsEvents = {\n // Page & Navigation Events\n PAGE_VIEW: 'pageview',\n PAGE_SCROLL: 'page_scroll',\n PAGE_EXIT: 'page_exit',\n SCROLL_DEPTH: 'scroll_depth',\n\n // User Interaction Events\n BUTTON_CLICK: 'button_click',\n LINK_CLICK: 'link_click',\n FORM_SUBMIT: 'form_submit',\n FORM_START: 'form_start',\n FORM_ERROR: 'form_error',\n FORM_FIELD_FOCUS: 'form_field_focus',\n\n // E-commerce Events\n PRODUCT_VIEW: 'product_view',\n PRODUCT_ADD_TO_CART: 'product_add_to_cart',\n PRODUCT_REMOVE_FROM_CART: 'product_remove_from_cart',\n PRODUCT_PURCHASE: 'product_purchase',\n PRODUCT_WISHLIST_ADD: 'product_wishlist_add',\n PRODUCT_WISHLIST_REMOVE: 'product_wishlist_remove',\n PRODUCT_TAB_SWITCH: 'product_tab_switch',\n\n // Search & Filter Events\n SEARCH: 'search',\n FILTER_APPLY: 'filter_apply',\n FILTER_CLEAR: 'filter_clear',\n\n // User Account Events\n USER_SIGNUP: 'user_signup',\n USER_LOGIN: 'user_login',\n USER_LOGOUT: 'user_logout',\n USER_PROFILE_UPDATE: 'user_profile_update',\n\n // Content Events\n BLOG_POST_VIEW: 'blog_post_view',\n VIDEO_PLAY: 'video_play',\n VIDEO_PAUSE: 'video_pause',\n VIDEO_COMPLETE: 'video_complete',\n DOWNLOAD: 'download',\n\n // UI Interaction Events\n MODAL_OPEN: 'modal_open',\n MODAL_CLOSE: 'modal_close',\n TOGGLE_SWITCH: 'toggle_switch',\n ACCORDION_TOGGLE: 'accordion_toggle',\n TAB_SWITCH: 'tab_switch',\n TOC_CLICK: 'toc_click',\n\n // Error & Performance Events\n ERROR: 'error',\n PERFORMANCE: 'performance',\n API_ERROR: 'api_error',\n API_SUCCESS: 'api_success',\n\n // Custom Business Events\n QUOTE_REQUEST: 'quote_request',\n CONTACT_FORM_SUBMIT: 'contact_form_submit',\n NEWSLETTER_SUBSCRIBE: 'newsletter_subscribe',\n BROCHURE_DOWNLOAD: 'brochure_download',\n} as const;\n\n/**\n * Type-safe event properties for common events\n */\nexport type AnalyticsEventName = (typeof AnalyticsEvents)[keyof typeof AnalyticsEvents];\n\n/**\n * Common event property helpers\n */\nexport const AnalyticsEventProperties = {\n /**\n * Create properties for a product event\n */\n product: (productId: string, productName: string, category?: string) => ({\n product_id: productId,\n product_name: productName,\n product_category: category,\n }),\n\n /**\n * Create properties for a form event\n */\n form: (formId: string, formName: string, fields?: Record) => ({\n form_id: formId,\n form_name: formName,\n form_fields: fields,\n }),\n\n /**\n * Create properties for a search event\n */\n search: (query: string, filters?: Record) => ({\n search_query: query,\n search_filters: filters,\n }),\n\n /**\n * Create properties for a navigation event\n */\n navigation: (from: string, to: string) => ({\n from_page: from,\n to_page: to,\n }),\n} as const;\n"],"names":[],"mappings":"gUAEA,IAAA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QAiCO,SAAS,IACd,IAAM,EAAW,CAAA,EAAA,EAAA,cAAA,AAAc,IAmC/B,MAAO,CACL,WA5BiB,CAAA,EAAA,EAAA,WAAA,AAAW,EAC5B,CAAC,EAAmB,KAClB,EAAS,SAAS,CAAC,KAAK,CAAC,EAAW,EAKtC,EACA,CAAC,EAAS,EAqBV,cAboB,CAAA,EAAA,EAAA,WAAA,AAAW,EAC9B,AAAD,IACE,EAAS,SAAS,CAAC,aAAa,CAAC,EAKnC,EACA,CAAC,EAAS,CAMZ,CACF,6DChD+B,CAE7B,UAAW,WACX,YAAa,cACb,UAAW,YACX,aAAc,eAGd,aAAc,eACd,WAAY,aACZ,YAAa,cACb,WAAY,aACZ,WAAY,aACZ,iBAAkB,mBAGlB,aAAc,eACd,oBAAqB,sBACrB,yBAA0B,2BAC1B,iBAAkB,mBAClB,qBAAsB,uBACtB,wBAAyB,0BACzB,mBAAoB,qBAGpB,OAAQ,SACR,aAAc,eACd,aAAc,eAGd,YAAa,cACb,WAAY,aACZ,YAAa,cACb,oBAAqB,sBAGrB,eAAgB,iBAChB,WAAY,aACZ,YAAa,cACb,eAAgB,iBAChB,SAAU,WAGV,WAAY,aACZ,YAAa,cACb,cAAe,gBACf,iBAAkB,mBAClB,WAAY,aACZ,UAAW,YAGX,MAAO,QACP,YAAa,cACb,UAAW,YACX,YAAa,cAGb,cAAe,gBACf,oBAAqB,sBACrB,qBAAsB,uBACtB,kBAAmB,mBACrB"}}] +} \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__6bb30663._.js b/.next/server/chunks/ssr/[root-of-the-server]__5209d0e9._.js similarity index 99% rename from .next/server/chunks/ssr/[root-of-the-server]__6bb30663._.js rename to .next/server/chunks/ssr/[root-of-the-server]__5209d0e9._.js index 377f3cb72..aea53685f 100644 --- a/.next/server/chunks/ssr/[root-of-the-server]__6bb30663._.js +++ b/.next/server/chunks/ssr/[root-of-the-server]__5209d0e9._.js @@ -2,4 +2,4 @@ module.exports=[605365,(a,b,c)=>{b.exports=a.x("process",()=>require("process"))},410430,(a,b,c)=>{b.exports=a.x("async_hooks",()=>require("async_hooks"))},792509,(a,b,c)=>{b.exports=a.x("url",()=>require("url"))},427699,(a,b,c)=>{b.exports=a.x("events",()=>require("events"))},81111,(a,b,c)=>{b.exports=a.x("node:stream",()=>require("node:stream"))},446786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},224361,(a,b,c)=>{b.exports=a.x("util",()=>require("util"))},814747,(a,b,c)=>{b.exports=a.x("path",()=>require("path"))},522734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},233405,(a,b,c)=>{b.exports=a.x("child_process",()=>require("child_process"))},254799,(a,b,c)=>{b.exports=a.x("crypto",()=>require("crypto"))},362562,(a,b,c)=>{b.exports=a.x("module",()=>require("module"))},156823,(a,b,c)=>{b.exports=a.x("require-in-the-middle-a99415fa67232f7f",()=>require("require-in-the-middle-a99415fa67232f7f"))},285512,(a,b,c)=>{b.exports=a.x("import-in-the-middle-138cd032e4b029f3",()=>require("import-in-the-middle-138cd032e4b029f3"))},677652,(a,b,c)=>{b.exports=a.x("node:diagnostics_channel",()=>require("node:diagnostics_channel"))},687769,(a,b,c)=>{b.exports=a.x("node:events",()=>require("node:events"))},154993,(a,b,c)=>{b.exports=a.x("diagnostics_channel",()=>require("diagnostics_channel"))},874533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},902157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},812057,(a,b,c)=>{b.exports=a.x("node:util",()=>require("node:util"))},601457,(a,b,c)=>{b.exports=a.x("node:readline",()=>require("node:readline"))},925127,(a,b,c)=>{b.exports=a.x("node:worker_threads",()=>require("node:worker_threads"))},37702,(a,b,c)=>{b.exports=a.x("worker_threads",()=>require("worker_threads"))},347299,(a,b,c)=>{b.exports=a.x("node:http",()=>require("node:http"))},743698,(a,b,c)=>{b.exports=a.x("node:https",()=>require("node:https"))},727028,(a,b,c)=>{b.exports=a.x("node:zlib",()=>require("node:zlib"))},761095,(a,b,c)=>{b.exports=a.x("node:net",()=>require("node:net"))},685560,(a,b,c)=>{b.exports=a.x("node:tls",()=>require("node:tls"))},60438,(a,b,c)=>{b.exports=a.x("perf_hooks",()=>require("perf_hooks"))},74667,(a,b,c)=>{b.exports=a.x("import-in-the-middle-6ecbfda1283b1532",()=>require("import-in-the-middle-6ecbfda1283b1532"))},989801,a=>{a.v({name:"@fastify/otel",version:"0.18.0",description:"Official Fastify OpenTelemetry Instrumentation",main:"index.js",type:"commonjs",types:"types/index.d.ts",scripts:{lint:"eslint","lint:fix":"eslint --fix",test:"npm run test:all && npm run test:typescript","test:unit":"c8 --100 node --test","test:all":"npm run test:v4 && npm run test:v5","test:v4":"cross-env FASTIFY_VERSION=fastifyv4 npm run test:unit","test:v5":"cross-env FASTIFY_VERSION=fastify npm run test:unit","test:coverage":"c8 node --test && c8 report --reporter=html","test:typescript":"tsd"},repository:{type:"git",url:"git+https://github.com/fastify/otel.git"},keywords:["plugin","helper","fastify","instrumentation","otel","opentelemetry"],author:"Carlos Fuentes - @metcoder95 (https://metcoder.dev)",license:"MIT",bugs:{url:"https://github.com/fastify/otel/issues"},homepage:"https://github.com/fastify/otel#readme",funding:[{type:"github",url:"https://github.com/sponsors/fastify"},{type:"opencollective",url:"https://opencollective.com/fastify"}],devDependencies:{"@fastify/type-provider-typebox":"^6.1.0","@opentelemetry/context-async-hooks":"^2.0.0","@opentelemetry/contrib-test-utils":"^0.59.0","@opentelemetry/instrumentation-http":"^0.212.0","@opentelemetry/propagator-jaeger":"^2.0.0","@opentelemetry/sdk-trace-base":"^2.0.0","@opentelemetry/sdk-trace-node":"^2.2.0","@types/node":"^25.0.3",c8:"^11.0.0","cross-env":"^10.0.0",eslint:"^9.16.0",fastify:"^5.1.0","fastify-plugin":"^5.1.0",fastifyv4:"npm:fastify@^4.0.0",neostandard:"^0.12.0",tsd:"^0.33.0"},dependencies:{"@opentelemetry/core":"^2.0.0","@opentelemetry/instrumentation":"^0.212.0","@opentelemetry/semantic-conventions":"^1.28.0",minimatch:"^10.2.4"},peerDependencies:{"@opentelemetry/api":"^1.9.0"},tsd:{directory:"types"}})},385603,750470,70226,563305,a=>{"use strict";var b,c;let d="1.9.1",e=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/,f=function(a){let b=new Set([a]),c=new Set,d=a.match(e);if(!d)return()=>!1;let f={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=f.prerelease)return function(b){return b===a};function g(a){return c.add(a),!1}return function(a){if(b.has(a))return!0;if(c.has(a))return!1;let d=a.match(e);if(!d)return g(a);let h={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=h.prerelease||f.major!==h.major)return g(a);if(0===f.major)return f.minor===h.minor&&f.patch<=h.patch?(b.add(a),!0):g(a);return f.minor<=h.minor?(b.add(a),!0):g(a)}}(d),g=d.split(".")[0],h=Symbol.for(`opentelemetry.js.api.${g}`),i="object"==typeof globalThis?globalThis:"object"==typeof self?self:a.g;function j(a,b,c,e=!1){var f;let g=i[h]=null!=(f=i[h])?f:{version:d};if(!e&&g[a]){let b=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${a}`);return c.error(b.stack||b.message),!1}if(g.version!==d){let b=Error(`@opentelemetry/api: Registration of version v${g.version} for ${a} does not match previously registered API v${d}`);return c.error(b.stack||b.message),!1}return g[a]=b,c.debug(`@opentelemetry/api: Registered a global for ${a} v${d}.`),!0}function k(a){var b,c;let d=null==(b=i[h])?void 0:b.version;if(d&&f(d))return null==(c=i[h])?void 0:c[a]}function l(a,b){b.debug(`@opentelemetry/api: Unregistering a global for ${a} v${d}.`);let c=i[h];c&&delete c[a]}a.s(["getGlobal",()=>k,"registerGlobal",()=>j,"unregisterGlobal",()=>l],750470);class m{constructor(a){this._namespace=a.namespace||"DiagComponentLogger"}debug(...a){return n("debug",this._namespace,a)}error(...a){return n("error",this._namespace,a)}info(...a){return n("info",this._namespace,a)}warn(...a){return n("warn",this._namespace,a)}verbose(...a){return n("verbose",this._namespace,a)}}function n(a,b,c){let d=k("diag");if(d)return d[a](b,...c)}(c=b||(b={}))[c.NONE=0]="NONE",c[c.ERROR=30]="ERROR",c[c.WARN=50]="WARN",c[c.INFO=60]="INFO",c[c.DEBUG=70]="DEBUG",c[c.VERBOSE=80]="VERBOSE",c[c.ALL=9999]="ALL",a.s(["DiagLogLevel",()=>b],70226);class o{static instance(){return this._instance||(this._instance=new o),this._instance}constructor(){function a(a){return function(...b){let c=k("diag");if(c)return c[a](...b)}}const c=this,d=(a,d={logLevel:b.INFO})=>{var e,f,g;if(a===c){let a=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return c.error(null!=(e=a.stack)?e:a.message),!1}"number"==typeof d&&(d={logLevel:d});let h=k("diag"),i=function(a,c){function d(b,d){let e=c[b];return"function"==typeof e&&a>=d?e.bind(c):function(){}}return ab.ALL&&(a=b.ALL),c=c||{},{error:d("error",b.ERROR),warn:d("warn",b.WARN),info:d("info",b.INFO),debug:d("debug",b.DEBUG),verbose:d("verbose",b.VERBOSE)}}(null!=(f=d.logLevel)?f:b.INFO,a);if(h&&!d.suppressOverrideMessage){let a=null!=(g=Error().stack)?g:"";h.warn(`Current logger will be overwritten from ${a}`),i.warn(`Current logger will overwrite one already registered from ${a}`)}return j("diag",i,c,!0)};c.setLogger=d,c.disable=()=>{l("diag",c)},c.createComponentLogger=a=>new m(a),c.verbose=a("verbose"),c.debug=a("debug"),c.info=a("info"),c.warn=a("warn"),c.error=a("error")}}a.s(["DiagAPI",()=>o],563305);let p=o.instance();a.s(["diag",0,p],385603)},234177,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node:inspector_7a4283c6._.js"].map(b=>a.l(b))).then(()=>b(237221)))},872097,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__fbc63b72._.js"].map(b=>a.l(b))).then(()=>b(524177)))},992965,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__9bfda315._.js"].map(b=>a.l(b))).then(()=>b(435235)))},846524,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__9eff91eb._.js"].map(b=>a.l(b))).then(()=>b(20549)))},189011,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__16d71f56._.js"].map(b=>a.l(b))).then(()=>b(800164)))},18291,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules__pnpm_8387bcd6._.js"].map(b=>a.l(b))).then(()=>b(282793)))}]; //# debugId=1d097e8c-f5f5-cac8-209e-99330b741a4f -//# sourceMappingURL=%5Broot-of-the-server%5D__6bb30663._.js.map \ No newline at end of file +//# sourceMappingURL=%5Broot-of-the-server%5D__5209d0e9._.js.map \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__9aa0d618._.js.map b/.next/server/chunks/ssr/[root-of-the-server]__5209d0e9._.js.map similarity index 100% rename from .next/server/chunks/ssr/[root-of-the-server]__9aa0d618._.js.map rename to .next/server/chunks/ssr/[root-of-the-server]__5209d0e9._.js.map diff --git a/.next/server/chunks/ssr/[root-of-the-server]__5bbfddd1._.js b/.next/server/chunks/ssr/[root-of-the-server]__5bbfddd1._.js deleted file mode 100644 index 7567baea0..000000000 --- a/.next/server/chunks/ssr/[root-of-the-server]__5bbfddd1._.js +++ /dev/null @@ -1,5 +0,0 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="2932f4ee-c96c-740a-4542-9165359f85b9")}catch(e){}}(); -module.exports=[324725,(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"))},64293,(a,b,c)=>{b.exports=a.x("pino-2e79642258e38174",()=>require("pino-2e79642258e38174"))},912466,a=>{"use strict";var b=a.i(526156),c=a.i(841757),d=a.i(829091);let e={primary:"bg-primary text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl",secondary:"bg-secondary text-white shadow-md hover:shadow-secondary/30 hover:shadow-2xl",accent:"bg-accent text-primary-dark shadow-md hover:shadow-accent/30 hover:shadow-2xl",saturated:"bg-saturated text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl",outline:"border-2 border-primary bg-transparent text-primary hover:text-white hover:shadow-primary/20 hover:shadow-xl",ghost:"text-primary hover:shadow-lg",white:"bg-white text-primary shadow-md hover:shadow-primary/30 hover:shadow-2xl hover:text-white",destructive:"bg-destructive text-destructive-foreground shadow-md hover:shadow-destructive/30 hover:shadow-2xl"},f={sm:"h-9 px-4 text-sm md:text-base",md:"h-11 px-6 text-base md:text-lg",lg:"h-14 px-5 md:px-8 text-base md:text-lg",xl:"h-16 px-6 md:px-10 text-lg md:text-xl"},g={primary:"bg-primary-dark",secondary:"bg-secondary-light",accent:"bg-accent-dark",saturated:"bg-primary",outline:"bg-primary",ghost:"bg-primary-light/10",white:"bg-primary-light",destructive:"bg-destructive/90"};function h({variant:a="primary"}){return(0,b.jsx)("span",{className:(0,d.cn)("absolute inset-0 translate-y-[101%] group-hover/btn:translate-y-0 transition-transform duration-500 ease-out",g[a])})}function i({className:a,variant:g="primary",size:i="md",href:j,...k}){let l=function(a="primary",b="md",c){return(0,d.cn)("inline-flex items-center justify-center whitespace-nowrap rounded-full font-semibold transition-all duration-500 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none active:scale-95 hover:-translate-y-1 hover:scale-[1.02] relative overflow-hidden group/btn isolate",e[a],f[b],c)}(g,i,a),m=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:(0,d.cn)("relative z-10 flex items-center justify-center gap-2 transition-colors duration-500","white"===g?"group-hover/btn:text-primary-dark":""),children:k.children}),(0,b.jsx)(h,{variant:g})]});return j?(0,b.jsx)(c.default,{href:j,className:l,children:m}):(0,b.jsx)("button",{className:l,...k,children:m})}a.s(["Button",()=>i])},594214,90695,5515,544027,434904,618180,781027,41100,a=>{"use strict";var b=a.i(829091);a.i(912466);var c=a.i(526156);function d({className:a,children:d,...e}){return(0,c.jsx)("section",{className:(0,b.cn)("py-16 md:py-28 lg:py-36 overflow-hidden content-visibility-auto",a),...e,children:d})}function e({className:a,children:d,...e}){return(0,c.jsx)("div",{className:(0,b.cn)("container mx-auto px-4 md:px-12 lg:px-16 max-w-7xl",a),...e,children:d})}function f({level:a=2,children:d,className:e,subtitle:f,align:g="left"}){let h=`h${a}`;return(0,c.jsxs)("div",{className:(0,b.cn)("mb-6 md:mb-12 text-primary",{left:"text-left",center:"text-center mx-auto",right:"text-right"}[g],e),children:[f&&(0,c.jsx)("span",{className:"inline-block text-accent font-bold tracking-widest uppercase text-xs md:text-sm mb-3 md:mb-4 animate-fade-in",children:f}),(0,c.jsx)(h,{className:(0,b.cn)({1:"text-2xl md:text-4xl lg:text-5xl font-bold leading-[1.1] tracking-tight",2:"text-xl md:text-3xl lg:text-4xl font-bold leading-[1.2] tracking-tight",3:"text-lg md:text-2xl lg:text-3xl font-bold leading-[1.3] tracking-tight",4:"text-lg md:text-xl lg:text-2xl font-bold leading-[1.4]",5:"text-base md:text-lg font-bold leading-[1.5]",6:"text-base md:text-lg font-semibold leading-[1.6]"}[a]),children:d})]})}function g({className:a,children:d,tag:e="div",...f}){return(0,c.jsx)(e,{className:(0,b.cn)("premium-card overflow-hidden",a),...f,children:d})}function h({className:a,...d}){return(0,c.jsx)("input",{className:(0,b.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg",a),...d})}function i({className:a,...d}){return(0,c.jsx)("textarea",{className:(0,b.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg resize-none",a),...d})}function j({className:a,...d}){return(0,c.jsx)("label",{className:(0,b.cn)("text-[10px] md:text-xs font-extrabold text-primary uppercase tracking-widest",a),...d})}a.s(["Section",()=>d],90695),a.s(["Container",()=>e],5515),a.s(["Heading",()=>f],544027),a.s(["Card",()=>g],434904),a.s(["Input",()=>h],618180),a.s(["Textarea",()=>i],781027),a.s(["Label",()=>j],41100),a.s([],594214)},991320,a=>{"use strict";var b=a.i(526156);a.i(594214);var c=a.i(829091);function d({variant:a,className:d,color:e="#82ed20"}){return"circle"===a?(0,b.jsx)("svg",{className:(0,c.cn)("absolute pointer-events-none",d),"aria-hidden":"true",viewBox:"0 0 800 350",preserveAspectRatio:"none",children:(0,b.jsx)("path",{className:"animate-draw-stroke",pathLength:"1",style:{strokeDasharray:1,strokeDashoffset:1,animation:"draw-stroke 1.8s ease-in-out 0.5s forwards"},transform:"matrix(0.9791300296783447,0,0,0.9791300296783447,400,179)",strokeLinejoin:"miter",fillOpacity:"0",strokeMiterlimit:"4",stroke:e,strokeOpacity:"1",strokeWidth:"20",d:" M253,-161 C253,-161 -284.78900146484375,-201.4600067138672 -376,-21 C-469,163 67.62300109863281,174.2100067138672 256,121 C564,34 250.82899475097656,-141.6929931640625 19.10700035095215,-116.93599700927734"})}):"underline"===a?(0,b.jsx)("svg",{className:(0,c.cn)("absolute pointer-events-none",d),"aria-hidden":"true",viewBox:"-400 -55 730 60",preserveAspectRatio:"none",children:(0,b.jsx)("path",{className:"animate-draw-stroke",pathLength:"1",style:{strokeDasharray:1,strokeDashoffset:1,animation:"draw-stroke 1.8s ease-in-out 0.5s forwards"},d:"m -383.25 -6 c 55.25 -22 130.75 -33.5 293.25 -38 c 54.5 -0.5 195 -2.5 401 15",stroke:e,strokeWidth:"20",fill:"none"})}):null}a.s(["default",()=>d])},497627,a=>{"use strict";var b=a.i(526156),c=a.i(150765),d=a.i(603836),e=a.i(475625);a.i(594214);var f=a.i(5515),g=a.i(912466),h=a.i(544027),i=a.i(991320);function j({error:a,reset:j}){let k=(0,d.useTranslations)("Error");return(0,c.useEffect)(()=>{if(a?.message?.includes("Failed to find Server Action"))return void window.location.reload();let b=(0,e.getAppServices)();return b.errors.captureException(a),b.logger.error("Application error caught by boundary",{message:a?.message||"Unknown error",stack:a?.stack,digest:a?.digest}),document.body.setAttribute("data-force-solid-header","true"),()=>{document.body.removeAttribute("data-force-solid-header")}},[a]),(0,b.jsx)(b.Fragment,{children:(0,b.jsxs)(f.Container,{className:"relative py-32 mt-16 flex flex-col items-center justify-center text-center min-h-[70vh] overflow-hidden",children:[(0,b.jsx)("div",{className:"absolute inset-0 -z-10 opacity-[0.03] pointer-events-none flex items-center justify-center",children:(0,b.jsx)("span",{className:"text-[20rem] font-bold select-none",children:"500"})}),(0,b.jsxs)("div",{className:"relative mb-8",children:[(0,b.jsx)(h.Heading,{level:1,className:"text-6xl md:text-8xl font-bold mb-2 text-saturated",children:"500"}),(0,b.jsx)(i.default,{variant:"underline",className:"w-full h-6 -bottom-2 left-0 text-saturated/40"})]}),(0,b.jsx)(h.Heading,{level:2,className:"text-2xl md:text-3xl font-bold mb-4 text-primary",children:k("title")}),(0,b.jsx)("p",{className:"text-text-secondary mb-10 max-w-md text-lg mx-auto",children:k("description")}),(0,b.jsxs)("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[(0,b.jsx)(g.Button,{onClick:()=>j(),variant:"saturated",size:"lg",children:k("tryAgain")}),(0,b.jsx)(g.Button,{href:"/",variant:"outline",size:"lg",children:k("goHome")})]}),(0,b.jsx)("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 w-px h-24 bg-gradient-to-b from-saturated/50 to-transparent"})]})})}a.s(["default",()=>j])},163041,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__9aa0d618._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js"].map(b=>a.l(b))).then(()=>b(17814)))}]; - -//# debugId=2932f4ee-c96c-740a-4542-9165359f85b9 -//# sourceMappingURL=%5Broot-of-the-server%5D__5bbfddd1._.js.map \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__5bbfddd1._.js.map b/.next/server/chunks/ssr/[root-of-the-server]__5bbfddd1._.js.map deleted file mode 100644 index 330694902..000000000 --- a/.next/server/chunks/ssr/[root-of-the-server]__5bbfddd1._.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": [], - "debugId": "2932f4ee-c96c-740a-4542-9165359f85b9", - "sections": [ - {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["../../../../components/ui/Button.tsx","../../../../components/ui/index.ts","../../../../components/ui/Section.tsx","../../../../components/ui/Container.tsx","../../../../components/ui/Heading.tsx","../../../../components/ui/Card.tsx","../../../../components/ui/Badge.tsx","../../../../components/ui/Input.tsx","../../../../components/ui/Textarea.tsx","../../../../components/ui/Label.tsx","../../../../components/ui/Callout.tsx","../../../../components/Scribble.tsx","../../../../app/%5Blocale%5D/error.tsx"],"sourcesContent":["import React from 'react';\nimport Link from 'next/link';\nimport { cn } from './utils';\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes {\n variant?:\n | 'primary'\n | 'secondary'\n | 'accent'\n | 'saturated'\n | 'outline'\n | 'ghost'\n | 'white'\n | 'destructive';\n size?: 'sm' | 'md' | 'lg' | 'xl';\n href?: string;\n className?: string;\n children?: React.ReactNode;\n}\n\nexport const buttonBaseStyles =\n 'inline-flex items-center justify-center whitespace-nowrap rounded-full font-semibold transition-all duration-500 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none active:scale-95 hover:-translate-y-1 hover:scale-[1.02] relative overflow-hidden group/btn isolate';\n\nexport const buttonVariantsMap = {\n primary: 'bg-primary text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl',\n secondary: 'bg-secondary text-white shadow-md hover:shadow-secondary/30 hover:shadow-2xl',\n accent: 'bg-accent text-primary-dark shadow-md hover:shadow-accent/30 hover:shadow-2xl',\n saturated: 'bg-saturated text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl',\n outline:\n 'border-2 border-primary bg-transparent text-primary hover:text-white hover:shadow-primary/20 hover:shadow-xl',\n ghost: 'text-primary hover:shadow-lg',\n white:\n 'bg-white text-primary shadow-md hover:shadow-primary/30 hover:shadow-2xl hover:text-white',\n destructive:\n 'bg-destructive text-destructive-foreground shadow-md hover:shadow-destructive/30 hover:shadow-2xl',\n};\n\nexport const buttonSizesMap = {\n sm: 'h-9 px-4 text-sm md:text-base',\n md: 'h-11 px-6 text-base md:text-lg',\n lg: 'h-14 px-5 md:px-8 text-base md:text-lg',\n xl: 'h-16 px-6 md:px-10 text-lg md:text-xl',\n};\n\nexport const buttonOverlayColorsMap = {\n primary: 'bg-primary-dark',\n secondary: 'bg-secondary-light',\n accent: 'bg-accent-dark',\n saturated: 'bg-primary',\n outline: 'bg-primary',\n ghost: 'bg-primary-light/10',\n white: 'bg-primary-light',\n destructive: 'bg-destructive/90',\n};\n\nexport function getButtonClasses(variant: keyof typeof buttonVariantsMap = 'primary', size: keyof typeof buttonSizesMap = 'md', className?: string) {\n return cn(buttonBaseStyles, buttonVariantsMap[variant], buttonSizesMap[size], className);\n}\n\nexport function ButtonOverlay({ variant = 'primary' }: { variant?: keyof typeof buttonVariantsMap }) {\n return (\n \n );\n}\n\nexport function Button({\n className,\n variant = 'primary',\n size = 'md',\n href,\n ...props\n}: ButtonProps) {\n const styles = getButtonClasses(variant, size, className);\n\n const content = (\n <>\n \n {props.children}\n \n \n \n );\n\n if (href) {\n return (\n \n {content}\n \n );\n }\n\n return (\n \n );\n}\n","export * from './utils';\nexport * from './Button';\nexport * from './Section';\nexport * from './Container';\nexport * from './Heading';\nexport * from './Card';\nexport * from './Badge';\nexport * from './Input';\nexport * from './Textarea';\nexport * from './Label';\nexport * from './Callout';\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Section({ className, children, ...props }: React.HTMLAttributes) {\n return (\n
\n {children}\n
\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Container({ className, children, ...props }: React.HTMLAttributes) {\n return (\n
\n {children}\n
\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Heading({\n level = 2,\n children,\n className,\n subtitle,\n align = 'left'\n}: {\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n children: React.ReactNode;\n className?: string;\n subtitle?: string;\n align?: 'left' | 'center' | 'right';\n}) {\n const Tag = `h${level}` as any;\n \n const sizes = {\n 1: 'text-2xl md:text-4xl lg:text-5xl font-bold leading-[1.1] tracking-tight',\n 2: 'text-xl md:text-3xl lg:text-4xl font-bold leading-[1.2] tracking-tight',\n 3: 'text-lg md:text-2xl lg:text-3xl font-bold leading-[1.3] tracking-tight',\n 4: 'text-lg md:text-xl lg:text-2xl font-bold leading-[1.4]',\n 5: 'text-base md:text-lg font-bold leading-[1.5]',\n 6: 'text-base md:text-lg font-semibold leading-[1.6]',\n };\n\n const alignments = {\n left: 'text-left',\n center: 'text-center mx-auto',\n right: 'text-right',\n };\n\n return (\n
\n {subtitle && (\n \n {subtitle}\n \n )}\n \n {children}\n \n
\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\ninterface CardProps extends React.HTMLAttributes {\n tag?: 'div' | 'article' | 'section' | 'aside' | 'header' | 'footer' | 'nav' | 'main';\n}\n\nexport function Card({ className, children, tag: Tag = 'div', ...props }: CardProps) {\n return (\n \n {children}\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Badge({ children, className, variant = 'primary' }: { children: React.ReactNode, className?: string, variant?: 'primary' | 'accent' | 'neutral' | 'saturated' }) {\n const variants = {\n primary: 'bg-primary-light text-primary',\n accent: 'bg-accent-light text-accent-dark',\n neutral: 'bg-neutral-medium text-text-secondary',\n saturated: 'bg-saturated text-white',\n };\n \n return (\n \n {children}\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport interface InputProps extends React.InputHTMLAttributes {\n className?: string;\n}\n\nexport function Input({ className, ...props }: InputProps) {\n return (\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport interface TextareaProps extends React.TextareaHTMLAttributes {\n className?: string;\n}\n\nexport function Textarea({ className, ...props }: TextareaProps) {\n return (\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport interface LabelProps extends React.LabelHTMLAttributes {\n className?: string;\n}\n\nexport function Label({ className, ...props }: LabelProps) {\n return (\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\ninterface CalloutProps {\n type?: 'info' | 'warning' | 'success' | 'tip';\n title?: string;\n children: React.ReactNode;\n className?: string;\n}\n\nconst icons = {\n info: (\n \n \n \n ),\n warning: (\n \n \n \n ),\n success: (\n \n \n \n ),\n tip: (\n \n \n \n ),\n};\n\nconst styles = {\n info: 'bg-blue-50 border-blue-200 text-blue-900',\n warning: 'bg-yellow-50 border-yellow-200 text-yellow-900',\n success: 'bg-green-50 border-green-200 text-green-900',\n tip: 'bg-purple-50 border-purple-200 text-purple-900',\n};\n\nconst iconColors = {\n info: 'text-blue-500',\n warning: 'text-yellow-500',\n success: 'text-green-500',\n tip: 'text-purple-500',\n};\n\nexport function Callout({ type = 'info', title, children, className }: CalloutProps) {\n return (\n
\n
\n
\n {icons[type]}\n
\n
\n {title && (\n

{title}

\n )}\n
\n {children}\n
\n
\n
\n
\n );\n}\n","'use client';\n\nimport React from 'react';\nimport { cn } from '@/components/ui';\n\ninterface ScribbleProps {\n variant: 'circle' | 'underline';\n className?: string;\n color?: string;\n}\n\nexport default function Scribble({ variant, className, color = '#82ed20' }: ScribbleProps) {\n if (variant === 'circle') {\n return (\n \n \n \n );\n }\n\n if (variant === 'underline') {\n return (\n \n \n \n );\n }\n\n return null;\n}\n","'use client';\n\nimport { useEffect } from 'react';\nimport { useTranslations } from 'next-intl';\nimport { getAppServices } from '@/lib/services/create-services';\nimport { Container, Button, Heading } from '@/components/ui';\nimport Scribble from '@/components/Scribble';\n\nexport default function Error({\n error,\n reset,\n}: {\n error: Error & { digest?: string };\n reset: () => void;\n}) {\n const t = useTranslations('Error');\n\n useEffect(() => {\n // Treat \"Failed to find Server Action\" as a deployment sync issue and reload\n if (error?.message?.includes('Failed to find Server Action')) {\n window.location.reload();\n return;\n }\n\n const services = getAppServices();\n services.errors.captureException(error);\n services.logger.error('Application error caught by boundary', {\n message: error?.message || 'Unknown error',\n stack: error?.stack,\n digest: error?.digest,\n });\n \n // Force solid header\n document.body.setAttribute('data-force-solid-header', 'true');\n return () => {\n document.body.removeAttribute('data-force-solid-header');\n };\n }, [error]);\n\n return (\n <>\n \n {/* Industrial Background Element */}\n
\n 500\n
\n\n
\n \n 500\n \n \n
\n\n \n {t('title')}\n \n\n

{t('description')}

\n\n
\n \n \n
\n\n {/* Decorative Industrial Line */}\n
\n \n \n );\n}\n"],"names":[],"mappings":"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"}}] -} \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__63a582be._.js b/.next/server/chunks/ssr/[root-of-the-server]__63a582be._.js new file mode 100644 index 000000000..7b9361bd8 --- /dev/null +++ b/.next/server/chunks/ssr/[root-of-the-server]__63a582be._.js @@ -0,0 +1,5 @@ +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="3d6aeaef-729e-fa28-b457-71abeb4bfa90")}catch(e){}}(); +module.exports=[324725,(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"))},64293,(a,b,c)=>{b.exports=a.x("pino-2e79642258e38174",()=>require("pino-2e79642258e38174"))},274209,281682,a=>{"use strict";var b=a.i(150765),c=a.i(475625);function d(){let a=(0,c.getAppServices)();return{trackEvent:(0,b.useCallback)((b,c)=>{a.analytics.track(b,c)},[a]),trackPageview:(0,b.useCallback)(b=>{a.analytics.trackPageview(b)},[a])}}a.s(["useAnalytics",()=>d],274209),a.s(["AnalyticsEvents",0,{PAGE_VIEW:"pageview",PAGE_SCROLL:"page_scroll",PAGE_EXIT:"page_exit",SCROLL_DEPTH:"scroll_depth",BUTTON_CLICK:"button_click",LINK_CLICK:"link_click",FORM_SUBMIT:"form_submit",FORM_START:"form_start",FORM_ERROR:"form_error",FORM_FIELD_FOCUS:"form_field_focus",PRODUCT_VIEW:"product_view",PRODUCT_ADD_TO_CART:"product_add_to_cart",PRODUCT_REMOVE_FROM_CART:"product_remove_from_cart",PRODUCT_PURCHASE:"product_purchase",PRODUCT_WISHLIST_ADD:"product_wishlist_add",PRODUCT_WISHLIST_REMOVE:"product_wishlist_remove",PRODUCT_TAB_SWITCH:"product_tab_switch",SEARCH:"search",FILTER_APPLY:"filter_apply",FILTER_CLEAR:"filter_clear",USER_SIGNUP:"user_signup",USER_LOGIN:"user_login",USER_LOGOUT:"user_logout",USER_PROFILE_UPDATE:"user_profile_update",BLOG_POST_VIEW:"blog_post_view",VIDEO_PLAY:"video_play",VIDEO_PAUSE:"video_pause",VIDEO_COMPLETE:"video_complete",DOWNLOAD:"download",MODAL_OPEN:"modal_open",MODAL_CLOSE:"modal_close",TOGGLE_SWITCH:"toggle_switch",ACCORDION_TOGGLE:"accordion_toggle",TAB_SWITCH:"tab_switch",TOC_CLICK:"toc_click",ERROR:"error",PERFORMANCE:"performance",API_ERROR:"api_error",API_SUCCESS:"api_success",QUOTE_REQUEST:"quote_request",CONTACT_FORM_SUBMIT:"contact_form_submit",NEWSLETTER_SUBSCRIBE:"newsletter_subscribe",BROCHURE_DOWNLOAD:"brochure_download"}],281682)},594214,90695,5515,544027,434904,618180,781027,41100,a=>{"use strict";var b=a.i(829091);a.i(912466);var c=a.i(526156);function d({className:a,children:d,...e}){return(0,c.jsx)("section",{className:(0,b.cn)("py-16 md:py-28 lg:py-36 overflow-hidden content-visibility-auto",a),...e,children:d})}function e({className:a,children:d,...e}){return(0,c.jsx)("div",{className:(0,b.cn)("container mx-auto px-4 md:px-12 lg:px-16 max-w-7xl",a),...e,children:d})}function f({level:a=2,children:d,className:e,subtitle:f,align:g="left"}){let h=`h${a}`;return(0,c.jsxs)("div",{className:(0,b.cn)("mb-6 md:mb-12 text-primary",{left:"text-left",center:"text-center mx-auto",right:"text-right"}[g],e),children:[f&&(0,c.jsx)("span",{className:"inline-block text-accent font-bold tracking-widest uppercase text-xs md:text-sm mb-3 md:mb-4 animate-fade-in",children:f}),(0,c.jsx)(h,{className:(0,b.cn)({1:"text-2xl md:text-4xl lg:text-5xl font-bold leading-[1.1] tracking-tight",2:"text-xl md:text-3xl lg:text-4xl font-bold leading-[1.2] tracking-tight",3:"text-lg md:text-2xl lg:text-3xl font-bold leading-[1.3] tracking-tight",4:"text-lg md:text-xl lg:text-2xl font-bold leading-[1.4]",5:"text-base md:text-lg font-bold leading-[1.5]",6:"text-base md:text-lg font-semibold leading-[1.6]"}[a]),children:d})]})}function g({className:a,children:d,tag:e="div",...f}){return(0,c.jsx)(e,{className:(0,b.cn)("premium-card overflow-hidden",a),...f,children:d})}function h({className:a,...d}){return(0,c.jsx)("input",{className:(0,b.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg",a),...d})}function i({className:a,...d}){return(0,c.jsx)("textarea",{className:(0,b.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg resize-none",a),...d})}function j({className:a,...d}){return(0,c.jsx)("label",{className:(0,b.cn)("text-[10px] md:text-xs font-extrabold text-primary uppercase tracking-widest",a),...d})}a.s(["Section",()=>d],90695),a.s(["Container",()=>e],5515),a.s(["Heading",()=>f],544027),a.s(["Card",()=>g],434904),a.s(["Input",()=>h],618180),a.s(["Textarea",()=>i],781027),a.s(["Label",()=>j],41100),a.s([],594214)},991320,a=>{"use strict";var b=a.i(526156);a.i(594214);var c=a.i(829091);function d({variant:a,className:d,color:e="#82ed20"}){return"circle"===a?(0,b.jsx)("svg",{className:(0,c.cn)("absolute pointer-events-none",d),"aria-hidden":"true",viewBox:"0 0 800 350",preserveAspectRatio:"none",children:(0,b.jsx)("path",{className:"animate-draw-stroke",pathLength:"1",style:{strokeDasharray:1,strokeDashoffset:1,animation:"draw-stroke 1.8s ease-in-out 0.5s forwards"},transform:"matrix(0.9791300296783447,0,0,0.9791300296783447,400,179)",strokeLinejoin:"miter",fillOpacity:"0",strokeMiterlimit:"4",stroke:e,strokeOpacity:"1",strokeWidth:"20",d:" M253,-161 C253,-161 -284.78900146484375,-201.4600067138672 -376,-21 C-469,163 67.62300109863281,174.2100067138672 256,121 C564,34 250.82899475097656,-141.6929931640625 19.10700035095215,-116.93599700927734"})}):"underline"===a?(0,b.jsx)("svg",{className:(0,c.cn)("absolute pointer-events-none",d),"aria-hidden":"true",viewBox:"-400 -55 730 60",preserveAspectRatio:"none",children:(0,b.jsx)("path",{className:"animate-draw-stroke",pathLength:"1",style:{strokeDasharray:1,strokeDashoffset:1,animation:"draw-stroke 1.8s ease-in-out 0.5s forwards"},d:"m -383.25 -6 c 55.25 -22 130.75 -33.5 293.25 -38 c 54.5 -0.5 195 -2.5 401 15",stroke:e,strokeWidth:"20",fill:"none"})}):null}a.s(["default",()=>d])},868513,a=>{"use strict";var b=a.i(150765),c=a.i(274209),d=a.i(281682);function e({path:e}){let{trackEvent:f}=(0,c.useAnalytics)();return(0,b.useEffect)(()=>{f(d.AnalyticsEvents.ERROR,{type:"404_not_found",path:e}),a.A(163041).then(a=>{a.withScope(b=>{b.setTag("status_code","404"),b.setTag("path",e),a.captureMessage(`Route Not Found: ${e}`,"warning")})})},[f,e]),null}a.s(["default",()=>e])},163041,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__d3969a9f._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js"].map(b=>a.l(b))).then(()=>b(17814)))}]; + +//# debugId=3d6aeaef-729e-fa28-b457-71abeb4bfa90 +//# sourceMappingURL=%5Broot-of-the-server%5D__63a582be._.js.map \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__63a582be._.js.map b/.next/server/chunks/ssr/[root-of-the-server]__63a582be._.js.map new file mode 100644 index 000000000..e0f03d8eb --- /dev/null +++ b/.next/server/chunks/ssr/[root-of-the-server]__63a582be._.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": [], + "debugId": "3d6aeaef-729e-fa28-b457-71abeb4bfa90", + "sections": [ + {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["../../../../components/analytics/useAnalytics.ts","../../../../components/analytics/analytics-events.ts","../../../../components/ui/index.ts","../../../../components/ui/Section.tsx","../../../../components/ui/Container.tsx","../../../../components/ui/Heading.tsx","../../../../components/ui/Card.tsx","../../../../components/ui/Badge.tsx","../../../../components/ui/Input.tsx","../../../../components/ui/Textarea.tsx","../../../../components/ui/Label.tsx","../../../../components/ui/Callout.tsx","../../../../components/Scribble.tsx","../../../../components/analytics/ClientNotFoundTracker.tsx"],"sourcesContent":["'use client';\n\nimport { useCallback } from 'react';\nimport { getAppServices } from '@/lib/services/create-services';\nimport type { AnalyticsEventProperties } from '@/lib/services/analytics/analytics-service';\n\n/**\n * Custom hook for tracking analytics events with Umami.\n * \n * Provides a convenient way to track custom events throughout your application.\n * \n * @example\n * ```tsx\n * import { useAnalytics } from '@/components/analytics/useAnalytics';\n * \n * function MyComponent() {\n * const { trackEvent, trackPageview } = useAnalytics();\n * \n * const handleButtonClick = () => {\n * trackEvent('button_click', {\n * button_id: 'cta-primary',\n * page: 'homepage'\n * });\n * };\n * \n * return ;\n * }\n * ```\n * \n * @example\n * ```tsx\n * // Track a custom pageview\n * const { trackPageview } = useAnalytics();\n * trackPageview('/custom-path?param=value');\n * ```\n */\nexport function useAnalytics() {\n const services = getAppServices();\n\n /**\n * Track a custom event with optional properties.\n * \n * @param eventName - The name of the event to track\n * @param properties - Optional event properties (metadata)\n */\n const trackEvent = useCallback(\n (eventName: string, properties?: AnalyticsEventProperties) => {\n services.analytics.track(eventName, properties);\n \n if (process.env.NODE_ENV === 'development') {\n console.log('[Umami] Tracked event:', eventName, properties);\n }\n },\n [services]\n );\n\n /**\n * Track a pageview (useful for custom navigation or SPA routing).\n * \n * @param url - The URL to track (defaults to current location)\n */\n const trackPageview = useCallback(\n (url?: string) => {\n services.analytics.trackPageview(url);\n \n if (process.env.NODE_ENV === 'development') {\n console.log('[Umami] Tracked pageview:', url ?? 'current location');\n }\n },\n [services]\n );\n\n return {\n trackEvent,\n trackPageview,\n };\n}\n","/**\n * Analytics Events Utility\n *\n * Centralized definitions for common analytics events and their properties.\n * This helps maintain consistency across the application and makes it easier\n * to track meaningful events.\n *\n * @example\n * ```tsx\n * import { useAnalytics } from '@/components/analytics/useAnalytics';\n * import { AnalyticsEvents } from '@/components/analytics/analytics-events';\n *\n * function ProductPage() {\n * const { trackEvent } = useAnalytics();\n *\n * const handleAddToCart = (productId: string, productName: string) => {\n * trackEvent(AnalyticsEvents.PRODUCT_ADD_TO_CART, {\n * product_id: productId,\n * product_name: productName,\n * page: 'product-detail'\n * });\n * };\n *\n * return ;\n * }\n * ```\n */\n\nexport const AnalyticsEvents = {\n // Page & Navigation Events\n PAGE_VIEW: 'pageview',\n PAGE_SCROLL: 'page_scroll',\n PAGE_EXIT: 'page_exit',\n SCROLL_DEPTH: 'scroll_depth',\n\n // User Interaction Events\n BUTTON_CLICK: 'button_click',\n LINK_CLICK: 'link_click',\n FORM_SUBMIT: 'form_submit',\n FORM_START: 'form_start',\n FORM_ERROR: 'form_error',\n FORM_FIELD_FOCUS: 'form_field_focus',\n\n // E-commerce Events\n PRODUCT_VIEW: 'product_view',\n PRODUCT_ADD_TO_CART: 'product_add_to_cart',\n PRODUCT_REMOVE_FROM_CART: 'product_remove_from_cart',\n PRODUCT_PURCHASE: 'product_purchase',\n PRODUCT_WISHLIST_ADD: 'product_wishlist_add',\n PRODUCT_WISHLIST_REMOVE: 'product_wishlist_remove',\n PRODUCT_TAB_SWITCH: 'product_tab_switch',\n\n // Search & Filter Events\n SEARCH: 'search',\n FILTER_APPLY: 'filter_apply',\n FILTER_CLEAR: 'filter_clear',\n\n // User Account Events\n USER_SIGNUP: 'user_signup',\n USER_LOGIN: 'user_login',\n USER_LOGOUT: 'user_logout',\n USER_PROFILE_UPDATE: 'user_profile_update',\n\n // Content Events\n BLOG_POST_VIEW: 'blog_post_view',\n VIDEO_PLAY: 'video_play',\n VIDEO_PAUSE: 'video_pause',\n VIDEO_COMPLETE: 'video_complete',\n DOWNLOAD: 'download',\n\n // UI Interaction Events\n MODAL_OPEN: 'modal_open',\n MODAL_CLOSE: 'modal_close',\n TOGGLE_SWITCH: 'toggle_switch',\n ACCORDION_TOGGLE: 'accordion_toggle',\n TAB_SWITCH: 'tab_switch',\n TOC_CLICK: 'toc_click',\n\n // Error & Performance Events\n ERROR: 'error',\n PERFORMANCE: 'performance',\n API_ERROR: 'api_error',\n API_SUCCESS: 'api_success',\n\n // Custom Business Events\n QUOTE_REQUEST: 'quote_request',\n CONTACT_FORM_SUBMIT: 'contact_form_submit',\n NEWSLETTER_SUBSCRIBE: 'newsletter_subscribe',\n BROCHURE_DOWNLOAD: 'brochure_download',\n} as const;\n\n/**\n * Type-safe event properties for common events\n */\nexport type AnalyticsEventName = (typeof AnalyticsEvents)[keyof typeof AnalyticsEvents];\n\n/**\n * Common event property helpers\n */\nexport const AnalyticsEventProperties = {\n /**\n * Create properties for a product event\n */\n product: (productId: string, productName: string, category?: string) => ({\n product_id: productId,\n product_name: productName,\n product_category: category,\n }),\n\n /**\n * Create properties for a form event\n */\n form: (formId: string, formName: string, fields?: Record) => ({\n form_id: formId,\n form_name: formName,\n form_fields: fields,\n }),\n\n /**\n * Create properties for a search event\n */\n search: (query: string, filters?: Record) => ({\n search_query: query,\n search_filters: filters,\n }),\n\n /**\n * Create properties for a navigation event\n */\n navigation: (from: string, to: string) => ({\n from_page: from,\n to_page: to,\n }),\n} as const;\n","export * from './utils';\nexport * from './Button';\nexport * from './Section';\nexport * from './Container';\nexport * from './Heading';\nexport * from './Card';\nexport * from './Badge';\nexport * from './Input';\nexport * from './Textarea';\nexport * from './Label';\nexport * from './Callout';\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Section({ className, children, ...props }: React.HTMLAttributes) {\n return (\n
\n {children}\n
\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Container({ className, children, ...props }: React.HTMLAttributes) {\n return (\n
\n {children}\n
\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Heading({\n level = 2,\n children,\n className,\n subtitle,\n align = 'left'\n}: {\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n children: React.ReactNode;\n className?: string;\n subtitle?: string;\n align?: 'left' | 'center' | 'right';\n}) {\n const Tag = `h${level}` as any;\n \n const sizes = {\n 1: 'text-2xl md:text-4xl lg:text-5xl font-bold leading-[1.1] tracking-tight',\n 2: 'text-xl md:text-3xl lg:text-4xl font-bold leading-[1.2] tracking-tight',\n 3: 'text-lg md:text-2xl lg:text-3xl font-bold leading-[1.3] tracking-tight',\n 4: 'text-lg md:text-xl lg:text-2xl font-bold leading-[1.4]',\n 5: 'text-base md:text-lg font-bold leading-[1.5]',\n 6: 'text-base md:text-lg font-semibold leading-[1.6]',\n };\n\n const alignments = {\n left: 'text-left',\n center: 'text-center mx-auto',\n right: 'text-right',\n };\n\n return (\n
\n {subtitle && (\n \n {subtitle}\n \n )}\n \n {children}\n \n
\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\ninterface CardProps extends React.HTMLAttributes {\n tag?: 'div' | 'article' | 'section' | 'aside' | 'header' | 'footer' | 'nav' | 'main';\n}\n\nexport function Card({ className, children, tag: Tag = 'div', ...props }: CardProps) {\n return (\n \n {children}\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Badge({ children, className, variant = 'primary' }: { children: React.ReactNode, className?: string, variant?: 'primary' | 'accent' | 'neutral' | 'saturated' }) {\n const variants = {\n primary: 'bg-primary-light text-primary',\n accent: 'bg-accent-light text-accent-dark',\n neutral: 'bg-neutral-medium text-text-secondary',\n saturated: 'bg-saturated text-white',\n };\n \n return (\n \n {children}\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport interface InputProps extends React.InputHTMLAttributes {\n className?: string;\n}\n\nexport function Input({ className, ...props }: InputProps) {\n return (\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport interface TextareaProps extends React.TextareaHTMLAttributes {\n className?: string;\n}\n\nexport function Textarea({ className, ...props }: TextareaProps) {\n return (\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport interface LabelProps extends React.LabelHTMLAttributes {\n className?: string;\n}\n\nexport function Label({ className, ...props }: LabelProps) {\n return (\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\ninterface CalloutProps {\n type?: 'info' | 'warning' | 'success' | 'tip';\n title?: string;\n children: React.ReactNode;\n className?: string;\n}\n\nconst icons = {\n info: (\n \n \n \n ),\n warning: (\n \n \n \n ),\n success: (\n \n \n \n ),\n tip: (\n \n \n \n ),\n};\n\nconst styles = {\n info: 'bg-blue-50 border-blue-200 text-blue-900',\n warning: 'bg-yellow-50 border-yellow-200 text-yellow-900',\n success: 'bg-green-50 border-green-200 text-green-900',\n tip: 'bg-purple-50 border-purple-200 text-purple-900',\n};\n\nconst iconColors = {\n info: 'text-blue-500',\n warning: 'text-yellow-500',\n success: 'text-green-500',\n tip: 'text-purple-500',\n};\n\nexport function Callout({ type = 'info', title, children, className }: CalloutProps) {\n return (\n
\n
\n
\n {icons[type]}\n
\n
\n {title && (\n

{title}

\n )}\n
\n {children}\n
\n
\n
\n
\n );\n}\n","'use client';\n\nimport React from 'react';\nimport { cn } from '@/components/ui';\n\ninterface ScribbleProps {\n variant: 'circle' | 'underline';\n className?: string;\n color?: string;\n}\n\nexport default function Scribble({ variant, className, color = '#82ed20' }: ScribbleProps) {\n if (variant === 'circle') {\n return (\n \n \n \n );\n }\n\n if (variant === 'underline') {\n return (\n \n \n \n );\n }\n\n return null;\n}\n","'use client';\n\nimport { useEffect } from 'react';\nimport { useAnalytics } from './useAnalytics';\nimport { AnalyticsEvents } from './analytics-events';\n\nexport default function ClientNotFoundTracker({ path }: { path: string }) {\n const { trackEvent } = useAnalytics();\n\n useEffect(() => {\n trackEvent(AnalyticsEvents.ERROR, {\n type: '404_not_found',\n path,\n });\n\n import('@sentry/nextjs').then((Sentry) => {\n Sentry.withScope((scope) => {\n scope.setTag('status_code', '404');\n scope.setTag('path', path);\n Sentry.captureMessage(`Route Not Found: ${path}`, 'warning');\n });\n });\n }, [trackEvent, path]);\n\n return null;\n}\n"],"names":[],"mappings":"gUAEA,IAAA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QAiCO,SAAS,IACd,IAAM,EAAW,CAAA,EAAA,EAAA,cAAA,AAAc,IAmC/B,MAAO,CACL,WA5BiB,CAAA,EAAA,EAAA,WAAW,AAAX,EACjB,CAAC,EAAmB,KAClB,EAAS,SAAS,CAAC,KAAK,CAAC,EAAW,EAKtC,EACA,CAAC,EAAS,EAqBV,cAboB,CAAA,EAAA,EAAA,WAAA,AAAW,EAC9B,AAAD,IACE,EAAS,SAAS,CAAC,aAAa,CAAC,EAKnC,EACA,CAAC,EAAS,CAMZ,CACF,6DChD+B,CAE7B,UAAW,WACX,YAAa,cACb,UAAW,YACX,aAAc,eAGd,aAAc,eACd,WAAY,aACZ,YAAa,cACb,WAAY,aACZ,WAAY,aACZ,iBAAkB,mBAGlB,aAAc,eACd,oBAAqB,sBACrB,yBAA0B,2BAC1B,iBAAkB,mBAClB,qBAAsB,uBACtB,wBAAyB,0BACzB,mBAAoB,qBAGpB,OAAQ,SACR,aAAc,eACd,aAAc,eAGd,YAAa,cACb,WAAY,aACZ,YAAa,cACb,oBAAqB,sBAGrB,eAAgB,iBAChB,WAAY,aACZ,YAAa,cACb,eAAgB,iBAChB,SAAU,WAGV,WAAY,aACZ,YAAa,cACb,cAAe,gBACf,iBAAkB,mBAClB,WAAY,aACZ,UAAW,YAGX,MAAO,QACP,YAAa,cACb,UAAW,YACX,YAAa,cAGb,cAAe,gBACf,oBAAqB,sBACrB,qBAAsB,uBACtB,kBAAmB,mBACrB,iFCzFA,IAAA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,CAAA,CAAA,0BCEO,SAAS,EAAQ,WAAE,CAAS,UAAE,CAAQ,CAAE,GAAG,EAA0C,EAC1F,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,UAAA,CAAQ,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,kEAAmE,GAAa,GAAG,CAAK,UAC5G,GAGP,CCNO,SAAS,EAAU,WAAE,CAAS,UAAE,CAAQ,CAAE,GAAG,EAA6C,EAC/F,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,qDAAsD,GAAa,GAAG,CAAK,UAC3F,GAGP,CCNO,SAAS,EAAQ,OACtB,EAAQ,CAAC,UACT,CAAQ,WACR,CAAS,UACT,CAAQ,OACR,EAAQ,MAAM,CAOf,EACC,IAAM,EAAM,CAAC,CAAC,EAAE,EAAA,CAAO,CAiBvB,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,6BAPF,AAOgC,CANjD,KAAM,YACN,OAAQ,sBACR,MAAO,YACT,CAG6D,CAAC,EAAM,CAAE,aACjE,GACC,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,wHACb,IAGL,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAI,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,AAtBT,CACZ,EAAG,0EACH,EAAG,yEACH,EAAG,yEACH,EAAG,yDACH,EAAG,+CACH,EAAG,kDACL,CAe4B,CAAC,EAA4B,WAClD,MAIT,CCtCO,SAAS,EAAK,WAAE,CAAS,UAAE,CAAQ,CAAE,IAAK,EAAM,KAAK,CAAE,GAAG,EAAkB,EACjF,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAI,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,+BAAgC,GAAa,GAAG,CAAK,UACrE,GAGP,CENO,SAAS,EAAM,CAAE,WAAS,CAAE,GAAG,EAAmB,EACvD,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,QAAA,CACC,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EACX,yRACA,GAED,GAAG,CAAK,EAGf,CCVO,SAAS,EAAS,WAAE,CAAS,CAAE,GAAG,EAAsB,EAC7D,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,WAAA,CACC,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EACX,qSACA,GAED,GAAG,CAAK,EAGf,CCVO,SAAS,EAAM,WAAE,CAAS,CAAE,GAAG,EAAmB,EACvD,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,QAAA,CACC,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EACX,+EACA,GAED,GAAG,CAAK,EAGf,qQEdA,EAAA,CAAA,CAAA,QAAA,IAAA,EAAA,EAAA,CAAA,CAAA,QAQe,SAAS,EAAS,SAAE,CAAO,WAAE,CAAS,OAAE,EAAQ,SAAS,CAAiB,QACvF,AAAgB,UAAU,CAAtB,EAEA,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CACC,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,+BAAgC,GAC9C,cAAY,OACZ,QAAQ,cACR,oBAAoB,gBAEpB,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CACC,UAAU,sBACV,WAAW,IACX,MAAO,CAAE,gBAAiB,EAAG,iBAAkB,EAAG,UAAW,4CAA6C,EAC1G,UAAU,4DACV,eAAe,QACf,YAAY,IACZ,iBAAiB,IACjB,OAAQ,EACR,cAAc,IACd,YAAY,KACZ,EAAE,qNAMM,aAAa,CAAzB,EAEA,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CACC,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,+BAAgC,GAC9C,cAAY,OACZ,QAAQ,kBACR,oBAAoB,gBAEpB,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CACC,UAAU,sBACV,WAAW,IACX,MAAO,CAAE,gBAAiB,EAAG,iBAAkB,EAAG,UAAW,4CAA6C,EAC1G,EAAE,+EACF,OAAQ,EACR,YAAY,KACZ,KAAK,WAMN,IACT,iDCzDA,IAAA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QAEe,SAAS,EAAsB,CAAE,MAAI,CAAoB,EACtE,GAAM,YAAE,CAAU,CAAE,CAAG,CAAA,EAAA,EAAA,YAAA,AAAY,IAiBnC,MAfA,CAAA,EAAA,EAAA,SAAA,AAAS,EAAC,KACR,EAAW,EAAA,eAAe,CAAC,KAAK,CAAE,CAChC,KAAM,qBACN,CACF,GAEA,EAAA,CAAA,CAAA,QAAyB,IAAI,CAAC,AAAC,IAC7B,EAAO,SAAS,CAAC,AAAC,IAChB,EAAM,MAAM,CAAC,cAAe,OAC5B,EAAM,MAAM,CAAC,OAAQ,GACrB,EAAO,cAAc,CAAC,CAAC,iBAAiB,EAAE,EAAA,CAAM,CAAE,UACpD,EACF,EACF,EAAG,CAAC,EAAY,EAAK,EAEd,IACT"}}] +} \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__6a2afcd0._.js b/.next/server/chunks/ssr/[root-of-the-server]__6a2afcd0._.js deleted file mode 100644 index 4b602d1dc..000000000 --- a/.next/server/chunks/ssr/[root-of-the-server]__6a2afcd0._.js +++ /dev/null @@ -1,5 +0,0 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="55aac568-e488-0ddd-a6a3-ab3ef838abe4")}catch(e){}}(); -module.exports=[324725,(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"))},912466,a=>{"use strict";var b=a.i(526156),c=a.i(841757),d=a.i(829091);let e={primary:"bg-primary text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl",secondary:"bg-secondary text-white shadow-md hover:shadow-secondary/30 hover:shadow-2xl",accent:"bg-accent text-primary-dark shadow-md hover:shadow-accent/30 hover:shadow-2xl",saturated:"bg-saturated text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl",outline:"border-2 border-primary bg-transparent text-primary hover:text-white hover:shadow-primary/20 hover:shadow-xl",ghost:"text-primary hover:shadow-lg",white:"bg-white text-primary shadow-md hover:shadow-primary/30 hover:shadow-2xl hover:text-white",destructive:"bg-destructive text-destructive-foreground shadow-md hover:shadow-destructive/30 hover:shadow-2xl"},f={sm:"h-9 px-4 text-sm md:text-base",md:"h-11 px-6 text-base md:text-lg",lg:"h-14 px-5 md:px-8 text-base md:text-lg",xl:"h-16 px-6 md:px-10 text-lg md:text-xl"},g={primary:"bg-primary-dark",secondary:"bg-secondary-light",accent:"bg-accent-dark",saturated:"bg-primary",outline:"bg-primary",ghost:"bg-primary-light/10",white:"bg-primary-light",destructive:"bg-destructive/90"};function h({variant:a="primary"}){return(0,b.jsx)("span",{className:(0,d.cn)("absolute inset-0 translate-y-[101%] group-hover/btn:translate-y-0 transition-transform duration-500 ease-out",g[a])})}function i({className:a,variant:g="primary",size:i="md",href:j,...k}){let l=function(a="primary",b="md",c){return(0,d.cn)("inline-flex items-center justify-center whitespace-nowrap rounded-full font-semibold transition-all duration-500 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none active:scale-95 hover:-translate-y-1 hover:scale-[1.02] relative overflow-hidden group/btn isolate",e[a],f[b],c)}(g,i,a),m=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:(0,d.cn)("relative z-10 flex items-center justify-center gap-2 transition-colors duration-500","white"===g?"group-hover/btn:text-primary-dark":""),children:k.children}),(0,b.jsx)(h,{variant:g})]});return j?(0,b.jsx)(c.default,{href:j,className:l,children:m}):(0,b.jsx)("button",{className:l,...k,children:m})}a.s(["Button",()=>i])},64293,(a,b,c)=>{b.exports=a.x("pino-2e79642258e38174",()=>require("pino-2e79642258e38174"))},274209,281682,a=>{"use strict";var b=a.i(150765),c=a.i(475625);function d(){let a=(0,c.getAppServices)();return{trackEvent:(0,b.useCallback)((b,c)=>{a.analytics.track(b,c)},[a]),trackPageview:(0,b.useCallback)(b=>{a.analytics.trackPageview(b)},[a])}}a.s(["useAnalytics",()=>d],274209),a.s(["AnalyticsEvents",0,{PAGE_VIEW:"pageview",PAGE_SCROLL:"page_scroll",PAGE_EXIT:"page_exit",SCROLL_DEPTH:"scroll_depth",BUTTON_CLICK:"button_click",LINK_CLICK:"link_click",FORM_SUBMIT:"form_submit",FORM_START:"form_start",FORM_ERROR:"form_error",FORM_FIELD_FOCUS:"form_field_focus",PRODUCT_VIEW:"product_view",PRODUCT_ADD_TO_CART:"product_add_to_cart",PRODUCT_REMOVE_FROM_CART:"product_remove_from_cart",PRODUCT_PURCHASE:"product_purchase",PRODUCT_WISHLIST_ADD:"product_wishlist_add",PRODUCT_WISHLIST_REMOVE:"product_wishlist_remove",PRODUCT_TAB_SWITCH:"product_tab_switch",SEARCH:"search",FILTER_APPLY:"filter_apply",FILTER_CLEAR:"filter_clear",USER_SIGNUP:"user_signup",USER_LOGIN:"user_login",USER_LOGOUT:"user_logout",USER_PROFILE_UPDATE:"user_profile_update",BLOG_POST_VIEW:"blog_post_view",VIDEO_PLAY:"video_play",VIDEO_PAUSE:"video_pause",VIDEO_COMPLETE:"video_complete",DOWNLOAD:"download",MODAL_OPEN:"modal_open",MODAL_CLOSE:"modal_close",TOGGLE_SWITCH:"toggle_switch",ACCORDION_TOGGLE:"accordion_toggle",TAB_SWITCH:"tab_switch",TOC_CLICK:"toc_click",ERROR:"error",PERFORMANCE:"performance",API_ERROR:"api_error",API_SUCCESS:"api_success",QUOTE_REQUEST:"quote_request",CONTACT_FORM_SUBMIT:"contact_form_submit",NEWSLETTER_SUBSCRIBE:"newsletter_subscribe",BROCHURE_DOWNLOAD:"brochure_download"}],281682)},805585,a=>{"use strict";var b=a.i(526156),c=a.i(912466),d=a.i(608986);function e(a){let{data:e}=a,f=a.title||e?.title||"DIE EXPERTEN FÜR KABELTIEFBAU",g=a.subtitle||a.description||e?.subtitle||"Wir verbinden Infrastruktur mit Präzision. Von Horizontalbohrungen bis zu komplexen Leitungsnetzen.",h=a.videoUrl||e?.videoUrl||"/assets/dummy-hero.mp4",i=e?.posterImage?.url||"/assets/photos/DJI_0048.JPG";e?.posterImage?.alt;let j=a.ctaLabel||a.linkText||e?.ctaLabel||"Unternehmen entdecken",k=a.ctaHref||a.linkHref||e?.ctaHref||"#unternehmen",l=a.secondaryCtaLabel||e?.secondaryCtaLabel||"Projekt anfragen",m=a.secondaryCtaHref||e?.secondaryCtaHref||"/kontakt";return(0,b.jsxs)("div",{className:"relative w-full h-[100svh] flex items-center justify-center overflow-hidden bg-neutral-dark",children:[(0,b.jsx)("div",{className:"absolute inset-0 z-0 bg-neutral-dark"}),h&&(0,b.jsx)("video",{className:"absolute inset-0 w-full h-full object-cover z-1 pointer-events-none filter contrast-125 saturate-110 brightness-90",src:h,poster:i,autoPlay:!0,muted:!0,loop:!0,playsInline:!0,preload:"auto"}),(0,b.jsx)("div",{className:"absolute inset-0 bg-[#0a192f]/30 z-[2] mix-blend-multiply"}),(0,b.jsx)("div",{className:"absolute inset-0 bg-[radial-gradient(ellipse_at_center,_var(--tw-gradient-stops))] from-transparent via-black/20 to-black/80 z-[2]"}),(0,b.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-neutral-dark via-neutral-dark/60 to-transparent z-[3]"}),(0,b.jsx)("div",{className:"container relative z-[4] text-center px-4",children:(0,b.jsxs)(d.motion.div,{initial:{opacity:0,y:40},animate:{opacity:1,y:0},transition:{duration:1.2,ease:[.16,1,.3,1]},children:[(0,b.jsx)("h1",{className:"font-heading font-bold text-4xl md:text-6xl lg:text-8xl text-white mb-6 uppercase tracking-tight drop-shadow-lg",dangerouslySetInnerHTML:{__html:f.replace("KABELTIEFBAU",'KABELTIEFBAU').replace(/\n/g,"
")}}),(0,b.jsx)("p",{className:"text-lg md:text-xl lg:text-2xl text-white/90 max-w-3xl mx-auto mb-12 drop-shadow",children:g}),(0,b.jsxs)("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-6",children:[(0,b.jsx)(c.Button,{href:k,variant:"primary",size:"lg",children:j}),(0,b.jsx)(c.Button,{href:m,variant:"outline",size:"lg",className:"border-white/60 text-white hover:text-primary hover:bg-white",children:l})]})]})})]})}a.s(["HeroVideo",()=>e])},523290,a=>{"use strict";var b=a.i(526156),c=a.i(608986),d=a.i(110644);let e=[{title:"E-TIB GmbH",url:"https://www.e-tib.com/",backgroundImage:"/assets/photos/DJI_0243.JPG"},{title:"E-TIB Ingenieurgesellschaft mbH",url:"https://www.etib-ing.com/",backgroundImage:"/assets/photos/DSC01137.JPG"},{title:"NEMO GmbH",url:"https://www.nemo-gmbh.de/",backgroundImage:"/assets/photos/DJI_0048.JPG"}],f={hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.15}}},g={hidden:{opacity:0,y:30},visible:{opacity:1,y:0,transition:{duration:.8,ease:[.16,1,.3,1]}}};function h(a){let{data:h}=a,i=a.badge||h?.badge,j=a.title||h?.title,k=a.companies||h?.companies,l=k?.map(a=>({title:a.title,url:a.url,backgroundImage:a.backgroundImage?.url||a.backgroundImage||"/assets/photos/DJI_0243.JPG"}))||e;return(0,b.jsx)("section",{id:"unternehmen",className:"py-24 bg-neutral-dark border-b border-neutral-800",children:(0,b.jsxs)("div",{className:"container relative z-10 px-4",children:[(i||j)&&(0,b.jsxs)("div",{className:"text-center max-w-3xl mx-auto mb-16",children:[i&&(0,b.jsx)("h2",{className:"text-primary font-bold tracking-wider uppercase text-sm mb-3",children:i}),j&&(0,b.jsx)("h3",{className:"font-heading text-4xl md:text-5xl font-extrabold text-white",children:j})]}),(0,b.jsx)(c.motion.div,{className:"grid grid-cols-1 md:grid-cols-3 gap-6",variants:f,initial:"hidden",whileInView:"visible",viewport:{once:!0,margin:"-50px"},children:l.map((a,e)=>{let f=a.url?"a":"div",h=a.url?{href:a.url,target:"_blank",rel:"noopener noreferrer"}:{},i=a.title.includes("E-TIB"),j=a.title.includes("Ingenieur"),k=a.title.includes("NEMO");return(0,b.jsx)(c.motion.div,{variants:g,className:"h-full",children:(0,b.jsxs)(f,{...h,className:"group relative overflow-hidden aspect-[4/3] flex flex-col justify-center items-center shadow-xl border border-white/5 transition-all duration-500 hover:shadow-2xl hover:-translate-y-1 bg-neutral-dark cursor-pointer block w-full h-full sm:rounded-xl",children:[(0,b.jsx)("div",{className:"absolute inset-0 bg-[#0a192f] z-0",children:(0,b.jsx)(d.default,{src:a.backgroundImage,alt:"Background",fill:!0,className:"object-cover opacity-40 group-hover:opacity-30 group-hover:scale-110 transition-all duration-1000 ease-out grayscale-[50%] group-hover:grayscale-0",sizes:"(max-width: 768px) 100vw, 33vw"})}),(0,b.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-[#0a192f]/90 via-[#0a192f]/60 to-[#0a192f]/40 z-0 group-hover:from-primary/90 group-hover:to-primary/20 transition-colors duration-700 mix-blend-multiply"}),(0,b.jsx)("div",{className:"relative z-10 flex flex-col items-center justify-center w-full h-full p-8 transform group-hover:scale-105 transition-transform duration-500",children:i?(0,b.jsxs)("div",{className:"flex flex-col items-center",children:[(0,b.jsx)("div",{className:"relative w-48 h-14 mb-2",children:(0,b.jsx)(d.default,{src:"/assets/logo-white.png",alt:"E-TIB Logo",fill:!0,className:"object-contain"})}),j&&(0,b.jsx)("div",{className:"text-white/80 tracking-[0.3em] text-xs font-semibold uppercase mt-1",children:"Ingenieurgesellschaft"})]}):k?(0,b.jsxs)("div",{className:"flex flex-col items-center",children:[(0,b.jsx)("div",{className:"text-5xl font-heading font-black text-white tracking-tight",children:"NEMO"}),(0,b.jsx)("div",{className:"text-white/60 tracking-widest text-xs font-semibold uppercase mt-1",children:"GmbH"})]}):(0,b.jsx)("div",{className:"text-2xl font-heading font-bold text-white uppercase text-center",children:a.title})}),a.url&&(0,b.jsx)("div",{className:"absolute bottom-6 left-0 right-0 flex justify-center opacity-0 group-hover:opacity-100 transform translate-y-4 group-hover:translate-y-0 transition-all duration-500 z-20",children:(0,b.jsxs)("div",{className:"flex items-center text-white font-bold uppercase text-xs tracking-widest bg-white/10 backdrop-blur-md px-4 py-2 rounded-full border border-white/20",children:["Website Besuchen",(0,b.jsx)("svg",{className:"w-4 h-4 ml-2",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,b.jsx)("path",{d:"M5 12h14M12 5l7 7-7 7"})})]})})]})},e)})})]})})}a.s(["SubCompanyTiles",()=>h])},649511,a=>{"use strict";var b=a.i(526156),c=a.i(841757),d=a.i(110644),e=a.i(608986),f=a.i(150765);function g(a){let{data:g}=a,[h,i]=(0,f.useState)(!1);(0,f.useEffect)(()=>{i(!0)},[]);let j=a.badge||g?.badge||"Leistungsspektrum",k=a.title||g?.title||"Umfassende Lösungen für komplexe Netzwerke",l=a.ctaLabel||g?.ctaLabel||"Alle Kompetenzen ansehen",m=a.ctaHref||g?.ctaHref||"/kompetenzen",n=a.items||g?.items||[];return h?(0,b.jsx)("section",{className:"py-24 bg-neutral text-neutral-dark overflow-hidden relative",children:(0,b.jsxs)("div",{className:"container",children:[(0,b.jsxs)("div",{className:"flex flex-col md:flex-row justify-between items-end mb-12",children:[(0,b.jsxs)("div",{className:"max-w-2xl",children:[(0,b.jsx)("h2",{className:"text-primary font-bold tracking-wider uppercase text-sm mb-3",children:j}),(0,b.jsx)("h3",{className:"font-heading text-4xl md:text-5xl font-extrabold text-neutral-dark mb-4",children:k})]}),(0,b.jsxs)(c.default,{href:m,className:"inline-flex items-center font-bold text-primary hover:text-primary-dark transition-colors group mt-6 md:mt-0 bg-primary/5 hover:bg-primary/10 px-6 py-3 rounded-xl",children:[l,(0,b.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-5 h-5 ml-2 transform group-hover:translate-x-1 transition-transform",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,b.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),(0,b.jsx)("polyline",{points:"12 5 19 12 12 19"})]})]})]}),(0,b.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-3 lg:grid-cols-4 gap-4 auto-rows-[220px]",children:n.map((a,c)=>{let f="large"===a.size,g="medium"===a.size,h="accent"===a.size,i=a.image?.url,j="rounded-2xl overflow-hidden relative group ";return(f?j+="md:col-span-2 md:row-span-2":g?j+="md:col-span-2 lg:col-span-2":h?j+="md:col-span-1 bg-primary text-white p-6 md:p-8 flex flex-col justify-center border-none shadow-md":j+="md:col-span-1",h)?(0,b.jsxs)(e.motion.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:.1*c},className:j,children:[(0,b.jsx)("div",{className:"absolute top-0 right-0 w-32 h-32 bg-primary/30 blur-3xl rounded-full -mr-10 -mt-10 group-hover:bg-primary/50 transition-colors duration-500"}),(0,b.jsx)("h4",{className:"font-bold text-xl md:text-2xl relative z-10 leading-snug",children:a.title}),a.description&&(0,b.jsx)("p",{className:"text-white/60 text-sm mt-3 relative z-10",children:a.description})]},c):(0,b.jsxs)(e.motion.div,{initial:{opacity:0,scale:.95},whileInView:{opacity:1,scale:1},viewport:{once:!0},transition:{delay:.1*c},className:j,children:[!i&&(0,b.jsx)("div",{className:"absolute inset-0 bg-neutral-dark z-0 transition-colors duration-500 group-hover:bg-primary-dark"}),i&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"absolute inset-0 bg-white z-0",children:(0,b.jsx)(d.default,{src:i,alt:a.title||"",fill:!0,className:"object-cover opacity-90 group-hover:scale-105 group-hover:opacity-100 transition-all duration-700 ease-in-out",sizes:f?"(max-width: 768px) 100vw, 50vw":"(max-width: 768px) 100vw, 25vw"})}),(0,b.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-black/80 via-black/20 to-transparent opacity-90 transition-opacity duration-500 z-0"})]}),(0,b.jsxs)("div",{className:"relative z-10 p-8 flex flex-col justify-end h-full text-white",children:[a.tag&&(0,b.jsx)("span",{className:"inline-block px-3 py-1 bg-primary/20 backdrop-blur-md rounded-full text-xs font-bold uppercase tracking-wider text-primary-light mb-3 w-fit border border-primary/30",children:a.tag}),(0,b.jsx)("h4",{className:`font-heading font-extrabold mb-2 ${f?"text-3xl md:text-5xl":"text-xl md:text-2xl"}`,children:a.title}),a.description&&(0,b.jsx)("p",{className:`text-white/80 ${f?"text-lg md:text-xl max-w-sm":"text-sm"}`,children:a.description})]})]},c)})})]})}):(0,b.jsx)("section",{className:"py-24 bg-neutral text-neutral-dark overflow-hidden relative",children:(0,b.jsxs)("div",{className:"container",children:[(0,b.jsx)("div",{className:"flex flex-col md:flex-row justify-between items-end mb-12",children:(0,b.jsxs)("div",{className:"max-w-2xl",children:[(0,b.jsx)("h2",{className:"text-primary font-bold tracking-wider uppercase text-sm mb-3",children:j}),(0,b.jsx)("h3",{className:"font-heading text-4xl md:text-5xl font-extrabold text-neutral-dark mb-4",children:k})]})}),(0,b.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-3 lg:grid-cols-4 gap-4 auto-rows-[220px]"})]})})}a.s(["CompetenceBentoGrid",()=>g])},744435,a=>{"use strict";var b=a.i(526156),c=a.i(150765),d=a.i(608986),e=a.i(841757),f=a.i(110644);function g(a){let{data:g}=a,h=a.references||[],i=c.useRef(null),j=a.badge||g?.badge||"Ausgewählte Projekte",k=a.title||g?.title||"Referenzen & Erfolge",l=a.description||g?.description||"Ein Auszug unserer erfolgreich abgeschlossenen Projekte im Bereich Kabeltiefbau, Bohrtechnik und Netzinfrastruktur.",m=a.ctaLabel||g?.ctaLabel||"Alle Referenzen ansehen",n=a.ctaHref||g?.ctaHref||"/referenzen";if(!h||0===h.length)return null;let o=["/assets/photos/DSC01123.JPG","/assets/photos/DSC00850.JPG","/assets/photos/DSC01129.JPG","/assets/photos/DSC00010.JPG"];return(0,b.jsxs)("section",{className:"py-24 bg-neutral-dark text-white overflow-hidden relative",children:[(0,b.jsx)("div",{className:"absolute inset-0 bg-gradient-to-b from-neutral-dark via-neutral-900 to-neutral-dark z-0"}),(0,b.jsxs)("div",{className:"container relative z-10 mb-12 flex flex-col md:flex-row justify-between items-end gap-6",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-primary-light font-bold tracking-wider uppercase text-sm mb-3",children:j}),(0,b.jsx)("h3",{className:"font-heading text-4xl md:text-5xl font-extrabold",children:k})]}),(0,b.jsx)("p",{className:"text-white/60 max-w-md",children:l})]}),(0,b.jsx)("div",{className:"relative z-10",children:(0,b.jsx)("div",{ref:i,className:"flex gap-6 overflow-x-auto pb-12 pt-4 snap-x snap-mandatory px-[calc((100vw-min(100%,1280px))/2)] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden",children:h.map((a,c)=>{let e=a.image&&"object"==typeof a.image&&a.image.url?a.image.url:o[c%o.length];return(0,b.jsx)(d.motion.div,{initial:{opacity:0,x:50},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{delay:.1*c,duration:.6,ease:"easeOut"},className:"flex-shrink-0 w-[320px] md:w-[480px] snap-center group cursor-pointer",children:(0,b.jsxs)("div",{className:"relative aspect-[16/10] bg-neutral-800 rounded-2xl overflow-hidden mb-5 border border-white/5 shadow-2xl",children:[(0,b.jsx)(f.default,{src:e,alt:a.title,fill:!0,sizes:"(max-width: 768px) 320px, 480px",className:"object-cover saturate-50 opacity-70 group-hover:scale-105 group-hover:opacity-100 group-hover:saturate-100 transition-all duration-700 ease-in-out"}),(0,b.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-black/90 via-black/30 to-transparent opacity-80 group-hover:opacity-90 transition-opacity duration-300"}),(0,b.jsxs)("div",{className:"absolute bottom-6 left-8 right-8 transform translate-y-4 group-hover:translate-y-0 transition-transform duration-500",children:[(0,b.jsx)("span",{className:"inline-block py-1.5 px-4 rounded-full bg-primary/30 backdrop-blur-md text-white text-xs font-bold uppercase tracking-widest mb-3 border border-primary/50",children:a.category}),(0,b.jsx)("h4",{className:"font-heading text-2xl md:text-3xl font-bold line-clamp-2",children:a.title})]})]})},a.id)})})}),(0,b.jsx)("div",{className:"container relative z-10 mt-4 flex justify-center",children:(0,b.jsxs)(e.default,{href:n,className:"px-8 py-4 rounded-xl bg-white/5 border border-white/20 hover:bg-white hover:text-neutral-dark hover:shadow-[0_0_20px_rgba(255,255,255,0.3)] transition-all font-bold flex items-center gap-3 backdrop-blur-sm",children:[m,(0,b.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-5 h-5",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,b.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),(0,b.jsx)("polyline",{points:"12 5 19 12 12 19"})]})]})})]})}a.s(["ReferencesSlider",()=>g])},163041,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__22b888eb._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js"].map(b=>a.l(b))).then(()=>b(17814)))}]; - -//# debugId=55aac568-e488-0ddd-a6a3-ab3ef838abe4 -//# sourceMappingURL=%5Broot-of-the-server%5D__6a2afcd0._.js.map \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__6a2afcd0._.js.map b/.next/server/chunks/ssr/[root-of-the-server]__6a2afcd0._.js.map deleted file mode 100644 index e5c902600..000000000 --- a/.next/server/chunks/ssr/[root-of-the-server]__6a2afcd0._.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": [], - "debugId": "55aac568-e488-0ddd-a6a3-ab3ef838abe4", - "sections": [ - {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["../../../../components/ui/Button.tsx","../../../../components/analytics/useAnalytics.ts","../../../../components/analytics/analytics-events.ts","../../../../components/blocks/HeroVideo.tsx","../../../../components/blocks/SubCompanyTiles.tsx","../../../../components/blocks/CompetenceBentoGrid.tsx","../../../../components/blocks/ReferencesSlider.tsx"],"sourcesContent":["import React from 'react';\nimport Link from 'next/link';\nimport { cn } from './utils';\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes {\n variant?:\n | 'primary'\n | 'secondary'\n | 'accent'\n | 'saturated'\n | 'outline'\n | 'ghost'\n | 'white'\n | 'destructive';\n size?: 'sm' | 'md' | 'lg' | 'xl';\n href?: string;\n className?: string;\n children?: React.ReactNode;\n}\n\nexport const buttonBaseStyles =\n 'inline-flex items-center justify-center whitespace-nowrap rounded-full font-semibold transition-all duration-500 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none active:scale-95 hover:-translate-y-1 hover:scale-[1.02] relative overflow-hidden group/btn isolate';\n\nexport const buttonVariantsMap = {\n primary: 'bg-primary text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl',\n secondary: 'bg-secondary text-white shadow-md hover:shadow-secondary/30 hover:shadow-2xl',\n accent: 'bg-accent text-primary-dark shadow-md hover:shadow-accent/30 hover:shadow-2xl',\n saturated: 'bg-saturated text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl',\n outline:\n 'border-2 border-primary bg-transparent text-primary hover:text-white hover:shadow-primary/20 hover:shadow-xl',\n ghost: 'text-primary hover:shadow-lg',\n white:\n 'bg-white text-primary shadow-md hover:shadow-primary/30 hover:shadow-2xl hover:text-white',\n destructive:\n 'bg-destructive text-destructive-foreground shadow-md hover:shadow-destructive/30 hover:shadow-2xl',\n};\n\nexport const buttonSizesMap = {\n sm: 'h-9 px-4 text-sm md:text-base',\n md: 'h-11 px-6 text-base md:text-lg',\n lg: 'h-14 px-5 md:px-8 text-base md:text-lg',\n xl: 'h-16 px-6 md:px-10 text-lg md:text-xl',\n};\n\nexport const buttonOverlayColorsMap = {\n primary: 'bg-primary-dark',\n secondary: 'bg-secondary-light',\n accent: 'bg-accent-dark',\n saturated: 'bg-primary',\n outline: 'bg-primary',\n ghost: 'bg-primary-light/10',\n white: 'bg-primary-light',\n destructive: 'bg-destructive/90',\n};\n\nexport function getButtonClasses(variant: keyof typeof buttonVariantsMap = 'primary', size: keyof typeof buttonSizesMap = 'md', className?: string) {\n return cn(buttonBaseStyles, buttonVariantsMap[variant], buttonSizesMap[size], className);\n}\n\nexport function ButtonOverlay({ variant = 'primary' }: { variant?: keyof typeof buttonVariantsMap }) {\n return (\n \n );\n}\n\nexport function Button({\n className,\n variant = 'primary',\n size = 'md',\n href,\n ...props\n}: ButtonProps) {\n const styles = getButtonClasses(variant, size, className);\n\n const content = (\n <>\n \n {props.children}\n \n \n \n );\n\n if (href) {\n return (\n \n {content}\n \n );\n }\n\n return (\n \n );\n}\n","'use client';\n\nimport { useCallback } from 'react';\nimport { getAppServices } from '@/lib/services/create-services';\nimport type { AnalyticsEventProperties } from '@/lib/services/analytics/analytics-service';\n\n/**\n * Custom hook for tracking analytics events with Umami.\n * \n * Provides a convenient way to track custom events throughout your application.\n * \n * @example\n * ```tsx\n * import { useAnalytics } from '@/components/analytics/useAnalytics';\n * \n * function MyComponent() {\n * const { trackEvent, trackPageview } = useAnalytics();\n * \n * const handleButtonClick = () => {\n * trackEvent('button_click', {\n * button_id: 'cta-primary',\n * page: 'homepage'\n * });\n * };\n * \n * return ;\n * }\n * ```\n * \n * @example\n * ```tsx\n * // Track a custom pageview\n * const { trackPageview } = useAnalytics();\n * trackPageview('/custom-path?param=value');\n * ```\n */\nexport function useAnalytics() {\n const services = getAppServices();\n\n /**\n * Track a custom event with optional properties.\n * \n * @param eventName - The name of the event to track\n * @param properties - Optional event properties (metadata)\n */\n const trackEvent = useCallback(\n (eventName: string, properties?: AnalyticsEventProperties) => {\n services.analytics.track(eventName, properties);\n \n if (process.env.NODE_ENV === 'development') {\n console.log('[Umami] Tracked event:', eventName, properties);\n }\n },\n [services]\n );\n\n /**\n * Track a pageview (useful for custom navigation or SPA routing).\n * \n * @param url - The URL to track (defaults to current location)\n */\n const trackPageview = useCallback(\n (url?: string) => {\n services.analytics.trackPageview(url);\n \n if (process.env.NODE_ENV === 'development') {\n console.log('[Umami] Tracked pageview:', url ?? 'current location');\n }\n },\n [services]\n );\n\n return {\n trackEvent,\n trackPageview,\n };\n}\n","/**\n * Analytics Events Utility\n *\n * Centralized definitions for common analytics events and their properties.\n * This helps maintain consistency across the application and makes it easier\n * to track meaningful events.\n *\n * @example\n * ```tsx\n * import { useAnalytics } from '@/components/analytics/useAnalytics';\n * import { AnalyticsEvents } from '@/components/analytics/analytics-events';\n *\n * function ProductPage() {\n * const { trackEvent } = useAnalytics();\n *\n * const handleAddToCart = (productId: string, productName: string) => {\n * trackEvent(AnalyticsEvents.PRODUCT_ADD_TO_CART, {\n * product_id: productId,\n * product_name: productName,\n * page: 'product-detail'\n * });\n * };\n *\n * return ;\n * }\n * ```\n */\n\nexport const AnalyticsEvents = {\n // Page & Navigation Events\n PAGE_VIEW: 'pageview',\n PAGE_SCROLL: 'page_scroll',\n PAGE_EXIT: 'page_exit',\n SCROLL_DEPTH: 'scroll_depth',\n\n // User Interaction Events\n BUTTON_CLICK: 'button_click',\n LINK_CLICK: 'link_click',\n FORM_SUBMIT: 'form_submit',\n FORM_START: 'form_start',\n FORM_ERROR: 'form_error',\n FORM_FIELD_FOCUS: 'form_field_focus',\n\n // E-commerce Events\n PRODUCT_VIEW: 'product_view',\n PRODUCT_ADD_TO_CART: 'product_add_to_cart',\n PRODUCT_REMOVE_FROM_CART: 'product_remove_from_cart',\n PRODUCT_PURCHASE: 'product_purchase',\n PRODUCT_WISHLIST_ADD: 'product_wishlist_add',\n PRODUCT_WISHLIST_REMOVE: 'product_wishlist_remove',\n PRODUCT_TAB_SWITCH: 'product_tab_switch',\n\n // Search & Filter Events\n SEARCH: 'search',\n FILTER_APPLY: 'filter_apply',\n FILTER_CLEAR: 'filter_clear',\n\n // User Account Events\n USER_SIGNUP: 'user_signup',\n USER_LOGIN: 'user_login',\n USER_LOGOUT: 'user_logout',\n USER_PROFILE_UPDATE: 'user_profile_update',\n\n // Content Events\n BLOG_POST_VIEW: 'blog_post_view',\n VIDEO_PLAY: 'video_play',\n VIDEO_PAUSE: 'video_pause',\n VIDEO_COMPLETE: 'video_complete',\n DOWNLOAD: 'download',\n\n // UI Interaction Events\n MODAL_OPEN: 'modal_open',\n MODAL_CLOSE: 'modal_close',\n TOGGLE_SWITCH: 'toggle_switch',\n ACCORDION_TOGGLE: 'accordion_toggle',\n TAB_SWITCH: 'tab_switch',\n TOC_CLICK: 'toc_click',\n\n // Error & Performance Events\n ERROR: 'error',\n PERFORMANCE: 'performance',\n API_ERROR: 'api_error',\n API_SUCCESS: 'api_success',\n\n // Custom Business Events\n QUOTE_REQUEST: 'quote_request',\n CONTACT_FORM_SUBMIT: 'contact_form_submit',\n NEWSLETTER_SUBSCRIBE: 'newsletter_subscribe',\n BROCHURE_DOWNLOAD: 'brochure_download',\n} as const;\n\n/**\n * Type-safe event properties for common events\n */\nexport type AnalyticsEventName = (typeof AnalyticsEvents)[keyof typeof AnalyticsEvents];\n\n/**\n * Common event property helpers\n */\nexport const AnalyticsEventProperties = {\n /**\n * Create properties for a product event\n */\n product: (productId: string, productName: string, category?: string) => ({\n product_id: productId,\n product_name: productName,\n product_category: category,\n }),\n\n /**\n * Create properties for a form event\n */\n form: (formId: string, formName: string, fields?: Record) => ({\n form_id: formId,\n form_name: formName,\n form_fields: fields,\n }),\n\n /**\n * Create properties for a search event\n */\n search: (query: string, filters?: Record) => ({\n search_query: query,\n search_filters: filters,\n }),\n\n /**\n * Create properties for a navigation event\n */\n navigation: (from: string, to: string) => ({\n from_page: from,\n to_page: to,\n }),\n} as const;\n","'use client';\n\nimport { Button } from '@/components/ui/Button';\nimport Image from 'next/image';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { useState, useEffect } from 'react';\n\ninterface HeroVideoProps {\n data?: any;\n title?: string;\n subtitle?: string;\n description?: string;\n videoUrl?: string;\n posterImage?: any;\n ctaLabel?: string;\n ctaHref?: string;\n linkText?: string;\n linkHref?: string;\n secondaryCtaLabel?: string;\n secondaryCtaHref?: string;\n badge?: string;\n}\n\nexport function HeroVideo(props: HeroVideoProps) {\n const { data } = props;\n const title = props.title || data?.title || 'DIE EXPERTEN FÜR KABELTIEFBAU';\n const subtitle = props.subtitle || props.description || data?.subtitle || 'Wir verbinden Infrastruktur mit Präzision. Von Horizontalbohrungen bis zu komplexen Leitungsnetzen.';\n const videoUrl = props.videoUrl || data?.videoUrl || '/assets/dummy-hero.mp4';\n\n \n const posterSrc = data?.posterImage?.url || \"/assets/photos/DJI_0048.JPG\";\n const posterAlt = data?.posterImage?.alt || \"E-TIB Gruppe Baustelle\";\n\n const ctaLabel = props.ctaLabel || props.linkText || data?.ctaLabel || 'Unternehmen entdecken';\n const ctaHref = props.ctaHref || props.linkHref || data?.ctaHref || '#unternehmen';\n \n const secondaryCtaLabel = props.secondaryCtaLabel || data?.secondaryCtaLabel || 'Projekt anfragen';\n const secondaryCtaHref = props.secondaryCtaHref || data?.secondaryCtaHref || '/kontakt';\n\n return (\n
\n {/* Background color while video loads */}\n
\n \n {videoUrl && (\n \n )}\n \n {/* Cinematic Color Grading Overlay */}\n
\n \n {/* Dramatic Vignette & Fade to content */}\n
\n
\n \n
\n \n

KABELTIEFBAU').replace(/\\n/g, '
') }}\n />\n \n

\n {subtitle}\n

\n \n
\n \n \n \n
\n \n

\n
\n );\n}\n","'use client';\n\nimport * as React from 'react';\nimport { motion, Variants } from 'framer-motion';\nimport Image from 'next/image';\n\ninterface SubCompanyTilesProps {\n badge?: string;\n title?: string;\n companies?: {\n title?: string;\n url?: string;\n backgroundImage?: string;\n }[];\n data?: any;\n}\n\nconst defaultCompanies = [\n {\n title: 'E-TIB GmbH',\n url: 'https://www.e-tib.com/',\n backgroundImage: '/assets/photos/DJI_0243.JPG',\n },\n {\n title: 'E-TIB Ingenieurgesellschaft mbH',\n url: 'https://www.etib-ing.com/',\n backgroundImage: '/assets/photos/DSC01137.JPG',\n },\n {\n title: 'NEMO GmbH',\n url: 'https://www.nemo-gmbh.de/',\n backgroundImage: '/assets/photos/DJI_0048.JPG',\n }\n];\n\nconst containerVariants: Variants = {\n hidden: { opacity: 0 },\n visible: {\n opacity: 1,\n transition: {\n staggerChildren: 0.15,\n },\n },\n};\n\nconst itemVariants: Variants = {\n hidden: { opacity: 0, y: 30 },\n visible: { opacity: 1, y: 0, transition: { duration: 0.8, ease: [0.16, 1, 0.3, 1] } },\n};\n\nexport function SubCompanyTiles(props: SubCompanyTilesProps) {\n const { data } = props;\n const badge = props.badge || data?.badge;\n const title = props.title || data?.title;\n const rawCompanies = props.companies || data?.companies;\n const companiesData = rawCompanies?.map((c: any) => ({\n title: c.title,\n url: c.url,\n backgroundImage: c.backgroundImage?.url || c.backgroundImage || '/assets/photos/DJI_0243.JPG',\n })) || defaultCompanies;\n \n return (\n
\n
\n \n {(badge || title) && (\n
\n {badge &&

{badge}

}\n {title &&

{title}

}\n
\n )}\n \n \n {companiesData.map((company: any, index: number) => {\n const CardWrapper = company.url ? 'a' : 'div';\n const wrapperProps = company.url ? { href: company.url, target: \"_blank\", rel: \"noopener noreferrer\" } : {};\n \n // Generate logo representation based on title\n const isEtib = company.title.includes('E-TIB');\n const isIng = company.title.includes('Ingenieur');\n const isNemo = company.title.includes('NEMO');\n \n return (\n \n \n
\n \n
\n \n {/* Heavy dark gradient overlay to make logos pop */}\n
\n \n
\n \n {/* LOGO RENDERING */}\n {isEtib ? (\n
\n
\n \n
\n {isIng && (\n
\n Ingenieurgesellschaft\n
\n )}\n
\n ) : isNemo ? (\n
\n
\n NEMO\n
\n
\n GmbH\n
\n
\n ) : (\n
\n {company.title}\n
\n )}\n \n
\n \n {/* Subtle Link Indicator */}\n {company.url && (\n
\n
\n Website Besuchen\n \n
\n
\n )}\n \n \n \n );\n })}\n \n
\n
\n );\n}\n","'use client';\n\nimport Link from 'next/link';\nimport Image from 'next/image';\nimport { motion } from 'framer-motion';\nimport { useState, useEffect } from 'react';\n\ninterface CompetenceBentoGridProps {\n badge?: string;\n title?: string;\n ctaLabel?: string;\n ctaHref?: string;\n items?: {\n title?: string;\n description?: string;\n tag?: string;\n image?: {\n url?: string;\n alt?: string;\n } | any;\n size?: 'large' | 'medium' | 'small' | 'accent';\n }[];\n data?: {\n badge?: string;\n title?: string;\n ctaLabel?: string;\n ctaHref?: string;\n items?: {\n title?: string;\n description?: string;\n tag?: string;\n image?: {\n url?: string;\n alt?: string;\n } | any;\n size?: 'large' | 'medium' | 'small' | 'accent';\n }[];\n };\n}\n\nexport function CompetenceBentoGrid(props: CompetenceBentoGridProps) {\n const { data } = props;\n const [isMounted, setIsMounted] = useState(false);\n \n useEffect(() => {\n setIsMounted(true);\n }, []);\n\n const badge = props.badge || data?.badge || 'Leistungsspektrum';\n const title = props.title || data?.title || 'Umfassende Lösungen für komplexe Netzwerke';\n const ctaLabel = props.ctaLabel || data?.ctaLabel || 'Alle Kompetenzen ansehen';\n const ctaHref = props.ctaHref || data?.ctaHref || '/kompetenzen';\n const items = props.items || data?.items || [];\n\n // Static fallback for SSR\n if (!isMounted) {\n return (\n
\n
\n
\n
\n

{badge}

\n

{title}

\n
\n
\n
\n {/* Simplified static grid */}\n
\n
\n
\n );\n }\n\n return (\n
\n
\n
\n
\n

{badge}

\n

{title}

\n
\n \n {ctaLabel}\n \n \n
\n\n
\n {items.map((item, idx) => {\n const isLarge = item.size === 'large';\n const isMedium = item.size === 'medium';\n const isAccent = item.size === 'accent';\n const imgSrc = item.image?.url;\n \n let gridClasses = \"rounded-2xl overflow-hidden relative group \";\n if (isLarge) gridClasses += \"md:col-span-2 md:row-span-2\";\n else if (isMedium) gridClasses += \"md:col-span-2 lg:col-span-2\";\n else if (isAccent) gridClasses += \"md:col-span-1 bg-primary text-white p-6 md:p-8 flex flex-col justify-center border-none shadow-md\";\n else gridClasses += \"md:col-span-1\";\n\n if (isAccent) {\n return (\n \n
\n

{item.title}

\n {item.description &&

{item.description}

}\n \n );\n }\n\n return (\n \n {!imgSrc && (\n
\n )}\n {imgSrc && (\n <>\n
\n \n
\n
\n \n )}\n \n
\n {item.tag && (\n \n {item.tag}\n \n )}\n

\n {item.title}\n

\n {item.description && (\n

\n {item.description}\n

\n )}\n
\n \n );\n })}\n
\n
\n
\n );\n}\n","'use client';\n\nimport * as React from 'react';\nimport { motion } from 'framer-motion';\nimport Link from 'next/link';\nimport Image from 'next/image';\n\nexport interface Reference {\n id: string;\n title: string;\n slug: string;\n category: string;\n image?: {\n url: string;\n alt?: string;\n } | string | null;\n}\n\ninterface ReferencesSliderProps {\n references?: Reference[];\n badge?: string;\n title?: string;\n description?: string;\n ctaLabel?: string;\n ctaHref?: string;\n data?: {\n badge?: string;\n title?: string;\n description?: string;\n ctaLabel?: string;\n ctaHref?: string;\n }\n}\n\nexport function ReferencesSlider(props: ReferencesSliderProps) {\n const { data } = props;\n const references = props.references || [];\n const containerRef = React.useRef(null);\n \n const badge = props.badge || data?.badge || 'Ausgewählte Projekte';\n const title = props.title || data?.title || 'Referenzen & Erfolge';\n const description = props.description || data?.description || 'Ein Auszug unserer erfolgreich abgeschlossenen Projekte im Bereich Kabeltiefbau, Bohrtechnik und Netzinfrastruktur.';\n const ctaLabel = props.ctaLabel || data?.ctaLabel || 'Alle Referenzen ansehen';\n const ctaHref = props.ctaHref || data?.ctaHref || '/referenzen';\n\n if (!references || references.length === 0) return null;\n\n // Fallback images pool if CMS doesn't provide one\n const fallbacks = [\n '/assets/photos/DSC01123.JPG',\n '/assets/photos/DSC00850.JPG',\n '/assets/photos/DSC01129.JPG',\n '/assets/photos/DSC00010.JPG',\n ];\n\n return (\n
\n
\n \n
\n
\n

{badge}

\n

{title}

\n
\n

\n {description}\n

\n
\n\n
\n
\n {references.map((ref, i) => {\n const imgSrc = (ref.image && typeof ref.image === 'object' && ref.image.url) \n ? ref.image.url \n : fallbacks[i % fallbacks.length];\n\n return (\n \n
\n \n
\n \n
\n \n {ref.category}\n \n

{ref.title}

\n
\n
\n \n );\n })}\n
\n
\n\n
\n \n {ctaLabel}\n \n \n
\n
\n );\n}\n\n"],"names":[],"mappings":"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"}}] -} \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js b/.next/server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js new file mode 100644 index 000000000..a347a4e50 --- /dev/null +++ b/.next/server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js @@ -0,0 +1,5 @@ +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="98fded9a-4054-3a66-8c66-855b6ee417c7")}catch(e){}}(); +module.exports=[223295,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored.contexts.HooksClientContext},575937,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored.contexts.ServerInsertedHtml},918622,(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"))},556704,(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"))},832319,(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"))},120635,(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"))},659440,(a,b,c)=>{"use strict";b.exports=a.r(918622)},526156,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored["react-ssr"].ReactJsxRuntime},150765,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored["react-ssr"].React},805433,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored.contexts.AppRouterContext},770173,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored["react-ssr"].ReactServerDOMTurbopackClient},493633,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored["react-ssr"].ReactDOM},403988,(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}},116820,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"warnOnce",{enumerable:!0,get:function(){return d}});let d=a=>{}},463652,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}},411550,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return f}});let d=a.r(150765),e=()=>{};function f(a){let{headManager:b,reduceComponentsToState:c}=a;function f(){if(b&&b.mountedInstances){let a=d.Children.toArray(Array.from(b.mountedInstances).filter(Boolean));b.updateHead(c(a))}}return b?.mountedInstances?.add(a.children),f(),e(()=>(b?.mountedInstances?.add(a.children),()=>{b?.mountedInstances?.delete(a.children)})),e(()=>(b&&(b._pendingUpdate=f),()=>{b&&(b._pendingUpdate=f)})),null}},802396,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored.contexts.HeadManagerContext},308589,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return p},defaultHead:function(){return l}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(463652),g=a.r(403988),h=a.r(526156),i=g._(a.r(150765)),j=f._(a.r(411550)),k=a.r(802396);function l(){return[(0,h.jsx)("meta",{charSet:"utf-8"},"charset"),(0,h.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function m(a,b){return"string"==typeof b||"number"==typeof b?a:b.type===i.default.Fragment?a.concat(i.default.Children.toArray(b.props.children).reduce((a,b)=>"string"==typeof b||"number"==typeof b?a:a.concat(b),[])):a.concat(b)}a.r(116820);let n=["name","httpEquiv","charSet","itemProp"];function o(a){let b,c,d,e;return a.reduce(m,[]).reverse().concat(l().reverse()).filter((b=new Set,c=new Set,d=new Set,e={},a=>{let f=!0,g=!1;if(a.key&&"number"!=typeof a.key&&a.key.indexOf("$")>0){g=!0;let c=a.key.slice(a.key.indexOf("$")+1);b.has(c)?f=!1:b.add(c)}switch(a.type){case"title":case"base":c.has(a.type)?f=!1:c.add(a.type);break;case"meta":for(let b=0,c=n.length;b{let c=a.key||b;return i.default.cloneElement(a,{key:c})})}let p=function({children:a}){let b=(0,i.useContext)(k.HeadManagerContext);return(0,h.jsx)(j.default,{reduceComponentsToState:o,headManager:b,children: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)},857568,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return k},getImageProps:function(){return j}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(463652),g=a.r(724810),h=a.r(739969),i=f._(a.r(74446));function j(a){let{props:b}=(0,g.getImgProps)(a,{defaultLoader:i.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[25,50,75,100],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[a,c]of Object.entries(b))void 0===c&&delete b[a];return{props:b}}let k=h.Image},110644,(a,b,c)=>{b.exports=a.r(857568)},912466,a=>{"use strict";var b=a.i(526156),c=a.i(841757),d=a.i(829091);let e={primary:"bg-primary text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl",secondary:"bg-secondary text-white shadow-md hover:shadow-secondary/30 hover:shadow-2xl",accent:"bg-accent text-primary-dark shadow-md hover:shadow-accent/30 hover:shadow-2xl",saturated:"bg-saturated text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl",outline:"border-2 border-primary bg-transparent text-primary hover:text-white hover:shadow-primary/20 hover:shadow-xl",ghost:"text-primary hover:shadow-lg",white:"bg-white text-primary shadow-md hover:shadow-primary/30 hover:shadow-2xl hover:text-white",destructive:"bg-destructive text-destructive-foreground shadow-md hover:shadow-destructive/30 hover:shadow-2xl"},f={sm:"h-9 px-4 text-sm md:text-base",md:"h-11 px-6 text-base md:text-lg",lg:"h-14 px-5 md:px-8 text-base md:text-lg",xl:"h-16 px-6 md:px-10 text-lg md:text-xl"},g={primary:"bg-primary-dark",secondary:"bg-secondary-light",accent:"bg-accent-dark",saturated:"bg-primary",outline:"bg-primary",ghost:"bg-primary-light/10",white:"bg-primary-light",destructive:"bg-destructive/90"};function h({variant:a="primary"}){return(0,b.jsx)("span",{className:(0,d.cn)("absolute inset-0 translate-y-[101%] group-hover/btn:translate-y-0 transition-transform duration-500 ease-out",g[a])})}function i({className:a,variant:g="primary",size:i="md",href:j,...k}){let l=function(a="primary",b="md",c){return(0,d.cn)("inline-flex items-center justify-center whitespace-nowrap rounded-full font-semibold transition-all duration-500 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none active:scale-95 hover:-translate-y-1 hover:scale-[1.02] relative overflow-hidden group/btn isolate",e[a],f[b],c)}(g,i,a),m=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:(0,d.cn)("relative z-10 flex items-center justify-center gap-2 transition-colors duration-500","white"===g?"group-hover/btn:text-primary-dark":""),children:k.children}),(0,b.jsx)(h,{variant:g})]});return j?(0,b.jsx)(c.default,{href:j,className:l,children:m}):(0,b.jsx)("button",{className:l,...k,children:m})}a.s(["Button",()=>i])},784446,a=>{"use strict";function b(a,b){let f=b&&b.cache?b.cache:g,h=b&&b.serializer?b.serializer:e;return(b&&b.strategy?b.strategy:function(a,b){var e,f;let g=1===a.length?c:d;return e=b.cache.create(),f=b.serializer,g.bind(this,a,e,f)})(a,{cache:f,serializer:h})}function c(a,b,c,d){let e=null==d||"number"==typeof d||"boolean"==typeof d?d:c(d),f=b.get(e);return void 0===f&&(f=a.call(this,d),b.set(e,f)),f}function d(a,b,c){let d=Array.prototype.slice.call(arguments,3),e=c(d),f=b.get(e);return void 0===f&&(f=a.apply(this,d),b.set(e,f)),f}let e=function(){return JSON.stringify(arguments)};class f{cache;constructor(){this.cache=Object.create(null)}get(a){return this.cache[a]}set(a,b){this.cache[a]=b}}let g={create:function(){return new f}};a.s(["memoize",()=>b,"strategies",0,{variadic:function(a,b){var c,e;return c=b.cache.create(),e=b.serializer,d.bind(this,a,c,e)},monadic:function(a,b){var d,e;return d=b.cache.create(),e=b.serializer,c.bind(this,a,d,e)}}])},698565,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"BailoutToCSR",{enumerable:!0,get:function(){return e}});let d=a.r(332278);function e({reason:a,children:b}){throw Object.defineProperty(new d.BailoutToCSRError(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}},251204,(a,b,c)=>{"use strict";function d(a){return a.split("/").map(a=>encodeURIComponent(a)).join("/")}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"encodeURIPath",{enumerable:!0,get:function(){return d}})},587716,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"PreloadChunks",{enumerable:!0,get:function(){return i}});let d=a.r(526156),e=a.r(493633),f=a.r(556704),g=a.r(251204),h=a.r(215658);function i({moduleIds:a}){let b=f.workAsyncStorage.getStore();if(void 0===b)return null;let c=[];if(b.reactLoadableManifest&&a){let d=b.reactLoadableManifest;for(let b of a){if(!d[b])continue;let a=d[b].files;c.push(...a)}}if(0===c.length)return null;let i=(0,h.getDeploymentIdQueryOrEmptyString)();return(0,d.jsx)(d.Fragment,{children:c.map(a=>{let c=`${b.assetPrefix}/_next/${(0,g.encodeURIPath)(a)}${i}`;return a.endsWith(".css")?(0,d.jsx)("link",{precedence:"dynamic",href:c,rel:"stylesheet",as:"style",nonce:b.nonce},a):((0,e.preload)(c,{as:"script",fetchPriority:"low",nonce:b.nonce}),null)})})}},254723,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return j}});let d=a.r(526156),e=a.r(150765),f=a.r(698565),g=a.r(587716);function h(a){return{default:a&&"default"in a?a.default:a}}let i={loader:()=>Promise.resolve(h(()=>null)),loading:null,ssr:!0},j=function(a){let b={...i,...a},c=(0,e.lazy)(()=>b.loader().then(h)),j=b.loading;function k(a){let h=j?(0,d.jsx)(j,{isLoading:!0,pastDelay:!0,error:null}):null,i=!b.ssr||!!b.loading,k=i?e.Suspense:e.Fragment,l=b.ssr?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(g.PreloadChunks,{moduleIds:b.modules}),(0,d.jsx)(c,{...a})]}):(0,d.jsx)(f.BailoutToCSR,{reason:"next/dynamic",children:(0,d.jsx)(c,{...a})});return(0,d.jsx)(k,{...i?{fallback:h}:{},children:l})}return k.displayName="LoadableComponent",k}},411487,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return e}});let d=a.r(463652)._(a.r(254723));function e(a,b){let c={};"function"==typeof a&&(c.loader=a);let e={...c,...b};return(0,d.default)({...e,modules:e.loadableGenerated?.modules})}("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)},427402,a=>{"use strict";let b=a.i(150765).useEffect;a.s(["useIsomorphicLayoutEffect",()=>b],427402)}]; + +//# debugId=98fded9a-4054-3a66-8c66-855b6ee417c7 +//# sourceMappingURL=%5Broot-of-the-server%5D__7fda9c9f._.js.map \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js.map b/.next/server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js.map new file mode 100644 index 000000000..3984907bc --- /dev/null +++ b/.next/server/chunks/ssr/[root-of-the-server]__7fda9c9f._.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": [], + "debugId": "98fded9a-4054-3a66-8c66-855b6ee417c7", + "sections": [ + {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/contexts/hooks-client-context.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/contexts/server-inserted-html.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/module.compiled.js","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/ssr/react.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/contexts/app-router-context.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/ssr/react-server-dom-turbopack-client.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/ssr/react-dom.ts","../../../../node_modules/.pnpm/%40swc%2Bhelpers%400.5.15/node_modules/%40swc/helpers/cjs/_interop_require_wildcard.cjs","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/utils/warn-once.ts","../../../../node_modules/.pnpm/%40swc%2Bhelpers%400.5.15/node_modules/%40swc/helpers/cjs/_interop_require_default.cjs","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/side-effect.tsx","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/contexts/head-manager-context.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/head.tsx","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/image-external.tsx","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/image.js","../../../../components/ui/Button.tsx","../../../../node_modules/.pnpm/%40formatjs%2Bfast-memoize%403.1.1/node_modules/%40formatjs/fast-memoize/index.js","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/lazy-dynamic/dynamic-bailout-to-csr.tsx","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/encode-uri-path.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/lazy-dynamic/preload-chunks.tsx","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/lazy-dynamic/loadable.tsx","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/app-dynamic.tsx","../../../../node_modules/.pnpm/framer-motion%4012.38.0_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/framer-motion/src/utils/is-browser.ts","../../../../node_modules/.pnpm/framer-motion%4012.38.0_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/framer-motion/src/utils/use-isomorphic-effect.ts"],"sourcesContent":["module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].HooksClientContext\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].ServerInsertedHtml\n","if (process.env.NEXT_RUNTIME === 'edge') {\n module.exports = require('next/dist/server/route-modules/app-page/module.js')\n} else {\n if (process.env.__NEXT_EXPERIMENTAL_REACT) {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.prod.js')\n }\n }\n } else {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.prod.js')\n }\n }\n }\n}\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactJsxRuntime\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.React\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].AppRouterContext\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactServerDOMTurbopackClient\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactDOM\n","\"use strict\";\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\nexports._ = _interop_require_wildcard;\n","let warnOnce = (_: string) => {}\nif (process.env.NODE_ENV !== 'production') {\n const warnings = new Set()\n warnOnce = (msg: string) => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\nexport { warnOnce }\n","\"use strict\";\n\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nexports._ = _interop_require_default;\n","import type React from 'react'\nimport { Children, useEffect, useLayoutEffect, type JSX } from 'react'\n\ntype State = JSX.Element[] | undefined\n\nexport type SideEffectProps = {\n reduceComponentsToState: (components: Array>) => State\n handleStateChange?: (state: State) => void\n headManager: any\n children: React.ReactNode\n}\n\nconst isServer = typeof window === 'undefined'\nconst useClientOnlyLayoutEffect = isServer ? () => {} : useLayoutEffect\nconst useClientOnlyEffect = isServer ? () => {} : useEffect\n\nexport default function SideEffect(props: SideEffectProps) {\n const { headManager, reduceComponentsToState } = props\n\n function emitChange() {\n if (headManager && headManager.mountedInstances) {\n const headElements = Children.toArray(\n Array.from(headManager.mountedInstances as Set).filter(\n Boolean\n )\n ) as React.ReactElement[]\n headManager.updateHead(reduceComponentsToState(headElements))\n }\n }\n\n if (isServer) {\n headManager?.mountedInstances?.add(props.children)\n emitChange()\n }\n\n useClientOnlyLayoutEffect(() => {\n headManager?.mountedInstances?.add(props.children)\n return () => {\n headManager?.mountedInstances?.delete(props.children)\n }\n })\n\n // We need to call `updateHead` method whenever the `SideEffect` is trigger in all\n // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s\n // being rendered, we only trigger the method from the last one.\n // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`\n // singleton in the layout effect pass, and actually trigger it in the effect pass.\n useClientOnlyLayoutEffect(() => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n return () => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n }\n })\n\n useClientOnlyEffect(() => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n return () => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n }\n })\n\n return null\n}\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].HeadManagerContext\n","'use client'\n\nimport React, { useContext, type JSX } from 'react'\nimport Effect from './side-effect'\nimport { HeadManagerContext } from './head-manager-context.shared-runtime'\nimport { warnOnce } from './utils/warn-once'\n\nexport function defaultHead(): JSX.Element[] {\n const head = [\n ,\n ,\n ]\n return head\n}\n\nfunction onlyReactElement(\n list: Array>,\n child: React.ReactElement | number | string\n): Array> {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === 'string' || typeof child === 'number') {\n return list\n }\n // Adds support for React.Fragment\n if (child.type === React.Fragment) {\n return list.concat(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n React.Children.toArray(child.props.children).reduce(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n (\n fragmentList: Array>,\n fragmentChild: React.ReactElement | number | string\n ): Array> => {\n if (\n typeof fragmentChild === 'string' ||\n typeof fragmentChild === 'number'\n ) {\n return fragmentList\n }\n return fragmentList.concat(fragmentChild)\n },\n []\n )\n )\n }\n return list.concat(child)\n}\n\nconst METATYPES = ['name', 'httpEquiv', 'charSet', 'itemProp']\n\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like \n Also adds support for deduplicated `key` properties\n*/\nfunction unique() {\n const keys = new Set()\n const tags = new Set()\n const metaTypes = new Set()\n const metaCategories: { [metatype: string]: Set<string> } = {}\n\n return (h: React.ReactElement<any>) => {\n let isUnique = true\n let hasKey = false\n\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true\n const key = h.key.slice(h.key.indexOf('$') + 1)\n if (keys.has(key)) {\n isUnique = false\n } else {\n keys.add(key)\n }\n }\n\n // eslint-disable-next-line default-case\n switch (h.type) {\n case 'title':\n case 'base':\n if (tags.has(h.type)) {\n isUnique = false\n } else {\n tags.add(h.type)\n }\n break\n case 'meta':\n for (let i = 0, len = METATYPES.length; i < len; i++) {\n const metatype = METATYPES[i]\n if (!h.props.hasOwnProperty(metatype)) continue\n\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false\n } else {\n metaTypes.add(metatype)\n }\n } else {\n const category = h.props[metatype]\n const categories = metaCategories[metatype] || new Set()\n if ((metatype !== 'name' || !hasKey) && categories.has(category)) {\n isUnique = false\n } else {\n categories.add(category)\n metaCategories[metatype] = categories\n }\n }\n }\n break\n }\n\n return isUnique\n }\n}\n\n/**\n *\n * @param headChildrenElements List of children of <Head>\n */\nfunction reduceComponents(\n headChildrenElements: Array<React.ReactElement<any>>\n) {\n return headChildrenElements\n .reduce(onlyReactElement, [])\n .reverse()\n .concat(defaultHead().reverse())\n .filter(unique())\n .reverse()\n .map((c: React.ReactElement<any>, i: number) => {\n const key = c.key || i\n if (process.env.NODE_ENV === 'development') {\n // omit JSON-LD structured data snippets from the warning\n if (c.type === 'script' && c.props['type'] !== 'application/ld+json') {\n const srcMessage = c.props['src']\n ? `<script> tag with src=\"${c.props['src']}\"`\n : `inline <script>`\n warnOnce(\n `Do not add <script> tags using next/head (see ${srcMessage}). Use next/script instead. \\nSee more info here: https://nextjs.org/docs/messages/no-script-tags-in-head-component`\n )\n } else if (c.type === 'link' && c.props['rel'] === 'stylesheet') {\n warnOnce(\n `Do not add stylesheets using next/head (see <link rel=\"stylesheet\"> tag with href=\"${c.props['href']}\"). Use Document instead. \\nSee more info here: https://nextjs.org/docs/messages/no-stylesheets-in-head-component`\n )\n }\n }\n return React.cloneElement(c, { key })\n })\n}\n\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */\nfunction Head({ children }: { children: React.ReactNode }) {\n const headManager = useContext(HeadManagerContext)\n return (\n <Effect\n reduceComponentsToState={reduceComponents}\n headManager={headManager}\n >\n {children}\n </Effect>\n )\n}\n\nexport default Head\n","import type { ImageConfigComplete, ImageLoaderProps } from './image-config'\nimport type { ImageProps, ImageLoader, StaticImageData } from './get-img-props'\n\nimport { getImgProps } from './get-img-props'\nimport { Image } from '../../client/image-component'\n\n// This is replaced by webpack alias\nimport defaultLoader from 'next/dist/shared/lib/image-loader'\n\n/**\n * For more advanced use cases, you can call `getImageProps()`\n * to get the props that would be passed to the underlying `<img>` element,\n * and instead pass to them to another component, style, canvas, etc.\n *\n * Read more: [Next.js docs: `getImageProps`](https://nextjs.org/docs/app/api-reference/components/image#getimageprops)\n */\nexport function getImageProps(imgProps: ImageProps) {\n const { props } = getImgProps(imgProps, {\n defaultLoader,\n // This is replaced by webpack define plugin\n imgConf: process.env.__NEXT_IMAGE_OPTS as any as ImageConfigComplete,\n })\n // Normally we don't care about undefined props because we pass to JSX,\n // but this exported function could be used by the end user for anything\n // so we delete undefined props to clean it up a little.\n for (const [key, value] of Object.entries(props)) {\n if (value === undefined) {\n delete props[key as keyof typeof props]\n }\n }\n return { props }\n}\n\nexport default Image\n\nexport type { ImageProps, ImageLoaderProps, ImageLoader, StaticImageData }\n","module.exports = require('./dist/shared/lib/image-external')\n","import React from 'react';\nimport Link from 'next/link';\nimport { cn } from './utils';\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?:\n | 'primary'\n | 'secondary'\n | 'accent'\n | 'saturated'\n | 'outline'\n | 'ghost'\n | 'white'\n | 'destructive';\n size?: 'sm' | 'md' | 'lg' | 'xl';\n href?: string;\n className?: string;\n children?: React.ReactNode;\n}\n\nexport const buttonBaseStyles =\n 'inline-flex items-center justify-center whitespace-nowrap rounded-full font-semibold transition-all duration-500 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none active:scale-95 hover:-translate-y-1 hover:scale-[1.02] relative overflow-hidden group/btn isolate';\n\nexport const buttonVariantsMap = {\n primary: 'bg-primary text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl',\n secondary: 'bg-secondary text-white shadow-md hover:shadow-secondary/30 hover:shadow-2xl',\n accent: 'bg-accent text-primary-dark shadow-md hover:shadow-accent/30 hover:shadow-2xl',\n saturated: 'bg-saturated text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl',\n outline:\n 'border-2 border-primary bg-transparent text-primary hover:text-white hover:shadow-primary/20 hover:shadow-xl',\n ghost: 'text-primary hover:shadow-lg',\n white:\n 'bg-white text-primary shadow-md hover:shadow-primary/30 hover:shadow-2xl hover:text-white',\n destructive:\n 'bg-destructive text-destructive-foreground shadow-md hover:shadow-destructive/30 hover:shadow-2xl',\n};\n\nexport const buttonSizesMap = {\n sm: 'h-9 px-4 text-sm md:text-base',\n md: 'h-11 px-6 text-base md:text-lg',\n lg: 'h-14 px-5 md:px-8 text-base md:text-lg',\n xl: 'h-16 px-6 md:px-10 text-lg md:text-xl',\n};\n\nexport const buttonOverlayColorsMap = {\n primary: 'bg-primary-dark',\n secondary: 'bg-secondary-light',\n accent: 'bg-accent-dark',\n saturated: 'bg-primary',\n outline: 'bg-primary',\n ghost: 'bg-primary-light/10',\n white: 'bg-primary-light',\n destructive: 'bg-destructive/90',\n};\n\nexport function getButtonClasses(variant: keyof typeof buttonVariantsMap = 'primary', size: keyof typeof buttonSizesMap = 'md', className?: string) {\n return cn(buttonBaseStyles, buttonVariantsMap[variant], buttonSizesMap[size], className);\n}\n\nexport function ButtonOverlay({ variant = 'primary' }: { variant?: keyof typeof buttonVariantsMap }) {\n return (\n <span\n className={cn(\n 'absolute inset-0 translate-y-[101%] group-hover/btn:translate-y-0 transition-transform duration-500 ease-out',\n buttonOverlayColorsMap[variant]\n )}\n />\n );\n}\n\nexport function Button({\n className,\n variant = 'primary',\n size = 'md',\n href,\n ...props\n}: ButtonProps) {\n const styles = getButtonClasses(variant, size, className);\n\n const content = (\n <>\n <span\n className={cn(\n 'relative z-10 flex items-center justify-center gap-2 transition-colors duration-500',\n variant === 'white' ? 'group-hover/btn:text-primary-dark' : '',\n )}\n >\n {props.children}\n </span>\n <ButtonOverlay variant={variant} />\n </>\n );\n\n if (href) {\n return (\n <Link href={href} className={styles}>\n {content}\n </Link>\n );\n }\n\n return (\n <button className={styles} {...props}>\n {content}\n </button>\n );\n}\n","export function memoize(fn, options) {\n\tconst cache = options && options.cache ? options.cache : cacheDefault;\n\tconst serializer = options && options.serializer ? options.serializer : serializerDefault;\n\tconst strategy = options && options.strategy ? options.strategy : strategyDefault;\n\treturn strategy(fn, {\n\t\tcache,\n\t\tserializer\n\t});\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n\treturn value == null || typeof value === \"number\" || typeof value === \"boolean\";\n}\nfunction monadic(fn, cache, serializer, arg) {\n\tconst cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n\tlet computedValue = cache.get(cacheKey);\n\tif (typeof computedValue === \"undefined\") {\n\t\tcomputedValue = fn.call(this, arg);\n\t\tcache.set(cacheKey, computedValue);\n\t}\n\treturn computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n\tconst args = Array.prototype.slice.call(arguments, 3);\n\tconst cacheKey = serializer(args);\n\tlet computedValue = cache.get(cacheKey);\n\tif (typeof computedValue === \"undefined\") {\n\t\tcomputedValue = fn.apply(this, args);\n\t\tcache.set(cacheKey, computedValue);\n\t}\n\treturn computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n\treturn strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n\tconst strategy = fn.length === 1 ? monadic : variadic;\n\treturn assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n\treturn assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n\treturn assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nconst serializerDefault = function() {\n\treturn JSON.stringify(arguments);\n};\n//\n// Cache\n//\nclass ObjectWithoutPrototypeCache {\n\tcache;\n\tconstructor() {\n\t\tthis.cache = Object.create(null);\n\t}\n\tget(key) {\n\t\treturn this.cache[key];\n\t}\n\tset(key, value) {\n\t\tthis.cache[key] = value;\n\t}\n}\nconst cacheDefault = { create: function create() {\n\treturn new ObjectWithoutPrototypeCache();\n} };\nexport const strategies = {\n\tvariadic: strategyVariadic,\n\tmonadic: strategyMonadic\n};\n","'use client'\n\nimport type { ReactElement } from 'react'\nimport { BailoutToCSRError } from './bailout-to-csr'\n\ninterface BailoutToCSRProps {\n reason: string\n children: ReactElement\n}\n\n/**\n * If rendered on the server, this component throws an error\n * to signal Next.js that it should bail out to client-side rendering instead.\n */\nexport function BailoutToCSR({ reason, children }: BailoutToCSRProps) {\n if (typeof window === 'undefined') {\n throw new BailoutToCSRError(reason)\n }\n\n return children\n}\n","export function encodeURIPath(file: string) {\n return file\n .split('/')\n .map((p) => encodeURIComponent(p))\n .join('/')\n}\n","'use client'\n\nimport { preload } from 'react-dom'\n\nimport { workAsyncStorage } from '../../../server/app-render/work-async-storage.external'\nimport { encodeURIPath } from '../encode-uri-path'\nimport { getDeploymentIdQueryOrEmptyString } from '../deployment-id'\n\nexport function PreloadChunks({\n moduleIds,\n}: {\n moduleIds: string[] | undefined\n}) {\n // Early return in client compilation and only load requestStore on server side\n if (typeof window !== 'undefined') {\n return null\n }\n\n const workStore = workAsyncStorage.getStore()\n if (workStore === undefined) {\n return null\n }\n\n const allFiles = []\n\n // Search the current dynamic call unique key id in react loadable manifest,\n // and find the corresponding CSS files to preload\n if (workStore.reactLoadableManifest && moduleIds) {\n const manifest = workStore.reactLoadableManifest\n for (const key of moduleIds) {\n if (!manifest[key]) continue\n const chunks = manifest[key].files\n allFiles.push(...chunks)\n }\n }\n\n if (allFiles.length === 0) {\n return null\n }\n\n const dplId = getDeploymentIdQueryOrEmptyString()\n\n return (\n <>\n {allFiles.map((chunk) => {\n const href = `${workStore.assetPrefix}/_next/${encodeURIPath(chunk)}${dplId}`\n const isCss = chunk.endsWith('.css')\n // If it's stylesheet we use `precedence` o help hoist with React Float.\n // For stylesheets we actually need to render the CSS because nothing else is going to do it so it needs to be part of the component tree.\n // The `preload` for stylesheet is not optional.\n if (isCss) {\n return (\n <link\n key={chunk}\n // @ts-ignore\n precedence=\"dynamic\"\n href={href}\n rel=\"stylesheet\"\n as=\"style\"\n nonce={workStore.nonce}\n />\n )\n } else {\n // If it's script we use ReactDOM.preload to preload the resources\n preload(href, {\n as: 'script',\n fetchPriority: 'low',\n nonce: workStore.nonce,\n })\n return null\n }\n })}\n </>\n )\n}\n","import { Suspense, Fragment, lazy } from 'react'\nimport { BailoutToCSR } from './dynamic-bailout-to-csr'\nimport type { ComponentModule } from './types'\nimport { PreloadChunks } from './preload-chunks'\n\n// Normalize loader to return the module as form { default: Component } for `React.lazy`.\n// Also for backward compatible since next/dynamic allows to resolve a component directly with loader\n// Client component reference proxy need to be converted to a module.\nfunction convertModule<P>(\n mod: React.ComponentType<P> | ComponentModule<P> | undefined\n): {\n default: React.ComponentType<P>\n} {\n // Check \"default\" prop before accessing it, as it could be client reference proxy that could break it reference.\n // Cases:\n // mod: { default: Component }\n // mod: Component\n // mod: { default: proxy(Component) }\n // mod: proxy(Component)\n const hasDefault = mod && 'default' in mod\n return {\n default: hasDefault\n ? (mod as ComponentModule<P>).default\n : (mod as React.ComponentType<P>),\n }\n}\n\nconst defaultOptions = {\n loader: () => Promise.resolve(convertModule(() => null)),\n loading: null,\n ssr: true,\n}\n\ninterface LoadableOptions {\n loader?: () => Promise<React.ComponentType<any> | ComponentModule<any>>\n loading?: React.ComponentType<any> | null\n ssr?: boolean\n modules?: string[]\n}\n\nfunction Loadable(options: LoadableOptions) {\n const opts = { ...defaultOptions, ...options }\n const Lazy = lazy(() => opts.loader().then(convertModule))\n const Loading = opts.loading\n\n function LoadableComponent(props: any) {\n const fallbackElement = Loading ? (\n <Loading isLoading={true} pastDelay={true} error={null} />\n ) : null\n\n // If it's non-SSR or provided a loading component, wrap it in a suspense boundary\n const hasSuspenseBoundary = !opts.ssr || !!opts.loading\n const Wrap = hasSuspenseBoundary ? Suspense : Fragment\n const wrapProps = hasSuspenseBoundary ? { fallback: fallbackElement } : {}\n const children = opts.ssr ? (\n <>\n {/* During SSR, we need to preload the CSS from the dynamic component to avoid flash of unstyled content */}\n {typeof window === 'undefined' ? (\n <PreloadChunks moduleIds={opts.modules} />\n ) : null}\n <Lazy {...props} />\n </>\n ) : (\n <BailoutToCSR reason=\"next/dynamic\">\n <Lazy {...props} />\n </BailoutToCSR>\n )\n\n return <Wrap {...wrapProps}>{children}</Wrap>\n }\n\n LoadableComponent.displayName = 'LoadableComponent'\n\n return LoadableComponent\n}\n\nexport default Loadable\n","import type React from 'react'\nimport type { JSX } from 'react'\nimport Loadable from './lazy-dynamic/loadable'\n\nimport type {\n LoadableGeneratedOptions,\n DynamicOptionsLoadingProps,\n Loader,\n LoaderComponent,\n} from './lazy-dynamic/types'\n\nexport {\n type LoadableGeneratedOptions,\n type DynamicOptionsLoadingProps,\n type Loader,\n type LoaderComponent,\n}\n\nexport type DynamicOptions<P = {}> = LoadableGeneratedOptions & {\n loading?: () => JSX.Element | null\n loader?: Loader<P>\n loadableGenerated?: LoadableGeneratedOptions\n modules?: string[]\n ssr?: boolean\n}\n\nexport type LoadableOptions<P = {}> = DynamicOptions<P>\n\nexport type LoadableFn<P = {}> = (\n opts: LoadableOptions<P>\n) => React.ComponentType<P>\n\nexport type LoadableComponent<P = {}> = React.ComponentType<P>\n\nexport default function dynamic<P = {}>(\n dynamicOptions: DynamicOptions<P> | Loader<P>,\n options?: DynamicOptions<P>\n): React.ComponentType<P> {\n const loadableOptions: LoadableOptions<P> = {}\n\n if (typeof dynamicOptions === 'function') {\n loadableOptions.loader = dynamicOptions\n }\n\n const mergedOptions = {\n ...loadableOptions,\n ...options,\n }\n\n return Loadable({\n ...mergedOptions,\n modules: mergedOptions.loadableGenerated?.modules,\n })\n}\n","export const isBrowser = typeof window !== \"undefined\"\n","\"use client\"\n\nimport { useEffect, useLayoutEffect } from \"react\"\nimport { isBrowser } from \"./is-browser\"\n\nexport const useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect\n"],"names":["module","exports","require","vendored","HooksClientContext","ServerInsertedHtml","process","env","NEXT_RUNTIME","__NEXT_EXPERIMENTAL_REACT","NODE_ENV","TURBOPACK","ReactJsxRuntime","React","AppRouterContext","ReactServerDOMTurbopackClient","ReactDOM","warnOnce","_","warnings","Set","msg","has","console","warn","add","SideEffect","isServer","window","useClientOnlyLayoutEffect","useLayoutEffect","useClientOnlyEffect","useEffect","props","headManager","reduceComponentsToState","emitChange","mountedInstances","headElements","Children","toArray","Array","from","filter","Boolean","updateHead","children","delete","_pendingUpdate","HeadManagerContext","defaultHead","head","meta","charSet","name","content","onlyReactElement","list","child","type","Fragment","concat","reduce","fragmentList","fragmentChild","METATYPES","unique","keys","tags","metaTypes","metaCategories","h","isUnique","hasKey","key","indexOf","slice","i","len","length","metatype","hasOwnProperty","category","categories","reduceComponents","headChildrenElements","reverse","map","c","srcMessage","cloneElement","Head","useContext","Effect","getImageProps","imgProps","getImgProps","defaultLoader","imgConf","__NEXT_IMAGE_OPTS","value","Object","entries","undefined","Image","BailoutToCSR","reason","BailoutToCSRError","encodeURIPath","file","split","p","encodeURIComponent","join","PreloadChunks","moduleIds","workStore","workAsyncStorage","getStore","allFiles","reactLoadableManifest","manifest","chunks","files","push","dplId","getDeploymentIdQueryOrEmptyString","chunk","href","assetPrefix","isCss","endsWith","link","precedence","rel","as","nonce","preload","fetchPriority","convertModule","mod","hasDefault","default","defaultOptions","loader","Promise","resolve","loading","ssr","Loadable","options","opts","Lazy","lazy","then","Loading","LoadableComponent","fallbackElement","isLoading","pastDelay","error","hasSuspenseBoundary","Wrap","Suspense","wrapProps","fallback","modules","displayName","dynamic","dynamicOptions","loadableOptions","mergedOptions","loadableGenerated"],"mappings":"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","ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,17,18,19,20,21,22,23,24]}}] +} \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__a965d2a8._.js b/.next/server/chunks/ssr/[root-of-the-server]__a965d2a8._.js deleted file mode 100644 index 73dbebed9..000000000 --- a/.next/server/chunks/ssr/[root-of-the-server]__a965d2a8._.js +++ /dev/null @@ -1,5 +0,0 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="1d097e8c-f5f5-cac8-209e-99330b741a4f")}catch(e){}}(); -module.exports=[605365,(a,b,c)=>{b.exports=a.x("process",()=>require("process"))},410430,(a,b,c)=>{b.exports=a.x("async_hooks",()=>require("async_hooks"))},792509,(a,b,c)=>{b.exports=a.x("url",()=>require("url"))},427699,(a,b,c)=>{b.exports=a.x("events",()=>require("events"))},81111,(a,b,c)=>{b.exports=a.x("node:stream",()=>require("node:stream"))},446786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},224361,(a,b,c)=>{b.exports=a.x("util",()=>require("util"))},814747,(a,b,c)=>{b.exports=a.x("path",()=>require("path"))},522734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},233405,(a,b,c)=>{b.exports=a.x("child_process",()=>require("child_process"))},254799,(a,b,c)=>{b.exports=a.x("crypto",()=>require("crypto"))},362562,(a,b,c)=>{b.exports=a.x("module",()=>require("module"))},156823,(a,b,c)=>{b.exports=a.x("require-in-the-middle-a99415fa67232f7f",()=>require("require-in-the-middle-a99415fa67232f7f"))},285512,(a,b,c)=>{b.exports=a.x("import-in-the-middle-138cd032e4b029f3",()=>require("import-in-the-middle-138cd032e4b029f3"))},677652,(a,b,c)=>{b.exports=a.x("node:diagnostics_channel",()=>require("node:diagnostics_channel"))},687769,(a,b,c)=>{b.exports=a.x("node:events",()=>require("node:events"))},154993,(a,b,c)=>{b.exports=a.x("diagnostics_channel",()=>require("diagnostics_channel"))},874533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},902157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},812057,(a,b,c)=>{b.exports=a.x("node:util",()=>require("node:util"))},601457,(a,b,c)=>{b.exports=a.x("node:readline",()=>require("node:readline"))},925127,(a,b,c)=>{b.exports=a.x("node:worker_threads",()=>require("node:worker_threads"))},37702,(a,b,c)=>{b.exports=a.x("worker_threads",()=>require("worker_threads"))},347299,(a,b,c)=>{b.exports=a.x("node:http",()=>require("node:http"))},743698,(a,b,c)=>{b.exports=a.x("node:https",()=>require("node:https"))},727028,(a,b,c)=>{b.exports=a.x("node:zlib",()=>require("node:zlib"))},761095,(a,b,c)=>{b.exports=a.x("node:net",()=>require("node:net"))},685560,(a,b,c)=>{b.exports=a.x("node:tls",()=>require("node:tls"))},60438,(a,b,c)=>{b.exports=a.x("perf_hooks",()=>require("perf_hooks"))},74667,(a,b,c)=>{b.exports=a.x("import-in-the-middle-6ecbfda1283b1532",()=>require("import-in-the-middle-6ecbfda1283b1532"))},989801,a=>{a.v({name:"@fastify/otel",version:"0.18.0",description:"Official Fastify OpenTelemetry Instrumentation",main:"index.js",type:"commonjs",types:"types/index.d.ts",scripts:{lint:"eslint","lint:fix":"eslint --fix",test:"npm run test:all && npm run test:typescript","test:unit":"c8 --100 node --test","test:all":"npm run test:v4 && npm run test:v5","test:v4":"cross-env FASTIFY_VERSION=fastifyv4 npm run test:unit","test:v5":"cross-env FASTIFY_VERSION=fastify npm run test:unit","test:coverage":"c8 node --test && c8 report --reporter=html","test:typescript":"tsd"},repository:{type:"git",url:"git+https://github.com/fastify/otel.git"},keywords:["plugin","helper","fastify","instrumentation","otel","opentelemetry"],author:"Carlos Fuentes - @metcoder95 (https://metcoder.dev)",license:"MIT",bugs:{url:"https://github.com/fastify/otel/issues"},homepage:"https://github.com/fastify/otel#readme",funding:[{type:"github",url:"https://github.com/sponsors/fastify"},{type:"opencollective",url:"https://opencollective.com/fastify"}],devDependencies:{"@fastify/type-provider-typebox":"^6.1.0","@opentelemetry/context-async-hooks":"^2.0.0","@opentelemetry/contrib-test-utils":"^0.59.0","@opentelemetry/instrumentation-http":"^0.212.0","@opentelemetry/propagator-jaeger":"^2.0.0","@opentelemetry/sdk-trace-base":"^2.0.0","@opentelemetry/sdk-trace-node":"^2.2.0","@types/node":"^25.0.3",c8:"^11.0.0","cross-env":"^10.0.0",eslint:"^9.16.0",fastify:"^5.1.0","fastify-plugin":"^5.1.0",fastifyv4:"npm:fastify@^4.0.0",neostandard:"^0.12.0",tsd:"^0.33.0"},dependencies:{"@opentelemetry/core":"^2.0.0","@opentelemetry/instrumentation":"^0.212.0","@opentelemetry/semantic-conventions":"^1.28.0",minimatch:"^10.2.4"},peerDependencies:{"@opentelemetry/api":"^1.9.0"},tsd:{directory:"types"}})},385603,750470,70226,563305,a=>{"use strict";var b,c;let d="1.9.1",e=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/,f=function(a){let b=new Set([a]),c=new Set,d=a.match(e);if(!d)return()=>!1;let f={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=f.prerelease)return function(b){return b===a};function g(a){return c.add(a),!1}return function(a){if(b.has(a))return!0;if(c.has(a))return!1;let d=a.match(e);if(!d)return g(a);let h={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=h.prerelease||f.major!==h.major)return g(a);if(0===f.major)return f.minor===h.minor&&f.patch<=h.patch?(b.add(a),!0):g(a);return f.minor<=h.minor?(b.add(a),!0):g(a)}}(d),g=d.split(".")[0],h=Symbol.for(`opentelemetry.js.api.${g}`),i="object"==typeof globalThis?globalThis:"object"==typeof self?self:a.g;function j(a,b,c,e=!1){var f;let g=i[h]=null!=(f=i[h])?f:{version:d};if(!e&&g[a]){let b=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${a}`);return c.error(b.stack||b.message),!1}if(g.version!==d){let b=Error(`@opentelemetry/api: Registration of version v${g.version} for ${a} does not match previously registered API v${d}`);return c.error(b.stack||b.message),!1}return g[a]=b,c.debug(`@opentelemetry/api: Registered a global for ${a} v${d}.`),!0}function k(a){var b,c;let d=null==(b=i[h])?void 0:b.version;if(d&&f(d))return null==(c=i[h])?void 0:c[a]}function l(a,b){b.debug(`@opentelemetry/api: Unregistering a global for ${a} v${d}.`);let c=i[h];c&&delete c[a]}a.s(["getGlobal",()=>k,"registerGlobal",()=>j,"unregisterGlobal",()=>l],750470);class m{constructor(a){this._namespace=a.namespace||"DiagComponentLogger"}debug(...a){return n("debug",this._namespace,a)}error(...a){return n("error",this._namespace,a)}info(...a){return n("info",this._namespace,a)}warn(...a){return n("warn",this._namespace,a)}verbose(...a){return n("verbose",this._namespace,a)}}function n(a,b,c){let d=k("diag");if(d)return d[a](b,...c)}(c=b||(b={}))[c.NONE=0]="NONE",c[c.ERROR=30]="ERROR",c[c.WARN=50]="WARN",c[c.INFO=60]="INFO",c[c.DEBUG=70]="DEBUG",c[c.VERBOSE=80]="VERBOSE",c[c.ALL=9999]="ALL",a.s(["DiagLogLevel",()=>b],70226);class o{static instance(){return this._instance||(this._instance=new o),this._instance}constructor(){function a(a){return function(...b){let c=k("diag");if(c)return c[a](...b)}}const c=this,d=(a,d={logLevel:b.INFO})=>{var e,f,g;if(a===c){let a=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return c.error(null!=(e=a.stack)?e:a.message),!1}"number"==typeof d&&(d={logLevel:d});let h=k("diag"),i=function(a,c){function d(b,d){let e=c[b];return"function"==typeof e&&a>=d?e.bind(c):function(){}}return a<b.NONE?a=b.NONE:a>b.ALL&&(a=b.ALL),c=c||{},{error:d("error",b.ERROR),warn:d("warn",b.WARN),info:d("info",b.INFO),debug:d("debug",b.DEBUG),verbose:d("verbose",b.VERBOSE)}}(null!=(f=d.logLevel)?f:b.INFO,a);if(h&&!d.suppressOverrideMessage){let a=null!=(g=Error().stack)?g:"<failed to generate stacktrace>";h.warn(`Current logger will be overwritten from ${a}`),i.warn(`Current logger will overwrite one already registered from ${a}`)}return j("diag",i,c,!0)};c.setLogger=d,c.disable=()=>{l("diag",c)},c.createComponentLogger=a=>new m(a),c.verbose=a("verbose"),c.debug=a("debug"),c.info=a("info"),c.warn=a("warn"),c.error=a("error")}}a.s(["DiagAPI",()=>o],563305);let p=o.instance();a.s(["diag",0,p],385603)},234177,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node:inspector_7a4283c6._.js"].map(b=>a.l(b))).then(()=>b(237221)))},872097,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__fbc63b72._.js"].map(b=>a.l(b))).then(()=>b(524177)))},992965,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__9bfda315._.js"].map(b=>a.l(b))).then(()=>b(435235)))},846524,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__9eff91eb._.js"].map(b=>a.l(b))).then(()=>b(20549)))},189011,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__16d71f56._.js"].map(b=>a.l(b))).then(()=>b(800164)))},18291,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules__pnpm_8387bcd6._.js"].map(b=>a.l(b))).then(()=>b(282793)))}]; - -//# debugId=1d097e8c-f5f5-cac8-209e-99330b741a4f -//# sourceMappingURL=%5Broot-of-the-server%5D__a965d2a8._.js.map \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__b17bd572._.js b/.next/server/chunks/ssr/[root-of-the-server]__b17bd572._.js deleted file mode 100644 index fc5ee6522..000000000 --- a/.next/server/chunks/ssr/[root-of-the-server]__b17bd572._.js +++ /dev/null @@ -1,5 +0,0 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="6f62d24f-160c-b4ae-9e88-1fa448965f78")}catch(e){}}(); -module.exports=[324725,(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"))},64293,(a,b,c)=>{b.exports=a.x("pino-2e79642258e38174",()=>require("pino-2e79642258e38174"))},274209,281682,a=>{"use strict";var b=a.i(150765),c=a.i(475625);function d(){let a=(0,c.getAppServices)();return{trackEvent:(0,b.useCallback)((b,c)=>{a.analytics.track(b,c)},[a]),trackPageview:(0,b.useCallback)(b=>{a.analytics.trackPageview(b)},[a])}}a.s(["useAnalytics",()=>d],274209),a.s(["AnalyticsEvents",0,{PAGE_VIEW:"pageview",PAGE_SCROLL:"page_scroll",PAGE_EXIT:"page_exit",SCROLL_DEPTH:"scroll_depth",BUTTON_CLICK:"button_click",LINK_CLICK:"link_click",FORM_SUBMIT:"form_submit",FORM_START:"form_start",FORM_ERROR:"form_error",FORM_FIELD_FOCUS:"form_field_focus",PRODUCT_VIEW:"product_view",PRODUCT_ADD_TO_CART:"product_add_to_cart",PRODUCT_REMOVE_FROM_CART:"product_remove_from_cart",PRODUCT_PURCHASE:"product_purchase",PRODUCT_WISHLIST_ADD:"product_wishlist_add",PRODUCT_WISHLIST_REMOVE:"product_wishlist_remove",PRODUCT_TAB_SWITCH:"product_tab_switch",SEARCH:"search",FILTER_APPLY:"filter_apply",FILTER_CLEAR:"filter_clear",USER_SIGNUP:"user_signup",USER_LOGIN:"user_login",USER_LOGOUT:"user_logout",USER_PROFILE_UPDATE:"user_profile_update",BLOG_POST_VIEW:"blog_post_view",VIDEO_PLAY:"video_play",VIDEO_PAUSE:"video_pause",VIDEO_COMPLETE:"video_complete",DOWNLOAD:"download",MODAL_OPEN:"modal_open",MODAL_CLOSE:"modal_close",TOGGLE_SWITCH:"toggle_switch",ACCORDION_TOGGLE:"accordion_toggle",TAB_SWITCH:"tab_switch",TOC_CLICK:"toc_click",ERROR:"error",PERFORMANCE:"performance",API_ERROR:"api_error",API_SUCCESS:"api_success",QUOTE_REQUEST:"quote_request",CONTACT_FORM_SUBMIT:"contact_form_submit",NEWSLETTER_SUBSCRIBE:"newsletter_subscribe",BROCHURE_DOWNLOAD:"brochure_download"}],281682)},912466,a=>{"use strict";var b=a.i(526156),c=a.i(841757),d=a.i(829091);let e={primary:"bg-primary text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl",secondary:"bg-secondary text-white shadow-md hover:shadow-secondary/30 hover:shadow-2xl",accent:"bg-accent text-primary-dark shadow-md hover:shadow-accent/30 hover:shadow-2xl",saturated:"bg-saturated text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl",outline:"border-2 border-primary bg-transparent text-primary hover:text-white hover:shadow-primary/20 hover:shadow-xl",ghost:"text-primary hover:shadow-lg",white:"bg-white text-primary shadow-md hover:shadow-primary/30 hover:shadow-2xl hover:text-white",destructive:"bg-destructive text-destructive-foreground shadow-md hover:shadow-destructive/30 hover:shadow-2xl"},f={sm:"h-9 px-4 text-sm md:text-base",md:"h-11 px-6 text-base md:text-lg",lg:"h-14 px-5 md:px-8 text-base md:text-lg",xl:"h-16 px-6 md:px-10 text-lg md:text-xl"},g={primary:"bg-primary-dark",secondary:"bg-secondary-light",accent:"bg-accent-dark",saturated:"bg-primary",outline:"bg-primary",ghost:"bg-primary-light/10",white:"bg-primary-light",destructive:"bg-destructive/90"};function h({variant:a="primary"}){return(0,b.jsx)("span",{className:(0,d.cn)("absolute inset-0 translate-y-[101%] group-hover/btn:translate-y-0 transition-transform duration-500 ease-out",g[a])})}function i({className:a,variant:g="primary",size:i="md",href:j,...k}){let l=function(a="primary",b="md",c){return(0,d.cn)("inline-flex items-center justify-center whitespace-nowrap rounded-full font-semibold transition-all duration-500 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none active:scale-95 hover:-translate-y-1 hover:scale-[1.02] relative overflow-hidden group/btn isolate",e[a],f[b],c)}(g,i,a),m=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:(0,d.cn)("relative z-10 flex items-center justify-center gap-2 transition-colors duration-500","white"===g?"group-hover/btn:text-primary-dark":""),children:k.children}),(0,b.jsx)(h,{variant:g})]});return j?(0,b.jsx)(c.default,{href:j,className:l,children:m}):(0,b.jsx)("button",{className:l,...k,children:m})}a.s(["Button",()=>i])},594214,90695,5515,544027,434904,618180,781027,41100,a=>{"use strict";var b=a.i(829091);a.i(912466);var c=a.i(526156);function d({className:a,children:d,...e}){return(0,c.jsx)("section",{className:(0,b.cn)("py-16 md:py-28 lg:py-36 overflow-hidden content-visibility-auto",a),...e,children:d})}function e({className:a,children:d,...e}){return(0,c.jsx)("div",{className:(0,b.cn)("container mx-auto px-4 md:px-12 lg:px-16 max-w-7xl",a),...e,children:d})}function f({level:a=2,children:d,className:e,subtitle:f,align:g="left"}){let h=`h${a}`;return(0,c.jsxs)("div",{className:(0,b.cn)("mb-6 md:mb-12 text-primary",{left:"text-left",center:"text-center mx-auto",right:"text-right"}[g],e),children:[f&&(0,c.jsx)("span",{className:"inline-block text-accent font-bold tracking-widest uppercase text-xs md:text-sm mb-3 md:mb-4 animate-fade-in",children:f}),(0,c.jsx)(h,{className:(0,b.cn)({1:"text-2xl md:text-4xl lg:text-5xl font-bold leading-[1.1] tracking-tight",2:"text-xl md:text-3xl lg:text-4xl font-bold leading-[1.2] tracking-tight",3:"text-lg md:text-2xl lg:text-3xl font-bold leading-[1.3] tracking-tight",4:"text-lg md:text-xl lg:text-2xl font-bold leading-[1.4]",5:"text-base md:text-lg font-bold leading-[1.5]",6:"text-base md:text-lg font-semibold leading-[1.6]"}[a]),children:d})]})}function g({className:a,children:d,tag:e="div",...f}){return(0,c.jsx)(e,{className:(0,b.cn)("premium-card overflow-hidden",a),...f,children:d})}function h({className:a,...d}){return(0,c.jsx)("input",{className:(0,b.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg",a),...d})}function i({className:a,...d}){return(0,c.jsx)("textarea",{className:(0,b.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg resize-none",a),...d})}function j({className:a,...d}){return(0,c.jsx)("label",{className:(0,b.cn)("text-[10px] md:text-xs font-extrabold text-primary uppercase tracking-widest",a),...d})}a.s(["Section",()=>d],90695),a.s(["Container",()=>e],5515),a.s(["Heading",()=>f],544027),a.s(["Card",()=>g],434904),a.s(["Input",()=>h],618180),a.s(["Textarea",()=>i],781027),a.s(["Label",()=>j],41100),a.s([],594214)},188457,a=>{"use strict";var b=a.i(526156),c=a.i(150765);a.i(594214);var d=a.i(829091);function e({children:a,className:e,threshold:f=.1,delay:g=0}){let[h,i]=(0,c.useState)(!1),j=(0,c.useRef)(null);return(0,c.useEffect)(()=>{let a=new IntersectionObserver(([b])=>{b.isIntersecting&&(i(!0),a.unobserve(b.target))},{threshold:f}),b=j.current;return b&&a.observe(b),()=>{b&&a.unobserve(b)}},[f]),(0,b.jsx)("div",{ref:j,className:(0,d.cn)("reveal-on-scroll",h&&"is-visible",e),style:{transitionDelay:`${g}ms`},children:a})}a.s(["default",()=>e])},100249,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={callServer:function(){return f.callServer},createServerReference:function(){return h.createServerReference},findSourceMapURL:function(){return g.findSourceMapURL}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(297622),g=a.r(308360),h=a.r(770173)},366014,a=>{"use strict";var b=a.i(526156),c=a.i(150765),d=a.i(603836);a.i(594214);var e=a.i(912466),f=a.i(544027),g=a.i(434904),h=a.i(618180),i=a.i(781027),j=a.i(41100),k=a.i(100249);let l=(0,k.createServerReference)("406fa8a8e7f827b5ac517f1985fa7a67a217b1e6b5",k.callServer,void 0,k.findSourceMapURL,"sendContactFormAction");var m=a.i(274209),n=a.i(281682);function o(){let a=(0,d.useTranslations)("Contact"),{trackEvent:k}=(0,m.useAnalytics)(),[o,p]=(0,c.useState)("idle"),[q,r]=(0,c.useState)(!1),s=a=>{q||(r(!0),k(n.AnalyticsEvents.FORM_START,{form_id:"contact_form",form_name:"Contact"})),k(n.AnalyticsEvents.FORM_FIELD_FOCUS,{form_id:"contact_form",field_id:a})};async function t(a){a.preventDefault(),p("submitting");let b=new FormData(a.currentTarget),c=b.get("email");try{let d=await l(b);d?.success?(k("contact_form_submission",{form_type:"general",email:c}),p("success"),a.target.reset()):(console.error("Contact form submission failed:",{email:c,error:d.error}),k(n.AnalyticsEvents.FORM_ERROR,{form_id:"contact_form",error:d.error||"submission_failed"}),p("error"))}catch(a){console.error("Contact form submission error:",{email:c,error:a}),k(n.AnalyticsEvents.FORM_ERROR,{form_id:"contact_form",error:a.message||"unexpected_error"}),p("error")}}return"success"===o?(0,b.jsxs)(g.Card,{className:"p-6 md:p-12 rounded-2xl md:rounded-[40px] border-none shadow-2xl text-center",role:"alert","aria-live":"polite",children:[(0,b.jsx)("div",{className:"w-20 h-20 bg-accent rounded-full flex items-center justify-center mx-auto mb-6 shadow-lg shadow-accent/20",children:(0,b.jsx)("svg",{className:"w-10 h-10 text-primary-dark",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:3,d:"M5 13l4 4L19 7"})})}),(0,b.jsx)(f.Heading,{level:3,className:"mb-4",children:a("form.successTitle")||"Message Sent!"}),(0,b.jsx)("p",{className:"text-text-secondary text-lg mb-8",children:a("form.successDesc")||"Thank you for your message. We will get back to you as soon as possible."}),(0,b.jsx)(e.Button,{onClick:()=>p("idle"),variant:"saturated",children:a("form.sendAnother")||"Send another message"})]}):"error"===o?(0,b.jsxs)(g.Card,{className:"p-6 md:p-12 rounded-2xl md:rounded-[40px] border-destructive/20 shadow-2xl text-center bg-destructive/5 animate-slide-up",role:"alert","aria-live":"assertive",children:[(0,b.jsx)("div",{className:"w-20 h-20 bg-destructive rounded-full flex items-center justify-center mx-auto mb-6 shadow-lg shadow-destructive/20",children:(0,b.jsxs)("svg",{className:"w-10 h-10 text-destructive-foreground",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:"2",children:[(0,b.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,b.jsx)("line",{x1:"15",y1:"9",x2:"9",y2:"15",strokeLinecap:"round",strokeLinejoin:"round"}),(0,b.jsx)("line",{x1:"9",y1:"9",x2:"15",y2:"15",strokeLinecap:"round",strokeLinejoin:"round"})]})}),(0,b.jsx)(f.Heading,{level:3,className:"mb-4 text-destructive font-black",children:a("form.errorTitle")||"Submission Failed!"}),(0,b.jsx)("p",{className:"text-destructive/80 text-lg mb-8 leading-relaxed font-medium",children:a("form.error")||"Something went wrong. Please check your input and try again."}),(0,b.jsx)(e.Button,{onClick:()=>p("idle"),variant:"destructive",size:"lg",className:"w-full",children:a("form.tryAgain")||"Try Again"})]}):(0,b.jsxs)(g.Card,{className:"p-6 md:p-12 rounded-2xl md:rounded-[40px] border-none shadow-2xl animate-slide-up",children:[(0,b.jsx)(f.Heading,{level:3,subtitle:a("form.subtitle"),className:"mb-6 md:mb-10",children:a("form.title")}),(0,b.jsxs)("form",{id:"contact-form",onSubmit:t,className:"grid grid-cols-1 md:grid-cols-2 gap-4 md:gap-8",children:[(0,b.jsx)("input",{type:"text",name:"company_website",tabIndex:-1,autoComplete:"off",style:{display:"none"},"aria-hidden":"true"}),(0,b.jsxs)("div",{className:"space-y-1 md:space-y-2",children:[(0,b.jsx)(j.Label,{htmlFor:"contact-name",children:a("form.name")}),(0,b.jsx)(h.Input,{type:"text",id:"contact-name",name:"name",autoComplete:"name",enterKeyHint:"next",onFocus:()=>s("contact-name"),required:!0})]}),(0,b.jsxs)("div",{className:"space-y-1 md:space-y-2",children:[(0,b.jsx)(j.Label,{htmlFor:"contact-email",children:a("form.email")}),(0,b.jsx)(h.Input,{type:"email",id:"contact-email",name:"email",autoComplete:"email",inputMode:"email",enterKeyHint:"next",placeholder:a("form.emailPlaceholder"),onFocus:()=>s("contact-email"),required:!0})]}),(0,b.jsxs)("div",{className:"md:col-span-2 space-y-1 md:space-y-2",children:[(0,b.jsx)(j.Label,{htmlFor:"contact-message",children:a("form.message")}),(0,b.jsx)(i.Textarea,{id:"contact-message",name:"message",rows:4,enterKeyHint:"send",placeholder:a("form.messagePlaceholder"),onFocus:()=>s("contact-message"),required:!0})]}),(0,b.jsx)("div",{className:"md:col-span-2 pt-2 md:pt-4",children:(0,b.jsx)(e.Button,{type:"submit",variant:"saturated",size:"lg",disabled:"submitting"===o,className:"w-full shadow-xl shadow-saturated/20 md:h-16 md:px-10 md:text-xl active:scale-[0.98] transition-transform",children:"submitting"===o?(0,b.jsxs)("span",{className:"flex items-center gap-2",children:[(0,b.jsxs)("svg",{className:"animate-spin h-5 w-5 text-white",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[(0,b.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,b.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),a("form.submitting")||"Sending..."]}):a("form.submit")})})]})]})}a.s(["default",()=>o],366014)},648658,a=>{"use strict";var b=a.i(526156);let c=(0,a.i(411487).default)(async()=>{},{loadableGenerated:{modules:[408235]},ssr:!1,loading:()=>(0,b.jsx)("div",{className:"h-full w-full bg-neutral-medium flex items-center justify-center",children:(0,b.jsx)("div",{className:"animate-pulse text-primary font-medium",children:"Loading Map..."})})});function d({address:a,lat:d,lng:e}){return(0,b.jsx)(c,{locations:[{name:"E-TIB Gruppe",address:a,lat:d,lng:e}]})}a.s(["default",()=>d])},567784,a=>{"use strict";var b=a.i(526156),c=a.i(150765);function d({email:a,className:d="",children:e}){let[f,g]=(0,c.useState)(!1);return((0,c.useEffect)(()=>{g(!0)},[]),f)?(0,b.jsx)("a",{href:`mailto:${a}`,className:d,children:e||a}):(0,b.jsx)("span",{className:d,"aria-hidden":"true",children:e||a.replace("@"," [at] ").replace(/\./g," [dot] ")})}a.s(["default",()=>d])},163041,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__bc83295f._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js"].map(b=>a.l(b))).then(()=>b(17814)))}]; - -//# debugId=6f62d24f-160c-b4ae-9e88-1fa448965f78 -//# sourceMappingURL=%5Broot-of-the-server%5D__b17bd572._.js.map \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__b17bd572._.js.map b/.next/server/chunks/ssr/[root-of-the-server]__b17bd572._.js.map deleted file mode 100644 index f60dcd828..000000000 --- a/.next/server/chunks/ssr/[root-of-the-server]__b17bd572._.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": [], - "debugId": "6f62d24f-160c-b4ae-9e88-1fa448965f78", - "sections": [ - {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["../../../../components/analytics/useAnalytics.ts","../../../../components/analytics/analytics-events.ts","../../../../components/ui/Button.tsx","../../../../components/ui/index.ts","../../../../components/ui/Section.tsx","../../../../components/ui/Container.tsx","../../../../components/ui/Heading.tsx","../../../../components/ui/Card.tsx","../../../../components/ui/Badge.tsx","../../../../components/ui/Input.tsx","../../../../components/ui/Textarea.tsx","../../../../components/ui/Label.tsx","../../../../components/ui/Callout.tsx","../../../../components/Reveal.tsx","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/build/webpack/loaders/next-flight-loader/action-client-wrapper.ts","../../../../components/ContactForm.tsx","../../../../app/actions/data%3A446f89%20%3Ctext/javascript%3E","../../../../components/ContactMap.tsx","../../../../components/ObfuscatedEmail.tsx"],"sourcesContent":["'use client';\n\nimport { useCallback } from 'react';\nimport { getAppServices } from '@/lib/services/create-services';\nimport type { AnalyticsEventProperties } from '@/lib/services/analytics/analytics-service';\n\n/**\n * Custom hook for tracking analytics events with Umami.\n * \n * Provides a convenient way to track custom events throughout your application.\n * \n * @example\n * ```tsx\n * import { useAnalytics } from '@/components/analytics/useAnalytics';\n * \n * function MyComponent() {\n * const { trackEvent, trackPageview } = useAnalytics();\n * \n * const handleButtonClick = () => {\n * trackEvent('button_click', {\n * button_id: 'cta-primary',\n * page: 'homepage'\n * });\n * };\n * \n * return <button onClick={handleButtonClick}>Click me</button>;\n * }\n * ```\n * \n * @example\n * ```tsx\n * // Track a custom pageview\n * const { trackPageview } = useAnalytics();\n * trackPageview('/custom-path?param=value');\n * ```\n */\nexport function useAnalytics() {\n const services = getAppServices();\n\n /**\n * Track a custom event with optional properties.\n * \n * @param eventName - The name of the event to track\n * @param properties - Optional event properties (metadata)\n */\n const trackEvent = useCallback(\n (eventName: string, properties?: AnalyticsEventProperties) => {\n services.analytics.track(eventName, properties);\n \n if (process.env.NODE_ENV === 'development') {\n console.log('[Umami] Tracked event:', eventName, properties);\n }\n },\n [services]\n );\n\n /**\n * Track a pageview (useful for custom navigation or SPA routing).\n * \n * @param url - The URL to track (defaults to current location)\n */\n const trackPageview = useCallback(\n (url?: string) => {\n services.analytics.trackPageview(url);\n \n if (process.env.NODE_ENV === 'development') {\n console.log('[Umami] Tracked pageview:', url ?? 'current location');\n }\n },\n [services]\n );\n\n return {\n trackEvent,\n trackPageview,\n };\n}\n","/**\n * Analytics Events Utility\n *\n * Centralized definitions for common analytics events and their properties.\n * This helps maintain consistency across the application and makes it easier\n * to track meaningful events.\n *\n * @example\n * ```tsx\n * import { useAnalytics } from '@/components/analytics/useAnalytics';\n * import { AnalyticsEvents } from '@/components/analytics/analytics-events';\n *\n * function ProductPage() {\n * const { trackEvent } = useAnalytics();\n *\n * const handleAddToCart = (productId: string, productName: string) => {\n * trackEvent(AnalyticsEvents.PRODUCT_ADD_TO_CART, {\n * product_id: productId,\n * product_name: productName,\n * page: 'product-detail'\n * });\n * };\n *\n * return <button onClick={() => handleAddToCart('123', 'Cable')}>Add to Cart</button>;\n * }\n * ```\n */\n\nexport const AnalyticsEvents = {\n // Page & Navigation Events\n PAGE_VIEW: 'pageview',\n PAGE_SCROLL: 'page_scroll',\n PAGE_EXIT: 'page_exit',\n SCROLL_DEPTH: 'scroll_depth',\n\n // User Interaction Events\n BUTTON_CLICK: 'button_click',\n LINK_CLICK: 'link_click',\n FORM_SUBMIT: 'form_submit',\n FORM_START: 'form_start',\n FORM_ERROR: 'form_error',\n FORM_FIELD_FOCUS: 'form_field_focus',\n\n // E-commerce Events\n PRODUCT_VIEW: 'product_view',\n PRODUCT_ADD_TO_CART: 'product_add_to_cart',\n PRODUCT_REMOVE_FROM_CART: 'product_remove_from_cart',\n PRODUCT_PURCHASE: 'product_purchase',\n PRODUCT_WISHLIST_ADD: 'product_wishlist_add',\n PRODUCT_WISHLIST_REMOVE: 'product_wishlist_remove',\n PRODUCT_TAB_SWITCH: 'product_tab_switch',\n\n // Search & Filter Events\n SEARCH: 'search',\n FILTER_APPLY: 'filter_apply',\n FILTER_CLEAR: 'filter_clear',\n\n // User Account Events\n USER_SIGNUP: 'user_signup',\n USER_LOGIN: 'user_login',\n USER_LOGOUT: 'user_logout',\n USER_PROFILE_UPDATE: 'user_profile_update',\n\n // Content Events\n BLOG_POST_VIEW: 'blog_post_view',\n VIDEO_PLAY: 'video_play',\n VIDEO_PAUSE: 'video_pause',\n VIDEO_COMPLETE: 'video_complete',\n DOWNLOAD: 'download',\n\n // UI Interaction Events\n MODAL_OPEN: 'modal_open',\n MODAL_CLOSE: 'modal_close',\n TOGGLE_SWITCH: 'toggle_switch',\n ACCORDION_TOGGLE: 'accordion_toggle',\n TAB_SWITCH: 'tab_switch',\n TOC_CLICK: 'toc_click',\n\n // Error & Performance Events\n ERROR: 'error',\n PERFORMANCE: 'performance',\n API_ERROR: 'api_error',\n API_SUCCESS: 'api_success',\n\n // Custom Business Events\n QUOTE_REQUEST: 'quote_request',\n CONTACT_FORM_SUBMIT: 'contact_form_submit',\n NEWSLETTER_SUBSCRIBE: 'newsletter_subscribe',\n BROCHURE_DOWNLOAD: 'brochure_download',\n} as const;\n\n/**\n * Type-safe event properties for common events\n */\nexport type AnalyticsEventName = (typeof AnalyticsEvents)[keyof typeof AnalyticsEvents];\n\n/**\n * Common event property helpers\n */\nexport const AnalyticsEventProperties = {\n /**\n * Create properties for a product event\n */\n product: (productId: string, productName: string, category?: string) => ({\n product_id: productId,\n product_name: productName,\n product_category: category,\n }),\n\n /**\n * Create properties for a form event\n */\n form: (formId: string, formName: string, fields?: Record<string, unknown>) => ({\n form_id: formId,\n form_name: formName,\n form_fields: fields,\n }),\n\n /**\n * Create properties for a search event\n */\n search: (query: string, filters?: Record<string, unknown>) => ({\n search_query: query,\n search_filters: filters,\n }),\n\n /**\n * Create properties for a navigation event\n */\n navigation: (from: string, to: string) => ({\n from_page: from,\n to_page: to,\n }),\n} as const;\n","import React from 'react';\nimport Link from 'next/link';\nimport { cn } from './utils';\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?:\n | 'primary'\n | 'secondary'\n | 'accent'\n | 'saturated'\n | 'outline'\n | 'ghost'\n | 'white'\n | 'destructive';\n size?: 'sm' | 'md' | 'lg' | 'xl';\n href?: string;\n className?: string;\n children?: React.ReactNode;\n}\n\nexport const buttonBaseStyles =\n 'inline-flex items-center justify-center whitespace-nowrap rounded-full font-semibold transition-all duration-500 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none active:scale-95 hover:-translate-y-1 hover:scale-[1.02] relative overflow-hidden group/btn isolate';\n\nexport const buttonVariantsMap = {\n primary: 'bg-primary text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl',\n secondary: 'bg-secondary text-white shadow-md hover:shadow-secondary/30 hover:shadow-2xl',\n accent: 'bg-accent text-primary-dark shadow-md hover:shadow-accent/30 hover:shadow-2xl',\n saturated: 'bg-saturated text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl',\n outline:\n 'border-2 border-primary bg-transparent text-primary hover:text-white hover:shadow-primary/20 hover:shadow-xl',\n ghost: 'text-primary hover:shadow-lg',\n white:\n 'bg-white text-primary shadow-md hover:shadow-primary/30 hover:shadow-2xl hover:text-white',\n destructive:\n 'bg-destructive text-destructive-foreground shadow-md hover:shadow-destructive/30 hover:shadow-2xl',\n};\n\nexport const buttonSizesMap = {\n sm: 'h-9 px-4 text-sm md:text-base',\n md: 'h-11 px-6 text-base md:text-lg',\n lg: 'h-14 px-5 md:px-8 text-base md:text-lg',\n xl: 'h-16 px-6 md:px-10 text-lg md:text-xl',\n};\n\nexport const buttonOverlayColorsMap = {\n primary: 'bg-primary-dark',\n secondary: 'bg-secondary-light',\n accent: 'bg-accent-dark',\n saturated: 'bg-primary',\n outline: 'bg-primary',\n ghost: 'bg-primary-light/10',\n white: 'bg-primary-light',\n destructive: 'bg-destructive/90',\n};\n\nexport function getButtonClasses(variant: keyof typeof buttonVariantsMap = 'primary', size: keyof typeof buttonSizesMap = 'md', className?: string) {\n return cn(buttonBaseStyles, buttonVariantsMap[variant], buttonSizesMap[size], className);\n}\n\nexport function ButtonOverlay({ variant = 'primary' }: { variant?: keyof typeof buttonVariantsMap }) {\n return (\n <span\n className={cn(\n 'absolute inset-0 translate-y-[101%] group-hover/btn:translate-y-0 transition-transform duration-500 ease-out',\n buttonOverlayColorsMap[variant]\n )}\n />\n );\n}\n\nexport function Button({\n className,\n variant = 'primary',\n size = 'md',\n href,\n ...props\n}: ButtonProps) {\n const styles = getButtonClasses(variant, size, className);\n\n const content = (\n <>\n <span\n className={cn(\n 'relative z-10 flex items-center justify-center gap-2 transition-colors duration-500',\n variant === 'white' ? 'group-hover/btn:text-primary-dark' : '',\n )}\n >\n {props.children}\n </span>\n <ButtonOverlay variant={variant} />\n </>\n );\n\n if (href) {\n return (\n <Link href={href} className={styles}>\n {content}\n </Link>\n );\n }\n\n return (\n <button className={styles} {...props}>\n {content}\n </button>\n );\n}\n","export * from './utils';\nexport * from './Button';\nexport * from './Section';\nexport * from './Container';\nexport * from './Heading';\nexport * from './Card';\nexport * from './Badge';\nexport * from './Input';\nexport * from './Textarea';\nexport * from './Label';\nexport * from './Callout';\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Section({ className, children, ...props }: React.HTMLAttributes<HTMLElement>) {\n return (\n <section className={cn('py-16 md:py-28 lg:py-36 overflow-hidden content-visibility-auto', className)} {...props}>\n {children}\n </section>\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Container({ className, children, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div className={cn('container mx-auto px-4 md:px-12 lg:px-16 max-w-7xl', className)} {...props}>\n {children}\n </div>\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Heading({\n level = 2,\n children,\n className,\n subtitle,\n align = 'left'\n}: {\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n children: React.ReactNode;\n className?: string;\n subtitle?: string;\n align?: 'left' | 'center' | 'right';\n}) {\n const Tag = `h${level}` as any;\n \n const sizes = {\n 1: 'text-2xl md:text-4xl lg:text-5xl font-bold leading-[1.1] tracking-tight',\n 2: 'text-xl md:text-3xl lg:text-4xl font-bold leading-[1.2] tracking-tight',\n 3: 'text-lg md:text-2xl lg:text-3xl font-bold leading-[1.3] tracking-tight',\n 4: 'text-lg md:text-xl lg:text-2xl font-bold leading-[1.4]',\n 5: 'text-base md:text-lg font-bold leading-[1.5]',\n 6: 'text-base md:text-lg font-semibold leading-[1.6]',\n };\n\n const alignments = {\n left: 'text-left',\n center: 'text-center mx-auto',\n right: 'text-right',\n };\n\n return (\n <div className={cn('mb-6 md:mb-12 text-primary', alignments[align], className)}>\n {subtitle && (\n <span className=\"inline-block text-accent font-bold tracking-widest uppercase text-xs md:text-sm mb-3 md:mb-4 animate-fade-in\">\n {subtitle}\n </span>\n )}\n <Tag className={cn(sizes[level as keyof typeof sizes])}>\n {children}\n </Tag>\n </div>\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\ninterface CardProps extends React.HTMLAttributes<HTMLElement> {\n tag?: 'div' | 'article' | 'section' | 'aside' | 'header' | 'footer' | 'nav' | 'main';\n}\n\nexport function Card({ className, children, tag: Tag = 'div', ...props }: CardProps) {\n return (\n <Tag className={cn('premium-card overflow-hidden', className)} {...props}>\n {children}\n </Tag>\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Badge({ children, className, variant = 'primary' }: { children: React.ReactNode, className?: string, variant?: 'primary' | 'accent' | 'neutral' | 'saturated' }) {\n const variants = {\n primary: 'bg-primary-light text-primary',\n accent: 'bg-accent-light text-accent-dark',\n neutral: 'bg-neutral-medium text-text-secondary',\n saturated: 'bg-saturated text-white',\n };\n \n return (\n <span className={cn('inline-flex items-center px-3 py-1 rounded-full text-xs font-bold uppercase tracking-wider', variants[variant], className)}>\n {children}\n </span>\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n className?: string;\n}\n\nexport function Input({ className, ...props }: InputProps) {\n return (\n <input\n className={cn(\n 'w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg',\n className\n )}\n {...props}\n />\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n className?: string;\n}\n\nexport function Textarea({ className, ...props }: TextareaProps) {\n return (\n <textarea\n className={cn(\n 'w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg resize-none',\n className\n )}\n {...props}\n />\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {\n className?: string;\n}\n\nexport function Label({ className, ...props }: LabelProps) {\n return (\n <label\n className={cn(\n 'text-[10px] md:text-xs font-extrabold text-primary uppercase tracking-widest',\n className\n )}\n {...props}\n />\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\ninterface CalloutProps {\n type?: 'info' | 'warning' | 'success' | 'tip';\n title?: string;\n children: React.ReactNode;\n className?: string;\n}\n\nconst icons = {\n info: (\n <svg className=\"w-6 h-6\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path fillRule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\" clipRule=\"evenodd\" />\n </svg>\n ),\n warning: (\n <svg className=\"w-6 h-6\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path fillRule=\"evenodd\" d=\"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\" clipRule=\"evenodd\" />\n </svg>\n ),\n success: (\n <svg className=\"w-6 h-6\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path fillRule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\" clipRule=\"evenodd\" />\n </svg>\n ),\n tip: (\n <svg className=\"w-6 h-6\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path d=\"M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z\" />\n </svg>\n ),\n};\n\nconst styles = {\n info: 'bg-blue-50 border-blue-200 text-blue-900',\n warning: 'bg-yellow-50 border-yellow-200 text-yellow-900',\n success: 'bg-green-50 border-green-200 text-green-900',\n tip: 'bg-purple-50 border-purple-200 text-purple-900',\n};\n\nconst iconColors = {\n info: 'text-blue-500',\n warning: 'text-yellow-500',\n success: 'text-green-500',\n tip: 'text-purple-500',\n};\n\nexport function Callout({ type = 'info', title, children, className }: CalloutProps) {\n return (\n <div className={cn('my-8 p-6 rounded-xl border-2', styles[type], className)}>\n <div className=\"flex gap-4\">\n <div className={cn('flex-shrink-0', iconColors[type])}>\n {icons[type]}\n </div>\n <div className=\"flex-1\">\n {title && (\n <h4 className=\"font-bold text-base md:text-lg mb-2\">{title}</h4>\n )}\n <div className=\"prose prose-sm md:prose-base max-w-none\">\n {children}\n </div>\n </div>\n </div>\n </div>\n );\n}\n","'use client';\n\nimport React, { useEffect, useRef, useState } from 'react';\nimport { cn } from '@/components/ui';\n\ninterface RevealProps {\n children: React.ReactNode;\n className?: string;\n threshold?: number;\n delay?: number;\n}\n\nexport default function Reveal({ children, className, threshold = 0.1, delay = 0 }: RevealProps) {\n const [isVisible, setIsVisible] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (entry.isIntersecting) {\n setIsVisible(true);\n observer.unobserve(entry.target);\n }\n },\n { threshold }\n );\n\n const currentRef = ref.current;\n if (currentRef) {\n observer.observe(currentRef);\n }\n\n return () => {\n if (currentRef) {\n observer.unobserve(currentRef);\n }\n };\n }, [threshold]);\n\n return (\n <div\n ref={ref}\n className={cn('reveal-on-scroll', isVisible && 'is-visible', className)}\n style={{ transitionDelay: `${delay}ms` }}\n >\n {children}\n </div>\n );\n}\n","// This file must be bundled in the app's client layer, it shouldn't be directly\n// imported by the server.\n\nexport { callServer } from 'next/dist/client/app-call-server'\nexport { findSourceMapURL } from 'next/dist/client/app-find-source-map-url'\n\n// A noop wrapper to let the Flight client create the server reference.\n// See also: https://github.com/facebook/react/pull/26632\n// eslint-disable-next-line import/no-extraneous-dependencies\nexport { createServerReference } from 'react-server-dom-webpack/client'\n","'use client';\n\nimport React, { useState } from 'react';\nimport { useTranslations } from 'next-intl';\nimport { Button, Heading, Card, Input, Textarea, Label } from '@/components/ui';\nimport { sendContactFormAction } from '@/app/actions/contact';\nimport { useAnalytics } from '@/components/analytics/useAnalytics';\nimport { AnalyticsEvents } from '@/components/analytics/analytics-events';\n\nexport default function ContactForm() {\n const t = useTranslations('Contact');\n const { trackEvent } = useAnalytics();\n const [status, setStatus] = useState<'idle' | 'submitting' | 'success' | 'error'>('idle');\n const [hasStarted, setHasStarted] = useState(false);\n\n const handleFocus = (fieldId: string) => {\n // Initial form start\n if (!hasStarted) {\n setHasStarted(true);\n trackEvent(AnalyticsEvents.FORM_START, {\n form_id: 'contact_form',\n form_name: 'Contact',\n });\n }\n\n // Field-level transparency\n trackEvent(AnalyticsEvents.FORM_FIELD_FOCUS, {\n form_id: 'contact_form',\n field_id: fieldId,\n });\n };\n\n async function handleSubmit(e: React.FormEvent<HTMLFormElement>) {\n e.preventDefault();\n setStatus('submitting');\n\n const formData = new FormData(e.currentTarget);\n const email = formData.get('email') as string;\n\n try {\n const result = await sendContactFormAction(formData);\n if (result?.success) {\n trackEvent('contact_form_submission', {\n form_type: 'general',\n email,\n });\n setStatus('success');\n (e.target as HTMLFormElement).reset();\n } else {\n console.error('Contact form submission failed:', { email, error: result.error });\n trackEvent(AnalyticsEvents.FORM_ERROR, {\n form_id: 'contact_form',\n error: result.error || 'submission_failed',\n });\n setStatus('error');\n }\n } catch (error) {\n console.error('Contact form submission error:', { email, error });\n trackEvent(AnalyticsEvents.FORM_ERROR, {\n form_id: 'contact_form',\n error: (error as Error).message || 'unexpected_error',\n });\n setStatus('error');\n }\n }\n\n if (status === 'success') {\n return (\n <Card\n className=\"p-6 md:p-12 rounded-2xl md:rounded-[40px] border-none shadow-2xl text-center\"\n role=\"alert\"\n aria-live=\"polite\"\n >\n <div className=\"w-20 h-20 bg-accent rounded-full flex items-center justify-center mx-auto mb-6 shadow-lg shadow-accent/20\">\n <svg\n className=\"w-10 h-10 text-primary-dark\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={3} d=\"M5 13l4 4L19 7\" />\n </svg>\n </div>\n <Heading level={3} className=\"mb-4\">\n {t('form.successTitle') || 'Message Sent!'}\n </Heading>\n <p className=\"text-text-secondary text-lg mb-8\">\n {t('form.successDesc') ||\n 'Thank you for your message. We will get back to you as soon as possible.'}\n </p>\n <Button onClick={() => setStatus('idle')} variant=\"saturated\">\n {t('form.sendAnother') || 'Send another message'}\n </Button>\n </Card>\n );\n }\n\n if (status === 'error') {\n return (\n <Card\n className=\"p-6 md:p-12 rounded-2xl md:rounded-[40px] border-destructive/20 shadow-2xl text-center bg-destructive/5 animate-slide-up\"\n role=\"alert\"\n aria-live=\"assertive\"\n >\n <div className=\"w-20 h-20 bg-destructive rounded-full flex items-center justify-center mx-auto mb-6 shadow-lg shadow-destructive/20\">\n <svg\n className=\"w-10 h-10 text-destructive-foreground\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </div>\n <Heading level={3} className=\"mb-4 text-destructive font-black\">\n {t('form.errorTitle') || 'Submission Failed!'}\n </Heading>\n <p className=\"text-destructive/80 text-lg mb-8 leading-relaxed font-medium\">\n {t('form.error') || 'Something went wrong. Please check your input and try again.'}\n </p>\n <Button\n onClick={() => setStatus('idle')}\n variant=\"destructive\"\n size=\"lg\"\n className=\"w-full\"\n >\n {t('form.tryAgain') || 'Try Again'}\n </Button>\n </Card>\n );\n }\n\n return (\n <Card className=\"p-6 md:p-12 rounded-2xl md:rounded-[40px] border-none shadow-2xl animate-slide-up\">\n <Heading level={3} subtitle={t('form.subtitle')} className=\"mb-6 md:mb-10\">\n {t('form.title')}\n </Heading>\n <form\n id=\"contact-form\"\n onSubmit={handleSubmit}\n className=\"grid grid-cols-1 md:grid-cols-2 gap-4 md:gap-8\"\n >\n {/* Anti-spam Honeypot */}\n <input\n type=\"text\"\n name=\"company_website\"\n tabIndex={-1}\n autoComplete=\"off\"\n style={{ display: 'none' }}\n aria-hidden=\"true\"\n />\n <div className=\"space-y-1 md:space-y-2\">\n <Label htmlFor=\"contact-name\">{t('form.name')}</Label>\n <Input\n type=\"text\"\n id=\"contact-name\"\n name=\"name\"\n autoComplete=\"name\"\n enterKeyHint=\"next\"\n onFocus={() => handleFocus('contact-name')}\n required\n />\n </div>\n <div className=\"space-y-1 md:space-y-2\">\n <Label htmlFor=\"contact-email\">{t('form.email')}</Label>\n <Input\n type=\"email\"\n id=\"contact-email\"\n name=\"email\"\n autoComplete=\"email\"\n inputMode=\"email\"\n enterKeyHint=\"next\"\n placeholder={t('form.emailPlaceholder')}\n onFocus={() => handleFocus('contact-email')}\n required\n />\n </div>\n <div className=\"md:col-span-2 space-y-1 md:space-y-2\">\n <Label htmlFor=\"contact-message\">{t('form.message')}</Label>\n <Textarea\n id=\"contact-message\"\n name=\"message\"\n rows={4}\n enterKeyHint=\"send\"\n placeholder={t('form.messagePlaceholder')}\n onFocus={() => handleFocus('contact-message')}\n required\n />\n </div>\n <div className=\"md:col-span-2 pt-2 md:pt-4\">\n <Button\n type=\"submit\"\n variant=\"saturated\"\n size=\"lg\"\n disabled={status === 'submitting'}\n className=\"w-full shadow-xl shadow-saturated/20 md:h-16 md:px-10 md:text-xl active:scale-[0.98] transition-transform\"\n >\n {status === 'submitting' ? (\n <span className=\"flex items-center gap-2\">\n <svg\n className=\"animate-spin h-5 w-5 text-white\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n ></circle>\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n ></path>\n </svg>\n {t('form.submitting') || 'Sending...'}\n </span>\n ) : (\n t('form.submit')\n )}\n </Button>\n </div>\n </form>\n </Card>\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"406fa8a8e7f827b5ac517f1985fa7a67a217b1e6b5\":\"sendContactFormAction\"},\"app/actions/contact.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"406fa8a8e7f827b5ac517f1985fa7a67a217b1e6b5\",callServer,void 0,findSourceMapURL,\"sendContactFormAction\");export{$$RSC_SERVER_ACTION_0 as sendContactFormAction};","'use client';\n\nimport React from 'react';\nimport dynamic from 'next/dynamic';\n\nconst LeafletMap = dynamic(() => import('@/components/LeafletMap'), {\n ssr: false,\n loading: () => (\n <div className=\"h-full w-full bg-neutral-medium flex items-center justify-center\">\n <div className=\"animate-pulse text-primary font-medium\">Loading Map...</div>\n </div>\n ),\n});\n\ninterface ContactMapProps {\n address: string;\n lat: number;\n lng: number;\n}\n\nexport default function ContactMap({ address, lat, lng }: ContactMapProps) {\n return <LeafletMap locations={[{ name: 'E-TIB Gruppe', address, lat, lng }]} />;\n}\n","'use client';\n\nimport React, { useState, useEffect } from 'react';\n\ninterface ObfuscatedEmailProps {\n email: string;\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * A component that helps protect email addresses from simple spambots.\n * It uses client-side mounting to render the actual email address,\n * making it harder for static crawlers to harvest.\n */\nexport default function ObfuscatedEmail({ email, className = '', children }: ObfuscatedEmailProps) {\n const [mounted, setMounted] = useState(false);\n\n useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setMounted(true);\n }, []);\n\n if (!mounted) {\n // Show a placeholder or obscured version during SSR\n return (\n <span className={className} aria-hidden=\"true\">\n {children || email.replace('@', ' [at] ').replace(/\\./g, ' [dot] ')}\n </span>\n );\n }\n\n // Once mounted on the client, render the real mailto link\n return (\n <a href={`mailto:${email}`} className={className}>\n {children || email}\n </a>\n );\n}\n"],"names":["callServer","createServerReference","findSourceMapURL"],"mappings":"gUAEA,IAAA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QAiCO,SAAS,IACd,IAAM,EAAW,CAAA,EAAA,EAAA,cAAA,AAAc,IAmC/B,MAAO,CACL,WA5BiB,CAAA,EAAA,EAAA,WAAA,AAAW,EAC5B,CAAC,EAAmB,KAClB,EAAS,SAAS,CAAC,KAAK,CAAC,EAAW,EAKtC,EACA,CAAC,EAAS,EAqBV,cAboB,CAAA,EAAA,EAAA,WAAA,AAAW,EAC9B,AAAD,IACE,EAAS,SAAS,CAAC,aAAa,CAAC,EAKnC,EACA,CAAC,EAAS,CAMZ,CACF,6DChD+B,CAE7B,UAAW,WACX,YAAa,cACb,UAAW,YACX,aAAc,eAGd,aAAc,eACd,WAAY,aACZ,YAAa,cACb,WAAY,aACZ,WAAY,aACZ,iBAAkB,mBAGlB,aAAc,eACd,oBAAqB,sBACrB,yBAA0B,2BAC1B,iBAAkB,mBAClB,qBAAsB,uBACtB,wBAAyB,0BACzB,mBAAoB,qBAGpB,OAAQ,SACR,aAAc,eACd,aAAc,eAGd,YAAa,cACb,WAAY,aACZ,YAAa,cACb,oBAAqB,sBAGrB,eAAgB,iBAChB,WAAY,aACZ,YAAa,cACb,eAAgB,iBAChB,SAAU,WAGV,WAAY,aACZ,YAAa,cACb,cAAe,gBACf,iBAAkB,mBAClB,WAAY,aACZ,UAAW,YAGX,MAAO,QACP,YAAa,cACb,UAAW,YACX,YAAa,cAGb,cAAe,gBACf,oBAAqB,sBACrB,qBAAsB,uBACtB,kBAAmB,mBACrB,sDCxFA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QAqBO,IAAM,EAAoB,CAC/B,QAAS,2EACT,UAAW,+EACX,OAAQ,gFACR,UAAW,6EACX,QACE,+GACF,MAAO,+BACP,MACE,4FACF,YACE,mGACJ,EAEa,EAAiB,CAC5B,GAAI,gCACJ,GAAI,iCACJ,GAAI,yCACJ,GAAI,uCACN,EAEa,EAAyB,CACpC,QAAS,kBACT,UAAW,qBACX,OAAQ,iBACR,UAAW,aACX,QAAS,aACT,MAAO,sBACP,MAAO,mBACP,YAAa,mBACf,EAMO,SAAS,EAAc,SAAE,EAAU,SAAS,CAAgD,EACjG,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CACC,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EACX,+GACA,CAAsB,CAAC,EAAQ,GAIvC,CAEO,SAAS,EAAO,WACrB,CAAS,SACT,EAAU,SAAS,MACnB,EAAO,IAAI,MACX,CAAI,CACJ,GAAG,EACS,EACZ,IAAM,EAtBD,AAsBU,SAtBD,AAAiB,EAA0C,SAAS,CAAE,EAAoC,IAAI,CAAE,CAAkB,EAChJ,MAAO,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,AAnCV,uXAmC4B,CAAiB,CAAC,EAAQ,CAAE,CAAc,CAAC,EAAK,CAAE,EAChF,EAoBkC,EAAS,EAAM,GAEzC,EACJ,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,QAAA,CAAA,WACE,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CACC,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EACX,sFACY,UAAZ,EAAsB,oCAAsC,aAG7D,EAAM,QAAQ,GAEjB,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAc,QAAS,cAI5B,AAAI,EAEA,CAAA,EAAA,CAFM,CAEN,GAAA,EAAC,EAAA,OAAI,CAAA,CAAC,KAAM,EAAM,UAAW,WAC1B,IAML,CAAA,EAAA,EAAA,GAAA,EAAC,SAAA,CAAO,UAAW,EAAS,GAAG,CAAK,UACjC,GAGP,6FC1GA,IAAA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,CAAA,CAAA,0BCEO,SAAS,EAAQ,WAAE,CAAS,UAAE,CAAQ,CAAE,GAAG,EAA0C,EAC1F,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,UAAA,CAAQ,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,kEAAmE,GAAa,GAAG,CAAK,UAC5G,GAGP,CCNO,SAAS,EAAU,CAAE,WAAS,UAAE,CAAQ,CAAE,GAAG,EAA6C,EAC/F,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,qDAAsD,GAAa,GAAG,CAAK,UAC3F,GAGP,CCNO,SAAS,EAAQ,OACtB,EAAQ,CAAC,UACT,CAAQ,WACR,CAAS,UACT,CAAQ,OACR,EAAQ,MAAM,CAOf,EACC,IAAM,EAAM,CAAC,CAAC,EAAE,EAAA,CAAO,CAiBvB,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,6BAPF,AAOgC,CANjD,KAAM,YACN,OAAQ,sBACR,MAAO,YACT,CAG6D,CAAC,EAAM,CAAE,aACjE,GACC,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,wHACb,IAGL,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAI,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAtBR,AAsBS,CArBrB,EAAG,0EACH,EAAG,yEACH,EAAG,yEACH,EAAG,yDACH,EAAG,+CACH,EAAG,kDACL,CAe4B,CAAC,EAA4B,WAClD,MAIT,CCtCO,SAAS,EAAK,WAAE,CAAS,UAAE,CAAQ,CAAE,IAAK,EAAM,KAAK,CAAE,GAAG,EAAkB,EACjF,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAI,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,+BAAgC,GAAa,GAAG,CAAK,UACrE,GAGP,CENO,SAAS,EAAM,WAAE,CAAS,CAAE,GAAG,EAAmB,EACvD,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,QAAA,CACC,UAAW,CAAA,EAAA,EAAA,EAAE,AAAF,EACT,yRACA,GAED,GAAG,CAAK,EAGf,CCVO,SAAS,EAAS,WAAE,CAAS,CAAE,GAAG,EAAsB,EAC7D,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,WAAA,CACC,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EACX,qSACA,GAED,GAAG,CAAK,EAGf,CCVO,SAAS,EAAM,WAAE,CAAS,CAAE,GAAG,EAAmB,EACvD,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,QAAA,CACC,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EACX,+EACA,GAED,GAAG,CAAK,EAGf,qQEfA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,CAAA,CAAA,QAAA,IAAA,EAAA,EAAA,CAAA,CAAA,QASe,SAAS,EAAO,UAAE,CAAQ,WAAE,CAAS,WAAE,EAAY,EAAG,CAAE,QAAQ,CAAC,CAAe,EAC7F,GAAM,CAAC,EAAW,EAAa,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,GAAC,GACrC,EAAM,CAAA,EAAA,EAAA,MAAA,AAAM,EAAiB,MAyBnC,MAvBA,CAAA,EAAA,EAAA,SAAA,AAAS,EAAC,KACR,IAAM,EAAW,IAAI,qBACnB,CAAC,CAAC,EAAM,IACF,EAAM,cAAc,EAAE,CACxB,GAAa,GACb,EAAS,SAAS,CAAC,EAAM,MAAM,EAEnC,EACA,WAAE,CAAU,GAGR,EAAa,EAAI,OAAO,CAK9B,OAJI,GACF,EAAS,OADK,AACE,CAAC,GAGZ,KACD,GACF,EAAS,OADK,EACI,CAAC,EAEvB,CACF,EAAG,CAAC,EAAU,EAGZ,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CACC,IAAK,EACL,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,mBAAoB,GAAa,aAAc,GAC7D,MAAO,CAAE,gBAAiB,CAAA,EAAG,EAAM,EAAE,CAAC,AAAC,WAEtC,GAGP,+GC7CSA,UAAU,CAAA,kBAAVA,EAAAA,UAAU,EAMVC,qBAAqB,CAAA,kBAArBA,EAAAA,qBAAqB,EALrBC,gBAAgB,CAAA,kBAAhBA,EAAAA,gBAAgB,8EADE,CAAA,CAAA,IAAA,QACM,CAAA,CAAA,IAAA,QAKK,CAAA,CAAA,IAAA,+CCPtC,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,CAAA,CAAA,QAAA,IAAA,EAAA,EAAA,CAAA,CAAA,QAAA,EAAA,EAAA,CAAA,CAAA,QAAA,EAAA,EAAA,CAAA,CAAA,QAAA,EAAA,EAAA,CAAA,CAAA,QAAA,EAAA,EAAA,CAAA,CAAA,QAAA,EAAA,EAAA,CAAA,CAAA,OCJoL,EAAA,EAAA,CAAA,CAAA,QAAsG,IAAM,EAAmC,CAAA,EAAA,EAAA,iBAAb,IAAa,AAAqB,EAAC,KAAxB,wCAAqE,EAAA,UAAU,CAAC,KAAK,EAAE,EAAA,gBAAgB,CAAC,yBDMza,IAAA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QAEe,SAAS,IACtB,IAAM,EAAI,CAAA,EAAA,EAAA,eAAA,AAAe,EAAC,WACpB,YAAE,CAAU,CAAE,CAAG,CAAA,EAAA,EAAA,YAAA,AAAY,IAC7B,CAAC,EAAQ,EAAU,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,EAA8C,QAC5E,CAAC,EAAY,EAAc,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,GAAC,GAEvC,EAAc,AAAC,IAEd,IACH,GAAc,GACd,EAAW,AAFI,EAEJ,eAAe,CAAC,UAAU,CAAE,CACrC,QAAS,eACT,UAAW,SACb,IAIF,EAAW,EAAA,eAAe,CAAC,gBAAgB,CAAE,CAC3C,QAAS,eACT,SAAU,CACZ,EACF,EAEA,eAAe,EAAa,CAAmC,EAC7D,EAAE,cAAc,GAChB,EAAU,cAEV,IAAM,EAAW,IAAI,SAAS,EAAE,aAAa,EACvC,EAAQ,EAAS,GAAG,CAAC,SAE3B,GAAI,CACF,IAAM,EAAS,MAAM,EAAsB,GACvC,GAAQ,SAAS,AACnB,EAAW,0BAA2B,CACpC,UAAW,UACX,OACF,GACA,EAAU,WACT,EAAE,MAAM,CAAqB,KAAK,KAEnC,QAAQ,KAAK,CAAC,kCAAmC,OAAE,EAAO,MAAO,EAAO,KAAK,AAAC,GAC9E,EAAW,EAAA,eAAe,CAAC,UAAU,CAAE,CACrC,QAAS,eACT,MAAO,EAAO,KAAK,EAAI,mBACzB,GACA,EAAU,SAEd,CAAE,MAAO,EAAO,CACd,QAAQ,KAAK,CAAC,iCAAkC,OAAE,QAAO,CAAM,GAC/D,EAAW,EAAA,eAAe,CAAC,UAAU,CAAE,CACrC,QAAS,eACT,MAAQ,EAAgB,OAAO,EAAI,kBACrC,GACA,EAAU,QACZ,CACF,OAEA,AAAe,WAAW,CAAtB,EAEA,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,IAAI,CAAA,CACH,UAAU,+EACV,KAAK,QACL,YAAU,mBAEV,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,UAAU,qHACb,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CACC,UAAU,8BACV,KAAK,OACL,OAAO,eACP,QAAQ,qBAER,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,cAAc,QAAQ,eAAe,QAAQ,YAAa,EAAG,EAAE,uBAGzE,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,OAAO,CAAA,CAAC,MAAO,EAAG,UAAU,gBAC1B,EAAE,sBAAwB,kBAE7B,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAE,UAAU,4CACV,EAAE,qBACD,6EAEJ,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,MAAM,CAAA,CAAC,QAAS,IAAM,EAAU,QAAS,QAAQ,qBAC/C,EAAE,qBAAuB,4BAMnB,SAAS,CAApB,EAEA,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,IAAI,CAAA,CACH,UAAU,2HACV,KAAK,QACL,YAAU,sBAEV,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,UAAU,+HACb,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CACC,UAAU,wCACV,KAAK,OACL,QAAQ,YACR,OAAO,eACP,YAAY,cAEZ,CAAA,EAAA,EAAA,GAAA,EAAC,SAAA,CAAO,GAAG,KAAK,GAAG,KAAK,EAAE,OAC1B,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,cAAc,QAAQ,eAAe,UACzE,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,cAAc,QAAQ,eAAe,eAG7E,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,OAAO,CAAA,CAAC,MAAO,EAAG,UAAU,4CAC1B,EAAE,oBAAsB,uBAE3B,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAE,UAAU,wEACV,EAAE,eAAiB,iEAEtB,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,MAAM,CAAA,CACL,QAAS,IAAM,EAAU,QACzB,QAAQ,cACR,KAAK,KACL,UAAU,kBAET,EAAE,kBAAoB,iBAO7B,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,IAAI,CAAA,CAAC,UAAU,8FACd,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,OAAO,CAAA,CAAC,MAAO,EAAG,SAAU,EAAE,iBAAkB,UAAU,yBACxD,EAAE,gBAEL,CAAA,EAAA,EAAA,IAAA,EAAC,OAAA,CACC,GAAG,eACH,SAAU,EACV,UAAU,2DAGV,CAAA,EAAA,EAAA,GAAA,EAAC,QAAA,CACC,KAAK,OACL,KAAK,kBACL,SAAU,CAAC,EACX,aAAa,MACb,MAAO,CAAE,QAAS,MAAO,EACzB,cAAY,SAEd,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,mCACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CAAC,QAAQ,wBAAgB,EAAE,eACjC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CACJ,KAAK,OACL,GAAG,eACH,KAAK,OACL,aAAa,OACb,aAAa,OACb,QAAS,IAAM,EAAY,gBAC3B,QAAQ,CAAA,CAAA,OAGZ,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,mCACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CAAC,QAAQ,yBAAiB,EAAE,gBAClC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CACJ,KAAK,QACL,GAAG,gBACH,KAAK,QACL,aAAa,QACb,UAAU,QACV,aAAa,OACb,YAAa,EAAE,yBACf,QAAS,IAAM,EAAY,iBAC3B,QAAQ,CAAA,CAAA,OAGZ,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,iDACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CAAC,QAAQ,2BAAmB,EAAE,kBACpC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,QAAQ,CAAA,CACP,GAAG,kBACH,KAAK,UACL,KAAM,EACN,aAAa,OACb,YAAa,EAAE,2BACf,QAAS,IAAM,EAAY,mBAC3B,QAAQ,CAAA,CAAA,OAGZ,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,UAAU,sCACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,MAAM,CAAA,CACL,KAAK,SACL,QAAQ,YACR,KAAK,KACL,SAAqB,eAAX,EACV,UAAU,qHAEE,eAAX,EACC,CAAA,EAAA,EAAA,IAAA,EAAC,OAAA,CAAK,UAAU,oCACd,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CACC,UAAU,kCACV,MAAM,6BACN,KAAK,OACL,QAAQ,sBAER,CAAA,EAAA,EAAA,GAAA,EAAC,SAAA,CACC,UAAU,aACV,GAAG,KACH,GAAG,KACH,EAAE,KACF,OAAO,eACP,YAAY,MAEd,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CACC,UAAU,aACV,KAAK,eACL,EAAE,uHAGL,EAAE,oBAAsB,gBAG3B,EAAE,wBAOhB,0EEnOA,IAAM,EAAa,CAAA,EAFnB,AAEmB,EAFnB,CAAA,CAAA,QAEmB,OAAA,AAAO,EAAA,UAAA,EAAA,sCACxB,KAAK,EACL,QAAS,IACP,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,UAAU,4EACb,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,UAAU,kDAAyC,uBAW/C,SAAS,EAAW,SAAE,CAAO,KAAE,CAAG,KAAE,CAAG,CAAmB,EACvE,MAAO,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAW,UAAW,CAAC,CAAE,KAAM,uBAAgB,MAAS,MAAK,CAAI,EAAE,EAC7E,mECpBA,EAAA,EAAA,CAAA,CAAA,QAae,SAAS,EAAgB,OAAE,CAAK,WAAE,EAAY,EAAE,UAAE,CAAQ,CAAwB,EAC/F,GAAM,CAAC,EAAS,EAAW,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,GAAC,SAOvC,CALA,CAAA,EAAA,AAKI,EALJ,SAAA,AAAS,EAAC,KAER,GAAW,EACb,EAAG,EAAE,EAEA,GAWH,CAAA,EAAA,EAAA,CAXY,EAWZ,EAAC,IAAA,CAAE,KAAM,CAAC,OAAO,EAAE,EAAA,CAAO,CAAE,UAAW,WACpC,GAAY,IATb,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAW,EAAW,cAAY,gBACrC,GAAY,EAAM,OAAO,CAAC,IAAK,UAAU,OAAO,CAAC,MAAO,YAWjE","ignoreList":[14]}}] -} \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__b20a6437._.js b/.next/server/chunks/ssr/[root-of-the-server]__b20a6437._.js new file mode 100644 index 000000000..7d253b9d8 --- /dev/null +++ b/.next/server/chunks/ssr/[root-of-the-server]__b20a6437._.js @@ -0,0 +1,5 @@ +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="13f195c5-d9e9-e6cb-8a75-e66b9425228a")}catch(e){}}(); +module.exports=[324725,(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"))},64293,(a,b,c)=>{b.exports=a.x("pino-2e79642258e38174",()=>require("pino-2e79642258e38174"))},274209,281682,a=>{"use strict";var b=a.i(150765),c=a.i(475625);function d(){let a=(0,c.getAppServices)();return{trackEvent:(0,b.useCallback)((b,c)=>{a.analytics.track(b,c)},[a]),trackPageview:(0,b.useCallback)(b=>{a.analytics.trackPageview(b)},[a])}}a.s(["useAnalytics",()=>d],274209),a.s(["AnalyticsEvents",0,{PAGE_VIEW:"pageview",PAGE_SCROLL:"page_scroll",PAGE_EXIT:"page_exit",SCROLL_DEPTH:"scroll_depth",BUTTON_CLICK:"button_click",LINK_CLICK:"link_click",FORM_SUBMIT:"form_submit",FORM_START:"form_start",FORM_ERROR:"form_error",FORM_FIELD_FOCUS:"form_field_focus",PRODUCT_VIEW:"product_view",PRODUCT_ADD_TO_CART:"product_add_to_cart",PRODUCT_REMOVE_FROM_CART:"product_remove_from_cart",PRODUCT_PURCHASE:"product_purchase",PRODUCT_WISHLIST_ADD:"product_wishlist_add",PRODUCT_WISHLIST_REMOVE:"product_wishlist_remove",PRODUCT_TAB_SWITCH:"product_tab_switch",SEARCH:"search",FILTER_APPLY:"filter_apply",FILTER_CLEAR:"filter_clear",USER_SIGNUP:"user_signup",USER_LOGIN:"user_login",USER_LOGOUT:"user_logout",USER_PROFILE_UPDATE:"user_profile_update",BLOG_POST_VIEW:"blog_post_view",VIDEO_PLAY:"video_play",VIDEO_PAUSE:"video_pause",VIDEO_COMPLETE:"video_complete",DOWNLOAD:"download",MODAL_OPEN:"modal_open",MODAL_CLOSE:"modal_close",TOGGLE_SWITCH:"toggle_switch",ACCORDION_TOGGLE:"accordion_toggle",TAB_SWITCH:"tab_switch",TOC_CLICK:"toc_click",ERROR:"error",PERFORMANCE:"performance",API_ERROR:"api_error",API_SUCCESS:"api_success",QUOTE_REQUEST:"quote_request",CONTACT_FORM_SUBMIT:"contact_form_submit",NEWSLETTER_SUBSCRIBE:"newsletter_subscribe",BROCHURE_DOWNLOAD:"brochure_download"}],281682)},594214,90695,5515,544027,434904,618180,781027,41100,a=>{"use strict";var b=a.i(829091);a.i(912466);var c=a.i(526156);function d({className:a,children:d,...e}){return(0,c.jsx)("section",{className:(0,b.cn)("py-16 md:py-28 lg:py-36 overflow-hidden content-visibility-auto",a),...e,children:d})}function e({className:a,children:d,...e}){return(0,c.jsx)("div",{className:(0,b.cn)("container mx-auto px-4 md:px-12 lg:px-16 max-w-7xl",a),...e,children:d})}function f({level:a=2,children:d,className:e,subtitle:f,align:g="left"}){let h=`h${a}`;return(0,c.jsxs)("div",{className:(0,b.cn)("mb-6 md:mb-12 text-primary",{left:"text-left",center:"text-center mx-auto",right:"text-right"}[g],e),children:[f&&(0,c.jsx)("span",{className:"inline-block text-accent font-bold tracking-widest uppercase text-xs md:text-sm mb-3 md:mb-4 animate-fade-in",children:f}),(0,c.jsx)(h,{className:(0,b.cn)({1:"text-2xl md:text-4xl lg:text-5xl font-bold leading-[1.1] tracking-tight",2:"text-xl md:text-3xl lg:text-4xl font-bold leading-[1.2] tracking-tight",3:"text-lg md:text-2xl lg:text-3xl font-bold leading-[1.3] tracking-tight",4:"text-lg md:text-xl lg:text-2xl font-bold leading-[1.4]",5:"text-base md:text-lg font-bold leading-[1.5]",6:"text-base md:text-lg font-semibold leading-[1.6]"}[a]),children:d})]})}function g({className:a,children:d,tag:e="div",...f}){return(0,c.jsx)(e,{className:(0,b.cn)("premium-card overflow-hidden",a),...f,children:d})}function h({className:a,...d}){return(0,c.jsx)("input",{className:(0,b.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg",a),...d})}function i({className:a,...d}){return(0,c.jsx)("textarea",{className:(0,b.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg resize-none",a),...d})}function j({className:a,...d}){return(0,c.jsx)("label",{className:(0,b.cn)("text-[10px] md:text-xs font-extrabold text-primary uppercase tracking-widest",a),...d})}a.s(["Section",()=>d],90695),a.s(["Container",()=>e],5515),a.s(["Heading",()=>f],544027),a.s(["Card",()=>g],434904),a.s(["Input",()=>h],618180),a.s(["Textarea",()=>i],781027),a.s(["Label",()=>j],41100),a.s([],594214)},188457,a=>{"use strict";var b=a.i(526156),c=a.i(150765);a.i(594214);var d=a.i(829091);function e({children:a,className:e,threshold:f=.1,delay:g=0}){let[h,i]=(0,c.useState)(!1),j=(0,c.useRef)(null);return(0,c.useEffect)(()=>{let a=new IntersectionObserver(([b])=>{b.isIntersecting&&(i(!0),a.unobserve(b.target))},{threshold:f}),b=j.current;return b&&a.observe(b),()=>{b&&a.unobserve(b)}},[f]),(0,b.jsx)("div",{ref:j,className:(0,d.cn)("reveal-on-scroll",h&&"is-visible",e),style:{transitionDelay:`${g}ms`},children:a})}a.s(["default",()=>e])},100249,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={callServer:function(){return f.callServer},createServerReference:function(){return h.createServerReference},findSourceMapURL:function(){return g.findSourceMapURL}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(297622),g=a.r(308360),h=a.r(770173)},366014,a=>{"use strict";var b=a.i(526156),c=a.i(150765),d=a.i(603836);a.i(594214);var e=a.i(912466),f=a.i(544027),g=a.i(434904),h=a.i(618180),i=a.i(781027),j=a.i(41100),k=a.i(100249);let l=(0,k.createServerReference)("406fa8a8e7f827b5ac517f1985fa7a67a217b1e6b5",k.callServer,void 0,k.findSourceMapURL,"sendContactFormAction");var m=a.i(274209),n=a.i(281682);function o(){let a=(0,d.useTranslations)("Contact"),{trackEvent:k}=(0,m.useAnalytics)(),[o,p]=(0,c.useState)("idle"),[q,r]=(0,c.useState)(!1),s=a=>{q||(r(!0),k(n.AnalyticsEvents.FORM_START,{form_id:"contact_form",form_name:"Contact"})),k(n.AnalyticsEvents.FORM_FIELD_FOCUS,{form_id:"contact_form",field_id:a})};async function t(a){a.preventDefault(),p("submitting");let b=new FormData(a.currentTarget),c=b.get("email");try{let d=await l(b);d?.success?(k("contact_form_submission",{form_type:"general",email:c}),p("success"),a.target.reset()):(console.error("Contact form submission failed:",{email:c,error:d.error}),k(n.AnalyticsEvents.FORM_ERROR,{form_id:"contact_form",error:d.error||"submission_failed"}),p("error"))}catch(a){console.error("Contact form submission error:",{email:c,error:a}),k(n.AnalyticsEvents.FORM_ERROR,{form_id:"contact_form",error:a.message||"unexpected_error"}),p("error")}}return"success"===o?(0,b.jsxs)(g.Card,{className:"p-6 md:p-12 rounded-2xl md:rounded-[40px] border-none shadow-2xl text-center",role:"alert","aria-live":"polite",children:[(0,b.jsx)("div",{className:"w-20 h-20 bg-accent rounded-full flex items-center justify-center mx-auto mb-6 shadow-lg shadow-accent/20",children:(0,b.jsx)("svg",{className:"w-10 h-10 text-primary-dark",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:3,d:"M5 13l4 4L19 7"})})}),(0,b.jsx)(f.Heading,{level:3,className:"mb-4",children:a("form.successTitle")||"Message Sent!"}),(0,b.jsx)("p",{className:"text-text-secondary text-lg mb-8",children:a("form.successDesc")||"Thank you for your message. We will get back to you as soon as possible."}),(0,b.jsx)(e.Button,{onClick:()=>p("idle"),variant:"saturated",children:a("form.sendAnother")||"Send another message"})]}):"error"===o?(0,b.jsxs)(g.Card,{className:"p-6 md:p-12 rounded-2xl md:rounded-[40px] border-destructive/20 shadow-2xl text-center bg-destructive/5 animate-slide-up",role:"alert","aria-live":"assertive",children:[(0,b.jsx)("div",{className:"w-20 h-20 bg-destructive rounded-full flex items-center justify-center mx-auto mb-6 shadow-lg shadow-destructive/20",children:(0,b.jsxs)("svg",{className:"w-10 h-10 text-destructive-foreground",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:"2",children:[(0,b.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,b.jsx)("line",{x1:"15",y1:"9",x2:"9",y2:"15",strokeLinecap:"round",strokeLinejoin:"round"}),(0,b.jsx)("line",{x1:"9",y1:"9",x2:"15",y2:"15",strokeLinecap:"round",strokeLinejoin:"round"})]})}),(0,b.jsx)(f.Heading,{level:3,className:"mb-4 text-destructive font-black",children:a("form.errorTitle")||"Submission Failed!"}),(0,b.jsx)("p",{className:"text-destructive/80 text-lg mb-8 leading-relaxed font-medium",children:a("form.error")||"Something went wrong. Please check your input and try again."}),(0,b.jsx)(e.Button,{onClick:()=>p("idle"),variant:"destructive",size:"lg",className:"w-full",children:a("form.tryAgain")||"Try Again"})]}):(0,b.jsxs)(g.Card,{className:"p-6 md:p-12 rounded-2xl md:rounded-[40px] border-none shadow-2xl animate-slide-up",children:[(0,b.jsx)(f.Heading,{level:3,subtitle:a("form.subtitle"),className:"mb-6 md:mb-10",children:a("form.title")}),(0,b.jsxs)("form",{id:"contact-form",onSubmit:t,className:"grid grid-cols-1 md:grid-cols-2 gap-4 md:gap-8",children:[(0,b.jsx)("input",{type:"text",name:"company_website",tabIndex:-1,autoComplete:"off",style:{display:"none"},"aria-hidden":"true"}),(0,b.jsxs)("div",{className:"space-y-1 md:space-y-2",children:[(0,b.jsx)(j.Label,{htmlFor:"contact-name",children:a("form.name")}),(0,b.jsx)(h.Input,{type:"text",id:"contact-name",name:"name",autoComplete:"name",enterKeyHint:"next",onFocus:()=>s("contact-name"),required:!0})]}),(0,b.jsxs)("div",{className:"space-y-1 md:space-y-2",children:[(0,b.jsx)(j.Label,{htmlFor:"contact-email",children:a("form.email")}),(0,b.jsx)(h.Input,{type:"email",id:"contact-email",name:"email",autoComplete:"email",inputMode:"email",enterKeyHint:"next",placeholder:a("form.emailPlaceholder"),onFocus:()=>s("contact-email"),required:!0})]}),(0,b.jsxs)("div",{className:"md:col-span-2 space-y-1 md:space-y-2",children:[(0,b.jsx)(j.Label,{htmlFor:"contact-message",children:a("form.message")}),(0,b.jsx)(i.Textarea,{id:"contact-message",name:"message",rows:4,enterKeyHint:"send",placeholder:a("form.messagePlaceholder"),onFocus:()=>s("contact-message"),required:!0})]}),(0,b.jsx)("div",{className:"md:col-span-2 pt-2 md:pt-4",children:(0,b.jsx)(e.Button,{type:"submit",variant:"saturated",size:"lg",disabled:"submitting"===o,className:"w-full shadow-xl shadow-saturated/20 md:h-16 md:px-10 md:text-xl active:scale-[0.98] transition-transform",children:"submitting"===o?(0,b.jsxs)("span",{className:"flex items-center gap-2",children:[(0,b.jsxs)("svg",{className:"animate-spin h-5 w-5 text-white",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[(0,b.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,b.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),a("form.submitting")||"Sending..."]}):a("form.submit")})})]})]})}a.s(["default",()=>o],366014)},648658,a=>{"use strict";var b=a.i(526156);let c=(0,a.i(411487).default)(async()=>{},{loadableGenerated:{modules:[408235]},ssr:!1,loading:()=>(0,b.jsx)("div",{className:"h-full w-full bg-neutral-medium flex items-center justify-center",children:(0,b.jsx)("div",{className:"animate-pulse text-primary font-medium",children:"Loading Map..."})})});function d({address:a,lat:d,lng:e}){return(0,b.jsx)(c,{locations:[{name:"E-TIB Gruppe",address:a,lat:d,lng:e}]})}a.s(["default",()=>d])},567784,a=>{"use strict";var b=a.i(526156),c=a.i(150765);function d({email:a,className:d="",children:e}){let[f,g]=(0,c.useState)(!1);return((0,c.useEffect)(()=>{g(!0)},[]),f)?(0,b.jsx)("a",{href:`mailto:${a}`,className:d,children:e||a}):(0,b.jsx)("span",{className:d,"aria-hidden":"true",children:e||a.replace("@"," [at] ").replace(/\./g," [dot] ")})}a.s(["default",()=>d])},163041,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__00212f08._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js"].map(b=>a.l(b))).then(()=>b(17814)))}]; + +//# debugId=13f195c5-d9e9-e6cb-8a75-e66b9425228a +//# sourceMappingURL=%5Broot-of-the-server%5D__b20a6437._.js.map \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__b20a6437._.js.map b/.next/server/chunks/ssr/[root-of-the-server]__b20a6437._.js.map new file mode 100644 index 000000000..d4559d1b1 --- /dev/null +++ b/.next/server/chunks/ssr/[root-of-the-server]__b20a6437._.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": [], + "debugId": "13f195c5-d9e9-e6cb-8a75-e66b9425228a", + "sections": [ + {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["../../../../components/analytics/useAnalytics.ts","../../../../components/analytics/analytics-events.ts","../../../../components/ui/index.ts","../../../../components/ui/Section.tsx","../../../../components/ui/Container.tsx","../../../../components/ui/Heading.tsx","../../../../components/ui/Card.tsx","../../../../components/ui/Badge.tsx","../../../../components/ui/Input.tsx","../../../../components/ui/Textarea.tsx","../../../../components/ui/Label.tsx","../../../../components/ui/Callout.tsx","../../../../components/Reveal.tsx","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/build/webpack/loaders/next-flight-loader/action-client-wrapper.ts","../../../../components/ContactForm.tsx","../../../../app/actions/data%3A446f89%20%3Ctext/javascript%3E","../../../../components/ContactMap.tsx","../../../../components/ObfuscatedEmail.tsx"],"sourcesContent":["'use client';\n\nimport { useCallback } from 'react';\nimport { getAppServices } from '@/lib/services/create-services';\nimport type { AnalyticsEventProperties } from '@/lib/services/analytics/analytics-service';\n\n/**\n * Custom hook for tracking analytics events with Umami.\n * \n * Provides a convenient way to track custom events throughout your application.\n * \n * @example\n * ```tsx\n * import { useAnalytics } from '@/components/analytics/useAnalytics';\n * \n * function MyComponent() {\n * const { trackEvent, trackPageview } = useAnalytics();\n * \n * const handleButtonClick = () => {\n * trackEvent('button_click', {\n * button_id: 'cta-primary',\n * page: 'homepage'\n * });\n * };\n * \n * return <button onClick={handleButtonClick}>Click me</button>;\n * }\n * ```\n * \n * @example\n * ```tsx\n * // Track a custom pageview\n * const { trackPageview } = useAnalytics();\n * trackPageview('/custom-path?param=value');\n * ```\n */\nexport function useAnalytics() {\n const services = getAppServices();\n\n /**\n * Track a custom event with optional properties.\n * \n * @param eventName - The name of the event to track\n * @param properties - Optional event properties (metadata)\n */\n const trackEvent = useCallback(\n (eventName: string, properties?: AnalyticsEventProperties) => {\n services.analytics.track(eventName, properties);\n \n if (process.env.NODE_ENV === 'development') {\n console.log('[Umami] Tracked event:', eventName, properties);\n }\n },\n [services]\n );\n\n /**\n * Track a pageview (useful for custom navigation or SPA routing).\n * \n * @param url - The URL to track (defaults to current location)\n */\n const trackPageview = useCallback(\n (url?: string) => {\n services.analytics.trackPageview(url);\n \n if (process.env.NODE_ENV === 'development') {\n console.log('[Umami] Tracked pageview:', url ?? 'current location');\n }\n },\n [services]\n );\n\n return {\n trackEvent,\n trackPageview,\n };\n}\n","/**\n * Analytics Events Utility\n *\n * Centralized definitions for common analytics events and their properties.\n * This helps maintain consistency across the application and makes it easier\n * to track meaningful events.\n *\n * @example\n * ```tsx\n * import { useAnalytics } from '@/components/analytics/useAnalytics';\n * import { AnalyticsEvents } from '@/components/analytics/analytics-events';\n *\n * function ProductPage() {\n * const { trackEvent } = useAnalytics();\n *\n * const handleAddToCart = (productId: string, productName: string) => {\n * trackEvent(AnalyticsEvents.PRODUCT_ADD_TO_CART, {\n * product_id: productId,\n * product_name: productName,\n * page: 'product-detail'\n * });\n * };\n *\n * return <button onClick={() => handleAddToCart('123', 'Cable')}>Add to Cart</button>;\n * }\n * ```\n */\n\nexport const AnalyticsEvents = {\n // Page & Navigation Events\n PAGE_VIEW: 'pageview',\n PAGE_SCROLL: 'page_scroll',\n PAGE_EXIT: 'page_exit',\n SCROLL_DEPTH: 'scroll_depth',\n\n // User Interaction Events\n BUTTON_CLICK: 'button_click',\n LINK_CLICK: 'link_click',\n FORM_SUBMIT: 'form_submit',\n FORM_START: 'form_start',\n FORM_ERROR: 'form_error',\n FORM_FIELD_FOCUS: 'form_field_focus',\n\n // E-commerce Events\n PRODUCT_VIEW: 'product_view',\n PRODUCT_ADD_TO_CART: 'product_add_to_cart',\n PRODUCT_REMOVE_FROM_CART: 'product_remove_from_cart',\n PRODUCT_PURCHASE: 'product_purchase',\n PRODUCT_WISHLIST_ADD: 'product_wishlist_add',\n PRODUCT_WISHLIST_REMOVE: 'product_wishlist_remove',\n PRODUCT_TAB_SWITCH: 'product_tab_switch',\n\n // Search & Filter Events\n SEARCH: 'search',\n FILTER_APPLY: 'filter_apply',\n FILTER_CLEAR: 'filter_clear',\n\n // User Account Events\n USER_SIGNUP: 'user_signup',\n USER_LOGIN: 'user_login',\n USER_LOGOUT: 'user_logout',\n USER_PROFILE_UPDATE: 'user_profile_update',\n\n // Content Events\n BLOG_POST_VIEW: 'blog_post_view',\n VIDEO_PLAY: 'video_play',\n VIDEO_PAUSE: 'video_pause',\n VIDEO_COMPLETE: 'video_complete',\n DOWNLOAD: 'download',\n\n // UI Interaction Events\n MODAL_OPEN: 'modal_open',\n MODAL_CLOSE: 'modal_close',\n TOGGLE_SWITCH: 'toggle_switch',\n ACCORDION_TOGGLE: 'accordion_toggle',\n TAB_SWITCH: 'tab_switch',\n TOC_CLICK: 'toc_click',\n\n // Error & Performance Events\n ERROR: 'error',\n PERFORMANCE: 'performance',\n API_ERROR: 'api_error',\n API_SUCCESS: 'api_success',\n\n // Custom Business Events\n QUOTE_REQUEST: 'quote_request',\n CONTACT_FORM_SUBMIT: 'contact_form_submit',\n NEWSLETTER_SUBSCRIBE: 'newsletter_subscribe',\n BROCHURE_DOWNLOAD: 'brochure_download',\n} as const;\n\n/**\n * Type-safe event properties for common events\n */\nexport type AnalyticsEventName = (typeof AnalyticsEvents)[keyof typeof AnalyticsEvents];\n\n/**\n * Common event property helpers\n */\nexport const AnalyticsEventProperties = {\n /**\n * Create properties for a product event\n */\n product: (productId: string, productName: string, category?: string) => ({\n product_id: productId,\n product_name: productName,\n product_category: category,\n }),\n\n /**\n * Create properties for a form event\n */\n form: (formId: string, formName: string, fields?: Record<string, unknown>) => ({\n form_id: formId,\n form_name: formName,\n form_fields: fields,\n }),\n\n /**\n * Create properties for a search event\n */\n search: (query: string, filters?: Record<string, unknown>) => ({\n search_query: query,\n search_filters: filters,\n }),\n\n /**\n * Create properties for a navigation event\n */\n navigation: (from: string, to: string) => ({\n from_page: from,\n to_page: to,\n }),\n} as const;\n","export * from './utils';\nexport * from './Button';\nexport * from './Section';\nexport * from './Container';\nexport * from './Heading';\nexport * from './Card';\nexport * from './Badge';\nexport * from './Input';\nexport * from './Textarea';\nexport * from './Label';\nexport * from './Callout';\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Section({ className, children, ...props }: React.HTMLAttributes<HTMLElement>) {\n return (\n <section className={cn('py-16 md:py-28 lg:py-36 overflow-hidden content-visibility-auto', className)} {...props}>\n {children}\n </section>\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Container({ className, children, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div className={cn('container mx-auto px-4 md:px-12 lg:px-16 max-w-7xl', className)} {...props}>\n {children}\n </div>\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Heading({\n level = 2,\n children,\n className,\n subtitle,\n align = 'left'\n}: {\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n children: React.ReactNode;\n className?: string;\n subtitle?: string;\n align?: 'left' | 'center' | 'right';\n}) {\n const Tag = `h${level}` as any;\n \n const sizes = {\n 1: 'text-2xl md:text-4xl lg:text-5xl font-bold leading-[1.1] tracking-tight',\n 2: 'text-xl md:text-3xl lg:text-4xl font-bold leading-[1.2] tracking-tight',\n 3: 'text-lg md:text-2xl lg:text-3xl font-bold leading-[1.3] tracking-tight',\n 4: 'text-lg md:text-xl lg:text-2xl font-bold leading-[1.4]',\n 5: 'text-base md:text-lg font-bold leading-[1.5]',\n 6: 'text-base md:text-lg font-semibold leading-[1.6]',\n };\n\n const alignments = {\n left: 'text-left',\n center: 'text-center mx-auto',\n right: 'text-right',\n };\n\n return (\n <div className={cn('mb-6 md:mb-12 text-primary', alignments[align], className)}>\n {subtitle && (\n <span className=\"inline-block text-accent font-bold tracking-widest uppercase text-xs md:text-sm mb-3 md:mb-4 animate-fade-in\">\n {subtitle}\n </span>\n )}\n <Tag className={cn(sizes[level as keyof typeof sizes])}>\n {children}\n </Tag>\n </div>\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\ninterface CardProps extends React.HTMLAttributes<HTMLElement> {\n tag?: 'div' | 'article' | 'section' | 'aside' | 'header' | 'footer' | 'nav' | 'main';\n}\n\nexport function Card({ className, children, tag: Tag = 'div', ...props }: CardProps) {\n return (\n <Tag className={cn('premium-card overflow-hidden', className)} {...props}>\n {children}\n </Tag>\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Badge({ children, className, variant = 'primary' }: { children: React.ReactNode, className?: string, variant?: 'primary' | 'accent' | 'neutral' | 'saturated' }) {\n const variants = {\n primary: 'bg-primary-light text-primary',\n accent: 'bg-accent-light text-accent-dark',\n neutral: 'bg-neutral-medium text-text-secondary',\n saturated: 'bg-saturated text-white',\n };\n \n return (\n <span className={cn('inline-flex items-center px-3 py-1 rounded-full text-xs font-bold uppercase tracking-wider', variants[variant], className)}>\n {children}\n </span>\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n className?: string;\n}\n\nexport function Input({ className, ...props }: InputProps) {\n return (\n <input\n className={cn(\n 'w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg',\n className\n )}\n {...props}\n />\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n className?: string;\n}\n\nexport function Textarea({ className, ...props }: TextareaProps) {\n return (\n <textarea\n className={cn(\n 'w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg resize-none',\n className\n )}\n {...props}\n />\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport interface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {\n className?: string;\n}\n\nexport function Label({ className, ...props }: LabelProps) {\n return (\n <label\n className={cn(\n 'text-[10px] md:text-xs font-extrabold text-primary uppercase tracking-widest',\n className\n )}\n {...props}\n />\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\ninterface CalloutProps {\n type?: 'info' | 'warning' | 'success' | 'tip';\n title?: string;\n children: React.ReactNode;\n className?: string;\n}\n\nconst icons = {\n info: (\n <svg className=\"w-6 h-6\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path fillRule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\" clipRule=\"evenodd\" />\n </svg>\n ),\n warning: (\n <svg className=\"w-6 h-6\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path fillRule=\"evenodd\" d=\"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\" clipRule=\"evenodd\" />\n </svg>\n ),\n success: (\n <svg className=\"w-6 h-6\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path fillRule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\" clipRule=\"evenodd\" />\n </svg>\n ),\n tip: (\n <svg className=\"w-6 h-6\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path d=\"M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z\" />\n </svg>\n ),\n};\n\nconst styles = {\n info: 'bg-blue-50 border-blue-200 text-blue-900',\n warning: 'bg-yellow-50 border-yellow-200 text-yellow-900',\n success: 'bg-green-50 border-green-200 text-green-900',\n tip: 'bg-purple-50 border-purple-200 text-purple-900',\n};\n\nconst iconColors = {\n info: 'text-blue-500',\n warning: 'text-yellow-500',\n success: 'text-green-500',\n tip: 'text-purple-500',\n};\n\nexport function Callout({ type = 'info', title, children, className }: CalloutProps) {\n return (\n <div className={cn('my-8 p-6 rounded-xl border-2', styles[type], className)}>\n <div className=\"flex gap-4\">\n <div className={cn('flex-shrink-0', iconColors[type])}>\n {icons[type]}\n </div>\n <div className=\"flex-1\">\n {title && (\n <h4 className=\"font-bold text-base md:text-lg mb-2\">{title}</h4>\n )}\n <div className=\"prose prose-sm md:prose-base max-w-none\">\n {children}\n </div>\n </div>\n </div>\n </div>\n );\n}\n","'use client';\n\nimport React, { useEffect, useRef, useState } from 'react';\nimport { cn } from '@/components/ui';\n\ninterface RevealProps {\n children: React.ReactNode;\n className?: string;\n threshold?: number;\n delay?: number;\n}\n\nexport default function Reveal({ children, className, threshold = 0.1, delay = 0 }: RevealProps) {\n const [isVisible, setIsVisible] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (entry.isIntersecting) {\n setIsVisible(true);\n observer.unobserve(entry.target);\n }\n },\n { threshold }\n );\n\n const currentRef = ref.current;\n if (currentRef) {\n observer.observe(currentRef);\n }\n\n return () => {\n if (currentRef) {\n observer.unobserve(currentRef);\n }\n };\n }, [threshold]);\n\n return (\n <div\n ref={ref}\n className={cn('reveal-on-scroll', isVisible && 'is-visible', className)}\n style={{ transitionDelay: `${delay}ms` }}\n >\n {children}\n </div>\n );\n}\n","// This file must be bundled in the app's client layer, it shouldn't be directly\n// imported by the server.\n\nexport { callServer } from 'next/dist/client/app-call-server'\nexport { findSourceMapURL } from 'next/dist/client/app-find-source-map-url'\n\n// A noop wrapper to let the Flight client create the server reference.\n// See also: https://github.com/facebook/react/pull/26632\n// eslint-disable-next-line import/no-extraneous-dependencies\nexport { createServerReference } from 'react-server-dom-webpack/client'\n","'use client';\n\nimport React, { useState } from 'react';\nimport { useTranslations } from 'next-intl';\nimport { Button, Heading, Card, Input, Textarea, Label } from '@/components/ui';\nimport { sendContactFormAction } from '@/app/actions/contact';\nimport { useAnalytics } from '@/components/analytics/useAnalytics';\nimport { AnalyticsEvents } from '@/components/analytics/analytics-events';\n\nexport default function ContactForm() {\n const t = useTranslations('Contact');\n const { trackEvent } = useAnalytics();\n const [status, setStatus] = useState<'idle' | 'submitting' | 'success' | 'error'>('idle');\n const [hasStarted, setHasStarted] = useState(false);\n\n const handleFocus = (fieldId: string) => {\n // Initial form start\n if (!hasStarted) {\n setHasStarted(true);\n trackEvent(AnalyticsEvents.FORM_START, {\n form_id: 'contact_form',\n form_name: 'Contact',\n });\n }\n\n // Field-level transparency\n trackEvent(AnalyticsEvents.FORM_FIELD_FOCUS, {\n form_id: 'contact_form',\n field_id: fieldId,\n });\n };\n\n async function handleSubmit(e: React.FormEvent<HTMLFormElement>) {\n e.preventDefault();\n setStatus('submitting');\n\n const formData = new FormData(e.currentTarget);\n const email = formData.get('email') as string;\n\n try {\n const result = await sendContactFormAction(formData);\n if (result?.success) {\n trackEvent('contact_form_submission', {\n form_type: 'general',\n email,\n });\n setStatus('success');\n (e.target as HTMLFormElement).reset();\n } else {\n console.error('Contact form submission failed:', { email, error: result.error });\n trackEvent(AnalyticsEvents.FORM_ERROR, {\n form_id: 'contact_form',\n error: result.error || 'submission_failed',\n });\n setStatus('error');\n }\n } catch (error) {\n console.error('Contact form submission error:', { email, error });\n trackEvent(AnalyticsEvents.FORM_ERROR, {\n form_id: 'contact_form',\n error: (error as Error).message || 'unexpected_error',\n });\n setStatus('error');\n }\n }\n\n if (status === 'success') {\n return (\n <Card\n className=\"p-6 md:p-12 rounded-2xl md:rounded-[40px] border-none shadow-2xl text-center\"\n role=\"alert\"\n aria-live=\"polite\"\n >\n <div className=\"w-20 h-20 bg-accent rounded-full flex items-center justify-center mx-auto mb-6 shadow-lg shadow-accent/20\">\n <svg\n className=\"w-10 h-10 text-primary-dark\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={3} d=\"M5 13l4 4L19 7\" />\n </svg>\n </div>\n <Heading level={3} className=\"mb-4\">\n {t('form.successTitle') || 'Message Sent!'}\n </Heading>\n <p className=\"text-text-secondary text-lg mb-8\">\n {t('form.successDesc') ||\n 'Thank you for your message. We will get back to you as soon as possible.'}\n </p>\n <Button onClick={() => setStatus('idle')} variant=\"saturated\">\n {t('form.sendAnother') || 'Send another message'}\n </Button>\n </Card>\n );\n }\n\n if (status === 'error') {\n return (\n <Card\n className=\"p-6 md:p-12 rounded-2xl md:rounded-[40px] border-destructive/20 shadow-2xl text-center bg-destructive/5 animate-slide-up\"\n role=\"alert\"\n aria-live=\"assertive\"\n >\n <div className=\"w-20 h-20 bg-destructive rounded-full flex items-center justify-center mx-auto mb-6 shadow-lg shadow-destructive/20\">\n <svg\n className=\"w-10 h-10 text-destructive-foreground\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </div>\n <Heading level={3} className=\"mb-4 text-destructive font-black\">\n {t('form.errorTitle') || 'Submission Failed!'}\n </Heading>\n <p className=\"text-destructive/80 text-lg mb-8 leading-relaxed font-medium\">\n {t('form.error') || 'Something went wrong. Please check your input and try again.'}\n </p>\n <Button\n onClick={() => setStatus('idle')}\n variant=\"destructive\"\n size=\"lg\"\n className=\"w-full\"\n >\n {t('form.tryAgain') || 'Try Again'}\n </Button>\n </Card>\n );\n }\n\n return (\n <Card className=\"p-6 md:p-12 rounded-2xl md:rounded-[40px] border-none shadow-2xl animate-slide-up\">\n <Heading level={3} subtitle={t('form.subtitle')} className=\"mb-6 md:mb-10\">\n {t('form.title')}\n </Heading>\n <form\n id=\"contact-form\"\n onSubmit={handleSubmit}\n className=\"grid grid-cols-1 md:grid-cols-2 gap-4 md:gap-8\"\n >\n {/* Anti-spam Honeypot */}\n <input\n type=\"text\"\n name=\"company_website\"\n tabIndex={-1}\n autoComplete=\"off\"\n style={{ display: 'none' }}\n aria-hidden=\"true\"\n />\n <div className=\"space-y-1 md:space-y-2\">\n <Label htmlFor=\"contact-name\">{t('form.name')}</Label>\n <Input\n type=\"text\"\n id=\"contact-name\"\n name=\"name\"\n autoComplete=\"name\"\n enterKeyHint=\"next\"\n onFocus={() => handleFocus('contact-name')}\n required\n />\n </div>\n <div className=\"space-y-1 md:space-y-2\">\n <Label htmlFor=\"contact-email\">{t('form.email')}</Label>\n <Input\n type=\"email\"\n id=\"contact-email\"\n name=\"email\"\n autoComplete=\"email\"\n inputMode=\"email\"\n enterKeyHint=\"next\"\n placeholder={t('form.emailPlaceholder')}\n onFocus={() => handleFocus('contact-email')}\n required\n />\n </div>\n <div className=\"md:col-span-2 space-y-1 md:space-y-2\">\n <Label htmlFor=\"contact-message\">{t('form.message')}</Label>\n <Textarea\n id=\"contact-message\"\n name=\"message\"\n rows={4}\n enterKeyHint=\"send\"\n placeholder={t('form.messagePlaceholder')}\n onFocus={() => handleFocus('contact-message')}\n required\n />\n </div>\n <div className=\"md:col-span-2 pt-2 md:pt-4\">\n <Button\n type=\"submit\"\n variant=\"saturated\"\n size=\"lg\"\n disabled={status === 'submitting'}\n className=\"w-full shadow-xl shadow-saturated/20 md:h-16 md:px-10 md:text-xl active:scale-[0.98] transition-transform\"\n >\n {status === 'submitting' ? (\n <span className=\"flex items-center gap-2\">\n <svg\n className=\"animate-spin h-5 w-5 text-white\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n ></circle>\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n ></path>\n </svg>\n {t('form.submitting') || 'Sending...'}\n </span>\n ) : (\n t('form.submit')\n )}\n </Button>\n </div>\n </form>\n </Card>\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"406fa8a8e7f827b5ac517f1985fa7a67a217b1e6b5\":\"sendContactFormAction\"},\"app/actions/contact.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"406fa8a8e7f827b5ac517f1985fa7a67a217b1e6b5\",callServer,void 0,findSourceMapURL,\"sendContactFormAction\");export{$$RSC_SERVER_ACTION_0 as sendContactFormAction};","'use client';\n\nimport React from 'react';\nimport dynamic from 'next/dynamic';\n\nconst LeafletMap = dynamic(() => import('@/components/LeafletMap'), {\n ssr: false,\n loading: () => (\n <div className=\"h-full w-full bg-neutral-medium flex items-center justify-center\">\n <div className=\"animate-pulse text-primary font-medium\">Loading Map...</div>\n </div>\n ),\n});\n\ninterface ContactMapProps {\n address: string;\n lat: number;\n lng: number;\n}\n\nexport default function ContactMap({ address, lat, lng }: ContactMapProps) {\n return <LeafletMap locations={[{ name: 'E-TIB Gruppe', address, lat, lng }]} />;\n}\n","'use client';\n\nimport React, { useState, useEffect } from 'react';\n\ninterface ObfuscatedEmailProps {\n email: string;\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * A component that helps protect email addresses from simple spambots.\n * It uses client-side mounting to render the actual email address,\n * making it harder for static crawlers to harvest.\n */\nexport default function ObfuscatedEmail({ email, className = '', children }: ObfuscatedEmailProps) {\n const [mounted, setMounted] = useState(false);\n\n useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setMounted(true);\n }, []);\n\n if (!mounted) {\n // Show a placeholder or obscured version during SSR\n return (\n <span className={className} aria-hidden=\"true\">\n {children || email.replace('@', ' [at] ').replace(/\\./g, ' [dot] ')}\n </span>\n );\n }\n\n // Once mounted on the client, render the real mailto link\n return (\n <a href={`mailto:${email}`} className={className}>\n {children || email}\n </a>\n );\n}\n"],"names":["callServer","createServerReference","findSourceMapURL"],"mappings":"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","ignoreList":[13]}}] +} \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__bc83295f._.js b/.next/server/chunks/ssr/[root-of-the-server]__bc83295f._.js deleted file mode 100644 index 3a832afc3..000000000 --- a/.next/server/chunks/ssr/[root-of-the-server]__bc83295f._.js +++ /dev/null @@ -1,5 +0,0 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="1d097e8c-f5f5-cac8-209e-99330b741a4f")}catch(e){}}(); -module.exports=[605365,(a,b,c)=>{b.exports=a.x("process",()=>require("process"))},410430,(a,b,c)=>{b.exports=a.x("async_hooks",()=>require("async_hooks"))},792509,(a,b,c)=>{b.exports=a.x("url",()=>require("url"))},427699,(a,b,c)=>{b.exports=a.x("events",()=>require("events"))},81111,(a,b,c)=>{b.exports=a.x("node:stream",()=>require("node:stream"))},446786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},224361,(a,b,c)=>{b.exports=a.x("util",()=>require("util"))},814747,(a,b,c)=>{b.exports=a.x("path",()=>require("path"))},522734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},233405,(a,b,c)=>{b.exports=a.x("child_process",()=>require("child_process"))},254799,(a,b,c)=>{b.exports=a.x("crypto",()=>require("crypto"))},362562,(a,b,c)=>{b.exports=a.x("module",()=>require("module"))},156823,(a,b,c)=>{b.exports=a.x("require-in-the-middle-a99415fa67232f7f",()=>require("require-in-the-middle-a99415fa67232f7f"))},285512,(a,b,c)=>{b.exports=a.x("import-in-the-middle-138cd032e4b029f3",()=>require("import-in-the-middle-138cd032e4b029f3"))},677652,(a,b,c)=>{b.exports=a.x("node:diagnostics_channel",()=>require("node:diagnostics_channel"))},687769,(a,b,c)=>{b.exports=a.x("node:events",()=>require("node:events"))},154993,(a,b,c)=>{b.exports=a.x("diagnostics_channel",()=>require("diagnostics_channel"))},874533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},902157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},812057,(a,b,c)=>{b.exports=a.x("node:util",()=>require("node:util"))},601457,(a,b,c)=>{b.exports=a.x("node:readline",()=>require("node:readline"))},925127,(a,b,c)=>{b.exports=a.x("node:worker_threads",()=>require("node:worker_threads"))},37702,(a,b,c)=>{b.exports=a.x("worker_threads",()=>require("worker_threads"))},347299,(a,b,c)=>{b.exports=a.x("node:http",()=>require("node:http"))},743698,(a,b,c)=>{b.exports=a.x("node:https",()=>require("node:https"))},727028,(a,b,c)=>{b.exports=a.x("node:zlib",()=>require("node:zlib"))},761095,(a,b,c)=>{b.exports=a.x("node:net",()=>require("node:net"))},685560,(a,b,c)=>{b.exports=a.x("node:tls",()=>require("node:tls"))},60438,(a,b,c)=>{b.exports=a.x("perf_hooks",()=>require("perf_hooks"))},74667,(a,b,c)=>{b.exports=a.x("import-in-the-middle-6ecbfda1283b1532",()=>require("import-in-the-middle-6ecbfda1283b1532"))},989801,a=>{a.v({name:"@fastify/otel",version:"0.18.0",description:"Official Fastify OpenTelemetry Instrumentation",main:"index.js",type:"commonjs",types:"types/index.d.ts",scripts:{lint:"eslint","lint:fix":"eslint --fix",test:"npm run test:all && npm run test:typescript","test:unit":"c8 --100 node --test","test:all":"npm run test:v4 && npm run test:v5","test:v4":"cross-env FASTIFY_VERSION=fastifyv4 npm run test:unit","test:v5":"cross-env FASTIFY_VERSION=fastify npm run test:unit","test:coverage":"c8 node --test && c8 report --reporter=html","test:typescript":"tsd"},repository:{type:"git",url:"git+https://github.com/fastify/otel.git"},keywords:["plugin","helper","fastify","instrumentation","otel","opentelemetry"],author:"Carlos Fuentes - @metcoder95 (https://metcoder.dev)",license:"MIT",bugs:{url:"https://github.com/fastify/otel/issues"},homepage:"https://github.com/fastify/otel#readme",funding:[{type:"github",url:"https://github.com/sponsors/fastify"},{type:"opencollective",url:"https://opencollective.com/fastify"}],devDependencies:{"@fastify/type-provider-typebox":"^6.1.0","@opentelemetry/context-async-hooks":"^2.0.0","@opentelemetry/contrib-test-utils":"^0.59.0","@opentelemetry/instrumentation-http":"^0.212.0","@opentelemetry/propagator-jaeger":"^2.0.0","@opentelemetry/sdk-trace-base":"^2.0.0","@opentelemetry/sdk-trace-node":"^2.2.0","@types/node":"^25.0.3",c8:"^11.0.0","cross-env":"^10.0.0",eslint:"^9.16.0",fastify:"^5.1.0","fastify-plugin":"^5.1.0",fastifyv4:"npm:fastify@^4.0.0",neostandard:"^0.12.0",tsd:"^0.33.0"},dependencies:{"@opentelemetry/core":"^2.0.0","@opentelemetry/instrumentation":"^0.212.0","@opentelemetry/semantic-conventions":"^1.28.0",minimatch:"^10.2.4"},peerDependencies:{"@opentelemetry/api":"^1.9.0"},tsd:{directory:"types"}})},385603,750470,70226,563305,a=>{"use strict";var b,c;let d="1.9.1",e=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/,f=function(a){let b=new Set([a]),c=new Set,d=a.match(e);if(!d)return()=>!1;let f={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=f.prerelease)return function(b){return b===a};function g(a){return c.add(a),!1}return function(a){if(b.has(a))return!0;if(c.has(a))return!1;let d=a.match(e);if(!d)return g(a);let h={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=h.prerelease||f.major!==h.major)return g(a);if(0===f.major)return f.minor===h.minor&&f.patch<=h.patch?(b.add(a),!0):g(a);return f.minor<=h.minor?(b.add(a),!0):g(a)}}(d),g=d.split(".")[0],h=Symbol.for(`opentelemetry.js.api.${g}`),i="object"==typeof globalThis?globalThis:"object"==typeof self?self:a.g;function j(a,b,c,e=!1){var f;let g=i[h]=null!=(f=i[h])?f:{version:d};if(!e&&g[a]){let b=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${a}`);return c.error(b.stack||b.message),!1}if(g.version!==d){let b=Error(`@opentelemetry/api: Registration of version v${g.version} for ${a} does not match previously registered API v${d}`);return c.error(b.stack||b.message),!1}return g[a]=b,c.debug(`@opentelemetry/api: Registered a global for ${a} v${d}.`),!0}function k(a){var b,c;let d=null==(b=i[h])?void 0:b.version;if(d&&f(d))return null==(c=i[h])?void 0:c[a]}function l(a,b){b.debug(`@opentelemetry/api: Unregistering a global for ${a} v${d}.`);let c=i[h];c&&delete c[a]}a.s(["getGlobal",()=>k,"registerGlobal",()=>j,"unregisterGlobal",()=>l],750470);class m{constructor(a){this._namespace=a.namespace||"DiagComponentLogger"}debug(...a){return n("debug",this._namespace,a)}error(...a){return n("error",this._namespace,a)}info(...a){return n("info",this._namespace,a)}warn(...a){return n("warn",this._namespace,a)}verbose(...a){return n("verbose",this._namespace,a)}}function n(a,b,c){let d=k("diag");if(d)return d[a](b,...c)}(c=b||(b={}))[c.NONE=0]="NONE",c[c.ERROR=30]="ERROR",c[c.WARN=50]="WARN",c[c.INFO=60]="INFO",c[c.DEBUG=70]="DEBUG",c[c.VERBOSE=80]="VERBOSE",c[c.ALL=9999]="ALL",a.s(["DiagLogLevel",()=>b],70226);class o{static instance(){return this._instance||(this._instance=new o),this._instance}constructor(){function a(a){return function(...b){let c=k("diag");if(c)return c[a](...b)}}const c=this,d=(a,d={logLevel:b.INFO})=>{var e,f,g;if(a===c){let a=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return c.error(null!=(e=a.stack)?e:a.message),!1}"number"==typeof d&&(d={logLevel:d});let h=k("diag"),i=function(a,c){function d(b,d){let e=c[b];return"function"==typeof e&&a>=d?e.bind(c):function(){}}return a<b.NONE?a=b.NONE:a>b.ALL&&(a=b.ALL),c=c||{},{error:d("error",b.ERROR),warn:d("warn",b.WARN),info:d("info",b.INFO),debug:d("debug",b.DEBUG),verbose:d("verbose",b.VERBOSE)}}(null!=(f=d.logLevel)?f:b.INFO,a);if(h&&!d.suppressOverrideMessage){let a=null!=(g=Error().stack)?g:"<failed to generate stacktrace>";h.warn(`Current logger will be overwritten from ${a}`),i.warn(`Current logger will overwrite one already registered from ${a}`)}return j("diag",i,c,!0)};c.setLogger=d,c.disable=()=>{l("diag",c)},c.createComponentLogger=a=>new m(a),c.verbose=a("verbose"),c.debug=a("debug"),c.info=a("info"),c.warn=a("warn"),c.error=a("error")}}a.s(["DiagAPI",()=>o],563305);let p=o.instance();a.s(["diag",0,p],385603)},234177,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node:inspector_7a4283c6._.js"].map(b=>a.l(b))).then(()=>b(237221)))},872097,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__fbc63b72._.js"].map(b=>a.l(b))).then(()=>b(524177)))},992965,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__9bfda315._.js"].map(b=>a.l(b))).then(()=>b(435235)))},846524,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__9eff91eb._.js"].map(b=>a.l(b))).then(()=>b(20549)))},189011,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__16d71f56._.js"].map(b=>a.l(b))).then(()=>b(800164)))},18291,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules__pnpm_8387bcd6._.js"].map(b=>a.l(b))).then(()=>b(282793)))}]; - -//# debugId=1d097e8c-f5f5-cac8-209e-99330b741a4f -//# sourceMappingURL=%5Broot-of-the-server%5D__bc83295f._.js.map \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__cf9f2fa5._.js b/.next/server/chunks/ssr/[root-of-the-server]__cf9f2fa5._.js new file mode 100644 index 000000000..067e0e7f2 --- /dev/null +++ b/.next/server/chunks/ssr/[root-of-the-server]__cf9f2fa5._.js @@ -0,0 +1,5 @@ +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="1d097e8c-f5f5-cac8-209e-99330b741a4f")}catch(e){}}(); +module.exports=[605365,(a,b,c)=>{b.exports=a.x("process",()=>require("process"))},410430,(a,b,c)=>{b.exports=a.x("async_hooks",()=>require("async_hooks"))},792509,(a,b,c)=>{b.exports=a.x("url",()=>require("url"))},427699,(a,b,c)=>{b.exports=a.x("events",()=>require("events"))},81111,(a,b,c)=>{b.exports=a.x("node:stream",()=>require("node:stream"))},446786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},224361,(a,b,c)=>{b.exports=a.x("util",()=>require("util"))},814747,(a,b,c)=>{b.exports=a.x("path",()=>require("path"))},522734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},233405,(a,b,c)=>{b.exports=a.x("child_process",()=>require("child_process"))},254799,(a,b,c)=>{b.exports=a.x("crypto",()=>require("crypto"))},362562,(a,b,c)=>{b.exports=a.x("module",()=>require("module"))},156823,(a,b,c)=>{b.exports=a.x("require-in-the-middle-a99415fa67232f7f",()=>require("require-in-the-middle-a99415fa67232f7f"))},285512,(a,b,c)=>{b.exports=a.x("import-in-the-middle-138cd032e4b029f3",()=>require("import-in-the-middle-138cd032e4b029f3"))},677652,(a,b,c)=>{b.exports=a.x("node:diagnostics_channel",()=>require("node:diagnostics_channel"))},687769,(a,b,c)=>{b.exports=a.x("node:events",()=>require("node:events"))},154993,(a,b,c)=>{b.exports=a.x("diagnostics_channel",()=>require("diagnostics_channel"))},874533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},902157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},812057,(a,b,c)=>{b.exports=a.x("node:util",()=>require("node:util"))},601457,(a,b,c)=>{b.exports=a.x("node:readline",()=>require("node:readline"))},925127,(a,b,c)=>{b.exports=a.x("node:worker_threads",()=>require("node:worker_threads"))},37702,(a,b,c)=>{b.exports=a.x("worker_threads",()=>require("worker_threads"))},347299,(a,b,c)=>{b.exports=a.x("node:http",()=>require("node:http"))},743698,(a,b,c)=>{b.exports=a.x("node:https",()=>require("node:https"))},727028,(a,b,c)=>{b.exports=a.x("node:zlib",()=>require("node:zlib"))},761095,(a,b,c)=>{b.exports=a.x("node:net",()=>require("node:net"))},685560,(a,b,c)=>{b.exports=a.x("node:tls",()=>require("node:tls"))},60438,(a,b,c)=>{b.exports=a.x("perf_hooks",()=>require("perf_hooks"))},74667,(a,b,c)=>{b.exports=a.x("import-in-the-middle-6ecbfda1283b1532",()=>require("import-in-the-middle-6ecbfda1283b1532"))},989801,a=>{a.v({name:"@fastify/otel",version:"0.18.0",description:"Official Fastify OpenTelemetry Instrumentation",main:"index.js",type:"commonjs",types:"types/index.d.ts",scripts:{lint:"eslint","lint:fix":"eslint --fix",test:"npm run test:all && npm run test:typescript","test:unit":"c8 --100 node --test","test:all":"npm run test:v4 && npm run test:v5","test:v4":"cross-env FASTIFY_VERSION=fastifyv4 npm run test:unit","test:v5":"cross-env FASTIFY_VERSION=fastify npm run test:unit","test:coverage":"c8 node --test && c8 report --reporter=html","test:typescript":"tsd"},repository:{type:"git",url:"git+https://github.com/fastify/otel.git"},keywords:["plugin","helper","fastify","instrumentation","otel","opentelemetry"],author:"Carlos Fuentes - @metcoder95 (https://metcoder.dev)",license:"MIT",bugs:{url:"https://github.com/fastify/otel/issues"},homepage:"https://github.com/fastify/otel#readme",funding:[{type:"github",url:"https://github.com/sponsors/fastify"},{type:"opencollective",url:"https://opencollective.com/fastify"}],devDependencies:{"@fastify/type-provider-typebox":"^6.1.0","@opentelemetry/context-async-hooks":"^2.0.0","@opentelemetry/contrib-test-utils":"^0.59.0","@opentelemetry/instrumentation-http":"^0.212.0","@opentelemetry/propagator-jaeger":"^2.0.0","@opentelemetry/sdk-trace-base":"^2.0.0","@opentelemetry/sdk-trace-node":"^2.2.0","@types/node":"^25.0.3",c8:"^11.0.0","cross-env":"^10.0.0",eslint:"^9.16.0",fastify:"^5.1.0","fastify-plugin":"^5.1.0",fastifyv4:"npm:fastify@^4.0.0",neostandard:"^0.12.0",tsd:"^0.33.0"},dependencies:{"@opentelemetry/core":"^2.0.0","@opentelemetry/instrumentation":"^0.212.0","@opentelemetry/semantic-conventions":"^1.28.0",minimatch:"^10.2.4"},peerDependencies:{"@opentelemetry/api":"^1.9.0"},tsd:{directory:"types"}})},385603,750470,70226,563305,a=>{"use strict";var b,c;let d="1.9.1",e=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/,f=function(a){let b=new Set([a]),c=new Set,d=a.match(e);if(!d)return()=>!1;let f={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=f.prerelease)return function(b){return b===a};function g(a){return c.add(a),!1}return function(a){if(b.has(a))return!0;if(c.has(a))return!1;let d=a.match(e);if(!d)return g(a);let h={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=h.prerelease||f.major!==h.major)return g(a);if(0===f.major)return f.minor===h.minor&&f.patch<=h.patch?(b.add(a),!0):g(a);return f.minor<=h.minor?(b.add(a),!0):g(a)}}(d),g=d.split(".")[0],h=Symbol.for(`opentelemetry.js.api.${g}`),i="object"==typeof globalThis?globalThis:"object"==typeof self?self:a.g;function j(a,b,c,e=!1){var f;let g=i[h]=null!=(f=i[h])?f:{version:d};if(!e&&g[a]){let b=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${a}`);return c.error(b.stack||b.message),!1}if(g.version!==d){let b=Error(`@opentelemetry/api: Registration of version v${g.version} for ${a} does not match previously registered API v${d}`);return c.error(b.stack||b.message),!1}return g[a]=b,c.debug(`@opentelemetry/api: Registered a global for ${a} v${d}.`),!0}function k(a){var b,c;let d=null==(b=i[h])?void 0:b.version;if(d&&f(d))return null==(c=i[h])?void 0:c[a]}function l(a,b){b.debug(`@opentelemetry/api: Unregistering a global for ${a} v${d}.`);let c=i[h];c&&delete c[a]}a.s(["getGlobal",()=>k,"registerGlobal",()=>j,"unregisterGlobal",()=>l],750470);class m{constructor(a){this._namespace=a.namespace||"DiagComponentLogger"}debug(...a){return n("debug",this._namespace,a)}error(...a){return n("error",this._namespace,a)}info(...a){return n("info",this._namespace,a)}warn(...a){return n("warn",this._namespace,a)}verbose(...a){return n("verbose",this._namespace,a)}}function n(a,b,c){let d=k("diag");if(d)return d[a](b,...c)}(c=b||(b={}))[c.NONE=0]="NONE",c[c.ERROR=30]="ERROR",c[c.WARN=50]="WARN",c[c.INFO=60]="INFO",c[c.DEBUG=70]="DEBUG",c[c.VERBOSE=80]="VERBOSE",c[c.ALL=9999]="ALL",a.s(["DiagLogLevel",()=>b],70226);class o{static instance(){return this._instance||(this._instance=new o),this._instance}constructor(){function a(a){return function(...b){let c=k("diag");if(c)return c[a](...b)}}const c=this,d=(a,d={logLevel:b.INFO})=>{var e,f,g;if(a===c){let a=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return c.error(null!=(e=a.stack)?e:a.message),!1}"number"==typeof d&&(d={logLevel:d});let h=k("diag"),i=function(a,c){function d(b,d){let e=c[b];return"function"==typeof e&&a>=d?e.bind(c):function(){}}return a<b.NONE?a=b.NONE:a>b.ALL&&(a=b.ALL),c=c||{},{error:d("error",b.ERROR),warn:d("warn",b.WARN),info:d("info",b.INFO),debug:d("debug",b.DEBUG),verbose:d("verbose",b.VERBOSE)}}(null!=(f=d.logLevel)?f:b.INFO,a);if(h&&!d.suppressOverrideMessage){let a=null!=(g=Error().stack)?g:"<failed to generate stacktrace>";h.warn(`Current logger will be overwritten from ${a}`),i.warn(`Current logger will overwrite one already registered from ${a}`)}return j("diag",i,c,!0)};c.setLogger=d,c.disable=()=>{l("diag",c)},c.createComponentLogger=a=>new m(a),c.verbose=a("verbose"),c.debug=a("debug"),c.info=a("info"),c.warn=a("warn"),c.error=a("error")}}a.s(["DiagAPI",()=>o],563305);let p=o.instance();a.s(["diag",0,p],385603)},234177,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node:inspector_7a4283c6._.js"].map(b=>a.l(b))).then(()=>b(237221)))},872097,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__fbc63b72._.js"].map(b=>a.l(b))).then(()=>b(524177)))},992965,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__9bfda315._.js"].map(b=>a.l(b))).then(()=>b(435235)))},846524,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__9eff91eb._.js"].map(b=>a.l(b))).then(()=>b(20549)))},189011,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__16d71f56._.js"].map(b=>a.l(b))).then(()=>b(800164)))},18291,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules__pnpm_8387bcd6._.js"].map(b=>a.l(b))).then(()=>b(282793)))}]; + +//# debugId=1d097e8c-f5f5-cac8-209e-99330b741a4f +//# sourceMappingURL=%5Broot-of-the-server%5D__cf9f2fa5._.js.map \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__a965d2a8._.js.map b/.next/server/chunks/ssr/[root-of-the-server]__cf9f2fa5._.js.map similarity index 100% rename from .next/server/chunks/ssr/[root-of-the-server]__a965d2a8._.js.map rename to .next/server/chunks/ssr/[root-of-the-server]__cf9f2fa5._.js.map diff --git a/.next/server/chunks/ssr/[root-of-the-server]__d3969a9f._.js b/.next/server/chunks/ssr/[root-of-the-server]__d3969a9f._.js new file mode 100644 index 000000000..128632b5d --- /dev/null +++ b/.next/server/chunks/ssr/[root-of-the-server]__d3969a9f._.js @@ -0,0 +1,5 @@ +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="1d097e8c-f5f5-cac8-209e-99330b741a4f")}catch(e){}}(); +module.exports=[605365,(a,b,c)=>{b.exports=a.x("process",()=>require("process"))},410430,(a,b,c)=>{b.exports=a.x("async_hooks",()=>require("async_hooks"))},792509,(a,b,c)=>{b.exports=a.x("url",()=>require("url"))},427699,(a,b,c)=>{b.exports=a.x("events",()=>require("events"))},81111,(a,b,c)=>{b.exports=a.x("node:stream",()=>require("node:stream"))},446786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},224361,(a,b,c)=>{b.exports=a.x("util",()=>require("util"))},814747,(a,b,c)=>{b.exports=a.x("path",()=>require("path"))},522734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},233405,(a,b,c)=>{b.exports=a.x("child_process",()=>require("child_process"))},254799,(a,b,c)=>{b.exports=a.x("crypto",()=>require("crypto"))},362562,(a,b,c)=>{b.exports=a.x("module",()=>require("module"))},156823,(a,b,c)=>{b.exports=a.x("require-in-the-middle-a99415fa67232f7f",()=>require("require-in-the-middle-a99415fa67232f7f"))},285512,(a,b,c)=>{b.exports=a.x("import-in-the-middle-138cd032e4b029f3",()=>require("import-in-the-middle-138cd032e4b029f3"))},677652,(a,b,c)=>{b.exports=a.x("node:diagnostics_channel",()=>require("node:diagnostics_channel"))},687769,(a,b,c)=>{b.exports=a.x("node:events",()=>require("node:events"))},154993,(a,b,c)=>{b.exports=a.x("diagnostics_channel",()=>require("diagnostics_channel"))},874533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},902157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},812057,(a,b,c)=>{b.exports=a.x("node:util",()=>require("node:util"))},601457,(a,b,c)=>{b.exports=a.x("node:readline",()=>require("node:readline"))},925127,(a,b,c)=>{b.exports=a.x("node:worker_threads",()=>require("node:worker_threads"))},37702,(a,b,c)=>{b.exports=a.x("worker_threads",()=>require("worker_threads"))},347299,(a,b,c)=>{b.exports=a.x("node:http",()=>require("node:http"))},743698,(a,b,c)=>{b.exports=a.x("node:https",()=>require("node:https"))},727028,(a,b,c)=>{b.exports=a.x("node:zlib",()=>require("node:zlib"))},761095,(a,b,c)=>{b.exports=a.x("node:net",()=>require("node:net"))},685560,(a,b,c)=>{b.exports=a.x("node:tls",()=>require("node:tls"))},60438,(a,b,c)=>{b.exports=a.x("perf_hooks",()=>require("perf_hooks"))},74667,(a,b,c)=>{b.exports=a.x("import-in-the-middle-6ecbfda1283b1532",()=>require("import-in-the-middle-6ecbfda1283b1532"))},989801,a=>{a.v({name:"@fastify/otel",version:"0.18.0",description:"Official Fastify OpenTelemetry Instrumentation",main:"index.js",type:"commonjs",types:"types/index.d.ts",scripts:{lint:"eslint","lint:fix":"eslint --fix",test:"npm run test:all && npm run test:typescript","test:unit":"c8 --100 node --test","test:all":"npm run test:v4 && npm run test:v5","test:v4":"cross-env FASTIFY_VERSION=fastifyv4 npm run test:unit","test:v5":"cross-env FASTIFY_VERSION=fastify npm run test:unit","test:coverage":"c8 node --test && c8 report --reporter=html","test:typescript":"tsd"},repository:{type:"git",url:"git+https://github.com/fastify/otel.git"},keywords:["plugin","helper","fastify","instrumentation","otel","opentelemetry"],author:"Carlos Fuentes - @metcoder95 (https://metcoder.dev)",license:"MIT",bugs:{url:"https://github.com/fastify/otel/issues"},homepage:"https://github.com/fastify/otel#readme",funding:[{type:"github",url:"https://github.com/sponsors/fastify"},{type:"opencollective",url:"https://opencollective.com/fastify"}],devDependencies:{"@fastify/type-provider-typebox":"^6.1.0","@opentelemetry/context-async-hooks":"^2.0.0","@opentelemetry/contrib-test-utils":"^0.59.0","@opentelemetry/instrumentation-http":"^0.212.0","@opentelemetry/propagator-jaeger":"^2.0.0","@opentelemetry/sdk-trace-base":"^2.0.0","@opentelemetry/sdk-trace-node":"^2.2.0","@types/node":"^25.0.3",c8:"^11.0.0","cross-env":"^10.0.0",eslint:"^9.16.0",fastify:"^5.1.0","fastify-plugin":"^5.1.0",fastifyv4:"npm:fastify@^4.0.0",neostandard:"^0.12.0",tsd:"^0.33.0"},dependencies:{"@opentelemetry/core":"^2.0.0","@opentelemetry/instrumentation":"^0.212.0","@opentelemetry/semantic-conventions":"^1.28.0",minimatch:"^10.2.4"},peerDependencies:{"@opentelemetry/api":"^1.9.0"},tsd:{directory:"types"}})},385603,750470,70226,563305,a=>{"use strict";var b,c;let d="1.9.1",e=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/,f=function(a){let b=new Set([a]),c=new Set,d=a.match(e);if(!d)return()=>!1;let f={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=f.prerelease)return function(b){return b===a};function g(a){return c.add(a),!1}return function(a){if(b.has(a))return!0;if(c.has(a))return!1;let d=a.match(e);if(!d)return g(a);let h={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=h.prerelease||f.major!==h.major)return g(a);if(0===f.major)return f.minor===h.minor&&f.patch<=h.patch?(b.add(a),!0):g(a);return f.minor<=h.minor?(b.add(a),!0):g(a)}}(d),g=d.split(".")[0],h=Symbol.for(`opentelemetry.js.api.${g}`),i="object"==typeof globalThis?globalThis:"object"==typeof self?self:a.g;function j(a,b,c,e=!1){var f;let g=i[h]=null!=(f=i[h])?f:{version:d};if(!e&&g[a]){let b=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${a}`);return c.error(b.stack||b.message),!1}if(g.version!==d){let b=Error(`@opentelemetry/api: Registration of version v${g.version} for ${a} does not match previously registered API v${d}`);return c.error(b.stack||b.message),!1}return g[a]=b,c.debug(`@opentelemetry/api: Registered a global for ${a} v${d}.`),!0}function k(a){var b,c;let d=null==(b=i[h])?void 0:b.version;if(d&&f(d))return null==(c=i[h])?void 0:c[a]}function l(a,b){b.debug(`@opentelemetry/api: Unregistering a global for ${a} v${d}.`);let c=i[h];c&&delete c[a]}a.s(["getGlobal",()=>k,"registerGlobal",()=>j,"unregisterGlobal",()=>l],750470);class m{constructor(a){this._namespace=a.namespace||"DiagComponentLogger"}debug(...a){return n("debug",this._namespace,a)}error(...a){return n("error",this._namespace,a)}info(...a){return n("info",this._namespace,a)}warn(...a){return n("warn",this._namespace,a)}verbose(...a){return n("verbose",this._namespace,a)}}function n(a,b,c){let d=k("diag");if(d)return d[a](b,...c)}(c=b||(b={}))[c.NONE=0]="NONE",c[c.ERROR=30]="ERROR",c[c.WARN=50]="WARN",c[c.INFO=60]="INFO",c[c.DEBUG=70]="DEBUG",c[c.VERBOSE=80]="VERBOSE",c[c.ALL=9999]="ALL",a.s(["DiagLogLevel",()=>b],70226);class o{static instance(){return this._instance||(this._instance=new o),this._instance}constructor(){function a(a){return function(...b){let c=k("diag");if(c)return c[a](...b)}}const c=this,d=(a,d={logLevel:b.INFO})=>{var e,f,g;if(a===c){let a=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return c.error(null!=(e=a.stack)?e:a.message),!1}"number"==typeof d&&(d={logLevel:d});let h=k("diag"),i=function(a,c){function d(b,d){let e=c[b];return"function"==typeof e&&a>=d?e.bind(c):function(){}}return a<b.NONE?a=b.NONE:a>b.ALL&&(a=b.ALL),c=c||{},{error:d("error",b.ERROR),warn:d("warn",b.WARN),info:d("info",b.INFO),debug:d("debug",b.DEBUG),verbose:d("verbose",b.VERBOSE)}}(null!=(f=d.logLevel)?f:b.INFO,a);if(h&&!d.suppressOverrideMessage){let a=null!=(g=Error().stack)?g:"<failed to generate stacktrace>";h.warn(`Current logger will be overwritten from ${a}`),i.warn(`Current logger will overwrite one already registered from ${a}`)}return j("diag",i,c,!0)};c.setLogger=d,c.disable=()=>{l("diag",c)},c.createComponentLogger=a=>new m(a),c.verbose=a("verbose"),c.debug=a("debug"),c.info=a("info"),c.warn=a("warn"),c.error=a("error")}}a.s(["DiagAPI",()=>o],563305);let p=o.instance();a.s(["diag",0,p],385603)},234177,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node:inspector_7a4283c6._.js"].map(b=>a.l(b))).then(()=>b(237221)))},872097,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__fbc63b72._.js"].map(b=>a.l(b))).then(()=>b(524177)))},992965,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__9bfda315._.js"].map(b=>a.l(b))).then(()=>b(435235)))},846524,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__9eff91eb._.js"].map(b=>a.l(b))).then(()=>b(20549)))},189011,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__16d71f56._.js"].map(b=>a.l(b))).then(()=>b(800164)))},18291,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules__pnpm_8387bcd6._.js"].map(b=>a.l(b))).then(()=>b(282793)))}]; + +//# debugId=1d097e8c-f5f5-cac8-209e-99330b741a4f +//# sourceMappingURL=%5Broot-of-the-server%5D__d3969a9f._.js.map \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__bc83295f._.js.map b/.next/server/chunks/ssr/[root-of-the-server]__d3969a9f._.js.map similarity index 100% rename from .next/server/chunks/ssr/[root-of-the-server]__bc83295f._.js.map rename to .next/server/chunks/ssr/[root-of-the-server]__d3969a9f._.js.map diff --git a/.next/server/chunks/ssr/[root-of-the-server]__eb368494._.js b/.next/server/chunks/ssr/[root-of-the-server]__eb368494._.js index eff6382b3..98bdaf3cd 100644 --- a/.next/server/chunks/ssr/[root-of-the-server]__eb368494._.js +++ b/.next/server/chunks/ssr/[root-of-the-server]__eb368494._.js @@ -1,5 +1,5 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="5ccffe4b-8945-3d05-25c7-823c40f61528")}catch(e){}}(); -module.exports=[193695,(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"))},994367,a=>{a.n(a.i(216893))},298936,a=>{a.n(a.i(55385))},711681,a=>{a.n(a.i(539051))},153884,a=>{a.n(a.i(932922))},727894,a=>{a.n(a.i(787368))},530419,a=>{a.n(a.i(627641))},999040,a=>{a.n(a.i(144505))},727501,a=>{a.n(a.i(825138))},87104,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(860211).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/components/analytics/TrackedLink.tsx <module evaluation> 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]/components/analytics/TrackedLink.tsx <module evaluation>","default")},214504,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(860211).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/components/analytics/TrackedLink.tsx 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]/components/analytics/TrackedLink.tsx","default")},733009,a=>{"use strict";a.i(87104);var b=a.i(214504);a.n(b)},789922,a=>{"use strict";a.s(["CompanyTimeline",()=>b]);let b=(0,a.i(860211).registerClientReference)(function(){throw Error("Attempted to call CompanyTimeline() from the server but CompanyTimeline 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/blocks/CompanyTimeline.tsx <module evaluation>","CompanyTimeline")},980820,a=>{"use strict";a.s(["CompanyTimeline",()=>b]);let b=(0,a.i(860211).registerClientReference)(function(){throw Error("Attempted to call CompanyTimeline() from the server but CompanyTimeline 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/blocks/CompanyTimeline.tsx","CompanyTimeline")},909292,a=>{"use strict";a.i(789922);var b=a.i(980820);a.n(b)},915747,a=>{"use strict";var b=a.i(998511),c=a.i(892858);let d=async a=>{let{title:d,showJobs:e=!0,showFairs:f,fairsTitle:g="Nächste Messetermine 2026",fairs:h=[{name:"Intersolar München",date:"19. - 21. Juni 2026",type:"Energie-Messe"},{name:"Windenergietage Linstow",date:"04. - 06. November 2026",type:"Fachkongress"},{name:"Kabelwerkstatt Wiesbaden",date:"02. - 03. Dezember 2026",type:"Fachmesse"}],emptyStateMessage:i="Aktuell sind alle Positionen besetzt. Senden Sie uns gerne eine Initiativbewerbung!",emptyStateLinkText:j="Jetzt Kontakt aufnehmen",emptyStateLinkHref:k="/kontakt"}=a,l=[];return(0,b.jsx)("div",{className:"py-12 md:py-24",children:(0,b.jsxs)("div",{className:"container max-w-4xl mx-auto",children:[f&&(0,b.jsxs)("div",{className:"bg-neutral-dark rounded-2xl p-8 md:p-12 mb-16 text-white overflow-hidden relative group",children:[(0,b.jsx)("div",{className:"absolute top-0 right-0 w-64 h-64 bg-primary/20 blur-3xl -translate-y-1/2 translate-x-1/2"}),(0,b.jsxs)("h3",{className:"font-heading font-bold text-3xl mb-8 relative z-10 flex items-center gap-3",children:[(0,b.jsx)("span",{className:"w-8 h-1 bg-primary"}),g]}),(0,b.jsx)("ul",{className:"space-y-6 relative z-10",children:h.map(a=>(0,b.jsxs)("li",{className:"flex flex-col md:flex-row md:items-center justify-between border-b border-white/10 pb-6 group/item hover:bg-white/5 transition-colors p-4 -m-4 rounded-2xl",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("span",{className:"text-primary-light font-bold text-sm uppercase tracking-widest block mb-1",children:a.type}),(0,b.jsx)("span",{className:"font-heading font-bold text-2xl",children:a.name})]}),(0,b.jsx)("div",{className:"mt-2 md:mt-0 text-right",children:(0,b.jsx)("span",{className:"text-white/60 font-medium block",children:a.date})})]},a.name))})]}),e&&(0,b.jsxs)("div",{className:"mb-12",children:[(0,b.jsx)("h2",{className:"font-heading font-extrabold text-4xl text-neutral-dark mb-8",children:d||"Aktuelle Stellenangebote"}),l.length>0?(0,b.jsx)("div",{className:"grid gap-6",children:l.map(a=>(0,b.jsxs)(c.default,{href:`/karriere/${a.slug}`,className:"group bg-white border border-neutral-100 p-8 rounded-2xl shadow-sm hover:shadow-xl hover:border-primary/20 transition-all flex flex-col md:flex-row md:items-center justify-between gap-6",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center gap-3 mb-2",children:[(0,b.jsx)("span",{className:"px-3 py-1 bg-primary/10 text-primary text-xs font-bold rounded-full uppercase",children:a.type}),(0,b.jsx)("span",{className:"text-text-secondary text-sm font-medium",children:a.department})]}),(0,b.jsx)("h4",{className:"font-heading font-bold text-2xl text-neutral-dark group-hover:text-primary transition-colors",children:a.title}),(0,b.jsx)("p",{className:"text-text-secondary mt-1",children:a.location})]}),(0,b.jsxs)("div",{className:"flex items-center text-primary font-bold group-hover:translate-x-2 transition-transform",children:["Details ansehen",(0,b.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-5 h-5 ml-2",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,b.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),(0,b.jsx)("polyline",{points:"12 5 19 12 12 19"})]})]})]},a.id))}):(0,b.jsxs)("div",{className:"bg-neutral-50 border border-neutral-100 rounded-2xl p-12 text-center",children:[(0,b.jsx)("p",{className:"text-text-secondary text-lg",children:i}),(0,b.jsx)(c.default,{href:k,className:"inline-block mt-6 text-primary font-bold hover:underline",children:j})]})]})]})})};a.s(["JobListingBlock",0,d])},630265,a=>{"use strict";var b=a.i(998511),c=a.i(401719);a.s(["CallToAction",0,({title:a="Bereit für Ihr Projekt?",description:d="Wir suchen stets nach neuen Herausforderungen und starken Partnern. Kontaktieren Sie uns für eine unverbindliche Beratung zu Ihrem Vorhaben.",ctaLabel:e="Jetzt Kontakt aufnehmen",ctaHref:f="/de/kontakt",theme:g="light"})=>{let h="dark"===g;return(0,b.jsx)("div",{className:`py-24 text-center ${h?"bg-primary-dark text-white":"bg-neutral-50 border-t border-neutral-100"}`,children:(0,b.jsxs)("div",{className:"container max-w-3xl mx-auto px-4",children:[(0,b.jsx)("h2",{className:`font-heading text-4xl font-extrabold mb-6 ${h?"text-white":"text-neutral-dark"}`,children:a}),(0,b.jsx)("p",{className:`text-xl mb-10 leading-relaxed ${h?"text-white/70":"text-text-secondary"}`,children:d}),(0,b.jsx)(c.Button,{href:f,size:"xl",variant:h?"white":"primary",children:e})]})})}])},310189,a=>a.a(async(b,c)=>{try{var d=a.i(998511);a.i(612641);var e=a.i(909547);a.i(280896);var f=a.i(873035),g=a.i(14906),h=a.i(277870),i=a.i(183751),j=a.i(838742),k=a.i(616496),l=a.i(596957),m=a.i(403492),n=a.i(630035),o=a.i(733009),p=a.i(401719),q=a.i(460095),r=a.i(490907),s=a.i(422515),t=a.i(175670),u=a.i(909292),v=a.i(915747),w=a.i(630265),x=b([m]);[m]=x.then?(await x)():x;let A={HomeHero:q.HeroVideo,HomeSubCompanyTiles:r.SubCompanyTiles,HomeCompetenceBentoGrid:s.CompetenceBentoGrid,HomeReferencesSlider:t.ReferencesSlider,CompanyTimeline:u.CompanyTimeline,JobListingBlock:v.JobListingBlock,CallToAction:w.CallToAction};async function y({params:a}){let{locale:b,slug:c}=await a;if("de"!==b&&"en"!==b)return{};let d=await (0,k.getPageBySlug)(c,b);if(!d)return{};let e=await (0,l.mapSlugToFileSlug)(d.slug||c,b),f=await (0,l.mapFileSlugToTranslated)(e,"de"),g=await (0,l.mapFileSlugToTranslated)(e,"en"),h="de"===b?f:g;return{title:d.frontmatter.title,description:d.frontmatter.excerpt||"",alternates:{canonical:`${n.SITE_URL}/${b}/${h}`,languages:{de:`${n.SITE_URL}/de/${f}`,en:`${n.SITE_URL}/en/${g}`,"x-default":`${n.SITE_URL}/en/${g}`}},openGraph:{title:`${d.frontmatter.title} | E-TIB`,description:d.frontmatter.excerpt||"",url:`${n.SITE_URL}/${b}/${h}`},twitter:{card:"summary_large_image",title:`${d.frontmatter.title} | E-TIB`,description:d.frontmatter.excerpt||""}}}async function z(a){let{locale:b,slug:c}=await a.params;"de"!==b&&"en"!==b&&(0,e.notFound)(),(0,j.setRequestLocale)(b);let l=await (0,k.getPageBySlug)(c,b),n=await (0,i.getTranslations)("StandardPage");return(l||(0,e.notFound)(),"fullBleed"===l.frontmatter.layout)?(0,d.jsx)("div",{className:"flex flex-col min-h-screen",children:(0,d.jsx)(m.MDXRemote,{source:l.content,components:A})}):(0,d.jsxs)("div",{className:"flex flex-col min-h-screen bg-white",children:[(0,d.jsxs)("section",{className:"bg-primary-dark text-white py-20 md:py-32 relative overflow-hidden",children:[(0,d.jsx)("div",{className:"absolute inset-0 opacity-20",children:(0,d.jsx)("div",{className:"absolute top-0 left-0 w-full h-full bg-[radial-gradient(circle_at_center,_var(--tw-gradient-stops))] from-accent via-transparent to-transparent"})}),(0,d.jsx)(f.Container,{className:"relative z-10",children:(0,d.jsxs)("div",{className:"max-w-4xl",children:[(0,d.jsx)(g.Badge,{variant:"accent",className:"mb-4 md:mb-6",children:n("badge")}),(0,d.jsx)(h.Heading,{level:1,className:"text-white mb-0",children:l.frontmatter.title})]})})]}),(0,d.jsx)("div",{className:"container mx-auto px-4 py-16 md:py-24",children:(0,d.jsxs)("div",{className:"max-w-4xl mx-auto",children:[l.frontmatter.excerpt&&(0,d.jsx)("div",{className:"mb-16",children:(0,d.jsx)("p",{className:"text-xl md:text-2xl text-text-primary leading-relaxed font-medium border-l-4 border-primary pl-8 py-2 italic",children:l.frontmatter.excerpt})}),(0,d.jsx)("div",{className:"prose prose-lg md:prose-xl max-w-none prose-headings:font-bold prose-headings:text-text-primary prose-p:text-text-secondary prose-p:leading-relaxed prose-a:text-primary prose-a:no-underline hover:prose-a:underline prose-img:rounded-2xl prose-img:shadow-2xl prose-blockquote:border-primary prose-blockquote:bg-primary/5 prose-blockquote:rounded-r-2xl prose-strong:text-primary",children:(0,d.jsx)(m.MDXRemote,{source:l.content,components:A})}),(0,d.jsxs)("div",{className:"mt-24 p-8 md:p-12 bg-primary-dark rounded-3xl text-white shadow-2xl relative overflow-hidden group animate-slight-fade-in-from-bottom",children:[(0,d.jsx)("div",{className:"absolute top-0 right-0 w-64 h-full bg-accent/5 -skew-x-12 translate-x-1/2 transition-transform group-hover:translate-x-1/3"}),(0,d.jsxs)("div",{className:"relative z-10 max-w-2xl",children:[(0,d.jsx)("h3",{className:"text-2xl md:text-3xl font-bold mb-4",children:n("needHelp")}),(0,d.jsx)("p",{className:"text-lg text-white/70 mb-8",children:n("supportTeamAvailable")}),(0,d.jsxs)(o.default,{href:`/${b}/${"de"===b?"kontakt":"contact"}`,className:(0,p.getButtonClasses)("accent","lg"),eventProperties:{location:"generic_page_support_cta",page_slug:c},children:[(0,d.jsxs)("span",{className:"relative z-10 flex items-center justify-center gap-2 transition-colors duration-500 group-hover/btn:text-primary-dark",children:[n("contactUs"),(0,d.jsx)("span",{className:"ml-2 transition-transform group-hover/btn:translate-x-1",children:"→"})]}),(0,d.jsx)(p.ButtonOverlay,{variant:"accent"})]})]})]})]})})]})}a.s(["default",()=>z,"generateMetadata",()=>y]),c()}catch(a){c(a)}},!1)]; +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="a93703c8-f5c7-ec6b-d3f7-0e45445a8248")}catch(e){}}(); +module.exports=[193695,(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"))},994367,a=>{a.n(a.i(216893))},298936,a=>{a.n(a.i(55385))},711681,a=>{a.n(a.i(539051))},153884,a=>{a.n(a.i(932922))},727894,a=>{a.n(a.i(787368))},530419,a=>{a.n(a.i(627641))},999040,a=>{a.n(a.i(144505))},727501,a=>{a.n(a.i(825138))},87104,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(860211).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/components/analytics/TrackedLink.tsx <module evaluation> 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]/components/analytics/TrackedLink.tsx <module evaluation>","default")},214504,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(860211).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/components/analytics/TrackedLink.tsx 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]/components/analytics/TrackedLink.tsx","default")},733009,a=>{"use strict";a.i(87104);var b=a.i(214504);a.n(b)},789922,a=>{"use strict";a.s(["CompanyTimeline",()=>b]);let b=(0,a.i(860211).registerClientReference)(function(){throw Error("Attempted to call CompanyTimeline() from the server but CompanyTimeline 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/blocks/CompanyTimeline.tsx <module evaluation>","CompanyTimeline")},980820,a=>{"use strict";a.s(["CompanyTimeline",()=>b]);let b=(0,a.i(860211).registerClientReference)(function(){throw Error("Attempted to call CompanyTimeline() from the server but CompanyTimeline 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/blocks/CompanyTimeline.tsx","CompanyTimeline")},909292,a=>{"use strict";a.i(789922);var b=a.i(980820);a.n(b)},915747,a=>{"use strict";var b=a.i(998511),c=a.i(892858),d=a.i(401719);let e=async a=>{let{title:e,showJobs:f=!0,showFairs:g,fairsTitle:h="Nächste Messetermine 2026",fairs:i=[{name:"Intersolar München",date:"19. - 21. Juni 2026",type:"Energie-Messe"},{name:"Windenergietage Linstow",date:"04. - 06. November 2026",type:"Fachkongress"},{name:"Kabelwerkstatt Wiesbaden",date:"02. - 03. Dezember 2026",type:"Fachmesse"}],emptyStateMessage:j="Aktuell sind alle Positionen besetzt. Senden Sie uns gerne eine Initiativbewerbung!",emptyStateLinkText:k="Jetzt Kontakt aufnehmen",emptyStateLinkHref:l="/kontakt"}=a,m=[];return(0,b.jsx)("div",{className:"py-12 md:py-24",children:(0,b.jsxs)("div",{className:"container max-w-4xl mx-auto",children:[g&&(0,b.jsxs)("div",{className:"bg-neutral-dark rounded-2xl p-8 md:p-12 mb-16 text-white overflow-hidden relative group",children:[(0,b.jsx)("div",{className:"absolute top-0 right-0 w-64 h-64 bg-primary/20 blur-3xl -translate-y-1/2 translate-x-1/2"}),(0,b.jsxs)("h3",{className:"font-heading font-bold text-3xl mb-8 relative z-10 flex items-center gap-3",children:[(0,b.jsx)("span",{className:"w-8 h-1 bg-primary"}),h]}),(0,b.jsx)("ul",{className:"space-y-6 relative z-10",children:i.map(a=>(0,b.jsxs)("li",{className:"flex flex-col md:flex-row md:items-center justify-between border-b border-white/10 pb-6 group/item hover:bg-white/5 transition-colors p-4 -m-4 rounded-2xl",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("span",{className:"text-primary-light font-bold text-sm uppercase tracking-widest block mb-1",children:a.type}),(0,b.jsx)("span",{className:"font-heading font-bold text-2xl",children:a.name})]}),(0,b.jsx)("div",{className:"mt-2 md:mt-0 text-right",children:(0,b.jsx)("span",{className:"text-white/60 font-medium block",children:a.date})})]},a.name))})]}),f&&(0,b.jsxs)("div",{className:"mb-12",children:[(0,b.jsx)("h2",{className:"font-heading font-extrabold text-4xl text-neutral-dark mb-8",children:e||"Aktuelle Stellenangebote"}),m.length>0?(0,b.jsx)("div",{className:"grid gap-6",children:m.map(a=>(0,b.jsxs)(c.default,{href:`/karriere/${a.slug}`,className:"group bg-white border border-neutral-100 p-8 rounded-2xl shadow-sm hover:shadow-xl hover:border-primary/20 transition-all flex flex-col md:flex-row md:items-center justify-between gap-6",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center gap-3 mb-2",children:[(0,b.jsx)("span",{className:"px-3 py-1 bg-primary/10 text-primary text-xs font-bold rounded-full uppercase",children:a.type}),(0,b.jsx)("span",{className:"text-text-secondary text-sm font-medium",children:a.department})]}),(0,b.jsx)("h4",{className:"font-heading font-bold text-2xl text-neutral-dark group-hover:text-primary transition-colors",children:a.title}),(0,b.jsx)("p",{className:"text-text-secondary mt-1",children:a.location})]}),(0,b.jsxs)("div",{className:"flex items-center text-primary font-bold group-hover:translate-x-2 transition-transform",children:["Details ansehen",(0,b.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-5 h-5 ml-2",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,b.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),(0,b.jsx)("polyline",{points:"12 5 19 12 12 19"})]})]})]},a.id))}):(0,b.jsxs)("div",{className:"bg-neutral-50 border border-neutral-100 rounded-2xl p-12 text-center",children:[(0,b.jsx)("p",{className:"text-text-secondary text-lg",children:j}),(0,b.jsx)(d.Button,{href:l,variant:"primary",className:"mt-6",children:k})]})]})]})})};a.s(["JobListingBlock",0,e])},630265,a=>{"use strict";var b=a.i(998511),c=a.i(401719);a.s(["CallToAction",0,({title:a="Bereit für Ihr Projekt?",description:d="Wir suchen stets nach neuen Herausforderungen und starken Partnern. Kontaktieren Sie uns für eine unverbindliche Beratung zu Ihrem Vorhaben.",ctaLabel:e="Jetzt Kontakt aufnehmen",ctaHref:f="/de/kontakt",theme:g="light"})=>{let h="dark"===g;return(0,b.jsx)("div",{className:`py-24 text-center ${h?"bg-primary-dark text-white":"bg-neutral-50 border-t border-neutral-100"}`,children:(0,b.jsxs)("div",{className:"container max-w-3xl mx-auto px-4",children:[(0,b.jsx)("h2",{className:`font-heading text-4xl font-extrabold mb-6 ${h?"text-white":"text-neutral-dark"}`,children:a}),(0,b.jsx)("p",{className:`text-xl mb-10 leading-relaxed ${h?"text-white/70":"text-text-secondary"}`,children:d}),(0,b.jsx)(c.Button,{href:f,size:"xl",variant:h?"white":"primary",children:e})]})})}])},310189,a=>a.a(async(b,c)=>{try{var d=a.i(998511);a.i(612641);var e=a.i(909547);a.i(280896);var f=a.i(873035),g=a.i(14906),h=a.i(277870),i=a.i(183751),j=a.i(838742),k=a.i(616496),l=a.i(596957),m=a.i(403492),n=a.i(630035),o=a.i(733009),p=a.i(401719),q=a.i(460095),r=a.i(490907),s=a.i(422515),t=a.i(175670),u=a.i(909292),v=a.i(915747),w=a.i(630265),x=b([m]);[m]=x.then?(await x)():x;let A={HomeHero:q.HeroVideo,HomeSubCompanyTiles:r.SubCompanyTiles,HomeCompetenceBentoGrid:s.CompetenceBentoGrid,HomeReferencesSlider:t.ReferencesSlider,CompanyTimeline:u.CompanyTimeline,JobListingBlock:v.JobListingBlock,CallToAction:w.CallToAction,Button:p.Button};async function y({params:a}){let{locale:b,slug:c}=await a;if("de"!==b&&"en"!==b)return{};let d=await (0,k.getPageBySlug)(c,b);if(!d)return{};let e=await (0,l.mapSlugToFileSlug)(d.slug||c,b),f=await (0,l.mapFileSlugToTranslated)(e,"de"),g=await (0,l.mapFileSlugToTranslated)(e,"en"),h="de"===b?f:g;return{title:d.frontmatter.title,description:d.frontmatter.excerpt||"",alternates:{canonical:`${n.SITE_URL}/${b}/${h}`,languages:{de:`${n.SITE_URL}/de/${f}`,en:`${n.SITE_URL}/en/${g}`,"x-default":`${n.SITE_URL}/en/${g}`}},openGraph:{title:`${d.frontmatter.title} | E-TIB`,description:d.frontmatter.excerpt||"",url:`${n.SITE_URL}/${b}/${h}`},twitter:{card:"summary_large_image",title:`${d.frontmatter.title} | E-TIB`,description:d.frontmatter.excerpt||""}}}async function z(a){let{locale:b,slug:c}=await a.params;"de"!==b&&"en"!==b&&(0,e.notFound)(),(0,j.setRequestLocale)(b);let l=await (0,k.getPageBySlug)(c,b),n=await (0,i.getTranslations)("StandardPage");return(l||(0,e.notFound)(),"fullBleed"===l.frontmatter.layout)?(0,d.jsx)("div",{className:"flex flex-col min-h-screen",children:(0,d.jsx)(m.MDXRemote,{source:l.content,components:A})}):(0,d.jsxs)("div",{className:"flex flex-col min-h-screen bg-white",children:[(0,d.jsxs)("section",{className:"bg-primary-dark text-white py-20 md:py-32 relative overflow-hidden",children:[(0,d.jsx)("div",{className:"absolute inset-0 opacity-20",children:(0,d.jsx)("div",{className:"absolute top-0 left-0 w-full h-full bg-[radial-gradient(circle_at_center,_var(--tw-gradient-stops))] from-accent via-transparent to-transparent"})}),(0,d.jsx)(f.Container,{className:"relative z-10",children:(0,d.jsxs)("div",{className:"max-w-4xl",children:[(0,d.jsx)(g.Badge,{variant:"accent",className:"mb-4 md:mb-6",children:n("badge")}),(0,d.jsx)(h.Heading,{level:1,className:"text-white mb-0",children:l.frontmatter.title})]})})]}),(0,d.jsx)("div",{className:"container mx-auto px-4 py-16 md:py-24",children:(0,d.jsxs)("div",{className:"max-w-4xl mx-auto",children:[l.frontmatter.excerpt&&(0,d.jsx)("div",{className:"mb-16",children:(0,d.jsx)("p",{className:"text-xl md:text-2xl text-text-primary leading-relaxed font-medium border-l-4 border-primary pl-8 py-2 italic",children:l.frontmatter.excerpt})}),(0,d.jsx)("div",{className:"prose prose-lg md:prose-xl max-w-none prose-headings:font-bold prose-headings:text-text-primary prose-p:text-text-secondary prose-p:leading-relaxed prose-a:text-primary prose-a:no-underline hover:prose-a:underline prose-img:rounded-2xl prose-img:shadow-2xl prose-blockquote:border-primary prose-blockquote:bg-primary/5 prose-blockquote:rounded-r-2xl prose-strong:text-primary",children:(0,d.jsx)(m.MDXRemote,{source:l.content,components:A})}),(0,d.jsxs)("div",{className:"mt-24 p-8 md:p-12 bg-primary-dark rounded-3xl text-white shadow-2xl relative overflow-hidden group animate-slight-fade-in-from-bottom",children:[(0,d.jsx)("div",{className:"absolute top-0 right-0 w-64 h-full bg-accent/5 -skew-x-12 translate-x-1/2 transition-transform group-hover:translate-x-1/3"}),(0,d.jsxs)("div",{className:"relative z-10 max-w-2xl",children:[(0,d.jsx)("h3",{className:"text-2xl md:text-3xl font-bold mb-4",children:n("needHelp")}),(0,d.jsx)("p",{className:"text-lg text-white/70 mb-8",children:n("supportTeamAvailable")}),(0,d.jsxs)(o.default,{href:`/${b}/${"de"===b?"kontakt":"contact"}`,className:(0,p.getButtonClasses)("accent","lg"),eventProperties:{location:"generic_page_support_cta",page_slug:c},children:[(0,d.jsxs)("span",{className:"relative z-10 flex items-center justify-center gap-2 transition-colors duration-500 group-hover/btn:text-primary-dark",children:[n("contactUs"),(0,d.jsx)("span",{className:"ml-2 transition-transform group-hover/btn:translate-x-1",children:"→"})]}),(0,d.jsx)(p.ButtonOverlay,{variant:"accent"})]})]})]})]})})]})}a.s(["default",()=>z,"generateMetadata",()=>y]),c()}catch(a){c(a)}},!1)]; -//# debugId=5ccffe4b-8945-3d05-25c7-823c40f61528 +//# debugId=a93703c8-f5c7-ec6b-d3f7-0e45445a8248 //# sourceMappingURL=%5Broot-of-the-server%5D__eb368494._.js.map \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__eb368494._.js.map b/.next/server/chunks/ssr/[root-of-the-server]__eb368494._.js.map index 939914291..19d4b73d3 100644 --- a/.next/server/chunks/ssr/[root-of-the-server]__eb368494._.js.map +++ b/.next/server/chunks/ssr/[root-of-the-server]__eb368494._.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": [], - "debugId": "5ccffe4b-8945-3d05-25c7-823c40f61528", + "debugId": "a93703c8-f5c7-ec6b-d3f7-0e45445a8248", "sections": [ - {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["../../../../components/analytics/TrackedLink.tsx/__nextjs-internal-proxy.mjs","../../../../components/blocks/CompanyTimeline.tsx/__nextjs-internal-proxy.mjs","../../../../components/blocks/JobListingBlock.tsx","../../../../components/blocks/CallToAction.tsx","../../../../app/%5Blocale%5D/%5Bslug%5D/page.tsx"],"sourcesContent":["// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/components/analytics/TrackedLink.tsx 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.\"); },\n \"[project]/components/analytics/TrackedLink.tsx\",\n \"default\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const CompanyTimeline = registerClientReference(\n function() { throw new Error(\"Attempted to call CompanyTimeline() from the server but CompanyTimeline 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.\"); },\n \"[project]/components/blocks/CompanyTimeline.tsx\",\n \"CompanyTimeline\",\n);\n","import React from 'react';\nimport Link from 'next/link';\n\nexport interface JobListingBlockProps {\n title?: string;\n showJobs?: boolean;\n showFairs?: boolean;\n fairsTitle?: string;\n fairs?: Array<{ name: string; date: string; type: string }>;\n emptyStateMessage?: string;\n emptyStateLinkText?: string;\n emptyStateLinkHref?: string;\n}\n\nexport const JobListingBlock = async (props: JobListingBlockProps) => {\n const { \n title, \n showJobs = true,\n showFairs,\n fairsTitle = 'Nächste Messetermine 2026',\n fairs = [\n { name: 'Intersolar München', date: '19. - 21. Juni 2026', type: 'Energie-Messe' },\n { name: 'Windenergietage Linstow', date: '04. - 06. November 2026', type: 'Fachkongress' },\n { name: 'Kabelwerkstatt Wiesbaden', date: '02. - 03. Dezember 2026', type: 'Fachmesse' }\n ],\n emptyStateMessage = 'Aktuell sind alle Positionen besetzt. Senden Sie uns gerne eine Initiativbewerbung!',\n emptyStateLinkText = 'Jetzt Kontakt aufnehmen',\n emptyStateLinkHref = '/kontakt'\n } = props;\n\n // Since Payload is removed, we use an empty array or static data\n const jobs: any[] = [];\n\n return (\n <div className=\"py-12 md:py-24\">\n <div className=\"container max-w-4xl mx-auto\">\n {showFairs && (\n <div className=\"bg-neutral-dark rounded-2xl p-8 md:p-12 mb-16 text-white overflow-hidden relative group\">\n <div className=\"absolute top-0 right-0 w-64 h-64 bg-primary/20 blur-3xl -translate-y-1/2 translate-x-1/2\" />\n <h3 className=\"font-heading font-bold text-3xl mb-8 relative z-10 flex items-center gap-3\">\n <span className=\"w-8 h-1 bg-primary\" />\n {fairsTitle}\n </h3>\n <ul className=\"space-y-6 relative z-10\">\n {fairs.map((messe) => (\n <li key={messe.name} className=\"flex flex-col md:flex-row md:items-center justify-between border-b border-white/10 pb-6 group/item hover:bg-white/5 transition-colors p-4 -m-4 rounded-2xl\">\n <div>\n <span className=\"text-primary-light font-bold text-sm uppercase tracking-widest block mb-1\">{messe.type}</span>\n <span className=\"font-heading font-bold text-2xl\">{messe.name}</span>\n </div>\n <div className=\"mt-2 md:mt-0 text-right\">\n <span className=\"text-white/60 font-medium block\">{messe.date}</span>\n </div>\n </li>\n ))}\n </ul>\n </div>\n )}\n\n {showJobs && (\n <div className=\"mb-12\">\n <h2 className=\"font-heading font-extrabold text-4xl text-neutral-dark mb-8\">\n {title || 'Aktuelle Stellenangebote'}\n </h2>\n \n {jobs.length > 0 ? (\n <div className=\"grid gap-6\">\n {jobs.map((job: any) => (\n <Link \n key={job.id} \n href={`/karriere/${job.slug}`}\n className=\"group bg-white border border-neutral-100 p-8 rounded-2xl shadow-sm hover:shadow-xl hover:border-primary/20 transition-all flex flex-col md:flex-row md:items-center justify-between gap-6\"\n >\n <div>\n <div className=\"flex items-center gap-3 mb-2\">\n <span className=\"px-3 py-1 bg-primary/10 text-primary text-xs font-bold rounded-full uppercase\">{job.type}</span>\n <span className=\"text-text-secondary text-sm font-medium\">{job.department}</span>\n </div>\n <h4 className=\"font-heading font-bold text-2xl text-neutral-dark group-hover:text-primary transition-colors\">{job.title}</h4>\n <p className=\"text-text-secondary mt-1\">{job.location}</p>\n </div>\n <div className=\"flex items-center text-primary font-bold group-hover:translate-x-2 transition-transform\">\n Details ansehen\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"w-5 h-5 ml-2\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"></line><polyline points=\"12 5 19 12 12 19\"></polyline></svg>\n </div>\n </Link>\n ))}\n </div>\n ) : (\n <div className=\"bg-neutral-50 border border-neutral-100 rounded-2xl p-12 text-center\">\n <p className=\"text-text-secondary text-lg\">{emptyStateMessage}</p>\n <Link href={emptyStateLinkHref} className=\"inline-block mt-6 text-primary font-bold hover:underline\">{emptyStateLinkText}</Link>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport { Button } from '@/components/ui/Button';\n\nexport interface CallToActionProps {\n title?: string;\n description?: string;\n ctaLabel?: string;\n ctaHref?: string;\n theme?: 'light' | 'dark';\n}\n\nexport const CallToAction: React.FC<CallToActionProps> = ({\n title = 'Bereit für Ihr Projekt?',\n description = 'Wir suchen stets nach neuen Herausforderungen und starken Partnern. Kontaktieren Sie uns für eine unverbindliche Beratung zu Ihrem Vorhaben.',\n ctaLabel = 'Jetzt Kontakt aufnehmen',\n ctaHref = '/de/kontakt',\n theme = 'light'\n}) => {\n const isDark = theme === 'dark';\n \n return (\n <div className={`py-24 text-center ${isDark ? 'bg-primary-dark text-white' : 'bg-neutral-50 border-t border-neutral-100'}`}>\n <div className=\"container max-w-3xl mx-auto px-4\">\n <h2 className={`font-heading text-4xl font-extrabold mb-6 ${isDark ? 'text-white' : 'text-neutral-dark'}`}>\n {title}\n </h2>\n <p className={`text-xl mb-10 leading-relaxed ${isDark ? 'text-white/70' : 'text-text-secondary'}`}>\n {description}\n </p>\n <Button \n href={ctaHref} \n size=\"xl\"\n variant={isDark ? 'white' : 'primary'}\n >\n {ctaLabel}\n </Button>\n </div>\n </div>\n );\n};\n","import { notFound, redirect } from 'next/navigation';\nimport { Container, Badge, Heading } from '@/components/ui';\nimport { getTranslations, setRequestLocale } from 'next-intl/server';\nimport { Metadata } from 'next';\nimport { getPageBySlug } from '@/lib/pages';\nimport { mapSlugToFileSlug, mapFileSlugToTranslated } from '@/lib/slugs';\nimport { MDXRemote } from 'next-mdx-remote/rsc';\nimport { SITE_URL } from '@/lib/schema';\nimport TrackedLink from '@/components/analytics/TrackedLink';\nimport { getButtonClasses, ButtonOverlay } from '@/components/ui/Button';\n\n// Import components used in MDX\nimport { HeroVideo as HomeHero } from '@/components/blocks/HeroVideo';\nimport { SubCompanyTiles as HomeSubCompanyTiles } from '@/components/blocks/SubCompanyTiles';\nimport { CompetenceBentoGrid as HomeCompetenceBentoGrid } from '@/components/blocks/CompetenceBentoGrid';\nimport { ReferencesSlider as HomeReferencesSlider } from '@/components/blocks/ReferencesSlider';\nimport { CompanyTimeline } from '@/components/blocks/CompanyTimeline';\nimport { JobListingBlock } from '@/components/blocks/JobListingBlock';\nimport { CallToAction } from '@/components/blocks/CallToAction';\n\nconst mdxComponents = {\n HomeHero,\n HomeSubCompanyTiles,\n HomeCompetenceBentoGrid,\n HomeReferencesSlider,\n CompanyTimeline,\n JobListingBlock,\n CallToAction,\n};\n\ninterface PageProps {\n params: Promise<{\n locale: string;\n slug: string;\n }>;\n}\n\nexport async function generateMetadata({ params }: PageProps): Promise<Metadata> {\n const { locale, slug } = await params;\n \n // Guard against invalid locales\n if (locale !== 'de' && locale !== 'en') return {};\n\n const pageData = await getPageBySlug(slug, locale);\n\n if (!pageData) return {};\n\n const fileSlug = await mapSlugToFileSlug(pageData.slug || slug, locale);\n const deSlug = await mapFileSlugToTranslated(fileSlug, 'de');\n const enSlug = await mapFileSlugToTranslated(fileSlug, 'en');\n\n // Determine correct localized slug based on current locale\n const currentLocaleSlug = locale === 'de' ? deSlug : enSlug;\n\n return {\n title: pageData.frontmatter.title,\n description: pageData.frontmatter.excerpt || '',\n alternates: {\n canonical: `${SITE_URL}/${locale}/${currentLocaleSlug}`,\n languages: {\n de: `${SITE_URL}/de/${deSlug}`,\n en: `${SITE_URL}/en/${enSlug}`,\n 'x-default': `${SITE_URL}/en/${enSlug}`,\n },\n },\n openGraph: {\n title: `${pageData.frontmatter.title} | E-TIB`,\n description: pageData.frontmatter.excerpt || '',\n url: `${SITE_URL}/${locale}/${currentLocaleSlug}`,\n },\n twitter: {\n card: 'summary_large_image',\n title: `${pageData.frontmatter.title} | E-TIB`,\n description: pageData.frontmatter.excerpt || '',\n },\n };\n}\n\nexport default async function Page(props: { params: Promise<{ locale: string; slug: string }> }) {\n const { locale, slug } = await props.params;\n \n // Guard against invalid locales (e.g. favicon.ico) hitting the DB\n if (locale !== 'de' && locale !== 'en') {\n notFound();\n }\n \n setRequestLocale(locale);\n const pageData = await getPageBySlug(slug, locale);\n const t = await getTranslations('StandardPage');\n\n if (!pageData) {\n notFound();\n }\n\n // Redirect logic removed to simplify for now, as slugs match file names\n /*\n const fileSlug = await mapSlugToFileSlug(pageData.slug || slug, locale);\n const correctSlug = await mapFileSlugToTranslated(fileSlug, locale);\n if (correctSlug && correctSlug !== slug) {\n redirect(`/${locale}/${correctSlug}`);\n }\n */\n\n // Full-bleed pages render blocks edge-to-edge without the generic article wrapper\n if (pageData.frontmatter.layout === 'fullBleed') {\n return (\n <div className=\"flex flex-col min-h-screen\">\n <MDXRemote source={pageData.content} components={mdxComponents} />\n </div>\n );\n }\n\n // Default article layout with hero, content, and support CTA\n return (\n <div className=\"flex flex-col min-h-screen bg-white\">\n {/* Hero Section */}\n <section className=\"bg-primary-dark text-white py-20 md:py-32 relative overflow-hidden\">\n <div className=\"absolute inset-0 opacity-20\">\n <div className=\"absolute top-0 left-0 w-full h-full bg-[radial-gradient(circle_at_center,_var(--tw-gradient-stops))] from-accent via-transparent to-transparent\" />\n </div>\n <Container className=\"relative z-10\">\n <div className=\"max-w-4xl\">\n <Badge variant=\"accent\" className=\"mb-4 md:mb-6\">\n {t('badge')}\n </Badge>\n <Heading level={1} className=\"text-white mb-0\">\n {pageData.frontmatter.title}\n </Heading>\n </div>\n </Container>\n </section>\n\n {/* Main Content Area */}\n <div className=\"container mx-auto px-4 py-16 md:py-24\">\n <div className=\"max-w-4xl mx-auto\">\n {/* Excerpt/Lead paragraph if available */}\n {pageData.frontmatter.excerpt && (\n <div className=\"mb-16\">\n <p className=\"text-xl md:text-2xl text-text-primary leading-relaxed font-medium border-l-4 border-primary pl-8 py-2 italic\">\n {pageData.frontmatter.excerpt}\n </p>\n </div>\n )}\n\n {/* Main content */}\n <div className=\"prose prose-lg md:prose-xl max-w-none prose-headings:font-bold prose-headings:text-text-primary prose-p:text-text-secondary prose-p:leading-relaxed prose-a:text-primary prose-a:no-underline hover:prose-a:underline prose-img:rounded-2xl prose-img:shadow-2xl prose-blockquote:border-primary prose-blockquote:bg-primary/5 prose-blockquote:rounded-r-2xl prose-strong:text-primary\">\n <MDXRemote source={pageData.content} components={mdxComponents} />\n </div>\n\n {/* Support Section */}\n <div className=\"mt-24 p-8 md:p-12 bg-primary-dark rounded-3xl text-white shadow-2xl relative overflow-hidden group animate-slight-fade-in-from-bottom\">\n <div className=\"absolute top-0 right-0 w-64 h-full bg-accent/5 -skew-x-12 translate-x-1/2 transition-transform group-hover:translate-x-1/3\" />\n <div className=\"relative z-10 max-w-2xl\">\n <h3 className=\"text-2xl md:text-3xl font-bold mb-4\">{t('needHelp')}</h3>\n <p className=\"text-lg text-white/70 mb-8\">{t('supportTeamAvailable')}</p>\n <TrackedLink\n href={`/${locale}/${locale === 'de' ? 'kontakt' : 'contact'}`}\n className={getButtonClasses('accent', 'lg')}\n eventProperties={{\n location: 'generic_page_support_cta',\n page_slug: slug,\n }}\n >\n <span className=\"relative z-10 flex items-center justify-center gap-2 transition-colors duration-500 group-hover/btn:text-primary-dark\">\n {t('contactUs')}\n <span className=\"ml-2 transition-transform group-hover/btn:translate-x-1\">\n →\n </span>\n </span>\n <ButtonOverlay variant=\"accent\" />\n </TrackedLink>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n}\n"],"names":[],"mappings":"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","ignoreList":[0,1]}}] + {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["../../../../components/analytics/TrackedLink.tsx/__nextjs-internal-proxy.mjs","../../../../components/blocks/CompanyTimeline.tsx/__nextjs-internal-proxy.mjs","../../../../components/blocks/JobListingBlock.tsx","../../../../components/blocks/CallToAction.tsx","../../../../app/%5Blocale%5D/%5Bslug%5D/page.tsx"],"sourcesContent":["// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport default registerClientReference(\n function() { throw new Error(\"Attempted to call the default export of [project]/components/analytics/TrackedLink.tsx 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.\"); },\n \"[project]/components/analytics/TrackedLink.tsx\",\n \"default\",\n);\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const CompanyTimeline = registerClientReference(\n function() { throw new Error(\"Attempted to call CompanyTimeline() from the server but CompanyTimeline 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.\"); },\n \"[project]/components/blocks/CompanyTimeline.tsx\",\n \"CompanyTimeline\",\n);\n","import React from 'react';\nimport Link from 'next/link';\nimport { Button } from '@/components/ui/Button';\n\nexport interface JobListingBlockProps {\n title?: string;\n showJobs?: boolean;\n showFairs?: boolean;\n fairsTitle?: string;\n fairs?: Array<{ name: string; date: string; type: string }>;\n emptyStateMessage?: string;\n emptyStateLinkText?: string;\n emptyStateLinkHref?: string;\n}\n\nexport const JobListingBlock = async (props: JobListingBlockProps) => {\n const { \n title, \n showJobs = true,\n showFairs,\n fairsTitle = 'Nächste Messetermine 2026',\n fairs = [\n { name: 'Intersolar München', date: '19. - 21. Juni 2026', type: 'Energie-Messe' },\n { name: 'Windenergietage Linstow', date: '04. - 06. November 2026', type: 'Fachkongress' },\n { name: 'Kabelwerkstatt Wiesbaden', date: '02. - 03. Dezember 2026', type: 'Fachmesse' }\n ],\n emptyStateMessage = 'Aktuell sind alle Positionen besetzt. Senden Sie uns gerne eine Initiativbewerbung!',\n emptyStateLinkText = 'Jetzt Kontakt aufnehmen',\n emptyStateLinkHref = '/kontakt'\n } = props;\n\n // Since Payload is removed, we use an empty array or static data\n const jobs: any[] = [];\n\n return (\n <div className=\"py-12 md:py-24\">\n <div className=\"container max-w-4xl mx-auto\">\n {showFairs && (\n <div className=\"bg-neutral-dark rounded-2xl p-8 md:p-12 mb-16 text-white overflow-hidden relative group\">\n <div className=\"absolute top-0 right-0 w-64 h-64 bg-primary/20 blur-3xl -translate-y-1/2 translate-x-1/2\" />\n <h3 className=\"font-heading font-bold text-3xl mb-8 relative z-10 flex items-center gap-3\">\n <span className=\"w-8 h-1 bg-primary\" />\n {fairsTitle}\n </h3>\n <ul className=\"space-y-6 relative z-10\">\n {fairs.map((messe) => (\n <li key={messe.name} className=\"flex flex-col md:flex-row md:items-center justify-between border-b border-white/10 pb-6 group/item hover:bg-white/5 transition-colors p-4 -m-4 rounded-2xl\">\n <div>\n <span className=\"text-primary-light font-bold text-sm uppercase tracking-widest block mb-1\">{messe.type}</span>\n <span className=\"font-heading font-bold text-2xl\">{messe.name}</span>\n </div>\n <div className=\"mt-2 md:mt-0 text-right\">\n <span className=\"text-white/60 font-medium block\">{messe.date}</span>\n </div>\n </li>\n ))}\n </ul>\n </div>\n )}\n\n {showJobs && (\n <div className=\"mb-12\">\n <h2 className=\"font-heading font-extrabold text-4xl text-neutral-dark mb-8\">\n {title || 'Aktuelle Stellenangebote'}\n </h2>\n \n {jobs.length > 0 ? (\n <div className=\"grid gap-6\">\n {jobs.map((job: any) => (\n <Link \n key={job.id} \n href={`/karriere/${job.slug}`}\n className=\"group bg-white border border-neutral-100 p-8 rounded-2xl shadow-sm hover:shadow-xl hover:border-primary/20 transition-all flex flex-col md:flex-row md:items-center justify-between gap-6\"\n >\n <div>\n <div className=\"flex items-center gap-3 mb-2\">\n <span className=\"px-3 py-1 bg-primary/10 text-primary text-xs font-bold rounded-full uppercase\">{job.type}</span>\n <span className=\"text-text-secondary text-sm font-medium\">{job.department}</span>\n </div>\n <h4 className=\"font-heading font-bold text-2xl text-neutral-dark group-hover:text-primary transition-colors\">{job.title}</h4>\n <p className=\"text-text-secondary mt-1\">{job.location}</p>\n </div>\n <div className=\"flex items-center text-primary font-bold group-hover:translate-x-2 transition-transform\">\n Details ansehen\n <svg xmlns=\"http://www.w3.org/2000/svg\" className=\"w-5 h-5 ml-2\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"></line><polyline points=\"12 5 19 12 12 19\"></polyline></svg>\n </div>\n </Link>\n ))}\n </div>\n ) : (\n <div className=\"bg-neutral-50 border border-neutral-100 rounded-2xl p-12 text-center\">\n <p className=\"text-text-secondary text-lg\">{emptyStateMessage}</p>\n <Button href={emptyStateLinkHref} variant=\"primary\" className=\"mt-6\">\n {emptyStateLinkText}\n </Button>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport { Button } from '@/components/ui/Button';\n\nexport interface CallToActionProps {\n title?: string;\n description?: string;\n ctaLabel?: string;\n ctaHref?: string;\n theme?: 'light' | 'dark';\n}\n\nexport const CallToAction: React.FC<CallToActionProps> = ({\n title = 'Bereit für Ihr Projekt?',\n description = 'Wir suchen stets nach neuen Herausforderungen und starken Partnern. Kontaktieren Sie uns für eine unverbindliche Beratung zu Ihrem Vorhaben.',\n ctaLabel = 'Jetzt Kontakt aufnehmen',\n ctaHref = '/de/kontakt',\n theme = 'light'\n}) => {\n const isDark = theme === 'dark';\n \n return (\n <div className={`py-24 text-center ${isDark ? 'bg-primary-dark text-white' : 'bg-neutral-50 border-t border-neutral-100'}`}>\n <div className=\"container max-w-3xl mx-auto px-4\">\n <h2 className={`font-heading text-4xl font-extrabold mb-6 ${isDark ? 'text-white' : 'text-neutral-dark'}`}>\n {title}\n </h2>\n <p className={`text-xl mb-10 leading-relaxed ${isDark ? 'text-white/70' : 'text-text-secondary'}`}>\n {description}\n </p>\n <Button \n href={ctaHref} \n size=\"xl\"\n variant={isDark ? 'white' : 'primary'}\n >\n {ctaLabel}\n </Button>\n </div>\n </div>\n );\n};\n","import { notFound, redirect } from 'next/navigation';\nimport { Container, Badge, Heading } from '@/components/ui';\nimport { getTranslations, setRequestLocale } from 'next-intl/server';\nimport { Metadata } from 'next';\nimport { getPageBySlug } from '@/lib/pages';\nimport { mapSlugToFileSlug, mapFileSlugToTranslated } from '@/lib/slugs';\nimport { MDXRemote } from 'next-mdx-remote/rsc';\nimport { SITE_URL } from '@/lib/schema';\nimport TrackedLink from '@/components/analytics/TrackedLink';\nimport { getButtonClasses, ButtonOverlay } from '@/components/ui/Button';\n\n// Import components used in MDX\nimport { HeroVideo as HomeHero } from '@/components/blocks/HeroVideo';\nimport { SubCompanyTiles as HomeSubCompanyTiles } from '@/components/blocks/SubCompanyTiles';\nimport { CompetenceBentoGrid as HomeCompetenceBentoGrid } from '@/components/blocks/CompetenceBentoGrid';\nimport { ReferencesSlider as HomeReferencesSlider } from '@/components/blocks/ReferencesSlider';\nimport { CompanyTimeline } from '@/components/blocks/CompanyTimeline';\nimport { JobListingBlock } from '@/components/blocks/JobListingBlock';\nimport { CallToAction } from '@/components/blocks/CallToAction';\nimport { Button } from '@/components/ui/Button';\n\nconst mdxComponents = {\n HomeHero,\n HomeSubCompanyTiles,\n HomeCompetenceBentoGrid,\n HomeReferencesSlider,\n CompanyTimeline,\n JobListingBlock,\n CallToAction,\n Button,\n};\n\ninterface PageProps {\n params: Promise<{\n locale: string;\n slug: string;\n }>;\n}\n\nexport async function generateMetadata({ params }: PageProps): Promise<Metadata> {\n const { locale, slug } = await params;\n \n // Guard against invalid locales\n if (locale !== 'de' && locale !== 'en') return {};\n\n const pageData = await getPageBySlug(slug, locale);\n\n if (!pageData) return {};\n\n const fileSlug = await mapSlugToFileSlug(pageData.slug || slug, locale);\n const deSlug = await mapFileSlugToTranslated(fileSlug, 'de');\n const enSlug = await mapFileSlugToTranslated(fileSlug, 'en');\n\n // Determine correct localized slug based on current locale\n const currentLocaleSlug = locale === 'de' ? deSlug : enSlug;\n\n return {\n title: pageData.frontmatter.title,\n description: pageData.frontmatter.excerpt || '',\n alternates: {\n canonical: `${SITE_URL}/${locale}/${currentLocaleSlug}`,\n languages: {\n de: `${SITE_URL}/de/${deSlug}`,\n en: `${SITE_URL}/en/${enSlug}`,\n 'x-default': `${SITE_URL}/en/${enSlug}`,\n },\n },\n openGraph: {\n title: `${pageData.frontmatter.title} | E-TIB`,\n description: pageData.frontmatter.excerpt || '',\n url: `${SITE_URL}/${locale}/${currentLocaleSlug}`,\n },\n twitter: {\n card: 'summary_large_image',\n title: `${pageData.frontmatter.title} | E-TIB`,\n description: pageData.frontmatter.excerpt || '',\n },\n };\n}\n\nexport default async function Page(props: { params: Promise<{ locale: string; slug: string }> }) {\n const { locale, slug } = await props.params;\n \n // Guard against invalid locales (e.g. favicon.ico) hitting the DB\n if (locale !== 'de' && locale !== 'en') {\n notFound();\n }\n \n setRequestLocale(locale);\n const pageData = await getPageBySlug(slug, locale);\n const t = await getTranslations('StandardPage');\n\n if (!pageData) {\n notFound();\n }\n\n // Redirect logic removed to simplify for now, as slugs match file names\n /*\n const fileSlug = await mapSlugToFileSlug(pageData.slug || slug, locale);\n const correctSlug = await mapFileSlugToTranslated(fileSlug, locale);\n if (correctSlug && correctSlug !== slug) {\n redirect(`/${locale}/${correctSlug}`);\n }\n */\n\n // Full-bleed pages render blocks edge-to-edge without the generic article wrapper\n if (pageData.frontmatter.layout === 'fullBleed') {\n return (\n <div className=\"flex flex-col min-h-screen\">\n <MDXRemote source={pageData.content} components={mdxComponents} />\n </div>\n );\n }\n\n // Default article layout with hero, content, and support CTA\n return (\n <div className=\"flex flex-col min-h-screen bg-white\">\n {/* Hero Section */}\n <section className=\"bg-primary-dark text-white py-20 md:py-32 relative overflow-hidden\">\n <div className=\"absolute inset-0 opacity-20\">\n <div className=\"absolute top-0 left-0 w-full h-full bg-[radial-gradient(circle_at_center,_var(--tw-gradient-stops))] from-accent via-transparent to-transparent\" />\n </div>\n <Container className=\"relative z-10\">\n <div className=\"max-w-4xl\">\n <Badge variant=\"accent\" className=\"mb-4 md:mb-6\">\n {t('badge')}\n </Badge>\n <Heading level={1} className=\"text-white mb-0\">\n {pageData.frontmatter.title}\n </Heading>\n </div>\n </Container>\n </section>\n\n {/* Main Content Area */}\n <div className=\"container mx-auto px-4 py-16 md:py-24\">\n <div className=\"max-w-4xl mx-auto\">\n {/* Excerpt/Lead paragraph if available */}\n {pageData.frontmatter.excerpt && (\n <div className=\"mb-16\">\n <p className=\"text-xl md:text-2xl text-text-primary leading-relaxed font-medium border-l-4 border-primary pl-8 py-2 italic\">\n {pageData.frontmatter.excerpt}\n </p>\n </div>\n )}\n\n {/* Main content */}\n <div className=\"prose prose-lg md:prose-xl max-w-none prose-headings:font-bold prose-headings:text-text-primary prose-p:text-text-secondary prose-p:leading-relaxed prose-a:text-primary prose-a:no-underline hover:prose-a:underline prose-img:rounded-2xl prose-img:shadow-2xl prose-blockquote:border-primary prose-blockquote:bg-primary/5 prose-blockquote:rounded-r-2xl prose-strong:text-primary\">\n <MDXRemote source={pageData.content} components={mdxComponents} />\n </div>\n\n {/* Support Section */}\n <div className=\"mt-24 p-8 md:p-12 bg-primary-dark rounded-3xl text-white shadow-2xl relative overflow-hidden group animate-slight-fade-in-from-bottom\">\n <div className=\"absolute top-0 right-0 w-64 h-full bg-accent/5 -skew-x-12 translate-x-1/2 transition-transform group-hover:translate-x-1/3\" />\n <div className=\"relative z-10 max-w-2xl\">\n <h3 className=\"text-2xl md:text-3xl font-bold mb-4\">{t('needHelp')}</h3>\n <p className=\"text-lg text-white/70 mb-8\">{t('supportTeamAvailable')}</p>\n <TrackedLink\n href={`/${locale}/${locale === 'de' ? 'kontakt' : 'contact'}`}\n className={getButtonClasses('accent', 'lg')}\n eventProperties={{\n location: 'generic_page_support_cta',\n page_slug: slug,\n }}\n >\n <span className=\"relative z-10 flex items-center justify-center gap-2 transition-colors duration-500 group-hover/btn:text-primary-dark\">\n {t('contactUs')}\n <span className=\"ml-2 transition-transform group-hover/btn:translate-x-1\">\n →\n </span>\n </span>\n <ButtonOverlay variant=\"accent\" />\n </TrackedLink>\n </div>\n </div>\n </div>\n </div>\n </div>\n );\n}\n"],"names":[],"mappings":"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","ignoreList":[0,1]}}] } \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__f153a21f._.js b/.next/server/chunks/ssr/[root-of-the-server]__f153a21f._.js deleted file mode 100644 index 3dfb51fb6..000000000 --- a/.next/server/chunks/ssr/[root-of-the-server]__f153a21f._.js +++ /dev/null @@ -1,5 +0,0 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="5e2cbd1c-906f-8ffb-e67f-2820ec250ea5")}catch(e){}}(); -module.exports=[180064,(a,b,c)=>{(()=>{"use strict";"u">typeof __nccwpck_require__&&(__nccwpck_require__.ab="/ROOT/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/cookie/");var a,c,d,e,f={};f.parse=function(b,c){if("string"!=typeof b)throw TypeError("argument str must be a string");for(var e={},f=b.split(d),g=(c||{}).decode||a,h=0;h<f.length;h++){var i=f[h],j=i.indexOf("=");if(!(j<0)){var k=i.substr(0,j).trim(),l=i.substr(++j,i.length).trim();'"'==l[0]&&(l=l.slice(1,-1)),void 0==e[k]&&(e[k]=function(a,b){try{return b(a)}catch(b){return a}}(l,g))}}return e},f.serialize=function(a,b,d){var f=d||{},g=f.encode||c;if("function"!=typeof g)throw TypeError("option encode is invalid");if(!e.test(a))throw TypeError("argument name is invalid");var h=g(b);if(h&&!e.test(h))throw TypeError("argument val is invalid");var i=a+"="+h;if(null!=f.maxAge){var j=f.maxAge-0;if(isNaN(j)||!isFinite(j))throw TypeError("option maxAge is invalid");i+="; Max-Age="+Math.floor(j)}if(f.domain){if(!e.test(f.domain))throw TypeError("option domain is invalid");i+="; Domain="+f.domain}if(f.path){if(!e.test(f.path))throw TypeError("option path is invalid");i+="; Path="+f.path}if(f.expires){if("function"!=typeof f.expires.toUTCString)throw TypeError("option expires is invalid");i+="; Expires="+f.expires.toUTCString()}if(f.httpOnly&&(i+="; HttpOnly"),f.secure&&(i+="; Secure"),f.sameSite)switch("string"==typeof f.sameSite?f.sameSite.toLowerCase():f.sameSite){case!0:case"strict":i+="; SameSite=Strict";break;case"lax":i+="; SameSite=Lax";break;case"none":i+="; SameSite=None";break;default:throw TypeError("option sameSite is invalid")}return i},a=decodeURIComponent,c=encodeURIComponent,d=/; */,e=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,b.exports=f})()},888128,a=>{"use strict";let b=(0,a.i(783505).cache)(function(){return{locale:void 0}});function c(){return b().locale}function d(a){b().locale=a}a.s(["getCachedRequestLocale",()=>c,"setCachedRequestLocale",()=>d])},254508,(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}},605365,(a,b,c)=>{b.exports=a.x("process",()=>require("process"))},410430,(a,b,c)=>{b.exports=a.x("async_hooks",()=>require("async_hooks"))},522734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},233405,(a,b,c)=>{b.exports=a.x("child_process",()=>require("child_process"))},254799,(a,b,c)=>{b.exports=a.x("crypto",()=>require("crypto"))},792509,(a,b,c)=>{b.exports=a.x("url",()=>require("url"))},427699,(a,b,c)=>{b.exports=a.x("events",()=>require("events"))},81111,(a,b,c)=>{b.exports=a.x("node:stream",()=>require("node:stream"))},446786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},362562,(a,b,c)=>{b.exports=a.x("module",()=>require("module"))},156823,(a,b,c)=>{b.exports=a.x("require-in-the-middle-a99415fa67232f7f",()=>require("require-in-the-middle-a99415fa67232f7f"))},285512,(a,b,c)=>{b.exports=a.x("import-in-the-middle-138cd032e4b029f3",()=>require("import-in-the-middle-138cd032e4b029f3"))},677652,(a,b,c)=>{b.exports=a.x("node:diagnostics_channel",()=>require("node:diagnostics_channel"))},687769,(a,b,c)=>{b.exports=a.x("node:events",()=>require("node:events"))},154993,(a,b,c)=>{b.exports=a.x("diagnostics_channel",()=>require("diagnostics_channel"))},874533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},902157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},812057,(a,b,c)=>{b.exports=a.x("node:util",()=>require("node:util"))},601457,(a,b,c)=>{b.exports=a.x("node:readline",()=>require("node:readline"))},925127,(a,b,c)=>{b.exports=a.x("node:worker_threads",()=>require("node:worker_threads"))},37702,(a,b,c)=>{b.exports=a.x("worker_threads",()=>require("worker_threads"))},347299,(a,b,c)=>{b.exports=a.x("node:http",()=>require("node:http"))},743698,(a,b,c)=>{b.exports=a.x("node:https",()=>require("node:https"))},727028,(a,b,c)=>{b.exports=a.x("node:zlib",()=>require("node:zlib"))},761095,(a,b,c)=>{b.exports=a.x("node:net",()=>require("node:net"))},685560,(a,b,c)=>{b.exports=a.x("node:tls",()=>require("node:tls"))},60438,(a,b,c)=>{b.exports=a.x("perf_hooks",()=>require("perf_hooks"))},74667,(a,b,c)=>{b.exports=a.x("import-in-the-middle-6ecbfda1283b1532",()=>require("import-in-the-middle-6ecbfda1283b1532"))},989801,a=>{a.v({name:"@fastify/otel",version:"0.18.0",description:"Official Fastify OpenTelemetry Instrumentation",main:"index.js",type:"commonjs",types:"types/index.d.ts",scripts:{lint:"eslint","lint:fix":"eslint --fix",test:"npm run test:all && npm run test:typescript","test:unit":"c8 --100 node --test","test:all":"npm run test:v4 && npm run test:v5","test:v4":"cross-env FASTIFY_VERSION=fastifyv4 npm run test:unit","test:v5":"cross-env FASTIFY_VERSION=fastify npm run test:unit","test:coverage":"c8 node --test && c8 report --reporter=html","test:typescript":"tsd"},repository:{type:"git",url:"git+https://github.com/fastify/otel.git"},keywords:["plugin","helper","fastify","instrumentation","otel","opentelemetry"],author:"Carlos Fuentes - @metcoder95 (https://metcoder.dev)",license:"MIT",bugs:{url:"https://github.com/fastify/otel/issues"},homepage:"https://github.com/fastify/otel#readme",funding:[{type:"github",url:"https://github.com/sponsors/fastify"},{type:"opencollective",url:"https://opencollective.com/fastify"}],devDependencies:{"@fastify/type-provider-typebox":"^6.1.0","@opentelemetry/context-async-hooks":"^2.0.0","@opentelemetry/contrib-test-utils":"^0.59.0","@opentelemetry/instrumentation-http":"^0.212.0","@opentelemetry/propagator-jaeger":"^2.0.0","@opentelemetry/sdk-trace-base":"^2.0.0","@opentelemetry/sdk-trace-node":"^2.2.0","@types/node":"^25.0.3",c8:"^11.0.0","cross-env":"^10.0.0",eslint:"^9.16.0",fastify:"^5.1.0","fastify-plugin":"^5.1.0",fastifyv4:"npm:fastify@^4.0.0",neostandard:"^0.12.0",tsd:"^0.33.0"},dependencies:{"@opentelemetry/core":"^2.0.0","@opentelemetry/instrumentation":"^0.212.0","@opentelemetry/semantic-conventions":"^1.28.0",minimatch:"^10.2.4"},peerDependencies:{"@opentelemetry/api":"^1.9.0"},tsd:{directory:"types"}})},955289,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}},183751,a=>{"use strict";var b=a.i(783505),c=a.i(146319),d=a.i(450651),e=a.i(686122),f=(0,b.cache)(function(a,b){return function({_cache:a=(0,d.b)(),_formatters:b=(0,d.c)(a),getMessageFallback:c=e.d,messages:f,namespace:g,onError:h=e.b,...i}){return function({messages:a,namespace:b,...c},d){return a=a["!"],b=(0,e.r)(b,"!"),(0,e.a)({...c,messages:a,namespace:b})}({...i,onError:h,cache:a,formatters:b,getMessageFallback:c,messages:{"!":f},namespace:g?`!.${g}`:"!"},0)}({...a,namespace:b})}),g=(0,b.cache)(async function(a){let b,d;return"string"==typeof a?b=a:a&&(d=a.locale,b=a.namespace),f(await (0,c.default)(d),b)});a.s(["getTranslations",()=>g],183751)},787368,a=>{"use strict";a.i(998511),a.i(149312),a.i(183751),a.i(534406);let b=a.i(446524).OG_IMAGE_SIZE;var c=a.i(335076);let d={contentType:"image/png",runtime:"nodejs",size:b};async function e(a){let{__metadata_id__:b,...e}=await a.params,f=(0,c.fillMetadataSegment)("/[locale]",e,"opengraph-image");return[function(a,b){let c={alt:a.alt,type:a.contentType||"image/png",url:f+"?6076960dae8670a5"},{size:d}=a;return d&&(c.width=d.width,c.height=d.height),c}(d,0)]}a.s(["default",0,e],787368)},791227,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_next_dist_compiled_@vercel_og_index_node_055f47ab.js"].map(b=>a.l(b))).then(()=>b(121425)))},234177,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node:inspector_7a4283c6._.js"].map(b=>a.l(b))).then(()=>b(237221)))},939510,a=>{a.v(b=>Promise.all(["server/chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_634cb413._.js"].map(b=>a.l(b))).then(()=>b(996454)))},962327,a=>{a.v(b=>Promise.all(["server/chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_f7a67094.js"].map(b=>a.l(b))).then(()=>b(868047)))},665688,a=>{a.v(b=>Promise.all(["server/chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_88fed31f._.js"].map(b=>a.l(b))).then(()=>b(483274)))},256493,a=>{a.v(b=>Promise.all(["server/chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_929773f6._.js"].map(b=>a.l(b))).then(()=>b(190438)))},205639,a=>{a.v(b=>Promise.all(["server/chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_e2e05945.js"].map(b=>a.l(b))).then(()=>b(335359)))},65575,a=>{a.v(b=>Promise.all(["server/chunks/ssr/messages_de_json_56e8cde5._.js"].map(b=>a.l(b))).then(()=>b(763974)))},17741,a=>{a.v(b=>Promise.all(["server/chunks/ssr/messages_en_json_a7997480._.js"].map(b=>a.l(b))).then(()=>b(50929)))}]; - -//# debugId=5e2cbd1c-906f-8ffb-e67f-2820ec250ea5 -//# sourceMappingURL=%5Broot-of-the-server%5D__f153a21f._.js.map \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__f153a21f._.js.map b/.next/server/chunks/ssr/[root-of-the-server]__f153a21f._.js.map deleted file mode 100644 index bcdfc8e78..000000000 --- a/.next/server/chunks/ssr/[root-of-the-server]__f153a21f._.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": [], - "debugId": "5e2cbd1c-906f-8ffb-e67f-2820ec250ea5", - "sections": [ - {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/dist/compiled/cookie/index.js","../../../../node_modules/.pnpm/next-intl%404.9.0_%40swc%2Bhelpers%400.5.20_next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/server/react-server/RequestLocaleCache.js","../../../../node_modules/.pnpm/%40swc%2Bhelpers%400.5.15/node_modules/%40swc/helpers/cjs/_interop_require_wildcard.cjs","turbopack:///[project]/node_modules/.pnpm/@fastify+otel@0.18.0_@opentelemetry+api@1.9.1/node_modules/@fastify/otel/package.json","../../../../node_modules/.pnpm/%40swc%2Bhelpers%400.5.15/node_modules/%40swc/helpers/cjs/_interop_require_default.cjs","../../../../node_modules/.pnpm/next-intl%404.9.0_%40swc%2Bhelpers%400.5.20_next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/server/react-server/getTranslations.js","../../../../node_modules/.pnpm/use-intl%404.9.0_react%4019.2.4/node_modules/use-intl/dist/esm/production/core.js","../../../../node_modules/.pnpm/next-intl%404.9.0_%40swc%2Bhelpers%400.5.20_next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401_5cb25dbd0384afd6e865a90a66b8b329/node_modules/next-intl/dist/esm/production/server/react-server/getServerTranslator.js","../../../../app/%5Blocale%5D/opengraph-image.tsx","../../../../app/%5Blocale%5D/opengraph-image--metadata.js"],"sourcesContent":["(()=>{\"use strict\";if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var e={};(()=>{var r=e;\n/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */r.parse=parse;r.serialize=serialize;var i=decodeURIComponent;var t=encodeURIComponent;var a=/; */;var n=/^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;function parse(e,r){if(typeof e!==\"string\"){throw new TypeError(\"argument str must be a string\")}var t={};var n=r||{};var o=e.split(a);var s=n.decode||i;for(var p=0;p<o.length;p++){var f=o[p];var u=f.indexOf(\"=\");if(u<0){continue}var v=f.substr(0,u).trim();var c=f.substr(++u,f.length).trim();if('\"'==c[0]){c=c.slice(1,-1)}if(undefined==t[v]){t[v]=tryDecode(c,s)}}return t}function serialize(e,r,i){var a=i||{};var o=a.encode||t;if(typeof o!==\"function\"){throw new TypeError(\"option encode is invalid\")}if(!n.test(e)){throw new TypeError(\"argument name is invalid\")}var s=o(r);if(s&&!n.test(s)){throw new TypeError(\"argument val is invalid\")}var p=e+\"=\"+s;if(null!=a.maxAge){var f=a.maxAge-0;if(isNaN(f)||!isFinite(f)){throw new TypeError(\"option maxAge is invalid\")}p+=\"; Max-Age=\"+Math.floor(f)}if(a.domain){if(!n.test(a.domain)){throw new TypeError(\"option domain is invalid\")}p+=\"; Domain=\"+a.domain}if(a.path){if(!n.test(a.path)){throw new TypeError(\"option path is invalid\")}p+=\"; Path=\"+a.path}if(a.expires){if(typeof a.expires.toUTCString!==\"function\"){throw new TypeError(\"option expires is invalid\")}p+=\"; Expires=\"+a.expires.toUTCString()}if(a.httpOnly){p+=\"; HttpOnly\"}if(a.secure){p+=\"; Secure\"}if(a.sameSite){var u=typeof a.sameSite===\"string\"?a.sameSite.toLowerCase():a.sameSite;switch(u){case true:p+=\"; SameSite=Strict\";break;case\"lax\":p+=\"; SameSite=Lax\";break;case\"strict\":p+=\"; SameSite=Strict\";break;case\"none\":p+=\"; SameSite=None\";break;default:throw new TypeError(\"option sameSite is invalid\")}}return p}function tryDecode(e,r){try{return r(e)}catch(r){return e}}})();module.exports=e})();","import{cache as o}from\"react\";const n=o((function(){return{locale:void 0}}));function t(){return n().locale}function c(o){n().locale=o}export{t as getCachedRequestLocale,c as setCachedRequestLocale};\n","\"use strict\";\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\nexports._ = _interop_require_wildcard;\n","{\"name\":\"@fastify/otel\",\"version\":\"0.18.0\",\"description\":\"Official Fastify OpenTelemetry Instrumentation\",\"main\":\"index.js\",\"type\":\"commonjs\",\"types\":\"types/index.d.ts\",\"scripts\":{\"lint\":\"eslint\",\"lint:fix\":\"eslint --fix\",\"test\":\"npm run test:all && npm run test:typescript\",\"test:unit\":\"c8 --100 node --test\",\"test:all\":\"npm run test:v4 && npm run test:v5\",\"test:v4\":\"cross-env FASTIFY_VERSION=fastifyv4 npm run test:unit\",\"test:v5\":\"cross-env FASTIFY_VERSION=fastify npm run test:unit\",\"test:coverage\":\"c8 node --test && c8 report --reporter=html\",\"test:typescript\":\"tsd\"},\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/fastify/otel.git\"},\"keywords\":[\"plugin\",\"helper\",\"fastify\",\"instrumentation\",\"otel\",\"opentelemetry\"],\"author\":\"Carlos Fuentes - @metcoder95 (https://metcoder.dev)\",\"license\":\"MIT\",\"bugs\":{\"url\":\"https://github.com/fastify/otel/issues\"},\"homepage\":\"https://github.com/fastify/otel#readme\",\"funding\":[{\"type\":\"github\",\"url\":\"https://github.com/sponsors/fastify\"},{\"type\":\"opencollective\",\"url\":\"https://opencollective.com/fastify\"}],\"devDependencies\":{\"@fastify/type-provider-typebox\":\"^6.1.0\",\"@opentelemetry/context-async-hooks\":\"^2.0.0\",\"@opentelemetry/contrib-test-utils\":\"^0.59.0\",\"@opentelemetry/instrumentation-http\":\"^0.212.0\",\"@opentelemetry/propagator-jaeger\":\"^2.0.0\",\"@opentelemetry/sdk-trace-base\":\"^2.0.0\",\"@opentelemetry/sdk-trace-node\":\"^2.2.0\",\"@types/node\":\"^25.0.3\",\"c8\":\"^11.0.0\",\"cross-env\":\"^10.0.0\",\"eslint\":\"^9.16.0\",\"fastify\":\"^5.1.0\",\"fastify-plugin\":\"^5.1.0\",\"fastifyv4\":\"npm:fastify@^4.0.0\",\"neostandard\":\"^0.12.0\",\"tsd\":\"^0.33.0\"},\"dependencies\":{\"@opentelemetry/core\":\"^2.0.0\",\"@opentelemetry/instrumentation\":\"^0.212.0\",\"@opentelemetry/semantic-conventions\":\"^1.28.0\",\"minimatch\":\"^10.2.4\"},\"peerDependencies\":{\"@opentelemetry/api\":\"^1.9.0\"},\"tsd\":{\"directory\":\"types\"}}","\"use strict\";\n\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nexports._ = _interop_require_default;\n","import{cache as r}from\"react\";import t from\"./getConfig.js\";import e from\"./getServerTranslator.js\";var o=r((async function(r){let o,a;\"string\"==typeof r?o=r:r&&(a=r.locale,o=r.namespace);const n=await t(a);return e(n,o)}));export{o as default};\n","import{c as e,b as r}from\"./formatters-CJcico0N.js\";export{I as IntlError,a as IntlErrorCode}from\"./formatters-CJcico0N.js\";import{r as s,a as t,d as o,b as m}from\"./initializeConfig-Brh10fyG.js\";export{c as createFormatter,i as initializeConfig}from\"./initializeConfig-Brh10fyG.js\";function n({_cache:a=r(),_formatters:i=e(a),getMessageFallback:n=o,messages:c,namespace:f,onError:g=m,...l}){return function({messages:e,namespace:a,...r},o){return e=e[o],a=s(a,o),t({...r,messages:e,namespace:a})}({...l,onError:g,cache:a,formatters:i,getMessageFallback:n,messages:{\"!\":c},namespace:f?`!.${f}`:\"!\"},\"!\")}function f(e,a){return e.includes(a)}export{r as _createCache,e as _createIntlFormatters,n as createTranslator,f as hasLocale};\n","import{cache as r}from\"react\";import{createTranslator as e}from\"use-intl/core\";var t=r((function(r,t){return e({...r,namespace:t})}));export{t as default};\n","import { ImageResponse } from 'next/og';\nimport { getTranslations } from 'next-intl/server';\nimport { OGImageTemplate } from '@/components/OGImageTemplate';\nimport { getOgFonts, OG_IMAGE_SIZE } from '@/lib/og-helper';\n\nexport const size = OG_IMAGE_SIZE;\nexport const contentType = 'image/png';\nexport const runtime = 'nodejs';\n\nexport default async function Image({ params }: { params: Promise<{ locale: string }> }) {\n const { locale } = await params;\n const t = await getTranslations({ locale, namespace: 'Index.meta' });\n const fonts = await getOgFonts();\n\n return new ImageResponse(\n <OGImageTemplate\n title={t('title')}\n description={t('description')}\n label=\"Reliable Energy Infrastructure\"\n />,\n {\n ...OG_IMAGE_SIZE,\n fonts,\n },\n );\n}\n","import { contentType, runtime, size } from \"./opengraph-image.tsx\"\nimport { fillMetadataSegment } from 'next/dist/lib/metadata/get-metadata-route'\n\nconst imageModule = { contentType, runtime, size }\n\nexport default async function (props) {\n const { __metadata_id__: _, ...params } = await props.params\n const imageUrl = fillMetadataSegment(\"/[locale]\", params, \"opengraph-image\")\n\n function getImageMetadata(imageMetadata, idParam) {\n const data = {\n alt: imageMetadata.alt,\n type: imageMetadata.contentType || 'image/png',\n url: imageUrl + (idParam ? ('/' + idParam) : '') + \"?6076960dae8670a5\",\n }\n const { size } = imageMetadata\n if (size) {\n data.width = size.width; data.height = size.height;\n }\n return data\n }\n\n return [getImageMetadata(imageModule, '')]\n}\n"],"names":[],"mappings":"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","ignoreList":[0,1,2,4,5,6,7]}}] -} \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__f939d130._.js b/.next/server/chunks/ssr/[root-of-the-server]__f939d130._.js deleted file mode 100644 index 706a87b66..000000000 --- a/.next/server/chunks/ssr/[root-of-the-server]__f939d130._.js +++ /dev/null @@ -1,5 +0,0 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="05fb9a49-054a-1e22-51d8-b22070df98c7")}catch(e){}}(); -module.exports=[918622,(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"))},556704,(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"))},832319,(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"))},120635,(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"))},659440,(a,b,c)=>{"use strict";b.exports=a.r(918622)},526156,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored["react-ssr"].ReactJsxRuntime},150765,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored["react-ssr"].React},805433,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored.contexts.AppRouterContext},770173,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored["react-ssr"].ReactServerDOMTurbopackClient},493633,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored["react-ssr"].ReactDOM},223295,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored.contexts.HooksClientContext},575937,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored.contexts.ServerInsertedHtml},784446,a=>{"use strict";function b(a,b){let f=b&&b.cache?b.cache:g,h=b&&b.serializer?b.serializer:e;return(b&&b.strategy?b.strategy:function(a,b){var e,f;let g=1===a.length?c:d;return e=b.cache.create(),f=b.serializer,g.bind(this,a,e,f)})(a,{cache:f,serializer:h})}function c(a,b,c,d){let e=null==d||"number"==typeof d||"boolean"==typeof d?d:c(d),f=b.get(e);return void 0===f&&(f=a.call(this,d),b.set(e,f)),f}function d(a,b,c){let d=Array.prototype.slice.call(arguments,3),e=c(d),f=b.get(e);return void 0===f&&(f=a.apply(this,d),b.set(e,f)),f}let e=function(){return JSON.stringify(arguments)};class f{cache;constructor(){this.cache=Object.create(null)}get(a){return this.cache[a]}set(a,b){this.cache[a]=b}}let g={create:function(){return new f}};a.s(["memoize",()=>b,"strategies",0,{variadic:function(a,b){var c,e;return c=b.cache.create(),e=b.serializer,d.bind(this,a,c,e)},monadic:function(a,b){var d,e;return d=b.cache.create(),e=b.serializer,c.bind(this,a,d,e)}}])},403988,(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}},116820,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"warnOnce",{enumerable:!0,get:function(){return d}});let d=a=>{}},463652,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}},411550,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return f}});let d=a.r(150765),e=()=>{};function f(a){let{headManager:b,reduceComponentsToState:c}=a;function f(){if(b&&b.mountedInstances){let a=d.Children.toArray(Array.from(b.mountedInstances).filter(Boolean));b.updateHead(c(a))}}return b?.mountedInstances?.add(a.children),f(),e(()=>(b?.mountedInstances?.add(a.children),()=>{b?.mountedInstances?.delete(a.children)})),e(()=>(b&&(b._pendingUpdate=f),()=>{b&&(b._pendingUpdate=f)})),null}},802396,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored.contexts.HeadManagerContext},308589,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return p},defaultHead:function(){return l}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(463652),g=a.r(403988),h=a.r(526156),i=g._(a.r(150765)),j=f._(a.r(411550)),k=a.r(802396);function l(){return[(0,h.jsx)("meta",{charSet:"utf-8"},"charset"),(0,h.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function m(a,b){return"string"==typeof b||"number"==typeof b?a:b.type===i.default.Fragment?a.concat(i.default.Children.toArray(b.props.children).reduce((a,b)=>"string"==typeof b||"number"==typeof b?a:a.concat(b),[])):a.concat(b)}a.r(116820);let n=["name","httpEquiv","charSet","itemProp"];function o(a){let b,c,d,e;return a.reduce(m,[]).reverse().concat(l().reverse()).filter((b=new Set,c=new Set,d=new Set,e={},a=>{let f=!0,g=!1;if(a.key&&"number"!=typeof a.key&&a.key.indexOf("$")>0){g=!0;let c=a.key.slice(a.key.indexOf("$")+1);b.has(c)?f=!1:b.add(c)}switch(a.type){case"title":case"base":c.has(a.type)?f=!1:c.add(a.type);break;case"meta":for(let b=0,c=n.length;b<c;b++){let c=n[b];if(a.props.hasOwnProperty(c))if("charSet"===c)d.has(c)?f=!1:d.add(c);else{let b=a.props[c],d=e[c]||new Set;("name"!==c||!g)&&d.has(b)?f=!1:(d.add(b),e[c]=d)}}}return f})).reverse().map((a,b)=>{let c=a.key||b;return i.default.cloneElement(a,{key:c})})}let p=function({children:a}){let b=(0,i.useContext)(k.HeadManagerContext);return(0,h.jsx)(j.default,{reduceComponentsToState:o,headManager:b,children: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)},857568,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return k},getImageProps:function(){return j}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(463652),g=a.r(724810),h=a.r(739969),i=f._(a.r(74446));function j(a){let{props:b}=(0,g.getImgProps)(a,{defaultLoader:i.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[25,50,75,100],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[a,c]of Object.entries(b))void 0===c&&delete b[a];return{props:b}}let k=h.Image},110644,(a,b,c)=>{b.exports=a.r(857568)},698565,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"BailoutToCSR",{enumerable:!0,get:function(){return e}});let d=a.r(332278);function e({reason:a,children:b}){throw Object.defineProperty(new d.BailoutToCSRError(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}},251204,(a,b,c)=>{"use strict";function d(a){return a.split("/").map(a=>encodeURIComponent(a)).join("/")}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"encodeURIPath",{enumerable:!0,get:function(){return d}})},587716,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"PreloadChunks",{enumerable:!0,get:function(){return i}});let d=a.r(526156),e=a.r(493633),f=a.r(556704),g=a.r(251204),h=a.r(215658);function i({moduleIds:a}){let b=f.workAsyncStorage.getStore();if(void 0===b)return null;let c=[];if(b.reactLoadableManifest&&a){let d=b.reactLoadableManifest;for(let b of a){if(!d[b])continue;let a=d[b].files;c.push(...a)}}if(0===c.length)return null;let i=(0,h.getDeploymentIdQueryOrEmptyString)();return(0,d.jsx)(d.Fragment,{children:c.map(a=>{let c=`${b.assetPrefix}/_next/${(0,g.encodeURIPath)(a)}${i}`;return a.endsWith(".css")?(0,d.jsx)("link",{precedence:"dynamic",href:c,rel:"stylesheet",as:"style",nonce:b.nonce},a):((0,e.preload)(c,{as:"script",fetchPriority:"low",nonce:b.nonce}),null)})})}},254723,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return j}});let d=a.r(526156),e=a.r(150765),f=a.r(698565),g=a.r(587716);function h(a){return{default:a&&"default"in a?a.default:a}}let i={loader:()=>Promise.resolve(h(()=>null)),loading:null,ssr:!0},j=function(a){let b={...i,...a},c=(0,e.lazy)(()=>b.loader().then(h)),j=b.loading;function k(a){let h=j?(0,d.jsx)(j,{isLoading:!0,pastDelay:!0,error:null}):null,i=!b.ssr||!!b.loading,k=i?e.Suspense:e.Fragment,l=b.ssr?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(g.PreloadChunks,{moduleIds:b.modules}),(0,d.jsx)(c,{...a})]}):(0,d.jsx)(f.BailoutToCSR,{reason:"next/dynamic",children:(0,d.jsx)(c,{...a})});return(0,d.jsx)(k,{...i?{fallback:h}:{},children:l})}return k.displayName="LoadableComponent",k}},411487,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return e}});let d=a.r(463652)._(a.r(254723));function e(a,b){let c={};"function"==typeof a&&(c.loader=a);let e={...c,...b};return(0,d.default)({...e,modules:e.loadableGenerated?.modules})}("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)},427402,a=>{"use strict";let b=a.i(150765).useEffect;a.s(["useIsomorphicLayoutEffect",()=>b],427402)}]; - -//# debugId=05fb9a49-054a-1e22-51d8-b22070df98c7 -//# sourceMappingURL=%5Broot-of-the-server%5D__f939d130._.js.map \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__f939d130._.js.map b/.next/server/chunks/ssr/[root-of-the-server]__f939d130._.js.map deleted file mode 100644 index 88ce2a1bb..000000000 --- a/.next/server/chunks/ssr/[root-of-the-server]__f939d130._.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": [], - "debugId": "05fb9a49-054a-1e22-51d8-b22070df98c7", - "sections": [ - {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/module.compiled.js","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/ssr/react.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/contexts/app-router-context.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/ssr/react-server-dom-turbopack-client.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/ssr/react-dom.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/contexts/hooks-client-context.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/contexts/server-inserted-html.ts","../../../../node_modules/.pnpm/%40formatjs%2Bfast-memoize%403.1.1/node_modules/%40formatjs/fast-memoize/index.js","../../../../node_modules/.pnpm/%40swc%2Bhelpers%400.5.15/node_modules/%40swc/helpers/cjs/_interop_require_wildcard.cjs","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/utils/warn-once.ts","../../../../node_modules/.pnpm/%40swc%2Bhelpers%400.5.15/node_modules/%40swc/helpers/cjs/_interop_require_default.cjs","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/side-effect.tsx","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/contexts/head-manager-context.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/head.tsx","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/image-external.tsx","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/image.js","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/lazy-dynamic/dynamic-bailout-to-csr.tsx","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/encode-uri-path.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/lazy-dynamic/preload-chunks.tsx","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/lazy-dynamic/loadable.tsx","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/app-dynamic.tsx","../../../../node_modules/.pnpm/framer-motion%4012.38.0_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/framer-motion/src/utils/is-browser.ts","../../../../node_modules/.pnpm/framer-motion%4012.38.0_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4/node_modules/framer-motion/src/utils/use-isomorphic-effect.ts"],"sourcesContent":["if (process.env.NEXT_RUNTIME === 'edge') {\n module.exports = require('next/dist/server/route-modules/app-page/module.js')\n} else {\n if (process.env.__NEXT_EXPERIMENTAL_REACT) {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.prod.js')\n }\n }\n } else {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.prod.js')\n }\n }\n }\n}\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactJsxRuntime\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.React\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].AppRouterContext\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactServerDOMTurbopackClient\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactDOM\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].HooksClientContext\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].ServerInsertedHtml\n","export function memoize(fn, options) {\n\tconst cache = options && options.cache ? options.cache : cacheDefault;\n\tconst serializer = options && options.serializer ? options.serializer : serializerDefault;\n\tconst strategy = options && options.strategy ? options.strategy : strategyDefault;\n\treturn strategy(fn, {\n\t\tcache,\n\t\tserializer\n\t});\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n\treturn value == null || typeof value === \"number\" || typeof value === \"boolean\";\n}\nfunction monadic(fn, cache, serializer, arg) {\n\tconst cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n\tlet computedValue = cache.get(cacheKey);\n\tif (typeof computedValue === \"undefined\") {\n\t\tcomputedValue = fn.call(this, arg);\n\t\tcache.set(cacheKey, computedValue);\n\t}\n\treturn computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n\tconst args = Array.prototype.slice.call(arguments, 3);\n\tconst cacheKey = serializer(args);\n\tlet computedValue = cache.get(cacheKey);\n\tif (typeof computedValue === \"undefined\") {\n\t\tcomputedValue = fn.apply(this, args);\n\t\tcache.set(cacheKey, computedValue);\n\t}\n\treturn computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n\treturn strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n\tconst strategy = fn.length === 1 ? monadic : variadic;\n\treturn assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n\treturn assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n\treturn assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nconst serializerDefault = function() {\n\treturn JSON.stringify(arguments);\n};\n//\n// Cache\n//\nclass ObjectWithoutPrototypeCache {\n\tcache;\n\tconstructor() {\n\t\tthis.cache = Object.create(null);\n\t}\n\tget(key) {\n\t\treturn this.cache[key];\n\t}\n\tset(key, value) {\n\t\tthis.cache[key] = value;\n\t}\n}\nconst cacheDefault = { create: function create() {\n\treturn new ObjectWithoutPrototypeCache();\n} };\nexport const strategies = {\n\tvariadic: strategyVariadic,\n\tmonadic: strategyMonadic\n};\n","\"use strict\";\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\nexports._ = _interop_require_wildcard;\n","let warnOnce = (_: string) => {}\nif (process.env.NODE_ENV !== 'production') {\n const warnings = new Set<string>()\n warnOnce = (msg: string) => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\nexport { warnOnce }\n","\"use strict\";\n\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nexports._ = _interop_require_default;\n","import type React from 'react'\nimport { Children, useEffect, useLayoutEffect, type JSX } from 'react'\n\ntype State = JSX.Element[] | undefined\n\nexport type SideEffectProps = {\n reduceComponentsToState: (components: Array<React.ReactElement<any>>) => State\n handleStateChange?: (state: State) => void\n headManager: any\n children: React.ReactNode\n}\n\nconst isServer = typeof window === 'undefined'\nconst useClientOnlyLayoutEffect = isServer ? () => {} : useLayoutEffect\nconst useClientOnlyEffect = isServer ? () => {} : useEffect\n\nexport default function SideEffect(props: SideEffectProps) {\n const { headManager, reduceComponentsToState } = props\n\n function emitChange() {\n if (headManager && headManager.mountedInstances) {\n const headElements = Children.toArray(\n Array.from(headManager.mountedInstances as Set<React.ReactNode>).filter(\n Boolean\n )\n ) as React.ReactElement[]\n headManager.updateHead(reduceComponentsToState(headElements))\n }\n }\n\n if (isServer) {\n headManager?.mountedInstances?.add(props.children)\n emitChange()\n }\n\n useClientOnlyLayoutEffect(() => {\n headManager?.mountedInstances?.add(props.children)\n return () => {\n headManager?.mountedInstances?.delete(props.children)\n }\n })\n\n // We need to call `updateHead` method whenever the `SideEffect` is trigger in all\n // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s\n // being rendered, we only trigger the method from the last one.\n // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`\n // singleton in the layout effect pass, and actually trigger it in the effect pass.\n useClientOnlyLayoutEffect(() => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n return () => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n }\n })\n\n useClientOnlyEffect(() => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n return () => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n }\n })\n\n return null\n}\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].HeadManagerContext\n","'use client'\n\nimport React, { useContext, type JSX } from 'react'\nimport Effect from './side-effect'\nimport { HeadManagerContext } from './head-manager-context.shared-runtime'\nimport { warnOnce } from './utils/warn-once'\n\nexport function defaultHead(): JSX.Element[] {\n const head = [\n <meta charSet=\"utf-8\" key=\"charset\" />,\n <meta name=\"viewport\" content=\"width=device-width\" key=\"viewport\" />,\n ]\n return head\n}\n\nfunction onlyReactElement(\n list: Array<React.ReactElement<any>>,\n child: React.ReactElement | number | string\n): Array<React.ReactElement<any>> {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === 'string' || typeof child === 'number') {\n return list\n }\n // Adds support for React.Fragment\n if (child.type === React.Fragment) {\n return list.concat(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n React.Children.toArray(child.props.children).reduce(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n (\n fragmentList: Array<React.ReactElement<any>>,\n fragmentChild: React.ReactElement | number | string\n ): Array<React.ReactElement<any>> => {\n if (\n typeof fragmentChild === 'string' ||\n typeof fragmentChild === 'number'\n ) {\n return fragmentList\n }\n return fragmentList.concat(fragmentChild)\n },\n []\n )\n )\n }\n return list.concat(child)\n}\n\nconst METATYPES = ['name', 'httpEquiv', 'charSet', 'itemProp']\n\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like <title/>\n Also adds support for deduplicated `key` properties\n*/\nfunction unique() {\n const keys = new Set()\n const tags = new Set()\n const metaTypes = new Set()\n const metaCategories: { [metatype: string]: Set<string> } = {}\n\n return (h: React.ReactElement<any>) => {\n let isUnique = true\n let hasKey = false\n\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true\n const key = h.key.slice(h.key.indexOf('$') + 1)\n if (keys.has(key)) {\n isUnique = false\n } else {\n keys.add(key)\n }\n }\n\n // eslint-disable-next-line default-case\n switch (h.type) {\n case 'title':\n case 'base':\n if (tags.has(h.type)) {\n isUnique = false\n } else {\n tags.add(h.type)\n }\n break\n case 'meta':\n for (let i = 0, len = METATYPES.length; i < len; i++) {\n const metatype = METATYPES[i]\n if (!h.props.hasOwnProperty(metatype)) continue\n\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false\n } else {\n metaTypes.add(metatype)\n }\n } else {\n const category = h.props[metatype]\n const categories = metaCategories[metatype] || new Set()\n if ((metatype !== 'name' || !hasKey) && categories.has(category)) {\n isUnique = false\n } else {\n categories.add(category)\n metaCategories[metatype] = categories\n }\n }\n }\n break\n }\n\n return isUnique\n }\n}\n\n/**\n *\n * @param headChildrenElements List of children of <Head>\n */\nfunction reduceComponents(\n headChildrenElements: Array<React.ReactElement<any>>\n) {\n return headChildrenElements\n .reduce(onlyReactElement, [])\n .reverse()\n .concat(defaultHead().reverse())\n .filter(unique())\n .reverse()\n .map((c: React.ReactElement<any>, i: number) => {\n const key = c.key || i\n if (process.env.NODE_ENV === 'development') {\n // omit JSON-LD structured data snippets from the warning\n if (c.type === 'script' && c.props['type'] !== 'application/ld+json') {\n const srcMessage = c.props['src']\n ? `<script> tag with src=\"${c.props['src']}\"`\n : `inline <script>`\n warnOnce(\n `Do not add <script> tags using next/head (see ${srcMessage}). Use next/script instead. \\nSee more info here: https://nextjs.org/docs/messages/no-script-tags-in-head-component`\n )\n } else if (c.type === 'link' && c.props['rel'] === 'stylesheet') {\n warnOnce(\n `Do not add stylesheets using next/head (see <link rel=\"stylesheet\"> tag with href=\"${c.props['href']}\"). Use Document instead. \\nSee more info here: https://nextjs.org/docs/messages/no-stylesheets-in-head-component`\n )\n }\n }\n return React.cloneElement(c, { key })\n })\n}\n\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */\nfunction Head({ children }: { children: React.ReactNode }) {\n const headManager = useContext(HeadManagerContext)\n return (\n <Effect\n reduceComponentsToState={reduceComponents}\n headManager={headManager}\n >\n {children}\n </Effect>\n )\n}\n\nexport default Head\n","import type { ImageConfigComplete, ImageLoaderProps } from './image-config'\nimport type { ImageProps, ImageLoader, StaticImageData } from './get-img-props'\n\nimport { getImgProps } from './get-img-props'\nimport { Image } from '../../client/image-component'\n\n// This is replaced by webpack alias\nimport defaultLoader from 'next/dist/shared/lib/image-loader'\n\n/**\n * For more advanced use cases, you can call `getImageProps()`\n * to get the props that would be passed to the underlying `<img>` element,\n * and instead pass to them to another component, style, canvas, etc.\n *\n * Read more: [Next.js docs: `getImageProps`](https://nextjs.org/docs/app/api-reference/components/image#getimageprops)\n */\nexport function getImageProps(imgProps: ImageProps) {\n const { props } = getImgProps(imgProps, {\n defaultLoader,\n // This is replaced by webpack define plugin\n imgConf: process.env.__NEXT_IMAGE_OPTS as any as ImageConfigComplete,\n })\n // Normally we don't care about undefined props because we pass to JSX,\n // but this exported function could be used by the end user for anything\n // so we delete undefined props to clean it up a little.\n for (const [key, value] of Object.entries(props)) {\n if (value === undefined) {\n delete props[key as keyof typeof props]\n }\n }\n return { props }\n}\n\nexport default Image\n\nexport type { ImageProps, ImageLoaderProps, ImageLoader, StaticImageData }\n","module.exports = require('./dist/shared/lib/image-external')\n","'use client'\n\nimport type { ReactElement } from 'react'\nimport { BailoutToCSRError } from './bailout-to-csr'\n\ninterface BailoutToCSRProps {\n reason: string\n children: ReactElement\n}\n\n/**\n * If rendered on the server, this component throws an error\n * to signal Next.js that it should bail out to client-side rendering instead.\n */\nexport function BailoutToCSR({ reason, children }: BailoutToCSRProps) {\n if (typeof window === 'undefined') {\n throw new BailoutToCSRError(reason)\n }\n\n return children\n}\n","export function encodeURIPath(file: string) {\n return file\n .split('/')\n .map((p) => encodeURIComponent(p))\n .join('/')\n}\n","'use client'\n\nimport { preload } from 'react-dom'\n\nimport { workAsyncStorage } from '../../../server/app-render/work-async-storage.external'\nimport { encodeURIPath } from '../encode-uri-path'\nimport { getDeploymentIdQueryOrEmptyString } from '../deployment-id'\n\nexport function PreloadChunks({\n moduleIds,\n}: {\n moduleIds: string[] | undefined\n}) {\n // Early return in client compilation and only load requestStore on server side\n if (typeof window !== 'undefined') {\n return null\n }\n\n const workStore = workAsyncStorage.getStore()\n if (workStore === undefined) {\n return null\n }\n\n const allFiles = []\n\n // Search the current dynamic call unique key id in react loadable manifest,\n // and find the corresponding CSS files to preload\n if (workStore.reactLoadableManifest && moduleIds) {\n const manifest = workStore.reactLoadableManifest\n for (const key of moduleIds) {\n if (!manifest[key]) continue\n const chunks = manifest[key].files\n allFiles.push(...chunks)\n }\n }\n\n if (allFiles.length === 0) {\n return null\n }\n\n const dplId = getDeploymentIdQueryOrEmptyString()\n\n return (\n <>\n {allFiles.map((chunk) => {\n const href = `${workStore.assetPrefix}/_next/${encodeURIPath(chunk)}${dplId}`\n const isCss = chunk.endsWith('.css')\n // If it's stylesheet we use `precedence` o help hoist with React Float.\n // For stylesheets we actually need to render the CSS because nothing else is going to do it so it needs to be part of the component tree.\n // The `preload` for stylesheet is not optional.\n if (isCss) {\n return (\n <link\n key={chunk}\n // @ts-ignore\n precedence=\"dynamic\"\n href={href}\n rel=\"stylesheet\"\n as=\"style\"\n nonce={workStore.nonce}\n />\n )\n } else {\n // If it's script we use ReactDOM.preload to preload the resources\n preload(href, {\n as: 'script',\n fetchPriority: 'low',\n nonce: workStore.nonce,\n })\n return null\n }\n })}\n </>\n )\n}\n","import { Suspense, Fragment, lazy } from 'react'\nimport { BailoutToCSR } from './dynamic-bailout-to-csr'\nimport type { ComponentModule } from './types'\nimport { PreloadChunks } from './preload-chunks'\n\n// Normalize loader to return the module as form { default: Component } for `React.lazy`.\n// Also for backward compatible since next/dynamic allows to resolve a component directly with loader\n// Client component reference proxy need to be converted to a module.\nfunction convertModule<P>(\n mod: React.ComponentType<P> | ComponentModule<P> | undefined\n): {\n default: React.ComponentType<P>\n} {\n // Check \"default\" prop before accessing it, as it could be client reference proxy that could break it reference.\n // Cases:\n // mod: { default: Component }\n // mod: Component\n // mod: { default: proxy(Component) }\n // mod: proxy(Component)\n const hasDefault = mod && 'default' in mod\n return {\n default: hasDefault\n ? (mod as ComponentModule<P>).default\n : (mod as React.ComponentType<P>),\n }\n}\n\nconst defaultOptions = {\n loader: () => Promise.resolve(convertModule(() => null)),\n loading: null,\n ssr: true,\n}\n\ninterface LoadableOptions {\n loader?: () => Promise<React.ComponentType<any> | ComponentModule<any>>\n loading?: React.ComponentType<any> | null\n ssr?: boolean\n modules?: string[]\n}\n\nfunction Loadable(options: LoadableOptions) {\n const opts = { ...defaultOptions, ...options }\n const Lazy = lazy(() => opts.loader().then(convertModule))\n const Loading = opts.loading\n\n function LoadableComponent(props: any) {\n const fallbackElement = Loading ? (\n <Loading isLoading={true} pastDelay={true} error={null} />\n ) : null\n\n // If it's non-SSR or provided a loading component, wrap it in a suspense boundary\n const hasSuspenseBoundary = !opts.ssr || !!opts.loading\n const Wrap = hasSuspenseBoundary ? Suspense : Fragment\n const wrapProps = hasSuspenseBoundary ? { fallback: fallbackElement } : {}\n const children = opts.ssr ? (\n <>\n {/* During SSR, we need to preload the CSS from the dynamic component to avoid flash of unstyled content */}\n {typeof window === 'undefined' ? (\n <PreloadChunks moduleIds={opts.modules} />\n ) : null}\n <Lazy {...props} />\n </>\n ) : (\n <BailoutToCSR reason=\"next/dynamic\">\n <Lazy {...props} />\n </BailoutToCSR>\n )\n\n return <Wrap {...wrapProps}>{children}</Wrap>\n }\n\n LoadableComponent.displayName = 'LoadableComponent'\n\n return LoadableComponent\n}\n\nexport default Loadable\n","import type React from 'react'\nimport type { JSX } from 'react'\nimport Loadable from './lazy-dynamic/loadable'\n\nimport type {\n LoadableGeneratedOptions,\n DynamicOptionsLoadingProps,\n Loader,\n LoaderComponent,\n} from './lazy-dynamic/types'\n\nexport {\n type LoadableGeneratedOptions,\n type DynamicOptionsLoadingProps,\n type Loader,\n type LoaderComponent,\n}\n\nexport type DynamicOptions<P = {}> = LoadableGeneratedOptions & {\n loading?: () => JSX.Element | null\n loader?: Loader<P>\n loadableGenerated?: LoadableGeneratedOptions\n modules?: string[]\n ssr?: boolean\n}\n\nexport type LoadableOptions<P = {}> = DynamicOptions<P>\n\nexport type LoadableFn<P = {}> = (\n opts: LoadableOptions<P>\n) => React.ComponentType<P>\n\nexport type LoadableComponent<P = {}> = React.ComponentType<P>\n\nexport default function dynamic<P = {}>(\n dynamicOptions: DynamicOptions<P> | Loader<P>,\n options?: DynamicOptions<P>\n): React.ComponentType<P> {\n const loadableOptions: LoadableOptions<P> = {}\n\n if (typeof dynamicOptions === 'function') {\n loadableOptions.loader = dynamicOptions\n }\n\n const mergedOptions = {\n ...loadableOptions,\n ...options,\n }\n\n return Loadable({\n ...mergedOptions,\n modules: mergedOptions.loadableGenerated?.modules,\n })\n}\n","export const isBrowser = typeof window !== \"undefined\"\n","\"use client\"\n\nimport { useEffect, useLayoutEffect } from \"react\"\nimport { isBrowser } from \"./is-browser\"\n\nexport const useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect\n"],"names":["process","env","NEXT_RUNTIME","module","exports","require","__NEXT_EXPERIMENTAL_REACT","NODE_ENV","TURBOPACK","vendored","ReactJsxRuntime","React","AppRouterContext","ReactServerDOMTurbopackClient","ReactDOM","HooksClientContext","ServerInsertedHtml","warnOnce","_","warnings","Set","msg","has","console","warn","add","SideEffect","isServer","window","useClientOnlyLayoutEffect","useLayoutEffect","useClientOnlyEffect","useEffect","props","headManager","reduceComponentsToState","emitChange","mountedInstances","headElements","Children","toArray","Array","from","filter","Boolean","updateHead","children","delete","_pendingUpdate","HeadManagerContext","defaultHead","head","meta","charSet","name","content","onlyReactElement","list","child","type","Fragment","concat","reduce","fragmentList","fragmentChild","METATYPES","unique","keys","tags","metaTypes","metaCategories","h","isUnique","hasKey","key","indexOf","slice","i","len","length","metatype","hasOwnProperty","category","categories","reduceComponents","headChildrenElements","reverse","map","c","srcMessage","cloneElement","Head","useContext","Effect","getImageProps","imgProps","getImgProps","defaultLoader","imgConf","__NEXT_IMAGE_OPTS","value","Object","entries","undefined","Image","BailoutToCSR","reason","BailoutToCSRError","encodeURIPath","file","split","p","encodeURIComponent","join","PreloadChunks","moduleIds","workStore","workAsyncStorage","getStore","allFiles","reactLoadableManifest","manifest","chunks","files","push","dplId","getDeploymentIdQueryOrEmptyString","chunk","href","assetPrefix","isCss","endsWith","link","precedence","rel","as","nonce","preload","fetchPriority","convertModule","mod","hasDefault","default","defaultOptions","loader","Promise","resolve","loading","ssr","Loadable","options","opts","Lazy","lazy","then","Loading","LoadableComponent","fallbackElement","isLoading","pastDelay","error","hasSuspenseBoundary","Wrap","Suspense","wrapProps","fallback","modules","displayName","dynamic","dynamicOptions","loadableOptions","mergedOptions","loadableGenerated"],"mappings":"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","ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]}}] -} \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__1fc7332e._.js b/.next/server/chunks/ssr/[root-of-the-server]__fb2ceaaf._.js similarity index 64% rename from .next/server/chunks/ssr/[root-of-the-server]__1fc7332e._.js rename to .next/server/chunks/ssr/[root-of-the-server]__fb2ceaaf._.js index b6fa10d81..c9c3443f0 100644 --- a/.next/server/chunks/ssr/[root-of-the-server]__1fc7332e._.js +++ b/.next/server/chunks/ssr/[root-of-the-server]__fb2ceaaf._.js @@ -1,5 +1,5 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="7376ce57-15d0-fee7-716a-e808ffa85303")}catch(e){}}(); -module.exports=[918622,(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"))},556704,(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"))},832319,(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"))},324725,(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"))},814747,(a,b,c)=>{b.exports=a.x("path",()=>require("path"))},605365,(a,b,c)=>{b.exports=a.x("process",()=>require("process"))},410430,(a,b,c)=>{b.exports=a.x("async_hooks",()=>require("async_hooks"))},792509,(a,b,c)=>{b.exports=a.x("url",()=>require("url"))},427699,(a,b,c)=>{b.exports=a.x("events",()=>require("events"))},81111,(a,b,c)=>{b.exports=a.x("node:stream",()=>require("node:stream"))},446786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},522734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},224361,(a,b,c)=>{b.exports=a.x("util",()=>require("util"))},233405,(a,b,c)=>{b.exports=a.x("child_process",()=>require("child_process"))},254799,(a,b,c)=>{b.exports=a.x("crypto",()=>require("crypto"))},362562,(a,b,c)=>{b.exports=a.x("module",()=>require("module"))},156823,(a,b,c)=>{b.exports=a.x("require-in-the-middle-a99415fa67232f7f",()=>require("require-in-the-middle-a99415fa67232f7f"))},285512,(a,b,c)=>{b.exports=a.x("import-in-the-middle-138cd032e4b029f3",()=>require("import-in-the-middle-138cd032e4b029f3"))},677652,(a,b,c)=>{b.exports=a.x("node:diagnostics_channel",()=>require("node:diagnostics_channel"))},687769,(a,b,c)=>{b.exports=a.x("node:events",()=>require("node:events"))},154993,(a,b,c)=>{b.exports=a.x("diagnostics_channel",()=>require("diagnostics_channel"))},874533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},902157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},812057,(a,b,c)=>{b.exports=a.x("node:util",()=>require("node:util"))},601457,(a,b,c)=>{b.exports=a.x("node:readline",()=>require("node:readline"))},925127,(a,b,c)=>{b.exports=a.x("node:worker_threads",()=>require("node:worker_threads"))},37702,(a,b,c)=>{b.exports=a.x("worker_threads",()=>require("worker_threads"))},347299,(a,b,c)=>{b.exports=a.x("node:http",()=>require("node:http"))},743698,(a,b,c)=>{b.exports=a.x("node:https",()=>require("node:https"))},727028,(a,b,c)=>{b.exports=a.x("node:zlib",()=>require("node:zlib"))},761095,(a,b,c)=>{b.exports=a.x("node:net",()=>require("node:net"))},685560,(a,b,c)=>{b.exports=a.x("node:tls",()=>require("node:tls"))},60438,(a,b,c)=>{b.exports=a.x("perf_hooks",()=>require("perf_hooks"))},74667,(a,b,c)=>{b.exports=a.x("import-in-the-middle-6ecbfda1283b1532",()=>require("import-in-the-middle-6ecbfda1283b1532"))},989801,a=>{a.v({name:"@fastify/otel",version:"0.18.0",description:"Official Fastify OpenTelemetry Instrumentation",main:"index.js",type:"commonjs",types:"types/index.d.ts",scripts:{lint:"eslint","lint:fix":"eslint --fix",test:"npm run test:all && npm run test:typescript","test:unit":"c8 --100 node --test","test:all":"npm run test:v4 && npm run test:v5","test:v4":"cross-env FASTIFY_VERSION=fastifyv4 npm run test:unit","test:v5":"cross-env FASTIFY_VERSION=fastify npm run test:unit","test:coverage":"c8 node --test && c8 report --reporter=html","test:typescript":"tsd"},repository:{type:"git",url:"git+https://github.com/fastify/otel.git"},keywords:["plugin","helper","fastify","instrumentation","otel","opentelemetry"],author:"Carlos Fuentes - @metcoder95 (https://metcoder.dev)",license:"MIT",bugs:{url:"https://github.com/fastify/otel/issues"},homepage:"https://github.com/fastify/otel#readme",funding:[{type:"github",url:"https://github.com/sponsors/fastify"},{type:"opencollective",url:"https://opencollective.com/fastify"}],devDependencies:{"@fastify/type-provider-typebox":"^6.1.0","@opentelemetry/context-async-hooks":"^2.0.0","@opentelemetry/contrib-test-utils":"^0.59.0","@opentelemetry/instrumentation-http":"^0.212.0","@opentelemetry/propagator-jaeger":"^2.0.0","@opentelemetry/sdk-trace-base":"^2.0.0","@opentelemetry/sdk-trace-node":"^2.2.0","@types/node":"^25.0.3",c8:"^11.0.0","cross-env":"^10.0.0",eslint:"^9.16.0",fastify:"^5.1.0","fastify-plugin":"^5.1.0",fastifyv4:"npm:fastify@^4.0.0",neostandard:"^0.12.0",tsd:"^0.33.0"},dependencies:{"@opentelemetry/core":"^2.0.0","@opentelemetry/instrumentation":"^0.212.0","@opentelemetry/semantic-conventions":"^1.28.0",minimatch:"^10.2.4"},peerDependencies:{"@opentelemetry/api":"^1.9.0"},tsd:{directory:"types"}})},120635,(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"))},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"))},659440,(a,b,c)=>{"use strict";b.exports=a.r(918622)},526156,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored["react-ssr"].ReactJsxRuntime},150765,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored["react-ssr"].React},805433,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored.contexts.AppRouterContext},770173,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored["react-ssr"].ReactServerDOMTurbopackClient},493633,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored["react-ssr"].ReactDOM},223295,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored.contexts.HooksClientContext},575937,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored.contexts.ServerInsertedHtml},403988,(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}},116820,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"warnOnce",{enumerable:!0,get:function(){return d}});let d=a=>{}},463652,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}},411550,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return f}});let d=a.r(150765),e=()=>{};function f(a){let{headManager:b,reduceComponentsToState:c}=a;function f(){if(b&&b.mountedInstances){let a=d.Children.toArray(Array.from(b.mountedInstances).filter(Boolean));b.updateHead(c(a))}}return b?.mountedInstances?.add(a.children),f(),e(()=>(b?.mountedInstances?.add(a.children),()=>{b?.mountedInstances?.delete(a.children)})),e(()=>(b&&(b._pendingUpdate=f),()=>{b&&(b._pendingUpdate=f)})),null}},802396,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored.contexts.HeadManagerContext},308589,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return p},defaultHead:function(){return l}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(463652),g=a.r(403988),h=a.r(526156),i=g._(a.r(150765)),j=f._(a.r(411550)),k=a.r(802396);function l(){return[(0,h.jsx)("meta",{charSet:"utf-8"},"charset"),(0,h.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function m(a,b){return"string"==typeof b||"number"==typeof b?a:b.type===i.default.Fragment?a.concat(i.default.Children.toArray(b.props.children).reduce((a,b)=>"string"==typeof b||"number"==typeof b?a:a.concat(b),[])):a.concat(b)}a.r(116820);let n=["name","httpEquiv","charSet","itemProp"];function o(a){let b,c,d,e;return a.reduce(m,[]).reverse().concat(l().reverse()).filter((b=new Set,c=new Set,d=new Set,e={},a=>{let f=!0,g=!1;if(a.key&&"number"!=typeof a.key&&a.key.indexOf("$")>0){g=!0;let c=a.key.slice(a.key.indexOf("$")+1);b.has(c)?f=!1:b.add(c)}switch(a.type){case"title":case"base":c.has(a.type)?f=!1:c.add(a.type);break;case"meta":for(let b=0,c=n.length;b<c;b++){let c=n[b];if(a.props.hasOwnProperty(c))if("charSet"===c)d.has(c)?f=!1:d.add(c);else{let b=a.props[c],d=e[c]||new Set;("name"!==c||!g)&&d.has(b)?f=!1:(d.add(b),e[c]=d)}}}return f})).reverse().map((a,b)=>{let c=a.key||b;return i.default.cloneElement(a,{key:c})})}let p=function({children:a}){let b=(0,i.useContext)(k.HeadManagerContext);return(0,h.jsx)(j.default,{reduceComponentsToState:o,headManager:b,children: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)},385603,750470,70226,563305,a=>{"use strict";var b,c;let d="1.9.1",e=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/,f=function(a){let b=new Set([a]),c=new Set,d=a.match(e);if(!d)return()=>!1;let f={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=f.prerelease)return function(b){return b===a};function g(a){return c.add(a),!1}return function(a){if(b.has(a))return!0;if(c.has(a))return!1;let d=a.match(e);if(!d)return g(a);let h={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=h.prerelease||f.major!==h.major)return g(a);if(0===f.major)return f.minor===h.minor&&f.patch<=h.patch?(b.add(a),!0):g(a);return f.minor<=h.minor?(b.add(a),!0):g(a)}}(d),g=d.split(".")[0],h=Symbol.for(`opentelemetry.js.api.${g}`),i="object"==typeof globalThis?globalThis:"object"==typeof self?self:a.g;function j(a,b,c,e=!1){var f;let g=i[h]=null!=(f=i[h])?f:{version:d};if(!e&&g[a]){let b=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${a}`);return c.error(b.stack||b.message),!1}if(g.version!==d){let b=Error(`@opentelemetry/api: Registration of version v${g.version} for ${a} does not match previously registered API v${d}`);return c.error(b.stack||b.message),!1}return g[a]=b,c.debug(`@opentelemetry/api: Registered a global for ${a} v${d}.`),!0}function k(a){var b,c;let d=null==(b=i[h])?void 0:b.version;if(d&&f(d))return null==(c=i[h])?void 0:c[a]}function l(a,b){b.debug(`@opentelemetry/api: Unregistering a global for ${a} v${d}.`);let c=i[h];c&&delete c[a]}a.s(["getGlobal",()=>k,"registerGlobal",()=>j,"unregisterGlobal",()=>l],750470);class m{constructor(a){this._namespace=a.namespace||"DiagComponentLogger"}debug(...a){return n("debug",this._namespace,a)}error(...a){return n("error",this._namespace,a)}info(...a){return n("info",this._namespace,a)}warn(...a){return n("warn",this._namespace,a)}verbose(...a){return n("verbose",this._namespace,a)}}function n(a,b,c){let d=k("diag");if(d)return d[a](b,...c)}(c=b||(b={}))[c.NONE=0]="NONE",c[c.ERROR=30]="ERROR",c[c.WARN=50]="WARN",c[c.INFO=60]="INFO",c[c.DEBUG=70]="DEBUG",c[c.VERBOSE=80]="VERBOSE",c[c.ALL=9999]="ALL",a.s(["DiagLogLevel",()=>b],70226);class o{static instance(){return this._instance||(this._instance=new o),this._instance}constructor(){function a(a){return function(...b){let c=k("diag");if(c)return c[a](...b)}}const c=this,d=(a,d={logLevel:b.INFO})=>{var e,f,g;if(a===c){let a=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return c.error(null!=(e=a.stack)?e:a.message),!1}"number"==typeof d&&(d={logLevel:d});let h=k("diag"),i=function(a,c){function d(b,d){let e=c[b];return"function"==typeof e&&a>=d?e.bind(c):function(){}}return a<b.NONE?a=b.NONE:a>b.ALL&&(a=b.ALL),c=c||{},{error:d("error",b.ERROR),warn:d("warn",b.WARN),info:d("info",b.INFO),debug:d("debug",b.DEBUG),verbose:d("verbose",b.VERBOSE)}}(null!=(f=d.logLevel)?f:b.INFO,a);if(h&&!d.suppressOverrideMessage){let a=null!=(g=Error().stack)?g:"<failed to generate stacktrace>";h.warn(`Current logger will be overwritten from ${a}`),i.warn(`Current logger will overwrite one already registered from ${a}`)}return j("diag",i,c,!0)};c.setLogger=d,c.disable=()=>{l("diag",c)},c.createComponentLogger=a=>new m(a),c.verbose=a("verbose"),c.debug=a("debug"),c.info=a("info"),c.warn=a("warn"),c.error=a("error")}}a.s(["DiagAPI",()=>o],563305);let p=o.instance();a.s(["diag",0,p],385603)},832850,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={NEXT_REQUEST_META:function(){return f},addRequestMeta:function(){return i},getRequestMeta:function(){return g},removeRequestMeta:function(){return j},setRequestMeta:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=Symbol.for("NextInternalRequestMeta");function g(a,b){let c=a[f]||{};return"string"==typeof b?c[b]:c}function h(a,b){return a[f]=b,b}function i(a,b,c){let d=g(a);return d[b]=c,h(a,d)}function j(a,b){let c=g(a);return delete c[b],h(a,c)}},923143,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return o}});let d=a.r(463652),e=a.r(526156),f=d._(a.r(150765)),g=d._(a.r(308589)),h={400:"Bad Request",404:"This page could not be found",405:"Method Not Allowed",500:"Internal Server Error"};function i({req:b,res:c,err:d}){let e,f=c&&c.statusCode?c.statusCode:d?d.statusCode:404;if(b){let{getRequestMeta:c}=a.r(832850),d=c(b,"initURL");d&&(e=new URL(d).hostname)}return{statusCode:f,hostname:e}}let j={fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},k={lineHeight:"48px"},l={display:"inline-block",margin:"0 20px 0 0",paddingRight:23,fontSize:24,fontWeight:500,verticalAlign:"top"},m={fontSize:14,fontWeight:400,lineHeight:"28px"},n={display:"inline-block"};class o extends f.default.Component{static{this.displayName="ErrorPage"}static{this.getInitialProps=i}static{this.origGetInitialProps=i}render(){let{statusCode:a,withDarkMode:b=!0}=this.props,c=this.props.title||h[a]||"An unexpected error has occurred";return(0,e.jsxs)("div",{style:j,children:[(0,e.jsx)(g.default,{children:(0,e.jsx)("title",{children:a?`${a}: ${c}`:"Application error: a client-side exception has occurred"})}),(0,e.jsxs)("div",{style:k,children:[(0,e.jsx)("style",{dangerouslySetInnerHTML:{__html:`body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}${b?"@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}":""}`}}),a?(0,e.jsx)("h1",{className:"next-error-h1",style:l,children:a}):null,(0,e.jsx)("div",{style:n,children:(0,e.jsxs)("h2",{style:m,children:[this.props.title||a?c:(0,e.jsxs)(e.Fragment,{children:["Application error: a client-side exception has occurred"," ",!!this.props.hostname&&(0,e.jsxs)(e.Fragment,{children:["while loading ",this.props.hostname]})," ","(see the browser console for more information)"]}),"."]})})]})]})}}("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)},520158,(a,b,c)=>{b.exports=a.r(923143)},303171,a=>{"use strict";var b=a.i(526156),c=a.i(17814),d=a.i(520158),e=a.i(150765);function f({error:a}){return(0,e.useEffect)(()=>{c.captureException(a)},[a]),(0,b.jsx)("html",{children:(0,b.jsx)("body",{children:(0,b.jsx)(d.default,{statusCode:0})})})}a.s(["default",()=>f])},234177,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node:inspector_7a4283c6._.js"].map(b=>a.l(b))).then(()=>b(237221)))},872097,a=>{a.v(b=>Promise.all(["server/chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_51b27302._.js"].map(b=>a.l(b))).then(()=>b(524177)))},992965,a=>{a.v(b=>Promise.all(["server/chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_5e35a34a.js"].map(b=>a.l(b))).then(()=>b(435235)))},846524,a=>{a.v(b=>Promise.all(["server/chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_f2e70164._.js"].map(b=>a.l(b))).then(()=>b(20549)))},189011,a=>{a.v(b=>Promise.all(["server/chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_317a5e2b._.js"].map(b=>a.l(b))).then(()=>b(800164)))},18291,a=>{a.v(b=>Promise.all(["server/chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_68baf629.js"].map(b=>a.l(b))).then(()=>b(282793)))}]; +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="33dc2c92-0925-d1bb-96ad-01a11eb533a7")}catch(e){}}(); +module.exports=[120635,(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"))},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"))},659440,(a,b,c)=>{"use strict";b.exports=a.r(918622)},526156,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored["react-ssr"].ReactJsxRuntime},150765,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored["react-ssr"].React},805433,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored.contexts.AppRouterContext},770173,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored["react-ssr"].ReactServerDOMTurbopackClient},493633,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored["react-ssr"].ReactDOM},223295,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored.contexts.HooksClientContext},575937,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored.contexts.ServerInsertedHtml},918622,(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"))},556704,(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"))},832319,(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"))},324725,(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"))},814747,(a,b,c)=>{b.exports=a.x("path",()=>require("path"))},605365,(a,b,c)=>{b.exports=a.x("process",()=>require("process"))},410430,(a,b,c)=>{b.exports=a.x("async_hooks",()=>require("async_hooks"))},792509,(a,b,c)=>{b.exports=a.x("url",()=>require("url"))},427699,(a,b,c)=>{b.exports=a.x("events",()=>require("events"))},81111,(a,b,c)=>{b.exports=a.x("node:stream",()=>require("node:stream"))},446786,(a,b,c)=>{b.exports=a.x("os",()=>require("os"))},522734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},224361,(a,b,c)=>{b.exports=a.x("util",()=>require("util"))},233405,(a,b,c)=>{b.exports=a.x("child_process",()=>require("child_process"))},254799,(a,b,c)=>{b.exports=a.x("crypto",()=>require("crypto"))},362562,(a,b,c)=>{b.exports=a.x("module",()=>require("module"))},156823,(a,b,c)=>{b.exports=a.x("require-in-the-middle-a99415fa67232f7f",()=>require("require-in-the-middle-a99415fa67232f7f"))},285512,(a,b,c)=>{b.exports=a.x("import-in-the-middle-138cd032e4b029f3",()=>require("import-in-the-middle-138cd032e4b029f3"))},677652,(a,b,c)=>{b.exports=a.x("node:diagnostics_channel",()=>require("node:diagnostics_channel"))},687769,(a,b,c)=>{b.exports=a.x("node:events",()=>require("node:events"))},154993,(a,b,c)=>{b.exports=a.x("diagnostics_channel",()=>require("diagnostics_channel"))},874533,(a,b,c)=>{b.exports=a.x("node:child_process",()=>require("node:child_process"))},902157,(a,b,c)=>{b.exports=a.x("node:fs",()=>require("node:fs"))},660526,(a,b,c)=>{b.exports=a.x("node:os",()=>require("node:os"))},750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},812057,(a,b,c)=>{b.exports=a.x("node:util",()=>require("node:util"))},601457,(a,b,c)=>{b.exports=a.x("node:readline",()=>require("node:readline"))},925127,(a,b,c)=>{b.exports=a.x("node:worker_threads",()=>require("node:worker_threads"))},37702,(a,b,c)=>{b.exports=a.x("worker_threads",()=>require("worker_threads"))},347299,(a,b,c)=>{b.exports=a.x("node:http",()=>require("node:http"))},743698,(a,b,c)=>{b.exports=a.x("node:https",()=>require("node:https"))},727028,(a,b,c)=>{b.exports=a.x("node:zlib",()=>require("node:zlib"))},761095,(a,b,c)=>{b.exports=a.x("node:net",()=>require("node:net"))},685560,(a,b,c)=>{b.exports=a.x("node:tls",()=>require("node:tls"))},60438,(a,b,c)=>{b.exports=a.x("perf_hooks",()=>require("perf_hooks"))},74667,(a,b,c)=>{b.exports=a.x("import-in-the-middle-6ecbfda1283b1532",()=>require("import-in-the-middle-6ecbfda1283b1532"))},989801,a=>{a.v({name:"@fastify/otel",version:"0.18.0",description:"Official Fastify OpenTelemetry Instrumentation",main:"index.js",type:"commonjs",types:"types/index.d.ts",scripts:{lint:"eslint","lint:fix":"eslint --fix",test:"npm run test:all && npm run test:typescript","test:unit":"c8 --100 node --test","test:all":"npm run test:v4 && npm run test:v5","test:v4":"cross-env FASTIFY_VERSION=fastifyv4 npm run test:unit","test:v5":"cross-env FASTIFY_VERSION=fastify npm run test:unit","test:coverage":"c8 node --test && c8 report --reporter=html","test:typescript":"tsd"},repository:{type:"git",url:"git+https://github.com/fastify/otel.git"},keywords:["plugin","helper","fastify","instrumentation","otel","opentelemetry"],author:"Carlos Fuentes - @metcoder95 (https://metcoder.dev)",license:"MIT",bugs:{url:"https://github.com/fastify/otel/issues"},homepage:"https://github.com/fastify/otel#readme",funding:[{type:"github",url:"https://github.com/sponsors/fastify"},{type:"opencollective",url:"https://opencollective.com/fastify"}],devDependencies:{"@fastify/type-provider-typebox":"^6.1.0","@opentelemetry/context-async-hooks":"^2.0.0","@opentelemetry/contrib-test-utils":"^0.59.0","@opentelemetry/instrumentation-http":"^0.212.0","@opentelemetry/propagator-jaeger":"^2.0.0","@opentelemetry/sdk-trace-base":"^2.0.0","@opentelemetry/sdk-trace-node":"^2.2.0","@types/node":"^25.0.3",c8:"^11.0.0","cross-env":"^10.0.0",eslint:"^9.16.0",fastify:"^5.1.0","fastify-plugin":"^5.1.0",fastifyv4:"npm:fastify@^4.0.0",neostandard:"^0.12.0",tsd:"^0.33.0"},dependencies:{"@opentelemetry/core":"^2.0.0","@opentelemetry/instrumentation":"^0.212.0","@opentelemetry/semantic-conventions":"^1.28.0",minimatch:"^10.2.4"},peerDependencies:{"@opentelemetry/api":"^1.9.0"},tsd:{directory:"types"}})},403988,(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}},116820,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"warnOnce",{enumerable:!0,get:function(){return d}});let d=a=>{}},463652,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}},411550,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return f}});let d=a.r(150765),e=()=>{};function f(a){let{headManager:b,reduceComponentsToState:c}=a;function f(){if(b&&b.mountedInstances){let a=d.Children.toArray(Array.from(b.mountedInstances).filter(Boolean));b.updateHead(c(a))}}return b?.mountedInstances?.add(a.children),f(),e(()=>(b?.mountedInstances?.add(a.children),()=>{b?.mountedInstances?.delete(a.children)})),e(()=>(b&&(b._pendingUpdate=f),()=>{b&&(b._pendingUpdate=f)})),null}},802396,(a,b,c)=>{"use strict";b.exports=a.r(659440).vendored.contexts.HeadManagerContext},308589,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return p},defaultHead:function(){return l}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(463652),g=a.r(403988),h=a.r(526156),i=g._(a.r(150765)),j=f._(a.r(411550)),k=a.r(802396);function l(){return[(0,h.jsx)("meta",{charSet:"utf-8"},"charset"),(0,h.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function m(a,b){return"string"==typeof b||"number"==typeof b?a:b.type===i.default.Fragment?a.concat(i.default.Children.toArray(b.props.children).reduce((a,b)=>"string"==typeof b||"number"==typeof b?a:a.concat(b),[])):a.concat(b)}a.r(116820);let n=["name","httpEquiv","charSet","itemProp"];function o(a){let b,c,d,e;return a.reduce(m,[]).reverse().concat(l().reverse()).filter((b=new Set,c=new Set,d=new Set,e={},a=>{let f=!0,g=!1;if(a.key&&"number"!=typeof a.key&&a.key.indexOf("$")>0){g=!0;let c=a.key.slice(a.key.indexOf("$")+1);b.has(c)?f=!1:b.add(c)}switch(a.type){case"title":case"base":c.has(a.type)?f=!1:c.add(a.type);break;case"meta":for(let b=0,c=n.length;b<c;b++){let c=n[b];if(a.props.hasOwnProperty(c))if("charSet"===c)d.has(c)?f=!1:d.add(c);else{let b=a.props[c],d=e[c]||new Set;("name"!==c||!g)&&d.has(b)?f=!1:(d.add(b),e[c]=d)}}}return f})).reverse().map((a,b)=>{let c=a.key||b;return i.default.cloneElement(a,{key:c})})}let p=function({children:a}){let b=(0,i.useContext)(k.HeadManagerContext);return(0,h.jsx)(j.default,{reduceComponentsToState:o,headManager:b,children: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)},385603,750470,70226,563305,a=>{"use strict";var b,c;let d="1.9.1",e=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/,f=function(a){let b=new Set([a]),c=new Set,d=a.match(e);if(!d)return()=>!1;let f={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=f.prerelease)return function(b){return b===a};function g(a){return c.add(a),!1}return function(a){if(b.has(a))return!0;if(c.has(a))return!1;let d=a.match(e);if(!d)return g(a);let h={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=h.prerelease||f.major!==h.major)return g(a);if(0===f.major)return f.minor===h.minor&&f.patch<=h.patch?(b.add(a),!0):g(a);return f.minor<=h.minor?(b.add(a),!0):g(a)}}(d),g=d.split(".")[0],h=Symbol.for(`opentelemetry.js.api.${g}`),i="object"==typeof globalThis?globalThis:"object"==typeof self?self:a.g;function j(a,b,c,e=!1){var f;let g=i[h]=null!=(f=i[h])?f:{version:d};if(!e&&g[a]){let b=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${a}`);return c.error(b.stack||b.message),!1}if(g.version!==d){let b=Error(`@opentelemetry/api: Registration of version v${g.version} for ${a} does not match previously registered API v${d}`);return c.error(b.stack||b.message),!1}return g[a]=b,c.debug(`@opentelemetry/api: Registered a global for ${a} v${d}.`),!0}function k(a){var b,c;let d=null==(b=i[h])?void 0:b.version;if(d&&f(d))return null==(c=i[h])?void 0:c[a]}function l(a,b){b.debug(`@opentelemetry/api: Unregistering a global for ${a} v${d}.`);let c=i[h];c&&delete c[a]}a.s(["getGlobal",()=>k,"registerGlobal",()=>j,"unregisterGlobal",()=>l],750470);class m{constructor(a){this._namespace=a.namespace||"DiagComponentLogger"}debug(...a){return n("debug",this._namespace,a)}error(...a){return n("error",this._namespace,a)}info(...a){return n("info",this._namespace,a)}warn(...a){return n("warn",this._namespace,a)}verbose(...a){return n("verbose",this._namespace,a)}}function n(a,b,c){let d=k("diag");if(d)return d[a](b,...c)}(c=b||(b={}))[c.NONE=0]="NONE",c[c.ERROR=30]="ERROR",c[c.WARN=50]="WARN",c[c.INFO=60]="INFO",c[c.DEBUG=70]="DEBUG",c[c.VERBOSE=80]="VERBOSE",c[c.ALL=9999]="ALL",a.s(["DiagLogLevel",()=>b],70226);class o{static instance(){return this._instance||(this._instance=new o),this._instance}constructor(){function a(a){return function(...b){let c=k("diag");if(c)return c[a](...b)}}const c=this,d=(a,d={logLevel:b.INFO})=>{var e,f,g;if(a===c){let a=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return c.error(null!=(e=a.stack)?e:a.message),!1}"number"==typeof d&&(d={logLevel:d});let h=k("diag"),i=function(a,c){function d(b,d){let e=c[b];return"function"==typeof e&&a>=d?e.bind(c):function(){}}return a<b.NONE?a=b.NONE:a>b.ALL&&(a=b.ALL),c=c||{},{error:d("error",b.ERROR),warn:d("warn",b.WARN),info:d("info",b.INFO),debug:d("debug",b.DEBUG),verbose:d("verbose",b.VERBOSE)}}(null!=(f=d.logLevel)?f:b.INFO,a);if(h&&!d.suppressOverrideMessage){let a=null!=(g=Error().stack)?g:"<failed to generate stacktrace>";h.warn(`Current logger will be overwritten from ${a}`),i.warn(`Current logger will overwrite one already registered from ${a}`)}return j("diag",i,c,!0)};c.setLogger=d,c.disable=()=>{l("diag",c)},c.createComponentLogger=a=>new m(a),c.verbose=a("verbose"),c.debug=a("debug"),c.info=a("info"),c.warn=a("warn"),c.error=a("error")}}a.s(["DiagAPI",()=>o],563305);let p=o.instance();a.s(["diag",0,p],385603)},832850,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={NEXT_REQUEST_META:function(){return f},addRequestMeta:function(){return i},getRequestMeta:function(){return g},removeRequestMeta:function(){return j},setRequestMeta:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=Symbol.for("NextInternalRequestMeta");function g(a,b){let c=a[f]||{};return"string"==typeof b?c[b]:c}function h(a,b){return a[f]=b,b}function i(a,b,c){let d=g(a);return d[b]=c,h(a,d)}function j(a,b){let c=g(a);return delete c[b],h(a,c)}},923143,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return o}});let d=a.r(463652),e=a.r(526156),f=d._(a.r(150765)),g=d._(a.r(308589)),h={400:"Bad Request",404:"This page could not be found",405:"Method Not Allowed",500:"Internal Server Error"};function i({req:b,res:c,err:d}){let e,f=c&&c.statusCode?c.statusCode:d?d.statusCode:404;if(b){let{getRequestMeta:c}=a.r(832850),d=c(b,"initURL");d&&(e=new URL(d).hostname)}return{statusCode:f,hostname:e}}let j={fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},k={lineHeight:"48px"},l={display:"inline-block",margin:"0 20px 0 0",paddingRight:23,fontSize:24,fontWeight:500,verticalAlign:"top"},m={fontSize:14,fontWeight:400,lineHeight:"28px"},n={display:"inline-block"};class o extends f.default.Component{static{this.displayName="ErrorPage"}static{this.getInitialProps=i}static{this.origGetInitialProps=i}render(){let{statusCode:a,withDarkMode:b=!0}=this.props,c=this.props.title||h[a]||"An unexpected error has occurred";return(0,e.jsxs)("div",{style:j,children:[(0,e.jsx)(g.default,{children:(0,e.jsx)("title",{children:a?`${a}: ${c}`:"Application error: a client-side exception has occurred"})}),(0,e.jsxs)("div",{style:k,children:[(0,e.jsx)("style",{dangerouslySetInnerHTML:{__html:`body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}${b?"@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}":""}`}}),a?(0,e.jsx)("h1",{className:"next-error-h1",style:l,children:a}):null,(0,e.jsx)("div",{style:n,children:(0,e.jsxs)("h2",{style:m,children:[this.props.title||a?c:(0,e.jsxs)(e.Fragment,{children:["Application error: a client-side exception has occurred"," ",!!this.props.hostname&&(0,e.jsxs)(e.Fragment,{children:["while loading ",this.props.hostname]})," ","(see the browser console for more information)"]}),"."]})})]})]})}}("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)},520158,(a,b,c)=>{b.exports=a.r(923143)},303171,a=>{"use strict";var b=a.i(526156),c=a.i(17814),d=a.i(520158),e=a.i(150765);function f({error:a}){return(0,e.useEffect)(()=>{c.captureException(a)},[a]),(0,b.jsx)("html",{children:(0,b.jsx)("body",{children:(0,b.jsx)(d.default,{statusCode:0})})})}a.s(["default",()=>f])},234177,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[externals]_node:inspector_7a4283c6._.js"].map(b=>a.l(b))).then(()=>b(237221)))},872097,a=>{a.v(b=>Promise.all(["server/chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_51b27302._.js"].map(b=>a.l(b))).then(()=>b(524177)))},992965,a=>{a.v(b=>Promise.all(["server/chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-linux_5e35a34a.js"].map(b=>a.l(b))).then(()=>b(435235)))},846524,a=>{a.v(b=>Promise.all(["server/chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_f2e70164._.js"].map(b=>a.l(b))).then(()=>b(20549)))},189011,a=>{a.v(b=>Promise.all(["server/chunks/ssr/9aaa3_@opentelemetry_resources_build_esm_detectors_platform_node_machine-id_317a5e2b._.js"].map(b=>a.l(b))).then(()=>b(800164)))},18291,a=>{a.v(b=>Promise.all(["server/chunks/ssr/34c6c_build_esm_detectors_platform_node_machine-id_getMachineId-unsupported_68baf629.js"].map(b=>a.l(b))).then(()=>b(282793)))}]; -//# debugId=7376ce57-15d0-fee7-716a-e808ffa85303 -//# sourceMappingURL=%5Broot-of-the-server%5D__1fc7332e._.js.map \ No newline at end of file +//# debugId=33dc2c92-0925-d1bb-96ad-01a11eb533a7 +//# sourceMappingURL=%5Broot-of-the-server%5D__fb2ceaaf._.js.map \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__1fc7332e._.js.map b/.next/server/chunks/ssr/[root-of-the-server]__fb2ceaaf._.js.map similarity index 88% rename from .next/server/chunks/ssr/[root-of-the-server]__1fc7332e._.js.map rename to .next/server/chunks/ssr/[root-of-the-server]__fb2ceaaf._.js.map index 2a5020e65..3b8bf8539 100644 --- a/.next/server/chunks/ssr/[root-of-the-server]__1fc7332e._.js.map +++ b/.next/server/chunks/ssr/[root-of-the-server]__fb2ceaaf._.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": [], - "debugId": "7376ce57-15d0-fee7-716a-e808ffa85303", + "debugId": "33dc2c92-0925-d1bb-96ad-01a11eb533a7", "sections": [ - {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["turbopack:///[project]/node_modules/.pnpm/@fastify+otel@0.18.0_@opentelemetry+api@1.9.1/node_modules/@fastify/otel/package.json","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/module.compiled.js","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/ssr/react.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/contexts/app-router-context.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/ssr/react-server-dom-turbopack-client.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/ssr/react-dom.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/contexts/hooks-client-context.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/contexts/server-inserted-html.ts","../../../../node_modules/.pnpm/%40swc%2Bhelpers%400.5.15/node_modules/%40swc/helpers/cjs/_interop_require_wildcard.cjs","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/utils/warn-once.ts","../../../../node_modules/.pnpm/%40swc%2Bhelpers%400.5.15/node_modules/%40swc/helpers/cjs/_interop_require_default.cjs","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/side-effect.tsx","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/contexts/head-manager-context.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/head.tsx","../../../../node_modules/.pnpm/%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/api/src/internal/semver.ts","../../../../node_modules/.pnpm/%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/api/src/version.ts","../../../../node_modules/.pnpm/%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/api/src/diag/internal/logLevelLogger.ts","../../../../node_modules/.pnpm/%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/api/src/internal/global-utils.ts","../../../../node_modules/.pnpm/%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/api/src/api/diag.ts","../../../../node_modules/.pnpm/%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/api/src/diag-api.ts","../../../../node_modules/.pnpm/%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/api/src/diag/types.ts","../../../../node_modules/.pnpm/%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/api/src/diag/ComponentLogger.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/request-meta.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/pages/_error.tsx","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/error.js","../../../../app/global-error.tsx"],"sourcesContent":["{\"name\":\"@fastify/otel\",\"version\":\"0.18.0\",\"description\":\"Official Fastify OpenTelemetry Instrumentation\",\"main\":\"index.js\",\"type\":\"commonjs\",\"types\":\"types/index.d.ts\",\"scripts\":{\"lint\":\"eslint\",\"lint:fix\":\"eslint --fix\",\"test\":\"npm run test:all && npm run test:typescript\",\"test:unit\":\"c8 --100 node --test\",\"test:all\":\"npm run test:v4 && npm run test:v5\",\"test:v4\":\"cross-env FASTIFY_VERSION=fastifyv4 npm run test:unit\",\"test:v5\":\"cross-env FASTIFY_VERSION=fastify npm run test:unit\",\"test:coverage\":\"c8 node --test && c8 report --reporter=html\",\"test:typescript\":\"tsd\"},\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/fastify/otel.git\"},\"keywords\":[\"plugin\",\"helper\",\"fastify\",\"instrumentation\",\"otel\",\"opentelemetry\"],\"author\":\"Carlos Fuentes - @metcoder95 (https://metcoder.dev)\",\"license\":\"MIT\",\"bugs\":{\"url\":\"https://github.com/fastify/otel/issues\"},\"homepage\":\"https://github.com/fastify/otel#readme\",\"funding\":[{\"type\":\"github\",\"url\":\"https://github.com/sponsors/fastify\"},{\"type\":\"opencollective\",\"url\":\"https://opencollective.com/fastify\"}],\"devDependencies\":{\"@fastify/type-provider-typebox\":\"^6.1.0\",\"@opentelemetry/context-async-hooks\":\"^2.0.0\",\"@opentelemetry/contrib-test-utils\":\"^0.59.0\",\"@opentelemetry/instrumentation-http\":\"^0.212.0\",\"@opentelemetry/propagator-jaeger\":\"^2.0.0\",\"@opentelemetry/sdk-trace-base\":\"^2.0.0\",\"@opentelemetry/sdk-trace-node\":\"^2.2.0\",\"@types/node\":\"^25.0.3\",\"c8\":\"^11.0.0\",\"cross-env\":\"^10.0.0\",\"eslint\":\"^9.16.0\",\"fastify\":\"^5.1.0\",\"fastify-plugin\":\"^5.1.0\",\"fastifyv4\":\"npm:fastify@^4.0.0\",\"neostandard\":\"^0.12.0\",\"tsd\":\"^0.33.0\"},\"dependencies\":{\"@opentelemetry/core\":\"^2.0.0\",\"@opentelemetry/instrumentation\":\"^0.212.0\",\"@opentelemetry/semantic-conventions\":\"^1.28.0\",\"minimatch\":\"^10.2.4\"},\"peerDependencies\":{\"@opentelemetry/api\":\"^1.9.0\"},\"tsd\":{\"directory\":\"types\"}}","if (process.env.NEXT_RUNTIME === 'edge') {\n module.exports = require('next/dist/server/route-modules/app-page/module.js')\n} else {\n if (process.env.__NEXT_EXPERIMENTAL_REACT) {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.prod.js')\n }\n }\n } else {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.prod.js')\n }\n }\n }\n}\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactJsxRuntime\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.React\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].AppRouterContext\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactServerDOMTurbopackClient\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactDOM\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].HooksClientContext\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].ServerInsertedHtml\n","\"use strict\";\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\nexports._ = _interop_require_wildcard;\n","let warnOnce = (_: string) => {}\nif (process.env.NODE_ENV !== 'production') {\n const warnings = new Set<string>()\n warnOnce = (msg: string) => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\nexport { warnOnce }\n","\"use strict\";\n\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nexports._ = _interop_require_default;\n","import type React from 'react'\nimport { Children, useEffect, useLayoutEffect, type JSX } from 'react'\n\ntype State = JSX.Element[] | undefined\n\nexport type SideEffectProps = {\n reduceComponentsToState: (components: Array<React.ReactElement<any>>) => State\n handleStateChange?: (state: State) => void\n headManager: any\n children: React.ReactNode\n}\n\nconst isServer = typeof window === 'undefined'\nconst useClientOnlyLayoutEffect = isServer ? () => {} : useLayoutEffect\nconst useClientOnlyEffect = isServer ? () => {} : useEffect\n\nexport default function SideEffect(props: SideEffectProps) {\n const { headManager, reduceComponentsToState } = props\n\n function emitChange() {\n if (headManager && headManager.mountedInstances) {\n const headElements = Children.toArray(\n Array.from(headManager.mountedInstances as Set<React.ReactNode>).filter(\n Boolean\n )\n ) as React.ReactElement[]\n headManager.updateHead(reduceComponentsToState(headElements))\n }\n }\n\n if (isServer) {\n headManager?.mountedInstances?.add(props.children)\n emitChange()\n }\n\n useClientOnlyLayoutEffect(() => {\n headManager?.mountedInstances?.add(props.children)\n return () => {\n headManager?.mountedInstances?.delete(props.children)\n }\n })\n\n // We need to call `updateHead` method whenever the `SideEffect` is trigger in all\n // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s\n // being rendered, we only trigger the method from the last one.\n // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`\n // singleton in the layout effect pass, and actually trigger it in the effect pass.\n useClientOnlyLayoutEffect(() => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n return () => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n }\n })\n\n useClientOnlyEffect(() => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n return () => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n }\n })\n\n return null\n}\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].HeadManagerContext\n","'use client'\n\nimport React, { useContext, type JSX } from 'react'\nimport Effect from './side-effect'\nimport { HeadManagerContext } from './head-manager-context.shared-runtime'\nimport { warnOnce } from './utils/warn-once'\n\nexport function defaultHead(): JSX.Element[] {\n const head = [\n <meta charSet=\"utf-8\" key=\"charset\" />,\n <meta name=\"viewport\" content=\"width=device-width\" key=\"viewport\" />,\n ]\n return head\n}\n\nfunction onlyReactElement(\n list: Array<React.ReactElement<any>>,\n child: React.ReactElement | number | string\n): Array<React.ReactElement<any>> {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === 'string' || typeof child === 'number') {\n return list\n }\n // Adds support for React.Fragment\n if (child.type === React.Fragment) {\n return list.concat(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n React.Children.toArray(child.props.children).reduce(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n (\n fragmentList: Array<React.ReactElement<any>>,\n fragmentChild: React.ReactElement | number | string\n ): Array<React.ReactElement<any>> => {\n if (\n typeof fragmentChild === 'string' ||\n typeof fragmentChild === 'number'\n ) {\n return fragmentList\n }\n return fragmentList.concat(fragmentChild)\n },\n []\n )\n )\n }\n return list.concat(child)\n}\n\nconst METATYPES = ['name', 'httpEquiv', 'charSet', 'itemProp']\n\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like <title/>\n Also adds support for deduplicated `key` properties\n*/\nfunction unique() {\n const keys = new Set()\n const tags = new Set()\n const metaTypes = new Set()\n const metaCategories: { [metatype: string]: Set<string> } = {}\n\n return (h: React.ReactElement<any>) => {\n let isUnique = true\n let hasKey = false\n\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true\n const key = h.key.slice(h.key.indexOf('$') + 1)\n if (keys.has(key)) {\n isUnique = false\n } else {\n keys.add(key)\n }\n }\n\n // eslint-disable-next-line default-case\n switch (h.type) {\n case 'title':\n case 'base':\n if (tags.has(h.type)) {\n isUnique = false\n } else {\n tags.add(h.type)\n }\n break\n case 'meta':\n for (let i = 0, len = METATYPES.length; i < len; i++) {\n const metatype = METATYPES[i]\n if (!h.props.hasOwnProperty(metatype)) continue\n\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false\n } else {\n metaTypes.add(metatype)\n }\n } else {\n const category = h.props[metatype]\n const categories = metaCategories[metatype] || new Set()\n if ((metatype !== 'name' || !hasKey) && categories.has(category)) {\n isUnique = false\n } else {\n categories.add(category)\n metaCategories[metatype] = categories\n }\n }\n }\n break\n }\n\n return isUnique\n }\n}\n\n/**\n *\n * @param headChildrenElements List of children of <Head>\n */\nfunction reduceComponents(\n headChildrenElements: Array<React.ReactElement<any>>\n) {\n return headChildrenElements\n .reduce(onlyReactElement, [])\n .reverse()\n .concat(defaultHead().reverse())\n .filter(unique())\n .reverse()\n .map((c: React.ReactElement<any>, i: number) => {\n const key = c.key || i\n if (process.env.NODE_ENV === 'development') {\n // omit JSON-LD structured data snippets from the warning\n if (c.type === 'script' && c.props['type'] !== 'application/ld+json') {\n const srcMessage = c.props['src']\n ? `<script> tag with src=\"${c.props['src']}\"`\n : `inline <script>`\n warnOnce(\n `Do not add <script> tags using next/head (see ${srcMessage}). Use next/script instead. \\nSee more info here: https://nextjs.org/docs/messages/no-script-tags-in-head-component`\n )\n } else if (c.type === 'link' && c.props['rel'] === 'stylesheet') {\n warnOnce(\n `Do not add stylesheets using next/head (see <link rel=\"stylesheet\"> tag with href=\"${c.props['href']}\"). Use Document instead. \\nSee more info here: https://nextjs.org/docs/messages/no-stylesheets-in-head-component`\n )\n }\n }\n return React.cloneElement(c, { key })\n })\n}\n\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */\nfunction Head({ children }: { children: React.ReactNode }) {\n const headManager = useContext(HeadManagerContext)\n return (\n <Effect\n reduceComponentsToState={reduceComponents}\n headManager={headManager}\n >\n {children}\n </Effect>\n )\n}\n\nexport default Head\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { VERSION } from '../version';\n\nconst re = /^(\\d+)\\.(\\d+)\\.(\\d+)(-(.+))?$/;\n\n/**\n * Create a function to test an API version to see if it is compatible with the provided ownVersion.\n *\n * The returned function has the following semantics:\n * - Exact match is always compatible\n * - Major versions must match exactly\n * - 1.x package cannot use global 2.x package\n * - 2.x package cannot use global 1.x package\n * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API\n * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects\n * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3\n * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor\n * - Patch and build tag differences are not considered at this time\n *\n * @param ownVersion version which should be checked against\n */\nexport function _makeCompatibilityCheck(\n ownVersion: string\n): (globalVersion: string) => boolean {\n const acceptedVersions = new Set<string>([ownVersion]);\n const rejectedVersions = new Set<string>();\n\n const myVersionMatch = ownVersion.match(re);\n if (!myVersionMatch) {\n // we cannot guarantee compatibility so we always return noop\n return () => false;\n }\n\n const ownVersionParsed = {\n major: +myVersionMatch[1],\n minor: +myVersionMatch[2],\n patch: +myVersionMatch[3],\n prerelease: myVersionMatch[4],\n };\n\n // if ownVersion has a prerelease tag, versions must match exactly\n if (ownVersionParsed.prerelease != null) {\n return function isExactmatch(globalVersion: string): boolean {\n return globalVersion === ownVersion;\n };\n }\n\n function _reject(v: string) {\n rejectedVersions.add(v);\n return false;\n }\n\n function _accept(v: string) {\n acceptedVersions.add(v);\n return true;\n }\n\n return function isCompatible(globalVersion: string): boolean {\n if (acceptedVersions.has(globalVersion)) {\n return true;\n }\n\n if (rejectedVersions.has(globalVersion)) {\n return false;\n }\n\n const globalVersionMatch = globalVersion.match(re);\n if (!globalVersionMatch) {\n // cannot parse other version\n // we cannot guarantee compatibility so we always noop\n return _reject(globalVersion);\n }\n\n const globalVersionParsed = {\n major: +globalVersionMatch[1],\n minor: +globalVersionMatch[2],\n patch: +globalVersionMatch[3],\n prerelease: globalVersionMatch[4],\n };\n\n // if globalVersion has a prerelease tag, versions must match exactly\n if (globalVersionParsed.prerelease != null) {\n return _reject(globalVersion);\n }\n\n // major versions must match\n if (ownVersionParsed.major !== globalVersionParsed.major) {\n return _reject(globalVersion);\n }\n\n if (ownVersionParsed.major === 0) {\n if (\n ownVersionParsed.minor === globalVersionParsed.minor &&\n ownVersionParsed.patch <= globalVersionParsed.patch\n ) {\n return _accept(globalVersion);\n }\n\n return _reject(globalVersion);\n }\n\n if (ownVersionParsed.minor <= globalVersionParsed.minor) {\n return _accept(globalVersion);\n }\n\n return _reject(globalVersion);\n };\n}\n\n/**\n * Test an API version to see if it is compatible with this API.\n *\n * - Exact match is always compatible\n * - Major versions must match exactly\n * - 1.x package cannot use global 2.x package\n * - 2.x package cannot use global 1.x package\n * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API\n * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects\n * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3\n * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor\n * - Patch and build tag differences are not considered at this time\n *\n * @param version version of the API requesting an instance of the global API\n */\nexport const isCompatible = _makeCompatibilityCheck(VERSION);\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const VERSION = '1.9.1';\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { DiagLogFunction, DiagLogger } from '../types';\nimport { DiagLogLevel } from '../types';\n\nexport function createLogLevelDiagLogger(\n maxLevel: DiagLogLevel,\n logger: DiagLogger\n): DiagLogger {\n if (maxLevel < DiagLogLevel.NONE) {\n maxLevel = DiagLogLevel.NONE;\n } else if (maxLevel > DiagLogLevel.ALL) {\n maxLevel = DiagLogLevel.ALL;\n }\n\n // In case the logger is null or undefined\n logger = logger || {};\n\n function _filterFunc(\n funcName: keyof DiagLogger,\n theLevel: DiagLogLevel\n ): DiagLogFunction {\n const theFunc = logger[funcName];\n\n if (typeof theFunc === 'function' && maxLevel >= theLevel) {\n return theFunc.bind(logger);\n }\n return function () {};\n }\n\n return {\n error: _filterFunc('error', DiagLogLevel.ERROR),\n warn: _filterFunc('warn', DiagLogLevel.WARN),\n info: _filterFunc('info', DiagLogLevel.INFO),\n debug: _filterFunc('debug', DiagLogLevel.DEBUG),\n verbose: _filterFunc('verbose', DiagLogLevel.VERBOSE),\n };\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { MeterProvider } from '../metrics/MeterProvider';\nimport type { ContextManager } from '../context/types';\nimport type { DiagLogger } from '../diag/types';\nimport type { TextMapPropagator } from '../propagation/TextMapPropagator';\nimport type { TracerProvider } from '../trace/tracer_provider';\nimport { VERSION } from '../version';\nimport { isCompatible } from './semver';\n\nconst major = VERSION.split('.')[0];\nconst GLOBAL_OPENTELEMETRY_API_KEY = Symbol.for(\n `opentelemetry.js.api.${major}`\n);\n\ndeclare const self: unknown;\ndeclare const window: unknown;\ndeclare const global: unknown;\n\nconst _global = (\n typeof globalThis === 'object'\n ? globalThis\n : typeof self === 'object'\n ? self\n : typeof window === 'object'\n ? window\n : typeof global === 'object'\n ? global\n : {}\n) as OTelGlobal;\n\nexport function registerGlobal<Type extends keyof OTelGlobalAPI>(\n type: Type,\n instance: OTelGlobalAPI[Type],\n diag: DiagLogger,\n allowOverride = false\n): boolean {\n const api = (_global[GLOBAL_OPENTELEMETRY_API_KEY] = _global[\n GLOBAL_OPENTELEMETRY_API_KEY\n ] ?? {\n version: VERSION,\n });\n\n if (!allowOverride && api[type]) {\n // already registered an API of this type\n const err = new Error(\n `@opentelemetry/api: Attempted duplicate registration of API: ${type}`\n );\n diag.error(err.stack || err.message);\n return false;\n }\n\n if (api.version !== VERSION) {\n // All registered APIs must be of the same version exactly\n const err = new Error(\n `@opentelemetry/api: Registration of version v${api.version} for ${type} does not match previously registered API v${VERSION}`\n );\n diag.error(err.stack || err.message);\n return false;\n }\n\n api[type] = instance;\n diag.debug(\n `@opentelemetry/api: Registered a global for ${type} v${VERSION}.`\n );\n\n return true;\n}\n\nexport function getGlobal<Type extends keyof OTelGlobalAPI>(\n type: Type\n): OTelGlobalAPI[Type] | undefined {\n const globalVersion = _global[GLOBAL_OPENTELEMETRY_API_KEY]?.version;\n if (!globalVersion || !isCompatible(globalVersion)) {\n return;\n }\n return _global[GLOBAL_OPENTELEMETRY_API_KEY]?.[type];\n}\n\nexport function unregisterGlobal(type: keyof OTelGlobalAPI, diag: DiagLogger) {\n diag.debug(\n `@opentelemetry/api: Unregistering a global for ${type} v${VERSION}.`\n );\n const api = _global[GLOBAL_OPENTELEMETRY_API_KEY];\n\n if (api) {\n delete api[type];\n }\n}\n\ntype OTelGlobal = {\n [GLOBAL_OPENTELEMETRY_API_KEY]?: OTelGlobalAPI;\n};\n\ntype OTelGlobalAPI = {\n version: string;\n\n diag?: DiagLogger;\n trace?: TracerProvider;\n context?: ContextManager;\n metrics?: MeterProvider;\n propagation?: TextMapPropagator;\n};\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DiagComponentLogger } from '../diag/ComponentLogger';\nimport { createLogLevelDiagLogger } from '../diag/internal/logLevelLogger';\nimport type {\n ComponentLoggerOptions,\n DiagLogFunction,\n DiagLogger,\n DiagLoggerApi,\n} from '../diag/types';\nimport { DiagLogLevel } from '../diag/types';\nimport {\n getGlobal,\n registerGlobal,\n unregisterGlobal,\n} from '../internal/global-utils';\n\nconst API_NAME = 'diag';\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry internal\n * diagnostic API\n *\n * @since 1.0.0\n */\nexport class DiagAPI implements DiagLogger, DiagLoggerApi {\n private static _instance?: DiagAPI;\n\n /** Get the singleton instance of the DiagAPI API */\n public static instance(): DiagAPI {\n if (!this._instance) {\n this._instance = new DiagAPI();\n }\n\n return this._instance;\n }\n\n /**\n * Private internal constructor\n * @private\n */\n private constructor() {\n function _logProxy(funcName: keyof DiagLogger): DiagLogFunction {\n return function (...args) {\n const logger = getGlobal('diag');\n // shortcut if logger not set\n if (!logger) return;\n return logger[funcName](...args);\n };\n }\n\n // Using self local variable for minification purposes as 'this' cannot be minified\n const self = this;\n\n // DiagAPI specific functions\n\n const setLogger: DiagLoggerApi['setLogger'] = (\n logger,\n optionsOrLogLevel = { logLevel: DiagLogLevel.INFO }\n ) => {\n if (logger === self) {\n // There isn't much we can do here.\n // Logging to the console might break the user application.\n // Try to log to self. If a logger was previously registered it will receive the log.\n const err = new Error(\n 'Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation'\n );\n self.error(err.stack ?? err.message);\n return false;\n }\n\n if (typeof optionsOrLogLevel === 'number') {\n optionsOrLogLevel = {\n logLevel: optionsOrLogLevel,\n };\n }\n\n const oldLogger = getGlobal('diag');\n const newLogger = createLogLevelDiagLogger(\n optionsOrLogLevel.logLevel ?? DiagLogLevel.INFO,\n logger\n );\n // There already is an logger registered. We'll let it know before overwriting it.\n if (oldLogger && !optionsOrLogLevel.suppressOverrideMessage) {\n const stack = new Error().stack ?? '<failed to generate stacktrace>';\n oldLogger.warn(`Current logger will be overwritten from ${stack}`);\n newLogger.warn(\n `Current logger will overwrite one already registered from ${stack}`\n );\n }\n\n return registerGlobal('diag', newLogger, self, true);\n };\n\n self.setLogger = setLogger;\n\n self.disable = () => {\n unregisterGlobal(API_NAME, self);\n };\n\n self.createComponentLogger = (options: ComponentLoggerOptions) => {\n return new DiagComponentLogger(options);\n };\n\n self.verbose = _logProxy('verbose');\n self.debug = _logProxy('debug');\n self.info = _logProxy('info');\n self.warn = _logProxy('warn');\n self.error = _logProxy('error');\n }\n\n public setLogger!: DiagLoggerApi['setLogger'];\n /**\n *\n */\n public createComponentLogger!: (\n options: ComponentLoggerOptions\n ) => DiagLogger;\n\n // DiagLogger implementation\n public verbose!: DiagLogFunction;\n public debug!: DiagLogFunction;\n public info!: DiagLogFunction;\n public warn!: DiagLogFunction;\n public error!: DiagLogFunction;\n\n /**\n * Unregister the global logger and return to Noop\n */\n public disable!: () => void;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { DiagAPI } from './api/diag';\n/**\n * Entrypoint for Diag API.\n * Defines Diagnostic handler used for internal diagnostic logging operations.\n * The default provides a Noop DiagLogger implementation which may be changed via the\n * diag.setLogger(logger: DiagLogger) function.\n *\n * @since 1.0.0\n */\nexport const diag = DiagAPI.instance();\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * @since 1.0.0\n */\nexport type DiagLogFunction = (message: string, ...args: unknown[]) => void;\n\n/**\n * Defines an internal diagnostic logger interface which is used to log internal diagnostic\n * messages, you can set the default diagnostic logger via the {@link DiagAPI} setLogger function.\n * API provided implementations include :-\n * - a No-Op {@link createNoopDiagLogger}\n * - a {@link DiagLogLevel} filtering wrapper {@link createLogLevelDiagLogger}\n * - a general Console {@link DiagConsoleLogger} version.\n *\n * @since 1.0.0\n */\nexport interface DiagLogger {\n /** Log an error scenario that was not expected and caused the requested operation to fail. */\n error: DiagLogFunction;\n\n /**\n * Log a warning scenario to inform the developer of an issues that should be investigated.\n * The requested operation may or may not have succeeded or completed.\n */\n warn: DiagLogFunction;\n\n /**\n * Log a general informational message, this should not affect functionality.\n * This is also the default logging level so this should NOT be used for logging\n * debugging level information.\n */\n info: DiagLogFunction;\n\n /**\n * Log a general debug message that can be useful for identifying a failure.\n * Information logged at this level may include diagnostic details that would\n * help identify a failure scenario.\n * For example: Logging the order of execution of async operations.\n */\n debug: DiagLogFunction;\n\n /**\n * Log a detailed (verbose) trace level logging that can be used to identify failures\n * where debug level logging would be insufficient, this level of tracing can include\n * input and output parameters and as such may include PII information passing through\n * the API. As such it is recommended that this level of tracing should not be enabled\n * in a production environment.\n */\n verbose: DiagLogFunction;\n}\n\n/**\n * Defines the available internal logging levels for the diagnostic logger, the numeric values\n * of the levels are defined to match the original values from the initial LogLevel to avoid\n * compatibility/migration issues for any implementation that assume the numeric ordering.\n */\nexport enum DiagLogLevel {\n /** Diagnostic Logging level setting to disable all logging (except and forced logs) */\n NONE = 0,\n\n /** Identifies an error scenario */\n ERROR = 30,\n\n /** Identifies a warning scenario */\n WARN = 50,\n\n /** General informational log message */\n INFO = 60,\n\n /** General debug log message */\n DEBUG = 70,\n\n /**\n * Detailed trace level logging should only be used for development, should only be set\n * in a development environment.\n */\n VERBOSE = 80,\n\n /** Used to set the logging level to include all logging */\n ALL = 9999,\n}\n\n/**\n * Defines options for ComponentLogger\n *\n * @since 1.0.0\n */\nexport interface ComponentLoggerOptions {\n namespace: string;\n}\n\n/**\n * @since 1.4.1\n */\nexport interface DiagLoggerOptions {\n /**\n * The {@link DiagLogLevel} used to filter logs sent to the logger.\n *\n * @defaultValue DiagLogLevel.INFO\n */\n logLevel?: DiagLogLevel;\n\n /**\n * Setting this value to `true` will suppress the warning message normally emitted when registering a logger when another logger is already registered.\n */\n suppressOverrideMessage?: boolean;\n}\n\nexport interface DiagLoggerApi {\n /**\n * Set the global DiagLogger and DiagLogLevel.\n * If a global diag logger is already set, this will override it.\n *\n * @param logger - The {@link DiagLogger} instance to set as the default logger.\n * @param options - A {@link DiagLoggerOptions} object. If not provided, default values will be set.\n * @returns `true` if the logger was successfully registered, else `false`\n */\n setLogger(logger: DiagLogger, options?: DiagLoggerOptions): boolean;\n\n /**\n *\n * @param logger - The {@link DiagLogger} instance to set as the default logger.\n * @param logLevel - The {@link DiagLogLevel} used to filter logs sent to the logger. If not provided it will default to {@link DiagLogLevel.INFO}.\n * @returns `true` if the logger was successfully registered, else `false`\n */\n setLogger(logger: DiagLogger, logLevel?: DiagLogLevel): boolean;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { getGlobal } from '../internal/global-utils';\nimport type { ComponentLoggerOptions, DiagLogger } from './types';\n\n/**\n * Component Logger which is meant to be used as part of any component which\n * will add automatically additional namespace in front of the log message.\n * It will then forward all message to global diag logger\n * @example\n * const cLogger = diag.createComponentLogger({ namespace: '@opentelemetry/instrumentation-http' });\n * cLogger.debug('test');\n * // @opentelemetry/instrumentation-http test\n */\nexport class DiagComponentLogger implements DiagLogger {\n private _namespace: string;\n\n constructor(props: ComponentLoggerOptions) {\n this._namespace = props.namespace || 'DiagComponentLogger';\n }\n\n public debug(...args: unknown[]): void {\n return logProxy('debug', this._namespace, args);\n }\n\n public error(...args: unknown[]): void {\n return logProxy('error', this._namespace, args);\n }\n\n public info(...args: unknown[]): void {\n return logProxy('info', this._namespace, args);\n }\n\n public warn(...args: unknown[]): void {\n return logProxy('warn', this._namespace, args);\n }\n\n public verbose(...args: unknown[]): void {\n return logProxy('verbose', this._namespace, args);\n }\n}\n\nfunction logProxy(\n funcName: keyof DiagLogger,\n namespace: string,\n args: unknown[]\n): void {\n const logger = getGlobal('diag');\n // shortcut if logger not set\n if (!logger) {\n return;\n }\n\n return logger[funcName](namespace, ...args);\n}\n","import type { IncomingMessage } from 'http'\nimport type { ParsedUrlQuery } from 'querystring'\nimport type { UrlWithParsedQuery } from 'url'\nimport type { BaseNextRequest } from './base-http'\nimport type { CloneableBody } from './body-streams'\nimport type { RouteMatch } from './route-matches/route-match'\nimport type { NEXT_RSC_UNION_QUERY } from '../client/components/app-router-headers'\nimport type {\n ResponseCacheEntry,\n ServerComponentsHmrCache,\n} from './response-cache'\nimport type { PagesDevOverlayBridgeType } from '../next-devtools/userspace/pages/pages-dev-overlay-setup'\nimport type { OpaqueFallbackRouteParams } from './request/fallback-params'\nimport type { IncrementalCache } from './lib/incremental-cache'\n\n// FIXME: (wyattjoh) this is a temporary solution to allow us to pass data between bundled modules\nexport const NEXT_REQUEST_META = Symbol.for('NextInternalRequestMeta')\n\nexport type NextIncomingMessage = (BaseNextRequest | IncomingMessage) & {\n [NEXT_REQUEST_META]?: RequestMeta\n}\n\n/**\n * The callback function to call when a response cache entry was generated or\n * looked up in the cache. When it returns true, the server assumes that the\n * handler has already responded to the request and will not do so itself.\n */\nexport type OnCacheEntryHandler = (\n /**\n * The response cache entry that was generated or looked up in the cache.\n */\n cacheEntry: ResponseCacheEntry,\n\n /**\n * The request metadata.\n */\n requestMeta: {\n /**\n * The URL that was used to make the request.\n */\n url: string | undefined\n }\n) => Promise<boolean | void> | boolean | void\n\nexport interface RequestMeta {\n /**\n * The query that was used to make the request.\n */\n initQuery?: ParsedUrlQuery\n\n /**\n * The URL that was used to make the request.\n */\n initURL?: string\n\n /**\n * The protocol that was used to make the request.\n */\n initProtocol?: string\n\n /**\n * The body that was read from the request. This is used to allow the body to\n * be read multiple times.\n */\n clonableBody?: CloneableBody\n\n /**\n * True when the request matched a locale domain that was configured in the\n * next.config.js file.\n */\n isLocaleDomain?: boolean\n\n /**\n * True when the request had locale information stripped from the pathname\n * part of the URL.\n */\n didStripLocale?: boolean\n\n /**\n * If the request had it's URL rewritten, this is the URL it was rewritten to.\n */\n rewroteURL?: string\n\n /**\n * The cookies that were added by middleware and were added to the response.\n */\n middlewareCookie?: string[]\n\n /**\n * The match on the request for a given route.\n */\n match?: RouteMatch\n\n /**\n * The incremental cache to use for the request.\n */\n incrementalCache?: IncrementalCache\n\n /**\n * The server components HMR cache, only for dev.\n */\n serverComponentsHmrCache?: ServerComponentsHmrCache\n\n /**\n * Equals the segment path that was used for the prefetch RSC request.\n */\n segmentPrefetchRSCRequest?: string\n\n /**\n * True when the request is for the prefetch flight data.\n */\n isPrefetchRSCRequest?: true\n\n /**\n * True when the request is for the flight data.\n */\n isRSCRequest?: true\n\n /**\n * A search param set by the Next.js client when performing RSC requests.\n * Because some CDNs do not vary their cache entries on our custom headers,\n * this search param represents a hash of the header values. For any cached\n * RSC request, we should verify that the hash matches before responding.\n * Otherwise this can lead to cache poisoning.\n * TODO: Consider not using custom request headers at all, and instead encode\n * everything into the search param.\n */\n cacheBustingSearchParam?: string\n\n /**\n * True when the request is for the `/_next/data` route using the pages\n * router.\n */\n isNextDataReq?: true\n\n /**\n * Postponed state to use for resumption. If present it's assumed that the\n * request is for a page that has postponed (there are no guarantees that the\n * page actually has postponed though as it would incur an additional cache\n * lookup).\n */\n postponed?: string\n\n /**\n * If provided, this will be called when a response cache entry was generated\n * or looked up in the cache.\n *\n * @deprecated Use `onCacheEntryV2` instead.\n */\n onCacheEntry?: OnCacheEntryHandler\n\n /**\n * If provided, this will be called when a response cache entry was generated\n * or looked up in the cache.\n */\n onCacheEntryV2?: OnCacheEntryHandler\n\n /**\n * The previous revalidate before rendering 404 page for notFound: true\n */\n notFoundRevalidate?: number | false\n\n /**\n * In development, the original source page that returned a 404.\n */\n developmentNotFoundSourcePage?: string\n\n /**\n * The path we routed to and should be invoked\n */\n invokePath?: string\n\n /**\n * The specific page output we should be matching\n */\n invokeOutput?: string\n\n /**\n * The status we are invoking the request with from routing\n */\n invokeStatus?: number\n\n /**\n * The routing error we are invoking with\n */\n invokeError?: Error\n\n /**\n * The query parsed for the invocation\n */\n invokeQuery?: Record<string, undefined | string | string[]>\n\n /**\n * Whether the request is a middleware invocation\n */\n middlewareInvoke?: boolean\n\n /**\n * Whether the request should render the fallback shell or not.\n */\n renderFallbackShell?: boolean\n\n /**\n * Whether the request is for the custom error page.\n */\n customErrorRender?: true\n\n /**\n * Whether to bubble up the NoFallbackError to the caller when a 404 is\n * returned.\n */\n bubbleNoFallback?: true\n\n /**\n * True when the request had locale information inferred from the default\n * locale.\n */\n localeInferredFromDefault?: true\n\n /**\n * The locale that was inferred or explicitly set for the request.\n */\n locale?: string\n\n /**\n * The default locale that was inferred or explicitly set for the request.\n */\n defaultLocale?: string\n\n /**\n * The relative project dir the server is running in from project root\n */\n relativeProjectDir?: string\n\n /**\n * The dist directory the server is currently using\n */\n distDir?: string\n\n /**\n * The query after resolving routes\n */\n query?: ParsedUrlQuery\n\n /**\n * The params after resolving routes\n */\n params?: ParsedUrlQuery\n\n /**\n * ErrorOverlay component to use in development for pages router\n */\n PagesErrorDebug?: PagesDevOverlayBridgeType\n\n /**\n * Whether server is in minimal mode (this will be replaced with more\n * specific flags in future)\n */\n minimalMode?: boolean\n\n /**\n * DEV only: The fallback params that should be used when validating prerenders during dev\n */\n devFallbackParams?: OpaqueFallbackRouteParams\n\n /**\n * DEV only: Request timings in process.hrtime.bigint()\n */\n devRequestTimingStart?: bigint\n devRequestTimingMiddlewareStart?: bigint\n devRequestTimingMiddlewareEnd?: bigint\n devRequestTimingInternalsEnd?: bigint\n\n /**\n * DEV only: The duration of getStaticPaths/generateStaticParams in process.hrtime.bigint()\n */\n devGenerateStaticParamsDuration?: bigint\n}\n\n/**\n * Gets the request metadata. If no key is provided, the entire metadata object\n * is returned.\n *\n * @param req the request to get the metadata from\n * @param key the key to get from the metadata (optional)\n * @returns the value for the key or the entire metadata object\n */\nexport function getRequestMeta(\n req: NextIncomingMessage,\n key?: undefined\n): RequestMeta\nexport function getRequestMeta<K extends keyof RequestMeta>(\n req: NextIncomingMessage,\n key: K\n): RequestMeta[K]\nexport function getRequestMeta<K extends keyof RequestMeta>(\n req: NextIncomingMessage,\n key?: K\n): RequestMeta | RequestMeta[K] {\n const meta = req[NEXT_REQUEST_META] || {}\n return typeof key === 'string' ? meta[key] : meta\n}\n\n/**\n * Sets the request metadata.\n *\n * @param req the request to set the metadata on\n * @param meta the metadata to set\n * @returns the mutated request metadata\n */\nexport function setRequestMeta(req: NextIncomingMessage, meta: RequestMeta) {\n req[NEXT_REQUEST_META] = meta\n return meta\n}\n\n/**\n * Adds a value to the request metadata.\n *\n * @param request the request to mutate\n * @param key the key to set\n * @param value the value to set\n * @returns the mutated request metadata\n */\nexport function addRequestMeta<K extends keyof RequestMeta>(\n request: NextIncomingMessage,\n key: K,\n value: RequestMeta[K]\n) {\n const meta = getRequestMeta(request)\n meta[key] = value\n return setRequestMeta(request, meta)\n}\n\n/**\n * Removes a key from the request metadata.\n *\n * @param request the request to mutate\n * @param key the key to remove\n * @returns the mutated request metadata\n */\nexport function removeRequestMeta<K extends keyof RequestMeta>(\n request: NextIncomingMessage,\n key: K\n) {\n const meta = getRequestMeta(request)\n delete meta[key]\n return setRequestMeta(request, meta)\n}\n\ntype NextQueryMetadata = {\n /**\n * The `_rsc` query parameter used for cache busting to ensure that the RSC\n * requests do not get cached by the browser explicitly.\n */\n [NEXT_RSC_UNION_QUERY]?: string\n}\n\nexport type NextParsedUrlQuery = ParsedUrlQuery & NextQueryMetadata\n\nexport interface NextUrlWithParsedQuery extends UrlWithParsedQuery {\n query: NextParsedUrlQuery\n}\n","import React from 'react'\nimport Head from '../shared/lib/head'\nimport type { NextPageContext } from '../shared/lib/utils'\n\nconst statusCodes: { [code: number]: string } = {\n 400: 'Bad Request',\n 404: 'This page could not be found',\n 405: 'Method Not Allowed',\n 500: 'Internal Server Error',\n}\n\nexport type ErrorProps = {\n statusCode: number\n hostname?: string\n title?: string\n withDarkMode?: boolean\n}\n\nfunction _getInitialProps({\n req,\n res,\n err,\n}: NextPageContext): Promise<ErrorProps> | ErrorProps {\n const statusCode =\n res && res.statusCode ? res.statusCode : err ? err.statusCode! : 404\n\n let hostname\n\n if (typeof window !== 'undefined') {\n hostname = window.location.hostname\n } else if (req) {\n const { getRequestMeta } =\n require('../server/request-meta') as typeof import('../server/request-meta')\n\n const initUrl = getRequestMeta(req, 'initURL')\n if (initUrl) {\n const url = new URL(initUrl)\n hostname = url.hostname\n }\n }\n\n return { statusCode, hostname }\n}\n\nconst styles: Record<string, React.CSSProperties> = {\n error: {\n // https://github.com/sindresorhus/modern-normalize/blob/main/modern-normalize.css#L38-L52\n fontFamily:\n 'system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"',\n height: '100vh',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n },\n desc: {\n lineHeight: '48px',\n },\n h1: {\n display: 'inline-block',\n margin: '0 20px 0 0',\n paddingRight: 23,\n fontSize: 24,\n fontWeight: 500,\n verticalAlign: 'top',\n },\n h2: {\n fontSize: 14,\n fontWeight: 400,\n lineHeight: '28px',\n },\n wrap: {\n display: 'inline-block',\n },\n}\n\n/**\n * `Error` component used for handling errors.\n */\nexport default class Error<P = {}> extends React.Component<P & ErrorProps> {\n static displayName = 'ErrorPage'\n\n static getInitialProps = _getInitialProps\n static origGetInitialProps = _getInitialProps\n\n render() {\n const { statusCode, withDarkMode = true } = this.props\n const title =\n this.props.title ||\n statusCodes[statusCode] ||\n 'An unexpected error has occurred'\n\n return (\n <div style={styles.error}>\n <Head>\n <title>\n {statusCode\n ? `${statusCode}: ${title}`\n : 'Application error: a client-side exception has occurred'}\n \n \n
\n \n\n {statusCode ? (\n

\n {statusCode}\n

\n ) : null}\n
\n

\n {this.props.title || statusCode ? (\n title\n ) : (\n <>\n Application error: a client-side exception has occurred{' '}\n {Boolean(this.props.hostname) && (\n <>while loading {this.props.hostname}\n )}{' '}\n (see the browser console for more information)\n \n )}\n .\n

\n
\n
\n
\n )\n }\n}\n","module.exports = require('./dist/pages/_error')\n","'use client';\n\nimport * as Sentry from '@sentry/nextjs';\nimport Error from 'next/error';\nimport { useEffect } from 'react';\n\nexport default function GlobalError({\n error,\n}: {\n error: Error & { digest?: string };\n}) {\n useEffect(() => {\n Sentry.captureException(error);\n }, [error]);\n\n return (\n \n \n {/* This is the default Next.js error component but it doesn't allow omitting the statusCode */}\n \n \n \n );\n}\n"],"names":["process","env","NEXT_RUNTIME","module","exports","require","__NEXT_EXPERIMENTAL_REACT","NODE_ENV","TURBOPACK","vendored","ReactJsxRuntime","React","AppRouterContext","ReactServerDOMTurbopackClient","ReactDOM","HooksClientContext","ServerInsertedHtml","warnOnce","_","warnings","Set","msg","has","console","warn","add","SideEffect","isServer","window","useClientOnlyLayoutEffect","useLayoutEffect","useClientOnlyEffect","useEffect","props","headManager","reduceComponentsToState","emitChange","mountedInstances","headElements","Children","toArray","Array","from","filter","Boolean","updateHead","children","delete","_pendingUpdate","HeadManagerContext","defaultHead","head","meta","charSet","name","content","onlyReactElement","list","child","type","Fragment","concat","reduce","fragmentList","fragmentChild","METATYPES","unique","keys","tags","metaTypes","metaCategories","h","isUnique","hasKey","key","indexOf","slice","i","len","length","metatype","hasOwnProperty","category","categories","reduceComponents","headChildrenElements","reverse","map","c","srcMessage","cloneElement","Head","useContext","Effect","NEXT_REQUEST_META","addRequestMeta","getRequestMeta","removeRequestMeta","setRequestMeta","Symbol","for","req","request","value","Error","statusCodes","_getInitialProps","res","err","statusCode","hostname","location","initUrl","url","URL","styles","error","fontFamily","height","textAlign","display","flexDirection","alignItems","justifyContent","desc","lineHeight","h1","margin","paddingRight","fontSize","fontWeight","verticalAlign","h2","wrap","Component","displayName","getInitialProps","origGetInitialProps","render","withDarkMode","title","div","style","dangerouslySetInnerHTML","__html","className"],"mappings":"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","ignoreList":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]}}] + {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/module.compiled.js","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/ssr/react.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/contexts/app-router-context.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/ssr/react-server-dom-turbopack-client.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/ssr/react-dom.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/contexts/hooks-client-context.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/contexts/server-inserted-html.ts","turbopack:///[project]/node_modules/.pnpm/@fastify+otel@0.18.0_@opentelemetry+api@1.9.1/node_modules/@fastify/otel/package.json","../../../../node_modules/.pnpm/%40swc%2Bhelpers%400.5.15/node_modules/%40swc/helpers/cjs/_interop_require_wildcard.cjs","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/utils/warn-once.ts","../../../../node_modules/.pnpm/%40swc%2Bhelpers%400.5.15/node_modules/%40swc/helpers/cjs/_interop_require_default.cjs","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/side-effect.tsx","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/route-modules/app-page/vendored/contexts/head-manager-context.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/shared/lib/head.tsx","../../../../node_modules/.pnpm/%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/api/src/internal/semver.ts","../../../../node_modules/.pnpm/%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/api/src/version.ts","../../../../node_modules/.pnpm/%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/api/src/diag/internal/logLevelLogger.ts","../../../../node_modules/.pnpm/%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/api/src/internal/global-utils.ts","../../../../node_modules/.pnpm/%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/api/src/api/diag.ts","../../../../node_modules/.pnpm/%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/api/src/diag-api.ts","../../../../node_modules/.pnpm/%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/api/src/diag/types.ts","../../../../node_modules/.pnpm/%40opentelemetry%2Bapi%401.9.1/node_modules/%40opentelemetry/api/src/diag/ComponentLogger.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/server/request-meta.ts","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/src/pages/_error.tsx","../../../../node_modules/.pnpm/next%4016.1.6_%40babel%2Bcore%407.29.0_%40opentelemetry%2Bapi%401.9.1_react-dom%4019.2.4_react%4019.2.4__react%4019.2.4_sass%401.98.0/node_modules/next/error.js","../../../../app/global-error.tsx"],"sourcesContent":["if (process.env.NEXT_RUNTIME === 'edge') {\n module.exports = require('next/dist/server/route-modules/app-page/module.js')\n} else {\n if (process.env.__NEXT_EXPERIMENTAL_REACT) {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.prod.js')\n }\n }\n } else {\n if (process.env.NODE_ENV === 'development') {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.dev.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.dev.js')\n }\n } else {\n if (process.env.TURBOPACK) {\n module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.prod.js')\n } else {\n module.exports = require('next/dist/compiled/next-server/app-page.runtime.prod.js')\n }\n }\n }\n}\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactJsxRuntime\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.React\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].AppRouterContext\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactServerDOMTurbopackClient\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['react-ssr']!.ReactDOM\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].HooksClientContext\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].ServerInsertedHtml\n","{\"name\":\"@fastify/otel\",\"version\":\"0.18.0\",\"description\":\"Official Fastify OpenTelemetry Instrumentation\",\"main\":\"index.js\",\"type\":\"commonjs\",\"types\":\"types/index.d.ts\",\"scripts\":{\"lint\":\"eslint\",\"lint:fix\":\"eslint --fix\",\"test\":\"npm run test:all && npm run test:typescript\",\"test:unit\":\"c8 --100 node --test\",\"test:all\":\"npm run test:v4 && npm run test:v5\",\"test:v4\":\"cross-env FASTIFY_VERSION=fastifyv4 npm run test:unit\",\"test:v5\":\"cross-env FASTIFY_VERSION=fastify npm run test:unit\",\"test:coverage\":\"c8 node --test && c8 report --reporter=html\",\"test:typescript\":\"tsd\"},\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/fastify/otel.git\"},\"keywords\":[\"plugin\",\"helper\",\"fastify\",\"instrumentation\",\"otel\",\"opentelemetry\"],\"author\":\"Carlos Fuentes - @metcoder95 (https://metcoder.dev)\",\"license\":\"MIT\",\"bugs\":{\"url\":\"https://github.com/fastify/otel/issues\"},\"homepage\":\"https://github.com/fastify/otel#readme\",\"funding\":[{\"type\":\"github\",\"url\":\"https://github.com/sponsors/fastify\"},{\"type\":\"opencollective\",\"url\":\"https://opencollective.com/fastify\"}],\"devDependencies\":{\"@fastify/type-provider-typebox\":\"^6.1.0\",\"@opentelemetry/context-async-hooks\":\"^2.0.0\",\"@opentelemetry/contrib-test-utils\":\"^0.59.0\",\"@opentelemetry/instrumentation-http\":\"^0.212.0\",\"@opentelemetry/propagator-jaeger\":\"^2.0.0\",\"@opentelemetry/sdk-trace-base\":\"^2.0.0\",\"@opentelemetry/sdk-trace-node\":\"^2.2.0\",\"@types/node\":\"^25.0.3\",\"c8\":\"^11.0.0\",\"cross-env\":\"^10.0.0\",\"eslint\":\"^9.16.0\",\"fastify\":\"^5.1.0\",\"fastify-plugin\":\"^5.1.0\",\"fastifyv4\":\"npm:fastify@^4.0.0\",\"neostandard\":\"^0.12.0\",\"tsd\":\"^0.33.0\"},\"dependencies\":{\"@opentelemetry/core\":\"^2.0.0\",\"@opentelemetry/instrumentation\":\"^0.212.0\",\"@opentelemetry/semantic-conventions\":\"^1.28.0\",\"minimatch\":\"^10.2.4\"},\"peerDependencies\":{\"@opentelemetry/api\":\"^1.9.0\"},\"tsd\":{\"directory\":\"types\"}}","\"use strict\";\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n\n return (_getRequireWildcardCache = function(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\nfunction _interop_require_wildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) return obj;\n if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") return { default: obj };\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) return cache.get(obj);\n\n var newObj = { __proto__: null };\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);\n else newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n\n if (cache) cache.set(obj, newObj);\n\n return newObj;\n}\nexports._ = _interop_require_wildcard;\n","let warnOnce = (_: string) => {}\nif (process.env.NODE_ENV !== 'production') {\n const warnings = new Set()\n warnOnce = (msg: string) => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\nexport { warnOnce }\n","\"use strict\";\n\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n}\nexports._ = _interop_require_default;\n","import type React from 'react'\nimport { Children, useEffect, useLayoutEffect, type JSX } from 'react'\n\ntype State = JSX.Element[] | undefined\n\nexport type SideEffectProps = {\n reduceComponentsToState: (components: Array>) => State\n handleStateChange?: (state: State) => void\n headManager: any\n children: React.ReactNode\n}\n\nconst isServer = typeof window === 'undefined'\nconst useClientOnlyLayoutEffect = isServer ? () => {} : useLayoutEffect\nconst useClientOnlyEffect = isServer ? () => {} : useEffect\n\nexport default function SideEffect(props: SideEffectProps) {\n const { headManager, reduceComponentsToState } = props\n\n function emitChange() {\n if (headManager && headManager.mountedInstances) {\n const headElements = Children.toArray(\n Array.from(headManager.mountedInstances as Set).filter(\n Boolean\n )\n ) as React.ReactElement[]\n headManager.updateHead(reduceComponentsToState(headElements))\n }\n }\n\n if (isServer) {\n headManager?.mountedInstances?.add(props.children)\n emitChange()\n }\n\n useClientOnlyLayoutEffect(() => {\n headManager?.mountedInstances?.add(props.children)\n return () => {\n headManager?.mountedInstances?.delete(props.children)\n }\n })\n\n // We need to call `updateHead` method whenever the `SideEffect` is trigger in all\n // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s\n // being rendered, we only trigger the method from the last one.\n // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate`\n // singleton in the layout effect pass, and actually trigger it in the effect pass.\n useClientOnlyLayoutEffect(() => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n return () => {\n if (headManager) {\n headManager._pendingUpdate = emitChange\n }\n }\n })\n\n useClientOnlyEffect(() => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n return () => {\n if (headManager && headManager._pendingUpdate) {\n headManager._pendingUpdate()\n headManager._pendingUpdate = null\n }\n }\n })\n\n return null\n}\n","module.exports = (\n require('../../module.compiled') as typeof import('../../module.compiled')\n).vendored['contexts'].HeadManagerContext\n","'use client'\n\nimport React, { useContext, type JSX } from 'react'\nimport Effect from './side-effect'\nimport { HeadManagerContext } from './head-manager-context.shared-runtime'\nimport { warnOnce } from './utils/warn-once'\n\nexport function defaultHead(): JSX.Element[] {\n const head = [\n ,\n ,\n ]\n return head\n}\n\nfunction onlyReactElement(\n list: Array>,\n child: React.ReactElement | number | string\n): Array> {\n // React children can be \"string\" or \"number\" in this case we ignore them for backwards compat\n if (typeof child === 'string' || typeof child === 'number') {\n return list\n }\n // Adds support for React.Fragment\n if (child.type === React.Fragment) {\n return list.concat(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n React.Children.toArray(child.props.children).reduce(\n // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]\n (\n fragmentList: Array>,\n fragmentChild: React.ReactElement | number | string\n ): Array> => {\n if (\n typeof fragmentChild === 'string' ||\n typeof fragmentChild === 'number'\n ) {\n return fragmentList\n }\n return fragmentList.concat(fragmentChild)\n },\n []\n )\n )\n }\n return list.concat(child)\n}\n\nconst METATYPES = ['name', 'httpEquiv', 'charSet', 'itemProp']\n\n/*\n returns a function for filtering head child elements\n which shouldn't be duplicated, like \n Also adds support for deduplicated `key` properties\n*/\nfunction unique() {\n const keys = new Set()\n const tags = new Set()\n const metaTypes = new Set()\n const metaCategories: { [metatype: string]: Set<string> } = {}\n\n return (h: React.ReactElement<any>) => {\n let isUnique = true\n let hasKey = false\n\n if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) {\n hasKey = true\n const key = h.key.slice(h.key.indexOf('$') + 1)\n if (keys.has(key)) {\n isUnique = false\n } else {\n keys.add(key)\n }\n }\n\n // eslint-disable-next-line default-case\n switch (h.type) {\n case 'title':\n case 'base':\n if (tags.has(h.type)) {\n isUnique = false\n } else {\n tags.add(h.type)\n }\n break\n case 'meta':\n for (let i = 0, len = METATYPES.length; i < len; i++) {\n const metatype = METATYPES[i]\n if (!h.props.hasOwnProperty(metatype)) continue\n\n if (metatype === 'charSet') {\n if (metaTypes.has(metatype)) {\n isUnique = false\n } else {\n metaTypes.add(metatype)\n }\n } else {\n const category = h.props[metatype]\n const categories = metaCategories[metatype] || new Set()\n if ((metatype !== 'name' || !hasKey) && categories.has(category)) {\n isUnique = false\n } else {\n categories.add(category)\n metaCategories[metatype] = categories\n }\n }\n }\n break\n }\n\n return isUnique\n }\n}\n\n/**\n *\n * @param headChildrenElements List of children of <Head>\n */\nfunction reduceComponents(\n headChildrenElements: Array<React.ReactElement<any>>\n) {\n return headChildrenElements\n .reduce(onlyReactElement, [])\n .reverse()\n .concat(defaultHead().reverse())\n .filter(unique())\n .reverse()\n .map((c: React.ReactElement<any>, i: number) => {\n const key = c.key || i\n if (process.env.NODE_ENV === 'development') {\n // omit JSON-LD structured data snippets from the warning\n if (c.type === 'script' && c.props['type'] !== 'application/ld+json') {\n const srcMessage = c.props['src']\n ? `<script> tag with src=\"${c.props['src']}\"`\n : `inline <script>`\n warnOnce(\n `Do not add <script> tags using next/head (see ${srcMessage}). Use next/script instead. \\nSee more info here: https://nextjs.org/docs/messages/no-script-tags-in-head-component`\n )\n } else if (c.type === 'link' && c.props['rel'] === 'stylesheet') {\n warnOnce(\n `Do not add stylesheets using next/head (see <link rel=\"stylesheet\"> tag with href=\"${c.props['href']}\"). Use Document instead. \\nSee more info here: https://nextjs.org/docs/messages/no-stylesheets-in-head-component`\n )\n }\n }\n return React.cloneElement(c, { key })\n })\n}\n\n/**\n * This component injects elements to `<head>` of your page.\n * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once.\n */\nfunction Head({ children }: { children: React.ReactNode }) {\n const headManager = useContext(HeadManagerContext)\n return (\n <Effect\n reduceComponentsToState={reduceComponents}\n headManager={headManager}\n >\n {children}\n </Effect>\n )\n}\n\nexport default Head\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { VERSION } from '../version';\n\nconst re = /^(\\d+)\\.(\\d+)\\.(\\d+)(-(.+))?$/;\n\n/**\n * Create a function to test an API version to see if it is compatible with the provided ownVersion.\n *\n * The returned function has the following semantics:\n * - Exact match is always compatible\n * - Major versions must match exactly\n * - 1.x package cannot use global 2.x package\n * - 2.x package cannot use global 1.x package\n * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API\n * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects\n * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3\n * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor\n * - Patch and build tag differences are not considered at this time\n *\n * @param ownVersion version which should be checked against\n */\nexport function _makeCompatibilityCheck(\n ownVersion: string\n): (globalVersion: string) => boolean {\n const acceptedVersions = new Set<string>([ownVersion]);\n const rejectedVersions = new Set<string>();\n\n const myVersionMatch = ownVersion.match(re);\n if (!myVersionMatch) {\n // we cannot guarantee compatibility so we always return noop\n return () => false;\n }\n\n const ownVersionParsed = {\n major: +myVersionMatch[1],\n minor: +myVersionMatch[2],\n patch: +myVersionMatch[3],\n prerelease: myVersionMatch[4],\n };\n\n // if ownVersion has a prerelease tag, versions must match exactly\n if (ownVersionParsed.prerelease != null) {\n return function isExactmatch(globalVersion: string): boolean {\n return globalVersion === ownVersion;\n };\n }\n\n function _reject(v: string) {\n rejectedVersions.add(v);\n return false;\n }\n\n function _accept(v: string) {\n acceptedVersions.add(v);\n return true;\n }\n\n return function isCompatible(globalVersion: string): boolean {\n if (acceptedVersions.has(globalVersion)) {\n return true;\n }\n\n if (rejectedVersions.has(globalVersion)) {\n return false;\n }\n\n const globalVersionMatch = globalVersion.match(re);\n if (!globalVersionMatch) {\n // cannot parse other version\n // we cannot guarantee compatibility so we always noop\n return _reject(globalVersion);\n }\n\n const globalVersionParsed = {\n major: +globalVersionMatch[1],\n minor: +globalVersionMatch[2],\n patch: +globalVersionMatch[3],\n prerelease: globalVersionMatch[4],\n };\n\n // if globalVersion has a prerelease tag, versions must match exactly\n if (globalVersionParsed.prerelease != null) {\n return _reject(globalVersion);\n }\n\n // major versions must match\n if (ownVersionParsed.major !== globalVersionParsed.major) {\n return _reject(globalVersion);\n }\n\n if (ownVersionParsed.major === 0) {\n if (\n ownVersionParsed.minor === globalVersionParsed.minor &&\n ownVersionParsed.patch <= globalVersionParsed.patch\n ) {\n return _accept(globalVersion);\n }\n\n return _reject(globalVersion);\n }\n\n if (ownVersionParsed.minor <= globalVersionParsed.minor) {\n return _accept(globalVersion);\n }\n\n return _reject(globalVersion);\n };\n}\n\n/**\n * Test an API version to see if it is compatible with this API.\n *\n * - Exact match is always compatible\n * - Major versions must match exactly\n * - 1.x package cannot use global 2.x package\n * - 2.x package cannot use global 1.x package\n * - The minor version of the API module requesting access to the global API must be less than or equal to the minor version of this API\n * - 1.3 package may use 1.4 global because the later global contains all functions 1.3 expects\n * - 1.4 package may NOT use 1.3 global because it may try to call functions which don't exist on 1.3\n * - If the major version is 0, the minor version is treated as the major and the patch is treated as the minor\n * - Patch and build tag differences are not considered at this time\n *\n * @param version version of the API requesting an instance of the global API\n */\nexport const isCompatible = _makeCompatibilityCheck(VERSION);\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const VERSION = '1.9.1';\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { DiagLogFunction, DiagLogger } from '../types';\nimport { DiagLogLevel } from '../types';\n\nexport function createLogLevelDiagLogger(\n maxLevel: DiagLogLevel,\n logger: DiagLogger\n): DiagLogger {\n if (maxLevel < DiagLogLevel.NONE) {\n maxLevel = DiagLogLevel.NONE;\n } else if (maxLevel > DiagLogLevel.ALL) {\n maxLevel = DiagLogLevel.ALL;\n }\n\n // In case the logger is null or undefined\n logger = logger || {};\n\n function _filterFunc(\n funcName: keyof DiagLogger,\n theLevel: DiagLogLevel\n ): DiagLogFunction {\n const theFunc = logger[funcName];\n\n if (typeof theFunc === 'function' && maxLevel >= theLevel) {\n return theFunc.bind(logger);\n }\n return function () {};\n }\n\n return {\n error: _filterFunc('error', DiagLogLevel.ERROR),\n warn: _filterFunc('warn', DiagLogLevel.WARN),\n info: _filterFunc('info', DiagLogLevel.INFO),\n debug: _filterFunc('debug', DiagLogLevel.DEBUG),\n verbose: _filterFunc('verbose', DiagLogLevel.VERBOSE),\n };\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { MeterProvider } from '../metrics/MeterProvider';\nimport type { ContextManager } from '../context/types';\nimport type { DiagLogger } from '../diag/types';\nimport type { TextMapPropagator } from '../propagation/TextMapPropagator';\nimport type { TracerProvider } from '../trace/tracer_provider';\nimport { VERSION } from '../version';\nimport { isCompatible } from './semver';\n\nconst major = VERSION.split('.')[0];\nconst GLOBAL_OPENTELEMETRY_API_KEY = Symbol.for(\n `opentelemetry.js.api.${major}`\n);\n\ndeclare const self: unknown;\ndeclare const window: unknown;\ndeclare const global: unknown;\n\nconst _global = (\n typeof globalThis === 'object'\n ? globalThis\n : typeof self === 'object'\n ? self\n : typeof window === 'object'\n ? window\n : typeof global === 'object'\n ? global\n : {}\n) as OTelGlobal;\n\nexport function registerGlobal<Type extends keyof OTelGlobalAPI>(\n type: Type,\n instance: OTelGlobalAPI[Type],\n diag: DiagLogger,\n allowOverride = false\n): boolean {\n const api = (_global[GLOBAL_OPENTELEMETRY_API_KEY] = _global[\n GLOBAL_OPENTELEMETRY_API_KEY\n ] ?? {\n version: VERSION,\n });\n\n if (!allowOverride && api[type]) {\n // already registered an API of this type\n const err = new Error(\n `@opentelemetry/api: Attempted duplicate registration of API: ${type}`\n );\n diag.error(err.stack || err.message);\n return false;\n }\n\n if (api.version !== VERSION) {\n // All registered APIs must be of the same version exactly\n const err = new Error(\n `@opentelemetry/api: Registration of version v${api.version} for ${type} does not match previously registered API v${VERSION}`\n );\n diag.error(err.stack || err.message);\n return false;\n }\n\n api[type] = instance;\n diag.debug(\n `@opentelemetry/api: Registered a global for ${type} v${VERSION}.`\n );\n\n return true;\n}\n\nexport function getGlobal<Type extends keyof OTelGlobalAPI>(\n type: Type\n): OTelGlobalAPI[Type] | undefined {\n const globalVersion = _global[GLOBAL_OPENTELEMETRY_API_KEY]?.version;\n if (!globalVersion || !isCompatible(globalVersion)) {\n return;\n }\n return _global[GLOBAL_OPENTELEMETRY_API_KEY]?.[type];\n}\n\nexport function unregisterGlobal(type: keyof OTelGlobalAPI, diag: DiagLogger) {\n diag.debug(\n `@opentelemetry/api: Unregistering a global for ${type} v${VERSION}.`\n );\n const api = _global[GLOBAL_OPENTELEMETRY_API_KEY];\n\n if (api) {\n delete api[type];\n }\n}\n\ntype OTelGlobal = {\n [GLOBAL_OPENTELEMETRY_API_KEY]?: OTelGlobalAPI;\n};\n\ntype OTelGlobalAPI = {\n version: string;\n\n diag?: DiagLogger;\n trace?: TracerProvider;\n context?: ContextManager;\n metrics?: MeterProvider;\n propagation?: TextMapPropagator;\n};\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { DiagComponentLogger } from '../diag/ComponentLogger';\nimport { createLogLevelDiagLogger } from '../diag/internal/logLevelLogger';\nimport type {\n ComponentLoggerOptions,\n DiagLogFunction,\n DiagLogger,\n DiagLoggerApi,\n} from '../diag/types';\nimport { DiagLogLevel } from '../diag/types';\nimport {\n getGlobal,\n registerGlobal,\n unregisterGlobal,\n} from '../internal/global-utils';\n\nconst API_NAME = 'diag';\n\n/**\n * Singleton object which represents the entry point to the OpenTelemetry internal\n * diagnostic API\n *\n * @since 1.0.0\n */\nexport class DiagAPI implements DiagLogger, DiagLoggerApi {\n private static _instance?: DiagAPI;\n\n /** Get the singleton instance of the DiagAPI API */\n public static instance(): DiagAPI {\n if (!this._instance) {\n this._instance = new DiagAPI();\n }\n\n return this._instance;\n }\n\n /**\n * Private internal constructor\n * @private\n */\n private constructor() {\n function _logProxy(funcName: keyof DiagLogger): DiagLogFunction {\n return function (...args) {\n const logger = getGlobal('diag');\n // shortcut if logger not set\n if (!logger) return;\n return logger[funcName](...args);\n };\n }\n\n // Using self local variable for minification purposes as 'this' cannot be minified\n const self = this;\n\n // DiagAPI specific functions\n\n const setLogger: DiagLoggerApi['setLogger'] = (\n logger,\n optionsOrLogLevel = { logLevel: DiagLogLevel.INFO }\n ) => {\n if (logger === self) {\n // There isn't much we can do here.\n // Logging to the console might break the user application.\n // Try to log to self. If a logger was previously registered it will receive the log.\n const err = new Error(\n 'Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation'\n );\n self.error(err.stack ?? err.message);\n return false;\n }\n\n if (typeof optionsOrLogLevel === 'number') {\n optionsOrLogLevel = {\n logLevel: optionsOrLogLevel,\n };\n }\n\n const oldLogger = getGlobal('diag');\n const newLogger = createLogLevelDiagLogger(\n optionsOrLogLevel.logLevel ?? DiagLogLevel.INFO,\n logger\n );\n // There already is an logger registered. We'll let it know before overwriting it.\n if (oldLogger && !optionsOrLogLevel.suppressOverrideMessage) {\n const stack = new Error().stack ?? '<failed to generate stacktrace>';\n oldLogger.warn(`Current logger will be overwritten from ${stack}`);\n newLogger.warn(\n `Current logger will overwrite one already registered from ${stack}`\n );\n }\n\n return registerGlobal('diag', newLogger, self, true);\n };\n\n self.setLogger = setLogger;\n\n self.disable = () => {\n unregisterGlobal(API_NAME, self);\n };\n\n self.createComponentLogger = (options: ComponentLoggerOptions) => {\n return new DiagComponentLogger(options);\n };\n\n self.verbose = _logProxy('verbose');\n self.debug = _logProxy('debug');\n self.info = _logProxy('info');\n self.warn = _logProxy('warn');\n self.error = _logProxy('error');\n }\n\n public setLogger!: DiagLoggerApi['setLogger'];\n /**\n *\n */\n public createComponentLogger!: (\n options: ComponentLoggerOptions\n ) => DiagLogger;\n\n // DiagLogger implementation\n public verbose!: DiagLogFunction;\n public debug!: DiagLogFunction;\n public info!: DiagLogFunction;\n public warn!: DiagLogFunction;\n public error!: DiagLogFunction;\n\n /**\n * Unregister the global logger and return to Noop\n */\n public disable!: () => void;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// Split module-level variable definition into separate files to allow\n// tree-shaking on each api instance.\nimport { DiagAPI } from './api/diag';\n/**\n * Entrypoint for Diag API.\n * Defines Diagnostic handler used for internal diagnostic logging operations.\n * The default provides a Noop DiagLogger implementation which may be changed via the\n * diag.setLogger(logger: DiagLogger) function.\n *\n * @since 1.0.0\n */\nexport const diag = DiagAPI.instance();\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * @since 1.0.0\n */\nexport type DiagLogFunction = (message: string, ...args: unknown[]) => void;\n\n/**\n * Defines an internal diagnostic logger interface which is used to log internal diagnostic\n * messages, you can set the default diagnostic logger via the {@link DiagAPI} setLogger function.\n * API provided implementations include :-\n * - a No-Op {@link createNoopDiagLogger}\n * - a {@link DiagLogLevel} filtering wrapper {@link createLogLevelDiagLogger}\n * - a general Console {@link DiagConsoleLogger} version.\n *\n * @since 1.0.0\n */\nexport interface DiagLogger {\n /** Log an error scenario that was not expected and caused the requested operation to fail. */\n error: DiagLogFunction;\n\n /**\n * Log a warning scenario to inform the developer of an issues that should be investigated.\n * The requested operation may or may not have succeeded or completed.\n */\n warn: DiagLogFunction;\n\n /**\n * Log a general informational message, this should not affect functionality.\n * This is also the default logging level so this should NOT be used for logging\n * debugging level information.\n */\n info: DiagLogFunction;\n\n /**\n * Log a general debug message that can be useful for identifying a failure.\n * Information logged at this level may include diagnostic details that would\n * help identify a failure scenario.\n * For example: Logging the order of execution of async operations.\n */\n debug: DiagLogFunction;\n\n /**\n * Log a detailed (verbose) trace level logging that can be used to identify failures\n * where debug level logging would be insufficient, this level of tracing can include\n * input and output parameters and as such may include PII information passing through\n * the API. As such it is recommended that this level of tracing should not be enabled\n * in a production environment.\n */\n verbose: DiagLogFunction;\n}\n\n/**\n * Defines the available internal logging levels for the diagnostic logger, the numeric values\n * of the levels are defined to match the original values from the initial LogLevel to avoid\n * compatibility/migration issues for any implementation that assume the numeric ordering.\n */\nexport enum DiagLogLevel {\n /** Diagnostic Logging level setting to disable all logging (except and forced logs) */\n NONE = 0,\n\n /** Identifies an error scenario */\n ERROR = 30,\n\n /** Identifies a warning scenario */\n WARN = 50,\n\n /** General informational log message */\n INFO = 60,\n\n /** General debug log message */\n DEBUG = 70,\n\n /**\n * Detailed trace level logging should only be used for development, should only be set\n * in a development environment.\n */\n VERBOSE = 80,\n\n /** Used to set the logging level to include all logging */\n ALL = 9999,\n}\n\n/**\n * Defines options for ComponentLogger\n *\n * @since 1.0.0\n */\nexport interface ComponentLoggerOptions {\n namespace: string;\n}\n\n/**\n * @since 1.4.1\n */\nexport interface DiagLoggerOptions {\n /**\n * The {@link DiagLogLevel} used to filter logs sent to the logger.\n *\n * @defaultValue DiagLogLevel.INFO\n */\n logLevel?: DiagLogLevel;\n\n /**\n * Setting this value to `true` will suppress the warning message normally emitted when registering a logger when another logger is already registered.\n */\n suppressOverrideMessage?: boolean;\n}\n\nexport interface DiagLoggerApi {\n /**\n * Set the global DiagLogger and DiagLogLevel.\n * If a global diag logger is already set, this will override it.\n *\n * @param logger - The {@link DiagLogger} instance to set as the default logger.\n * @param options - A {@link DiagLoggerOptions} object. If not provided, default values will be set.\n * @returns `true` if the logger was successfully registered, else `false`\n */\n setLogger(logger: DiagLogger, options?: DiagLoggerOptions): boolean;\n\n /**\n *\n * @param logger - The {@link DiagLogger} instance to set as the default logger.\n * @param logLevel - The {@link DiagLogLevel} used to filter logs sent to the logger. If not provided it will default to {@link DiagLogLevel.INFO}.\n * @returns `true` if the logger was successfully registered, else `false`\n */\n setLogger(logger: DiagLogger, logLevel?: DiagLogLevel): boolean;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { getGlobal } from '../internal/global-utils';\nimport type { ComponentLoggerOptions, DiagLogger } from './types';\n\n/**\n * Component Logger which is meant to be used as part of any component which\n * will add automatically additional namespace in front of the log message.\n * It will then forward all message to global diag logger\n * @example\n * const cLogger = diag.createComponentLogger({ namespace: '@opentelemetry/instrumentation-http' });\n * cLogger.debug('test');\n * // @opentelemetry/instrumentation-http test\n */\nexport class DiagComponentLogger implements DiagLogger {\n private _namespace: string;\n\n constructor(props: ComponentLoggerOptions) {\n this._namespace = props.namespace || 'DiagComponentLogger';\n }\n\n public debug(...args: unknown[]): void {\n return logProxy('debug', this._namespace, args);\n }\n\n public error(...args: unknown[]): void {\n return logProxy('error', this._namespace, args);\n }\n\n public info(...args: unknown[]): void {\n return logProxy('info', this._namespace, args);\n }\n\n public warn(...args: unknown[]): void {\n return logProxy('warn', this._namespace, args);\n }\n\n public verbose(...args: unknown[]): void {\n return logProxy('verbose', this._namespace, args);\n }\n}\n\nfunction logProxy(\n funcName: keyof DiagLogger,\n namespace: string,\n args: unknown[]\n): void {\n const logger = getGlobal('diag');\n // shortcut if logger not set\n if (!logger) {\n return;\n }\n\n return logger[funcName](namespace, ...args);\n}\n","import type { IncomingMessage } from 'http'\nimport type { ParsedUrlQuery } from 'querystring'\nimport type { UrlWithParsedQuery } from 'url'\nimport type { BaseNextRequest } from './base-http'\nimport type { CloneableBody } from './body-streams'\nimport type { RouteMatch } from './route-matches/route-match'\nimport type { NEXT_RSC_UNION_QUERY } from '../client/components/app-router-headers'\nimport type {\n ResponseCacheEntry,\n ServerComponentsHmrCache,\n} from './response-cache'\nimport type { PagesDevOverlayBridgeType } from '../next-devtools/userspace/pages/pages-dev-overlay-setup'\nimport type { OpaqueFallbackRouteParams } from './request/fallback-params'\nimport type { IncrementalCache } from './lib/incremental-cache'\n\n// FIXME: (wyattjoh) this is a temporary solution to allow us to pass data between bundled modules\nexport const NEXT_REQUEST_META = Symbol.for('NextInternalRequestMeta')\n\nexport type NextIncomingMessage = (BaseNextRequest | IncomingMessage) & {\n [NEXT_REQUEST_META]?: RequestMeta\n}\n\n/**\n * The callback function to call when a response cache entry was generated or\n * looked up in the cache. When it returns true, the server assumes that the\n * handler has already responded to the request and will not do so itself.\n */\nexport type OnCacheEntryHandler = (\n /**\n * The response cache entry that was generated or looked up in the cache.\n */\n cacheEntry: ResponseCacheEntry,\n\n /**\n * The request metadata.\n */\n requestMeta: {\n /**\n * The URL that was used to make the request.\n */\n url: string | undefined\n }\n) => Promise<boolean | void> | boolean | void\n\nexport interface RequestMeta {\n /**\n * The query that was used to make the request.\n */\n initQuery?: ParsedUrlQuery\n\n /**\n * The URL that was used to make the request.\n */\n initURL?: string\n\n /**\n * The protocol that was used to make the request.\n */\n initProtocol?: string\n\n /**\n * The body that was read from the request. This is used to allow the body to\n * be read multiple times.\n */\n clonableBody?: CloneableBody\n\n /**\n * True when the request matched a locale domain that was configured in the\n * next.config.js file.\n */\n isLocaleDomain?: boolean\n\n /**\n * True when the request had locale information stripped from the pathname\n * part of the URL.\n */\n didStripLocale?: boolean\n\n /**\n * If the request had it's URL rewritten, this is the URL it was rewritten to.\n */\n rewroteURL?: string\n\n /**\n * The cookies that were added by middleware and were added to the response.\n */\n middlewareCookie?: string[]\n\n /**\n * The match on the request for a given route.\n */\n match?: RouteMatch\n\n /**\n * The incremental cache to use for the request.\n */\n incrementalCache?: IncrementalCache\n\n /**\n * The server components HMR cache, only for dev.\n */\n serverComponentsHmrCache?: ServerComponentsHmrCache\n\n /**\n * Equals the segment path that was used for the prefetch RSC request.\n */\n segmentPrefetchRSCRequest?: string\n\n /**\n * True when the request is for the prefetch flight data.\n */\n isPrefetchRSCRequest?: true\n\n /**\n * True when the request is for the flight data.\n */\n isRSCRequest?: true\n\n /**\n * A search param set by the Next.js client when performing RSC requests.\n * Because some CDNs do not vary their cache entries on our custom headers,\n * this search param represents a hash of the header values. For any cached\n * RSC request, we should verify that the hash matches before responding.\n * Otherwise this can lead to cache poisoning.\n * TODO: Consider not using custom request headers at all, and instead encode\n * everything into the search param.\n */\n cacheBustingSearchParam?: string\n\n /**\n * True when the request is for the `/_next/data` route using the pages\n * router.\n */\n isNextDataReq?: true\n\n /**\n * Postponed state to use for resumption. If present it's assumed that the\n * request is for a page that has postponed (there are no guarantees that the\n * page actually has postponed though as it would incur an additional cache\n * lookup).\n */\n postponed?: string\n\n /**\n * If provided, this will be called when a response cache entry was generated\n * or looked up in the cache.\n *\n * @deprecated Use `onCacheEntryV2` instead.\n */\n onCacheEntry?: OnCacheEntryHandler\n\n /**\n * If provided, this will be called when a response cache entry was generated\n * or looked up in the cache.\n */\n onCacheEntryV2?: OnCacheEntryHandler\n\n /**\n * The previous revalidate before rendering 404 page for notFound: true\n */\n notFoundRevalidate?: number | false\n\n /**\n * In development, the original source page that returned a 404.\n */\n developmentNotFoundSourcePage?: string\n\n /**\n * The path we routed to and should be invoked\n */\n invokePath?: string\n\n /**\n * The specific page output we should be matching\n */\n invokeOutput?: string\n\n /**\n * The status we are invoking the request with from routing\n */\n invokeStatus?: number\n\n /**\n * The routing error we are invoking with\n */\n invokeError?: Error\n\n /**\n * The query parsed for the invocation\n */\n invokeQuery?: Record<string, undefined | string | string[]>\n\n /**\n * Whether the request is a middleware invocation\n */\n middlewareInvoke?: boolean\n\n /**\n * Whether the request should render the fallback shell or not.\n */\n renderFallbackShell?: boolean\n\n /**\n * Whether the request is for the custom error page.\n */\n customErrorRender?: true\n\n /**\n * Whether to bubble up the NoFallbackError to the caller when a 404 is\n * returned.\n */\n bubbleNoFallback?: true\n\n /**\n * True when the request had locale information inferred from the default\n * locale.\n */\n localeInferredFromDefault?: true\n\n /**\n * The locale that was inferred or explicitly set for the request.\n */\n locale?: string\n\n /**\n * The default locale that was inferred or explicitly set for the request.\n */\n defaultLocale?: string\n\n /**\n * The relative project dir the server is running in from project root\n */\n relativeProjectDir?: string\n\n /**\n * The dist directory the server is currently using\n */\n distDir?: string\n\n /**\n * The query after resolving routes\n */\n query?: ParsedUrlQuery\n\n /**\n * The params after resolving routes\n */\n params?: ParsedUrlQuery\n\n /**\n * ErrorOverlay component to use in development for pages router\n */\n PagesErrorDebug?: PagesDevOverlayBridgeType\n\n /**\n * Whether server is in minimal mode (this will be replaced with more\n * specific flags in future)\n */\n minimalMode?: boolean\n\n /**\n * DEV only: The fallback params that should be used when validating prerenders during dev\n */\n devFallbackParams?: OpaqueFallbackRouteParams\n\n /**\n * DEV only: Request timings in process.hrtime.bigint()\n */\n devRequestTimingStart?: bigint\n devRequestTimingMiddlewareStart?: bigint\n devRequestTimingMiddlewareEnd?: bigint\n devRequestTimingInternalsEnd?: bigint\n\n /**\n * DEV only: The duration of getStaticPaths/generateStaticParams in process.hrtime.bigint()\n */\n devGenerateStaticParamsDuration?: bigint\n}\n\n/**\n * Gets the request metadata. If no key is provided, the entire metadata object\n * is returned.\n *\n * @param req the request to get the metadata from\n * @param key the key to get from the metadata (optional)\n * @returns the value for the key or the entire metadata object\n */\nexport function getRequestMeta(\n req: NextIncomingMessage,\n key?: undefined\n): RequestMeta\nexport function getRequestMeta<K extends keyof RequestMeta>(\n req: NextIncomingMessage,\n key: K\n): RequestMeta[K]\nexport function getRequestMeta<K extends keyof RequestMeta>(\n req: NextIncomingMessage,\n key?: K\n): RequestMeta | RequestMeta[K] {\n const meta = req[NEXT_REQUEST_META] || {}\n return typeof key === 'string' ? meta[key] : meta\n}\n\n/**\n * Sets the request metadata.\n *\n * @param req the request to set the metadata on\n * @param meta the metadata to set\n * @returns the mutated request metadata\n */\nexport function setRequestMeta(req: NextIncomingMessage, meta: RequestMeta) {\n req[NEXT_REQUEST_META] = meta\n return meta\n}\n\n/**\n * Adds a value to the request metadata.\n *\n * @param request the request to mutate\n * @param key the key to set\n * @param value the value to set\n * @returns the mutated request metadata\n */\nexport function addRequestMeta<K extends keyof RequestMeta>(\n request: NextIncomingMessage,\n key: K,\n value: RequestMeta[K]\n) {\n const meta = getRequestMeta(request)\n meta[key] = value\n return setRequestMeta(request, meta)\n}\n\n/**\n * Removes a key from the request metadata.\n *\n * @param request the request to mutate\n * @param key the key to remove\n * @returns the mutated request metadata\n */\nexport function removeRequestMeta<K extends keyof RequestMeta>(\n request: NextIncomingMessage,\n key: K\n) {\n const meta = getRequestMeta(request)\n delete meta[key]\n return setRequestMeta(request, meta)\n}\n\ntype NextQueryMetadata = {\n /**\n * The `_rsc` query parameter used for cache busting to ensure that the RSC\n * requests do not get cached by the browser explicitly.\n */\n [NEXT_RSC_UNION_QUERY]?: string\n}\n\nexport type NextParsedUrlQuery = ParsedUrlQuery & NextQueryMetadata\n\nexport interface NextUrlWithParsedQuery extends UrlWithParsedQuery {\n query: NextParsedUrlQuery\n}\n","import React from 'react'\nimport Head from '../shared/lib/head'\nimport type { NextPageContext } from '../shared/lib/utils'\n\nconst statusCodes: { [code: number]: string } = {\n 400: 'Bad Request',\n 404: 'This page could not be found',\n 405: 'Method Not Allowed',\n 500: 'Internal Server Error',\n}\n\nexport type ErrorProps = {\n statusCode: number\n hostname?: string\n title?: string\n withDarkMode?: boolean\n}\n\nfunction _getInitialProps({\n req,\n res,\n err,\n}: NextPageContext): Promise<ErrorProps> | ErrorProps {\n const statusCode =\n res && res.statusCode ? res.statusCode : err ? err.statusCode! : 404\n\n let hostname\n\n if (typeof window !== 'undefined') {\n hostname = window.location.hostname\n } else if (req) {\n const { getRequestMeta } =\n require('../server/request-meta') as typeof import('../server/request-meta')\n\n const initUrl = getRequestMeta(req, 'initURL')\n if (initUrl) {\n const url = new URL(initUrl)\n hostname = url.hostname\n }\n }\n\n return { statusCode, hostname }\n}\n\nconst styles: Record<string, React.CSSProperties> = {\n error: {\n // https://github.com/sindresorhus/modern-normalize/blob/main/modern-normalize.css#L38-L52\n fontFamily:\n 'system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"',\n height: '100vh',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n },\n desc: {\n lineHeight: '48px',\n },\n h1: {\n display: 'inline-block',\n margin: '0 20px 0 0',\n paddingRight: 23,\n fontSize: 24,\n fontWeight: 500,\n verticalAlign: 'top',\n },\n h2: {\n fontSize: 14,\n fontWeight: 400,\n lineHeight: '28px',\n },\n wrap: {\n display: 'inline-block',\n },\n}\n\n/**\n * `Error` component used for handling errors.\n */\nexport default class Error<P = {}> extends React.Component<P & ErrorProps> {\n static displayName = 'ErrorPage'\n\n static getInitialProps = _getInitialProps\n static origGetInitialProps = _getInitialProps\n\n render() {\n const { statusCode, withDarkMode = true } = this.props\n const title =\n this.props.title ||\n statusCodes[statusCode] ||\n 'An unexpected error has occurred'\n\n return (\n <div style={styles.error}>\n <Head>\n <title>\n {statusCode\n ? `${statusCode}: ${title}`\n : 'Application error: a client-side exception has occurred'}\n \n \n
\n \n\n {statusCode ? (\n

\n {statusCode}\n

\n ) : null}\n
\n

\n {this.props.title || statusCode ? (\n title\n ) : (\n <>\n Application error: a client-side exception has occurred{' '}\n {Boolean(this.props.hostname) && (\n <>while loading {this.props.hostname}\n )}{' '}\n (see the browser console for more information)\n \n )}\n .\n

\n
\n
\n
\n )\n }\n}\n","module.exports = require('./dist/pages/_error')\n","'use client';\n\nimport * as Sentry from '@sentry/nextjs';\nimport Error from 'next/error';\nimport { useEffect } from 'react';\n\nexport default function GlobalError({\n error,\n}: {\n error: Error & { digest?: string };\n}) {\n useEffect(() => {\n Sentry.captureException(error);\n }, [error]);\n\n return (\n \n \n {/* This is the default Next.js error component but it doesn't allow omitting the statusCode */}\n \n \n \n );\n}\n"],"names":["process","env","NEXT_RUNTIME","module","exports","require","__NEXT_EXPERIMENTAL_REACT","NODE_ENV","TURBOPACK","vendored","ReactJsxRuntime","React","AppRouterContext","ReactServerDOMTurbopackClient","ReactDOM","HooksClientContext","ServerInsertedHtml","warnOnce","_","warnings","Set","msg","has","console","warn","add","SideEffect","isServer","window","useClientOnlyLayoutEffect","useLayoutEffect","useClientOnlyEffect","useEffect","props","headManager","reduceComponentsToState","emitChange","mountedInstances","headElements","Children","toArray","Array","from","filter","Boolean","updateHead","children","delete","_pendingUpdate","HeadManagerContext","defaultHead","head","meta","charSet","name","content","onlyReactElement","list","child","type","Fragment","concat","reduce","fragmentList","fragmentChild","METATYPES","unique","keys","tags","metaTypes","metaCategories","h","isUnique","hasKey","key","indexOf","slice","i","len","length","metatype","hasOwnProperty","category","categories","reduceComponents","headChildrenElements","reverse","map","c","srcMessage","cloneElement","Head","useContext","Effect","NEXT_REQUEST_META","addRequestMeta","getRequestMeta","removeRequestMeta","setRequestMeta","Symbol","for","req","request","value","Error","statusCodes","_getInitialProps","res","err","statusCode","hostname","location","initUrl","url","URL","styles","error","fontFamily","height","textAlign","display","flexDirection","alignItems","justifyContent","desc","lineHeight","h1","margin","paddingRight","fontSize","fontWeight","verticalAlign","h2","wrap","Component","displayName","getInitialProps","origGetInitialProps","render","withDarkMode","title","div","style","dangerouslySetInnerHTML","__html","className"],"mappings":"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","ignoreList":[0,1,2,3,4,5,6,7,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]}}] } \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__fceaebac._.js b/.next/server/chunks/ssr/[root-of-the-server]__fceaebac._.js deleted file mode 100644 index 684a03a80..000000000 --- a/.next/server/chunks/ssr/[root-of-the-server]__fceaebac._.js +++ /dev/null @@ -1,5 +0,0 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="6756e12c-9da3-36f1-f804-eb762cd8e85e")}catch(e){}}(); -module.exports=[324725,(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"))},64293,(a,b,c)=>{b.exports=a.x("pino-2e79642258e38174",()=>require("pino-2e79642258e38174"))},274209,281682,a=>{"use strict";var b=a.i(150765),c=a.i(475625);function d(){let a=(0,c.getAppServices)();return{trackEvent:(0,b.useCallback)((b,c)=>{a.analytics.track(b,c)},[a]),trackPageview:(0,b.useCallback)(b=>{a.analytics.trackPageview(b)},[a])}}a.s(["useAnalytics",()=>d],274209),a.s(["AnalyticsEvents",0,{PAGE_VIEW:"pageview",PAGE_SCROLL:"page_scroll",PAGE_EXIT:"page_exit",SCROLL_DEPTH:"scroll_depth",BUTTON_CLICK:"button_click",LINK_CLICK:"link_click",FORM_SUBMIT:"form_submit",FORM_START:"form_start",FORM_ERROR:"form_error",FORM_FIELD_FOCUS:"form_field_focus",PRODUCT_VIEW:"product_view",PRODUCT_ADD_TO_CART:"product_add_to_cart",PRODUCT_REMOVE_FROM_CART:"product_remove_from_cart",PRODUCT_PURCHASE:"product_purchase",PRODUCT_WISHLIST_ADD:"product_wishlist_add",PRODUCT_WISHLIST_REMOVE:"product_wishlist_remove",PRODUCT_TAB_SWITCH:"product_tab_switch",SEARCH:"search",FILTER_APPLY:"filter_apply",FILTER_CLEAR:"filter_clear",USER_SIGNUP:"user_signup",USER_LOGIN:"user_login",USER_LOGOUT:"user_logout",USER_PROFILE_UPDATE:"user_profile_update",BLOG_POST_VIEW:"blog_post_view",VIDEO_PLAY:"video_play",VIDEO_PAUSE:"video_pause",VIDEO_COMPLETE:"video_complete",DOWNLOAD:"download",MODAL_OPEN:"modal_open",MODAL_CLOSE:"modal_close",TOGGLE_SWITCH:"toggle_switch",ACCORDION_TOGGLE:"accordion_toggle",TAB_SWITCH:"tab_switch",TOC_CLICK:"toc_click",ERROR:"error",PERFORMANCE:"performance",API_ERROR:"api_error",API_SUCCESS:"api_success",QUOTE_REQUEST:"quote_request",CONTACT_FORM_SUBMIT:"contact_form_submit",NEWSLETTER_SUBSCRIBE:"newsletter_subscribe",BROCHURE_DOWNLOAD:"brochure_download"}],281682)},912466,a=>{"use strict";var b=a.i(526156),c=a.i(841757),d=a.i(829091);let e={primary:"bg-primary text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl",secondary:"bg-secondary text-white shadow-md hover:shadow-secondary/30 hover:shadow-2xl",accent:"bg-accent text-primary-dark shadow-md hover:shadow-accent/30 hover:shadow-2xl",saturated:"bg-saturated text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl",outline:"border-2 border-primary bg-transparent text-primary hover:text-white hover:shadow-primary/20 hover:shadow-xl",ghost:"text-primary hover:shadow-lg",white:"bg-white text-primary shadow-md hover:shadow-primary/30 hover:shadow-2xl hover:text-white",destructive:"bg-destructive text-destructive-foreground shadow-md hover:shadow-destructive/30 hover:shadow-2xl"},f={sm:"h-9 px-4 text-sm md:text-base",md:"h-11 px-6 text-base md:text-lg",lg:"h-14 px-5 md:px-8 text-base md:text-lg",xl:"h-16 px-6 md:px-10 text-lg md:text-xl"},g={primary:"bg-primary-dark",secondary:"bg-secondary-light",accent:"bg-accent-dark",saturated:"bg-primary",outline:"bg-primary",ghost:"bg-primary-light/10",white:"bg-primary-light",destructive:"bg-destructive/90"};function h({variant:a="primary"}){return(0,b.jsx)("span",{className:(0,d.cn)("absolute inset-0 translate-y-[101%] group-hover/btn:translate-y-0 transition-transform duration-500 ease-out",g[a])})}function i({className:a,variant:g="primary",size:i="md",href:j,...k}){let l=function(a="primary",b="md",c){return(0,d.cn)("inline-flex items-center justify-center whitespace-nowrap rounded-full font-semibold transition-all duration-500 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none active:scale-95 hover:-translate-y-1 hover:scale-[1.02] relative overflow-hidden group/btn isolate",e[a],f[b],c)}(g,i,a),m=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:(0,d.cn)("relative z-10 flex items-center justify-center gap-2 transition-colors duration-500","white"===g?"group-hover/btn:text-primary-dark":""),children:k.children}),(0,b.jsx)(h,{variant:g})]});return j?(0,b.jsx)(c.default,{href:j,className:l,children:m}):(0,b.jsx)("button",{className:l,...k,children:m})}a.s(["Button",()=>i])},594214,90695,5515,544027,434904,618180,781027,41100,a=>{"use strict";var b=a.i(829091);a.i(912466);var c=a.i(526156);function d({className:a,children:d,...e}){return(0,c.jsx)("section",{className:(0,b.cn)("py-16 md:py-28 lg:py-36 overflow-hidden content-visibility-auto",a),...e,children:d})}function e({className:a,children:d,...e}){return(0,c.jsx)("div",{className:(0,b.cn)("container mx-auto px-4 md:px-12 lg:px-16 max-w-7xl",a),...e,children:d})}function f({level:a=2,children:d,className:e,subtitle:f,align:g="left"}){let h=`h${a}`;return(0,c.jsxs)("div",{className:(0,b.cn)("mb-6 md:mb-12 text-primary",{left:"text-left",center:"text-center mx-auto",right:"text-right"}[g],e),children:[f&&(0,c.jsx)("span",{className:"inline-block text-accent font-bold tracking-widest uppercase text-xs md:text-sm mb-3 md:mb-4 animate-fade-in",children:f}),(0,c.jsx)(h,{className:(0,b.cn)({1:"text-2xl md:text-4xl lg:text-5xl font-bold leading-[1.1] tracking-tight",2:"text-xl md:text-3xl lg:text-4xl font-bold leading-[1.2] tracking-tight",3:"text-lg md:text-2xl lg:text-3xl font-bold leading-[1.3] tracking-tight",4:"text-lg md:text-xl lg:text-2xl font-bold leading-[1.4]",5:"text-base md:text-lg font-bold leading-[1.5]",6:"text-base md:text-lg font-semibold leading-[1.6]"}[a]),children:d})]})}function g({className:a,children:d,tag:e="div",...f}){return(0,c.jsx)(e,{className:(0,b.cn)("premium-card overflow-hidden",a),...f,children:d})}function h({className:a,...d}){return(0,c.jsx)("input",{className:(0,b.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg",a),...d})}function i({className:a,...d}){return(0,c.jsx)("textarea",{className:(0,b.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg resize-none",a),...d})}function j({className:a,...d}){return(0,c.jsx)("label",{className:(0,b.cn)("text-[10px] md:text-xs font-extrabold text-primary uppercase tracking-widest",a),...d})}a.s(["Section",()=>d],90695),a.s(["Container",()=>e],5515),a.s(["Heading",()=>f],544027),a.s(["Card",()=>g],434904),a.s(["Input",()=>h],618180),a.s(["Textarea",()=>i],781027),a.s(["Label",()=>j],41100),a.s([],594214)},188457,a=>{"use strict";var b=a.i(526156),c=a.i(150765);a.i(594214);var d=a.i(829091);function e({children:a,className:e,threshold:f=.1,delay:g=0}){let[h,i]=(0,c.useState)(!1),j=(0,c.useRef)(null);return(0,c.useEffect)(()=>{let a=new IntersectionObserver(([b])=>{b.isIntersecting&&(i(!0),a.unobserve(b.target))},{threshold:f}),b=j.current;return b&&a.observe(b),()=>{b&&a.unobserve(b)}},[f]),(0,b.jsx)("div",{ref:j,className:(0,d.cn)("reveal-on-scroll",h&&"is-visible",e),style:{transitionDelay:`${g}ms`},children:a})}a.s(["default",()=>e])},26701,a=>{"use strict";var b=a.i(526156),c=a.i(603836),d=a.i(150765),e=a.i(110644),f=a.i(411487);a.i(594214);var g=a.i(90695),h=a.i(5515),i=a.i(544027);let j=(0,f.default)(async()=>{},{loadableGenerated:{modules:[888085]},ssr:!1});function k(){let a=(0,c.useTranslations)("Team"),[f,k]=(0,d.useState)(!1),[l,m]=(0,d.useState)(0),n=["/uploads/2024/12/DSC07539-Large-600x400.webp","/uploads/2024/12/DSC07460-Large-600x400.webp","/uploads/2024/12/DSC07469-Large-600x400.webp","/uploads/2024/12/DSC07433-Large-600x400.webp","/uploads/2024/12/DSC07387-Large-600x400.webp"];return(0,b.jsxs)(g.Section,{className:"bg-primary-dark py-16 md:py-32",children:[(0,b.jsxs)(h.Container,{children:[(0,b.jsx)(i.Heading,{level:2,subtitle:a("gallery.subtitle"),align:"center",className:"text-white mb-12 md:mb-20",children:(0,b.jsx)("span",{className:"text-white",children:a("gallery.title")})}),(0,b.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-5 gap-3 md:gap-6",children:n.map((c,d)=>(0,b.jsxs)("button",{onClick:()=>{m(d),k(!0)},className:"relative aspect-[3/4] rounded-2xl md:rounded-[32px] overflow-hidden group shadow-2xl cursor-pointer",children:[(0,b.jsx)(e.default,{src:c,alt:a("gallery.title"),fill:!0,className:"object-cover transition-transform duration-1000 group-hover:scale-110"}),(0,b.jsx)("div",{className:"absolute inset-0 bg-primary-dark/40 group-hover:bg-transparent transition-all duration-500"}),(0,b.jsx)("div",{className:"absolute inset-0 border-0 group-hover:border-[8px] md:group-hover:border-[12px] border-white/10 transition-all duration-500 pointer-events-none"})]},d))})]}),(0,b.jsx)(j,{isOpen:f,images:n,initialIndex:l,onClose:()=>k(!1)})]})}a.s(["default",()=>k])},390265,a=>{"use strict";var b=a.i(526156),c=a.i(912466),d=a.i(274209),e=a.i(281682);function f({eventName:a=e.AnalyticsEvents.BUTTON_CLICK,eventProperties:f={},onClick:g,...h}){let{trackEvent:i}=(0,d.useAnalytics)();return(0,b.jsx)(c.Button,{...h,onClick:b=>{i(a,{...f,label:"string"==typeof h.children?h.children:f.label}),g&&g(b)}})}a.s(["default",()=>f])},163041,a=>{a.v(b=>Promise.all(["server/chunks/ssr/[root-of-the-server]__57266d7f._.js","server/chunks/ssr/node_modules__pnpm_2ad0b5ae._.js"].map(b=>a.l(b))).then(()=>b(17814)))}]; - -//# debugId=6756e12c-9da3-36f1-f804-eb762cd8e85e -//# sourceMappingURL=%5Broot-of-the-server%5D__fceaebac._.js.map \ No newline at end of file diff --git a/.next/server/chunks/ssr/[root-of-the-server]__fceaebac._.js.map b/.next/server/chunks/ssr/[root-of-the-server]__fceaebac._.js.map deleted file mode 100644 index f9d63220d..000000000 --- a/.next/server/chunks/ssr/[root-of-the-server]__fceaebac._.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": [], - "debugId": "6756e12c-9da3-36f1-f804-eb762cd8e85e", - "sections": [ - {"offset": {"line": 1, "column": 0}, "map": {"version":3,"sources":["../../../../components/analytics/useAnalytics.ts","../../../../components/analytics/analytics-events.ts","../../../../components/ui/Button.tsx","../../../../components/ui/index.ts","../../../../components/ui/Section.tsx","../../../../components/ui/Container.tsx","../../../../components/ui/Heading.tsx","../../../../components/ui/Card.tsx","../../../../components/ui/Badge.tsx","../../../../components/ui/Input.tsx","../../../../components/ui/Textarea.tsx","../../../../components/ui/Label.tsx","../../../../components/ui/Callout.tsx","../../../../components/Reveal.tsx","../../../../components/team/Gallery.tsx","../../../../components/analytics/TrackedButton.tsx"],"sourcesContent":["'use client';\n\nimport { useCallback } from 'react';\nimport { getAppServices } from '@/lib/services/create-services';\nimport type { AnalyticsEventProperties } from '@/lib/services/analytics/analytics-service';\n\n/**\n * Custom hook for tracking analytics events with Umami.\n * \n * Provides a convenient way to track custom events throughout your application.\n * \n * @example\n * ```tsx\n * import { useAnalytics } from '@/components/analytics/useAnalytics';\n * \n * function MyComponent() {\n * const { trackEvent, trackPageview } = useAnalytics();\n * \n * const handleButtonClick = () => {\n * trackEvent('button_click', {\n * button_id: 'cta-primary',\n * page: 'homepage'\n * });\n * };\n * \n * return ;\n * }\n * ```\n * \n * @example\n * ```tsx\n * // Track a custom pageview\n * const { trackPageview } = useAnalytics();\n * trackPageview('/custom-path?param=value');\n * ```\n */\nexport function useAnalytics() {\n const services = getAppServices();\n\n /**\n * Track a custom event with optional properties.\n * \n * @param eventName - The name of the event to track\n * @param properties - Optional event properties (metadata)\n */\n const trackEvent = useCallback(\n (eventName: string, properties?: AnalyticsEventProperties) => {\n services.analytics.track(eventName, properties);\n \n if (process.env.NODE_ENV === 'development') {\n console.log('[Umami] Tracked event:', eventName, properties);\n }\n },\n [services]\n );\n\n /**\n * Track a pageview (useful for custom navigation or SPA routing).\n * \n * @param url - The URL to track (defaults to current location)\n */\n const trackPageview = useCallback(\n (url?: string) => {\n services.analytics.trackPageview(url);\n \n if (process.env.NODE_ENV === 'development') {\n console.log('[Umami] Tracked pageview:', url ?? 'current location');\n }\n },\n [services]\n );\n\n return {\n trackEvent,\n trackPageview,\n };\n}\n","/**\n * Analytics Events Utility\n *\n * Centralized definitions for common analytics events and their properties.\n * This helps maintain consistency across the application and makes it easier\n * to track meaningful events.\n *\n * @example\n * ```tsx\n * import { useAnalytics } from '@/components/analytics/useAnalytics';\n * import { AnalyticsEvents } from '@/components/analytics/analytics-events';\n *\n * function ProductPage() {\n * const { trackEvent } = useAnalytics();\n *\n * const handleAddToCart = (productId: string, productName: string) => {\n * trackEvent(AnalyticsEvents.PRODUCT_ADD_TO_CART, {\n * product_id: productId,\n * product_name: productName,\n * page: 'product-detail'\n * });\n * };\n *\n * return ;\n * }\n * ```\n */\n\nexport const AnalyticsEvents = {\n // Page & Navigation Events\n PAGE_VIEW: 'pageview',\n PAGE_SCROLL: 'page_scroll',\n PAGE_EXIT: 'page_exit',\n SCROLL_DEPTH: 'scroll_depth',\n\n // User Interaction Events\n BUTTON_CLICK: 'button_click',\n LINK_CLICK: 'link_click',\n FORM_SUBMIT: 'form_submit',\n FORM_START: 'form_start',\n FORM_ERROR: 'form_error',\n FORM_FIELD_FOCUS: 'form_field_focus',\n\n // E-commerce Events\n PRODUCT_VIEW: 'product_view',\n PRODUCT_ADD_TO_CART: 'product_add_to_cart',\n PRODUCT_REMOVE_FROM_CART: 'product_remove_from_cart',\n PRODUCT_PURCHASE: 'product_purchase',\n PRODUCT_WISHLIST_ADD: 'product_wishlist_add',\n PRODUCT_WISHLIST_REMOVE: 'product_wishlist_remove',\n PRODUCT_TAB_SWITCH: 'product_tab_switch',\n\n // Search & Filter Events\n SEARCH: 'search',\n FILTER_APPLY: 'filter_apply',\n FILTER_CLEAR: 'filter_clear',\n\n // User Account Events\n USER_SIGNUP: 'user_signup',\n USER_LOGIN: 'user_login',\n USER_LOGOUT: 'user_logout',\n USER_PROFILE_UPDATE: 'user_profile_update',\n\n // Content Events\n BLOG_POST_VIEW: 'blog_post_view',\n VIDEO_PLAY: 'video_play',\n VIDEO_PAUSE: 'video_pause',\n VIDEO_COMPLETE: 'video_complete',\n DOWNLOAD: 'download',\n\n // UI Interaction Events\n MODAL_OPEN: 'modal_open',\n MODAL_CLOSE: 'modal_close',\n TOGGLE_SWITCH: 'toggle_switch',\n ACCORDION_TOGGLE: 'accordion_toggle',\n TAB_SWITCH: 'tab_switch',\n TOC_CLICK: 'toc_click',\n\n // Error & Performance Events\n ERROR: 'error',\n PERFORMANCE: 'performance',\n API_ERROR: 'api_error',\n API_SUCCESS: 'api_success',\n\n // Custom Business Events\n QUOTE_REQUEST: 'quote_request',\n CONTACT_FORM_SUBMIT: 'contact_form_submit',\n NEWSLETTER_SUBSCRIBE: 'newsletter_subscribe',\n BROCHURE_DOWNLOAD: 'brochure_download',\n} as const;\n\n/**\n * Type-safe event properties for common events\n */\nexport type AnalyticsEventName = (typeof AnalyticsEvents)[keyof typeof AnalyticsEvents];\n\n/**\n * Common event property helpers\n */\nexport const AnalyticsEventProperties = {\n /**\n * Create properties for a product event\n */\n product: (productId: string, productName: string, category?: string) => ({\n product_id: productId,\n product_name: productName,\n product_category: category,\n }),\n\n /**\n * Create properties for a form event\n */\n form: (formId: string, formName: string, fields?: Record) => ({\n form_id: formId,\n form_name: formName,\n form_fields: fields,\n }),\n\n /**\n * Create properties for a search event\n */\n search: (query: string, filters?: Record) => ({\n search_query: query,\n search_filters: filters,\n }),\n\n /**\n * Create properties for a navigation event\n */\n navigation: (from: string, to: string) => ({\n from_page: from,\n to_page: to,\n }),\n} as const;\n","import React from 'react';\nimport Link from 'next/link';\nimport { cn } from './utils';\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes {\n variant?:\n | 'primary'\n | 'secondary'\n | 'accent'\n | 'saturated'\n | 'outline'\n | 'ghost'\n | 'white'\n | 'destructive';\n size?: 'sm' | 'md' | 'lg' | 'xl';\n href?: string;\n className?: string;\n children?: React.ReactNode;\n}\n\nexport const buttonBaseStyles =\n 'inline-flex items-center justify-center whitespace-nowrap rounded-full font-semibold transition-all duration-500 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none active:scale-95 hover:-translate-y-1 hover:scale-[1.02] relative overflow-hidden group/btn isolate';\n\nexport const buttonVariantsMap = {\n primary: 'bg-primary text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl',\n secondary: 'bg-secondary text-white shadow-md hover:shadow-secondary/30 hover:shadow-2xl',\n accent: 'bg-accent text-primary-dark shadow-md hover:shadow-accent/30 hover:shadow-2xl',\n saturated: 'bg-saturated text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl',\n outline:\n 'border-2 border-primary bg-transparent text-primary hover:text-white hover:shadow-primary/20 hover:shadow-xl',\n ghost: 'text-primary hover:shadow-lg',\n white:\n 'bg-white text-primary shadow-md hover:shadow-primary/30 hover:shadow-2xl hover:text-white',\n destructive:\n 'bg-destructive text-destructive-foreground shadow-md hover:shadow-destructive/30 hover:shadow-2xl',\n};\n\nexport const buttonSizesMap = {\n sm: 'h-9 px-4 text-sm md:text-base',\n md: 'h-11 px-6 text-base md:text-lg',\n lg: 'h-14 px-5 md:px-8 text-base md:text-lg',\n xl: 'h-16 px-6 md:px-10 text-lg md:text-xl',\n};\n\nexport const buttonOverlayColorsMap = {\n primary: 'bg-primary-dark',\n secondary: 'bg-secondary-light',\n accent: 'bg-accent-dark',\n saturated: 'bg-primary',\n outline: 'bg-primary',\n ghost: 'bg-primary-light/10',\n white: 'bg-primary-light',\n destructive: 'bg-destructive/90',\n};\n\nexport function getButtonClasses(variant: keyof typeof buttonVariantsMap = 'primary', size: keyof typeof buttonSizesMap = 'md', className?: string) {\n return cn(buttonBaseStyles, buttonVariantsMap[variant], buttonSizesMap[size], className);\n}\n\nexport function ButtonOverlay({ variant = 'primary' }: { variant?: keyof typeof buttonVariantsMap }) {\n return (\n \n );\n}\n\nexport function Button({\n className,\n variant = 'primary',\n size = 'md',\n href,\n ...props\n}: ButtonProps) {\n const styles = getButtonClasses(variant, size, className);\n\n const content = (\n <>\n \n {props.children}\n \n \n \n );\n\n if (href) {\n return (\n \n {content}\n \n );\n }\n\n return (\n \n );\n}\n","export * from './utils';\nexport * from './Button';\nexport * from './Section';\nexport * from './Container';\nexport * from './Heading';\nexport * from './Card';\nexport * from './Badge';\nexport * from './Input';\nexport * from './Textarea';\nexport * from './Label';\nexport * from './Callout';\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Section({ className, children, ...props }: React.HTMLAttributes) {\n return (\n
\n {children}\n
\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Container({ className, children, ...props }: React.HTMLAttributes) {\n return (\n
\n {children}\n
\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Heading({\n level = 2,\n children,\n className,\n subtitle,\n align = 'left'\n}: {\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n children: React.ReactNode;\n className?: string;\n subtitle?: string;\n align?: 'left' | 'center' | 'right';\n}) {\n const Tag = `h${level}` as any;\n \n const sizes = {\n 1: 'text-2xl md:text-4xl lg:text-5xl font-bold leading-[1.1] tracking-tight',\n 2: 'text-xl md:text-3xl lg:text-4xl font-bold leading-[1.2] tracking-tight',\n 3: 'text-lg md:text-2xl lg:text-3xl font-bold leading-[1.3] tracking-tight',\n 4: 'text-lg md:text-xl lg:text-2xl font-bold leading-[1.4]',\n 5: 'text-base md:text-lg font-bold leading-[1.5]',\n 6: 'text-base md:text-lg font-semibold leading-[1.6]',\n };\n\n const alignments = {\n left: 'text-left',\n center: 'text-center mx-auto',\n right: 'text-right',\n };\n\n return (\n
\n {subtitle && (\n \n {subtitle}\n \n )}\n \n {children}\n \n
\n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\ninterface CardProps extends React.HTMLAttributes {\n tag?: 'div' | 'article' | 'section' | 'aside' | 'header' | 'footer' | 'nav' | 'main';\n}\n\nexport function Card({ className, children, tag: Tag = 'div', ...props }: CardProps) {\n return (\n \n {children}\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport function Badge({ children, className, variant = 'primary' }: { children: React.ReactNode, className?: string, variant?: 'primary' | 'accent' | 'neutral' | 'saturated' }) {\n const variants = {\n primary: 'bg-primary-light text-primary',\n accent: 'bg-accent-light text-accent-dark',\n neutral: 'bg-neutral-medium text-text-secondary',\n saturated: 'bg-saturated text-white',\n };\n \n return (\n \n {children}\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport interface InputProps extends React.InputHTMLAttributes {\n className?: string;\n}\n\nexport function Input({ className, ...props }: InputProps) {\n return (\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport interface TextareaProps extends React.TextareaHTMLAttributes {\n className?: string;\n}\n\nexport function Textarea({ className, ...props }: TextareaProps) {\n return (\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\nexport interface LabelProps extends React.LabelHTMLAttributes {\n className?: string;\n}\n\nexport function Label({ className, ...props }: LabelProps) {\n return (\n \n );\n}\n","import React from 'react';\nimport { cn } from './utils';\n\ninterface CalloutProps {\n type?: 'info' | 'warning' | 'success' | 'tip';\n title?: string;\n children: React.ReactNode;\n className?: string;\n}\n\nconst icons = {\n info: (\n \n \n \n ),\n warning: (\n \n \n \n ),\n success: (\n \n \n \n ),\n tip: (\n \n \n \n ),\n};\n\nconst styles = {\n info: 'bg-blue-50 border-blue-200 text-blue-900',\n warning: 'bg-yellow-50 border-yellow-200 text-yellow-900',\n success: 'bg-green-50 border-green-200 text-green-900',\n tip: 'bg-purple-50 border-purple-200 text-purple-900',\n};\n\nconst iconColors = {\n info: 'text-blue-500',\n warning: 'text-yellow-500',\n success: 'text-green-500',\n tip: 'text-purple-500',\n};\n\nexport function Callout({ type = 'info', title, children, className }: CalloutProps) {\n return (\n
\n
\n
\n {icons[type]}\n
\n
\n {title && (\n

{title}

\n )}\n
\n {children}\n
\n
\n
\n
\n );\n}\n","'use client';\n\nimport React, { useEffect, useRef, useState } from 'react';\nimport { cn } from '@/components/ui';\n\ninterface RevealProps {\n children: React.ReactNode;\n className?: string;\n threshold?: number;\n delay?: number;\n}\n\nexport default function Reveal({ children, className, threshold = 0.1, delay = 0 }: RevealProps) {\n const [isVisible, setIsVisible] = useState(false);\n const ref = useRef(null);\n\n useEffect(() => {\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (entry.isIntersecting) {\n setIsVisible(true);\n observer.unobserve(entry.target);\n }\n },\n { threshold }\n );\n\n const currentRef = ref.current;\n if (currentRef) {\n observer.observe(currentRef);\n }\n\n return () => {\n if (currentRef) {\n observer.unobserve(currentRef);\n }\n };\n }, [threshold]);\n\n return (\n \n {children}\n
\n );\n}\n","'use client';\n\nimport { useTranslations } from 'next-intl';\nimport { useState } from 'react';\nimport Image from 'next/image';\nimport dynamic from 'next/dynamic';\nconst Lightbox = dynamic(() => import('@/components/Lightbox'), { ssr: false });\nimport { Section, Container, Heading } from '@/components/ui';\n\nexport default function Gallery() {\n const t = useTranslations('Team');\n\n const [lightboxOpen, setLightboxOpen] = useState(false);\n const [lightboxIndex, setLightboxIndex] = useState(0);\n\n const teamGalleryImages = [\n '/uploads/2024/12/DSC07539-Large-600x400.webp',\n '/uploads/2024/12/DSC07460-Large-600x400.webp',\n '/uploads/2024/12/DSC07469-Large-600x400.webp',\n '/uploads/2024/12/DSC07433-Large-600x400.webp',\n '/uploads/2024/12/DSC07387-Large-600x400.webp'\n ];\n\n return (\n
\n \n \n {t('gallery.title')}\n \n
\n {teamGalleryImages.map((src, idx) => (\n {\n setLightboxIndex(idx);\n setLightboxOpen(true);\n }}\n className=\"relative aspect-[3/4] rounded-2xl md:rounded-[32px] overflow-hidden group shadow-2xl cursor-pointer\"\n >\n {t('gallery.title')}\n
\n
\n \n ))}\n
\n \n\n setLightboxOpen(false)}\n />\n
\n );\n}","'use client';\n\nimport React from 'react';\nimport { Button, ButtonProps } from '../ui/Button';\nimport { useAnalytics } from './useAnalytics';\nimport { AnalyticsEvents } from './analytics-events';\n\ninterface TrackedButtonProps extends ButtonProps {\n eventName?: string;\n eventProperties?: Record;\n}\n\n/**\n * A wrapper around the project's Button component that tracks click events.\n * Safe to use in server components.\n */\nexport default function TrackedButton({\n eventName = AnalyticsEvents.BUTTON_CLICK,\n eventProperties = {},\n onClick,\n ...props\n}: TrackedButtonProps) {\n const { trackEvent } = useAnalytics();\n\n const handleClick = (e: React.MouseEvent) => {\n trackEvent(eventName, {\n ...eventProperties,\n label: typeof props.children === 'string' ? props.children : eventProperties.label,\n });\n if (onClick) onClick(e);\n };\n\n return
- Die E-TIB GmbH ist ein leistungsfähiger und moderner Anbieter von technischen Dienstleistungen im Bereich Tiefbauarbeiten, Horizontalspülbohrungen, Kabelpflugarbeiten, Leitungsverlegung und Kabelmontagen. Das Unternehmen wurde 2015 im brandenburgischen Guben gegründet und seitdem konsequent weiterentwickelt. + Die E-TIB GmbH ist ein leistungsfähiger und moderner Anbieter von technischen Dienstleistungen. Wir haben uns auf folgende Kernbereiche spezialisiert:
+ +
+ + + + + +
+
- Heute führen wir mit über 50 Mitarbeitern bundesweite Bauleistungen für Industrie, Telekommunikationsanbieter und Stromversorgungsunternehmen durch. Unsere qualifizierten Teams stellen mit einem modern ausgestatteten Maschinenpark die Zufriedenheit unserer Kunden sicher – mit Kompetenz, Sorgfalt und Termintreue. + Das Unternehmen wurde 2015 im brandenburgischen Guben gegründet und seitdem konsequent weiterentwickelt. Heute führen wir mit über 50 Mitarbeitern bundesweite Bauleistungen für Industrie, Telekommunikationsanbieter und Stromversorgungsunternehmen durch.
diff --git a/.next/standalone/content/en/home.mdx b/.next/standalone/content/en/home.mdx index 036af2c47..927c36628 100644 --- a/.next/standalone/content/en/home.mdx +++ b/.next/standalone/content/en/home.mdx @@ -20,7 +20,6 @@ description: Welcome to E-TIB GmbH title: "E-TIB GMBH", description: "The company has fully specialized in cable civil engineering. The complete range of services for the construction of cable routes from a single source.", icon: "M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z", - url: "https://www.e-tib.com/", backgroundImage: "/assets/photos/DJI_0243.JPG" }, { @@ -52,10 +51,34 @@ description: Welcome to E-TIB GmbH
- E-TIB GmbH is a capable and modern provider of technical services in the field of civil engineering, horizontal directional drilling, cable plowing, pipeline installation, and cable assembly. The company was founded in 2015 in Guben, Brandenburg, and has been consistently developed ever since. + E-TIB GmbH is a capable and modern provider of technical services. We have specialized in the following core areas:
+ +
+ + + + + +
+
- Today, with over 50 employees, we carry out nationwide construction services for industry, telecommunications providers, and energy utility companies. Our qualified teams ensure the satisfaction of our customers with a modern machinery park – with competence, care, and adherence to deadlines. + The company was founded in 2015 in Guben, Brandenburg, and has been consistently developed ever since. Today, with over 50 employees, we carry out nationwide construction services for industry, telecommunications providers, and energy utility companies.
diff --git a/.next/standalone/server.js b/.next/standalone/server.js index 3af53ca28..a193ee55c 100644 --- a/.next/standalone/server.js +++ b/.next/standalone/server.js @@ -15,7 +15,7 @@ const currentPort = parseInt(process.env.PORT, 10) || 3000 const hostname = process.env.HOSTNAME || '0.0.0.0' let keepAliveTimeout = parseInt(process.env.KEEP_ALIVE_TIMEOUT, 10) -const nextConfig = {"env":{"_sentryRewriteFramesDistDir":".next","_sentryRewriteFramesAssetPrefixPath":"","_sentryRelease":"d45ef2baf7ed5f673dc8dd688a3f937376743f84"},"typescript":{"ignoreBuildErrors":false},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.mjs","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"maximumResponseBody":50000000,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[{"protocol":"https","hostname":"e-tib.com"},{"protocol":"https","hostname":"*.e-tib.com"},{"protocol":"http","hostname":"e-tib.com"},{"protocol":"http","hostname":"*.e-tib.com"},{"protocol":"http","hostname":"etib.localhost"},{"protocol":"http","hostname":"localhost"}],"qualities":[25,50,75,100],"unoptimized":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":300000,"pagesBufferLength":2},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":false,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{"fetches":{"fullUrl":true}},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/Volumes/Alpha SSD/Coding/e-tib.com","cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"experimental":{"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"dynamicOnHover":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":15,"memoryBasedWorkersCount":true,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"clientTraceMetadata":["baggage","sentry-trace"],"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"viewTransition":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":false,"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"transitionIndicator":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"browserDebugInfoInTerminal":false,"lockDistDir":true,"isolatedDevBuild":true,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"turbopackFileSystemCacheForDev":true,"turbopackFileSystemCacheForBuild":false,"turbopackInferModuleSideEffects":false,"optimizePackageImports":["lucide-react","framer-motion","@/components/ui","@sentry/nextjs","react-hook-form","zod","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"serverActions":{"allowedOrigins":["*.e-tib.com","*.branch.e-tib.com","localhost:3000","etib.localhost"]},"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.mjs","turbopack":{"resolveAlias":{"next-intl/config":"./i18n/request.ts","next-mdx-import-source-file":"@vercel/turbopack-next/mdx-import-source"},"debugIds":true,"rules":{"**/instrumentation-client.*":{"condition":{"not":"foreign"},"loaders":[{"loader":"/Volumes/Alpha SSD/Coding/e-tib.com/node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/valueInjectionLoader.js","options":{"values":{"_sentryRouteManifest":"{\"dynamicRoutes\":[{\"path\":\"/:locale\",\"regex\":\"^/([^/]+)$\",\"paramNames\":[\"locale\"],\"hasOptionalPrefix\":true},{\"path\":\"/:locale/:slug\",\"regex\":\"^/([^/]+)/([^/]+)$\",\"paramNames\":[\"locale\",\"slug\"],\"hasOptionalPrefix\":true},{\"path\":\"/:locale/blog\",\"regex\":\"^/([^/]+)/blog$\",\"paramNames\":[\"locale\"],\"hasOptionalPrefix\":true},{\"path\":\"/:locale/blog/:slug\",\"regex\":\"^/([^/]+)/blog/([^/]+)$\",\"paramNames\":[\"locale\",\"slug\"],\"hasOptionalPrefix\":true},{\"path\":\"/:locale/contact\",\"regex\":\"^/([^/]+)/contact$\",\"paramNames\":[\"locale\"],\"hasOptionalPrefix\":true},{\"path\":\"/:locale/team\",\"regex\":\"^/([^/]+)/team$\",\"paramNames\":[\"locale\"],\"hasOptionalPrefix\":true},{\"path\":\"/:locale/test\",\"regex\":\"^/([^/]+)/test$\",\"paramNames\":[\"locale\"],\"hasOptionalPrefix\":true}],\"staticRoutes\":[{\"path\":\"/test\"}],\"isrRoutes\":[\"/:locale/contact\"]}","_sentryNextJsVersion":"16.1.6"}}}]},"**/instrumentation.*":{"condition":{"not":"foreign"},"loaders":[{"loader":"/Volumes/Alpha SSD/Coding/e-tib.com/node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/valueInjectionLoader.js","options":{"values":{"__SENTRY_SERVER_MODULES__":{"@mintel/mail":"1.9.5","@mintel/next-config":"1.9.5","@mintel/next-feedback":"1.9.5","@mintel/next-utils":"1.9.5","@next/mdx":"^16.1.6","@react-email/components":"1.0.8","@react-pdf/renderer":"^4.3.2","@react-three/drei":"^10.7.7","@react-three/fiber":"^9.5.0","@sentry/nextjs":"^10.39.0","@types/recharts":"^2.0.1","axios":"^1.13.5","clsx":"^2.1.1","framer-motion":"^12.34.0","graphql":"^16.12.0","gray-matter":"^4.0.3","i18next":"^25.7.3","import-in-the-middle":"^1.11.0","ioredis":"^5.9.3","jsdom":"^27.4.0","leaflet":"^1.9.4","next":"16.1.6","next-i18next":"^15.4.3","next-intl":"^4.8.2","next-mdx-remote":"^5.0.0","nodemailer":"^8.0.7","pdf-lib":"^1.17.1","pino":"^10.3.0","pino-pretty":"^13.1.3","react":"^19.2.4","react-dom":"^19.2.4","react-email":"^5.2.5","react-leaflet":"^4.2.1","react-markdown":"^10.1.0","recharts":"^3.7.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.1","require-in-the-middle":"^8.0.1","resend":"^3.5.0","schema-dts":"^1.1.5","sharp":"^0.34.5","svg-to-pdfkit":"^0.1.8","tailwind-merge":"^3.4.0","three":"^0.183.1","xlsx":"npm:@e965/xlsx@^0.20.3","zod":"3.25.76","@commitlint/cli":"^20.4.0","@commitlint/config-conventional":"^20.4.0","@cspell/dict-de-de":"^4.1.2","@lhci/cli":"^0.15.1","@mintel/eslint-config":"^1.9.0","@mintel/tsconfig":"^1.9.0","@next/bundle-analyzer":"^16.1.6","@tailwindcss/cli":"^4.1.18","@tailwindcss/postcss":"^4.1.18","@types/geojson":"^7946.0.16","@types/leaflet":"^1.9.21","@types/node":"^22.19.3","@types/nodemailer":"^7.0.5","@types/react":"^19.2.7","@types/react-dom":"^19.2.3","@types/sharp":"^0.31.1","@types/three":"^0.183.1","@vitejs/plugin-react":"^5.1.4","@vitest/ui":"^4.0.16","autoprefixer":"^10.4.23","cheerio":"^1.2.0","critters":"^0.0.25","cspell":"^9.6.4","dotenv":"^17.3.1","eslint":"^9.18.0","happy-dom":"^20.6.1","html-validate":"^10.8.0","husky":"^9.1.7","lint-staged":"^16.2.7","lucide-react":"^0.563.0","pa11y-ci":"^4.0.1","pdf-parse":"^2.4.5","postcss":"^8.5.6","prettier":"^3.8.1","puppeteer":"^24.37.3","sass":"^1.97.1","start-server-and-test":"^2.1.3","tailwindcss":"^4.1.18","tsx":"^4.21.0","turbo":"^2.8.10","typescript":"^5.7.2","vitest":"^4.0.16","xlsx-cli":"^1.1.3"},"_sentryNextJsVersion":"16.1.6"}}}]},"{*,next-mdx-rule}":[{"loaders":[{"loader":"/Volumes/Alpha SSD/Coding/e-tib.com/node_modules/.pnpm/@next+mdx@16.2.4_@mdx-js+react@3.1.1_@types+react@19.2.14_react@19.2.4_/node_modules/@next/mdx/mdx-js-loader.js","options":{"providerImportSource":"next-mdx-import-source-file"}}],"as":"*.tsx","condition":{"path":{}}}]},"root":"/Volumes/Alpha SSD/Coding/e-tib.com"},"transpilePackages":["react-image-crop","@react-three/fiber"],"serverExternalPackages":["amqplib","connect","dataloader","express","generic-pool","graphql","@hapi/hapi","ioredis","kafkajs","koa","lru-memoizer","mongodb","mongoose","mysql","mysql2","knex","pg","pg-pool","@node-redis/client","@redis/client","redis","tedious"],"distDirRoot":".next","_originalRewrites":{"beforeFiles":[{"source":"/:locale/datasheets/:path*","destination":"/api/datasheets/:path*"},{"source":"/:locale/brochures/:path*","destination":"/api/brochures/:path*"},{"source":"/datasheets/:path*","destination":"/api/datasheets/:path*"},{"source":"/brochures/:path*","destination":"/api/brochures/:path*"},{"source":"/de/produkte","destination":"/de/products"},{"source":"/de/produkte/:path*","destination":"/de/products/:path*"},{"source":"/de/kontakt","destination":"/de/contact"},{"source":"/en/produkte","destination":"/en/products"},{"source":"/en/produkte/:path*","destination":"/en/products/:path*"},{"source":"/en/kontakt","destination":"/en/contact"},{"source":"/en/impressum","destination":"/en/legal-notice"},{"source":"/en/datenschutz","destination":"/en/privacy-policy"},{"source":"/en/agbs","destination":"/en/terms"}],"afterFiles":[],"fallback":[]},"_originalRedirects":[{"source":"/blog","destination":"/de/blog","permanent":true},{"source":"/contact","destination":"/de/contact","permanent":true},{"source":"/team","destination":"/de/team","permanent":true},{"source":"/products","destination":"/de/products","permanent":true},{"source":"/posts/100-renewable-energy-only-with-the-right-cable-infrastructure.html","destination":"/de/blog/100-renewable-energy-only-with-the-right-cable-infrastructure","permanent":true},{"source":"/posts/billion-euro-package-for-infrastructure-the-cable-boom-is-coming.html","destination":"/de/blog/billion-euro-package-for-infrastructure-the-cable-boom-is-coming","permanent":true},{"source":"/posts/cable-abbreviations-decoded-the-key-to-choosing-the-right-cable.html","destination":"/de/blog/cable-abbreviations-decoded-the-key-to-choosing-the-right-cable","permanent":true},{"source":"/posts/cable-drum-quality-the-foundation-of-cable-reliability.html","destination":"/de/blog/cable-drum-quality-the-foundation-of-cable-reliability","permanent":true},{"source":"/posts/cable-drum-safety-ensuring-smooth-operations-and-accident-free-environments.html","destination":"/de/blog/cable-drum-safety-ensuring-smooth-operations-and-accident-free-environments","permanent":true},{"source":"/posts/climate-neutral-by-2050-what-we-need-to-do-to-achieve-this-goal.html","destination":"/de/blog/climate-neutral-by-2050-what-we-need-to-do-to-achieve-this-goal","permanent":true},{"source":"/posts/cost-comparison-copper-vs-aluminum-cables-in-wind-farms-which-is-worthwhile-in-the-long-term.html","destination":"/de/blog/cost-comparison-copper-vs-aluminum-cables-in-wind-farms-which-is-worthwhile-in-the-long-term","permanent":true},{"source":"/posts/expanding-the-grid-by-2025-building-the-foundation-for-a-successful-energy-transition.html","destination":"/de/blog/expanding-the-grid-by-2025-building-the-foundation-for-a-successful-energy-transition","permanent":true},{"source":"/posts/eye-opening-realities-of-green-energy-transformation.html","destination":"/de/blog/eye-opening-realities-of-green-energy-transformation","permanent":true},{"source":"/posts/focus-on-wind-farm-construction-three-typical-cable-challenges.html","destination":"/de/blog/focus-on-wind-farm-construction-three-typical-cable-challenges","permanent":true},{"source":"/posts/from-smart-to-sustainable-this-is-what-the-energy-industry-will-look-like-in-the-near-future.html","destination":"/de/blog/from-smart-to-sustainable-this-is-what-the-energy-industry-will-look-like-in-the-near-future","permanent":true},{"source":"/posts/green-energy-starts-underground-and-with-a-plan.html","destination":"/de/blog/green-energy-starts-underground-and-with-a-plan","permanent":true},{"source":"/posts/how-the-cable-industry-is-driving-sustainability-and-renewable-energies-forward.html","destination":"/de/blog/how-the-cable-industry-is-driving-sustainability-and-renewable-energies-forward","permanent":true},{"source":"/posts/how-the-right-cables-quietly-power-the-green-energy-revolution.html","destination":"/de/blog/how-the-right-cables-quietly-power-the-green-energy-revolution","permanent":true},{"source":"/posts/how-to-choose-the-right-cable-for-your-next-project.html","destination":"/de/blog/how-to-choose-the-right-cable-for-your-next-project","permanent":true},{"source":"/posts/is-wind-energy-really-enough-a-deeper-dive-behind-the-headlines.html","destination":"/de/blog/is-wind-energy-really-enough-a-deeper-dive-behind-the-headlines","permanent":true},{"source":"/posts/etib-in-the-directory-of-wind-energy-2025.html","destination":"/de/blog/etib-in-the-directory-of-wind-energy-2025","permanent":true},{"source":"/posts/na2xsf2y-three-conductor-medium-voltage-cable-available.html","destination":"/de/blog/na2xsf2y-three-conductor-medium-voltage-cable-available","permanent":true},{"source":"/posts/recycling-of-cable-drums-sustainability-in-wind-power-projects.html","destination":"/de/blog/recycling-of-cable-drums-sustainability-in-wind-power-projects","permanent":true},{"source":"/posts/securing-the-future-with-h1z2z2-k-our-solar-cable-for-intersolar-2025.html","destination":"/de/blog/securing-the-future-with-h1z2z2-k-our-solar-cable-for-intersolar-2025","permanent":true},{"source":"/posts/the-art-of-cable-logistics-moving-the-backbone-of-modern-energy-networks.html","destination":"/de/blog/the-art-of-cable-logistics-moving-the-backbone-of-modern-energy-networks","permanent":true},{"source":"/posts/the-best-underground-cables-for-wind-power-and-solar-order-from-us-now.html","destination":"/de/blog/the-best-underground-cables-for-wind-power-and-solar-order-from-us-now","permanent":true},{"source":"/posts/the-perfect-cable-inquiry-how-to-save-yourself-unnecessary-queries.html","destination":"/de/blog/the-perfect-cable-inquiry-how-to-save-yourself-unnecessary-queries","permanent":true},{"source":"/posts/this-what-you-need-to-know-about-renewable-energies-in-2025.html","destination":"/de/blog/this-what-you-need-to-know-about-renewable-energies-in-2025","permanent":true},{"source":"/posts/welcome-to-the-future-of-etib-our-new-website-is-live.html","destination":"/de/blog/welcome-to-the-future-of-etib-our-new-website-is-live","permanent":true},{"source":"/posts/what-makes-a-first-class-cable-find-out-here.html","destination":"/de/blog/what-makes-a-first-class-cable-find-out-here","permanent":true},{"source":"/posts/which-cables-for-wind-power-differences-from-low-to-extra-high-voltage-explained-2.html","destination":"/de/blog/which-cables-for-wind-power-differences-from-low-to-extra-high-voltage-explained-2","permanent":true},{"source":"/posts/why-the-n2xsf2y-is-the-ideal-cable-for-your-energy-project.html","destination":"/de/blog/why-the-n2xsf2y-is-the-ideal-cable-for-your-energy-project","permanent":true},{"source":"/posts/why-wind-farm-grid-connection-cables-must-withstand-extreme-loads.html","destination":"/de/blog/why-wind-farm-grid-connection-cables-must-withstand-extreme-loads","permanent":true},{"source":"/products/power-cables/high-voltage-cables/n2xsfl2y","destination":"/de/products/n2xsfl2y-hv","permanent":true},{"source":"/products/power-cables/high-voltage-cables/na2xsfl2y-3","destination":"/de/products/na2xsfl2y-hv","permanent":true},{"source":"/products/power-cables/low-voltage-cables/n2x2y","destination":"/de/products/n2x2y","permanent":true},{"source":"/products/power-cables/low-voltage-cables/n2xy","destination":"/de/products/n2xy","permanent":true},{"source":"/products/power-cables/low-voltage-cables/na2x2y","destination":"/de/products/na2x2y","permanent":true},{"source":"/products/power-cables/low-voltage-cables/na2xy","destination":"/de/products/na2xy","permanent":true},{"source":"/products/power-cables/low-voltage-cables/nay2y","destination":"/de/products/nay2y","permanent":true},{"source":"/products/power-cables/low-voltage-cables/naycwy","destination":"/de/products/naycwy","permanent":true},{"source":"/products/power-cables/low-voltage-cables/nayy","destination":"/de/products/nayy","permanent":true},{"source":"/products/power-cables/low-voltage-cables/ny2y","destination":"/de/products/ny2y","permanent":true},{"source":"/products/power-cables/low-voltage-cables/nycwy","destination":"/de/products/nycwy","permanent":true},{"source":"/products/power-cables/low-voltage-cables/nyy","destination":"/de/products/nyy","permanent":true},{"source":"/products/power-cables/medium-voltage-cables/n2xs2y","destination":"/de/products/n2xs2y","permanent":true},{"source":"/products/power-cables/medium-voltage-cables/n2xsf2y","destination":"/de/products/n2xsf2y","permanent":true},{"source":"/products/power-cables/medium-voltage-cables/n2xsfl2y-3","destination":"/de/products/n2xsfl2y-mv","permanent":true},{"source":"/products/power-cables/medium-voltage-cables/na2xs2y","destination":"/de/products/na2xs2y","permanent":true},{"source":"/products/power-cables/medium-voltage-cables/na2xsf2y","destination":"/de/products/na2xsf2y","permanent":true},{"source":"/products/power-cables/medium-voltage-cables/na2xsfl2y","destination":"/de/products/na2xsfl2y-mv","permanent":true},{"source":"/products/power-cables/medium-voltage-cables/na2xsy","destination":"/de/products/na2xsy","permanent":true},{"source":"/products/solar-cables/h1z2z2-k","destination":"/de/products/solar-cables/h1z2z2-k","permanent":true},{"source":"/de/produkte/stromkabel/solarkabel/h1z2z2-k","destination":"/de/produkte/solarkabel/h1z2z2-k","permanent":true},{"source":"/de/produkte/stromkabel/niederspannungskabel/naycwy-2","destination":"/de/produkte/niederspannungskabel/naycwy","permanent":true},{"source":"/de/produkte/stromkabel/niederspannungskabel/ny2y-2","destination":"/de/produkte/niederspannungskabel/ny2y","permanent":true},{"source":"/vcf/klaus-mintel","destination":"/klaus-mintel.vcf","permanent":true},{"source":"/vcf/michael-bodemer","destination":"/michael-bodemer.vcf","permanent":true}]} +const nextConfig = {"env":{"_sentryRewriteFramesDistDir":".next","_sentryRewriteFramesAssetPrefixPath":"","_sentryRelease":"66d0d6a6e06671f2575ec88a95202d81fe7d0e81"},"typescript":{"ignoreBuildErrors":false},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.mjs","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"maximumResponseBody":50000000,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[{"protocol":"https","hostname":"e-tib.com"},{"protocol":"https","hostname":"*.e-tib.com"},{"protocol":"http","hostname":"e-tib.com"},{"protocol":"http","hostname":"*.e-tib.com"},{"protocol":"http","hostname":"etib.localhost"},{"protocol":"http","hostname":"localhost"}],"qualities":[25,50,75,100],"unoptimized":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":300000,"pagesBufferLength":2},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":false,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{"fetches":{"fullUrl":true}},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/Volumes/Alpha SSD/Coding/e-tib.com","cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"experimental":{"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"dynamicOnHover":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":15,"memoryBasedWorkersCount":true,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"clientTraceMetadata":["baggage","sentry-trace"],"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"viewTransition":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":false,"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"transitionIndicator":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"browserDebugInfoInTerminal":false,"lockDistDir":true,"isolatedDevBuild":true,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"turbopackFileSystemCacheForDev":true,"turbopackFileSystemCacheForBuild":false,"turbopackInferModuleSideEffects":false,"optimizePackageImports":["lucide-react","framer-motion","@/components/ui","@sentry/nextjs","react-hook-form","zod","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"serverActions":{"allowedOrigins":["*.e-tib.com","*.branch.e-tib.com","localhost:3000","etib.localhost"]},"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.mjs","turbopack":{"resolveAlias":{"next-intl/config":"./i18n/request.ts","next-mdx-import-source-file":"@vercel/turbopack-next/mdx-import-source"},"debugIds":true,"rules":{"**/instrumentation-client.*":{"condition":{"not":"foreign"},"loaders":[{"loader":"/Volumes/Alpha SSD/Coding/e-tib.com/node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/valueInjectionLoader.js","options":{"values":{"_sentryRouteManifest":"{\"dynamicRoutes\":[{\"path\":\"/:locale\",\"regex\":\"^/([^/]+)$\",\"paramNames\":[\"locale\"],\"hasOptionalPrefix\":true},{\"path\":\"/:locale/:slug\",\"regex\":\"^/([^/]+)/([^/]+)$\",\"paramNames\":[\"locale\",\"slug\"],\"hasOptionalPrefix\":true},{\"path\":\"/:locale/blog\",\"regex\":\"^/([^/]+)/blog$\",\"paramNames\":[\"locale\"],\"hasOptionalPrefix\":true},{\"path\":\"/:locale/blog/:slug\",\"regex\":\"^/([^/]+)/blog/([^/]+)$\",\"paramNames\":[\"locale\",\"slug\"],\"hasOptionalPrefix\":true},{\"path\":\"/:locale/contact\",\"regex\":\"^/([^/]+)/contact$\",\"paramNames\":[\"locale\"],\"hasOptionalPrefix\":true},{\"path\":\"/:locale/team\",\"regex\":\"^/([^/]+)/team$\",\"paramNames\":[\"locale\"],\"hasOptionalPrefix\":true},{\"path\":\"/:locale/test\",\"regex\":\"^/([^/]+)/test$\",\"paramNames\":[\"locale\"],\"hasOptionalPrefix\":true}],\"staticRoutes\":[{\"path\":\"/test\"}],\"isrRoutes\":[\"/:locale/contact\"]}","_sentryNextJsVersion":"16.1.6"}}}]},"**/instrumentation.*":{"condition":{"not":"foreign"},"loaders":[{"loader":"/Volumes/Alpha SSD/Coding/e-tib.com/node_modules/.pnpm/@sentry+nextjs@10.47.0_@opentelemetry+context-async-hooks@2.6.1_@opentelemetry+api@1.9._592068e1ec60e8e26228b1be96d6d8d5/node_modules/@sentry/nextjs/build/cjs/config/loaders/valueInjectionLoader.js","options":{"values":{"__SENTRY_SERVER_MODULES__":{"@mintel/mail":"1.9.5","@mintel/next-config":"1.9.5","@mintel/next-feedback":"1.9.5","@mintel/next-utils":"1.9.5","@next/mdx":"^16.1.6","@react-email/components":"1.0.8","@react-pdf/renderer":"^4.3.2","@react-three/drei":"^10.7.7","@react-three/fiber":"^9.5.0","@sentry/nextjs":"^10.39.0","@types/recharts":"^2.0.1","axios":"^1.13.5","clsx":"^2.1.1","framer-motion":"^12.34.0","graphql":"^16.12.0","gray-matter":"^4.0.3","i18next":"^25.7.3","import-in-the-middle":"^1.11.0","ioredis":"^5.9.3","jsdom":"^27.4.0","leaflet":"^1.9.4","next":"16.1.6","next-i18next":"^15.4.3","next-intl":"^4.8.2","next-mdx-remote":"^5.0.0","nodemailer":"^8.0.7","pdf-lib":"^1.17.1","pino":"^10.3.0","pino-pretty":"^13.1.3","react":"^19.2.4","react-dom":"^19.2.4","react-email":"^5.2.5","react-leaflet":"^4.2.1","react-markdown":"^10.1.0","recharts":"^3.7.0","rehype-raw":"^7.0.0","remark-gfm":"^4.0.1","require-in-the-middle":"^8.0.1","resend":"^3.5.0","schema-dts":"^1.1.5","sharp":"^0.34.5","svg-to-pdfkit":"^0.1.8","tailwind-merge":"^3.4.0","three":"^0.183.1","xlsx":"npm:@e965/xlsx@^0.20.3","zod":"3.25.76","@commitlint/cli":"^20.4.0","@commitlint/config-conventional":"^20.4.0","@cspell/dict-de-de":"^4.1.2","@lhci/cli":"^0.15.1","@mintel/eslint-config":"^1.9.0","@mintel/tsconfig":"^1.9.0","@next/bundle-analyzer":"^16.1.6","@tailwindcss/cli":"^4.1.18","@tailwindcss/postcss":"^4.1.18","@types/geojson":"^7946.0.16","@types/leaflet":"^1.9.21","@types/node":"^22.19.3","@types/nodemailer":"^7.0.5","@types/react":"^19.2.7","@types/react-dom":"^19.2.3","@types/sharp":"^0.31.1","@types/three":"^0.183.1","@vitejs/plugin-react":"^5.1.4","@vitest/ui":"^4.0.16","autoprefixer":"^10.4.23","cheerio":"^1.2.0","critters":"^0.0.25","cspell":"^9.6.4","dotenv":"^17.3.1","eslint":"^9.18.0","happy-dom":"^20.6.1","html-validate":"^10.8.0","husky":"^9.1.7","lint-staged":"^16.2.7","lucide-react":"^0.563.0","pa11y-ci":"^4.0.1","pdf-parse":"^2.4.5","postcss":"^8.5.6","prettier":"^3.8.1","puppeteer":"^24.37.3","sass":"^1.97.1","start-server-and-test":"^2.1.3","tailwindcss":"^4.1.18","tsx":"^4.21.0","turbo":"^2.8.10","typescript":"^5.7.2","vitest":"^4.0.16","xlsx-cli":"^1.1.3"},"_sentryNextJsVersion":"16.1.6"}}}]},"{*,next-mdx-rule}":[{"loaders":[{"loader":"/Volumes/Alpha SSD/Coding/e-tib.com/node_modules/.pnpm/@next+mdx@16.2.4_@mdx-js+react@3.1.1_@types+react@19.2.14_react@19.2.4_/node_modules/@next/mdx/mdx-js-loader.js","options":{"providerImportSource":"next-mdx-import-source-file"}}],"as":"*.tsx","condition":{"path":{}}}]},"root":"/Volumes/Alpha SSD/Coding/e-tib.com"},"transpilePackages":["react-image-crop","@react-three/fiber"],"serverExternalPackages":["amqplib","connect","dataloader","express","generic-pool","graphql","@hapi/hapi","ioredis","kafkajs","koa","lru-memoizer","mongodb","mongoose","mysql","mysql2","knex","pg","pg-pool","@node-redis/client","@redis/client","redis","tedious"],"distDirRoot":".next","_originalRewrites":{"beforeFiles":[{"source":"/:locale/datasheets/:path*","destination":"/api/datasheets/:path*"},{"source":"/:locale/brochures/:path*","destination":"/api/brochures/:path*"},{"source":"/datasheets/:path*","destination":"/api/datasheets/:path*"},{"source":"/brochures/:path*","destination":"/api/brochures/:path*"},{"source":"/de/produkte","destination":"/de/products"},{"source":"/de/produkte/:path*","destination":"/de/products/:path*"},{"source":"/de/kontakt","destination":"/de/contact"},{"source":"/en/produkte","destination":"/en/products"},{"source":"/en/produkte/:path*","destination":"/en/products/:path*"},{"source":"/en/kontakt","destination":"/en/contact"},{"source":"/en/impressum","destination":"/en/legal-notice"},{"source":"/en/datenschutz","destination":"/en/privacy-policy"},{"source":"/en/agbs","destination":"/en/terms"}],"afterFiles":[],"fallback":[]},"_originalRedirects":[{"source":"/blog","destination":"/de/blog","permanent":true},{"source":"/contact","destination":"/de/contact","permanent":true},{"source":"/team","destination":"/de/team","permanent":true},{"source":"/products","destination":"/de/products","permanent":true},{"source":"/posts/100-renewable-energy-only-with-the-right-cable-infrastructure.html","destination":"/de/blog/100-renewable-energy-only-with-the-right-cable-infrastructure","permanent":true},{"source":"/posts/billion-euro-package-for-infrastructure-the-cable-boom-is-coming.html","destination":"/de/blog/billion-euro-package-for-infrastructure-the-cable-boom-is-coming","permanent":true},{"source":"/posts/cable-abbreviations-decoded-the-key-to-choosing-the-right-cable.html","destination":"/de/blog/cable-abbreviations-decoded-the-key-to-choosing-the-right-cable","permanent":true},{"source":"/posts/cable-drum-quality-the-foundation-of-cable-reliability.html","destination":"/de/blog/cable-drum-quality-the-foundation-of-cable-reliability","permanent":true},{"source":"/posts/cable-drum-safety-ensuring-smooth-operations-and-accident-free-environments.html","destination":"/de/blog/cable-drum-safety-ensuring-smooth-operations-and-accident-free-environments","permanent":true},{"source":"/posts/climate-neutral-by-2050-what-we-need-to-do-to-achieve-this-goal.html","destination":"/de/blog/climate-neutral-by-2050-what-we-need-to-do-to-achieve-this-goal","permanent":true},{"source":"/posts/cost-comparison-copper-vs-aluminum-cables-in-wind-farms-which-is-worthwhile-in-the-long-term.html","destination":"/de/blog/cost-comparison-copper-vs-aluminum-cables-in-wind-farms-which-is-worthwhile-in-the-long-term","permanent":true},{"source":"/posts/expanding-the-grid-by-2025-building-the-foundation-for-a-successful-energy-transition.html","destination":"/de/blog/expanding-the-grid-by-2025-building-the-foundation-for-a-successful-energy-transition","permanent":true},{"source":"/posts/eye-opening-realities-of-green-energy-transformation.html","destination":"/de/blog/eye-opening-realities-of-green-energy-transformation","permanent":true},{"source":"/posts/focus-on-wind-farm-construction-three-typical-cable-challenges.html","destination":"/de/blog/focus-on-wind-farm-construction-three-typical-cable-challenges","permanent":true},{"source":"/posts/from-smart-to-sustainable-this-is-what-the-energy-industry-will-look-like-in-the-near-future.html","destination":"/de/blog/from-smart-to-sustainable-this-is-what-the-energy-industry-will-look-like-in-the-near-future","permanent":true},{"source":"/posts/green-energy-starts-underground-and-with-a-plan.html","destination":"/de/blog/green-energy-starts-underground-and-with-a-plan","permanent":true},{"source":"/posts/how-the-cable-industry-is-driving-sustainability-and-renewable-energies-forward.html","destination":"/de/blog/how-the-cable-industry-is-driving-sustainability-and-renewable-energies-forward","permanent":true},{"source":"/posts/how-the-right-cables-quietly-power-the-green-energy-revolution.html","destination":"/de/blog/how-the-right-cables-quietly-power-the-green-energy-revolution","permanent":true},{"source":"/posts/how-to-choose-the-right-cable-for-your-next-project.html","destination":"/de/blog/how-to-choose-the-right-cable-for-your-next-project","permanent":true},{"source":"/posts/is-wind-energy-really-enough-a-deeper-dive-behind-the-headlines.html","destination":"/de/blog/is-wind-energy-really-enough-a-deeper-dive-behind-the-headlines","permanent":true},{"source":"/posts/etib-in-the-directory-of-wind-energy-2025.html","destination":"/de/blog/etib-in-the-directory-of-wind-energy-2025","permanent":true},{"source":"/posts/na2xsf2y-three-conductor-medium-voltage-cable-available.html","destination":"/de/blog/na2xsf2y-three-conductor-medium-voltage-cable-available","permanent":true},{"source":"/posts/recycling-of-cable-drums-sustainability-in-wind-power-projects.html","destination":"/de/blog/recycling-of-cable-drums-sustainability-in-wind-power-projects","permanent":true},{"source":"/posts/securing-the-future-with-h1z2z2-k-our-solar-cable-for-intersolar-2025.html","destination":"/de/blog/securing-the-future-with-h1z2z2-k-our-solar-cable-for-intersolar-2025","permanent":true},{"source":"/posts/the-art-of-cable-logistics-moving-the-backbone-of-modern-energy-networks.html","destination":"/de/blog/the-art-of-cable-logistics-moving-the-backbone-of-modern-energy-networks","permanent":true},{"source":"/posts/the-best-underground-cables-for-wind-power-and-solar-order-from-us-now.html","destination":"/de/blog/the-best-underground-cables-for-wind-power-and-solar-order-from-us-now","permanent":true},{"source":"/posts/the-perfect-cable-inquiry-how-to-save-yourself-unnecessary-queries.html","destination":"/de/blog/the-perfect-cable-inquiry-how-to-save-yourself-unnecessary-queries","permanent":true},{"source":"/posts/this-what-you-need-to-know-about-renewable-energies-in-2025.html","destination":"/de/blog/this-what-you-need-to-know-about-renewable-energies-in-2025","permanent":true},{"source":"/posts/welcome-to-the-future-of-etib-our-new-website-is-live.html","destination":"/de/blog/welcome-to-the-future-of-etib-our-new-website-is-live","permanent":true},{"source":"/posts/what-makes-a-first-class-cable-find-out-here.html","destination":"/de/blog/what-makes-a-first-class-cable-find-out-here","permanent":true},{"source":"/posts/which-cables-for-wind-power-differences-from-low-to-extra-high-voltage-explained-2.html","destination":"/de/blog/which-cables-for-wind-power-differences-from-low-to-extra-high-voltage-explained-2","permanent":true},{"source":"/posts/why-the-n2xsf2y-is-the-ideal-cable-for-your-energy-project.html","destination":"/de/blog/why-the-n2xsf2y-is-the-ideal-cable-for-your-energy-project","permanent":true},{"source":"/posts/why-wind-farm-grid-connection-cables-must-withstand-extreme-loads.html","destination":"/de/blog/why-wind-farm-grid-connection-cables-must-withstand-extreme-loads","permanent":true},{"source":"/products/power-cables/high-voltage-cables/n2xsfl2y","destination":"/de/products/n2xsfl2y-hv","permanent":true},{"source":"/products/power-cables/high-voltage-cables/na2xsfl2y-3","destination":"/de/products/na2xsfl2y-hv","permanent":true},{"source":"/products/power-cables/low-voltage-cables/n2x2y","destination":"/de/products/n2x2y","permanent":true},{"source":"/products/power-cables/low-voltage-cables/n2xy","destination":"/de/products/n2xy","permanent":true},{"source":"/products/power-cables/low-voltage-cables/na2x2y","destination":"/de/products/na2x2y","permanent":true},{"source":"/products/power-cables/low-voltage-cables/na2xy","destination":"/de/products/na2xy","permanent":true},{"source":"/products/power-cables/low-voltage-cables/nay2y","destination":"/de/products/nay2y","permanent":true},{"source":"/products/power-cables/low-voltage-cables/naycwy","destination":"/de/products/naycwy","permanent":true},{"source":"/products/power-cables/low-voltage-cables/nayy","destination":"/de/products/nayy","permanent":true},{"source":"/products/power-cables/low-voltage-cables/ny2y","destination":"/de/products/ny2y","permanent":true},{"source":"/products/power-cables/low-voltage-cables/nycwy","destination":"/de/products/nycwy","permanent":true},{"source":"/products/power-cables/low-voltage-cables/nyy","destination":"/de/products/nyy","permanent":true},{"source":"/products/power-cables/medium-voltage-cables/n2xs2y","destination":"/de/products/n2xs2y","permanent":true},{"source":"/products/power-cables/medium-voltage-cables/n2xsf2y","destination":"/de/products/n2xsf2y","permanent":true},{"source":"/products/power-cables/medium-voltage-cables/n2xsfl2y-3","destination":"/de/products/n2xsfl2y-mv","permanent":true},{"source":"/products/power-cables/medium-voltage-cables/na2xs2y","destination":"/de/products/na2xs2y","permanent":true},{"source":"/products/power-cables/medium-voltage-cables/na2xsf2y","destination":"/de/products/na2xsf2y","permanent":true},{"source":"/products/power-cables/medium-voltage-cables/na2xsfl2y","destination":"/de/products/na2xsfl2y-mv","permanent":true},{"source":"/products/power-cables/medium-voltage-cables/na2xsy","destination":"/de/products/na2xsy","permanent":true},{"source":"/products/solar-cables/h1z2z2-k","destination":"/de/products/solar-cables/h1z2z2-k","permanent":true},{"source":"/de/produkte/stromkabel/solarkabel/h1z2z2-k","destination":"/de/produkte/solarkabel/h1z2z2-k","permanent":true},{"source":"/de/produkte/stromkabel/niederspannungskabel/naycwy-2","destination":"/de/produkte/niederspannungskabel/naycwy","permanent":true},{"source":"/de/produkte/stromkabel/niederspannungskabel/ny2y-2","destination":"/de/produkte/niederspannungskabel/ny2y","permanent":true},{"source":"/vcf/klaus-mintel","destination":"/klaus-mintel.vcf","permanent":true},{"source":"/vcf/michael-bodemer","destination":"/michael-bodemer.vcf","permanent":true}]} process.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig) diff --git a/.next/static/Wkpp63uvO0BZHP6YvXq4O/_buildManifest.js b/.next/static/RNpp86I_Wwm4reXmuvbzY/_buildManifest.js similarity index 100% rename from .next/static/Wkpp63uvO0BZHP6YvXq4O/_buildManifest.js rename to .next/static/RNpp86I_Wwm4reXmuvbzY/_buildManifest.js diff --git a/.next/static/Wkpp63uvO0BZHP6YvXq4O/_clientMiddlewareManifest.json b/.next/static/RNpp86I_Wwm4reXmuvbzY/_clientMiddlewareManifest.json similarity index 100% rename from .next/static/Wkpp63uvO0BZHP6YvXq4O/_clientMiddlewareManifest.json rename to .next/static/RNpp86I_Wwm4reXmuvbzY/_clientMiddlewareManifest.json diff --git a/.next/static/Wkpp63uvO0BZHP6YvXq4O/_ssgManifest.js b/.next/static/RNpp86I_Wwm4reXmuvbzY/_ssgManifest.js similarity index 100% rename from .next/static/Wkpp63uvO0BZHP6YvXq4O/_ssgManifest.js rename to .next/static/RNpp86I_Wwm4reXmuvbzY/_ssgManifest.js diff --git a/.next/static/chunks/0a765fb53d81ccec.js b/.next/static/chunks/0a765fb53d81ccec.js deleted file mode 100644 index 2b2912e14..000000000 --- a/.next/static/chunks/0a765fb53d81ccec.js +++ /dev/null @@ -1,4 +0,0 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="57fc6e9b-4019-f360-387a-758afd1c0d49")}catch(e){}}(); -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,7284,r=>{"use strict";function e(){for(var r,e,t=0,o="",n=arguments.length;te])}]); - -//# debugId=57fc6e9b-4019-f360-387a-758afd1c0d49 \ No newline at end of file diff --git a/.next/static/chunks/11cc0f2e00ba9563.js b/.next/static/chunks/11cc0f2e00ba9563.js new file mode 100644 index 000000000..d99b76ffe --- /dev/null +++ b/.next/static/chunks/11cc0f2e00ba9563.js @@ -0,0 +1,4 @@ +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="8ae158c7-9d0e-2ea5-d887-f28582677222")}catch(e){}}(); +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,102227,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReflectAdapter",{enumerable:!0,get:function(){return n}});class n{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}},365278,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(496932).createAsyncLocalStorage)()},517110,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorage",{enumerable:!0,get:function(){return n.afterTaskAsyncStorageInstance}});let n=e.r(365278)},780329,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isRequestAPICallableInsideAfter:function(){return c},throwForSearchParamsAccessInUseCache:function(){return l},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(579781),s=e.r(517110);function o(e,t){throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${t}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function l(e,t){let r=Object.defineProperty(Error(`Route ${e.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(r,t),e.invalidDynamicUsageError??=r,r}function c(){let e=s.afterTaskAsyncStorage.getStore();return(null==e?void 0:e.rootTaskSpawnPhase)==="action"}},759823,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a={RenderStage:function(){return l},StagedRenderingController:function(){return c}};for(var i in a)Object.defineProperty(r,i,{enumerable:!0,get:a[i]});let s=e.r(436120),o=e.r(444841);var l=((n={})[n.Before=1]="Before",n[n.Static=2]="Static",n[n.Runtime=3]="Runtime",n[n.Dynamic=4]="Dynamic",n[n.Abandoned=5]="Abandoned",n);class c{constructor(e=null,t){this.abortSignal=e,this.hasRuntimePrefetch=t,this.currentStage=1,this.staticInterruptReason=null,this.runtimeInterruptReason=null,this.staticStageEndTime=1/0,this.runtimeStageEndTime=1/0,this.runtimeStageListeners=[],this.dynamicStageListeners=[],this.runtimeStagePromise=(0,o.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,o.createPromiseWithResolvers)(),this.mayAbandon=!1,e&&(e.addEventListener("abort",()=>{let{reason:t}=e;this.currentStage<3&&(this.runtimeStagePromise.promise.catch(d),this.runtimeStagePromise.reject(t)),(this.currentStage<4||5===this.currentStage)&&(this.dynamicStagePromise.promise.catch(d),this.dynamicStagePromise.reject(t))},{once:!0}),this.mayAbandon=!0)}onStage(e,t){if(this.currentStage>=e)t();else if(3===e)this.runtimeStageListeners.push(t);else if(4===e)this.dynamicStageListeners.push(t);else throw Object.defineProperty(new s.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}canSyncInterrupt(){if(1===this.currentStage)return!1;let e=this.hasRuntimePrefetch?4:3;return this.currentStage=3&&(this.staticStageEndTime=performance.now()+performance.timeOrigin,this.resolveRuntimeStage()),t<4&&e>=4){this.runtimeStageEndTime=performance.now()+performance.timeOrigin,this.resolveDynamicStage();return}}resolveRuntimeStage(){let e=this.runtimeStageListeners;for(let t=0;t{n.then(e.bind(null,i),t)}),void 0!==a&&(s.displayName=a),s);return this.abortSignal&&o.catch(d),o}}function d(){}},118720,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addPathSuffix",{enumerable:!0,get:function(){return a}});let n=e.r(506985);function a(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:i}=(0,n.parsePath)(e);return`${r}${t}${a}${i}`}},446247,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addLocale",{enumerable:!0,get:function(){return i}});let n=e.r(688391),a=e.r(712550);function i(e,t,r,i){if(!t||t===r)return e;let s=e.toLowerCase();return!i&&((0,a.pathHasPrefix)(s,"/api")||(0,a.pathHasPrefix)(s,`/${t.toLowerCase()}`))?e:(0,n.addPathPrefix)(e,`/${t}`)}},971560,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"formatNextPathnameInfo",{enumerable:!0,get:function(){return o}});let n=e.r(895708),a=e.r(688391),i=e.r(118720),s=e.r(446247);function o(e){let t=(0,s.addLocale)(e.pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix);return(e.buildId||!e.trailingSlash)&&(t=(0,n.removeTrailingSlash)(t)),e.buildId&&(t=(0,i.addPathSuffix)((0,a.addPathPrefix)(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=(0,a.addPathPrefix)(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:(0,i.addPathSuffix)(t,"/"):(0,n.removeTrailingSlash)(t)}},866140,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"normalizeLocalePath",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e,t){let r;if(!t)return{pathname:e};let a=n.get(t);a||(a=t.map(e=>e.toLowerCase()),n.set(t,a));let i=e.split("/",2);if(!i[1])return{pathname:e};let s=i[1].toLowerCase(),o=a.indexOf(s);return o<0?{pathname:e}:(r=t[o],{pathname:e=e.slice(r.length+1)||"/",detectedLocale:r})}},857436,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removePathPrefix",{enumerable:!0,get:function(){return a}});let n=e.r(712550);function a(e,t){if(!(0,n.pathHasPrefix)(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:`/${r}`}},707723,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getNextPathnameInfo",{enumerable:!0,get:function(){return s}});let n=e.r(866140),a=e.r(857436),i=e.r(712550);function s(e,t){let{basePath:r,i18n:s,trailingSlash:o}=t.nextConfig??{},l={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):o};r&&(0,i.pathHasPrefix)(l.pathname,r)&&(l.pathname=(0,a.removePathPrefix)(l.pathname,r),l.basePath=r);let c=l.pathname;if(l.pathname.startsWith("/_next/data/")&&l.pathname.endsWith(".json")){let e=l.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");l.buildId=e[0],c="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(l.pathname=c)}if(s){let e=t.i18nProvider?t.i18nProvider.analyze(l.pathname):(0,n.normalizeLocalePath)(l.pathname,s.locales);l.locale=e.detectedLocale,l.pathname=e.pathname??l.pathname,!e.detectedLocale&&l.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(c):(0,n.normalizeLocalePath)(c,s.locales)).detectedLocale&&(l.locale=e.detectedLocale)}return l}},955973,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_SUFFIX:function(){return g},APP_DIR_ALIAS:function(){return H},CACHE_ONE_YEAR:function(){return T},DOT_NEXT_ALIAS:function(){return D},ESLINT_DEFAULT_DIRS:function(){return ea},GSP_NO_RETURNED_VALUE:function(){return Q},GSSP_COMPONENT_MEMBER_ERROR:function(){return et},GSSP_NO_RETURNED_VALUE:function(){return Z},HTML_CONTENT_TYPE_HEADER:function(){return s},INFINITE_CACHE:function(){return j},INSTRUMENTATION_HOOK_FILENAME:function(){return L},JSON_CONTENT_TYPE_HEADER:function(){return o},MATCHED_PATH_HEADER:function(){return d},MIDDLEWARE_FILENAME:function(){return I},MIDDLEWARE_LOCATION_REGEXP:function(){return A},NEXT_BODY_SUFFIX:function(){return _},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return P},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return E},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return y},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return N},NEXT_CACHE_TAGS_HEADER:function(){return v},NEXT_CACHE_TAG_MAX_ITEMS:function(){return S},NEXT_CACHE_TAG_MAX_LENGTH:function(){return R},NEXT_DATA_SUFFIX:function(){return x},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return c},NEXT_META_SUFFIX:function(){return b},NEXT_QUERY_PARAM_PREFIX:function(){return l},NEXT_RESUME_HEADER:function(){return w},NON_STANDARD_NODE_ENV:function(){return er},PAGES_DIR_ALIAS:function(){return k},PRERENDER_REVALIDATE_HEADER:function(){return u},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return m},PROXY_FILENAME:function(){return O},PROXY_LOCATION_REGEXP:function(){return C},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return V},ROOT_DIR_ALIAS:function(){return M},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return X},RSC_ACTION_ENCRYPTION_ALIAS:function(){return F},RSC_ACTION_PROXY_ALIAS:function(){return U},RSC_ACTION_VALIDATE_ALIAS:function(){return G},RSC_CACHE_WRAPPER_ALIAS:function(){return W},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return z},RSC_MOD_REF_PROXY_ALIAS:function(){return B},RSC_SEGMENTS_DIR_SUFFIX:function(){return f},RSC_SEGMENT_SUFFIX:function(){return h},RSC_SUFFIX:function(){return p},SERVER_PROPS_EXPORT_ERROR:function(){return q},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return $},SERVER_PROPS_SSG_CONFLICT:function(){return K},SERVER_RUNTIME:function(){return ei},SSG_FALLBACK_EXPORT_ERROR:function(){return en},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return Y},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return J},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return i},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return ee},WEBPACK_LAYERS:function(){return el},WEBPACK_RESOURCE_QUERIES:function(){return ec},WEB_SOCKET_MAX_RECONNECTIONS:function(){return es}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i="text/plain",s="text/html; charset=utf-8",o="application/json; charset=utf-8",l="nxtP",c="nxtI",d="x-matched-path",u="x-prerender-revalidate",m="x-prerender-revalidate-if-generated",f=".segments",h=".segment.rsc",p=".rsc",g=".action",x=".json",b=".meta",_=".body",v="x-next-cache-tags",E="x-next-revalidated-tags",y="x-next-revalidate-tag-token",w="next-resume",S=128,R=256,N=1024,P="_N_T_",T=31536e3,j=0xfffffffe,I="middleware",A=`(?:src/)?${I}`,O="proxy",C=`(?:src/)?${O}`,L="instrumentation",k="private-next-pages",D="private-dot-next",M="private-next-root-dir",H="private-next-app-dir",B="private-next-rsc-mod-ref-proxy",G="private-next-rsc-action-validate",U="private-next-rsc-server-reference",W="private-next-rsc-cache-wrapper",z="private-next-rsc-track-dynamic-import",F="private-next-rsc-action-encryption",X="private-next-rsc-action-client-wrapper",V="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",Y="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",$="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",K="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",J="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",q="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",Q="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",Z="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",ee="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",et="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",er='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',en="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",ea=["app","pages","components","lib","src"],ei={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},es=12,eo={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},el={...eo,GROUP:{builtinReact:[eo.reactServerComponents,eo.actionBrowser],serverOnly:[eo.reactServerComponents,eo.actionBrowser,eo.instrument,eo.middleware],neutralTarget:[eo.apiNode,eo.apiEdge],clientOnly:[eo.serverSideRendering,eo.appPagesBrowser],bundled:[eo.reactServerComponents,eo.actionBrowser,eo.serverSideRendering,eo.appPagesBrowser,eo.shared,eo.instrument,eo.middleware],appPages:[eo.reactServerComponents,eo.serverSideRendering,eo.appPagesBrowser,eo.actionBrowser]}},ec={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},630655,e=>{"use strict";var t=e.i(907358),r=e.i(777616);function n(){let e=(0,r.getAppServices)();return{trackEvent:(0,t.useCallback)((t,r)=>{e.analytics.track(t,r)},[e]),trackPageview:(0,t.useCallback)(t=>{e.analytics.trackPageview(t)},[e])}}e.s(["useAnalytics",()=>n])},216033,e=>{"use strict";e.s(["AnalyticsEvents",0,{PAGE_VIEW:"pageview",PAGE_SCROLL:"page_scroll",PAGE_EXIT:"page_exit",SCROLL_DEPTH:"scroll_depth",BUTTON_CLICK:"button_click",LINK_CLICK:"link_click",FORM_SUBMIT:"form_submit",FORM_START:"form_start",FORM_ERROR:"form_error",FORM_FIELD_FOCUS:"form_field_focus",PRODUCT_VIEW:"product_view",PRODUCT_ADD_TO_CART:"product_add_to_cart",PRODUCT_REMOVE_FROM_CART:"product_remove_from_cart",PRODUCT_PURCHASE:"product_purchase",PRODUCT_WISHLIST_ADD:"product_wishlist_add",PRODUCT_WISHLIST_REMOVE:"product_wishlist_remove",PRODUCT_TAB_SWITCH:"product_tab_switch",SEARCH:"search",FILTER_APPLY:"filter_apply",FILTER_CLEAR:"filter_clear",USER_SIGNUP:"user_signup",USER_LOGIN:"user_login",USER_LOGOUT:"user_logout",USER_PROFILE_UPDATE:"user_profile_update",BLOG_POST_VIEW:"blog_post_view",VIDEO_PLAY:"video_play",VIDEO_PAUSE:"video_pause",VIDEO_COMPLETE:"video_complete",DOWNLOAD:"download",MODAL_OPEN:"modal_open",MODAL_CLOSE:"modal_close",TOGGLE_SWITCH:"toggle_switch",ACCORDION_TOGGLE:"accordion_toggle",TAB_SWITCH:"tab_switch",TOC_CLICK:"toc_click",ERROR:"error",PERFORMANCE:"performance",API_ERROR:"api_error",API_SUCCESS:"api_success",QUOTE_REQUEST:"quote_request",CONTACT_FORM_SUBMIT:"contact_form_submit",NEWSLETTER_SUBSCRIBE:"newsletter_subscribe",BROCHURE_DOWNLOAD:"brochure_download"}])},610408,e=>{"use strict";var t=e.i(452797),r=e.i(676525),n=e.i(112086);function a(e){let{data:a}=e,i=e.title||a?.title||"DIE EXPERTEN FÜR KABELTIEFBAU",s=e.subtitle||e.description||a?.subtitle||"Wir verbinden Infrastruktur mit Präzision. Von Horizontalbohrungen bis zu komplexen Leitungsnetzen.",o=e.videoUrl||a?.videoUrl||"/assets/dummy-hero.mp4",l=a?.posterImage?.url||"/assets/photos/DJI_0048.JPG";a?.posterImage?.alt;let c=e.ctaLabel||e.linkText||a?.ctaLabel||"Unternehmen entdecken",d=e.ctaHref||e.linkHref||a?.ctaHref||"#unternehmen",u=e.secondaryCtaLabel||a?.secondaryCtaLabel||"Projekt anfragen",m=e.secondaryCtaHref||a?.secondaryCtaHref||"/kontakt";return(0,t.jsxs)("div",{className:"relative w-full h-[100svh] flex items-center justify-center overflow-hidden bg-neutral-dark",children:[(0,t.jsx)("div",{className:"absolute inset-0 z-0 bg-neutral-dark"}),o&&(0,t.jsx)("video",{className:"absolute inset-0 w-full h-full object-cover z-1 pointer-events-none filter contrast-125 saturate-110 brightness-90",src:o,poster:l,autoPlay:!0,muted:!0,loop:!0,playsInline:!0,preload:"auto"}),(0,t.jsx)("div",{className:"absolute inset-0 bg-[#0a192f]/30 z-[2] mix-blend-multiply"}),(0,t.jsx)("div",{className:"absolute inset-0 bg-[radial-gradient(ellipse_at_center,_var(--tw-gradient-stops))] from-transparent via-black/20 to-black/80 z-[2]"}),(0,t.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-neutral-dark via-neutral-dark/60 to-transparent z-[3]"}),(0,t.jsx)("div",{className:"container relative z-[4] text-center px-4",children:(0,t.jsxs)(n.motion.div,{initial:{opacity:0,y:40},animate:{opacity:1,y:0},transition:{duration:1.2,ease:[.16,1,.3,1]},children:[(0,t.jsx)("h1",{className:"font-heading font-bold text-4xl md:text-6xl lg:text-8xl text-white mb-6 uppercase tracking-tight drop-shadow-lg",dangerouslySetInnerHTML:{__html:i.replace("KABELTIEFBAU",'KABELTIEFBAU').replace(/\n/g,"
")}}),(0,t.jsx)("p",{className:"text-lg md:text-xl lg:text-2xl text-white/90 max-w-3xl mx-auto mb-12 drop-shadow",children:s}),(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-6",children:[(0,t.jsx)(r.Button,{href:d,variant:"primary",size:"lg",children:c}),(0,t.jsx)(r.Button,{href:m,variant:"outline",size:"lg",className:"border-white/60 text-white hover:text-primary hover:bg-white",children:u})]})]})})]})}e.s(["HeroVideo",()=>a])},138557,e=>{"use strict";var t=e.i(452797),r=e.i(112086),n=e.i(663067),a=e.i(976819);let i=[{title:"E-TIB GmbH",backgroundImage:"/assets/photos/DJI_0243.JPG"},{title:"E-TIB Ingenieurgesellschaft mbH",url:"https://www.etib-ing.com/",backgroundImage:"/assets/photos/DSC01137.JPG"},{title:"NEMO GmbH",url:"https://www.nemo-gmbh.de/",backgroundImage:"/assets/photos/DJI_0048.JPG"}],s={hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.15}}},o={hidden:{opacity:0,y:30},visible:{opacity:1,y:0,transition:{duration:.8,ease:[.16,1,.3,1]}}};function l(e){let{data:l}=e,c=e.badge||l?.badge,d=e.title||l?.title,u=e.companies||l?.companies,m=(0,a.usePathname)(),f=m?.startsWith("/de")??!0,h=u?.map(e=>({title:e.title,url:e.url,backgroundImage:e.backgroundImage?.url||e.backgroundImage||"/assets/photos/DJI_0243.JPG"}))||i;return(0,t.jsx)("section",{id:"unternehmen",className:"py-24 bg-neutral-dark border-b border-neutral-800",children:(0,t.jsxs)("div",{className:"container relative z-10 px-4",children:[(c||d)&&(0,t.jsxs)("div",{className:"text-center max-w-3xl mx-auto mb-16",children:[c&&(0,t.jsx)("h2",{className:"text-primary font-bold tracking-wider uppercase text-sm mb-3",children:c}),d&&(0,t.jsx)("h3",{className:"font-heading text-4xl md:text-5xl font-extrabold text-white",children:d})]}),(0,t.jsx)(r.motion.div,{className:"grid grid-cols-1 md:grid-cols-3 gap-6",variants:s,initial:"hidden",whileInView:"visible",viewport:{once:!0,margin:"-50px"},children:h.map((e,a)=>{let i=!e.url,s=i?{}:{href:e.url,target:"_blank",rel:"noopener noreferrer"},l=e.title.includes("E-TIB"),c=e.title.includes("Ingenieur"),d=e.title.includes("NEMO");return(0,t.jsx)(r.motion.div,{variants:o,className:"h-full",children:(0,t.jsxs)(i?"div":"a",{...s,className:`group relative overflow-hidden aspect-[4/3] flex flex-col justify-center items-center shadow-xl transition-all duration-500 bg-neutral-dark block w-full h-full sm:rounded-xl ${i?"border-2 border-primary shadow-[0_0_30px_rgba(17,124,97,0.15)] cursor-default":"border border-white/5 hover:shadow-2xl hover:-translate-y-1 hover:border-white/10 cursor-pointer"}`,children:[(0,t.jsx)("div",{className:"absolute inset-0 bg-[#0a192f] z-0",children:(0,t.jsx)(n.default,{src:e.backgroundImage,alt:"Background",fill:!0,className:`object-cover transition-all duration-1000 ease-out ${i?"opacity-30 grayscale-0 scale-105":"opacity-40 grayscale-[50%] group-hover:opacity-30 group-hover:grayscale-0 group-hover:scale-110"}`,sizes:"(max-width: 768px) 100vw, 33vw"})}),(0,t.jsx)("div",{className:`absolute inset-0 z-0 transition-colors duration-700 mix-blend-multiply ${i?"bg-gradient-to-t from-[#0a192f]/90 via-[#0a192f]/60 to-[#0a192f]/40":"bg-gradient-to-t from-[#0a192f]/90 via-[#0a192f]/60 to-[#0a192f]/40 group-hover:from-primary/90 group-hover:to-primary/20"}`}),i&&(0,t.jsx)("div",{className:"absolute top-6 right-6 z-20",children:(0,t.jsxs)("div",{className:"flex items-center space-x-2 bg-neutral-dark/80 backdrop-blur-md border border-primary/40 px-3 py-1.5 rounded-full shadow-lg",children:[(0,t.jsxs)("span",{className:"relative flex h-2 w-2",children:[(0,t.jsx)("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-primary opacity-75"}),(0,t.jsx)("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-primary"})]}),(0,t.jsx)("span",{className:"text-[10px] font-bold uppercase tracking-widest text-primary/90",children:f?"Aktuell hier":"You are here"})]})}),(0,t.jsx)("div",{className:"relative z-10 flex flex-col items-center justify-center w-full h-full p-8 transform group-hover:scale-105 transition-transform duration-500",children:l?(0,t.jsxs)("div",{className:"flex flex-col items-center",children:[(0,t.jsx)("div",{className:"relative w-48 h-14 mb-2",children:(0,t.jsx)(n.default,{src:"/assets/logo-white.png",alt:"E-TIB Logo",fill:!0,className:"object-contain"})}),c&&(0,t.jsx)("div",{className:"text-white/80 tracking-[0.3em] text-xs font-semibold uppercase mt-1",children:"Ingenieurgesellschaft"})]}):d?(0,t.jsxs)("div",{className:"flex flex-col items-center",children:[(0,t.jsx)("div",{className:"text-5xl font-heading font-black text-white tracking-tight",children:"NEMO"}),(0,t.jsx)("div",{className:"text-white/60 tracking-widest text-xs font-semibold uppercase mt-1",children:"GmbH"})]}):(0,t.jsx)("div",{className:"text-2xl font-heading font-bold text-white uppercase text-center",children:e.title})}),e.url&&(0,t.jsx)("div",{className:"absolute bottom-6 left-0 right-0 flex justify-center opacity-0 group-hover:opacity-100 transform translate-y-4 group-hover:translate-y-0 transition-all duration-500 z-20",children:(0,t.jsxs)("div",{className:"flex items-center text-white font-bold uppercase text-xs tracking-widest bg-white/10 backdrop-blur-md px-4 py-2 rounded-full border border-white/20",children:["Website Besuchen",(0,t.jsx)("svg",{className:"w-4 h-4 ml-2",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,t.jsx)("path",{d:"M5 12h14M12 5l7 7-7 7"})})]})})]})},a)})})]})})}e.s(["SubCompanyTiles",()=>l])},285997,e=>{"use strict";var t=e.i(452797),r=e.i(663067),n=e.i(112086),a=e.i(907358),i=e.i(676525);function s(e){let{data:s}=e,[o,l]=(0,a.useState)(!1);(0,a.useEffect)(()=>{l(!0)},[]);let c=e.badge||s?.badge||"Leistungsspektrum",d=e.title||s?.title||"Umfassende Lösungen für komplexe Netzwerke",u=e.ctaLabel||s?.ctaLabel||"Alle Kompetenzen ansehen",m=e.ctaHref||s?.ctaHref||"/kompetenzen",f=e.items||s?.items||[];return o?(0,t.jsx)("section",{className:"py-24 bg-neutral text-neutral-dark overflow-hidden relative",children:(0,t.jsxs)("div",{className:"container",children:[(0,t.jsxs)("div",{className:"flex flex-col md:flex-row justify-between items-end mb-12",children:[(0,t.jsxs)("div",{className:"max-w-2xl",children:[(0,t.jsx)("h2",{className:"text-primary font-bold tracking-wider uppercase text-sm mb-3",children:c}),(0,t.jsx)("h3",{className:"font-heading text-4xl md:text-5xl font-extrabold text-neutral-dark mb-4",children:d})]}),(0,t.jsxs)(i.Button,{href:m,variant:"ghost",className:"mt-6 md:mt-0 bg-primary/5 hover:bg-primary/10",children:[u,(0,t.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-5 h-5 ml-2 transform group-hover:translate-x-1 transition-transform",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),(0,t.jsx)("polyline",{points:"12 5 19 12 12 19"})]})]})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-3 lg:grid-cols-4 gap-4 auto-rows-[220px]",children:f.map((e,a)=>{let i="large"===e.size,s="medium"===e.size,o="accent"===e.size,l=e.image?.url,c="rounded-2xl overflow-hidden relative group ";return(i?c+="md:col-span-2 md:row-span-2":s?c+="md:col-span-2 lg:col-span-2":o?c+="md:col-span-1 bg-primary text-white p-6 md:p-8 flex flex-col justify-center border-none shadow-md":c+="md:col-span-1",o)?(0,t.jsxs)(n.motion.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:.1*a},className:c,children:[(0,t.jsx)("div",{className:"absolute top-0 right-0 w-32 h-32 bg-primary/30 blur-3xl rounded-full -mr-10 -mt-10 group-hover:bg-primary/50 transition-colors duration-500"}),(0,t.jsx)("h4",{className:"font-bold text-xl md:text-2xl relative z-10 leading-snug",children:e.title}),e.description&&(0,t.jsx)("p",{className:"text-white/60 text-sm mt-3 relative z-10",children:e.description})]},a):(0,t.jsxs)(n.motion.div,{initial:{opacity:0,scale:.95},whileInView:{opacity:1,scale:1},viewport:{once:!0},transition:{delay:.1*a},className:c,children:[!l&&(0,t.jsx)("div",{className:"absolute inset-0 bg-neutral-dark z-0 transition-colors duration-500 group-hover:bg-primary-dark"}),l&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"absolute inset-0 bg-white z-0",children:(0,t.jsx)(r.default,{src:l,alt:e.title||"",fill:!0,className:"object-cover opacity-90 group-hover:scale-105 group-hover:opacity-100 transition-all duration-700 ease-in-out",sizes:i?"(max-width: 768px) 100vw, 50vw":"(max-width: 768px) 100vw, 25vw"})}),(0,t.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-black/80 via-black/20 to-transparent opacity-90 transition-opacity duration-500 z-0"})]}),(0,t.jsxs)("div",{className:"relative z-10 p-8 flex flex-col justify-end h-full text-white",children:[e.tag&&(0,t.jsx)("span",{className:"inline-block px-3 py-1 bg-primary/20 backdrop-blur-md rounded-full text-xs font-bold uppercase tracking-wider text-primary-light mb-3 w-fit border border-primary/30",children:e.tag}),(0,t.jsx)("h4",{className:`font-heading font-extrabold mb-2 ${i?"text-3xl md:text-5xl":"text-xl md:text-2xl"}`,children:e.title}),e.description&&(0,t.jsx)("p",{className:`text-white/80 ${i?"text-lg md:text-xl max-w-sm":"text-sm"}`,children:e.description})]})]},a)})})]})}):(0,t.jsx)("section",{className:"py-24 bg-neutral text-neutral-dark overflow-hidden relative",children:(0,t.jsxs)("div",{className:"container",children:[(0,t.jsx)("div",{className:"flex flex-col md:flex-row justify-between items-end mb-12",children:(0,t.jsxs)("div",{className:"max-w-2xl",children:[(0,t.jsx)("h2",{className:"text-primary font-bold tracking-wider uppercase text-sm mb-3",children:c}),(0,t.jsx)("h3",{className:"font-heading text-4xl md:text-5xl font-extrabold text-neutral-dark mb-4",children:d})]})}),(0,t.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-3 lg:grid-cols-4 gap-4 auto-rows-[220px]"})]})})}e.s(["CompetenceBentoGrid",()=>s])},677705,e=>{"use strict";var t=e.i(452797),r=e.i(907358),n=e.i(112086),a=e.i(184868),i=e.i(663067);function s(e){let{data:s}=e,o=e.references||[],l=r.useRef(null),c=e.badge||s?.badge||"Ausgewählte Projekte",d=e.title||s?.title||"Referenzen & Erfolge",u=e.description||s?.description||"Ein Auszug unserer erfolgreich abgeschlossenen Projekte im Bereich Kabeltiefbau, Bohrtechnik und Netzinfrastruktur.",m=e.ctaLabel||s?.ctaLabel||"Alle Referenzen ansehen",f=e.ctaHref||s?.ctaHref||"/referenzen";if(!o||0===o.length)return null;let h=["/assets/photos/DSC01123.JPG","/assets/photos/DSC00850.JPG","/assets/photos/DSC01129.JPG","/assets/photos/DSC00010.JPG"];return(0,t.jsxs)("section",{className:"py-24 bg-neutral-dark text-white overflow-hidden relative",children:[(0,t.jsx)("div",{className:"absolute inset-0 bg-gradient-to-b from-neutral-dark via-neutral-900 to-neutral-dark z-0"}),(0,t.jsxs)("div",{className:"container relative z-10 mb-12 flex flex-col md:flex-row justify-between items-end gap-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-primary-light font-bold tracking-wider uppercase text-sm mb-3",children:c}),(0,t.jsx)("h3",{className:"font-heading text-4xl md:text-5xl font-extrabold",children:d})]}),(0,t.jsx)("p",{className:"text-white/60 max-w-md",children:u})]}),(0,t.jsx)("div",{className:"relative z-10",children:(0,t.jsx)("div",{ref:l,className:"flex gap-6 overflow-x-auto pb-12 pt-4 snap-x snap-mandatory px-[calc((100vw-min(100%,1280px))/2)] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden",children:o.map((e,r)=>{let a=e.image&&"object"==typeof e.image&&e.image.url?e.image.url:h[r%h.length];return(0,t.jsx)(n.motion.div,{initial:{opacity:0,x:50},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{delay:.1*r,duration:.6,ease:"easeOut"},className:"flex-shrink-0 w-[320px] md:w-[480px] snap-center group cursor-pointer",children:(0,t.jsxs)("div",{className:"relative aspect-[16/10] bg-neutral-800 rounded-2xl overflow-hidden mb-5 border border-white/5 shadow-2xl",children:[(0,t.jsx)(i.default,{src:a,alt:e.title,fill:!0,sizes:"(max-width: 768px) 320px, 480px",className:"object-cover saturate-50 opacity-70 group-hover:scale-105 group-hover:opacity-100 group-hover:saturate-100 transition-all duration-700 ease-in-out"}),(0,t.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-black/90 via-black/30 to-transparent opacity-80 group-hover:opacity-90 transition-opacity duration-300"}),(0,t.jsxs)("div",{className:"absolute bottom-6 left-8 right-8 transform translate-y-4 group-hover:translate-y-0 transition-transform duration-500",children:[(0,t.jsx)("span",{className:"inline-block py-1.5 px-4 rounded-full bg-primary/30 backdrop-blur-md text-white text-xs font-bold uppercase tracking-widest mb-3 border border-primary/50",children:e.category}),(0,t.jsx)("h4",{className:"font-heading text-2xl md:text-3xl font-bold line-clamp-2",children:e.title})]})]})},e.id)})})}),(0,t.jsx)("div",{className:"container relative z-10 mt-4 flex justify-center",children:(0,t.jsxs)(a.default,{href:f,className:"px-8 py-4 rounded-xl bg-white/5 border border-white/20 hover:bg-white hover:text-neutral-dark hover:shadow-[0_0_20px_rgba(255,255,255,0.3)] transition-all font-bold flex items-center gap-3 backdrop-blur-sm",children:[m,(0,t.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-5 h-5",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),(0,t.jsx)("polyline",{points:"12 5 19 12 12 19"})]})]})})]})}e.s(["ReferencesSlider",()=>s])},813804,e=>{"use strict";var t=e.i(452797),r=e.i(184868),n=e.i(630655),a=e.i(216033);function i({href:e,eventName:i=a.AnalyticsEvents.LINK_CLICK,eventProperties:s={},className:o,children:l,onClick:c}){let{trackEvent:d}=(0,n.useAnalytics)();return(0,t.jsx)(r.default,{href:e,className:o,onClick:()=>{try{d(i,{href:e,...s})}catch{}c&&c()},children:l})}e.s(["default",()=>i])},287980,e=>{"use strict";var t=e.i(452797),r=e.i(907358),n=e.i(112086),a=e.i(651692),i=e.i(702915),s=e.i(26809),o=e.i(470919),l=e.i(967682);function c(e,t){let r,n=()=>{let{currentTime:n}=t,a=(null===n?0:n.value)/100;r!==a&&e(a),r=a};return l.frame.preUpdate(n,!0),()=>(0,l.cancelFrame)(n)}function d(e){return!("u"({current:0,offset:[],progress:0,scrollLength:0,targetOffset:0,targetLength:0,containerLength:0,velocity:0}),p={x:{length:"Width",position:"Left"},y:{length:"Height",position:"Top"}};function g(e,t,r,n){let a=r[t],{length:i,position:s}=p[t],o=a.current,l=r.time;a.current=Math.abs(e[`scroll${s}`]),a.scrollLength=e[`scroll${i}`]-e[`client${i}`],a.offset.length=0,a.offset[0]=0,a.offset[1]=a.scrollLength,a.progress=(0,m.progress)(0,a.scrollLength,a.current);let c=n-l;a.velocity=c>50?0:(0,f.velocityPerSecond)(a.current-o,c)}e.i(653782);var x=e.i(498920),b=e.i(805639),_=e.i(493858),v=e.i(250438);let E={start:0,center:.5,end:1};function y(e,t,r=0){let n=0;if(e in E&&(e=E[e]),"string"==typeof e){let t=parseFloat(e);e.endsWith("px")?n=t:e.endsWith("%")?e=t/100:e.endsWith("vw")?n=t/100*document.documentElement.clientWidth:e.endsWith("vh")?n=t/100*document.documentElement.clientHeight:e=t}return"number"==typeof e&&(n=t*e),r+n}let w=[0,0],S=[[0,0],[1,1]],R={x:0,y:0},N=new WeakMap,P=new WeakMap,T=new WeakMap,j=new WeakMap,I=new WeakMap,A=e=>e===document.scrollingElement?window:e;function O(e,{container:t=document.scrollingElement,trackContentSize:r=!1,...n}={}){if(!t)return o.noop;let a=T.get(t);a||(a=new Set,T.set(t,a));let i=function(e,t,r,n={}){return{measure:t=>{!function(e,t=e,r){if(r.x.targetOffset=0,r.y.targetOffset=0,t!==e){let n=t;for(;n&&n!==e;)r.x.targetOffset+=n.offsetLeft,r.y.targetOffset+=n.offsetTop,n=n.offsetParent}r.x.targetLength=t===e?t.scrollWidth:t.clientWidth,r.y.targetLength=t===e?t.scrollHeight:t.clientHeight,r.x.containerLength=e.clientWidth,r.y.containerLength=e.clientHeight}(e,n.target,r),g(e,"x",r,t),g(e,"y",r,t),r.time=t,(n.offset||n.target)&&function(e,t,r){let{offset:n=S}=r,{target:a=e,axis:i="y"}=r,s="y"===i?"height":"width",o=a!==e?function(e,t){let r={x:0,y:0},n=e;for(;n&&n!==t;)if((0,v.isHTMLElement)(n))r.x+=n.offsetLeft,r.y+=n.offsetTop,n=n.offsetParent;else if("svg"===n.tagName){let e=n.getBoundingClientRect(),t=(n=n.parentElement).getBoundingClientRect();r.x+=e.left-t.left,r.y+=e.top-t.top}else if(n instanceof SVGGraphicsElement){let{x:e,y:t}=n.getBBox();r.x+=e,r.y+=t;let a=null,i=n.parentNode;for(;!a;)"svg"===i.tagName&&(a=i),i=n.parentNode;n=a}else break;return r}(a,e):R,l=a===e?{width:e.scrollWidth,height:e.scrollHeight}:"getBBox"in a&&"svg"!==a.tagName?a.getBBox():{width:a.clientWidth,height:a.clientHeight},c={width:e.clientWidth,height:e.clientHeight};t[i].offset.length=0;let d=!t[i].interpolate,u=n.length;for(let e=0;et(r)}}(t,e,{time:0,x:h(),y:h()},n);if(a.add(i),!N.has(t)){let e=()=>{for(let e of a)e.measure(l.frameData.timestamp);l.frame.preUpdate(r)},r=()=>{for(let e of a)e.notify()},n=()=>l.frame.read(e);N.set(t,n);let i=A(t);window.addEventListener("resize",n),t!==document.documentElement&&P.set(t,(0,u.resize)(t,n)),i.addEventListener("scroll",n),n()}if(r&&!I.has(t)){let e=N.get(t),r={width:t.scrollWidth,height:t.scrollHeight};j.set(t,r);let n=l.frame.read(()=>{let n=t.scrollWidth,a=t.scrollHeight;(r.width!==n||r.height!==a)&&(e(),r.width=n,r.height=a)},!0);I.set(t,n)}let s=N.get(t);return l.frame.read(s,!1,!0),()=>{(0,l.cancelFrame)(s);let e=T.get(t);if(!e||(e.delete(i),e.size))return;let r=N.get(t);N.delete(t),r&&(A(t).removeEventListener("scroll",r),P.get(t)?.(),window.removeEventListener("resize",r));let n=I.get(t);n&&((0,l.cancelFrame)(n),I.delete(t)),j.delete(t)}}let C=[[[[0,1],[1,1]],"entry"],[[[0,0],[1,0]],"exit"],[[[1,0],[0,1]],"cover"],[S,"contain"]],L={start:0,end:1};function k(e){if(!e)return{rangeStart:"contain 0%",rangeEnd:"contain 100%"};for(let[t,r]of C)if(function(e,t){let r=function(e){if(2!==e.length)return;let t=[];for(let r of e)if(Array.isArray(r))t.push(r);else{if("string"!=typeof r)return;let e=function(e){let t=e.trim().split(/\s+/);if(2!==t.length)return;let r=L[t[0]],n=L[t[1]];if(void 0!==r&&void 0!==n)return[r,n]}(r);if(!e)return;t.push(e)}return t}(e);if(!r)return!1;for(let e=0;e<2;e++){let n=r[e],a=t[e];if(n[0]!==a[0]||n[1]!==a[1])return!1}return!0}(e,t))return{rangeStart:`${r} 0%`,rangeEnd:`${r} 100%`}}let D=new Map;function M(e){let t={value:0},r=O(r=>{t.value=100*r[e.axis].progress},e);return{currentTime:t,cancel:r}}function H({source:e,container:t,...r}){let{axis:n}=r;e&&(t=e);let a=D.get(t);a||(a=new Map,D.set(t,a));let i=r.target??"self",s=a.get(i);s||(s={},a.set(i,s));let o=n+(r.offset??[]).join(",");return s[o]||(r.target&&d(r.target)?k(r.offset)?s[o]=new ViewTimeline({subject:r.target,axis:n}):s[o]=M({container:t,...r}):d()?s[o]=new ScrollTimeline({source:t,axis:n}):s[o]=M({container:t,...r})),s[o]}function B(e,{axis:t="y",container:r=document.scrollingElement,...n}={}){var a,i;let s,l,u;if(!r)return o.noop;let m={axis:t,container:r,...n};return"function"==typeof e?(a=e,i=m,2===a.length?O(e=>{a(e[i.axis].progress,e)},i):c(a,H(i))):(s=H(m),l=m.target?k(m.offset):void 0,u=m.target?d(m.target)&&!!l:d(),e.attachTimeline({timeline:u?s:void 0,...l&&u&&{rangeStart:l.rangeStart,rangeEnd:l.rangeEnd},observe:e=>(e.pause(),c(t=>{e.time=e.iterationDuration*t},s))}))}var G=e.i(134174),U=e.i(736986);let W=()=>({scrollX:(0,i.motionValue)(0),scrollY:(0,i.motionValue)(0),scrollXProgress:(0,i.motionValue)(0),scrollYProgress:(0,i.motionValue)(0)}),z=e=>!!e&&!e.current;function F(e,t,r,n){return{factory:a=>B(a,{...t,axis:e,container:r?.current||void 0,target:n?.current||void 0}),times:[0,1],keyframes:[0,1],ease:e=>e,duration:1}}var X=e.i(753942);function V(e,t){let n=function(e){let t=(0,G.useConstant)(()=>(0,i.motionValue)(e)),{isStatic:n}=(0,r.useContext)(X.MotionConfigContext);if(n){let[,n]=(0,r.useState)(e);(0,r.useEffect)(()=>t.on("change",n),[])}return t}(t()),a=()=>n.set(t());return a(),(0,U.useIsomorphicLayoutEffect)(()=>{let t=()=>l.frame.preRender(a,!1,!0),r=e.map(e=>e.on("change",t));return()=>{r.forEach(e=>e()),(0,l.cancelFrame)(a)}}),n}function Y(e,t){let r=(0,G.useConstant)(()=>[]);return V(e,()=>{r.length=0;let n=e.length;for(let t=0;t(l.current=B((e,{x:t,y:r})=>{o.scrollX.set(t.current),o.scrollXProgress.set(t.progress),o.scrollY.set(r.current),o.scrollYProgress.set(r.progress)},{...n,container:e?.current||void 0,target:t?.current||void 0}),()=>{l.current?.()}),[e,t,JSON.stringify(n.offset)]);return(0,U.useIsomorphicLayoutEffect)(()=>{if(c.current=!1,!(z(e)||z(t)))return d();c.current=!0},[d]),(0,r.useEffect)(()=>c.current?((0,s.invariant)(!z(e),"Container ref is defined but not hydrated","use-scroll-ref"),(0,s.invariant)(!z(t),"Target ref is defined but not hydrated","use-scroll-ref"),d()):void 0,[d]),o}({target:c,offset:["start center","end center"]}),u=function e(t,r,n,a){if("function"==typeof t){let e;return i.collectMotionValues.current=[],t(),e=V(i.collectMotionValues.current,t),i.collectMotionValues.current=void 0,e}if(void 0!==n&&!Array.isArray(n)&&"function"!=typeof r){var s=t,o=r,l=n,c=a;let i=(0,G.useConstant)(()=>Object.keys(l)),d=(0,G.useConstant)(()=>({}));for(let t of i)d[t]=e(s,o,l[t],c);return d}let d="function"==typeof r?r:function(...e){let t=!Array.isArray(e[0]),r=t?0:-1,n=e[0+r],a=e[1+r],i=e[2+r],s=e[3+r],o=(0,x.interpolate)(a,i,s);return t?o(n):o}(r,n,a),u=Array.isArray(t)?Y(t,d):Y([t],([e])=>d(e)),m=Array.isArray(t)?void 0:t.accelerate;return m&&!m.isTransformed&&"function"!=typeof r&&Array.isArray(n)&&a?.clamp!==!1&&(u.accelerate={...m,times:r,keyframes:n,isTransformed:!0,...a?.ease?{ease:a.ease}:{}}),u}(d,[0,1],["0%","100%"]);return(0,t.jsx)("section",{className:"py-24 bg-white relative",children:(0,t.jsxs)("div",{className:"container max-w-4xl",children:[(0,t.jsxs)("div",{className:"text-center mb-16",children:[(0,t.jsx)("h2",{className:"text-primary font-bold tracking-wider uppercase text-sm mb-3",children:e}),(0,t.jsx)("h3",{className:"font-heading text-4xl font-extrabold text-neutral-dark",children:o})]}),(0,t.jsxs)("div",{ref:c,className:"relative",children:[(0,t.jsx)("div",{className:"absolute left-4 md:left-1/2 top-0 bottom-0 w-1 bg-neutral-200 -translate-x-1/2 rounded-full overflow-hidden",children:(0,t.jsx)(n.motion.div,{className:"w-full bg-primary",style:{height:u}})}),(0,t.jsx)("div",{className:"space-y-12 md:space-y-0",children:l.map((e,r)=>{let a=r%2==0;return(0,t.jsxs)(n.motion.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0,margin:"-100px"},transition:{duration:.6},className:"relative flex flex-col w-full",children:[(0,t.jsx)("div",{className:"absolute left-4 md:left-1/2 top-8 md:top-1/2 w-6 h-6 rounded-full bg-white border-4 border-primary z-10 -translate-x-1/2 md:-translate-y-1/2 shadow-lg"}),(0,t.jsx)("div",{className:`w-full md:w-[calc(50%-2.5rem)] pl-16 md:pl-0 ${a?"md:mr-auto md:text-right":"md:ml-auto md:text-left"}`,children:(0,t.jsxs)("div",{className:"bg-neutral-50 p-6 md:p-8 rounded-2xl shadow-sm border border-neutral-100 hover:shadow-md transition-shadow relative",children:[(0,t.jsx)("span",{className:"inline-block py-1.5 px-4 rounded-full bg-primary/10 text-primary font-bold text-sm mb-4",children:e.date}),(0,t.jsx)("h4",{className:"font-heading font-bold text-2xl md:text-3xl mb-3 text-neutral-dark leading-tight",children:e.title}),(0,t.jsx)("p",{className:"text-text-secondary leading-relaxed",children:e.desc})]})})]},r)})})]})]})})}e.s(["CompanyTimeline",()=>K],287980)},919007,e=>{e.v(t=>Promise.all(["static/chunks/3ffd2a1cf95ceb60.js","static/chunks/32fec23faa4b171a.js","static/chunks/6d182a34db4f4c54.js"].map(t=>e.l(t))).then(()=>t(502456)))}]); + +//# debugId=8ae158c7-9d0e-2ea5-d887-f28582677222 \ No newline at end of file diff --git a/.next/static/chunks/1f1682674618b971.js b/.next/static/chunks/1f1682674618b971.js deleted file mode 100644 index b4ce014ee..000000000 --- a/.next/static/chunks/1f1682674618b971.js +++ /dev/null @@ -1,4 +0,0 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="3c1c4698-f854-1212-d120-8ec9732d60c7")}catch(e){}}(); -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,7284,e=>{"use strict";function t(){for(var e,t,r=0,n="",a=arguments.length;rt])},676525,e=>{"use strict";var t=e.i(452797),r=e.i(184868),n=e.i(111023);let a={primary:"bg-primary text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl",secondary:"bg-secondary text-white shadow-md hover:shadow-secondary/30 hover:shadow-2xl",accent:"bg-accent text-primary-dark shadow-md hover:shadow-accent/30 hover:shadow-2xl",saturated:"bg-saturated text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl",outline:"border-2 border-primary bg-transparent text-primary hover:text-white hover:shadow-primary/20 hover:shadow-xl",ghost:"text-primary hover:shadow-lg",white:"bg-white text-primary shadow-md hover:shadow-primary/30 hover:shadow-2xl hover:text-white",destructive:"bg-destructive text-destructive-foreground shadow-md hover:shadow-destructive/30 hover:shadow-2xl"},i={sm:"h-9 px-4 text-sm md:text-base",md:"h-11 px-6 text-base md:text-lg",lg:"h-14 px-5 md:px-8 text-base md:text-lg",xl:"h-16 px-6 md:px-10 text-lg md:text-xl"},s={primary:"bg-primary-dark",secondary:"bg-secondary-light",accent:"bg-accent-dark",saturated:"bg-primary",outline:"bg-primary",ghost:"bg-primary-light/10",white:"bg-primary-light",destructive:"bg-destructive/90"};function o({variant:e="primary"}){return(0,t.jsx)("span",{className:(0,n.cn)("absolute inset-0 translate-y-[101%] group-hover/btn:translate-y-0 transition-transform duration-500 ease-out",s[e])})}function l({className:e,variant:s="primary",size:l="md",href:d,...c}){let u=function(e="primary",t="md",r){return(0,n.cn)("inline-flex items-center justify-center whitespace-nowrap rounded-full font-semibold transition-all duration-500 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none active:scale-95 hover:-translate-y-1 hover:scale-[1.02] relative overflow-hidden group/btn isolate",a[e],i[t],r)}(s,l,e),x=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:(0,n.cn)("relative z-10 flex items-center justify-center gap-2 transition-colors duration-500","white"===s?"group-hover/btn:text-primary-dark":""),children:c.children}),(0,t.jsx)(o,{variant:s})]});return d?(0,t.jsx)(r.default,{href:d,className:u,children:x}):(0,t.jsx)("button",{className:u,...c,children:x})}e.s(["Button",()=>l])},445774,370476,575003,982016,105050,801206,587778,9797,e=>{"use strict";var t=e.i(111023);e.i(676525);var r=e.i(452797);function n({className:e,children:n,...a}){return(0,r.jsx)("section",{className:(0,t.cn)("py-16 md:py-28 lg:py-36 overflow-hidden content-visibility-auto",e),...a,children:n})}function a({className:e,children:n,...a}){return(0,r.jsx)("div",{className:(0,t.cn)("container mx-auto px-4 md:px-12 lg:px-16 max-w-7xl",e),...a,children:n})}function i({level:e=2,children:n,className:a,subtitle:i,align:s="left"}){let o=`h${e}`;return(0,r.jsxs)("div",{className:(0,t.cn)("mb-6 md:mb-12 text-primary",{left:"text-left",center:"text-center mx-auto",right:"text-right"}[s],a),children:[i&&(0,r.jsx)("span",{className:"inline-block text-accent font-bold tracking-widest uppercase text-xs md:text-sm mb-3 md:mb-4 animate-fade-in",children:i}),(0,r.jsx)(o,{className:(0,t.cn)({1:"text-2xl md:text-4xl lg:text-5xl font-bold leading-[1.1] tracking-tight",2:"text-xl md:text-3xl lg:text-4xl font-bold leading-[1.2] tracking-tight",3:"text-lg md:text-2xl lg:text-3xl font-bold leading-[1.3] tracking-tight",4:"text-lg md:text-xl lg:text-2xl font-bold leading-[1.4]",5:"text-base md:text-lg font-bold leading-[1.5]",6:"text-base md:text-lg font-semibold leading-[1.6]"}[e]),children:n})]})}function s({className:e,children:n,tag:a="div",...i}){return(0,r.jsx)(a,{className:(0,t.cn)("premium-card overflow-hidden",e),...i,children:n})}function o({className:e,...n}){return(0,r.jsx)("input",{className:(0,t.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg",e),...n})}function l({className:e,...n}){return(0,r.jsx)("textarea",{className:(0,t.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg resize-none",e),...n})}function d({className:e,...n}){return(0,r.jsx)("label",{className:(0,t.cn)("text-[10px] md:text-xs font-extrabold text-primary uppercase tracking-widest",e),...n})}e.s(["Section",()=>n],370476),e.s(["Container",()=>a],575003),e.s(["Heading",()=>i],982016),e.s(["Card",()=>s],105050),e.s(["Input",()=>o],801206),e.s(["Textarea",()=>l],587778),e.s(["Label",()=>d],9797),e.s([],445774)},759095,e=>{"use strict";var t=e.i(452797),r=e.i(907358);e.i(445774);var n=e.i(111023);function a({children:e,className:a,threshold:i=.1,delay:s=0}){let[o,l]=(0,r.useState)(!1),d=(0,r.useRef)(null);return(0,r.useEffect)(()=>{let e=new IntersectionObserver(([t])=>{t.isIntersecting&&(l(!0),e.unobserve(t.target))},{threshold:i}),t=d.current;return t&&e.observe(t),()=>{t&&e.unobserve(t)}},[i]),(0,t.jsx)("div",{ref:d,className:(0,n.cn)("reveal-on-scroll",o&&"is-visible",a),style:{transitionDelay:`${s}ms`},children:e})}e.s(["default",()=>a])},783488,e=>{"use strict";var t=e.i(907358),r=e.i(976819);function n({currentPage:e,totalPages:n,locale:a}){let i=(0,r.useRouter)();return(0,t.useEffect)(()=>{let t=t=>{document.activeElement?.tagName!=="INPUT"&&document.activeElement?.tagName!=="TEXTAREA"&&document.activeElement?.tagName!=="SELECT"&&("ArrowLeft"===t.key&&e>1?i.push(`/${a}/blog?page=${e-1}`):"ArrowRight"===t.key&&ewindow.removeEventListener("keydown",t)},[e,n,a,i]),null}e.s(["BlogPaginationKeyboardObserver",()=>n])}]); - -//# debugId=3c1c4698-f854-1212-d120-8ec9732d60c7 \ No newline at end of file diff --git a/.next/static/chunks/16d825876541b2df.js b/.next/static/chunks/1f783c97b273e603.js similarity index 59% rename from .next/static/chunks/16d825876541b2df.js rename to .next/static/chunks/1f783c97b273e603.js index 45d94cea9..ec3e950b5 100644 --- a/.next/static/chunks/16d825876541b2df.js +++ b/.next/static/chunks/1f783c97b273e603.js @@ -1,4 +1,4 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="704cfebd-839e-885a-5ec0-e9abc9a4630d")}catch(e){}}(); -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,102227,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReflectAdapter",{enumerable:!0,get:function(){return n}});class n{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}},365278,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(496932).createAsyncLocalStorage)()},517110,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorage",{enumerable:!0,get:function(){return n.afterTaskAsyncStorageInstance}});let n=e.r(365278)},780329,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isRequestAPICallableInsideAfter:function(){return u},throwForSearchParamsAccessInUseCache:function(){return c},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(579781),s=e.r(517110);function o(e,t){throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${t}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function c(e,t){let r=Object.defineProperty(Error(`Route ${e.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(r,t),e.invalidDynamicUsageError??=r,r}function u(){let e=s.afterTaskAsyncStorage.getStore();return(null==e?void 0:e.rootTaskSpawnPhase)==="action"}},759823,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a={RenderStage:function(){return c},StagedRenderingController:function(){return u}};for(var i in a)Object.defineProperty(r,i,{enumerable:!0,get:a[i]});let s=e.r(436120),o=e.r(444841);var c=((n={})[n.Before=1]="Before",n[n.Static=2]="Static",n[n.Runtime=3]="Runtime",n[n.Dynamic=4]="Dynamic",n[n.Abandoned=5]="Abandoned",n);class u{constructor(e=null,t){this.abortSignal=e,this.hasRuntimePrefetch=t,this.currentStage=1,this.staticInterruptReason=null,this.runtimeInterruptReason=null,this.staticStageEndTime=1/0,this.runtimeStageEndTime=1/0,this.runtimeStageListeners=[],this.dynamicStageListeners=[],this.runtimeStagePromise=(0,o.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,o.createPromiseWithResolvers)(),this.mayAbandon=!1,e&&(e.addEventListener("abort",()=>{let{reason:t}=e;this.currentStage<3&&(this.runtimeStagePromise.promise.catch(l),this.runtimeStagePromise.reject(t)),(this.currentStage<4||5===this.currentStage)&&(this.dynamicStagePromise.promise.catch(l),this.dynamicStagePromise.reject(t))},{once:!0}),this.mayAbandon=!0)}onStage(e,t){if(this.currentStage>=e)t();else if(3===e)this.runtimeStageListeners.push(t);else if(4===e)this.dynamicStageListeners.push(t);else throw Object.defineProperty(new s.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}canSyncInterrupt(){if(1===this.currentStage)return!1;let e=this.hasRuntimePrefetch?4:3;return this.currentStage=3&&(this.staticStageEndTime=performance.now()+performance.timeOrigin,this.resolveRuntimeStage()),t<4&&e>=4){this.runtimeStageEndTime=performance.now()+performance.timeOrigin,this.resolveDynamicStage();return}}resolveRuntimeStage(){let e=this.runtimeStageListeners;for(let t=0;t{n.then(e.bind(null,i),t)}),void 0!==a&&(s.displayName=a),s);return this.abortSignal&&o.catch(l),o}}function l(){}},118720,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addPathSuffix",{enumerable:!0,get:function(){return a}});let n=e.r(506985);function a(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:i}=(0,n.parsePath)(e);return`${r}${t}${a}${i}`}},446247,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addLocale",{enumerable:!0,get:function(){return i}});let n=e.r(688391),a=e.r(712550);function i(e,t,r,i){if(!t||t===r)return e;let s=e.toLowerCase();return!i&&((0,a.pathHasPrefix)(s,"/api")||(0,a.pathHasPrefix)(s,`/${t.toLowerCase()}`))?e:(0,n.addPathPrefix)(e,`/${t}`)}},971560,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"formatNextPathnameInfo",{enumerable:!0,get:function(){return o}});let n=e.r(895708),a=e.r(688391),i=e.r(118720),s=e.r(446247);function o(e){let t=(0,s.addLocale)(e.pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix);return(e.buildId||!e.trailingSlash)&&(t=(0,n.removeTrailingSlash)(t)),e.buildId&&(t=(0,i.addPathSuffix)((0,a.addPathPrefix)(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=(0,a.addPathPrefix)(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:(0,i.addPathSuffix)(t,"/"):(0,n.removeTrailingSlash)(t)}},866140,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"normalizeLocalePath",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e,t){let r;if(!t)return{pathname:e};let a=n.get(t);a||(a=t.map(e=>e.toLowerCase()),n.set(t,a));let i=e.split("/",2);if(!i[1])return{pathname:e};let s=i[1].toLowerCase(),o=a.indexOf(s);return o<0?{pathname:e}:(r=t[o],{pathname:e=e.slice(r.length+1)||"/",detectedLocale:r})}},857436,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removePathPrefix",{enumerable:!0,get:function(){return a}});let n=e.r(712550);function a(e,t){if(!(0,n.pathHasPrefix)(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:`/${r}`}},707723,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getNextPathnameInfo",{enumerable:!0,get:function(){return s}});let n=e.r(866140),a=e.r(857436),i=e.r(712550);function s(e,t){let{basePath:r,i18n:s,trailingSlash:o}=t.nextConfig??{},c={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):o};r&&(0,i.pathHasPrefix)(c.pathname,r)&&(c.pathname=(0,a.removePathPrefix)(c.pathname,r),c.basePath=r);let u=c.pathname;if(c.pathname.startsWith("/_next/data/")&&c.pathname.endsWith(".json")){let e=c.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");c.buildId=e[0],u="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(c.pathname=u)}if(s){let e=t.i18nProvider?t.i18nProvider.analyze(c.pathname):(0,n.normalizeLocalePath)(c.pathname,s.locales);c.locale=e.detectedLocale,c.pathname=e.pathname??c.pathname,!e.detectedLocale&&c.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(u):(0,n.normalizeLocalePath)(u,s.locales)).detectedLocale&&(c.locale=e.detectedLocale)}return c}},955973,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_SUFFIX:function(){return g},APP_DIR_ALIAS:function(){return k},CACHE_ONE_YEAR:function(){return I},DOT_NEXT_ALIAS:function(){return M},ESLINT_DEFAULT_DIRS:function(){return ea},GSP_NO_RETURNED_VALUE:function(){return J},GSSP_COMPONENT_MEMBER_ERROR:function(){return et},GSSP_NO_RETURNED_VALUE:function(){return Z},HTML_CONTENT_TYPE_HEADER:function(){return s},INFINITE_CACHE:function(){return y},INSTRUMENTATION_HOOK_FILENAME:function(){return D},JSON_CONTENT_TYPE_HEADER:function(){return o},MATCHED_PATH_HEADER:function(){return l},MIDDLEWARE_FILENAME:function(){return C},MIDDLEWARE_LOCATION_REGEXP:function(){return N},NEXT_BODY_SUFFIX:function(){return S},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return O},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return x},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return b},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return A},NEXT_CACHE_TAGS_HEADER:function(){return R},NEXT_CACHE_TAG_MAX_ITEMS:function(){return v},NEXT_CACHE_TAG_MAX_LENGTH:function(){return T},NEXT_DATA_SUFFIX:function(){return f},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return u},NEXT_META_SUFFIX:function(){return E},NEXT_QUERY_PARAM_PREFIX:function(){return c},NEXT_RESUME_HEADER:function(){return P},NON_STANDARD_NODE_ENV:function(){return er},PAGES_DIR_ALIAS:function(){return j},PRERENDER_REVALIDATE_HEADER:function(){return d},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return _},PROXY_FILENAME:function(){return w},PROXY_LOCATION_REGEXP:function(){return L},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return V},ROOT_DIR_ALIAS:function(){return U},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return Y},RSC_ACTION_ENCRYPTION_ALIAS:function(){return W},RSC_ACTION_PROXY_ALIAS:function(){return X},RSC_ACTION_VALIDATE_ALIAS:function(){return G},RSC_CACHE_WRAPPER_ALIAS:function(){return H},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return B},RSC_MOD_REF_PROXY_ALIAS:function(){return F},RSC_SEGMENTS_DIR_SUFFIX:function(){return p},RSC_SEGMENT_SUFFIX:function(){return m},RSC_SUFFIX:function(){return h},SERVER_PROPS_EXPORT_ERROR:function(){return Q},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return K},SERVER_PROPS_SSG_CONFLICT:function(){return z},SERVER_RUNTIME:function(){return ei},SSG_FALLBACK_EXPORT_ERROR:function(){return en},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return $},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return q},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return i},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return ee},WEBPACK_LAYERS:function(){return ec},WEBPACK_RESOURCE_QUERIES:function(){return eu},WEB_SOCKET_MAX_RECONNECTIONS:function(){return es}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i="text/plain",s="text/html; charset=utf-8",o="application/json; charset=utf-8",c="nxtP",u="nxtI",l="x-matched-path",d="x-prerender-revalidate",_="x-prerender-revalidate-if-generated",p=".segments",m=".segment.rsc",h=".rsc",g=".action",f=".json",E=".meta",S=".body",R="x-next-cache-tags",x="x-next-revalidated-tags",b="x-next-revalidate-tag-token",P="next-resume",v=128,T=256,A=1024,O="_N_T_",I=31536e3,y=0xfffffffe,C="middleware",N=`(?:src/)?${C}`,w="proxy",L=`(?:src/)?${w}`,D="instrumentation",j="private-next-pages",M="private-dot-next",U="private-next-root-dir",k="private-next-app-dir",F="private-next-rsc-mod-ref-proxy",G="private-next-rsc-action-validate",X="private-next-rsc-server-reference",H="private-next-rsc-cache-wrapper",B="private-next-rsc-track-dynamic-import",W="private-next-rsc-action-encryption",Y="private-next-rsc-action-client-wrapper",V="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",$="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",K="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",z="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",q="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",Q="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",J="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",Z="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",ee="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",et="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",er='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',en="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",ea=["app","pages","components","lib","src"],ei={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},es=12,eo={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},ec={...eo,GROUP:{builtinReact:[eo.reactServerComponents,eo.actionBrowser],serverOnly:[eo.reactServerComponents,eo.actionBrowser,eo.instrument,eo.middleware],neutralTarget:[eo.apiNode,eo.apiEdge],clientOnly:[eo.serverSideRendering,eo.appPagesBrowser],bundled:[eo.reactServerComponents,eo.actionBrowser,eo.serverSideRendering,eo.appPagesBrowser,eo.shared,eo.instrument,eo.middleware],appPages:[eo.reactServerComponents,eo.serverSideRendering,eo.appPagesBrowser,eo.actionBrowser]}},eu={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},630655,e=>{"use strict";var t=e.i(907358),r=e.i(777616);function n(){let e=(0,r.getAppServices)();return{trackEvent:(0,t.useCallback)((t,r)=>{e.analytics.track(t,r)},[e]),trackPageview:(0,t.useCallback)(t=>{e.analytics.trackPageview(t)},[e])}}e.s(["useAnalytics",()=>n])},216033,e=>{"use strict";e.s(["AnalyticsEvents",0,{PAGE_VIEW:"pageview",PAGE_SCROLL:"page_scroll",PAGE_EXIT:"page_exit",SCROLL_DEPTH:"scroll_depth",BUTTON_CLICK:"button_click",LINK_CLICK:"link_click",FORM_SUBMIT:"form_submit",FORM_START:"form_start",FORM_ERROR:"form_error",FORM_FIELD_FOCUS:"form_field_focus",PRODUCT_VIEW:"product_view",PRODUCT_ADD_TO_CART:"product_add_to_cart",PRODUCT_REMOVE_FROM_CART:"product_remove_from_cart",PRODUCT_PURCHASE:"product_purchase",PRODUCT_WISHLIST_ADD:"product_wishlist_add",PRODUCT_WISHLIST_REMOVE:"product_wishlist_remove",PRODUCT_TAB_SWITCH:"product_tab_switch",SEARCH:"search",FILTER_APPLY:"filter_apply",FILTER_CLEAR:"filter_clear",USER_SIGNUP:"user_signup",USER_LOGIN:"user_login",USER_LOGOUT:"user_logout",USER_PROFILE_UPDATE:"user_profile_update",BLOG_POST_VIEW:"blog_post_view",VIDEO_PLAY:"video_play",VIDEO_PAUSE:"video_pause",VIDEO_COMPLETE:"video_complete",DOWNLOAD:"download",MODAL_OPEN:"modal_open",MODAL_CLOSE:"modal_close",TOGGLE_SWITCH:"toggle_switch",ACCORDION_TOGGLE:"accordion_toggle",TAB_SWITCH:"tab_switch",TOC_CLICK:"toc_click",ERROR:"error",PERFORMANCE:"performance",API_ERROR:"api_error",API_SUCCESS:"api_success",QUOTE_REQUEST:"quote_request",CONTACT_FORM_SUBMIT:"contact_form_submit",NEWSLETTER_SUBSCRIBE:"newsletter_subscribe",BROCHURE_DOWNLOAD:"brochure_download"}])},7284,e=>{"use strict";function t(){for(var e,t,r=0,n="",a=arguments.length;rt])},676525,e=>{"use strict";var t=e.i(452797),r=e.i(184868),n=e.i(111023);let a={primary:"bg-primary text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl",secondary:"bg-secondary text-white shadow-md hover:shadow-secondary/30 hover:shadow-2xl",accent:"bg-accent text-primary-dark shadow-md hover:shadow-accent/30 hover:shadow-2xl",saturated:"bg-saturated text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl",outline:"border-2 border-primary bg-transparent text-primary hover:text-white hover:shadow-primary/20 hover:shadow-xl",ghost:"text-primary hover:shadow-lg",white:"bg-white text-primary shadow-md hover:shadow-primary/30 hover:shadow-2xl hover:text-white",destructive:"bg-destructive text-destructive-foreground shadow-md hover:shadow-destructive/30 hover:shadow-2xl"},i={sm:"h-9 px-4 text-sm md:text-base",md:"h-11 px-6 text-base md:text-lg",lg:"h-14 px-5 md:px-8 text-base md:text-lg",xl:"h-16 px-6 md:px-10 text-lg md:text-xl"},s={primary:"bg-primary-dark",secondary:"bg-secondary-light",accent:"bg-accent-dark",saturated:"bg-primary",outline:"bg-primary",ghost:"bg-primary-light/10",white:"bg-primary-light",destructive:"bg-destructive/90"};function o({variant:e="primary"}){return(0,t.jsx)("span",{className:(0,n.cn)("absolute inset-0 translate-y-[101%] group-hover/btn:translate-y-0 transition-transform duration-500 ease-out",s[e])})}function c({className:e,variant:s="primary",size:c="md",href:u,...l}){let d=function(e="primary",t="md",r){return(0,n.cn)("inline-flex items-center justify-center whitespace-nowrap rounded-full font-semibold transition-all duration-500 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none active:scale-95 hover:-translate-y-1 hover:scale-[1.02] relative overflow-hidden group/btn isolate",a[e],i[t],r)}(s,c,e),_=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:(0,n.cn)("relative z-10 flex items-center justify-center gap-2 transition-colors duration-500","white"===s?"group-hover/btn:text-primary-dark":""),children:l.children}),(0,t.jsx)(o,{variant:s})]});return u?(0,t.jsx)(r.default,{href:u,className:d,children:_}):(0,t.jsx)("button",{className:d,...l,children:_})}e.s(["Button",()=>c])},445774,370476,575003,982016,105050,801206,587778,9797,e=>{"use strict";var t=e.i(111023);e.i(676525);var r=e.i(452797);function n({className:e,children:n,...a}){return(0,r.jsx)("section",{className:(0,t.cn)("py-16 md:py-28 lg:py-36 overflow-hidden content-visibility-auto",e),...a,children:n})}function a({className:e,children:n,...a}){return(0,r.jsx)("div",{className:(0,t.cn)("container mx-auto px-4 md:px-12 lg:px-16 max-w-7xl",e),...a,children:n})}function i({level:e=2,children:n,className:a,subtitle:i,align:s="left"}){let o=`h${e}`;return(0,r.jsxs)("div",{className:(0,t.cn)("mb-6 md:mb-12 text-primary",{left:"text-left",center:"text-center mx-auto",right:"text-right"}[s],a),children:[i&&(0,r.jsx)("span",{className:"inline-block text-accent font-bold tracking-widest uppercase text-xs md:text-sm mb-3 md:mb-4 animate-fade-in",children:i}),(0,r.jsx)(o,{className:(0,t.cn)({1:"text-2xl md:text-4xl lg:text-5xl font-bold leading-[1.1] tracking-tight",2:"text-xl md:text-3xl lg:text-4xl font-bold leading-[1.2] tracking-tight",3:"text-lg md:text-2xl lg:text-3xl font-bold leading-[1.3] tracking-tight",4:"text-lg md:text-xl lg:text-2xl font-bold leading-[1.4]",5:"text-base md:text-lg font-bold leading-[1.5]",6:"text-base md:text-lg font-semibold leading-[1.6]"}[e]),children:n})]})}function s({className:e,children:n,tag:a="div",...i}){return(0,r.jsx)(a,{className:(0,t.cn)("premium-card overflow-hidden",e),...i,children:n})}function o({className:e,...n}){return(0,r.jsx)("input",{className:(0,t.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg",e),...n})}function c({className:e,...n}){return(0,r.jsx)("textarea",{className:(0,t.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg resize-none",e),...n})}function u({className:e,...n}){return(0,r.jsx)("label",{className:(0,t.cn)("text-[10px] md:text-xs font-extrabold text-primary uppercase tracking-widest",e),...n})}e.s(["Section",()=>n],370476),e.s(["Container",()=>a],575003),e.s(["Heading",()=>i],982016),e.s(["Card",()=>s],105050),e.s(["Input",()=>o],801206),e.s(["Textarea",()=>c],587778),e.s(["Label",()=>u],9797),e.s([],445774)},759095,e=>{"use strict";var t=e.i(452797),r=e.i(907358);e.i(445774);var n=e.i(111023);function a({children:e,className:a,threshold:i=.1,delay:s=0}){let[o,c]=(0,r.useState)(!1),u=(0,r.useRef)(null);return(0,r.useEffect)(()=>{let e=new IntersectionObserver(([t])=>{t.isIntersecting&&(c(!0),e.unobserve(t.target))},{threshold:i}),t=u.current;return t&&e.observe(t),()=>{t&&e.unobserve(t)}},[i]),(0,t.jsx)("div",{ref:u,className:(0,n.cn)("reveal-on-scroll",o&&"is-visible",a),style:{transitionDelay:`${s}ms`},children:e})}e.s(["default",()=>a])},7278,e=>{"use strict";var t=e.i(452797),r=e.i(190422),n=e.i(907358),a=e.i(663067),i=e.i(902498);e.i(445774);var s=e.i(370476),o=e.i(575003),c=e.i(982016);let u=(0,i.default)(()=>e.A(357643),{loadableGenerated:{modules:[888085]},ssr:!1});function l(){let e=(0,r.useTranslations)("Team"),[i,l]=(0,n.useState)(!1),[d,_]=(0,n.useState)(0),p=["/uploads/2024/12/DSC07539-Large-600x400.webp","/uploads/2024/12/DSC07460-Large-600x400.webp","/uploads/2024/12/DSC07469-Large-600x400.webp","/uploads/2024/12/DSC07433-Large-600x400.webp","/uploads/2024/12/DSC07387-Large-600x400.webp"];return(0,t.jsxs)(s.Section,{className:"bg-primary-dark py-16 md:py-32",children:[(0,t.jsxs)(o.Container,{children:[(0,t.jsx)(c.Heading,{level:2,subtitle:e("gallery.subtitle"),align:"center",className:"text-white mb-12 md:mb-20",children:(0,t.jsx)("span",{className:"text-white",children:e("gallery.title")})}),(0,t.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-5 gap-3 md:gap-6",children:p.map((r,n)=>(0,t.jsxs)("button",{onClick:()=>{_(n),l(!0)},className:"relative aspect-[3/4] rounded-2xl md:rounded-[32px] overflow-hidden group shadow-2xl cursor-pointer",children:[(0,t.jsx)(a.default,{src:r,alt:e("gallery.title"),fill:!0,className:"object-cover transition-transform duration-1000 group-hover:scale-110"}),(0,t.jsx)("div",{className:"absolute inset-0 bg-primary-dark/40 group-hover:bg-transparent transition-all duration-500"}),(0,t.jsx)("div",{className:"absolute inset-0 border-0 group-hover:border-[8px] md:group-hover:border-[12px] border-white/10 transition-all duration-500 pointer-events-none"})]},n))})]}),(0,t.jsx)(u,{isOpen:i,images:p,initialIndex:d,onClose:()=>l(!1)})]})}e.s(["default",()=>l])},132273,e=>{"use strict";var t=e.i(452797),r=e.i(676525),n=e.i(630655),a=e.i(216033);function i({eventName:e=a.AnalyticsEvents.BUTTON_CLICK,eventProperties:i={},onClick:s,...o}){let{trackEvent:c}=(0,n.useAnalytics)();return(0,t.jsx)(r.Button,{...o,onClick:t=>{c(e,{...i,label:"string"==typeof o.children?o.children:i.label}),s&&s(t)}})}e.s(["default",()=>i])},357643,e=>{e.v(t=>Promise.all(["static/chunks/39db22b959bfa285.js"].map(t=>e.l(t))).then(()=>t(888085)))},919007,e=>{e.v(t=>Promise.all(["static/chunks/3ffd2a1cf95ceb60.js","static/chunks/f99046ae195fe277.js","static/chunks/6d182a34db4f4c54.js"].map(t=>e.l(t))).then(()=>t(502456)))}]); +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="08a3ee87-45c9-fde3-b423-17a90898d569")}catch(e){}}(); +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,102227,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReflectAdapter",{enumerable:!0,get:function(){return n}});class n{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}},365278,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(496932).createAsyncLocalStorage)()},517110,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorage",{enumerable:!0,get:function(){return n.afterTaskAsyncStorageInstance}});let n=e.r(365278)},780329,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isRequestAPICallableInsideAfter:function(){return u},throwForSearchParamsAccessInUseCache:function(){return c},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(579781),s=e.r(517110);function o(e,t){throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${t}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function c(e,t){let r=Object.defineProperty(Error(`Route ${e.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(r,t),e.invalidDynamicUsageError??=r,r}function u(){let e=s.afterTaskAsyncStorage.getStore();return(null==e?void 0:e.rootTaskSpawnPhase)==="action"}},759823,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a={RenderStage:function(){return c},StagedRenderingController:function(){return u}};for(var i in a)Object.defineProperty(r,i,{enumerable:!0,get:a[i]});let s=e.r(436120),o=e.r(444841);var c=((n={})[n.Before=1]="Before",n[n.Static=2]="Static",n[n.Runtime=3]="Runtime",n[n.Dynamic=4]="Dynamic",n[n.Abandoned=5]="Abandoned",n);class u{constructor(e=null,t){this.abortSignal=e,this.hasRuntimePrefetch=t,this.currentStage=1,this.staticInterruptReason=null,this.runtimeInterruptReason=null,this.staticStageEndTime=1/0,this.runtimeStageEndTime=1/0,this.runtimeStageListeners=[],this.dynamicStageListeners=[],this.runtimeStagePromise=(0,o.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,o.createPromiseWithResolvers)(),this.mayAbandon=!1,e&&(e.addEventListener("abort",()=>{let{reason:t}=e;this.currentStage<3&&(this.runtimeStagePromise.promise.catch(l),this.runtimeStagePromise.reject(t)),(this.currentStage<4||5===this.currentStage)&&(this.dynamicStagePromise.promise.catch(l),this.dynamicStagePromise.reject(t))},{once:!0}),this.mayAbandon=!0)}onStage(e,t){if(this.currentStage>=e)t();else if(3===e)this.runtimeStageListeners.push(t);else if(4===e)this.dynamicStageListeners.push(t);else throw Object.defineProperty(new s.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}canSyncInterrupt(){if(1===this.currentStage)return!1;let e=this.hasRuntimePrefetch?4:3;return this.currentStage=3&&(this.staticStageEndTime=performance.now()+performance.timeOrigin,this.resolveRuntimeStage()),t<4&&e>=4){this.runtimeStageEndTime=performance.now()+performance.timeOrigin,this.resolveDynamicStage();return}}resolveRuntimeStage(){let e=this.runtimeStageListeners;for(let t=0;t{n.then(e.bind(null,i),t)}),void 0!==a&&(s.displayName=a),s);return this.abortSignal&&o.catch(l),o}}function l(){}},118720,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addPathSuffix",{enumerable:!0,get:function(){return a}});let n=e.r(506985);function a(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:i}=(0,n.parsePath)(e);return`${r}${t}${a}${i}`}},446247,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addLocale",{enumerable:!0,get:function(){return i}});let n=e.r(688391),a=e.r(712550);function i(e,t,r,i){if(!t||t===r)return e;let s=e.toLowerCase();return!i&&((0,a.pathHasPrefix)(s,"/api")||(0,a.pathHasPrefix)(s,`/${t.toLowerCase()}`))?e:(0,n.addPathPrefix)(e,`/${t}`)}},971560,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"formatNextPathnameInfo",{enumerable:!0,get:function(){return o}});let n=e.r(895708),a=e.r(688391),i=e.r(118720),s=e.r(446247);function o(e){let t=(0,s.addLocale)(e.pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix);return(e.buildId||!e.trailingSlash)&&(t=(0,n.removeTrailingSlash)(t)),e.buildId&&(t=(0,i.addPathSuffix)((0,a.addPathPrefix)(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=(0,a.addPathPrefix)(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:(0,i.addPathSuffix)(t,"/"):(0,n.removeTrailingSlash)(t)}},866140,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"normalizeLocalePath",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e,t){let r;if(!t)return{pathname:e};let a=n.get(t);a||(a=t.map(e=>e.toLowerCase()),n.set(t,a));let i=e.split("/",2);if(!i[1])return{pathname:e};let s=i[1].toLowerCase(),o=a.indexOf(s);return o<0?{pathname:e}:(r=t[o],{pathname:e=e.slice(r.length+1)||"/",detectedLocale:r})}},857436,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removePathPrefix",{enumerable:!0,get:function(){return a}});let n=e.r(712550);function a(e,t){if(!(0,n.pathHasPrefix)(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:`/${r}`}},707723,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getNextPathnameInfo",{enumerable:!0,get:function(){return s}});let n=e.r(866140),a=e.r(857436),i=e.r(712550);function s(e,t){let{basePath:r,i18n:s,trailingSlash:o}=t.nextConfig??{},c={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):o};r&&(0,i.pathHasPrefix)(c.pathname,r)&&(c.pathname=(0,a.removePathPrefix)(c.pathname,r),c.basePath=r);let u=c.pathname;if(c.pathname.startsWith("/_next/data/")&&c.pathname.endsWith(".json")){let e=c.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");c.buildId=e[0],u="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(c.pathname=u)}if(s){let e=t.i18nProvider?t.i18nProvider.analyze(c.pathname):(0,n.normalizeLocalePath)(c.pathname,s.locales);c.locale=e.detectedLocale,c.pathname=e.pathname??c.pathname,!e.detectedLocale&&c.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(u):(0,n.normalizeLocalePath)(u,s.locales)).detectedLocale&&(c.locale=e.detectedLocale)}return c}},955973,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_SUFFIX:function(){return m},APP_DIR_ALIAS:function(){return F},CACHE_ONE_YEAR:function(){return v},DOT_NEXT_ALIAS:function(){return M},ESLINT_DEFAULT_DIRS:function(){return ea},GSP_NO_RETURNED_VALUE:function(){return J},GSSP_COMPONENT_MEMBER_ERROR:function(){return et},GSSP_NO_RETURNED_VALUE:function(){return Z},HTML_CONTENT_TYPE_HEADER:function(){return s},INFINITE_CACHE:function(){return C},INSTRUMENTATION_HOOK_FILENAME:function(){return w},JSON_CONTENT_TYPE_HEADER:function(){return o},MATCHED_PATH_HEADER:function(){return l},MIDDLEWARE_FILENAME:function(){return N},MIDDLEWARE_LOCATION_REGEXP:function(){return y},NEXT_BODY_SUFFIX:function(){return S},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return I},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return P},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return b},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return O},NEXT_CACHE_TAGS_HEADER:function(){return R},NEXT_CACHE_TAG_MAX_ITEMS:function(){return x},NEXT_CACHE_TAG_MAX_LENGTH:function(){return A},NEXT_DATA_SUFFIX:function(){return E},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return u},NEXT_META_SUFFIX:function(){return h},NEXT_QUERY_PARAM_PREFIX:function(){return c},NEXT_RESUME_HEADER:function(){return T},NON_STANDARD_NODE_ENV:function(){return er},PAGES_DIR_ALIAS:function(){return j},PRERENDER_REVALIDATE_HEADER:function(){return d},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return _},PROXY_FILENAME:function(){return L},PROXY_LOCATION_REGEXP:function(){return D},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return V},ROOT_DIR_ALIAS:function(){return U},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return Y},RSC_ACTION_ENCRYPTION_ALIAS:function(){return W},RSC_ACTION_PROXY_ALIAS:function(){return H},RSC_ACTION_VALIDATE_ALIAS:function(){return X},RSC_CACHE_WRAPPER_ALIAS:function(){return k},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return B},RSC_MOD_REF_PROXY_ALIAS:function(){return G},RSC_SEGMENTS_DIR_SUFFIX:function(){return p},RSC_SEGMENT_SUFFIX:function(){return f},RSC_SUFFIX:function(){return g},SERVER_PROPS_EXPORT_ERROR:function(){return Q},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return K},SERVER_PROPS_SSG_CONFLICT:function(){return q},SERVER_RUNTIME:function(){return ei},SSG_FALLBACK_EXPORT_ERROR:function(){return en},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return $},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return z},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return i},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return ee},WEBPACK_LAYERS:function(){return ec},WEBPACK_RESOURCE_QUERIES:function(){return eu},WEB_SOCKET_MAX_RECONNECTIONS:function(){return es}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i="text/plain",s="text/html; charset=utf-8",o="application/json; charset=utf-8",c="nxtP",u="nxtI",l="x-matched-path",d="x-prerender-revalidate",_="x-prerender-revalidate-if-generated",p=".segments",f=".segment.rsc",g=".rsc",m=".action",E=".json",h=".meta",S=".body",R="x-next-cache-tags",P="x-next-revalidated-tags",b="x-next-revalidate-tag-token",T="next-resume",x=128,A=256,O=1024,I="_N_T_",v=31536e3,C=0xfffffffe,N="middleware",y=`(?:src/)?${N}`,L="proxy",D=`(?:src/)?${L}`,w="instrumentation",j="private-next-pages",M="private-dot-next",U="private-next-root-dir",F="private-next-app-dir",G="private-next-rsc-mod-ref-proxy",X="private-next-rsc-action-validate",H="private-next-rsc-server-reference",k="private-next-rsc-cache-wrapper",B="private-next-rsc-track-dynamic-import",W="private-next-rsc-action-encryption",Y="private-next-rsc-action-client-wrapper",V="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",$="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",K="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",q="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",z="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",Q="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",J="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",Z="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",ee="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",et="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",er='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',en="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",ea=["app","pages","components","lib","src"],ei={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},es=12,eo={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},ec={...eo,GROUP:{builtinReact:[eo.reactServerComponents,eo.actionBrowser],serverOnly:[eo.reactServerComponents,eo.actionBrowser,eo.instrument,eo.middleware],neutralTarget:[eo.apiNode,eo.apiEdge],clientOnly:[eo.serverSideRendering,eo.appPagesBrowser],bundled:[eo.reactServerComponents,eo.actionBrowser,eo.serverSideRendering,eo.appPagesBrowser,eo.shared,eo.instrument,eo.middleware],appPages:[eo.reactServerComponents,eo.serverSideRendering,eo.appPagesBrowser,eo.actionBrowser]}},eu={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},630655,e=>{"use strict";var t=e.i(907358),r=e.i(777616);function n(){let e=(0,r.getAppServices)();return{trackEvent:(0,t.useCallback)((t,r)=>{e.analytics.track(t,r)},[e]),trackPageview:(0,t.useCallback)(t=>{e.analytics.trackPageview(t)},[e])}}e.s(["useAnalytics",()=>n])},216033,e=>{"use strict";e.s(["AnalyticsEvents",0,{PAGE_VIEW:"pageview",PAGE_SCROLL:"page_scroll",PAGE_EXIT:"page_exit",SCROLL_DEPTH:"scroll_depth",BUTTON_CLICK:"button_click",LINK_CLICK:"link_click",FORM_SUBMIT:"form_submit",FORM_START:"form_start",FORM_ERROR:"form_error",FORM_FIELD_FOCUS:"form_field_focus",PRODUCT_VIEW:"product_view",PRODUCT_ADD_TO_CART:"product_add_to_cart",PRODUCT_REMOVE_FROM_CART:"product_remove_from_cart",PRODUCT_PURCHASE:"product_purchase",PRODUCT_WISHLIST_ADD:"product_wishlist_add",PRODUCT_WISHLIST_REMOVE:"product_wishlist_remove",PRODUCT_TAB_SWITCH:"product_tab_switch",SEARCH:"search",FILTER_APPLY:"filter_apply",FILTER_CLEAR:"filter_clear",USER_SIGNUP:"user_signup",USER_LOGIN:"user_login",USER_LOGOUT:"user_logout",USER_PROFILE_UPDATE:"user_profile_update",BLOG_POST_VIEW:"blog_post_view",VIDEO_PLAY:"video_play",VIDEO_PAUSE:"video_pause",VIDEO_COMPLETE:"video_complete",DOWNLOAD:"download",MODAL_OPEN:"modal_open",MODAL_CLOSE:"modal_close",TOGGLE_SWITCH:"toggle_switch",ACCORDION_TOGGLE:"accordion_toggle",TAB_SWITCH:"tab_switch",TOC_CLICK:"toc_click",ERROR:"error",PERFORMANCE:"performance",API_ERROR:"api_error",API_SUCCESS:"api_success",QUOTE_REQUEST:"quote_request",CONTACT_FORM_SUBMIT:"contact_form_submit",NEWSLETTER_SUBSCRIBE:"newsletter_subscribe",BROCHURE_DOWNLOAD:"brochure_download"}])},445774,370476,575003,982016,105050,801206,587778,9797,e=>{"use strict";var t=e.i(111023);e.i(676525);var r=e.i(452797);function n({className:e,children:n,...a}){return(0,r.jsx)("section",{className:(0,t.cn)("py-16 md:py-28 lg:py-36 overflow-hidden content-visibility-auto",e),...a,children:n})}function a({className:e,children:n,...a}){return(0,r.jsx)("div",{className:(0,t.cn)("container mx-auto px-4 md:px-12 lg:px-16 max-w-7xl",e),...a,children:n})}function i({level:e=2,children:n,className:a,subtitle:i,align:s="left"}){let o=`h${e}`;return(0,r.jsxs)("div",{className:(0,t.cn)("mb-6 md:mb-12 text-primary",{left:"text-left",center:"text-center mx-auto",right:"text-right"}[s],a),children:[i&&(0,r.jsx)("span",{className:"inline-block text-accent font-bold tracking-widest uppercase text-xs md:text-sm mb-3 md:mb-4 animate-fade-in",children:i}),(0,r.jsx)(o,{className:(0,t.cn)({1:"text-2xl md:text-4xl lg:text-5xl font-bold leading-[1.1] tracking-tight",2:"text-xl md:text-3xl lg:text-4xl font-bold leading-[1.2] tracking-tight",3:"text-lg md:text-2xl lg:text-3xl font-bold leading-[1.3] tracking-tight",4:"text-lg md:text-xl lg:text-2xl font-bold leading-[1.4]",5:"text-base md:text-lg font-bold leading-[1.5]",6:"text-base md:text-lg font-semibold leading-[1.6]"}[e]),children:n})]})}function s({className:e,children:n,tag:a="div",...i}){return(0,r.jsx)(a,{className:(0,t.cn)("premium-card overflow-hidden",e),...i,children:n})}function o({className:e,...n}){return(0,r.jsx)("input",{className:(0,t.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg",e),...n})}function c({className:e,...n}){return(0,r.jsx)("textarea",{className:(0,t.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg resize-none",e),...n})}function u({className:e,...n}){return(0,r.jsx)("label",{className:(0,t.cn)("text-[10px] md:text-xs font-extrabold text-primary uppercase tracking-widest",e),...n})}e.s(["Section",()=>n],370476),e.s(["Container",()=>a],575003),e.s(["Heading",()=>i],982016),e.s(["Card",()=>s],105050),e.s(["Input",()=>o],801206),e.s(["Textarea",()=>c],587778),e.s(["Label",()=>u],9797),e.s([],445774)},759095,e=>{"use strict";var t=e.i(452797),r=e.i(907358);e.i(445774);var n=e.i(111023);function a({children:e,className:a,threshold:i=.1,delay:s=0}){let[o,c]=(0,r.useState)(!1),u=(0,r.useRef)(null);return(0,r.useEffect)(()=>{let e=new IntersectionObserver(([t])=>{t.isIntersecting&&(c(!0),e.unobserve(t.target))},{threshold:i}),t=u.current;return t&&e.observe(t),()=>{t&&e.unobserve(t)}},[i]),(0,t.jsx)("div",{ref:u,className:(0,n.cn)("reveal-on-scroll",o&&"is-visible",a),style:{transitionDelay:`${s}ms`},children:e})}e.s(["default",()=>a])},7278,e=>{"use strict";var t=e.i(452797),r=e.i(190422),n=e.i(907358),a=e.i(663067),i=e.i(902498);e.i(445774);var s=e.i(370476),o=e.i(575003),c=e.i(982016);let u=(0,i.default)(()=>e.A(357643),{loadableGenerated:{modules:[888085]},ssr:!1});function l(){let e=(0,r.useTranslations)("Team"),[i,l]=(0,n.useState)(!1),[d,_]=(0,n.useState)(0),p=["/uploads/2024/12/DSC07539-Large-600x400.webp","/uploads/2024/12/DSC07460-Large-600x400.webp","/uploads/2024/12/DSC07469-Large-600x400.webp","/uploads/2024/12/DSC07433-Large-600x400.webp","/uploads/2024/12/DSC07387-Large-600x400.webp"];return(0,t.jsxs)(s.Section,{className:"bg-primary-dark py-16 md:py-32",children:[(0,t.jsxs)(o.Container,{children:[(0,t.jsx)(c.Heading,{level:2,subtitle:e("gallery.subtitle"),align:"center",className:"text-white mb-12 md:mb-20",children:(0,t.jsx)("span",{className:"text-white",children:e("gallery.title")})}),(0,t.jsx)("div",{className:"grid grid-cols-2 md:grid-cols-5 gap-3 md:gap-6",children:p.map((r,n)=>(0,t.jsxs)("button",{onClick:()=>{_(n),l(!0)},className:"relative aspect-[3/4] rounded-2xl md:rounded-[32px] overflow-hidden group shadow-2xl cursor-pointer",children:[(0,t.jsx)(a.default,{src:r,alt:e("gallery.title"),fill:!0,className:"object-cover transition-transform duration-1000 group-hover:scale-110"}),(0,t.jsx)("div",{className:"absolute inset-0 bg-primary-dark/40 group-hover:bg-transparent transition-all duration-500"}),(0,t.jsx)("div",{className:"absolute inset-0 border-0 group-hover:border-[8px] md:group-hover:border-[12px] border-white/10 transition-all duration-500 pointer-events-none"})]},n))})]}),(0,t.jsx)(u,{isOpen:i,images:p,initialIndex:d,onClose:()=>l(!1)})]})}e.s(["default",()=>l])},132273,e=>{"use strict";var t=e.i(452797),r=e.i(676525),n=e.i(630655),a=e.i(216033);function i({eventName:e=a.AnalyticsEvents.BUTTON_CLICK,eventProperties:i={},onClick:s,...o}){let{trackEvent:c}=(0,n.useAnalytics)();return(0,t.jsx)(r.Button,{...o,onClick:t=>{c(e,{...i,label:"string"==typeof o.children?o.children:i.label}),s&&s(t)}})}e.s(["default",()=>i])},357643,e=>{e.v(t=>Promise.all(["static/chunks/39db22b959bfa285.js"].map(t=>e.l(t))).then(()=>t(888085)))},919007,e=>{e.v(t=>Promise.all(["static/chunks/3ffd2a1cf95ceb60.js","static/chunks/32fec23faa4b171a.js","static/chunks/6d182a34db4f4c54.js"].map(t=>e.l(t))).then(()=>t(502456)))}]); -//# debugId=704cfebd-839e-885a-5ec0-e9abc9a4630d \ No newline at end of file +//# debugId=08a3ee87-45c9-fde3-b423-17a90898d569 \ No newline at end of file diff --git a/.next/static/chunks/f99046ae195fe277.js b/.next/static/chunks/32fec23faa4b171a.js similarity index 99% rename from .next/static/chunks/f99046ae195fe277.js rename to .next/static/chunks/32fec23faa4b171a.js index f5b9b8409..4f8f6adb5 100644 --- a/.next/static/chunks/f99046ae195fe277.js +++ b/.next/static/chunks/32fec23faa4b171a.js @@ -1,4 +1,4 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="c5110e32-c1da-46a6-4d7d-17c4d3698a91")}catch(e){}}(); +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="aa505f9a-67fd-87e2-8b0a-095b07d07b33")}catch(e){}}(); (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,769117,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"BloomFilter",{enumerable:!0,get:function(){return n}});class n{constructor(e,t=1e-4){this.numItems=e,this.errorRate=t,this.numBits=Math.ceil(-(e*Math.log(t))/(Math.log(2)*Math.log(2))),this.numHashes=Math.ceil(this.numBits/e*Math.log(2)),this.bitArray=Array(this.numBits).fill(0)}static from(e,t=1e-4){let r=new n(e.length,t);for(let t of e)r.add(t);return r}export(){return{numItems:this.numItems,errorRate:this.errorRate,numBits:this.numBits,numHashes:this.numHashes,bitArray:this.bitArray}}import(e){this.numItems=e.numItems,this.errorRate=e.errorRate,this.numBits=e.numBits,this.numHashes=e.numHashes,this.bitArray=e.bitArray}add(e){this.getHashValues(e).forEach(e=>{this.bitArray[e]=1})}contains(e){return this.getHashValues(e).every(e=>this.bitArray[e])}getHashValues(e){let t=[];for(let r=1;r<=this.numHashes;r++){let n=function(e){let t=0;for(let r=0;r>>13,t=Math.imul(t,0x5bd1e995);return t>>>0}(`${e}${r}`)%this.numBits;t.push(n)}return t}}},667210,(e,t,r)=>{"use strict";function n(e,t=""){return("/"===e?"/index":/^\/index(\/|$)/.test(e)?`/index${e}`:e)+t}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return n}})},230868,(e,t,r)=>{"use strict";let n;function a(e){return(void 0===n&&"u">typeof window&&(n=window.trustedTypes?.createPolicy("nextjs",{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e})||null),n)?.createScriptURL(e)||e}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"__unsafeCreateTrustedScriptURL",{enumerable:!0,get:function(){return a}}),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},91266,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={cancelIdleCallback:function(){return o},requestIdleCallback:function(){return i}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i="u">typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(e){let t=Date.now();return self.setTimeout(function(){e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})},1)},o="u">typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(window)||function(e){return clearTimeout(e)};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},598896,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={createRouteLoader:function(){return y},getClientBuildManifest:function(){return g},isAssetError:function(){return p},markAssetError:function(){return d}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});e.r(481258),e.r(667210);let i=e.r(230868),o=e.r(91266),s=e.r(954633),l=e.r(818127);function u(e,t,r){let n,a=t.get(e);if(a)return"future"in a?a.future:Promise.resolve(a);let i=new Promise(e=>{n=e});return t.set(e,{resolve:n,future:i}),r?r().then(e=>(n(e),e)).catch(r=>{throw t.delete(e),r}):i}let c=Symbol("ASSET_LOAD_ERROR");function d(e){return Object.defineProperty(e,c,{})}function p(e){return e&&c in e}let f=function(e){try{return e=document.createElement("link"),!!window.MSInputMethodContext&&!!document.documentMode||e.relList.supports("prefetch")}catch{return!1}}(),h=()=>(0,s.getDeploymentIdQueryOrEmptyString)();function m(e,t,r){return new Promise((n,a)=>{let i=!1;e.then(e=>{i=!0,n(e)}).catch(a),(0,o.requestIdleCallback)(()=>setTimeout(()=>{i||a(r)},t))})}function g(){return self.__BUILD_MANIFEST?Promise.resolve(self.__BUILD_MANIFEST):m(new Promise(e=>{let t=self.__BUILD_MANIFEST_CB;self.__BUILD_MANIFEST_CB=()=>{e(self.__BUILD_MANIFEST),t&&t()}}),3800,d(Object.defineProperty(Error("Failed to load client build manifest"),"__NEXT_ERROR_CODE",{value:"E273",enumerable:!1,configurable:!0})))}function _(e,t){return g().then(r=>{if(!(t in r))throw d(Object.defineProperty(Error(`Failed to lookup route: ${t}`),"__NEXT_ERROR_CODE",{value:"E446",enumerable:!1,configurable:!0}));let n=r[t].map(t=>e+"/_next/"+(0,l.encodeURIPath)(t));return{scripts:n.filter(e=>e.endsWith(".js")).map(e=>(0,i.__unsafeCreateTrustedScriptURL)(e)+h()),css:n.filter(e=>e.endsWith(".css")).map(e=>e+h())}})}function y(e){let t=new Map,r=new Map,n=new Map,a=new Map;function i(e){{var t;let n=r.get(e.toString());return n?n:document.querySelector(`script[src^="${e}"]`)?Promise.resolve():(r.set(e.toString(),n=new Promise((r,n)=>{(t=document.createElement("script")).onload=r,t.onerror=()=>n(d(Object.defineProperty(Error(`Failed to load script: ${e}`),"__NEXT_ERROR_CODE",{value:"E74",enumerable:!1,configurable:!0}))),t.crossOrigin=void 0,t.src=e,document.body.appendChild(t)})),n)}}function s(e){let t=n.get(e);return t||n.set(e,t=fetch(e,{credentials:"same-origin"}).then(t=>{if(!t.ok)throw Object.defineProperty(Error(`Failed to load stylesheet: ${e}`),"__NEXT_ERROR_CODE",{value:"E189",enumerable:!1,configurable:!0});return t.text().then(t=>({href:e,content:t}))}).catch(e=>{throw d(e)})),t}return{whenEntrypoint:e=>u(e,t),onEntrypoint(e,r){(r?Promise.resolve().then(()=>r()).then(e=>({component:e&&e.default||e,exports:e}),e=>({error:e})):Promise.resolve(void 0)).then(r=>{let n=t.get(e);n&&"resolve"in n?r&&(t.set(e,r),n.resolve(r)):(r?t.set(e,r):t.delete(e),a.delete(e))})},loadRoute(r,n){return u(r,a,()=>{let a;return m(_(e,r).then(({scripts:e,css:n})=>Promise.all([t.has(r)?[]:Promise.all(e.map(i)),Promise.all(n.map(s))])).then(e=>this.whenEntrypoint(r).then(t=>({entrypoint:t,styles:e[1]}))),3800,d(Object.defineProperty(Error(`Route did not complete loading: ${r}`),"__NEXT_ERROR_CODE",{value:"E12",enumerable:!1,configurable:!0}))).then(({entrypoint:e,styles:t})=>{let r=Object.assign({styles:t},e);return"error"in e?e:r}).catch(e=>{if(n)throw e;return{error:e}}).finally(()=>a?.())})},prefetch(t){let r;return(r=navigator.connection)&&(r.saveData||/2g/.test(r.effectiveType))?Promise.resolve():_(e,t).then(e=>Promise.all(f?e.scripts.map(e=>{var t,r,n;return t=e.toString(),r="script",new Promise((e,a)=>{let i=` link[rel="prefetch"][href^="${t}"], link[rel="preload"][href^="${t}"], @@ -17,7 +17,7 @@ Name: ${(0,em.getFunctionName)(n)} Error:`,t)}}function tB(e){let t="console";tL(t,e),tD(t,tj)}function tj(){"console"in Y.GLOBAL_OBJ&&z.CONSOLE_LEVELS.forEach(function(e){e in Y.GLOBAL_OBJ.console&&(0,ed.fill)(Y.GLOBAL_OBJ.console,e,function(t){return z.originalConsoleMethods[e]=t,function(...t){tU("console",{args:t,level:e});let r=z.originalConsoleMethods[e];r?.apply(Y.GLOBAL_OBJ.console,t)}})})}let t$=Y.GLOBAL_OBJ;function tF(e){return e&&/^function\s+\w+\(\)\s+\{\s+\[native code\]\s+\}$/.test(e.toString())}function tH(){if("string"==typeof EdgeRuntime)return!0;if(!function(){if(!("fetch"in t$))return!1;try{return new Headers,new Request("data:,"),new Response,!0}catch{return!1}}())return!1;if(tF(t$.fetch))return!0;let e=!1,t=t$.document;if(t&&"function"==typeof t.createElement)try{let r=t.createElement("iframe");r.hidden=!0,t.head.appendChild(r),r.contentWindow?.fetch&&(e=tF(r.contentWindow.fetch)),t.head.removeChild(r)}catch(e){Q.DEBUG_BUILD&&z.debug.warn("Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ",e)}return e}function tW(e,t){let r="fetch";tL(r,e),tD(r,()=>tq(void 0,t))}function tq(e,t=!1){(!t||tH())&&(0,ed.fill)(Y.GLOBAL_OBJ,"fetch",function(t){return function(...r){let n=Error(),{method:a,url:i}=function(e){if(0===e.length)return{method:"GET",url:""};if(2===e.length){let[t,r]=e;return{url:tJ(t),method:tY(r,"method")?String(r.method).toUpperCase():(0,eA.isRequest)(t)&&tY(t,"method")?String(t.method).toUpperCase():"GET"}}let t=e[0];return{url:tJ(t),method:tY(t,"method")?String(t.method).toUpperCase():"GET"}}(r),o={args:r,fetchData:{method:a,url:i},startTimestamp:1e3*(0,eO.timestampInSeconds)(),virtualError:n,headers:function(e){let[t,r]=e;try{if("object"==typeof r&&null!==r&&"headers"in r&&r.headers)return new Headers(r.headers);if((0,eA.isRequest)(t))return new Headers(t.headers)}catch{}}(r)};return e||tU("fetch",{...o}),t.apply(Y.GLOBAL_OBJ,r).then(async t=>(e?e(t):tU("fetch",{...o,endTimestamp:1e3*(0,eO.timestampInSeconds)(),response:t}),t),e=>{tU("fetch",{...o,endTimestamp:1e3*(0,eO.timestampInSeconds)(),error:e}),(0,eA.isError)(e)&&void 0===e.stack&&(e.stack=n.stack,(0,ed.addNonEnumerableProperty)(e,"framesToPop",1));let t=(0,X.getClient)(),r=t?.getOptions().enhanceFetchErrorMessages??"always";if(!1!==r&&e instanceof TypeError&&("Failed to fetch"===e.message||"Load failed"===e.message||"NetworkError when attempting to fetch resource."===e.message))try{let t=new URL(o.fetchData.url).host;"always"===r?e.message=`${e.message} (${t})`:(0,ed.addNonEnumerableProperty)(e,"__sentry_fetch_url_host__",t)}catch{}throw e})}})}async function tG(e,t){if(e?.body){let r=e.body,n=r.getReader(),a=setTimeout(()=>{r.cancel().then(null,()=>{})},9e4),i=!0;for(;i;){let e;try{e=setTimeout(()=>{r.cancel().then(null,()=>{})},5e3);let{done:a}=await n.read();clearTimeout(e),a&&(t(),i=!1)}catch{i=!1}finally{clearTimeout(e)}}clearTimeout(a),n.releaseLock(),r.cancel().then(null,()=>{})}}function tz(e){let t;try{t=e.clone()}catch{return}tG(t,()=>{tU("fetch-body-resolved",{endTimestamp:1e3*(0,eO.timestampInSeconds)(),response:e})})}function tY(e,t){return!!e&&"object"==typeof e&&!!e[t]}function tJ(e){return"string"==typeof e?e:e?tY(e,"url")?e.url:e.toString?e.toString():"":""}function tV(e){return"warn"===e?"warning":["fatal","error","warning","log","info","debug"].includes(e)?e:"log"}function tK(e,t){let r=(0,X.getClient)(),n=(0,X.getIsolationScope)();if(!r)return;let{beforeBreadcrumb:a=null,maxBreadcrumbs:i=100}=r.getOptions();if(i<=0)return;let o={timestamp:(0,eO.dateTimestampInSeconds)(),...e},s=a?(0,z.consoleSandbox)(()=>a(o,t)):o;null!==s&&(r.emit&&r.emit("beforeAddBreadcrumb",s,t),n.addBreadcrumb(s,i))}function tX(e){if(void 0!==e)return e>=400&&e<500?"warning":e>=500?"error":void 0}function tQ(e){return"isRelative"in e}function tZ(e,t){let r=0>=e.indexOf("://")&&0!==e.indexOf("//"),n=t??(r?"thismessage:/":void 0);try{if("canParse"in URL&&!URL.canParse(e,n))return;let t=new URL(e,n);if(r)return{isRelative:r,pathname:t.pathname,search:t.search,hash:t.hash};return t}catch{}}function t0(e){if(!e)return{};let t=e.match(/^(([^:/?#]+):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/);if(!t)return{};let r=t[6]||"",n=t[8]||"";return{host:t[4],path:t[5],protocol:t[2],search:r,hash:n,relative:t[5]+r+n}}function t1(e){return e.split(/[?#]/,1)[0]}function t2(e,t=!0){if(e.startsWith("data:")){let r=e.match(/^data:([^;,]+)/),n=r?r[1]:"text/plain",a=e.includes(";base64,"),i=e.indexOf(","),o="";if(t&&-1!==i){let t=e.slice(i+1);o=t.length>10?`${t.slice(0,10)}... [truncated]`:t}return`data:${n}${a?",base64":""}${o?`,${o}`:""}`}return e}let t3=Y.GLOBAL_OBJ;function t5(e){tL("dom",e),tD("dom",t4)}function t4(){if(!t3.document)return;let e=tU.bind(null,"dom"),t=t6(e,!0);t3.document.addEventListener("click",t,!1),t3.document.addEventListener("keypress",t,!1),["EventTarget","Node"].forEach(t=>{let r=t3[t]?.prototype;r?.hasOwnProperty?.("addEventListener")&&((0,ed.fill)(r,"addEventListener",function(t){return function(r,n,a){if("click"===r||"keypress"==r)try{let n=this.__sentry_instrumentation_handlers__=this.__sentry_instrumentation_handlers__||{},i=n[r]=n[r]||{refCount:0};if(!i.handler){let n=t6(e);i.handler=n,t.call(this,r,n,a)}i.refCount++}catch{}return t.call(this,r,n,a)}}),(0,ed.fill)(r,"removeEventListener",function(e){return function(t,r,n){if("click"===t||"keypress"==t)try{let r=this.__sentry_instrumentation_handlers__||{},a=r[t];a&&(a.refCount--,a.refCount<=0&&(e.call(this,t,a.handler,n),a.handler=void 0,delete r[t]),0===Object.keys(r).length&&delete this.__sentry_instrumentation_handlers__)}catch{}return e.call(this,t,r,n)}}))})}function t6(e,t=!1){return r=>{var o;if(!r||r._sentryCaptured)return;let s=function(e){try{return e.target}catch{return null}}(r);if(o=r.type,"keypress"===o&&(!s?.tagName||"INPUT"!==s.tagName&&"TEXTAREA"!==s.tagName&&!s.isContentEditable&&1))return;(0,ed.addNonEnumerableProperty)(r,"_sentryCaptured",!0),s&&!s._sentryId&&(0,ed.addNonEnumerableProperty)(s,"_sentryId",(0,ea.uuid4)());let l="keypress"===r.type?"input":r.type;!function(e){if(e.type!==a)return!1;try{if(!e.target||e.target._sentryId!==i)return!1}catch{}return!0}(r)&&(e({event:r,name:l,global:t}),a=r.type,i=s?s._sentryId:void 0),clearTimeout(n),n=t3.setTimeout(()=>{i=void 0,a=void 0},1e3)}}let t8="__sentry_xhr_v3__";function t7(e){tL("xhr",e),tD("xhr",t9)}function t9(){if(!t3.XMLHttpRequest)return;let e=XMLHttpRequest.prototype;e.open=new Proxy(e.open,{apply(e,t,r){let n=Error(),a=1e3*(0,eO.timestampInSeconds)(),i=(0,eA.isString)(r[0])?r[0].toUpperCase():void 0,o=function(e){if((0,eA.isString)(e))return e;try{return e.toString()}catch{}}(r[1]);if(!i||!o)return e.apply(t,r);t[t8]={method:i,url:o,request_headers:{}},"POST"===i&&o.match(/sentry_key/)&&(t.__sentry_own_request__=!0);let s=()=>{let e=t[t8];if(e&&4===t.readyState){try{e.status_code=t.status}catch{}tU("xhr",{endTimestamp:1e3*(0,eO.timestampInSeconds)(),startTimestamp:a,xhr:t,virtualError:n})}};return"onreadystatechange"in t&&"function"==typeof t.onreadystatechange?t.onreadystatechange=new Proxy(t.onreadystatechange,{apply:(e,t,r)=>(s(),e.apply(t,r))}):t.addEventListener("readystatechange",s),t.setRequestHeader=new Proxy(t.setRequestHeader,{apply(e,t,r){let[n,a]=r,i=t[t8];return i&&(0,eA.isString)(n)&&(0,eA.isString)(a)&&(i.request_headers[n.toLowerCase()]=a),e.apply(t,r)}}),e.apply(t,r)}}),e.send=new Proxy(e.send,{apply(e,t,r){let n=t[t8];return n&&(void 0!==r[0]&&(n.body=r[0]),tU("xhr",{startTimestamp:1e3*(0,eO.timestampInSeconds)(),xhr:t})),e.apply(t,r)}})}function re(e){let t="history";tL(t,e),tD(t,rt)}function rt(){function e(e){return function(...t){let r=t.length>2?t[2]:void 0;if(r){let n=o,a=function(e){try{return new URL(e,t3.location.origin).toString()}catch{return e}}(String(r));if(o=a,n===a)return e.apply(this,t);tU("history",{from:n,to:a})}return e.apply(this,t)}}t3.addEventListener("popstate",()=>{let e=t3.location.href,t=o;o=e,t===e||tU("history",{from:t,to:e})}),"history"in t$&&t$.history&&((0,ed.fill)(t3.history,"pushState",e),(0,ed.fill)(t3.history,"replaceState",e))}let rr="u"{let t={console:!0,dom:!0,fetch:!0,history:!0,sentry:!0,xhr:!0,...e};return{name:"Breadcrumbs",setup(e){var r,n,a,i,o,s,l;t.console&&tB((r=e,function(e){if((0,X.getClient)()!==r)return;let t={category:"console",data:{arguments:e.args,logger:"console"},level:tV(e.level),message:(0,ei.safeJoin)(e.args," ")};if("assert"===e.level)if(!1!==e.args[0])return;else t.message=`Assertion failed: ${(0,ei.safeJoin)(e.args.slice(1)," ")||"console.assert"}`,t.data.arguments=e.args.slice(1);tK(t,{input:e.args,level:e.level})})),t.dom&&t5((n=e,a=t.dom,function(e){let t,r;if((0,X.getClient)()!==n)return;let i="object"==typeof a?a.serializeAttribute:void 0,o="object"==typeof a&&"number"==typeof a.maxStringLength?a.maxStringLength:void 0;o&&o>1024&&(rr&&z.debug.warn(`\`dom.maxStringLength\` cannot exceed 1024, but a value of ${o} was configured. Sentry will use 1024 instead.`),o=1024),"string"==typeof i&&(i=[i]);try{var s;let n=e.event,a=(s=n)&&s.target?n.target:n;t=(0,tC.htmlTreeAsString)(a,{keyAttrs:i,maxStringLength:o}),r=(0,tC.getComponentName)(a)}catch{t=""}if(0===t.length)return;let l={category:`ui.${e.name}`,message:t};r&&(l.data={"ui.component_name":r}),tK(l,{event:e.event,name:e.name,global:e.global})})),t.xhr&&t7((i=e,function(e){if((0,X.getClient)()!==i)return;let{startTimestamp:t,endTimestamp:r}=e,n=e.xhr[t8];if(!t||!r||!n)return;let{method:a,url:o,status_code:s,body:l}=n,u={xhr:e.xhr,input:l,startTimestamp:t,endTimestamp:r},c={category:"xhr",data:{method:a,url:o,status_code:s},type:"http",level:tX(s)};i.emit("beforeOutgoingRequestBreadcrumb",c,u),tK(c,u)})),t.fetch&&tW((o=e,function(e){if((0,X.getClient)()!==o)return;let{startTimestamp:t,endTimestamp:r}=e;if(r&&(!e.fetchData.url.match(/sentry_key/)||"POST"!==e.fetchData.method))if(e.error){let n={data:e.error,input:e.args,startTimestamp:t,endTimestamp:r},a={category:"fetch",data:e.fetchData,level:"error",type:"http"};o.emit("beforeOutgoingRequestBreadcrumb",a,n),tK(a,n)}else{let n=e.response,a={...e.fetchData,status_code:n?.status},i={input:e.args,response:n,startTimestamp:t,endTimestamp:r},s={category:"fetch",data:a,type:"http",level:tX(a.status_code)};o.emit("beforeOutgoingRequestBreadcrumb",s,i),tK(s,i)}})),t.history&&re((s=e,function(e){if((0,X.getClient)()!==s)return;let t=e.from,r=e.to,n=t0(tA.location.href),a=t?t0(t):void 0,i=t0(r);a?.path||(a=n),n.protocol===i.protocol&&n.host===i.host&&(r=i.relative),n.protocol===a.protocol&&n.host===a.host&&(t=a.relative),tK({category:"navigation",data:{from:t,to:r}})})),t.sentry&&e.on("beforeSendEvent",(l=e,function(e){(0,X.getClient)()===l&&tK({category:`sentry.${"transaction"===e.type?"transaction":"event"}`,event_id:e.event_id,level:e.level,message:(0,ea.getEventDescription)(e)},{event:e})}))}}},ra="EventTarget,Window,Node,ApplicationCache,AudioTrackList,BroadcastChannel,ChannelMergerNode,CryptoOperation,EventSource,FileReader,HTMLUnknownElement,IDBDatabase,IDBRequest,IDBTransaction,KeyOperation,MediaController,MessagePort,ModalWindow,Notification,SVGElementInstance,Screen,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebSocket,WebSocketWorker,Worker,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload".split(","),ri=(e={})=>{let t={XMLHttpRequest:!0,eventTarget:!0,requestAnimationFrame:!0,setInterval:!0,setTimeout:!0,unregisterOriginalCallbacks:!1,...e};return{name:"BrowserApiErrors",setupOnce(){t.setTimeout&&(0,ed.fill)(tA,"setTimeout",ro),t.setInterval&&(0,ed.fill)(tA,"setInterval",ro),t.requestAnimationFrame&&(0,ed.fill)(tA,"requestAnimationFrame",rs),t.XMLHttpRequest&&"XMLHttpRequest"in tA&&(0,ed.fill)(XMLHttpRequest.prototype,"send",rl);let e=t.eventTarget;e&&(Array.isArray(e)?e:ra).forEach(e=>{var r,n;let a;return r=e,n=t,a=tA[r]?.prototype,void(a?.hasOwnProperty?.("addEventListener")&&((0,ed.fill)(a,"addEventListener",function(e){return function(t,a,i){var o,s,l,u;try{o=a,"function"==typeof o.handleEvent&&(a.handleEvent=tN(a.handleEvent,{mechanism:{data:{handler:(0,em.getFunctionName)(a),target:r},handled:!1,type:"auto.browser.browserapierrors.handleEvent"}}))}catch{}return n.unregisterOriginalCallbacks&&(s=this,l=t,u=a,s&&"object"==typeof s&&"removeEventListener"in s&&"function"==typeof s.removeEventListener&&s.removeEventListener(l,u)),e.apply(this,[t,tN(a,{mechanism:{data:{handler:(0,em.getFunctionName)(a),target:r},handled:!1,type:"auto.browser.browserapierrors.addEventListener"}}),i])}}),(0,ed.fill)(a,"removeEventListener",function(e){return function(t,r,n){try{let a=r.__sentry_wrapped__;a&&e.call(this,t,a,n)}catch{}return e.call(this,t,r,n)}})))})}}};function ro(e){return function(...t){let r=t[0];return t[0]=tN(r,{mechanism:{handled:!1,type:`auto.browser.browserapierrors.${(0,em.getFunctionName)(e)}`}}),e.apply(this,t)}}function rs(e){return function(t){return e.apply(this,[tN(t,{mechanism:{data:{handler:(0,em.getFunctionName)(e)},handled:!1,type:"auto.browser.browserapierrors.requestAnimationFrame"}})])}}function rl(e){return function(...t){let r=this;return["onload","onerror","onprogress","onreadystatechange"].forEach(e=>{e in r&&"function"==typeof r[e]&&(0,ed.fill)(r,e,function(t){let r={mechanism:{data:{handler:(0,em.getFunctionName)(t)},handled:!1,type:`auto.browser.browserapierrors.xhr.${e}`}},n=(0,ed.getOriginalFunction)(t);return n&&(r.mechanism.data.handler=(0,em.getFunctionName)(n)),tN(t,r)})}),e.apply(this,t)}}let ru=(e={})=>{let t=e.lifecycle??"route";return{name:"BrowserSession",setupOnce(){if(void 0===tA.document){rr&&z.debug.warn("Using the `browserSessionIntegration` in non-browser environments is not supported.");return}(0,K.startSession)({ignoreDuration:!0}),(0,K.captureSession)();let e=(0,X.getIsolationScope)(),r=e.getUser();e.addScopeListener(e=>{let t=e.getUser();(r?.id!==t?.id||r?.ip_address!==t?.ip_address)&&((0,K.captureSession)(),r=t)}),"route"===t&&re(({from:e,to:t})=>{e!==t&&((0,K.startSession)({ignoreDuration:!0}),(0,K.captureSession)())})}}},rc=()=>({name:"CultureContext",preprocessEvent(e){let t=function(){try{let e=tA.Intl;if(!e)return;let t=e.DateTimeFormat().resolvedOptions();return{locale:t.locale,timezone:t.timeZone,calendar:t.calendar}}catch{return}}();t&&(e.contexts={...e.contexts,culture:{...t,...e.contexts?.culture}})}}),rd=null;function rp(e){let t="error";tL(t,e),tD(t,rf)}function rf(){rd=Y.GLOBAL_OBJ.onerror,Y.GLOBAL_OBJ.onerror=function(e,t,r,n,a){return tU("error",{column:n,error:a,line:r,msg:e,url:t}),!!rd&&rd.apply(this,arguments)},Y.GLOBAL_OBJ.onerror.__SENTRY_INSTRUMENTED__=!0}let rh=null;function rm(e){let t="unhandledrejection";tL(t,e),tD(t,rg)}function rg(){rh=Y.GLOBAL_OBJ.onunhandledrejection,Y.GLOBAL_OBJ.onunhandledrejection=function(e){return tU("unhandledrejection",e),!rh||rh.apply(this,arguments)},Y.GLOBAL_OBJ.onunhandledrejection.__SENTRY_INSTRUMENTED__=!0}let r_=(e={})=>{let t={onerror:!0,onunhandledrejection:!0,...e};return{name:"GlobalHandlers",setupOnce(){Error.stackTraceLimit=50},setup(e){var r,n;t.onerror&&(r=e,rp(e=>{var t,n,a,i;let o,s,l,u,c,{stackParser:d,attachStacktrace:p}=rS();if((0,X.getClient)()!==r||tk>0)return;let{msg:f,url:h,line:m,column:g,error:_}=e,y=(t=tR(d,_||f,void 0,p,!1),n=h,a=m,i=g,0===(c=(u=(l=(s=(o=t.exception=t.exception||{}).values=o.values||[])[0]=s[0]||{}).stacktrace=l.stacktrace||{}).frames=u.frames||[]).length&&c.push({colno:i,lineno:a,filename:function(e){if((0,eA.isString)(e)&&0!==e.length)return e.startsWith("data:")?`<${t2(e,!1)}>`:e}(n)??(0,tC.getLocationHref)(),function:em.UNKNOWN_FUNCTION,in_app:!0}),t);y.level="error",(0,K.captureEvent)(y,{originalException:_,mechanism:{handled:!1,type:"auto.browser.global_handlers.onerror"}})}),rb("onerror")),t.onunhandledrejection&&(n=e,rm(e=>{let{stackParser:t,attachStacktrace:r}=rS();if((0,X.getClient)()!==n||tk>0)return;let a=ry(e),i=(0,eA.isPrimitive)(a)?rv(a):tR(t,a,void 0,r,!0);i.level="error",(0,K.captureEvent)(i,{originalException:a,mechanism:{handled:!1,type:"auto.browser.global_handlers.onunhandledrejection"}})}),rb("onunhandledrejection"))}}};function ry(e){if((0,eA.isPrimitive)(e))return e;try{if("reason"in e)return e.reason;if("detail"in e&&"reason"in e.detail)return e.detail.reason}catch{}return e}function rv(e){return{exception:{values:[{type:"UnhandledRejection",value:`Non-Error promise rejection captured with value: ${String(e)}`}]}}}function rb(e){rr&&z.debug.log(`Global Handler attached: ${e}`)}function rS(){let e=(0,X.getClient)();return e?.getOptions()||{stackParser:()=>[],attachStacktrace:!1}}let rE=()=>({name:"HttpContext",preprocessEvent(e){if(!tA.navigator&&!tA.location&&!tA.document)return;let t=tO(),r={...t.headers,...e.request?.headers};e.request={...t,...e.request,headers:r}}});function rT(e){return Array.isArray(e.errors)}function rw(e,t,r){e.mechanism={handled:!0,type:"auto.core.linked_errors",...rT(r)&&{is_exception_group:!0},...e.mechanism,exception_id:t}}function rR(e,t,r,n){e.mechanism={handled:!0,...e.mechanism,type:"chained",source:t,exception_id:r,parent_id:n}}let rI=(e={})=>{let t=e.limit||5,r=e.key||"cause";return{name:"LinkedErrors",preprocessEvent(e,n,a){!function(e,t,r,n,a,i){if(!a.exception?.values||!i||!(0,eA.isInstanceOf)(i.originalException,Error))return;let o=a.exception.values.length>0?a.exception.values[a.exception.values.length-1]:void 0;o&&(a.exception.values=function e(t,r,n,a,i,o,s,l){if(o.length>=n+1)return o;let u=[...o];if((0,eA.isInstanceOf)(a[i],Error)){rw(s,l,a);let o=t(r,a[i]),c=u.length;rR(o,i,c,l),u=e(t,r,n,a[i],i,[o,...u],o,c)}return rT(a)&&a.errors.forEach((o,c)=>{if((0,eA.isInstanceOf)(o,Error)){rw(s,l,a);let d=t(r,o),p=u.length;rR(d,`errors[${c}]`,p,l),u=e(t,r,n,o,i,[d,...u],d,p)}}),u}(e,t,n,i.originalException,r,a.exception.values,o,0))}(ty,a.getOptions().stackParser,r,t,e,n)}}};function rC(e,t,r,n){let a={filename:e,function:""===t?em.UNKNOWN_FUNCTION:t,in_app:!0};return void 0!==r&&(a.lineno=r),void 0!==n&&(a.colno=n),a}let rA=/^\s*at (\S+?)(?::(\d+))(?::(\d+))\s*$/i,rk=/^\s*at (?:(.+?\)(?: \[.+\])?|.*?) ?\((?:address at )?)?(?:async )?((?:|[-a-z]+:|.*bundle|\/)?.*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,rN=/\((\S*)(?::(\d+))(?::(\d+))\)/,rO=/at (.+?) ?\(data:(.+?),/,rx=[30,e=>{let t=e.match(rO);if(t)return{filename:``,function:t[1]};let r=rA.exec(e);if(r){let[,e,t,n]=r;return rC(e,em.UNKNOWN_FUNCTION,+t,+n)}let n=rk.exec(e);if(n){if(n[2]?.indexOf("eval")===0){let e=rN.exec(n[2]);e&&(n[2]=e[1],n[3]=e[2],n[4]=e[3])}let[e,t]=rq(n[1]||em.UNKNOWN_FUNCTION,n[2]);return rC(t,e,n[3]?+n[3]:void 0,n[4]?+n[4]:void 0)}}],rP=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:[-a-z]+)?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js)|\/[\w\-. /=]+)(?::(\d+))?(?::(\d+))?\s*$/i,rM=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i,rL=[50,e=>{let t=rP.exec(e);if(t){if(t[3]&&t[3].indexOf(" > eval")>-1){let e=rM.exec(t[3]);e&&(t[1]=t[1]||"eval",t[3]=e[1],t[4]=e[2],t[5]="")}let e=t[3],r=t[1]||em.UNKNOWN_FUNCTION;return[r,e]=rq(r,e),rC(e,r,t[4]?+t[4]:void 0,t[5]?+t[5]:void 0)}}],rD=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:[-a-z]+):.*?):(\d+)(?::(\d+))?\)?\s*$/i,rU=[40,e=>{let t=rD.exec(e);return t?rC(t[2],t[1]||em.UNKNOWN_FUNCTION,+t[3],t[4]?+t[4]:void 0):void 0}],rB=/ line (\d+).*script (?:in )?(\S+)(?:: in function (\S+))?$/i,rj=[10,e=>{let t=rB.exec(e);return t?rC(t[2],t[3]||em.UNKNOWN_FUNCTION,+t[1]):void 0}],r$=/ line (\d+), column (\d+)\s*(?:in (?:]+)>|([^)]+))\(.*\))? in (.*):\s*$/i,rF=[20,e=>{let t=r$.exec(e);return t?rC(t[5],t[3]||t[4]||em.UNKNOWN_FUNCTION,+t[1],+t[2]):void 0}],rH=[rx,rL],rW=(0,em.createStackParser)(...rH),rq=(e,t)=>{let r=-1!==e.indexOf("safari-extension"),n=-1!==e.indexOf("safari-web-extension");return r||n?[-1!==e.indexOf("@")?e.split("@")[0]:em.UNKNOWN_FUNCTION,r?`safari-extension:${t}`:`safari-web-extension:${t}`]:[e,t]},rG="u"{let t=(0,X.getCurrentScope)().getScopeData(),r=(0,X.getIsolationScope)().getScopeData(),n=t.conversationId||r.conversationId;n&&e.setAttribute(eh.GEN_AI_CONVERSATION_ID_ATTRIBUTE,n)})}},ri(),rn(),r_(),rI(),eg(),rE(),rc(),ru()]}function rX(e={}){let t,r=!e.skipBrowserExtensionCheck&&!!function(){if(void 0===tA.window||tA.nw)return!1;let e=tA.chrome||tA.browser;if(!e?.runtime?.id)return!1;let t=(0,tC.getLocationHref)();return!(tA===tA.top&&/^(?:chrome-extension|moz-extension|ms-browser-extension|safari-web-extension):\/\//.test(t))}()&&(rr&&(0,z.consoleSandbox)(()=>{console.error("[Sentry] You cannot use Sentry.init() in a browser extension, see: https://docs.sentry.io/platforms/javascript/best-practices/browser-extensions/")}),!0),n=null==e.defaultIntegrations?rK():e.defaultIntegrations,a={...e,enabled:!r&&e.enabled,stackParser:(0,em.stackParserFromStackParserOptions)(e.stackParser||rW),integrations:function(e){let t,r,n=e.defaultIntegrations||[],a=e.integrations;if(n.forEach(e=>{e.isDefaultInstance=!0}),Array.isArray(a))t=[...n,...a];else if("function"==typeof a){let e=a(n);t=Array.isArray(e)?e:[e]}else t=n;return r={},t.forEach(e=>{let{name:t}=e,n=r[t];n&&!n.isDefaultInstance&&e.isDefaultInstance||(r[t]=e)}),Object.values(r)}({integrations:e.integrations,defaultIntegrations:n}),transport:e.transport||rV};return!0===a.debug&&(Q.DEBUG_BUILD?z.debug.enable():(0,z.consoleSandbox)(()=>{console.warn("[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.")})),(0,X.getCurrentScope)().update(a.initialScope),eb(t=new tx(a)),t.init(),t}function rQ(){}function rZ(e){e()}var r0=e.i(907358);function r1(e){let t={...e};return V(t,"react"),(0,K.setContext)("react",{version:r0.version}),rX(t)}let r2="u"{!o&&0===i.size&&l&&(s="idleTimeout",y.end(e))},c)}function S(e){a=setTimeout(()=>{!o&&l&&(s="heartbeatFailed",y.end(e))},p)}function E(e){o=!0,i.clear(),u.forEach(e=>e()),(0,eN._setSpanForScope)(g,_);let t=(0,eL.spanToJSON)(y),{start_timestamp:r}=t;if(!r)return;t.data[eh.SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON]||y.setAttribute(eh.SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON,s);let n=t.status;n&&"unknown"!==n||y.setStatus({code:r7.SPAN_STATUS_OK}),z.debug.log(`[Tracing] Idle span "${t.op}" finished`);let a=(0,eL.getSpanDescendants)(y).filter(e=>e!==y),l=0;a.forEach(t=>{t.isRecording()&&(t.setStatus({code:r7.SPAN_STATUS_ERROR,message:"cancelled"}),t.end(e),Q.DEBUG_BUILD&&z.debug.log("[Tracing] Cancelling span since span ended early",JSON.stringify(t,void 0,2)));let{timestamp:r=0,start_timestamp:n=0}=(0,eL.spanToJSON)(t),a=n<=e,i=r-n<=(d+c)/1e3;if(Q.DEBUG_BUILD){let e=JSON.stringify(t,void 0,2);a?i||z.debug.log("[Tracing] Discarding span since it finished after idle span final timeout",e):z.debug.log("[Tracing] Discarding span since it happened after idle span was finished",e)}(!i||!a)&&((0,eL.removeChildSpanFromSpan)(y,t),l++)}),l>0&&y.setAttribute("sentry.idle_span_discarded_spans",l)}return y.end=new Proxy(y.end,{apply(e,t,r){if(f&&f(y),t instanceof r6.SentryNonRecordingSpan)return;let[n,...a]=r,i=n||(0,eO.timestampInSeconds)(),o=(0,eL.spanTimeInputToSeconds)(i),s=(0,eL.getSpanDescendants)(y).filter(e=>e!==y),l=(0,eL.spanToJSON)(y);if(!s.length||!h)return E(o),Reflect.apply(e,t,[o,...a]);let u=m.getOptions().ignoreSpans,c=s?.reduce((e,t)=>{let r=(0,eL.spanToJSON)(t);return!r.timestamp||u&&(0,e8.shouldIgnoreSpan)(r,u)?e:e?Math.max(e,r.timestamp):r.timestamp},void 0),p=l.start_timestamp,g=Math.min(p?p+d/1e3:1/0,Math.max(p||-1/0,Math.min(o,c||1/0)));return E(g),Reflect.apply(e,t,[g,...a])}}),u.push(m.on("spanStart",e=>{var t;!(o||e===y||(0,eL.spanToJSON)(e).timestamp||e instanceof r8.SentrySpan&&e.isStandaloneSpan())&&(0,eL.getSpanDescendants)(y).includes(e)&&(t=e.spanContext().spanId,v(),i.set(t,!0),S((0,eO.timestampInSeconds)()+p/1e3))})),u.push(m.on("spanEnd",e=>{if(!o){var t;t=e.spanContext().spanId,i.has(t)&&i.delete(t),0===i.size&&b((0,eO.timestampInSeconds)()+c/1e3)}})),u.push(m.on("idleSpanEnableAutoFinish",e=>{e===y&&(l=!0,b(),i.size&&S())})),t.disableAutoFinish||b(),setTimeout(()=>{o||(y.setStatus({code:r7.SPAN_STATUS_ERROR,message:"deadline_exceeded"}),s="finalTimeout",y.end())},d),y}let nr=!1;function nn(){nr||(e.tag="sentry_tracingErrorCallback",nr=!0,rp(e),rm(e));function e(){let e=(0,eL.getActiveSpan)(),t=e&&(0,eL.getRootSpan)(e);if(t){let e="internal_error";Q.DEBUG_BUILD&&z.debug.log(`[Tracing] Root span: ${e} -> Global error occurred`),t.setStatus({code:r7.SPAN_STATUS_ERROR,message:e})}}}var na=e.i(230757),ni=e.i(518510);function no(){let e;return"u">typeof window&&(!(!("u">typeof __SENTRY_BROWSER_BUNDLE__&&__SENTRY_BROWSER_BUNDLE__)&&"[object process]"===Object.prototype.toString.call(void 0!==G.default?G.default:0))||(e=Y.GLOBAL_OBJ.process,e?.type==="renderer"))}let ns=(e,t,r,n)=>{let a,i;return o=>{if(t.value>=0&&(o||n)&&((i=t.value-(a??0))||void 0===a)){var s;a=t.value,t.delta=i,s=t.value,t.rating=s>r[1]?"poor":s>r[0]?"needs-improvement":"good",e(t)}}},nl=(e=!0)=>{let t=t3.performance?.getEntriesByType?.("navigation")[0];if(!e||t&&t.responseStart>0&&t.responseStart{let e=nl();return e?.activationStart??0};function nc(e,t,r){t3.document&&t3.addEventListener(e,t,r)}function nd(e,t,r){t3.document&&t3.removeEventListener(e,t,r)}let np=-1,nf=new Set,nh=e=>{if(("pagehide"===e.type||t3.document?.visibilityState==="hidden")&&np>-1){if("visibilitychange"===e.type||"pagehide"===e.type)for(let e of nf)e();isFinite(np)||(np="visibilitychange"===e.type?e.timeStamp:0,nd("prerenderingchange",nh,!0))}},nm=()=>{if(t3.document&&np<0){let e=nu();np=(t3.document.prerendering?void 0:globalThis.performance.getEntriesByType("visibility-state").filter(t=>"hidden"===t.name&&t.startTime>e)[0]?.startTime)??(t3.document?.visibilityState!=="hidden"||t3.document?.prerendering?1/0:0),nc("visibilitychange",nh,!0),nc("pagehide",nh,!0),nc("prerenderingchange",nh,!0)}return{get firstHiddenTime(){return np},onHidden(e){nf.add(e)}}},ng=(e,t=-1)=>{let r=nl(),n="navigate";return r&&(t3.document?.prerendering||nu()>0?n="prerender":t3.document?.wasDiscarded?n="restore":r.type&&(n=r.type.replace(/_/g,"-"))),{name:e,value:t,rating:"good",delta:0,entries:[],id:`v5-${Date.now()}-${Math.floor(Math.random()*(9e12-1))+1e12}`,navigationType:n}},n_=new WeakMap;function ny(e,t){try{return n_.get(e)||n_.set(e,new t),n_.get(e)}catch(e){return new t}}class nv{constructor(){nv.prototype.__init.call(this),nv.prototype.__init2.call(this)}__init(){this._sessionValue=0}__init2(){this._sessionEntries=[]}_processEntry(e){if(e.hadRecentInput)return;let t=this._sessionEntries[0],r=this._sessionEntries[this._sessionEntries.length-1];this._sessionValue&&t&&r&&e.startTime-r.startTime<1e3&&e.startTime-t.startTime<5e3?(this._sessionValue+=e.value,this._sessionEntries.push(e)):(this._sessionValue=e.value,this._sessionEntries=[e]),this._onAfterProcessingUnexpectedShift?.(e)}}let nb=(e,t,r={})=>{try{if(PerformanceObserver.supportedEntryTypes.includes(e)){let n=new PerformanceObserver(e=>{Promise.resolve().then(()=>{t(e.getEntries())})});return n.observe({type:e,buffered:!0,...r}),n}}catch{}},nS=e=>{let t=!1;return()=>{t||(e(),t=!0)}},nE=e=>{t3.document?.prerendering?addEventListener("prerenderingchange",()=>e(),!0):e()},nT=[1800,3e3],nw=[.1,.25],nR=0,nI=1/0,nC=0,nA=e=>{e.forEach(e=>{e.interactionId&&(nI=Math.min(nI,e.interactionId),nR=(nC=Math.max(nC,e.interactionId))?(nC-nI)/7+1:0)})},nk=()=>s?nR:performance.interactionCount||0,nN=0;class nO{constructor(){nO.prototype.__init.call(this),nO.prototype.__init2.call(this)}__init(){this._longestInteractionList=[]}__init2(){this._longestInteractionMap=new Map}_resetInteractions(){nN=nk(),this._longestInteractionList.length=0,this._longestInteractionMap.clear()}_estimateP98LongestInteraction(){let e=Math.min(this._longestInteractionList.length-1,Math.floor((nk()-nN)/50));return this._longestInteractionList[e]}_processEntry(e){if(this._onBeforeProcessingEntry?.(e),!(e.interactionId||"first-input"===e.entryType))return;let t=this._longestInteractionList.at(-1),r=this._longestInteractionMap.get(e.interactionId);if(r||this._longestInteractionList.length<10||e.duration>t._latency){if(r?e.duration>r._latency?(r.entries=[e],r._latency=e.duration):e.duration===r._latency&&e.startTime===r.entries[0].startTime&&r.entries.push(e):(r={id:e.interactionId,entries:[e],_latency:e.duration},this._longestInteractionMap.set(r.id,r),this._longestInteractionList.push(r)),this._longestInteractionList.sort((e,t)=>t._latency-e._latency),this._longestInteractionList.length>10)for(let e of this._longestInteractionList.splice(10))this._longestInteractionMap.delete(e.id);this._onAfterProcessingINPCandidate?.(r)}}}let nx=e=>{let t=t3.requestIdleCallback||t3.setTimeout;t3.document?.visibilityState==="hidden"?e():(nc("visibilitychange",e=nS(e),{once:!0,capture:!0}),nc("pagehide",e,{once:!0,capture:!0}),t(()=>{e(),nd("visibilitychange",e,{capture:!0}),nd("pagehide",e,{capture:!0})}))},nP=[200,500];class nM{_processEntry(e){this._onBeforeProcessingEntry?.(e)}}let nL=[2500,4e3],nD=[800,1800],nU=e=>{t3.document?.prerendering?nE(()=>nU(e)):t3.document?.readyState!=="complete"?addEventListener("load",()=>nU(e),!0):setTimeout(e)},nB={},nj={};function n$(e,t=!1){return nV("cls",e,nG,l,t)}function nF(e,t=!1){return nV("lcp",e,nz,u,t)}function nH(e){return nV("inp",e,nJ,d)}function nW(e,t){var r;let n;return nK(e,t),nj[e]||(n={},"event"===(r=e)&&(n.durationThreshold=0),nb(r,e=>{nq(r,{entries:e})},n),nj[e]=!0),nX(e,t)}function nq(e,t){let r=nB[e];if(r?.length)for(let n of r)try{n(t)}catch(t){rG&&z.debug.error(`Error while triggering instrumentation handler. Type: ${e} Name: ${(0,em.getFunctionName)(n)} -Error:`,t)}}function nG(){return((e,t={})=>{((e,t={})=>{nE(()=>{let r,n=nm(),a=ng("FCP"),i=nb("paint",e=>{for(let t of e)"first-contentful-paint"===t.name&&(i.disconnect(),t.startTime{let r,n=ng("CLS",0),a=nm(),i=ny(t,nv),o=e=>{for(let t of e)i._processEntry(t);i._sessionValue>n.value&&(n.value=i._sessionValue,n.entries=i._sessionEntries,r())},s=nb("layout-shift",o);s&&(r=ns(e,n,nw,t.reportAllChanges),a.onHidden(()=>{o(s.takeRecords()),r(!0)}),t3?.setTimeout?.(r))}))})(e=>{nq("cls",{metric:e}),l=e},{reportAllChanges:!0})}function nz(){return((e,t={})=>{nE(()=>{let r,n=nm(),a=ng("LCP"),i=ny(t,nM),o=e=>{for(let o of(t.reportAllChanges||(e=e.slice(-1)),e))i._processEntry(o),o.startTime{o(s.takeRecords()),s.disconnect(),r(!0)}),i=e=>{e.isTrusted&&(nx(n),nd(e.type,i,{capture:!0}))};for(let e of["keydown","click","visibilitychange"])nc(e,i,{capture:!0})}})})(e=>{nq("lcp",{metric:e}),u=e},{reportAllChanges:!0})}function nY(){return((e,t={})=>{let r=ng("TTFB"),n=ns(e,r,nD,t.reportAllChanges);nU(()=>{let e=nl();e&&(r.value=Math.max(e.responseStart-nu(),0),r.entries=[e],n(!0))})})(e=>{nq("ttfb",{metric:e}),c=e})}function nJ(){return((e,t={})=>{if(!(globalThis.PerformanceEventTiming&&"interactionId"in PerformanceEventTiming.prototype))return;let r=nm();nE(()=>{let n;"interactionCount"in performance||s||(s=nb("event",nA,{type:"event",buffered:!0,durationThreshold:0}));let a=ng("INP"),i=ny(t,nO),o=e=>{nx(()=>{for(let t of e)i._processEntry(t);let t=i._estimateP98LongestInteraction();t&&t._latency!==a.value&&(a.value=t._latency,a.entries=t.entries,n())})},l=nb("event",o,{durationThreshold:t.durationThreshold??40});n=ns(e,a,nP,t.reportAllChanges),l&&(l.observe({type:"first-input",buffered:!0}),r.onHidden(()=>{o(l.takeRecords()),n(!0)}))})})(e=>{nq("inp",{metric:e}),d=e})}function nV(e,t,r,n,a=!1){let i;return nK(e,t),nj[e]||(i=r(),nj[e]=!0),n&&t({metric:n}),nX(e,t,a?i:void 0)}function nK(e,t){nB[e]=nB[e]||[],nB[e].push(t)}function nX(e,t,r){return()=>{r&&r();let n=nB[e];if(!n)return;let a=n.indexOf(t);-1!==a&&n.splice(a,1)}}function nQ(e){return"number"==typeof e&&isFinite(e)}function nZ(e,t,r,{...n}){let a=(0,eL.spanToJSON)(e).start_timestamp;return a&&a>t&&"function"==typeof e.updateStartTime&&e.updateStartTime(t),(0,r9.withActiveSpan)(e,()=>{let e=(0,r9.startInactiveSpan)({startTime:t,...n});return e&&e.end(r),e})}function n0(e){let t,r=(0,X.getClient)();if(!r)return;let{name:n,transaction:a,attributes:i,startTime:o}=e,{release:s,environment:l,sendDefaultPii:u}=r.getOptions(),c=r.getIntegrationByName("Replay"),d=c?.getReplayId(),p=(0,X.getCurrentScope)(),f=p.getUser(),h=void 0!==f?f.email||f.id||f.ip_address:void 0;try{t=p.getScopeData().contexts.profile.profile_id}catch{}let m={release:s,environment:l,user:h||void 0,profile_id:t||void 0,replay_id:d||void 0,transaction:a,"user_agent.original":t3.navigator?.userAgent,"client.address":u?"{{auto}}":void 0,...i};return(0,r9.startInactiveSpan)({name:n,attributes:m,startTime:o,experimental:{standalone:!0}})}function n1(){return t3.addEventListener&&t3.performance}function n2(e){return e/1e3}function n3(e){try{return PerformanceObserver.supportedEntryTypes.includes(e)}catch{return!1}}function n5(e,t){let r,n,a=!1;function i(e){!a&&n&&t(e,n),a=!0}nc("visibilitychange",r=e=>{("pagehide"===e.type||t3.document?.visibilityState==="hidden")&&(()=>{i("pagehide")})(e)},{capture:!0,once:!0}),nc("pagehide",r,{capture:!0,once:!0});let o=e.on("beforeStartNavigationSpan",(e,t)=>{t?.isRedirect||(i("navigation"),o(),s())}),s=e.on("afterStartPageLoadSpan",e=>{n=e.spanContext().spanId,s()})}let n4=[],n6=new Map,n8=new Map,n7={click:"click",pointerdown:"click",pointerup:"click",mousedown:"click",mouseup:"click",touchstart:"click",touchend:"click",mouseover:"hover",mouseout:"hover",mouseenter:"hover",mouseleave:"hover",pointerover:"hover",pointerout:"hover",pointerenter:"hover",pointerleave:"hover",dragstart:"drag",dragend:"drag",drag:"drag",dragenter:"drag",dragleave:"drag",dragover:"drag",drop:"drag",keydown:"press",keyup:"press",keypress:"press",input:"press"},n9=({metric:e})=>{if(void 0==e.value)return;let t=n2(e.value);if(t>60)return;let r=e.entries.find(t=>t.duration===e.value&&n7[t.name]);if(!r)return;let{interactionId:n}=r,a=n7[r.name],i=n2((0,eO.browserPerformanceTimeOrigin)()+r.startTime),o=(0,eL.getActiveSpan)(),s=o?(0,eL.getRootSpan)(o):void 0,l=null!=n?n6.get(n):void 0,u=l?.span||s,c=u?(0,eL.spanToJSON)(u).description:(0,X.getCurrentScope)().getScopeData().transactionName,d=n0({name:l?.elementName||(0,tC.htmlTreeAsString)(r.target),transaction:c,attributes:{[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.http.browser.inp",[eh.SEMANTIC_ATTRIBUTE_SENTRY_OP]:`ui.interaction.${a}`,[eh.SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME]:r.duration},startTime:i});d&&(d.addEvent("inp",{[eh.SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT]:"millisecond",[eh.SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE]:e.value}),d.end(i+t))};var ae=e.i(967703);function at(e){return e?(((0,eO.browserPerformanceTimeOrigin)()||performance.timeOrigin)+e)/1e3:e}function ar(e){let t={};if(void 0!=e.nextHopProtocol){let{name:r,version:n}=function(e){let t="unknown",r="unknown",n="";for(let a of e){if("/"===a){[t,r]=e.split("/");break}if(!isNaN(Number(a))){t="h"===n?"http":n,r=e.split(n)[1];break}n+=a}return n===e&&(t=n),{name:t,version:r}}(e.nextHopProtocol);t["network.protocol.version"]=n,t["network.protocol.name"]=r}return(0,eO.browserPerformanceTimeOrigin)()||n1()?.timeOrigin?Object.fromEntries(Object.entries({...t,"http.request.redirect_start":at(e.redirectStart),"http.request.redirect_end":at(e.redirectEnd),"http.request.worker_start":at(e.workerStart),"http.request.fetch_start":at(e.fetchStart),"http.request.domain_lookup_start":at(e.domainLookupStart),"http.request.domain_lookup_end":at(e.domainLookupEnd),"http.request.connect_start":at(e.connectStart),"http.request.secure_connection_start":at(e.secureConnectionStart),"http.request.connection_end":at(e.connectEnd),"http.request.request_start":at(e.requestStart),"http.request.response_start":at(e.responseStart),"http.request.response_end":at(e.responseEnd),"http.request.time_to_first_byte":null!=e.responseStart?e.responseStart/1e3:void 0}).filter(([,e])=>null!=e)):t}let an=0,aa={};function ai(e,t,r,n,a=r){var i;let o=t["secureConnection"===(i=r)?"connectEnd":"fetch"===i?"domainLookupStart":`${i}End`],s=t[`${r}Start`];s&&o&&nZ(e,n+n2(s),n+n2(o),{op:`browser.${a}`,name:t.name,attributes:{[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.ui.browser.metrics",..."redirect"===r&&null!=t.redirectCount?{"http.redirect_count":t.redirectCount}:{}}})}let ao="sentry_previous_trace";function as(e){return 1===e.traceFlags}var al=e.i(439611),au=e.i(679162);function ac(e={}){let t=e.client||(0,X.getClient)();if(!(0,K.isEnabled)()||!t)return{};let r=(0,eC.getMainCarrier)(),n=(0,au.getAsyncContextStrategy)(r);if(n.getTraceData)return n.getTraceData(e);let a=e.scope||(0,X.getCurrentScope)(),i=e.span||(0,eL.getActiveSpan)();if(!i&&(0,X.hasExternalPropagationContext)())return{};let o=i?(0,eL.spanToTraceHeader)(i):function(e){let{traceId:t,sampled:r,propagationSpanId:n}=e.getPropagationContext();return(0,ni.generateSentryTraceHeader)(t,n,r)}(a),s=i?(0,eM.getDynamicSamplingContextFromSpan)(i):(0,eM.getDynamicSamplingContextFromScope)(t,a),l=(0,al.dynamicSamplingContextToSentryBaggageHeader)(s);if(!ni.TRACEPARENT_REGEXP.test(o))return z.debug.warn("Invalid sentry-trace data. Cannot generate trace data"),{};let u={"sentry-trace":o,baggage:l};return e.propagateTraceparent&&(u.traceparent=i?(0,eL.spanToTraceparentHeader)(i):function(e){let{traceId:t,sampled:r,propagationSpanId:n}=e.getPropagationContext();return(0,ni.generateTraceparentHeader)(t,n,r)}(a)),u}function ad(e){return e.split(",").some(e=>e.trim().startsWith(al.SENTRY_BAGGAGE_KEY_PREFIX))}function ap(e,t,r,n){let a={url:t2(e),type:"fetch","http.method":r,[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:n,[eh.SEMANTIC_ATTRIBUTE_SENTRY_OP]:"http.client"};return t&&(tQ(t)||(a["http.url"]=t2(t.href),a["server.address"]=t.host),t.search&&(a["http.query"]=t.search),t.hash&&(a["http.fragment"]=t.hash)),a}let af=Symbol.for("sentry__originalRequestBody");function ah(e){return new URLSearchParams(e).toString()}function am(e,t=z.debug){try{if("string"==typeof e)return[e];if(e instanceof URLSearchParams)return[e.toString()];if(e instanceof FormData)return[ah(e)];if(!e)return[void 0]}catch(r){return rG&&t.error(r,"Failed to serialize body",e),[void 0,"BODY_PARSE_ERROR"]}return rG&&t.log("Skipping network body because of body type",e),[void 0,"UNPARSEABLE_BODY_TYPE"]}function ag(e=[]){if(e.length>=2&&e[1]&&"object"==typeof e[1]&&"body"in e[1])return e[1].body;if(e.length>=1&&e[0]instanceof Request){let t=e[0][af];if(void 0!==t)return t}}function a_(e){let t;try{t=e.getAllResponseHeaders()}catch(t){return rG&&z.debug.error(t,"Failed to get xhr response headers",e),{}}return t?t.split("\r\n").reduce((e,t)=>{let[r,n]=t.split(": ");return n&&(e[r.toLowerCase()]=n),e},{}):{}}function ay(e){try{return new URL(e,tA.location.origin).href}catch{return}}function av(e){try{return new Headers(e)}catch{return}}let ab=new WeakMap,aS=new Map,aE={traceFetch:!0,traceXHR:!0,enableHTTPTimings:!0,trackFetchStreamPerformance:!1};function aT(e,t){let{traceFetch:r,traceXHR:n,trackFetchStreamPerformance:a,shouldCreateSpanForRequest:i,enableHTTPTimings:o,tracePropagationTargets:s,onRequestSpanStart:l,onRequestSpanEnd:u}={...aE,...t},c="function"==typeof i?i:e=>!0,d=e=>(function(e,t){let r=(0,tC.getLocationHref)();if(r){let n,a;try{n=new URL(e,r),a=new URL(r).origin}catch{return!1}let i=n.origin===a;return t?(0,ei.stringMatchesSomePattern)(n.toString(),t)||i&&(0,ei.stringMatchesSomePattern)(n.pathname,t):i}{let r=!!e.match(/^\/(?!\/)/);return t?(0,ei.stringMatchesSomePattern)(e,t):r}})(e,s),p={},f=e.getOptions().propagateTraceparent;if(r){let t;e.addEventProcessor(e=>("transaction"===e.type&&e.spans&&e.spans.forEach(e=>{if("http.client"===e.op){let t=aS.get(e.span_id);t&&(e.timestamp=t/1e3,aS.delete(e.span_id))}}),e)),a&&(tL(t="fetch-body-resolved",e=>{if(e.response){let t=ab.get(e.response);t&&e.endTimestamp&&aS.set(t,e.endTimestamp)}}),tD(t,()=>tq(tz))),tW(e=>{let t=function(e,t,r,n,a){if(!e.fetchData)return;let{method:i,url:o}=e.fetchData,s=(0,r4.hasSpansEnabled)()&&t(o);if(e.endTimestamp){var l,u,c;let t,r=e.fetchData.__span;if(!r)return;let i=n[r];i&&(s&&(function(e,t){if(t.response){(0,r7.setHttpStatus)(e,t.response.status);let r=t.response?.headers?.get("content-length");if(r){let t=parseInt(r);t>0&&e.setAttribute("http.response_content_length",t)}}else t.error&&e.setStatus({code:r7.SPAN_STATUS_ERROR,message:"internal_error"});e.end()}(i,e),l=i,u=e,t="object"==typeof(c=a)&&null!==c?c.onRequestSpanEnd:void 0,t?.(l,{headers:u.response?.headers,error:u.error})),delete n[r]);return}let{spanOrigin:d="auto.http.browser",propagateTraceparent:p=!1}="object"==typeof a?a:{spanOrigin:a},f=!!(0,eL.getActiveSpan)(),h=s&&f?(0,r9.startInactiveSpan)(function(e,t,r){if(e.startsWith("data:")){let n=t2(e);return{name:`${t} ${n}`,attributes:ap(e,void 0,t,r)}}let n=tZ(e),a=n?function(e){if(tQ(e))return e.pathname;let t=new URL(e);return t.search="",t.hash="",["80","443"].includes(t.port)&&(t.port=""),t.password&&(t.password="%filtered%"),t.username&&(t.username="%filtered%"),t.toString()}(n):e;return{name:`${t} ${a}`,attributes:ap(e,n,t,r)}}(o,i,d)):new r6.SentryNonRecordingSpan;if(e.fetchData.__span=h.spanContext().spanId,n[h.spanContext().spanId]=h,r(e.fetchData.url)){let t=e.args[0],r={...e.args[1]||{}},n=function(e,t,r,n){var a;let i=ac({span:r,propagateTraceparent:n}),o=i["sentry-trace"],s=i.baggage,l=i.traceparent;if(!o)return;let u=t.headers||((0,eA.isRequest)(e)?e.headers:void 0);if(!u)return{...i};if(a=u,"u">typeof Headers&&(0,eA.isInstanceOf)(a,Headers)){let e=new Headers(u);if(e.get("sentry-trace")||e.set("sentry-trace",o),n&&l&&!e.get("traceparent")&&e.set("traceparent",l),s){let t=e.get("baggage");t?ad(t)||e.set("baggage",`${t},${s}`):e.set("baggage",s)}return e}if(Array.isArray(u)){let e=[...u];u.find(e=>"sentry-trace"===e[0])||e.push(["sentry-trace",o]),n&&l&&!u.find(e=>"traceparent"===e[0])&&e.push(["traceparent",l]);let t=u.find(e=>"baggage"===e[0]&&ad(e[1]));return s&&!t&&e.push(["baggage",s]),e}{let e="sentry-trace"in u?u["sentry-trace"]:void 0,t="traceparent"in u?u.traceparent:void 0,r="baggage"in u?u.baggage:void 0,a=r?Array.isArray(r)?[...r]:[r]:[],i=r&&(Array.isArray(r)?r.find(e=>ad(e)):ad(r));s&&!i&&a.push(s);let c={...u,"sentry-trace":e??o,baggage:a.length>0?a.join(","):void 0};return n&&l&&!t&&(c.traceparent=l),c}}(t,r,(0,r4.hasSpansEnabled)()&&f?h:void 0,p);n&&(e.args[1]=r,r.headers=n)}let m=(0,X.getClient)();if(m){let t={input:e.args,response:e.response,startTimestamp:e.startTimestamp,endTimestamp:e.endTimestamp};m.emit("beforeOutgoingRequestSpan",h,t)}return h}(e,c,d,p,{propagateTraceparent:f,onRequestSpanEnd:u});if(e.response&&e.fetchData.__span&&ab.set(e.response,e.fetchData.__span),t){let r=ay(e.fetchData.url),n=r?t0(r).host:void 0;t.setAttributes({"http.url":r?t2(r):void 0,"server.address":n}),o&&aw(t),l?.(t,{headers:e.headers})}})}n&&t7(e=>{let t=function(e,t,r,n,a,i){let o=e.xhr,s=o?.[t8];if(!o||o.__sentry_own_request__||!s)return;let{url:l,method:u}=s,c=(0,r4.hasSpansEnabled)()&&t(l);if(e.endTimestamp){let t=o.__sentry_xhr_span_id__;if(!t)return;let r=n[t];r&&(c&&void 0!==s.status_code&&((0,r7.setHttpStatus)(r,s.status_code),r.end(),i?.(r,{headers:av(a_(o)),error:e.error})),delete n[t]);return}let d=ay(l),p=d?t0(d):t0(l),f=t2(t1(l)),h=!!(0,eL.getActiveSpan)(),m=c&&h?(0,r9.startInactiveSpan)({name:`${u} ${f}`,attributes:{url:t2(l),type:"xhr","http.method":u,"http.url":d?t2(d):void 0,"server.address":p?.host,[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.http.browser",[eh.SEMANTIC_ATTRIBUTE_SENTRY_OP]:"http.client",...p?.search&&{"http.query":p?.search},...p?.hash&&{"http.fragment":p?.hash}}}):new r6.SentryNonRecordingSpan;o.__sentry_xhr_span_id__=m.spanContext().spanId,n[o.__sentry_xhr_span_id__]=m,r(l)&&function(e,t,r){let{"sentry-trace":n,baggage:a,traceparent:i}=ac({span:t,propagateTraceparent:r});n&&function(e,t,r,n){let a=e.__sentry_xhr_v3__?.request_headers;if(!a?.["sentry-trace"]&&e.setRequestHeader)try{if(e.setRequestHeader("sentry-trace",t),n&&!a?.traceparent&&e.setRequestHeader("traceparent",n),r){let t=a?.baggage;t&&t.split(",").some(e=>e.trim().startsWith("sentry-"))||e.setRequestHeader("baggage",r)}}catch{}}(e,n,a,i)}(o,(0,r4.hasSpansEnabled)()&&h?m:void 0,a);let g=(0,X.getClient)();return g&&g.emit("beforeOutgoingRequestSpan",m,e),m}(e,c,d,p,f,u);t&&(o&&aw(t),l?.(t,{headers:av(e.xhr.__sentry_xhr_v3__?.request_headers)}))})}function aw(e){let{url:t}=(0,eL.spanToJSON)(e).data;if(!t||"string"!=typeof t)return;let r=nW("resource",({entries:n})=>{n.forEach(n=>{"resource"===n.entryType&&"initiatorType"in n&&"string"==typeof n.nextHopProtocol&&("fetch"===n.initiatorType||"xmlhttprequest"===n.initiatorType)&&n.name.endsWith(t)&&(e.setAttributes(ar(n)),setTimeout(r))})})}let aR=/Googlebot|Google-InspectionTool|Storebot-Google|Bingbot|Slurp|DuckDuckBot|Baiduspider|YandexBot|Facebot|facebookexternalhit|LinkedInBot|Twitterbot|Applebot/i,aI={...ne,instrumentNavigation:!0,instrumentPageLoad:!0,markBackgroundSpan:!0,enableLongTask:!0,enableLongAnimationFrame:!0,enableInp:!0,ignoreResourceSpans:[],ignorePerformanceApiSpans:[],detectRedirects:!0,linkPreviousTrace:"in-memory",consistentTraceSampling:!1,enableReportPageLoaded:!1,_experiments:{},...aE},aC=(e={})=>{let t,r,n,a;"enableElementTiming"in e&&(0,z.consoleSandbox)(()=>{console.warn("[Sentry] `enableElementTiming` is deprecated and no longer has any effect. Use the standalone `elementTimingIntegration` instead.")});let i={name:void 0,source:void 0},o=tA.document,{enableInp:s,enableLongTask:l,enableLongAnimationFrame:u,_experiments:{enableInteractions:d,enableStandaloneClsSpans:h,enableStandaloneLcpSpans:m},beforeStartSpan:g,idleTimeout:_,finalTimeout:y,childSpanTimeout:v,markBackgroundSpan:b,traceFetch:S,traceXHR:E,trackFetchStreamPerformance:T,shouldCreateSpanForRequest:w,enableHTTPTimings:R,ignoreResourceSpans:I,ignorePerformanceApiSpans:C,instrumentPageLoad:A,instrumentNavigation:k,detectRedirects:N,linkPreviousTrace:O,consistentTraceSampling:x,enableReportPageLoaded:P,onRequestSpanStart:M,onRequestSpanEnd:L}={...aI,...e},D=(a=tA.navigator,!!a?.userAgent&&aR.test(a.userAgent));function U(e,r,a=!0){let s="pageload"===r.op,l=r.name,u=g?g(r):r,c=u.attributes||{};if(l!==u.name&&(c[eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]="custom",u.attributes=c),!a){let e=(0,eO.dateTimestampInSeconds)();(0,r9.startInactiveSpan)({...u,startTime:e}).end(e);return}i.name=u.name,i.source=c[eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];let d=nt(u,{idleTimeout:_,finalTimeout:y,childSpanTimeout:v,disableAutoFinish:s,beforeSpanEnd:r=>{t?.(),function(e,t){var r,n;let a=n1(),i=(0,eO.browserPerformanceTimeOrigin)();if(!a?.getEntries||!i)return;let o=n2(i),s=a.getEntries(),{op:l,start_timestamp:u}=(0,eL.spanToJSON)(e);s.slice(an).forEach(r=>{let n=n2(r.startTime),a=n2(Math.max(0,r.duration));if("navigation"!==l||!u||!(o+n{ai(i,s,e,c)}),ai(i,s,"secureConnection",c,"TLS/SSL"),ai(i,s,"fetch",c,"cache"),ai(i,s,"domainLookup",c,"DNS"),d=i,p=s,h=(f=c)+n2(p.requestStart),m=f+n2(p.responseEnd),g=f+n2(p.responseStart),p.responseEnd&&(nZ(d,h,m,{op:"browser.request",name:p.name,attributes:{[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.ui.browser.metrics"}}),nZ(d,g,m,{op:"browser.response",name:p.name,attributes:{[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.ui.browser.metrics"}}));break;case"mark":case"paint":case"measure":{!function(e,t,r,n,a,i){if(function(e){if(e?.entryType==="measure")try{return"Components ⚛"===e.detail.devtools.track}catch{return}}(t)||["mark","measure"].includes(t.entryType)&&(0,ei.stringMatchesSomePattern)(t.name,i))return;let o=nl(!1),s=a+Math.max(r,n2(o?o.requestStart:0)),l=a+r,u=l+n,c={[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.resource.browser.metrics"};s!==l&&(c["sentry.browser.measure_happened_before_request"]=!0,c["sentry.browser.measure_start_time"]=s),function(e,t){try{let r=t.detail;if(!r)return;if("object"==typeof r){for(let[t,n]of Object.entries(r))if(n&&(0,eA.isPrimitive)(n))e[`sentry.browser.measure.detail.${t}`]=n;else if(void 0!==n)try{e[`sentry.browser.measure.detail.${t}`]=JSON.stringify(n)}catch{}return}if((0,eA.isPrimitive)(r)){e["sentry.browser.measure.detail"]=r;return}try{e["sentry.browser.measure.detail"]=JSON.stringify(r)}catch{}}catch{}}(c,t),s<=u&&nZ(e,s,u,{name:t.name,op:t.entryType,attributes:c})}(e,r,n,a,o,t.ignorePerformanceApiSpans);let i=nm(),s=r.startTime{let r=s[e];null!=r&&("number"==typeof r&&r<0x7fffffff||"string"==typeof r)&&(l[t]=r)});let p={...c,...ar(t)},f=i+n;nZ(e,f,f+a,{name:r.replace(t3.location.origin,""),op:u,attributes:p})}(e,r,r.name,n,a,o,t.ignoreResourceSpans)}}),an=Math.max(s.length-1,0),function(e){let t=t3.navigator;if(!t)return;let r=t.connection;r&&(r.effectiveType&&e.setAttribute("effectiveConnectionType",r.effectiveType),r.type&&e.setAttribute("connectionType",r.type),nQ(r.rtt)&&(aa["connection.rtt"]={value:r.rtt,unit:"millisecond"})),nQ(t.deviceMemory)&&e.setAttribute("deviceMemory",`${t.deviceMemory} GB`),nQ(t.hardwareConcurrency)&&e.setAttribute("hardwareConcurrency",String(t.hardwareConcurrency))}(e),"pageload"===l&&(function(e){let t=nl(!1);if(!t)return;let{responseStart:r,requestStart:n}=t;n<=r&&(e["ttfb.requestTime"]={value:r-n,unit:"millisecond"})}(aa),t.recordClsOnPageloadSpan||delete aa.cls,t.recordLcpOnPageloadSpan||delete aa.lcp,Object.entries(aa).forEach(([e,t])=>{(0,ae.setMeasurement)(e,t.value,t.unit)}),e.setAttribute("performance.timeOrigin",o),e.setAttribute("performance.activationStart",nu()),r=e,n=t,p&&n.recordLcpOnPageloadSpan&&(p.element&&r.setAttribute("lcp.element",(0,tC.htmlTreeAsString)(p.element)),p.id&&r.setAttribute("lcp.id",p.id),p.url&&r.setAttribute("lcp.url",p.url.trim().slice(0,200)),null!=p.loadTime&&r.setAttribute("lcp.loadTime",p.loadTime),null!=p.renderTime&&r.setAttribute("lcp.renderTime",p.renderTime),r.setAttribute("lcp.size",p.size)),f?.sources&&n.recordClsOnPageloadSpan&&f.sources.forEach((e,t)=>r.setAttribute(`cls.source.${t+1}`,(0,tC.htmlTreeAsString)(e.node)))),p=void 0,f=void 0,aa={}}(r,{recordClsOnPageloadSpan:!h,recordLcpOnPageloadSpan:!m,ignoreResourceSpans:I,ignorePerformanceApiSpans:C}),aP(e,void 0);let a=(0,X.getCurrentScope)(),i=a.getPropagationContext();a.setPropagationContext({...i,traceId:d.spanContext().traceId,sampled:(0,eL.spanIsSampled)(d),dsc:(0,eM.getDynamicSamplingContextFromSpan)(r)}),s&&(n=void 0)},trimIdleSpanEndTimestamp:!P});function b(){o&&["interactive","complete"].includes(o.readyState)&&e.emit("idleSpanEnableAutoFinish",d)}s&&P&&(n=d),aP(e,d),s&&!P&&o&&(o.addEventListener("readystatechange",()=>{b()}),b())}return{name:"BrowserTracing",setup(e){if(D){rr&&z.debug.log("[Tracing] Skipping browserTracingIntegration setup for bot user agent.");return}if(nn(),t=function({recordClsStandaloneSpans:e,recordLcpStandaloneSpans:t,client:r}){let n=n1();if(n&&(0,eO.browserPerformanceTimeOrigin)()){n.mark&&t3.performance.mark("sentry-tracing-init");let a=t?function(e){let t,r=0;if(!n3("largest-contentful-paint"))return;let n=nF(({metric:e})=>{let n=e.entries[e.entries.length-1];n&&(r=e.value,t=n)},!0);n5(e,(e,a)=>{var i,o,s,l;let u,c,d,p,f;i=r,o=t,s=a,l=e,rG&&z.debug.log(`Sending LCP span (${i})`),u=n2(((0,eO.browserPerformanceTimeOrigin)()||0)+(o?.startTime||0)),c=(0,X.getCurrentScope)().getScopeData().transactionName,d=o?(0,tC.htmlTreeAsString)(o.element):"Largest contentful paint",p={[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.http.browser.lcp",[eh.SEMANTIC_ATTRIBUTE_SENTRY_OP]:"ui.webvital.lcp",[eh.SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME]:0,"sentry.pageload.span_id":s,"sentry.report_event":l},o&&(o.element&&(p["lcp.element"]=(0,tC.htmlTreeAsString)(o.element)),o.id&&(p["lcp.id"]=o.id),o.url&&(p["lcp.url"]=o.url),null!=o.loadTime&&(p["lcp.loadTime"]=o.loadTime),null!=o.renderTime&&(p["lcp.renderTime"]=o.renderTime),null!=o.size&&(p["lcp.size"]=o.size)),(f=n0({name:d,transaction:c,attributes:p,startTime:u}))&&(f.addEvent("lcp",{[eh.SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT]:"millisecond",[eh.SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE]:i}),f.end(u)),n()})}(r):nF(({metric:e})=>{let t=e.entries[e.entries.length-1];t&&(aa.lcp={value:e.value,unit:"millisecond"},p=t)},!0),i=nV("ttfb",({metric:e})=>{e.entries[e.entries.length-1]&&(aa.ttfb={value:e.value,unit:"millisecond"})},nY,c),o=e?function(e){let t,r=0;if(!n3("layout-shift"))return;let n=n$(({metric:e})=>{let n=e.entries[e.entries.length-1];n&&(r=e.value,t=n)},!0);n5(e,(e,a)=>{var i,o,s,l;let u,c,d,p,f;i=r,o=t,s=a,l=e,rG&&z.debug.log(`Sending CLS span (${i})`),u=o?n2(((0,eO.browserPerformanceTimeOrigin)()||0)+o.startTime):(0,eO.timestampInSeconds)(),c=(0,X.getCurrentScope)().getScopeData().transactionName,d=o?(0,tC.htmlTreeAsString)(o.sources[0]?.node):"Layout shift",p={[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.http.browser.cls",[eh.SEMANTIC_ATTRIBUTE_SENTRY_OP]:"ui.webvital.cls",[eh.SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME]:0,"sentry.pageload.span_id":s,"sentry.report_event":l},o?.sources&&o.sources.forEach((e,t)=>{p[`cls.source.${t+1}`]=(0,tC.htmlTreeAsString)(e.node)}),(f=n0({name:d,transaction:c,attributes:p,startTime:u}))&&(f.addEvent("cls",{[eh.SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT]:"",[eh.SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE]:i}),f.end(u)),n()})}(r):n$(({metric:e})=>{let t=e.entries[e.entries.length-1];t&&(aa.cls={value:e.value,unit:""},f=t)},!0);return()=>{a?.(),i(),o?.()}}return()=>void 0}({recordClsStandaloneSpans:h||!1,recordLcpStandaloneSpans:m||!1,client:e}),s&&function(){if(n1()&&(0,eO.browserPerformanceTimeOrigin)()){let e=nH(n9);()=>{e()}}}(),u&&Y.GLOBAL_OBJ.PerformanceObserver&&PerformanceObserver.supportedEntryTypes?.includes("long-animation-frame")?new PerformanceObserver(e=>{let t=(0,eL.getActiveSpan)();if(t)for(let r of e.getEntries()){if(!r.scripts[0])continue;let e=n2((0,eO.browserPerformanceTimeOrigin)()+r.startTime),{start_timestamp:n,op:a}=(0,eL.spanToJSON)(t);if("navigation"===a&&n&&e{let t=(0,eL.getActiveSpan)();if(!t)return;let{op:r,start_timestamp:n}=(0,eL.spanToJSON)(t);for(let a of e){let e=n2((0,eO.browserPerformanceTimeOrigin)()+a.startTime),i=n2(a.duration);"navigation"===r&&n&&e{let t=(0,eL.getActiveSpan)();if(t){for(let r of e)if("click"===r.name){let e=n2((0,eO.browserPerformanceTimeOrigin)()+r.startTime),n=n2(r.duration),a={name:(0,tC.htmlTreeAsString)(r.target),op:`ui.interaction.${r.name}`,startTime:e,attributes:{[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.ui.browser.metrics"}},i=(0,tC.getComponentName)(r.target);i&&(a.attributes["ui.component_name"]=i),nZ(t,e,e+n,a)}}}),N&&o){let e=()=>{r=(0,eO.timestampInSeconds)()};addEventListener("click",e,{capture:!0}),addEventListener("keydown",e,{capture:!0,passive:!0})}function a(){let t=e[ax];t&&!(0,eL.spanToJSON)(t).timestamp&&(rr&&z.debug.log(`[Tracing] Finishing current active span with op: ${(0,eL.spanToJSON)(t).op}`),t.setAttribute(eh.SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON,"cancelled"),t.end())}e.on("startNavigationSpan",(t,n)=>{if((0,X.getClient)()!==e)return;if(n?.isRedirect){rr&&z.debug.warn("[Tracing] Detected redirect, navigation span will not be the root span, but a child span."),U(e,{op:"navigation.redirect",...t},!1);return}r=void 0,a(),(0,X.getIsolationScope)().setPropagationContext({traceId:(0,na.generateTraceId)(),sampleRand:Math.random(),propagationSpanId:(0,r4.hasSpansEnabled)()?void 0:(0,na.generateSpanId)()});let i=(0,X.getCurrentScope)();i.setPropagationContext({traceId:(0,na.generateTraceId)(),sampleRand:Math.random(),propagationSpanId:(0,r4.hasSpansEnabled)()?void 0:(0,na.generateSpanId)()}),i.setSDKProcessingMetadata({normalizedRequest:void 0}),U(e,{op:"navigation",...t,parentSpan:null,forceTransaction:!0})}),e.on("startPageLoadSpan",(t,r={})=>{if((0,X.getClient)()!==e)return;a();let n=r.sentryTrace||aN("sentry-trace")||aO("sentry-trace"),i=r.baggage||aN("baggage")||aO("baggage"),o=(0,ni.propagationContextFromHeaders)(n,i),s=(0,X.getCurrentScope)();s.setPropagationContext(o),(0,r4.hasSpansEnabled)()||(s.getPropagationContext().propagationSpanId=(0,na.generateSpanId)()),s.setSDKProcessingMetadata({normalizedRequest:tO()}),U(e,{op:"pageload",...t})}),e.on("endPageloadSpan",()=>{P&&n&&(n.setAttribute(eh.SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON,"reportPageLoaded"),n.end())})},afterAllSetup(e){var t,n,a,o,l;let u;if(D)return;let c=(0,tC.getLocationHref)();if("off"!==O&&function(e,{linkPreviousTrace:t,consistentTraceSampling:r}){let n="session-storage"===t,a=n?function(){try{let e=tA.sessionStorage?.getItem(ao);return JSON.parse(e)}catch{return}}():void 0;e.on("spanStart",e=>{if((0,eL.getRootSpan)(e)!==e)return;let t=(0,X.getCurrentScope)().getPropagationContext();a=function(e,t,r){let n=(0,eL.spanToJSON)(t),a={spanContext:t.spanContext(),startTimestamp:n.start_timestamp,sampleRate:function(){try{return Number(r.dsc?.sample_rate)??Number(n.data?.[eh.SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE])}catch{return 0}}(),sampleRand:r.sampleRand};if(!e)return a;let i=e.spanContext;return i.traceId===n.trace_id?e:(Date.now()/1e3-e.startTimestamp<=3600&&(rr&&z.debug.log(`Adding previous_trace \`${JSON.stringify(i)}\` link to span \`${JSON.stringify({op:n.op,...t.spanContext()})}\``),t.addLink({context:i,attributes:{[eh.SEMANTIC_LINK_ATTRIBUTE_LINK_TYPE]:"previous_trace"}}),t.setAttribute("sentry.previous_trace",`${i.traceId}-${i.spanId}-${+!!as(i)}`)),a)}(a,e,t),n&&function(e){try{tA.sessionStorage.setItem(ao,JSON.stringify(e))}catch(e){rr&&z.debug.warn("Could not store previous trace in sessionStorage",e)}}(a)});let i=!0;r&&e.on("beforeSampling",e=>{if(!a)return;let t=(0,X.getCurrentScope)(),r=t.getPropagationContext();if(i&&r.parentSpanId){i=!1;return}t.setPropagationContext({...r,dsc:{...r.dsc,sample_rate:String(a.sampleRate),sampled:String(as(a.spanContext))},sampleRand:a.sampleRand}),e.parentSampled=as(a.spanContext),e.parentSampleRate=a.sampleRate,e.spanAttributes={...e.spanAttributes,[eh.SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE]:a.sampleRate}})}(e,{linkPreviousTrace:O,consistentTraceSampling:x}),tA.location){if(A){let t=(0,eO.browserPerformanceTimeOrigin)();aA(e,{name:tA.location.pathname,startTime:t?t/1e3:void 0,attributes:{[eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:"url",[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.pageload.browser"}})}k&&re(({to:t,from:n})=>{var a,i;let o,s;if(void 0===n&&c?.indexOf(t)!==-1){c=void 0;return}c=void 0;let l=tZ(t),u=e[ax],d=u&&N&&(a=u,i=r,o=(0,eL.spanToJSON)(a),!((s=(0,eO.dateTimestampInSeconds)())-o.start_timestamp>1.5)&&(!i||!(s-i<=1.5)));ak(e,{name:l?.pathname||tA.location.pathname,attributes:{[eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:"url",[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.navigation.browser"}},{url:t,isRedirect:d})})}b&&(tA.document?tA.document.addEventListener("visibilitychange",()=>{let e=(0,eL.getActiveSpan)();if(!e)return;let t=(0,eL.getRootSpan)(e);if(tA.document.hidden&&t){let e="cancelled",{op:r,status:n}=(0,eL.spanToJSON)(t);rr&&z.debug.log(`[Tracing] Transaction: ${e} -> since tab moved to the background, op: ${r}`),n||t.setStatus({code:r7.SPAN_STATUS_ERROR,message:e}),t.setAttribute("sentry.cancellation_reason","document.hidden"),t.end()}}):rr&&z.debug.warn("[Tracing] Could not set up background tab detection due to lack of global document")),d&&(t=e,n=_,a=y,o=v,l=i,tA.document&&addEventListener("click",()=>{let e="ui.action.click",r=function(e){return e[ax]}(t);if(r&&["navigation","pageload"].includes((0,eL.spanToJSON)(r).op)){rr&&z.debug.warn(`[Tracing] Did not create ${e} span because a pageload or navigation span is in progress.`);return}if(u&&(u.setAttribute(eh.SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON,"interactionInterrupted"),u.end(),u=void 0),!l.name){rr&&z.debug.warn(`[Tracing] Did not create ${e} transaction because _latestRouteName is missing.`);return}u=nt({name:l.name,op:e,attributes:{[eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:l.source||"url"}},{idleTimeout:n,finalTimeout:a,childSpanTimeout:o})},{capture:!0})),s&&function(){let e=Object.keys(n7);function t(e){let t=e.target;if(!t)return;let r=(0,tC.htmlTreeAsString)(t),n=Math.round(e.timeStamp);if(n8.set(n,r),n8.size>50){let e=n8.keys().next().value;void 0!==e&&n8.delete(e)}}no()&&e.forEach(e=>{t3.addEventListener(e,t,{capture:!0,passive:!0})});let r=({entries:e})=>{let t=(0,eL.getActiveSpan)(),r=t&&(0,eL.getRootSpan)(t);e.forEach(e=>{if(!("duration"in e))return;let t=e.interactionId;if(null==t||n6.has(t))return;let n=e.target?(0,tC.htmlTreeAsString)(e.target):function(e){let t=Math.round(e.startTime),r=n8.get(t);if(!r)for(let e=-5;e<=5;e++){let n=n8.get(t+e);if(n){r=n;break}}return r||""}(e);if(n4.length>10){let e=n4.shift();n6.delete(e)}n4.push(t),n6.set(t,{span:r,elementName:n})})};nW("event",r),nW("first-input",r)}(),aT(e,{traceFetch:S,traceXHR:E,trackFetchStreamPerformance:T,tracePropagationTargets:e.getOptions().tracePropagationTargets,shouldCreateSpanForRequest:w,enableHTTPTimings:R,onRequestSpanStart:M,onRequestSpanEnd:L})}}};function aA(e,t,r){e.emit("startPageLoadSpan",t,r),(0,X.getCurrentScope)().setTransactionName(t.name);let n=e[ax];return n&&e.emit("afterStartPageLoadSpan",n),n}function ak(e,t,r){let{url:n,isRedirect:a}=r||{};e.emit("beforeStartNavigationSpan",t,{isRedirect:a}),e.emit("startNavigationSpan",t,{isRedirect:a});let i=(0,X.getCurrentScope)();return i.setTransactionName(t.name),n&&!a&&i.setSDKProcessingMetadata({normalizedRequest:{...tO(),url:n}}),e[ax]}function aN(e){let t=tA.document,r=t?.querySelector(`meta[name=${e}]`);return r?.getAttribute("content")||void 0}function aO(e){let t=tA.performance?.getEntriesByType?.("navigation")[0],r=t?.serverTiming?.find(t=>t.name===e);return r?.description}let ax="_sentry_idleSpan";function aP(e,t){(0,ed.addNonEnumerableProperty)(e,ax,t)}let aM=Y.GLOBAL_OBJ,aL=null,aD=new Map,aU=new Map;function aB(e){let t=e.split("/").filter(Boolean),r=0;for(let e of t)if(e.startsWith(":")){let t=e.substring(1);t.endsWith("*?")?r+=1e3:t.endsWith("*")?r+=100:r+=10}return t.length>0&&(r+=1/t.length),r}function aj(e){if(aD.has(e))return aD.get(e)??null;try{let t=new RegExp(e);return aD.set(e,t),t}catch(t){return r2&&z.debug.warn("Could not compile regex",{regexString:e,error:t}),null}}function a$(){if(!aM?._sentryRouteManifest||"string"!=typeof aM._sentryRouteManifest)return null;let e=aM._sentryRouteManifest;if(aL&&A===e)return aL;aD.clear(),aU.clear();let t={staticRoutes:[],dynamicRoutes:[],isrRoutes:[]};try{if(t=JSON.parse(e),!Array.isArray(t.staticRoutes)||!Array.isArray(t.dynamicRoutes))return null;return aL=t,A=e,t}catch{return r2&&z.debug.warn("Could not extract route manifest"),null}}let aF=e=>{let t=a$();if(!t)return;let r=e.length>1&&e.endsWith("/")?e.slice(0,-1):e;if(aU.has(r))return aU.get(r);let{staticRoutes:n,dynamicRoutes:a}=t;if(!Array.isArray(n)||!Array.isArray(a))return;let i=(function(e,t,r){let n=[];if(t.some(t=>t.path===e))return n;for(let t of r)if(t.regex){let r=aj(t.regex);r?.test(e)&&n.push(t.path)}if(!e.startsWith("/:")){for(let t of r)if(t.hasOptionalPrefix&&t.regex){let r="/"===e?"/SENTRY_OPTIONAL_PREFIX":`/SENTRY_OPTIONAL_PREFIX${e}`,a=aj(t.regex);a?.test(r)&&n.push(t.path)}}return n})(r,n,a).sort((e,t)=>aB(e)-aB(t))[0];return aU.set(r,i),i};function aH(e){return e.length>1&&e.endsWith("/")?e.slice(0,-1):e}let aW="incomplete-app-router-transaction",aq="router-patch",aG={current:void 0},az=Y.GLOBAL_OBJ,aY=Y.GLOBAL_OBJ;function aJ(e){try{return new URL(e,"http://example.com/").pathname}catch{return"/"}}let aV=new WeakSet;function aK(e,t,r){aV.has(t)||(aV.add(t),["back","forward","push","replace"].forEach(n=>{t?.[n]&&(t[n]=new Proxy(t[n],{apply(t,a,i){if("router-patch"!==aq)return t.apply(a,i);let o=aW,s={[eh.SEMANTIC_ATTRIBUTE_SENTRY_OP]:"navigation",[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.navigation.nextjs.app_router_instrumentation",[eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:"url"},l=i[0],u=G.default.env._sentryBasePath??aY._sentryBasePath,c=u&&"string"==typeof l&&!l.startsWith(u)?`${u}${l}`:l;"push"===n?(o=aH(aJ(c)),s["navigation.type"]="router.push"):"replace"===n?(o=aH(aJ(c)),s["navigation.type"]="router.replace"):"back"===n?s["navigation.type"]="router.back":"forward"===n&&(s["navigation.type"]="router.forward");let d=aF(o);return r.current=ak(e,{name:d??o,attributes:{...s,[eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:d?"route":"url"}}),t.apply(a,i)}}))}))}function aX(e,t){k&&k(e,t)}var aQ=e.i(896389);let aZ=aQ.default.events?aQ.default:aQ.default.default;function a0(e={}){let t=aC({...e,instrumentNavigation:!1,instrumentPageLoad:!1,onRequestSpanStart(...t){let[r,{headers:n}]=t;return n?.get("next-router-prefetch")&&r?.setAttribute("http.request.prefetch",!0),e.onRequestSpanStart?.(...t)}}),{instrumentPageLoad:r=!0,instrumentNavigation:n=!0}=e;return{...t,afterAllSetup(e){n&&function(e){if(tA.document.getElementById("__NEXT_DATA__"))aZ.events.on("routeChangeStart",t=>{let r,n,a=t1(t),i=function(e){let t=tA.__BUILD_MANIFEST?.sortedPages;if(t)return t.find(t=>{let r,n,a,i=(r=t.split("/"),n="",r[r.length-1]?.match(/^\[\[\.\.\..+\]\]$/)&&(r.pop(),n="(?:/(.+?))?"),a=r.map(e=>e.replace(/^\[\.\.\..+\]$/,"(.+?)").replace(/^\[.*\]$/,"([^/]+?)")).join("/"),RegExp(`^${a}${n}(?:/)?$`));return e.match(i)})}(a);i?(r=i,n="route"):(r=a,n="url"),ak(e,{name:r,attributes:{[eh.SEMANTIC_ATTRIBUTE_SENTRY_OP]:"navigation",[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.navigation.nextjs.pages_router_instrumentation",[eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:n}})});else{let t,r,n;k=(t,r)=>{let n=G.default.env._sentryBasePath??aY._sentryBasePath,a=aH(new URL(n&&!t.startsWith(n)?`${n}${t}`:t,tA.location.href).pathname),i=aF(a),o=i??a;"router-patch"===aq&&(aq="transition-start-hook");let s=aG.current;s?(s.updateName(o),s.setAttributes({"navigation.type":`router.${r}`,[eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:i?"route":"url"}),aG.current=void 0):ak(e,{name:o,attributes:{[eh.SEMANTIC_ATTRIBUTE_SENTRY_OP]:"navigation",[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.navigation.nextjs.app_router_instrumentation",[eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:i?"route":"url","navigation.type":`router.${r}`}})},tA.addEventListener("popstate",()=>{let t=aH(tA.location.pathname),r=aF(t);aG.current?.isRecording()?(aG.current.updateName(r??t),aG.current.setAttribute(eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,r?"route":"url")):aG.current=ak(e,{name:r??t,attributes:{[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.navigation.nextjs.app_router_instrumentation",[eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:r?"route":"url","navigation.type":"browser.popstate"}})}),t=!1,r=0,n=setInterval(()=>{r++;let a=az?.next?.router??az?.nd?.router;t||r>500?clearInterval(n):a&&(clearInterval(n),t=!0,aK(e,a,aG),["nd","next"].forEach(t=>{let r=az[t];r&&(az[t]=new Proxy(r,{set:(t,r,n)=>("router"===r&&"object"==typeof n&&null!==n&&aK(e,n,aG),t[r]=n,!0)}))}))},20)}}(e),t.afterAllSetup(e),r&&function(e){if(tA.document.getElementById("__NEXT_DATA__"))!function(e){let{route:t,params:r,sentryTrace:n,baggage:a}=function(){let e,t=tA.document.getElementById("__NEXT_DATA__");if(t?.innerHTML)try{e=JSON.parse(t.innerHTML)}catch{r2&&z.debug.warn("Could not extract __NEXT_DATA__")}if(!e)return{};let r={},{page:n,query:a,props:i}=e;return r.route=n,r.params=a,i?.pageProps&&(r.sentryTrace=i.pageProps._sentryTraceData,r.baggage=i.pageProps._sentryBaggage),r}(),i=(0,al.parseBaggageHeader)(a),o=t||tA.location.pathname;i?.["sentry-transaction"]&&"/_error"===o&&(o=(o=i["sentry-transaction"]).replace(/^(GET|POST|PUT|DELETE|PATCH|HEAD|OPTIONS|TRACE|CONNECT)\s+/i,""));let s=(0,eO.browserPerformanceTimeOrigin)();aA(e,{name:o,startTime:s?s/1e3:void 0,attributes:{[eh.SEMANTIC_ATTRIBUTE_SENTRY_OP]:"pageload",[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.pageload.nextjs.pages_router_instrumentation",[eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:t?"route":"url",...r&&e.getOptions().sendDefaultPii&&{...r}}},{sentryTrace:n,baggage:a})}(e);else{let t,r,n;r=aF(t=aH(tA.location.pathname)),aA(e,{name:r??t,startTime:(n=(0,eO.browserPerformanceTimeOrigin)())?n/1e3:void 0,attributes:{[eh.SEMANTIC_ATTRIBUTE_SENTRY_OP]:"pageload",[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.pageload.nextjs.app_router_instrumentation",[eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:r?"route":"url"}})}}(e)}}}let a1=/^(\S+:\\|\/?)([\s\S]*?)((?:\.{1,2}|[^/\\]+?|)(\.[^./\\]*|))(?:[/\\]*)$/;function a2(...e){let t="",r=!1;for(let n=e.length-1;n>=-1&&!r;n--){let a=n>=0?e[n]:"/";a&&(t=`${a}/${t}`,r="/"===a.charAt(0))}return t=(function(e,t){let r=0;for(let t=e.length-1;t>=0;t--){let n=e[t];"."===n?e.splice(t,1):".."===n?(e.splice(t,1),r++):r&&(e.splice(t,1),r--)}if(t)for(;r--;)e.unshift("..");return e})(t.split("/").filter(e=>!!e),!r).join("/"),(r?"/":"")+t||"."}function a3(e){let t=0;for(;t=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}let a5=(e={})=>{let t=e.root,r=e.prefix||"app:///",n="window"in Y.GLOBAL_OBJ&&!!Y.GLOBAL_OBJ.window,a=e.iteratee||function({isBrowser:e,root:t,prefix:r}){return n=>{if(!n.filename)return n;let a=/^[a-zA-Z]:\\/.test(n.filename)||n.filename.includes("\\")&&!n.filename.includes("/"),i=/^\//.test(n.filename);if(e){if(t){let e=n.filename;0===e.indexOf(t)&&(n.filename=e.replace(t,r))}}else if(a||i){let e,i,o=a?n.filename.replace(/^[a-zA-Z]:/,"").replace(/\\/g,"/"):n.filename,s=t?function(e,t){e=a2(e).slice(1),t=a2(t).slice(1);let r=a3(e.split("/")),n=a3(t.split("/")),a=Math.min(r.length,n.length),i=a;for(let e=0;e1024?`${o.slice(-1024)}`:o,(i=a1.exec(e))?i.slice(1):[])[2]||"";n.filename=`${r}${s}`}return n}}({isBrowser:n,root:t,prefix:r});return{name:"RewriteFrames",processEvent(e){let t=e;return e.exception&&Array.isArray(e.exception.values)&&(t=function(e){try{return{...e,exception:{...e.exception,values:e.exception.values.map(e=>{var t;return{...e,...e.stacktrace&&{stacktrace:{...t=e.stacktrace,frames:t?.frames?.map(e=>a(e))}}}})}}}catch{return e}}(t)),t}}},a4=new class{constructor(e){this._maxSize=e,this._cache=new Map}get size(){return this._cache.size}get(e){let t=this._cache.get(e);if(void 0!==t)return this._cache.delete(e),this._cache.set(e,t),t}set(e,t){if(this._cache.size>=this._maxSize){let e=this._cache.keys().next().value;this._cache.delete(e)}this._cache.set(e,t)}remove(e){let t=this._cache.get(e);return t&&this._cache.delete(e),t}clear(){this._cache.clear()}keys(){return Array.from(this._cache.keys())}values(){let e=[];return this._cache.forEach(t=>e.push(t)),e}}(100),a6=Y.GLOBAL_OBJ,a8=!1,a7=Y.GLOBAL_OBJ;function a9(e){let t,r,n,a,i,o;a8&&(0,z.consoleSandbox)(()=>{console.warn("[@sentry/nextjs] You are calling `Sentry.init()` more than once on the client. This can happen if you have both a `sentry.client.config.ts` and a `instrumentation-client.ts` file with `Sentry.init()` calls. It is recommended to call `Sentry.init()` once in `instrumentation-client.ts`.")}),a8=!0,!r2&&e.debug&&(0,z.consoleSandbox)(()=>{console.warn("[@sentry/nextjs] You have enabled `debug: true`, but Sentry debug logging was removed from your bundle (likely via `withSentryConfig({ disableLogger: true })` / `webpack.treeshake.removeDebugLogging: true`). Set that option to `false` to see Sentry debug output.")}),("u"({...a5({iteratee:a=>{if(n){let r="u">typeof window&&window.location?window.location.origin:"";if(a.filename?.startsWith(r)&&!a.filename.endsWith(".js"))return a;if(e)a.filename?.startsWith(e)&&(a.filename=a.filename.replace(e,"app://"));else if(t)try{let{origin:e}=new URL(a.filename);e===r&&(a.filename=a.filename?.replace(e,"app://").replace(t,""))}catch{}}else try{let{origin:e}=new URL(a.filename);a.filename=a.filename?.replace(e,"app://").replace(r,"")}catch{}return n?(a.filename?.includes("/_next")&&(a.filename=decodeURI(a.filename)),a.filename?.match(/\/_next\/static\/chunks\/(main-|main-app-|polyfills-|webpack-|framework-|framework\.)[0-9a-f]+\.js$/)&&(a.in_app=!1)):(a.filename?.startsWith("app:///_next")&&(a.filename=decodeURI(a.filename)),a.filename?.match(/^app:\/\/\/_next\/static\/chunks\/(main-|main-app-|polyfills-|webpack-|framework-|framework\.)[0-9a-f]+\.js$/)&&(a.in_app=!1)),a}}),name:"NextjsClientStackFrameNormalization"}))({assetPrefix:a,basePath:i,rewriteFramesAssetPrefixPath:n,experimentalThirdPartyOriginStackFrames:o})),r),release:"d45ef2baf7ed5f673dc8dd688a3f937376743f84",...e};!function(e){let t=G.default.env._sentryRewritesTunnelPath||a6._sentryRewritesTunnelPath;if(t&&e.dsn){let r=(0,eS.dsnFromString)(e.dsn);if(!r)return;let n=r.host.match(/^o(\d+)\.ingest(?:\.([a-z]{2}))?\.sentry\.io$/);if(n){let a=n[1],i=n[2],o=`${t}?o=${a}&p=${r.projectId}`;i&&(o+=`&r=${i}`),e.tunnel=o,r2&&z.debug.log(`Tunneling events to "${o}"`)}else r2&&z.debug.warn("Provided DSN is not a Sentry SaaS DSN. Will not tunnel events.")}}(s),V(s,"nextjs",["nextjs","react"]);let l=r1(s),u=e=>"transaction"===e.type&&"/404"===e.transaction?null:e;u.id="NextClient404Filter",(0,K.addEventProcessor)(u);let c=e=>"transaction"===e.type&&e.transaction===aW?null:e;c.id="IncompleteTransactionFilter",(0,K.addEventProcessor)(c);let d=(e,t)=>r5(t?.originalException)||e.exception?.values?.[0]?.value==="NEXT_REDIRECT"?null:e;d.id="NextRedirectErrorFilter",(0,K.addEventProcessor)(d);try{(0,X.getGlobalScope)().setTag("turbopack",!0)}catch{}return l}function ie(e){return e}function it(e,t={},r=(0,X.getCurrentScope)()){let{message:n,name:a,email:i,url:o,source:s,associatedEventId:l,tags:u}=e,c={contexts:{feedback:{contact_email:i,name:a,message:n,url:o,source:s,associated_event_id:l}},type:"feedback",level:"info",tags:u},d=r?.getClient()||(0,X.getClient)();return d&&d.emit("beforeSendFeedback",c,t),r.captureEvent(c,t)}e.s([],955364),e.i(955364),e.s([],227209),e.i(227209);let ir=Y.GLOBAL_OBJ,ia=ir.document,ii=ir.navigator,io="Report a Bug",is="Cancel",il="Send Bug Report",iu="Confirm",ic="Report a Bug",id="your.email@example.org",ip="Email",ih="What's the bug? What did you expect?",im="Description",ig="Your Name",i_="Name",iy="Thank you for your report!",iv="(required)",ib="Add a screenshot",iS="Remove screenshot",iE="Highlight",iT="Hide",iw="Remove",iR=(e,t={includeReplay:!0})=>{if(!e.message)throw Error("Unable to submit feedback with empty message");let r=(0,X.getClient)();if(!r)throw Error("No client setup, cannot send feedback.");e.tags&&Object.keys(e.tags).length&&(0,X.getCurrentScope)().setTags(e.tags);let n=it({source:"api",url:(0,tC.getLocationHref)(),...e},t);return new Promise((e,t)=>{let a=setTimeout(()=>t("Unable to determine if Feedback was correctly sent."),3e4),i=r.on("afterSendEvent",(r,o)=>{if(r.event_id===n)return(clearTimeout(a),i(),o?.statusCode&&o.statusCode>=200&&o.statusCode<300)?e(n):o?.statusCode===403?t("Unable to send feedback. This could be because this domain is not in your list of allowed domains."):t("Unable to send feedback. This could be because of network issues, or because you are using an ad-blocker.")})})},iI="u"{t.onFormOpen?.(),e.onFormOpen?.()},onFormClose:()=>{t.onFormClose?.(),e.onFormClose?.()},onSubmitSuccess:(r,n)=>{t.onSubmitSuccess?.(r,n),e.onSubmitSuccess?.(r,n)},onSubmitError:r=>{t.onSubmitError?.(r),e.onSubmitError?.(r)},onFormSubmitted:()=>{t.onFormSubmitted?.(),e.onFormSubmitted?.()},themeDark:{...e.themeDark,...t.themeDark},themeLight:{...e.themeLight,...t.themeLight}}}function iA(e,t){return Object.entries(t).forEach(([t,r])=>{e.setAttributeNS(null,t,r)}),e}let ik="rgba(88, 74, 192, 1)",iN={foreground:"#2b2233",background:"#ffffff",accentForeground:"white",accentBackground:ik,successColor:"#268d75",errorColor:"#df3338",border:"1.5px solid rgba(41, 35, 47, 0.13)",boxShadow:"0px 4px 24px 0px rgba(43, 34, 51, 0.12)",outline:"1px auto var(--accent-background)",interactiveFilter:"brightness(95%)"},iO={foreground:"#ebe6ef",background:"#29232f",accentForeground:"white",accentBackground:ik,successColor:"#2da98c",errorColor:"#f55459",border:"1.5px solid rgba(235, 230, 239, 0.15)",boxShadow:"0px 4px 24px 0px rgba(43, 34, 51, 0.12)",outline:"1px auto var(--accent-background)",interactiveFilter:"brightness(150%)"};function ix(e){return` +Error:`,t)}}function nG(){return((e,t={})=>{((e,t={})=>{nE(()=>{let r,n=nm(),a=ng("FCP"),i=nb("paint",e=>{for(let t of e)"first-contentful-paint"===t.name&&(i.disconnect(),t.startTime{let r,n=ng("CLS",0),a=nm(),i=ny(t,nv),o=e=>{for(let t of e)i._processEntry(t);i._sessionValue>n.value&&(n.value=i._sessionValue,n.entries=i._sessionEntries,r())},s=nb("layout-shift",o);s&&(r=ns(e,n,nw,t.reportAllChanges),a.onHidden(()=>{o(s.takeRecords()),r(!0)}),t3?.setTimeout?.(r))}))})(e=>{nq("cls",{metric:e}),l=e},{reportAllChanges:!0})}function nz(){return((e,t={})=>{nE(()=>{let r,n=nm(),a=ng("LCP"),i=ny(t,nM),o=e=>{for(let o of(t.reportAllChanges||(e=e.slice(-1)),e))i._processEntry(o),o.startTime{o(s.takeRecords()),s.disconnect(),r(!0)}),i=e=>{e.isTrusted&&(nx(n),nd(e.type,i,{capture:!0}))};for(let e of["keydown","click","visibilitychange"])nc(e,i,{capture:!0})}})})(e=>{nq("lcp",{metric:e}),u=e},{reportAllChanges:!0})}function nY(){return((e,t={})=>{let r=ng("TTFB"),n=ns(e,r,nD,t.reportAllChanges);nU(()=>{let e=nl();e&&(r.value=Math.max(e.responseStart-nu(),0),r.entries=[e],n(!0))})})(e=>{nq("ttfb",{metric:e}),c=e})}function nJ(){return((e,t={})=>{if(!(globalThis.PerformanceEventTiming&&"interactionId"in PerformanceEventTiming.prototype))return;let r=nm();nE(()=>{let n;"interactionCount"in performance||s||(s=nb("event",nA,{type:"event",buffered:!0,durationThreshold:0}));let a=ng("INP"),i=ny(t,nO),o=e=>{nx(()=>{for(let t of e)i._processEntry(t);let t=i._estimateP98LongestInteraction();t&&t._latency!==a.value&&(a.value=t._latency,a.entries=t.entries,n())})},l=nb("event",o,{durationThreshold:t.durationThreshold??40});n=ns(e,a,nP,t.reportAllChanges),l&&(l.observe({type:"first-input",buffered:!0}),r.onHidden(()=>{o(l.takeRecords()),n(!0)}))})})(e=>{nq("inp",{metric:e}),d=e})}function nV(e,t,r,n,a=!1){let i;return nK(e,t),nj[e]||(i=r(),nj[e]=!0),n&&t({metric:n}),nX(e,t,a?i:void 0)}function nK(e,t){nB[e]=nB[e]||[],nB[e].push(t)}function nX(e,t,r){return()=>{r&&r();let n=nB[e];if(!n)return;let a=n.indexOf(t);-1!==a&&n.splice(a,1)}}function nQ(e){return"number"==typeof e&&isFinite(e)}function nZ(e,t,r,{...n}){let a=(0,eL.spanToJSON)(e).start_timestamp;return a&&a>t&&"function"==typeof e.updateStartTime&&e.updateStartTime(t),(0,r9.withActiveSpan)(e,()=>{let e=(0,r9.startInactiveSpan)({startTime:t,...n});return e&&e.end(r),e})}function n0(e){let t,r=(0,X.getClient)();if(!r)return;let{name:n,transaction:a,attributes:i,startTime:o}=e,{release:s,environment:l,sendDefaultPii:u}=r.getOptions(),c=r.getIntegrationByName("Replay"),d=c?.getReplayId(),p=(0,X.getCurrentScope)(),f=p.getUser(),h=void 0!==f?f.email||f.id||f.ip_address:void 0;try{t=p.getScopeData().contexts.profile.profile_id}catch{}let m={release:s,environment:l,user:h||void 0,profile_id:t||void 0,replay_id:d||void 0,transaction:a,"user_agent.original":t3.navigator?.userAgent,"client.address":u?"{{auto}}":void 0,...i};return(0,r9.startInactiveSpan)({name:n,attributes:m,startTime:o,experimental:{standalone:!0}})}function n1(){return t3.addEventListener&&t3.performance}function n2(e){return e/1e3}function n3(e){try{return PerformanceObserver.supportedEntryTypes.includes(e)}catch{return!1}}function n5(e,t){let r,n,a=!1;function i(e){!a&&n&&t(e,n),a=!0}nc("visibilitychange",r=e=>{("pagehide"===e.type||t3.document?.visibilityState==="hidden")&&(()=>{i("pagehide")})(e)},{capture:!0,once:!0}),nc("pagehide",r,{capture:!0,once:!0});let o=e.on("beforeStartNavigationSpan",(e,t)=>{t?.isRedirect||(i("navigation"),o(),s())}),s=e.on("afterStartPageLoadSpan",e=>{n=e.spanContext().spanId,s()})}let n4=[],n6=new Map,n8=new Map,n7={click:"click",pointerdown:"click",pointerup:"click",mousedown:"click",mouseup:"click",touchstart:"click",touchend:"click",mouseover:"hover",mouseout:"hover",mouseenter:"hover",mouseleave:"hover",pointerover:"hover",pointerout:"hover",pointerenter:"hover",pointerleave:"hover",dragstart:"drag",dragend:"drag",drag:"drag",dragenter:"drag",dragleave:"drag",dragover:"drag",drop:"drag",keydown:"press",keyup:"press",keypress:"press",input:"press"},n9=({metric:e})=>{if(void 0==e.value)return;let t=n2(e.value);if(t>60)return;let r=e.entries.find(t=>t.duration===e.value&&n7[t.name]);if(!r)return;let{interactionId:n}=r,a=n7[r.name],i=n2((0,eO.browserPerformanceTimeOrigin)()+r.startTime),o=(0,eL.getActiveSpan)(),s=o?(0,eL.getRootSpan)(o):void 0,l=null!=n?n6.get(n):void 0,u=l?.span||s,c=u?(0,eL.spanToJSON)(u).description:(0,X.getCurrentScope)().getScopeData().transactionName,d=n0({name:l?.elementName||(0,tC.htmlTreeAsString)(r.target),transaction:c,attributes:{[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.http.browser.inp",[eh.SEMANTIC_ATTRIBUTE_SENTRY_OP]:`ui.interaction.${a}`,[eh.SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME]:r.duration},startTime:i});d&&(d.addEvent("inp",{[eh.SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT]:"millisecond",[eh.SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE]:e.value}),d.end(i+t))};var ae=e.i(967703);function at(e){return e?(((0,eO.browserPerformanceTimeOrigin)()||performance.timeOrigin)+e)/1e3:e}function ar(e){let t={};if(void 0!=e.nextHopProtocol){let{name:r,version:n}=function(e){let t="unknown",r="unknown",n="";for(let a of e){if("/"===a){[t,r]=e.split("/");break}if(!isNaN(Number(a))){t="h"===n?"http":n,r=e.split(n)[1];break}n+=a}return n===e&&(t=n),{name:t,version:r}}(e.nextHopProtocol);t["network.protocol.version"]=n,t["network.protocol.name"]=r}return(0,eO.browserPerformanceTimeOrigin)()||n1()?.timeOrigin?Object.fromEntries(Object.entries({...t,"http.request.redirect_start":at(e.redirectStart),"http.request.redirect_end":at(e.redirectEnd),"http.request.worker_start":at(e.workerStart),"http.request.fetch_start":at(e.fetchStart),"http.request.domain_lookup_start":at(e.domainLookupStart),"http.request.domain_lookup_end":at(e.domainLookupEnd),"http.request.connect_start":at(e.connectStart),"http.request.secure_connection_start":at(e.secureConnectionStart),"http.request.connection_end":at(e.connectEnd),"http.request.request_start":at(e.requestStart),"http.request.response_start":at(e.responseStart),"http.request.response_end":at(e.responseEnd),"http.request.time_to_first_byte":null!=e.responseStart?e.responseStart/1e3:void 0}).filter(([,e])=>null!=e)):t}let an=0,aa={};function ai(e,t,r,n,a=r){var i;let o=t["secureConnection"===(i=r)?"connectEnd":"fetch"===i?"domainLookupStart":`${i}End`],s=t[`${r}Start`];s&&o&&nZ(e,n+n2(s),n+n2(o),{op:`browser.${a}`,name:t.name,attributes:{[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.ui.browser.metrics",..."redirect"===r&&null!=t.redirectCount?{"http.redirect_count":t.redirectCount}:{}}})}let ao="sentry_previous_trace";function as(e){return 1===e.traceFlags}var al=e.i(439611),au=e.i(679162);function ac(e={}){let t=e.client||(0,X.getClient)();if(!(0,K.isEnabled)()||!t)return{};let r=(0,eC.getMainCarrier)(),n=(0,au.getAsyncContextStrategy)(r);if(n.getTraceData)return n.getTraceData(e);let a=e.scope||(0,X.getCurrentScope)(),i=e.span||(0,eL.getActiveSpan)();if(!i&&(0,X.hasExternalPropagationContext)())return{};let o=i?(0,eL.spanToTraceHeader)(i):function(e){let{traceId:t,sampled:r,propagationSpanId:n}=e.getPropagationContext();return(0,ni.generateSentryTraceHeader)(t,n,r)}(a),s=i?(0,eM.getDynamicSamplingContextFromSpan)(i):(0,eM.getDynamicSamplingContextFromScope)(t,a),l=(0,al.dynamicSamplingContextToSentryBaggageHeader)(s);if(!ni.TRACEPARENT_REGEXP.test(o))return z.debug.warn("Invalid sentry-trace data. Cannot generate trace data"),{};let u={"sentry-trace":o,baggage:l};return e.propagateTraceparent&&(u.traceparent=i?(0,eL.spanToTraceparentHeader)(i):function(e){let{traceId:t,sampled:r,propagationSpanId:n}=e.getPropagationContext();return(0,ni.generateTraceparentHeader)(t,n,r)}(a)),u}function ad(e){return e.split(",").some(e=>e.trim().startsWith(al.SENTRY_BAGGAGE_KEY_PREFIX))}function ap(e,t,r,n){let a={url:t2(e),type:"fetch","http.method":r,[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:n,[eh.SEMANTIC_ATTRIBUTE_SENTRY_OP]:"http.client"};return t&&(tQ(t)||(a["http.url"]=t2(t.href),a["server.address"]=t.host),t.search&&(a["http.query"]=t.search),t.hash&&(a["http.fragment"]=t.hash)),a}let af=Symbol.for("sentry__originalRequestBody");function ah(e){return new URLSearchParams(e).toString()}function am(e,t=z.debug){try{if("string"==typeof e)return[e];if(e instanceof URLSearchParams)return[e.toString()];if(e instanceof FormData)return[ah(e)];if(!e)return[void 0]}catch(r){return rG&&t.error(r,"Failed to serialize body",e),[void 0,"BODY_PARSE_ERROR"]}return rG&&t.log("Skipping network body because of body type",e),[void 0,"UNPARSEABLE_BODY_TYPE"]}function ag(e=[]){if(e.length>=2&&e[1]&&"object"==typeof e[1]&&"body"in e[1])return e[1].body;if(e.length>=1&&e[0]instanceof Request){let t=e[0][af];if(void 0!==t)return t}}function a_(e){let t;try{t=e.getAllResponseHeaders()}catch(t){return rG&&z.debug.error(t,"Failed to get xhr response headers",e),{}}return t?t.split("\r\n").reduce((e,t)=>{let[r,n]=t.split(": ");return n&&(e[r.toLowerCase()]=n),e},{}):{}}function ay(e){try{return new URL(e,tA.location.origin).href}catch{return}}function av(e){try{return new Headers(e)}catch{return}}let ab=new WeakMap,aS=new Map,aE={traceFetch:!0,traceXHR:!0,enableHTTPTimings:!0,trackFetchStreamPerformance:!1};function aT(e,t){let{traceFetch:r,traceXHR:n,trackFetchStreamPerformance:a,shouldCreateSpanForRequest:i,enableHTTPTimings:o,tracePropagationTargets:s,onRequestSpanStart:l,onRequestSpanEnd:u}={...aE,...t},c="function"==typeof i?i:e=>!0,d=e=>(function(e,t){let r=(0,tC.getLocationHref)();if(r){let n,a;try{n=new URL(e,r),a=new URL(r).origin}catch{return!1}let i=n.origin===a;return t?(0,ei.stringMatchesSomePattern)(n.toString(),t)||i&&(0,ei.stringMatchesSomePattern)(n.pathname,t):i}{let r=!!e.match(/^\/(?!\/)/);return t?(0,ei.stringMatchesSomePattern)(e,t):r}})(e,s),p={},f=e.getOptions().propagateTraceparent;if(r){let t;e.addEventProcessor(e=>("transaction"===e.type&&e.spans&&e.spans.forEach(e=>{if("http.client"===e.op){let t=aS.get(e.span_id);t&&(e.timestamp=t/1e3,aS.delete(e.span_id))}}),e)),a&&(tL(t="fetch-body-resolved",e=>{if(e.response){let t=ab.get(e.response);t&&e.endTimestamp&&aS.set(t,e.endTimestamp)}}),tD(t,()=>tq(tz))),tW(e=>{let t=function(e,t,r,n,a){if(!e.fetchData)return;let{method:i,url:o}=e.fetchData,s=(0,r4.hasSpansEnabled)()&&t(o);if(e.endTimestamp){var l,u,c;let t,r=e.fetchData.__span;if(!r)return;let i=n[r];i&&(s&&(function(e,t){if(t.response){(0,r7.setHttpStatus)(e,t.response.status);let r=t.response?.headers?.get("content-length");if(r){let t=parseInt(r);t>0&&e.setAttribute("http.response_content_length",t)}}else t.error&&e.setStatus({code:r7.SPAN_STATUS_ERROR,message:"internal_error"});e.end()}(i,e),l=i,u=e,t="object"==typeof(c=a)&&null!==c?c.onRequestSpanEnd:void 0,t?.(l,{headers:u.response?.headers,error:u.error})),delete n[r]);return}let{spanOrigin:d="auto.http.browser",propagateTraceparent:p=!1}="object"==typeof a?a:{spanOrigin:a},f=!!(0,eL.getActiveSpan)(),h=s&&f?(0,r9.startInactiveSpan)(function(e,t,r){if(e.startsWith("data:")){let n=t2(e);return{name:`${t} ${n}`,attributes:ap(e,void 0,t,r)}}let n=tZ(e),a=n?function(e){if(tQ(e))return e.pathname;let t=new URL(e);return t.search="",t.hash="",["80","443"].includes(t.port)&&(t.port=""),t.password&&(t.password="%filtered%"),t.username&&(t.username="%filtered%"),t.toString()}(n):e;return{name:`${t} ${a}`,attributes:ap(e,n,t,r)}}(o,i,d)):new r6.SentryNonRecordingSpan;if(e.fetchData.__span=h.spanContext().spanId,n[h.spanContext().spanId]=h,r(e.fetchData.url)){let t=e.args[0],r={...e.args[1]||{}},n=function(e,t,r,n){var a;let i=ac({span:r,propagateTraceparent:n}),o=i["sentry-trace"],s=i.baggage,l=i.traceparent;if(!o)return;let u=t.headers||((0,eA.isRequest)(e)?e.headers:void 0);if(!u)return{...i};if(a=u,"u">typeof Headers&&(0,eA.isInstanceOf)(a,Headers)){let e=new Headers(u);if(e.get("sentry-trace")||e.set("sentry-trace",o),n&&l&&!e.get("traceparent")&&e.set("traceparent",l),s){let t=e.get("baggage");t?ad(t)||e.set("baggage",`${t},${s}`):e.set("baggage",s)}return e}if(Array.isArray(u)){let e=[...u];u.find(e=>"sentry-trace"===e[0])||e.push(["sentry-trace",o]),n&&l&&!u.find(e=>"traceparent"===e[0])&&e.push(["traceparent",l]);let t=u.find(e=>"baggage"===e[0]&&ad(e[1]));return s&&!t&&e.push(["baggage",s]),e}{let e="sentry-trace"in u?u["sentry-trace"]:void 0,t="traceparent"in u?u.traceparent:void 0,r="baggage"in u?u.baggage:void 0,a=r?Array.isArray(r)?[...r]:[r]:[],i=r&&(Array.isArray(r)?r.find(e=>ad(e)):ad(r));s&&!i&&a.push(s);let c={...u,"sentry-trace":e??o,baggage:a.length>0?a.join(","):void 0};return n&&l&&!t&&(c.traceparent=l),c}}(t,r,(0,r4.hasSpansEnabled)()&&f?h:void 0,p);n&&(e.args[1]=r,r.headers=n)}let m=(0,X.getClient)();if(m){let t={input:e.args,response:e.response,startTimestamp:e.startTimestamp,endTimestamp:e.endTimestamp};m.emit("beforeOutgoingRequestSpan",h,t)}return h}(e,c,d,p,{propagateTraceparent:f,onRequestSpanEnd:u});if(e.response&&e.fetchData.__span&&ab.set(e.response,e.fetchData.__span),t){let r=ay(e.fetchData.url),n=r?t0(r).host:void 0;t.setAttributes({"http.url":r?t2(r):void 0,"server.address":n}),o&&aw(t),l?.(t,{headers:e.headers})}})}n&&t7(e=>{let t=function(e,t,r,n,a,i){let o=e.xhr,s=o?.[t8];if(!o||o.__sentry_own_request__||!s)return;let{url:l,method:u}=s,c=(0,r4.hasSpansEnabled)()&&t(l);if(e.endTimestamp){let t=o.__sentry_xhr_span_id__;if(!t)return;let r=n[t];r&&(c&&void 0!==s.status_code&&((0,r7.setHttpStatus)(r,s.status_code),r.end(),i?.(r,{headers:av(a_(o)),error:e.error})),delete n[t]);return}let d=ay(l),p=d?t0(d):t0(l),f=t2(t1(l)),h=!!(0,eL.getActiveSpan)(),m=c&&h?(0,r9.startInactiveSpan)({name:`${u} ${f}`,attributes:{url:t2(l),type:"xhr","http.method":u,"http.url":d?t2(d):void 0,"server.address":p?.host,[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.http.browser",[eh.SEMANTIC_ATTRIBUTE_SENTRY_OP]:"http.client",...p?.search&&{"http.query":p?.search},...p?.hash&&{"http.fragment":p?.hash}}}):new r6.SentryNonRecordingSpan;o.__sentry_xhr_span_id__=m.spanContext().spanId,n[o.__sentry_xhr_span_id__]=m,r(l)&&function(e,t,r){let{"sentry-trace":n,baggage:a,traceparent:i}=ac({span:t,propagateTraceparent:r});n&&function(e,t,r,n){let a=e.__sentry_xhr_v3__?.request_headers;if(!a?.["sentry-trace"]&&e.setRequestHeader)try{if(e.setRequestHeader("sentry-trace",t),n&&!a?.traceparent&&e.setRequestHeader("traceparent",n),r){let t=a?.baggage;t&&t.split(",").some(e=>e.trim().startsWith("sentry-"))||e.setRequestHeader("baggage",r)}}catch{}}(e,n,a,i)}(o,(0,r4.hasSpansEnabled)()&&h?m:void 0,a);let g=(0,X.getClient)();return g&&g.emit("beforeOutgoingRequestSpan",m,e),m}(e,c,d,p,f,u);t&&(o&&aw(t),l?.(t,{headers:av(e.xhr.__sentry_xhr_v3__?.request_headers)}))})}function aw(e){let{url:t}=(0,eL.spanToJSON)(e).data;if(!t||"string"!=typeof t)return;let r=nW("resource",({entries:n})=>{n.forEach(n=>{"resource"===n.entryType&&"initiatorType"in n&&"string"==typeof n.nextHopProtocol&&("fetch"===n.initiatorType||"xmlhttprequest"===n.initiatorType)&&n.name.endsWith(t)&&(e.setAttributes(ar(n)),setTimeout(r))})})}let aR=/Googlebot|Google-InspectionTool|Storebot-Google|Bingbot|Slurp|DuckDuckBot|Baiduspider|YandexBot|Facebot|facebookexternalhit|LinkedInBot|Twitterbot|Applebot/i,aI={...ne,instrumentNavigation:!0,instrumentPageLoad:!0,markBackgroundSpan:!0,enableLongTask:!0,enableLongAnimationFrame:!0,enableInp:!0,ignoreResourceSpans:[],ignorePerformanceApiSpans:[],detectRedirects:!0,linkPreviousTrace:"in-memory",consistentTraceSampling:!1,enableReportPageLoaded:!1,_experiments:{},...aE},aC=(e={})=>{let t,r,n,a;"enableElementTiming"in e&&(0,z.consoleSandbox)(()=>{console.warn("[Sentry] `enableElementTiming` is deprecated and no longer has any effect. Use the standalone `elementTimingIntegration` instead.")});let i={name:void 0,source:void 0},o=tA.document,{enableInp:s,enableLongTask:l,enableLongAnimationFrame:u,_experiments:{enableInteractions:d,enableStandaloneClsSpans:h,enableStandaloneLcpSpans:m},beforeStartSpan:g,idleTimeout:_,finalTimeout:y,childSpanTimeout:v,markBackgroundSpan:b,traceFetch:S,traceXHR:E,trackFetchStreamPerformance:T,shouldCreateSpanForRequest:w,enableHTTPTimings:R,ignoreResourceSpans:I,ignorePerformanceApiSpans:C,instrumentPageLoad:A,instrumentNavigation:k,detectRedirects:N,linkPreviousTrace:O,consistentTraceSampling:x,enableReportPageLoaded:P,onRequestSpanStart:M,onRequestSpanEnd:L}={...aI,...e},D=(a=tA.navigator,!!a?.userAgent&&aR.test(a.userAgent));function U(e,r,a=!0){let s="pageload"===r.op,l=r.name,u=g?g(r):r,c=u.attributes||{};if(l!==u.name&&(c[eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]="custom",u.attributes=c),!a){let e=(0,eO.dateTimestampInSeconds)();(0,r9.startInactiveSpan)({...u,startTime:e}).end(e);return}i.name=u.name,i.source=c[eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];let d=nt(u,{idleTimeout:_,finalTimeout:y,childSpanTimeout:v,disableAutoFinish:s,beforeSpanEnd:r=>{t?.(),function(e,t){var r,n;let a=n1(),i=(0,eO.browserPerformanceTimeOrigin)();if(!a?.getEntries||!i)return;let o=n2(i),s=a.getEntries(),{op:l,start_timestamp:u}=(0,eL.spanToJSON)(e);s.slice(an).forEach(r=>{let n=n2(r.startTime),a=n2(Math.max(0,r.duration));if("navigation"!==l||!u||!(o+n{ai(i,s,e,c)}),ai(i,s,"secureConnection",c,"TLS/SSL"),ai(i,s,"fetch",c,"cache"),ai(i,s,"domainLookup",c,"DNS"),d=i,p=s,h=(f=c)+n2(p.requestStart),m=f+n2(p.responseEnd),g=f+n2(p.responseStart),p.responseEnd&&(nZ(d,h,m,{op:"browser.request",name:p.name,attributes:{[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.ui.browser.metrics"}}),nZ(d,g,m,{op:"browser.response",name:p.name,attributes:{[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.ui.browser.metrics"}}));break;case"mark":case"paint":case"measure":{!function(e,t,r,n,a,i){if(function(e){if(e?.entryType==="measure")try{return"Components ⚛"===e.detail.devtools.track}catch{return}}(t)||["mark","measure"].includes(t.entryType)&&(0,ei.stringMatchesSomePattern)(t.name,i))return;let o=nl(!1),s=a+Math.max(r,n2(o?o.requestStart:0)),l=a+r,u=l+n,c={[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.resource.browser.metrics"};s!==l&&(c["sentry.browser.measure_happened_before_request"]=!0,c["sentry.browser.measure_start_time"]=s),function(e,t){try{let r=t.detail;if(!r)return;if("object"==typeof r){for(let[t,n]of Object.entries(r))if(n&&(0,eA.isPrimitive)(n))e[`sentry.browser.measure.detail.${t}`]=n;else if(void 0!==n)try{e[`sentry.browser.measure.detail.${t}`]=JSON.stringify(n)}catch{}return}if((0,eA.isPrimitive)(r)){e["sentry.browser.measure.detail"]=r;return}try{e["sentry.browser.measure.detail"]=JSON.stringify(r)}catch{}}catch{}}(c,t),s<=u&&nZ(e,s,u,{name:t.name,op:t.entryType,attributes:c})}(e,r,n,a,o,t.ignorePerformanceApiSpans);let i=nm(),s=r.startTime{let r=s[e];null!=r&&("number"==typeof r&&r<0x7fffffff||"string"==typeof r)&&(l[t]=r)});let p={...c,...ar(t)},f=i+n;nZ(e,f,f+a,{name:r.replace(t3.location.origin,""),op:u,attributes:p})}(e,r,r.name,n,a,o,t.ignoreResourceSpans)}}),an=Math.max(s.length-1,0),function(e){let t=t3.navigator;if(!t)return;let r=t.connection;r&&(r.effectiveType&&e.setAttribute("effectiveConnectionType",r.effectiveType),r.type&&e.setAttribute("connectionType",r.type),nQ(r.rtt)&&(aa["connection.rtt"]={value:r.rtt,unit:"millisecond"})),nQ(t.deviceMemory)&&e.setAttribute("deviceMemory",`${t.deviceMemory} GB`),nQ(t.hardwareConcurrency)&&e.setAttribute("hardwareConcurrency",String(t.hardwareConcurrency))}(e),"pageload"===l&&(function(e){let t=nl(!1);if(!t)return;let{responseStart:r,requestStart:n}=t;n<=r&&(e["ttfb.requestTime"]={value:r-n,unit:"millisecond"})}(aa),t.recordClsOnPageloadSpan||delete aa.cls,t.recordLcpOnPageloadSpan||delete aa.lcp,Object.entries(aa).forEach(([e,t])=>{(0,ae.setMeasurement)(e,t.value,t.unit)}),e.setAttribute("performance.timeOrigin",o),e.setAttribute("performance.activationStart",nu()),r=e,n=t,p&&n.recordLcpOnPageloadSpan&&(p.element&&r.setAttribute("lcp.element",(0,tC.htmlTreeAsString)(p.element)),p.id&&r.setAttribute("lcp.id",p.id),p.url&&r.setAttribute("lcp.url",p.url.trim().slice(0,200)),null!=p.loadTime&&r.setAttribute("lcp.loadTime",p.loadTime),null!=p.renderTime&&r.setAttribute("lcp.renderTime",p.renderTime),r.setAttribute("lcp.size",p.size)),f?.sources&&n.recordClsOnPageloadSpan&&f.sources.forEach((e,t)=>r.setAttribute(`cls.source.${t+1}`,(0,tC.htmlTreeAsString)(e.node)))),p=void 0,f=void 0,aa={}}(r,{recordClsOnPageloadSpan:!h,recordLcpOnPageloadSpan:!m,ignoreResourceSpans:I,ignorePerformanceApiSpans:C}),aP(e,void 0);let a=(0,X.getCurrentScope)(),i=a.getPropagationContext();a.setPropagationContext({...i,traceId:d.spanContext().traceId,sampled:(0,eL.spanIsSampled)(d),dsc:(0,eM.getDynamicSamplingContextFromSpan)(r)}),s&&(n=void 0)},trimIdleSpanEndTimestamp:!P});function b(){o&&["interactive","complete"].includes(o.readyState)&&e.emit("idleSpanEnableAutoFinish",d)}s&&P&&(n=d),aP(e,d),s&&!P&&o&&(o.addEventListener("readystatechange",()=>{b()}),b())}return{name:"BrowserTracing",setup(e){if(D){rr&&z.debug.log("[Tracing] Skipping browserTracingIntegration setup for bot user agent.");return}if(nn(),t=function({recordClsStandaloneSpans:e,recordLcpStandaloneSpans:t,client:r}){let n=n1();if(n&&(0,eO.browserPerformanceTimeOrigin)()){n.mark&&t3.performance.mark("sentry-tracing-init");let a=t?function(e){let t,r=0;if(!n3("largest-contentful-paint"))return;let n=nF(({metric:e})=>{let n=e.entries[e.entries.length-1];n&&(r=e.value,t=n)},!0);n5(e,(e,a)=>{var i,o,s,l;let u,c,d,p,f;i=r,o=t,s=a,l=e,rG&&z.debug.log(`Sending LCP span (${i})`),u=n2(((0,eO.browserPerformanceTimeOrigin)()||0)+(o?.startTime||0)),c=(0,X.getCurrentScope)().getScopeData().transactionName,d=o?(0,tC.htmlTreeAsString)(o.element):"Largest contentful paint",p={[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.http.browser.lcp",[eh.SEMANTIC_ATTRIBUTE_SENTRY_OP]:"ui.webvital.lcp",[eh.SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME]:0,"sentry.pageload.span_id":s,"sentry.report_event":l},o&&(o.element&&(p["lcp.element"]=(0,tC.htmlTreeAsString)(o.element)),o.id&&(p["lcp.id"]=o.id),o.url&&(p["lcp.url"]=o.url),null!=o.loadTime&&(p["lcp.loadTime"]=o.loadTime),null!=o.renderTime&&(p["lcp.renderTime"]=o.renderTime),null!=o.size&&(p["lcp.size"]=o.size)),(f=n0({name:d,transaction:c,attributes:p,startTime:u}))&&(f.addEvent("lcp",{[eh.SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT]:"millisecond",[eh.SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE]:i}),f.end(u)),n()})}(r):nF(({metric:e})=>{let t=e.entries[e.entries.length-1];t&&(aa.lcp={value:e.value,unit:"millisecond"},p=t)},!0),i=nV("ttfb",({metric:e})=>{e.entries[e.entries.length-1]&&(aa.ttfb={value:e.value,unit:"millisecond"})},nY,c),o=e?function(e){let t,r=0;if(!n3("layout-shift"))return;let n=n$(({metric:e})=>{let n=e.entries[e.entries.length-1];n&&(r=e.value,t=n)},!0);n5(e,(e,a)=>{var i,o,s,l;let u,c,d,p,f;i=r,o=t,s=a,l=e,rG&&z.debug.log(`Sending CLS span (${i})`),u=o?n2(((0,eO.browserPerformanceTimeOrigin)()||0)+o.startTime):(0,eO.timestampInSeconds)(),c=(0,X.getCurrentScope)().getScopeData().transactionName,d=o?(0,tC.htmlTreeAsString)(o.sources[0]?.node):"Layout shift",p={[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.http.browser.cls",[eh.SEMANTIC_ATTRIBUTE_SENTRY_OP]:"ui.webvital.cls",[eh.SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME]:0,"sentry.pageload.span_id":s,"sentry.report_event":l},o?.sources&&o.sources.forEach((e,t)=>{p[`cls.source.${t+1}`]=(0,tC.htmlTreeAsString)(e.node)}),(f=n0({name:d,transaction:c,attributes:p,startTime:u}))&&(f.addEvent("cls",{[eh.SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT]:"",[eh.SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE]:i}),f.end(u)),n()})}(r):n$(({metric:e})=>{let t=e.entries[e.entries.length-1];t&&(aa.cls={value:e.value,unit:""},f=t)},!0);return()=>{a?.(),i(),o?.()}}return()=>void 0}({recordClsStandaloneSpans:h||!1,recordLcpStandaloneSpans:m||!1,client:e}),s&&function(){if(n1()&&(0,eO.browserPerformanceTimeOrigin)()){let e=nH(n9);()=>{e()}}}(),u&&Y.GLOBAL_OBJ.PerformanceObserver&&PerformanceObserver.supportedEntryTypes?.includes("long-animation-frame")?new PerformanceObserver(e=>{let t=(0,eL.getActiveSpan)();if(t)for(let r of e.getEntries()){if(!r.scripts[0])continue;let e=n2((0,eO.browserPerformanceTimeOrigin)()+r.startTime),{start_timestamp:n,op:a}=(0,eL.spanToJSON)(t);if("navigation"===a&&n&&e{let t=(0,eL.getActiveSpan)();if(!t)return;let{op:r,start_timestamp:n}=(0,eL.spanToJSON)(t);for(let a of e){let e=n2((0,eO.browserPerformanceTimeOrigin)()+a.startTime),i=n2(a.duration);"navigation"===r&&n&&e{let t=(0,eL.getActiveSpan)();if(t){for(let r of e)if("click"===r.name){let e=n2((0,eO.browserPerformanceTimeOrigin)()+r.startTime),n=n2(r.duration),a={name:(0,tC.htmlTreeAsString)(r.target),op:`ui.interaction.${r.name}`,startTime:e,attributes:{[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.ui.browser.metrics"}},i=(0,tC.getComponentName)(r.target);i&&(a.attributes["ui.component_name"]=i),nZ(t,e,e+n,a)}}}),N&&o){let e=()=>{r=(0,eO.timestampInSeconds)()};addEventListener("click",e,{capture:!0}),addEventListener("keydown",e,{capture:!0,passive:!0})}function a(){let t=e[ax];t&&!(0,eL.spanToJSON)(t).timestamp&&(rr&&z.debug.log(`[Tracing] Finishing current active span with op: ${(0,eL.spanToJSON)(t).op}`),t.setAttribute(eh.SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON,"cancelled"),t.end())}e.on("startNavigationSpan",(t,n)=>{if((0,X.getClient)()!==e)return;if(n?.isRedirect){rr&&z.debug.warn("[Tracing] Detected redirect, navigation span will not be the root span, but a child span."),U(e,{op:"navigation.redirect",...t},!1);return}r=void 0,a(),(0,X.getIsolationScope)().setPropagationContext({traceId:(0,na.generateTraceId)(),sampleRand:Math.random(),propagationSpanId:(0,r4.hasSpansEnabled)()?void 0:(0,na.generateSpanId)()});let i=(0,X.getCurrentScope)();i.setPropagationContext({traceId:(0,na.generateTraceId)(),sampleRand:Math.random(),propagationSpanId:(0,r4.hasSpansEnabled)()?void 0:(0,na.generateSpanId)()}),i.setSDKProcessingMetadata({normalizedRequest:void 0}),U(e,{op:"navigation",...t,parentSpan:null,forceTransaction:!0})}),e.on("startPageLoadSpan",(t,r={})=>{if((0,X.getClient)()!==e)return;a();let n=r.sentryTrace||aN("sentry-trace")||aO("sentry-trace"),i=r.baggage||aN("baggage")||aO("baggage"),o=(0,ni.propagationContextFromHeaders)(n,i),s=(0,X.getCurrentScope)();s.setPropagationContext(o),(0,r4.hasSpansEnabled)()||(s.getPropagationContext().propagationSpanId=(0,na.generateSpanId)()),s.setSDKProcessingMetadata({normalizedRequest:tO()}),U(e,{op:"pageload",...t})}),e.on("endPageloadSpan",()=>{P&&n&&(n.setAttribute(eh.SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON,"reportPageLoaded"),n.end())})},afterAllSetup(e){var t,n,a,o,l;let u;if(D)return;let c=(0,tC.getLocationHref)();if("off"!==O&&function(e,{linkPreviousTrace:t,consistentTraceSampling:r}){let n="session-storage"===t,a=n?function(){try{let e=tA.sessionStorage?.getItem(ao);return JSON.parse(e)}catch{return}}():void 0;e.on("spanStart",e=>{if((0,eL.getRootSpan)(e)!==e)return;let t=(0,X.getCurrentScope)().getPropagationContext();a=function(e,t,r){let n=(0,eL.spanToJSON)(t),a={spanContext:t.spanContext(),startTimestamp:n.start_timestamp,sampleRate:function(){try{return Number(r.dsc?.sample_rate)??Number(n.data?.[eh.SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE])}catch{return 0}}(),sampleRand:r.sampleRand};if(!e)return a;let i=e.spanContext;return i.traceId===n.trace_id?e:(Date.now()/1e3-e.startTimestamp<=3600&&(rr&&z.debug.log(`Adding previous_trace \`${JSON.stringify(i)}\` link to span \`${JSON.stringify({op:n.op,...t.spanContext()})}\``),t.addLink({context:i,attributes:{[eh.SEMANTIC_LINK_ATTRIBUTE_LINK_TYPE]:"previous_trace"}}),t.setAttribute("sentry.previous_trace",`${i.traceId}-${i.spanId}-${+!!as(i)}`)),a)}(a,e,t),n&&function(e){try{tA.sessionStorage.setItem(ao,JSON.stringify(e))}catch(e){rr&&z.debug.warn("Could not store previous trace in sessionStorage",e)}}(a)});let i=!0;r&&e.on("beforeSampling",e=>{if(!a)return;let t=(0,X.getCurrentScope)(),r=t.getPropagationContext();if(i&&r.parentSpanId){i=!1;return}t.setPropagationContext({...r,dsc:{...r.dsc,sample_rate:String(a.sampleRate),sampled:String(as(a.spanContext))},sampleRand:a.sampleRand}),e.parentSampled=as(a.spanContext),e.parentSampleRate=a.sampleRate,e.spanAttributes={...e.spanAttributes,[eh.SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE]:a.sampleRate}})}(e,{linkPreviousTrace:O,consistentTraceSampling:x}),tA.location){if(A){let t=(0,eO.browserPerformanceTimeOrigin)();aA(e,{name:tA.location.pathname,startTime:t?t/1e3:void 0,attributes:{[eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:"url",[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.pageload.browser"}})}k&&re(({to:t,from:n})=>{var a,i;let o,s;if(void 0===n&&c?.indexOf(t)!==-1){c=void 0;return}c=void 0;let l=tZ(t),u=e[ax],d=u&&N&&(a=u,i=r,o=(0,eL.spanToJSON)(a),!((s=(0,eO.dateTimestampInSeconds)())-o.start_timestamp>1.5)&&(!i||!(s-i<=1.5)));ak(e,{name:l?.pathname||tA.location.pathname,attributes:{[eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:"url",[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.navigation.browser"}},{url:t,isRedirect:d})})}b&&(tA.document?tA.document.addEventListener("visibilitychange",()=>{let e=(0,eL.getActiveSpan)();if(!e)return;let t=(0,eL.getRootSpan)(e);if(tA.document.hidden&&t){let e="cancelled",{op:r,status:n}=(0,eL.spanToJSON)(t);rr&&z.debug.log(`[Tracing] Transaction: ${e} -> since tab moved to the background, op: ${r}`),n||t.setStatus({code:r7.SPAN_STATUS_ERROR,message:e}),t.setAttribute("sentry.cancellation_reason","document.hidden"),t.end()}}):rr&&z.debug.warn("[Tracing] Could not set up background tab detection due to lack of global document")),d&&(t=e,n=_,a=y,o=v,l=i,tA.document&&addEventListener("click",()=>{let e="ui.action.click",r=function(e){return e[ax]}(t);if(r&&["navigation","pageload"].includes((0,eL.spanToJSON)(r).op)){rr&&z.debug.warn(`[Tracing] Did not create ${e} span because a pageload or navigation span is in progress.`);return}if(u&&(u.setAttribute(eh.SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON,"interactionInterrupted"),u.end(),u=void 0),!l.name){rr&&z.debug.warn(`[Tracing] Did not create ${e} transaction because _latestRouteName is missing.`);return}u=nt({name:l.name,op:e,attributes:{[eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:l.source||"url"}},{idleTimeout:n,finalTimeout:a,childSpanTimeout:o})},{capture:!0})),s&&function(){let e=Object.keys(n7);function t(e){let t=e.target;if(!t)return;let r=(0,tC.htmlTreeAsString)(t),n=Math.round(e.timeStamp);if(n8.set(n,r),n8.size>50){let e=n8.keys().next().value;void 0!==e&&n8.delete(e)}}no()&&e.forEach(e=>{t3.addEventListener(e,t,{capture:!0,passive:!0})});let r=({entries:e})=>{let t=(0,eL.getActiveSpan)(),r=t&&(0,eL.getRootSpan)(t);e.forEach(e=>{if(!("duration"in e))return;let t=e.interactionId;if(null==t||n6.has(t))return;let n=e.target?(0,tC.htmlTreeAsString)(e.target):function(e){let t=Math.round(e.startTime),r=n8.get(t);if(!r)for(let e=-5;e<=5;e++){let n=n8.get(t+e);if(n){r=n;break}}return r||""}(e);if(n4.length>10){let e=n4.shift();n6.delete(e)}n4.push(t),n6.set(t,{span:r,elementName:n})})};nW("event",r),nW("first-input",r)}(),aT(e,{traceFetch:S,traceXHR:E,trackFetchStreamPerformance:T,tracePropagationTargets:e.getOptions().tracePropagationTargets,shouldCreateSpanForRequest:w,enableHTTPTimings:R,onRequestSpanStart:M,onRequestSpanEnd:L})}}};function aA(e,t,r){e.emit("startPageLoadSpan",t,r),(0,X.getCurrentScope)().setTransactionName(t.name);let n=e[ax];return n&&e.emit("afterStartPageLoadSpan",n),n}function ak(e,t,r){let{url:n,isRedirect:a}=r||{};e.emit("beforeStartNavigationSpan",t,{isRedirect:a}),e.emit("startNavigationSpan",t,{isRedirect:a});let i=(0,X.getCurrentScope)();return i.setTransactionName(t.name),n&&!a&&i.setSDKProcessingMetadata({normalizedRequest:{...tO(),url:n}}),e[ax]}function aN(e){let t=tA.document,r=t?.querySelector(`meta[name=${e}]`);return r?.getAttribute("content")||void 0}function aO(e){let t=tA.performance?.getEntriesByType?.("navigation")[0],r=t?.serverTiming?.find(t=>t.name===e);return r?.description}let ax="_sentry_idleSpan";function aP(e,t){(0,ed.addNonEnumerableProperty)(e,ax,t)}let aM=Y.GLOBAL_OBJ,aL=null,aD=new Map,aU=new Map;function aB(e){let t=e.split("/").filter(Boolean),r=0;for(let e of t)if(e.startsWith(":")){let t=e.substring(1);t.endsWith("*?")?r+=1e3:t.endsWith("*")?r+=100:r+=10}return t.length>0&&(r+=1/t.length),r}function aj(e){if(aD.has(e))return aD.get(e)??null;try{let t=new RegExp(e);return aD.set(e,t),t}catch(t){return r2&&z.debug.warn("Could not compile regex",{regexString:e,error:t}),null}}function a$(){if(!aM?._sentryRouteManifest||"string"!=typeof aM._sentryRouteManifest)return null;let e=aM._sentryRouteManifest;if(aL&&A===e)return aL;aD.clear(),aU.clear();let t={staticRoutes:[],dynamicRoutes:[],isrRoutes:[]};try{if(t=JSON.parse(e),!Array.isArray(t.staticRoutes)||!Array.isArray(t.dynamicRoutes))return null;return aL=t,A=e,t}catch{return r2&&z.debug.warn("Could not extract route manifest"),null}}let aF=e=>{let t=a$();if(!t)return;let r=e.length>1&&e.endsWith("/")?e.slice(0,-1):e;if(aU.has(r))return aU.get(r);let{staticRoutes:n,dynamicRoutes:a}=t;if(!Array.isArray(n)||!Array.isArray(a))return;let i=(function(e,t,r){let n=[];if(t.some(t=>t.path===e))return n;for(let t of r)if(t.regex){let r=aj(t.regex);r?.test(e)&&n.push(t.path)}if(!e.startsWith("/:")){for(let t of r)if(t.hasOptionalPrefix&&t.regex){let r="/"===e?"/SENTRY_OPTIONAL_PREFIX":`/SENTRY_OPTIONAL_PREFIX${e}`,a=aj(t.regex);a?.test(r)&&n.push(t.path)}}return n})(r,n,a).sort((e,t)=>aB(e)-aB(t))[0];return aU.set(r,i),i};function aH(e){return e.length>1&&e.endsWith("/")?e.slice(0,-1):e}let aW="incomplete-app-router-transaction",aq="router-patch",aG={current:void 0},az=Y.GLOBAL_OBJ,aY=Y.GLOBAL_OBJ;function aJ(e){try{return new URL(e,"http://example.com/").pathname}catch{return"/"}}let aV=new WeakSet;function aK(e,t,r){aV.has(t)||(aV.add(t),["back","forward","push","replace"].forEach(n=>{t?.[n]&&(t[n]=new Proxy(t[n],{apply(t,a,i){if("router-patch"!==aq)return t.apply(a,i);let o=aW,s={[eh.SEMANTIC_ATTRIBUTE_SENTRY_OP]:"navigation",[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.navigation.nextjs.app_router_instrumentation",[eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:"url"},l=i[0],u=G.default.env._sentryBasePath??aY._sentryBasePath,c=u&&"string"==typeof l&&!l.startsWith(u)?`${u}${l}`:l;"push"===n?(o=aH(aJ(c)),s["navigation.type"]="router.push"):"replace"===n?(o=aH(aJ(c)),s["navigation.type"]="router.replace"):"back"===n?s["navigation.type"]="router.back":"forward"===n&&(s["navigation.type"]="router.forward");let d=aF(o);return r.current=ak(e,{name:d??o,attributes:{...s,[eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:d?"route":"url"}}),t.apply(a,i)}}))}))}function aX(e,t){k&&k(e,t)}var aQ=e.i(896389);let aZ=aQ.default.events?aQ.default:aQ.default.default;function a0(e={}){let t=aC({...e,instrumentNavigation:!1,instrumentPageLoad:!1,onRequestSpanStart(...t){let[r,{headers:n}]=t;return n?.get("next-router-prefetch")&&r?.setAttribute("http.request.prefetch",!0),e.onRequestSpanStart?.(...t)}}),{instrumentPageLoad:r=!0,instrumentNavigation:n=!0}=e;return{...t,afterAllSetup(e){n&&function(e){if(tA.document.getElementById("__NEXT_DATA__"))aZ.events.on("routeChangeStart",t=>{let r,n,a=t1(t),i=function(e){let t=tA.__BUILD_MANIFEST?.sortedPages;if(t)return t.find(t=>{let r,n,a,i=(r=t.split("/"),n="",r[r.length-1]?.match(/^\[\[\.\.\..+\]\]$/)&&(r.pop(),n="(?:/(.+?))?"),a=r.map(e=>e.replace(/^\[\.\.\..+\]$/,"(.+?)").replace(/^\[.*\]$/,"([^/]+?)")).join("/"),RegExp(`^${a}${n}(?:/)?$`));return e.match(i)})}(a);i?(r=i,n="route"):(r=a,n="url"),ak(e,{name:r,attributes:{[eh.SEMANTIC_ATTRIBUTE_SENTRY_OP]:"navigation",[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.navigation.nextjs.pages_router_instrumentation",[eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:n}})});else{let t,r,n;k=(t,r)=>{let n=G.default.env._sentryBasePath??aY._sentryBasePath,a=aH(new URL(n&&!t.startsWith(n)?`${n}${t}`:t,tA.location.href).pathname),i=aF(a),o=i??a;"router-patch"===aq&&(aq="transition-start-hook");let s=aG.current;s?(s.updateName(o),s.setAttributes({"navigation.type":`router.${r}`,[eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:i?"route":"url"}),aG.current=void 0):ak(e,{name:o,attributes:{[eh.SEMANTIC_ATTRIBUTE_SENTRY_OP]:"navigation",[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.navigation.nextjs.app_router_instrumentation",[eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:i?"route":"url","navigation.type":`router.${r}`}})},tA.addEventListener("popstate",()=>{let t=aH(tA.location.pathname),r=aF(t);aG.current?.isRecording()?(aG.current.updateName(r??t),aG.current.setAttribute(eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,r?"route":"url")):aG.current=ak(e,{name:r??t,attributes:{[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.navigation.nextjs.app_router_instrumentation",[eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:r?"route":"url","navigation.type":"browser.popstate"}})}),t=!1,r=0,n=setInterval(()=>{r++;let a=az?.next?.router??az?.nd?.router;t||r>500?clearInterval(n):a&&(clearInterval(n),t=!0,aK(e,a,aG),["nd","next"].forEach(t=>{let r=az[t];r&&(az[t]=new Proxy(r,{set:(t,r,n)=>("router"===r&&"object"==typeof n&&null!==n&&aK(e,n,aG),t[r]=n,!0)}))}))},20)}}(e),t.afterAllSetup(e),r&&function(e){if(tA.document.getElementById("__NEXT_DATA__"))!function(e){let{route:t,params:r,sentryTrace:n,baggage:a}=function(){let e,t=tA.document.getElementById("__NEXT_DATA__");if(t?.innerHTML)try{e=JSON.parse(t.innerHTML)}catch{r2&&z.debug.warn("Could not extract __NEXT_DATA__")}if(!e)return{};let r={},{page:n,query:a,props:i}=e;return r.route=n,r.params=a,i?.pageProps&&(r.sentryTrace=i.pageProps._sentryTraceData,r.baggage=i.pageProps._sentryBaggage),r}(),i=(0,al.parseBaggageHeader)(a),o=t||tA.location.pathname;i?.["sentry-transaction"]&&"/_error"===o&&(o=(o=i["sentry-transaction"]).replace(/^(GET|POST|PUT|DELETE|PATCH|HEAD|OPTIONS|TRACE|CONNECT)\s+/i,""));let s=(0,eO.browserPerformanceTimeOrigin)();aA(e,{name:o,startTime:s?s/1e3:void 0,attributes:{[eh.SEMANTIC_ATTRIBUTE_SENTRY_OP]:"pageload",[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.pageload.nextjs.pages_router_instrumentation",[eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:t?"route":"url",...r&&e.getOptions().sendDefaultPii&&{...r}}},{sentryTrace:n,baggage:a})}(e);else{let t,r,n;r=aF(t=aH(tA.location.pathname)),aA(e,{name:r??t,startTime:(n=(0,eO.browserPerformanceTimeOrigin)())?n/1e3:void 0,attributes:{[eh.SEMANTIC_ATTRIBUTE_SENTRY_OP]:"pageload",[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.pageload.nextjs.app_router_instrumentation",[eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:r?"route":"url"}})}}(e)}}}let a1=/^(\S+:\\|\/?)([\s\S]*?)((?:\.{1,2}|[^/\\]+?|)(\.[^./\\]*|))(?:[/\\]*)$/;function a2(...e){let t="",r=!1;for(let n=e.length-1;n>=-1&&!r;n--){let a=n>=0?e[n]:"/";a&&(t=`${a}/${t}`,r="/"===a.charAt(0))}return t=(function(e,t){let r=0;for(let t=e.length-1;t>=0;t--){let n=e[t];"."===n?e.splice(t,1):".."===n?(e.splice(t,1),r++):r&&(e.splice(t,1),r--)}if(t)for(;r--;)e.unshift("..");return e})(t.split("/").filter(e=>!!e),!r).join("/"),(r?"/":"")+t||"."}function a3(e){let t=0;for(;t=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}let a5=(e={})=>{let t=e.root,r=e.prefix||"app:///",n="window"in Y.GLOBAL_OBJ&&!!Y.GLOBAL_OBJ.window,a=e.iteratee||function({isBrowser:e,root:t,prefix:r}){return n=>{if(!n.filename)return n;let a=/^[a-zA-Z]:\\/.test(n.filename)||n.filename.includes("\\")&&!n.filename.includes("/"),i=/^\//.test(n.filename);if(e){if(t){let e=n.filename;0===e.indexOf(t)&&(n.filename=e.replace(t,r))}}else if(a||i){let e,i,o=a?n.filename.replace(/^[a-zA-Z]:/,"").replace(/\\/g,"/"):n.filename,s=t?function(e,t){e=a2(e).slice(1),t=a2(t).slice(1);let r=a3(e.split("/")),n=a3(t.split("/")),a=Math.min(r.length,n.length),i=a;for(let e=0;e1024?`${o.slice(-1024)}`:o,(i=a1.exec(e))?i.slice(1):[])[2]||"";n.filename=`${r}${s}`}return n}}({isBrowser:n,root:t,prefix:r});return{name:"RewriteFrames",processEvent(e){let t=e;return e.exception&&Array.isArray(e.exception.values)&&(t=function(e){try{return{...e,exception:{...e.exception,values:e.exception.values.map(e=>{var t;return{...e,...e.stacktrace&&{stacktrace:{...t=e.stacktrace,frames:t?.frames?.map(e=>a(e))}}}})}}}catch{return e}}(t)),t}}},a4=new class{constructor(e){this._maxSize=e,this._cache=new Map}get size(){return this._cache.size}get(e){let t=this._cache.get(e);if(void 0!==t)return this._cache.delete(e),this._cache.set(e,t),t}set(e,t){if(this._cache.size>=this._maxSize){let e=this._cache.keys().next().value;this._cache.delete(e)}this._cache.set(e,t)}remove(e){let t=this._cache.get(e);return t&&this._cache.delete(e),t}clear(){this._cache.clear()}keys(){return Array.from(this._cache.keys())}values(){let e=[];return this._cache.forEach(t=>e.push(t)),e}}(100),a6=Y.GLOBAL_OBJ,a8=!1,a7=Y.GLOBAL_OBJ;function a9(e){let t,r,n,a,i,o;a8&&(0,z.consoleSandbox)(()=>{console.warn("[@sentry/nextjs] You are calling `Sentry.init()` more than once on the client. This can happen if you have both a `sentry.client.config.ts` and a `instrumentation-client.ts` file with `Sentry.init()` calls. It is recommended to call `Sentry.init()` once in `instrumentation-client.ts`.")}),a8=!0,!r2&&e.debug&&(0,z.consoleSandbox)(()=>{console.warn("[@sentry/nextjs] You have enabled `debug: true`, but Sentry debug logging was removed from your bundle (likely via `withSentryConfig({ disableLogger: true })` / `webpack.treeshake.removeDebugLogging: true`). Set that option to `false` to see Sentry debug output.")}),("u"({...a5({iteratee:a=>{if(n){let r="u">typeof window&&window.location?window.location.origin:"";if(a.filename?.startsWith(r)&&!a.filename.endsWith(".js"))return a;if(e)a.filename?.startsWith(e)&&(a.filename=a.filename.replace(e,"app://"));else if(t)try{let{origin:e}=new URL(a.filename);e===r&&(a.filename=a.filename?.replace(e,"app://").replace(t,""))}catch{}}else try{let{origin:e}=new URL(a.filename);a.filename=a.filename?.replace(e,"app://").replace(r,"")}catch{}return n?(a.filename?.includes("/_next")&&(a.filename=decodeURI(a.filename)),a.filename?.match(/\/_next\/static\/chunks\/(main-|main-app-|polyfills-|webpack-|framework-|framework\.)[0-9a-f]+\.js$/)&&(a.in_app=!1)):(a.filename?.startsWith("app:///_next")&&(a.filename=decodeURI(a.filename)),a.filename?.match(/^app:\/\/\/_next\/static\/chunks\/(main-|main-app-|polyfills-|webpack-|framework-|framework\.)[0-9a-f]+\.js$/)&&(a.in_app=!1)),a}}),name:"NextjsClientStackFrameNormalization"}))({assetPrefix:a,basePath:i,rewriteFramesAssetPrefixPath:n,experimentalThirdPartyOriginStackFrames:o})),r),release:"66d0d6a6e06671f2575ec88a95202d81fe7d0e81",...e};!function(e){let t=G.default.env._sentryRewritesTunnelPath||a6._sentryRewritesTunnelPath;if(t&&e.dsn){let r=(0,eS.dsnFromString)(e.dsn);if(!r)return;let n=r.host.match(/^o(\d+)\.ingest(?:\.([a-z]{2}))?\.sentry\.io$/);if(n){let a=n[1],i=n[2],o=`${t}?o=${a}&p=${r.projectId}`;i&&(o+=`&r=${i}`),e.tunnel=o,r2&&z.debug.log(`Tunneling events to "${o}"`)}else r2&&z.debug.warn("Provided DSN is not a Sentry SaaS DSN. Will not tunnel events.")}}(s),V(s,"nextjs",["nextjs","react"]);let l=r1(s),u=e=>"transaction"===e.type&&"/404"===e.transaction?null:e;u.id="NextClient404Filter",(0,K.addEventProcessor)(u);let c=e=>"transaction"===e.type&&e.transaction===aW?null:e;c.id="IncompleteTransactionFilter",(0,K.addEventProcessor)(c);let d=(e,t)=>r5(t?.originalException)||e.exception?.values?.[0]?.value==="NEXT_REDIRECT"?null:e;d.id="NextRedirectErrorFilter",(0,K.addEventProcessor)(d);try{(0,X.getGlobalScope)().setTag("turbopack",!0)}catch{}return l}function ie(e){return e}function it(e,t={},r=(0,X.getCurrentScope)()){let{message:n,name:a,email:i,url:o,source:s,associatedEventId:l,tags:u}=e,c={contexts:{feedback:{contact_email:i,name:a,message:n,url:o,source:s,associated_event_id:l}},type:"feedback",level:"info",tags:u},d=r?.getClient()||(0,X.getClient)();return d&&d.emit("beforeSendFeedback",c,t),r.captureEvent(c,t)}e.s([],955364),e.i(955364),e.s([],227209),e.i(227209);let ir=Y.GLOBAL_OBJ,ia=ir.document,ii=ir.navigator,io="Report a Bug",is="Cancel",il="Send Bug Report",iu="Confirm",ic="Report a Bug",id="your.email@example.org",ip="Email",ih="What's the bug? What did you expect?",im="Description",ig="Your Name",i_="Name",iy="Thank you for your report!",iv="(required)",ib="Add a screenshot",iS="Remove screenshot",iE="Highlight",iT="Hide",iw="Remove",iR=(e,t={includeReplay:!0})=>{if(!e.message)throw Error("Unable to submit feedback with empty message");let r=(0,X.getClient)();if(!r)throw Error("No client setup, cannot send feedback.");e.tags&&Object.keys(e.tags).length&&(0,X.getCurrentScope)().setTags(e.tags);let n=it({source:"api",url:(0,tC.getLocationHref)(),...e},t);return new Promise((e,t)=>{let a=setTimeout(()=>t("Unable to determine if Feedback was correctly sent."),3e4),i=r.on("afterSendEvent",(r,o)=>{if(r.event_id===n)return(clearTimeout(a),i(),o?.statusCode&&o.statusCode>=200&&o.statusCode<300)?e(n):o?.statusCode===403?t("Unable to send feedback. This could be because this domain is not in your list of allowed domains."):t("Unable to send feedback. This could be because of network issues, or because you are using an ad-blocker.")})})},iI="u"{t.onFormOpen?.(),e.onFormOpen?.()},onFormClose:()=>{t.onFormClose?.(),e.onFormClose?.()},onSubmitSuccess:(r,n)=>{t.onSubmitSuccess?.(r,n),e.onSubmitSuccess?.(r,n)},onSubmitError:r=>{t.onSubmitError?.(r),e.onSubmitError?.(r)},onFormSubmitted:()=>{t.onFormSubmitted?.(),e.onFormSubmitted?.()},themeDark:{...e.themeDark,...t.themeDark},themeLight:{...e.themeLight,...t.themeLight}}}function iA(e,t){return Object.entries(t).forEach(([t,r])=>{e.setAttributeNS(null,t,r)}),e}let ik="rgba(88, 74, 192, 1)",iN={foreground:"#2b2233",background:"#ffffff",accentForeground:"white",accentBackground:ik,successColor:"#268d75",errorColor:"#df3338",border:"1.5px solid rgba(41, 35, 47, 0.13)",boxShadow:"0px 4px 24px 0px rgba(43, 34, 51, 0.12)",outline:"1px auto var(--accent-background)",interactiveFilter:"brightness(95%)"},iO={foreground:"#ebe6ef",background:"#29232f",accentForeground:"white",accentBackground:ik,successColor:"#2da98c",errorColor:"#f55459",border:"1.5px solid rgba(235, 230, 239, 0.15)",boxShadow:"0px 4px 24px 0px rgba(43, 34, 51, 0.12)",outline:"1px auto var(--accent-background)",interactiveFilter:"brightness(150%)"};function ix(e){return` --foreground: ${e.foreground}; --background: ${e.background}; --accent-foreground: ${e.accentForeground}; @@ -493,4 +493,4 @@ ${e.stack}`:"unknown"}}}}})(t,e.saveZodIssuesAsAttachment,r,n)}},ut={startProfil useEffect: ${E}. useLocation: ${T}. useNavigationType: ${w}. createRoutesFromChildren: ${R}. matchRoutes: ${I}.`),e;let r=r=>{let n=r0.useRef(!0),a=T(),i=w();return E(()=>{let e=R(r.children);n.current?(hz(e),hY({activeRootSpan:hS(),location:a,routes:e,allRoutes:Array.from(hA)}),n.current=!1):hG({location:a,routes:e,navigationType:i,version:t,allRoutes:Array.from(hA)})},[a,i]),r0.createElement(e,{...r})};return fV(r,e),r}function hX(e){return hH(e,"6")}function hQ(e){return hW(e,"6")}function hZ(e){return h$(e,"6")}function h0(e){return hF(e,"6")}function h1(e){return hK(e,"6")}function h2(e){return hH(e,"7")}function h3(e){return hK(e,"7")}function h5(e){return h$(e,"7")}function h4(e){return hF(e,"7")}function h6(e){return hW(e,"7")}function h8(e){let t={};try{e.forEach((e,r)=>{"string"==typeof e&&(t[r]=e)})}catch{}return t}function h7(e){let t=Object.create(null);try{Object.entries(e).forEach(([e,r])=>{"string"==typeof r&&(t[e]=r)})}catch{}return t}function h9(e){let t=e.headers||{},r=("string"==typeof t["x-forwarded-host"]?t["x-forwarded-host"]:void 0)||("string"==typeof t.host?t.host:void 0),n=("string"==typeof t["x-forwarded-proto"]?t["x-forwarded-proto"]:void 0)||e.protocol||(e.socket?.encrypted?"https":"http"),a=e.url||"",i=function({url:e,protocol:t,host:r}){return e?.startsWith("http")?e:e&&r?`${t}://${r}${e}`:void 0}({url:a,host:r,protocol:n}),o=e.body||void 0,s=e.cookies;return{url:i,method:e.method,query_string:me(a),headers:h7(t),cookies:s,data:o}}function me(e){if(e)try{let t=new URL(e,"http://s.io").search.slice(1);return t.length?t:void 0}catch{return}}async function mt(){try{r2&&z.debug.log("Flushing events..."),await (0,K.flush)(2e3),r2&&z.debug.log("Done flushing events")}catch(e){r2&&z.debug.log("Error while flushing events:\n",e)}}function mr(e){var t;"function"==typeof mn()?.waitUntil?(t=e,mn()?.waitUntil(t)):function(e){if("string"!=typeof EdgeRuntime)return;let t=Y.GLOBAL_OBJ[Symbol.for("@vercel/request-context")],r=t?.get?.();r?.waitUntil&&r.waitUntil(e)}(e)}function mn(){let e=Symbol.for("__cloudflare-context__");return Y.GLOBAL_OBJ[e]?.ctx}function ma(e,t,r){(0,X.withScope)(n=>{n.setSDKProcessingMetadata({normalizedRequest:{headers:h7(t.headers),method:t.method}}),n.setContext("nextjs",{request_path:t.path,router_kind:r.routerKind,router_path:r.routePath,route_type:r.routeType}),n.setTransactionName(`${t.method} ${r.routePath}`),(0,K.captureException)(e,{mechanism:{handled:!1,type:"auto.function.nextjs.on_request_error"}}),mr(mt())})}async function mi(e){let{req:t,res:r,err:n}=e,a=r?.statusCode||e.statusCode;if(a&&a<500||!e.pathname)return;if(n&&(0,ea.isAlreadyCaptured)(n)){mr(mt());let e="object"==typeof n?n.__sentry_event_id__:void 0;return"string"==typeof e?((0,X.getIsolationScope)().setLastEventId(e),e):(0,X.getIsolationScope)().lastEventId()}let i=(0,X.withScope)(e=>{if(t){let r=h9(t);e.setSDKProcessingMetadata({normalizedRequest:r})}return(0,K.captureException)(n||`_error.js called with falsy error (${n})`,{mechanism:{type:"auto.function.nextjs.underscore_error",handled:!1,data:{function:"_error.getInitialProps"}}})});return mr(mt()),i}e.s(["BrowserClient",()=>tx,"ErrorBoundary",()=>f2,"MULTIPLEXED_TRANSPORT_EXTRA_KEY",()=>oV,"OpenFeatureIntegrationHook",()=>fS,"Profiler",()=>fK,"SDK_VERSION",()=>J.SDK_VERSION,"SEMANTIC_ATTRIBUTE_SENTRY_OP",()=>eh.SEMANTIC_ATTRIBUTE_SENTRY_OP,"SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN",()=>eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,"SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE",()=>eh.SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE,"SEMANTIC_ATTRIBUTE_SENTRY_SOURCE",()=>eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,"Scope",()=>oQ.Scope,"WINDOW",()=>tA,"addBreadcrumb",()=>tK,"addEventProcessor",()=>K.addEventProcessor,"addIntegration",()=>er,"breadcrumbsIntegration",()=>rn,"browserApiErrorsIntegration",()=>ri,"browserProfilingIntegration",()=>fg,"browserSessionIntegration",()=>ru,"browserTracingIntegration",()=>aC,"buildLaunchDarklyFlagUsedHandler",()=>fv,"captureConsoleIntegration",()=>oZ,"captureEvent",()=>K.captureEvent,"captureException",()=>K.captureException,"captureFeedback",()=>it,"captureMessage",()=>K.captureMessage,"captureReactException",()=>fO,"captureSession",()=>K.captureSession,"chromeStackLineParser",()=>rx,"close",()=>K.close,"consoleLoggingIntegration",()=>o5,"contextLinesIntegration",()=>ug,"continueTrace",()=>r9.continueTrace,"createConsolaReporter",()=>o6,"createLangChainCallbackHandler",()=>s7,"createReduxEnhancer",()=>f4,"createTransport",()=>e3,"createUserFeedbackEnvelope",()=>ur,"cultureContextIntegration",()=>rc,"dedupeIntegration",()=>eg,"defaultRequestInstrumentationOptions",()=>aE,"defaultStackLineParsers",()=>rH,"defaultStackParser",()=>rW,"diagnoseSdkConnectivity",()=>fC,"elementTimingIntegration",()=>pX,"endSession",()=>K.endSession,"eventFiltersIntegration",()=>es,"eventFromException",()=>tT,"eventFromMessage",()=>tw,"exceptionFromError",()=>ty,"extraErrorDataIntegration",()=>s9,"featureFlagsIntegration",()=>la,"feedbackAsyncIntegration",()=>oY,"feedbackIntegration",()=>oJ,"feedbackSyncIntegration",()=>oJ,"flush",()=>K.flush,"forceLoad",()=>rQ,"functionToStringIntegration",()=>ef,"geckoStackLineParser",()=>rL,"getActiveSpan",()=>eL.getActiveSpan,"getClient",()=>X.getClient,"getCurrentScope",()=>X.getCurrentScope,"getDefaultIntegrations",()=>rK,"getFeedback",()=>iL,"getGlobalScope",()=>X.getGlobalScope,"getIsolationScope",()=>X.getIsolationScope,"getReplay",()=>pE,"getRootSpan",()=>eL.getRootSpan,"getSpanDescendants",()=>eL.getSpanDescendants,"getSpanStatusFromHttpCode",()=>r7.getSpanStatusFromHttpCode,"getTraceData",()=>ac,"globalHandlersIntegration",()=>r_,"graphqlClientIntegration",()=>uT,"growthbookIntegration",()=>fR,"httpClientIntegration",()=>uu,"httpContextIntegration",()=>rE,"inboundFiltersIntegration",()=>el,"init",()=>r1,"instrumentAnthropicAiClient",()=>lp,"instrumentGoogleGenAIClient",()=>lS,"instrumentLangGraph",()=>lT,"instrumentOpenAiClient",()=>lN,"instrumentOutgoingRequests",()=>aT,"instrumentSupabaseClient",()=>lB,"isEnabled",()=>K.isEnabled,"isInitialized",()=>K.isInitialized,"lastEventId",()=>K.lastEventId,"launchDarklyIntegration",()=>fy,"lazyLoadIntegration",()=>oz,"linkedErrorsIntegration",()=>rI,"logger",()=>lJ,"makeBrowserOfflineTransport",()=>p3,"makeFetchTransport",()=>rV,"makeMultiplexedTransport",()=>oX,"metrics",()=>lZ,"moduleMetadataIntegration",()=>l5,"onLoad",()=>rZ,"openFeatureIntegration",()=>fb,"opera10StackLineParser",()=>rj,"opera11StackLineParser",()=>rF,"parameterize",()=>lY,"reactErrorHandler",()=>fx,"reactRouterV3BrowserTracingIntegration",()=>f6,"reactRouterV4BrowserTracingIntegration",()=>he,"reactRouterV5BrowserTracingIntegration",()=>ht,"reactRouterV6BrowserTracingIntegration",()=>hX,"reactRouterV7BrowserTracingIntegration",()=>h2,"registerSpanErrorInstrumentation",()=>nn,"registerWebWorker",()=>fN,"replayCanvasIntegration",()=>pK,"replayIntegration",()=>pv,"reportPageLoaded",()=>pQ,"reportingObserverIntegration",()=>uo,"rewriteFramesIntegration",()=>a5,"sendFeedback",()=>iR,"setActiveSpanInBrowser",()=>pZ,"setContext",()=>K.setContext,"setConversationId",()=>K.setConversationId,"setCurrentClient",()=>eb,"setExtra",()=>K.setExtra,"setExtras",()=>K.setExtras,"setHttpStatus",()=>r7.setHttpStatus,"setMeasurement",()=>ae.setMeasurement,"setTag",()=>K.setTag,"setTags",()=>K.setTags,"setUser",()=>K.setUser,"showReportDialog",()=>un,"spanToBaggageHeader",()=>eM.spanToBaggageHeader,"spanToJSON",()=>eL.spanToJSON,"spanToTraceHeader",()=>eL.spanToTraceHeader,"spotlightBrowserIntegration",()=>f_,"startBrowserTracingNavigationSpan",()=>ak,"startBrowserTracingPageLoadSpan",()=>aA,"startInactiveSpan",()=>r9.startInactiveSpan,"startNewTrace",()=>r9.startNewTrace,"startSession",()=>K.startSession,"startSpan",()=>r9.startSpan,"startSpanManual",()=>r9.startSpanManual,"statsigIntegration",()=>fI,"supabaseIntegration",()=>lj,"suppressTracing",()=>r9.suppressTracing,"tanstackRouterBrowserTracingIntegration",()=>f7,"thirdPartyErrorFilterIntegration",()=>l4,"uiProfiler",()=>ut,"unleashIntegration",()=>fE,"updateSpanName",()=>eL.updateSpanName,"useProfiler",()=>fQ,"webWorkerIntegration",()=>fA,"winjsStackLineParser",()=>rU,"withActiveSpan",()=>r9.withActiveSpan,"withErrorBoundary",()=>f3,"withIsolationScope",()=>X.withIsolationScope,"withProfiler",()=>fX,"withScope",()=>X.withScope,"withSentryReactRouterV6Routing",()=>h1,"withSentryReactRouterV7Routing",()=>h3,"withSentryRouting",()=>hn,"wrapCreateBrowserRouterV6",()=>hZ,"wrapCreateBrowserRouterV7",()=>h5,"wrapCreateMemoryRouterV6",()=>h0,"wrapCreateMemoryRouterV7",()=>h4,"wrapUseRoutesV6",()=>hQ,"wrapUseRoutesV7",()=>h6,"zodErrorsIntegration",()=>ue],38748),e.i(38748);var mo=e.i(331912);function ms(){return G.default.env.NEXT_PHASE===mo.PHASE_PRODUCTION_BUILD}function ml(e){let t=ms(),r=!!e&&function(e){if(e.$$typeof!==Symbol.for("react.server.reference"))return!1;let{type:t}=function(e){let t=parseInt(e.slice(0,2),16),r=t>>1&63,n=Array(6);for(let e=0;e<6;e++){let t=r>>5-e&1;n[e]=1===t}return{type:1==(t>>7&1)?"use-cache":"server-action",usedArgs:n,hasRestArgs:1==(1&t)}}(e.$$id);return"use-cache"===t}(e);return r&&r2&&z.debug.log("Skipping span creation in Cache Components context"),t||r}function mu(){return new r6.SentryNonRecordingSpan({traceId:"00000000000000000000000000000000",spanId:"0000000000000000"})}function mc(e,t){return ml(t)?t(mu()):(0,r9.startSpan)(e,t)}function md(e,t){if(ml(t)){let e=mu();return t(e,()=>e.end())}return(0,r9.startSpanManual)(e,t)}function mp(e){return ml()?mu():(0,r9.startInactiveSpan)(e)}function mf(...e){if("function"==typeof e[1]){let[t,r]=e;return mh(t,{},r)}{let[t,r,n]=e;return mh(t,r,n)}}async function mh(e,t,r){return(0,X.withIsolationScope)(async n=>{let a,i,o=(0,X.getClient)()?.getOptions().sendDefaultPii,s={};try{let e=await t.headers;a=e?.get("sentry-trace")??void 0,i=e?.get("baggage"),e?.forEach((e,t)=>{s[t]=e})}catch{r2&&z.debug.warn("Sentry wasn't able to extract the tracing headers for a server action. Will not trace this request.")}return n.setTransactionName(`serverAction/${e}`),n.setSDKProcessingMetadata({normalizedRequest:{headers:s}}),((0,eL.getActiveSpan)()?(e,t)=>t():r9.continueTrace)({sentryTrace:a,baggage:i},async()=>{try{return await (0,r9.startSpan)({op:"function.server_action",name:`serverAction/${e}`,forceTransaction:!0,attributes:{[eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:"route",[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.function.nextjs.server_action"}},async e=>{let n=await (0,lf.handleCallbackErrors)(r,t=>{r3(t)?e.setStatus({code:r7.SPAN_STATUS_ERROR,message:"not_found"}):r5(t)||(e.setStatus({code:r7.SPAN_STATUS_ERROR,message:"internal_error"}),(0,K.captureException)(t,{mechanism:{handled:!1,type:"auto.function.nextjs.server_action"}}))});return(void 0!==t.recordResponse?t.recordResponse:o)&&(0,X.getIsolationScope)().setExtra("server_action_result",n),t.formData&&t.formData.forEach((e,t)=>{(0,X.getIsolationScope)().setExtra(`server_action_form_data.${t}`,"string"==typeof e?e:"[non-string value]")}),n})}finally{mr(mt())}})})}function mm(e,t){return new Proxy(e,{apply:(e,r,n)=>{let a;if(!n?.[0])return e.apply(r,n);let[i]=n,o="nextUrl"in i?i.nextUrl.pathname:i.url,s="nextUrl"in i?i.headers.get("user-agent"):i.headers["user-agent"];if(!t||!s?.includes("vercel-cron"))return e.apply(r,n);let l=t.find(e=>e.path===o);if(!l?.path||!l.schedule)return e.apply(r,n);let u=l.path,c=(0,K.captureCheckIn)({monitorSlug:u,status:"in_progress"},{maxRuntime:720,schedule:{type:"crontab",value:l.schedule}}),d=(0,eZ.safeDateNow)()/1e3,p=()=>{(0,K.captureCheckIn)({checkInId:c,monitorSlug:u,status:"error",duration:(0,eZ.safeDateNow)()/1e3-d})};try{a=e.apply(r,n)}catch(e){throw p(),e}return"object"==typeof a&&null!==a&&"then"in a?Promise.resolve(a).then(()=>{(0,K.captureCheckIn)({checkInId:c,monitorSlug:u,status:"ok",duration:(0,eZ.safeDateNow)()/1e3-d})},()=>{p()}):(0,K.captureCheckIn)({checkInId:c,monitorSlug:u,status:"ok",duration:(0,eZ.safeDateNow)()/1e3-d}),a}})}function mg(e){return async function(...t){try{return await e.apply(this,t)}catch(t){throw(0,K.captureException)(t,{mechanism:{handled:!1,type:"auto.function.nextjs.wrapped",data:{function:e.name}}}),t}}}function m_(e,t,r,n){return async function(...r){let a=h9(t);(0,X.getCurrentScope)().setTransactionName(`${n.dataFetchingMethodName} (${n.dataFetcherRouteName})`),(0,X.getIsolationScope)().setSDKProcessingMetadata({normalizedRequest:a});let i=(0,eL.getActiveSpan)();i&&"/_error"!==n.requestedRouteName&&(0,eL.getRootSpan)(i).setAttribute("sentry.route_backfill",n.requestedRouteName);let{"sentry-trace":o,baggage:s}=ac();return{sentryTrace:o,baggage:s,data:await e.apply(this,r)}}}async function my(e,t){try{return await e(...t)}catch(e){throw(0,K.captureException)(e,{mechanism:{handled:!1,type:"auto.function.nextjs.data_fetcher"}}),e}}function mv(e){return new Proxy(e,{apply:async(e,t,r)=>{if(ms())return e.apply(t,r);let[n]=r,{req:a,res:i}=n.ctx,o=mg(e);if(!a||!i)return o.apply(t,r);{let e=m_(o,a,i,{dataFetcherRouteName:"/_app",requestedRouteName:n.ctx.pathname,dataFetchingMethodName:"getInitialProps"}),{data:s,sentryTrace:l,baggage:u}=await e.apply(t,r);return"object"==typeof s&&null!==s&&(s.pageProps||(s.pageProps={}),l&&(s.pageProps._sentryTraceData=l),u&&(s.pageProps._sentryBaggage=u)),s}}})}function mb(e){return new Proxy(e,{apply:async(e,t,r)=>{if(ms())return e.apply(t,r);let[n]=r,{req:a,res:i}=n,o=mg(e);if(!a||!i)return o.apply(t,r);{let e=m_(o,a,i,{dataFetcherRouteName:"/_document",requestedRouteName:n.pathname,dataFetchingMethodName:"getInitialProps"}),{data:s}=await e.apply(t,r);return s}}})}function mS(e){return new Proxy(e,{apply:async(e,t,r)=>{if(ms())return e.apply(t,r);let[n]=r,{req:a,res:i}=n,o=mg(e);if(!a||!i)return o.apply(t,r);{let e=m_(o,a,i,{dataFetcherRouteName:"/_error",requestedRouteName:n.pathname,dataFetchingMethodName:"getInitialProps"}),{data:s,baggage:l,sentryTrace:u}=await e.apply(t,r);return"object"==typeof s&&null!==s&&(u&&(s._sentryTraceData=u),l&&(s._sentryBaggage=l)),s}}})}function mE(e,t){return new Proxy(e,{apply:(e,r,n)=>{let a,i=(0,X.getIsolationScope)();try{a=t.requestAsyncStorage?.getStore()?.headers}catch{}let o=a?h8(a):void 0;return i.setSDKProcessingMetadata({normalizedRequest:{headers:o}}),(0,lf.handleCallbackErrors)(()=>e.apply(r,n),e=>{let r=(0,eL.getActiveSpan)(),{componentRoute:n,componentType:a,generationFunctionIdentifier:o}=t,s=!0;i.setTransactionName(`${a}.${o} (${n})`),r&&(r3(e)?(s=!1,r.setStatus({code:r7.SPAN_STATUS_ERROR,message:"not_found"})):r5(e)?(s=!1,r.setStatus({code:r7.SPAN_STATUS_OK})):r.setStatus({code:r7.SPAN_STATUS_ERROR,message:"internal_error"})),s&&(0,K.captureException)(e,{mechanism:{handled:!1,type:"auto.function.nextjs.generation_function",data:{function:o}}})},()=>{mr(mt())})}})}function mT(e){return new Proxy(e,{apply:async(e,t,r)=>{if(ms())return e.apply(t,r);let[n]=r,{req:a,res:i}=n,o=mg(e);if(!a||!i)return o.apply(t,r);{let e=m_(o,a,i,{dataFetcherRouteName:n.pathname,requestedRouteName:n.pathname,dataFetchingMethodName:"getInitialProps"}),{data:s,baggage:l,sentryTrace:u}=await e.apply(t,r)??{};return"object"==typeof s&&null!==s&&(u&&(s._sentryTraceData=u),l&&(s._sentryBaggage=l)),s}}})}function mw(e,t){return new Proxy(e,{apply:async(e,r,n)=>{if(ms())return e.apply(r,n);let[a]=n,{req:i,res:o}=a,s=m_(mg(e),i,o,{dataFetcherRouteName:t,requestedRouteName:t,dataFetchingMethodName:"getServerSideProps"}),{data:l,baggage:u,sentryTrace:c}=await s.apply(r,n);return"object"==typeof l&&null!==l&&"props"in l&&(c&&(l.props._sentryTraceData=c),u&&(l.props._sentryBaggage=u)),l}})}function mR(e,t){return new Proxy(e,{apply:async(e,t,r)=>ms()?e.apply(t,r):my(mg(e),r)})}var mI=e.i(216351);function mC(e){return new Proxy(e,{apply:async(e,t,r)=>{let n="_sentryRewritesTunnelPath"in globalThis?globalThis._sentryRewritesTunnelPath:void 0;if(n&&"string"==typeof n){let e=r[0];if(e instanceof Request&&new URL(e.url).pathname.startsWith(n))return new Response(null,{status:200,headers:{"x-middleware-next":"1"}})}return(0,X.withIsolationScope)(n=>{let a,i,o=r[0],s=(0,X.getCurrentScope)();if(o instanceof Request){let e;n.setSDKProcessingMetadata({normalizedRequest:(e=h8(o.headers),{method:o.method,url:o.url,query_string:me(o.url),headers:e})}),a=`middleware ${o.method}`,i="url"}else a="middleware",i="component";s.setTransactionName(a);let l=(0,eL.getActiveSpan)();if(l){a="middleware",i="component";let e=(0,eL.getRootSpan)(l);e&&(0,mI.setCapturedScopesOnSpan)(e,s,n)}return(0,r9.startSpan)({name:a,op:"http.server.middleware",attributes:{[eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]:i,[eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]:"auto.function.nextjs.wrap_middleware"}},()=>(0,lf.handleCallbackErrors)(()=>e.apply(t,r),e=>{(0,K.captureException)(e,{mechanism:{type:"auto.function.nextjs.wrap_middleware",handled:!1}})},()=>{mr(mt())}))})}})}function mA(e,t){e&&"object"==typeof e&&(0,ed.addNonEnumerableProperty)(e,"__sentry_event_id__",t)}function mk(e){return"function"==typeof e&&e?.prototype?.isReactComponent?class extends e{render(...e){return(0,X.withIsolationScope)(()=>{let t=(0,X.getCurrentScope)(),r="object"==typeof this.props&&null!==this.props&&"_sentryTraceData"in this.props&&"string"==typeof this.props._sentryTraceData?this.props._sentryTraceData:void 0;if(r){let e=(0,ni.extractTraceparentData)(r);t.setContext("trace",{span_id:e?.parentSpanId,trace_id:e?.traceId})}try{return super.render(...e)}catch(t){let e=(0,K.captureException)(t,{mechanism:{handled:!1,type:"auto.function.nextjs.page_class"}});throw mA(t,e),t}})}}:"function"==typeof e?new Proxy(e,{apply:(e,t,r)=>(0,X.withIsolationScope)(()=>{let n=(0,X.getCurrentScope)(),a=r?.[0]?._sentryTraceData;if(a){let e=(0,ni.extractTraceparentData)(a);n.setContext("trace",{span_id:e?.parentSpanId,trace_id:e?.traceId})}try{return e.apply(t,r)}catch(t){let e=(0,K.captureException)(t,{mechanism:{handled:!1,type:"auto.function.nextjs.page_function"}});throw mA(t,e),t}})}):e}function mN(e,t){let{method:r,parameterizedRoute:n,headers:a}=t;return new Proxy(e,{apply:async(e,t,a)=>{let i=(0,eL.getActiveSpan)(),o=i?(0,eL.getRootSpan)(i):void 0;return(0,X.withIsolationScope)((0,X.getIsolationScope)(),()=>(0,X.withScope)(async s=>{s.setTransactionName(`${r} ${n}`);let l=await (0,lf.handleCallbackErrors)(()=>e.apply(t,a),e=>{r5(e)||(r3(e)?(i&&(0,r7.setHttpStatus)(i,404),o&&(0,r7.setHttpStatus)(o,404)):(0,K.captureException)(e,{mechanism:{handled:!1,type:"auto.function.nextjs.route_handler"}}))},()=>{mr(mt())});try{l.status&&(i&&(0,r7.setHttpStatus)(i,l.status),o&&(0,r7.setHttpStatus)(o,l.status))}catch{}return l}))}})}function mO(e,t){return new Proxy(e,{apply:(e,r,n)=>{let a=(0,X.getIsolationScope)(),i=t.headers?h8(t.headers):void 0;return a.setSDKProcessingMetadata({normalizedRequest:{headers:i}}),(0,lf.handleCallbackErrors)(()=>e.apply(r,n),e=>{let r=(0,eL.getActiveSpan)(),{componentRoute:n,componentType:i}=t,o=!0;a.setTransactionName(`${i} Server Component (${n})`),r&&(r3(e)?(o=!1,r.setStatus({code:r7.SPAN_STATUS_ERROR,message:"not_found"})):r5(e)?(o=!1,r.setStatus({code:r7.SPAN_STATUS_OK})):r.setStatus({code:r7.SPAN_STATUS_ERROR,message:"internal_error"})),o&&(0,K.captureException)(e,{mechanism:{handled:!1,type:"auto.function.nextjs.server_component"}})},()=>{mr(mt())})}})}e.s(["BrowserClient",()=>tx,"ErrorBoundary",()=>f2,"MULTIPLEXED_TRANSPORT_EXTRA_KEY",()=>oV,"OpenFeatureIntegrationHook",()=>fS,"Profiler",()=>fK,"SDK_VERSION",()=>J.SDK_VERSION,"SEMANTIC_ATTRIBUTE_SENTRY_OP",()=>eh.SEMANTIC_ATTRIBUTE_SENTRY_OP,"SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN",()=>eh.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,"SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE",()=>eh.SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE,"SEMANTIC_ATTRIBUTE_SENTRY_SOURCE",()=>eh.SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,"Scope",()=>oQ.Scope,"WINDOW",()=>tA,"addBreadcrumb",()=>tK,"addEventProcessor",()=>K.addEventProcessor,"addIntegration",()=>er,"breadcrumbsIntegration",()=>rn,"browserApiErrorsIntegration",()=>ri,"browserProfilingIntegration",()=>fg,"browserSessionIntegration",()=>ru,"browserTracingIntegration",()=>a0,"buildLaunchDarklyFlagUsedHandler",()=>fv,"captureConsoleIntegration",()=>oZ,"captureEvent",()=>K.captureEvent,"captureException",()=>K.captureException,"captureFeedback",()=>it,"captureMessage",()=>K.captureMessage,"captureReactException",()=>fO,"captureRequestError",()=>ma,"captureRouterTransitionStart",()=>aX,"captureSession",()=>K.captureSession,"captureUnderscoreErrorException",()=>mi,"chromeStackLineParser",()=>rx,"close",()=>K.close,"consoleLoggingIntegration",()=>o5,"contextLinesIntegration",()=>ug,"continueTrace",()=>r9.continueTrace,"createConsolaReporter",()=>o6,"createLangChainCallbackHandler",()=>s7,"createReduxEnhancer",()=>f4,"createTransport",()=>e3,"createUserFeedbackEnvelope",()=>ur,"cultureContextIntegration",()=>rc,"dedupeIntegration",()=>eg,"defaultRequestInstrumentationOptions",()=>aE,"defaultStackLineParsers",()=>rH,"defaultStackParser",()=>rW,"diagnoseSdkConnectivity",()=>fC,"elementTimingIntegration",()=>pX,"endSession",()=>K.endSession,"eventFiltersIntegration",()=>es,"eventFromException",()=>tT,"eventFromMessage",()=>tw,"exceptionFromError",()=>ty,"extraErrorDataIntegration",()=>s9,"featureFlagsIntegration",()=>la,"feedbackAsyncIntegration",()=>oY,"feedbackIntegration",()=>oJ,"feedbackSyncIntegration",()=>oJ,"flush",()=>K.flush,"forceLoad",()=>rQ,"functionToStringIntegration",()=>ef,"geckoStackLineParser",()=>rL,"getActiveSpan",()=>eL.getActiveSpan,"getClient",()=>X.getClient,"getCurrentScope",()=>X.getCurrentScope,"getDefaultIntegrations",()=>rK,"getFeedback",()=>iL,"getGlobalScope",()=>X.getGlobalScope,"getIsolationScope",()=>X.getIsolationScope,"getReplay",()=>pE,"getRootSpan",()=>eL.getRootSpan,"getSpanDescendants",()=>eL.getSpanDescendants,"getSpanStatusFromHttpCode",()=>r7.getSpanStatusFromHttpCode,"getTraceData",()=>ac,"globalHandlersIntegration",()=>r_,"graphqlClientIntegration",()=>uT,"growthbookIntegration",()=>fR,"httpClientIntegration",()=>uu,"httpContextIntegration",()=>rE,"inboundFiltersIntegration",()=>el,"init",()=>a9,"instrumentAnthropicAiClient",()=>lp,"instrumentGoogleGenAIClient",()=>lS,"instrumentLangGraph",()=>lT,"instrumentOpenAiClient",()=>lN,"instrumentOutgoingRequests",()=>aT,"instrumentSupabaseClient",()=>lB,"isEnabled",()=>K.isEnabled,"isInitialized",()=>K.isInitialized,"lastEventId",()=>K.lastEventId,"launchDarklyIntegration",()=>fy,"lazyLoadIntegration",()=>oz,"linkedErrorsIntegration",()=>rI,"logger",()=>lJ,"makeBrowserOfflineTransport",()=>p3,"makeFetchTransport",()=>rV,"makeMultiplexedTransport",()=>oX,"metrics",()=>lZ,"moduleMetadataIntegration",()=>l5,"onLoad",()=>rZ,"openFeatureIntegration",()=>fb,"opera10StackLineParser",()=>rj,"opera11StackLineParser",()=>rF,"parameterize",()=>lY,"reactErrorHandler",()=>fx,"reactRouterV3BrowserTracingIntegration",()=>f6,"reactRouterV4BrowserTracingIntegration",()=>he,"reactRouterV5BrowserTracingIntegration",()=>ht,"reactRouterV6BrowserTracingIntegration",()=>hX,"reactRouterV7BrowserTracingIntegration",()=>h2,"registerSpanErrorInstrumentation",()=>nn,"registerWebWorker",()=>fN,"replayCanvasIntegration",()=>pK,"replayIntegration",()=>pv,"reportPageLoaded",()=>pQ,"reportingObserverIntegration",()=>uo,"rewriteFramesIntegration",()=>a5,"sendFeedback",()=>iR,"setActiveSpanInBrowser",()=>pZ,"setContext",()=>K.setContext,"setConversationId",()=>K.setConversationId,"setCurrentClient",()=>eb,"setExtra",()=>K.setExtra,"setExtras",()=>K.setExtras,"setHttpStatus",()=>r7.setHttpStatus,"setMeasurement",()=>ae.setMeasurement,"setTag",()=>K.setTag,"setTags",()=>K.setTags,"setUser",()=>K.setUser,"showReportDialog",()=>un,"spanToBaggageHeader",()=>eM.spanToBaggageHeader,"spanToJSON",()=>eL.spanToJSON,"spanToTraceHeader",()=>eL.spanToTraceHeader,"spotlightBrowserIntegration",()=>f_,"startBrowserTracingNavigationSpan",()=>ak,"startBrowserTracingPageLoadSpan",()=>aA,"startInactiveSpan",()=>mp,"startNewTrace",()=>r9.startNewTrace,"startSession",()=>K.startSession,"startSpan",()=>mc,"startSpanManual",()=>md,"statsigIntegration",()=>fI,"supabaseIntegration",()=>lj,"suppressTracing",()=>r9.suppressTracing,"tanstackRouterBrowserTracingIntegration",()=>f7,"thirdPartyErrorFilterIntegration",()=>l4,"uiProfiler",()=>ut,"unleashIntegration",()=>fE,"updateSpanName",()=>eL.updateSpanName,"useProfiler",()=>fQ,"webWorkerIntegration",()=>fA,"winjsStackLineParser",()=>rU,"withActiveSpan",()=>r9.withActiveSpan,"withErrorBoundary",()=>f3,"withIsolationScope",()=>X.withIsolationScope,"withProfiler",()=>fX,"withScope",()=>X.withScope,"withSentryConfig",()=>ie,"withSentryReactRouterV6Routing",()=>h1,"withSentryReactRouterV7Routing",()=>h3,"withSentryRouting",()=>hn,"withServerActionInstrumentation",()=>mf,"wrapApiHandlerWithSentryVercelCrons",()=>mm,"wrapAppGetInitialPropsWithSentry",()=>mv,"wrapCreateBrowserRouterV6",()=>hZ,"wrapCreateBrowserRouterV7",()=>h5,"wrapCreateMemoryRouterV6",()=>h0,"wrapCreateMemoryRouterV7",()=>h4,"wrapDocumentGetInitialPropsWithSentry",()=>mb,"wrapErrorGetInitialPropsWithSentry",()=>mS,"wrapGenerationFunctionWithSentry",()=>mE,"wrapGetInitialPropsWithSentry",()=>mT,"wrapGetServerSidePropsWithSentry",()=>mw,"wrapGetStaticPropsWithSentry",()=>mR,"wrapMiddlewareWithSentry",()=>mC,"wrapPageComponentWithSentry",()=>mk,"wrapRouteHandlerWithSentry",()=>mN,"wrapServerComponentWithSentry",()=>mO,"wrapUseRoutesV6",()=>hQ,"wrapUseRoutesV7",()=>h6,"zodErrorsIntegration",()=>ue],502456)}]); -//# debugId=c5110e32-c1da-46a6-4d7d-17c4d3698a91 \ No newline at end of file +//# debugId=aa505f9a-67fd-87e2-8b0a-095b07d07b33 \ No newline at end of file diff --git a/.next/static/chunks/3f652f1a7128a03a.css b/.next/static/chunks/3f652f1a7128a03a.css new file mode 100644 index 000000000..d99dd6c76 --- /dev/null +++ b/.next/static/chunks/3f652f1a7128a03a.css @@ -0,0 +1 @@ +@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-scroll-snap-strictness:proximity;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:var(--font-inter),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-300:oklch(80.8% .114 19.571);--color-red-500:oklch(63.7% .237 25.331);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-900:oklch(42.1% .095 57.708);--color-green-50:oklch(98.2% .018 155.826);--color-green-200:oklch(92.5% .084 155.995);--color-green-500:oklch(72.3% .219 149.579);--color-green-900:oklch(39.3% .095 152.535);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-teal-400:oklch(77.7% .152 181.912);--color-blue-50:oklch(97% .014 254.604);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-900:oklch(37.9% .146 265.522);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-900:oklch(38.1% .176 304.987);--color-neutral-50:oklch(98.5% 0 0);--color-neutral-100:oklch(97% 0 0);--color-neutral-200:oklch(92.2% 0 0);--color-neutral-300:oklch(87% 0 0);--color-neutral-400:oklch(70.8% 0 0);--color-neutral-600:oklch(43.9% 0 0);--color-neutral-800:oklch(26.9% 0 0);--color-neutral-900:oklch(20.5% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-7xl:80rem;--font-weight-extralight:200;--font-weight-normal:400;--font-weight-black:900;--tracking-tighter:-.05em;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-3xl:1.5rem;--drop-shadow-sm:0 1px 2px #00000026;--drop-shadow-md:0 3px 3px #0000001f;--drop-shadow-lg:0 4px 4px #00000026;--drop-shadow-2xl:0 25px 25px #00000026;--ease-in:cubic-bezier(.4,0,1,1);--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0,0,.2,1)infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--animate-bounce:bounce 1s infinite;--blur-sm:8px;--blur-md:12px;--blur-xl:24px;--blur-2xl:40px;--blur-3xl:64px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-heading:"Inter",system-ui,sans-serif;--color-primary:#0e7a5c;--color-primary-dark:#084c39;--color-primary-light:#e6f5f0;--color-saturated:#10a379;--color-secondary:#003d82;--color-secondary-light:#0056b3;--color-accent:#82ed20;--color-accent-dark:#14532d;--color-accent-light:#f0f9e6;--color-neutral:#f8f9fa;--color-neutral-light:#fff;--color-neutral-dark:#0a0a0a;--color-neutral-medium:#e5e7eb;--color-text-primary:#111827;--color-text-secondary:#4b5563;--color-text-light:#9ca3af;--color-destructive:#ef4444;--color-destructive-foreground:#fff;--animate-fade-in:fade-in .5s ease-out;--animate-slide-up:slide-up .6s ease-out;--animate-slow-zoom:slow-zoom 20s linear infinite;--animate-slight-fade-in-from-bottom:slight-fade-in-from-bottom .8s cubic-bezier(.16,1,.3,1)forwards;--animate-gradient-x:gradient-x 15s ease infinite;--animate-draw-stroke:draw-stroke 1.8s ease-in-out .5s forwards}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}html{font-size:87.5%}@media (min-width:768px){html{font-size:100%}}.bg-primary a,.bg-primary-dark a{color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.bg-primary a,.bg-primary-dark a{color:color-mix(in oklab,var(--color-white)90%,transparent)}}.bg-primary a,.bg-primary-dark a{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){:is(.bg-primary a,.bg-primary-dark a):hover{color:var(--color-white)}}body{font-size:1rem;line-height:var(--tw-leading,1.7)}@media (min-width:768px){body{font-size:1.125rem;line-height:var(--tw-leading,1.7)}}body{text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.7}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);--tw-font-weight:700;--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight);font-weight:700;line-height:1.2}h1{font-size:1.875rem;line-height:var(--tw-leading,1.4);--tw-leading:1.1;line-height:1.1}@media (min-width:768px){h1{font-size:3rem;line-height:var(--tw-leading,1.25)}}@media (min-width:1024px){h1{font-size:3.75rem;line-height:var(--tw-leading,1.2)}}h2{font-size:1.5rem;line-height:var(--tw-leading,1.5);--tw-leading:1.2;line-height:1.2}@media (min-width:768px){h2{font-size:2.25rem;line-height:var(--tw-leading,1.3)}}@media (min-width:1024px){h2{font-size:3rem;line-height:var(--tw-leading,1.25)}}h3{font-size:1.25rem;line-height:var(--tw-leading,1.6);--tw-leading:1.3;line-height:1.3}@media (min-width:768px){h3{font-size:1.5rem;line-height:var(--tw-leading,1.5)}}@media (min-width:1024px){h3{font-size:1.875rem;line-height:var(--tw-leading,1.4)}}h4{font-size:1.125rem;line-height:var(--tw-leading,1.7);--tw-leading:1.4;line-height:1.4}@media (min-width:768px){h4{font-size:1.25rem;line-height:var(--tw-leading,1.6)}}@media (min-width:1024px){h4{font-size:1.5rem;line-height:var(--tw-leading,1.5)}}h5{font-size:1rem;line-height:var(--tw-leading,1.7);--tw-leading:1.5;line-height:1.5}@media (min-width:768px){h5{font-size:1.125rem;line-height:var(--tw-leading,1.7)}}h6{font-size:.875rem;line-height:var(--tw-leading,1.6);--tw-leading:1.6;line-height:1.6}@media (min-width:768px){h6{font-size:1rem;line-height:var(--tw-leading,1.7)}}p{margin-bottom:calc(var(--spacing)*4);--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}a{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;text-decoration-line:none;transition-duration:.2s}ul,ol{margin-block:calc(var(--spacing)*4);margin-left:calc(var(--spacing)*6)}li{margin-bottom:calc(var(--spacing)*2);--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}small{font-size:.875rem;line-height:var(--tw-leading,1.6)}@media (min-width:768px){small{font-size:1rem;line-height:var(--tw-leading,1.7)}}strong{--tw-font-weight:700;font-weight:700}em{font-style:italic}blockquote{margin-block:calc(var(--spacing)*6);border-left-style:var(--tw-border-style);padding-left:calc(var(--spacing)*6);border-left-width:4px;font-style:italic}code{padding-inline:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*1);font-family:var(--font-mono);font-size:.875rem;line-height:var(--tw-leading,1.6);border-radius:.5rem}hr{margin-block:calc(var(--spacing)*8)}}@layer components{.glass-panel{border-style:var(--tw-border-style);border-width:1px;border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.glass-panel{border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.glass-panel{background-color:#fffc}@supports (color:color-mix(in lab, red, red)){.glass-panel{background-color:color-mix(in oklab,var(--color-white)80%,transparent)}}.glass-panel{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -2px var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-backdrop-blur:blur(var(--blur-md));backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.image-overlay-gradient{inset:calc(var(--spacing)*0);--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops));--tw-gradient-from:color-mix(in oklab,var(--color-black)90%,transparent);--tw-gradient-via:color-mix(in oklab,var(--color-black)40%,transparent);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position));--tw-gradient-to:transparent;position:absolute}.premium-card{border-radius:var(--radius-3xl);background-color:var(--color-white);--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.5s;transition-duration:.5s}@media (hover:hover){.premium-card:hover{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y);--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.sticky-narrative-container{gap:calc(var(--spacing)*12);grid-template-columns:repeat(1,minmax(0,1fr));display:grid}@media (min-width:1024px){.sticky-narrative-container{gap:calc(var(--spacing)*20);grid-template-columns:repeat(12,minmax(0,1fr))}}.sticky-narrative-sidebar{height:fit-content}@media (min-width:1024px){.sticky-narrative-sidebar{top:calc(var(--spacing)*32);grid-column:span 4/span 4;position:sticky}.sticky-narrative-content{grid-column:span 8/span 8}}}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.-top-\[20\%\]{top:-20%}.-top-\[25\%\]{top:-25%}.-top-full{top:-100%}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing)*2)}.top-4{top:calc(var(--spacing)*4)}.top-6{top:calc(var(--spacing)*6)}.top-8{top:calc(var(--spacing)*8)}.top-32{top:calc(var(--spacing)*32)}.right-0{right:calc(var(--spacing)*0)}.right-2{right:calc(var(--spacing)*2)}.right-4{right:calc(var(--spacing)*4)}.right-6{right:calc(var(--spacing)*6)}.right-8{right:calc(var(--spacing)*8)}.-bottom-2{bottom:calc(var(--spacing)*-2)}.-bottom-3{bottom:calc(var(--spacing)*-3)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-6{bottom:calc(var(--spacing)*6)}.-left-4{left:calc(var(--spacing)*-4)}.-left-8{left:calc(var(--spacing)*-8)}.-left-\[20\%\]{left:-20%}.-left-\[25\%\]{left:-25%}.-left-\[25px\]{left:-25px}.left-0{left:calc(var(--spacing)*0)}.left-1{left:calc(var(--spacing)*1)}.left-1\/2{left:50%}.left-4{left:calc(var(--spacing)*4)}.left-6{left:calc(var(--spacing)*6)}.left-8{left:calc(var(--spacing)*8)}.isolate{isolation:isolate}.-z-10{z-index:calc(10*-1)}.z-0{z-index:0}.z-1{z-index:1}.z-7{z-index:7}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.z-\[2\]{z-index:2}.z-\[3\]{z-index:3}.z-\[4\]{z-index:4}.z-\[100\]{z-index:100}.z-\[10000\]{z-index:10000}.z-\[99999\]{z-index:99999}.order-1{order:1}.order-2{order:2}.col-span-1{grid-column:span 1/span 1}.container{width:100%}@media (min-width:475px){.container{max-width:475px}}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1400px){.container{max-width:1400px}}@media (min-width:1600px){.container{max-width:1600px}}.fluid-spacing{margin:clamp(.5rem,2vw,2rem);padding:clamp(1rem,3vw,3rem);margin:clamp(1rem,3vw,3rem);padding:clamp(1.5rem,5vw,5rem)}.-m-4{margin:calc(var(--spacing)*-4)}.m-0{margin:calc(var(--spacing)*0)}.m-5{margin:calc(var(--spacing)*5)}.container{margin-inline:auto;padding-inline:1rem}@media (min-width:475px){.container{max-width:475px}}@media (min-width:640px){.container{max-width:640px;padding-inline:1.5rem}}@media (min-width:768px){.container{max-width:768px;padding-inline:2rem}}@media (min-width:1024px){.container{max-width:1024px;padding-inline:2.5rem}}@media (min-width:1280px){.container{max-width:1280px;padding-inline:3rem}}@media (min-width:1400px){.container{max-width:1400px;padding-inline:4rem}}@media (min-width:1600px){.container{max-width:1600px}}.-mx-5{margin-inline:calc(var(--spacing)*-5)}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-3{margin-inline:calc(var(--spacing)*3)}.mx-auto{margin-inline:auto}.my-8{margin-block:calc(var(--spacing)*8)}.my-10{margin-block:calc(var(--spacing)*10)}.my-12{margin-block:calc(var(--spacing)*12)}.my-16{margin-block:calc(var(--spacing)*16)}.my-24{margin-block:calc(var(--spacing)*24)}.\!mt-0{margin-top:calc(var(--spacing)*0)!important}.\!mt-1{margin-top:calc(var(--spacing)*1)!important}.-mt-6{margin-top:calc(var(--spacing)*-6)}.-mt-8{margin-top:calc(var(--spacing)*-8)}.-mt-10{margin-top:calc(var(--spacing)*-10)}.-mt-32{margin-top:calc(var(--spacing)*-32)}.-mt-px{margin-top:-1px}.mt-0{margin-top:calc(var(--spacing)*0)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-2\.5{margin-top:calc(var(--spacing)*2.5)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-8{margin-top:calc(var(--spacing)*8)}.mt-12{margin-top:calc(var(--spacing)*12)}.mt-16{margin-top:calc(var(--spacing)*16)}.mt-24{margin-top:calc(var(--spacing)*24)}.mt-\[80px\]{margin-top:80px}.mt-auto{margin-top:auto}.-mr-1{margin-right:calc(var(--spacing)*-1)}.-mr-6{margin-right:calc(var(--spacing)*-6)}.-mr-8{margin-right:calc(var(--spacing)*-8)}.-mr-10{margin-right:calc(var(--spacing)*-10)}.-mr-32{margin-right:calc(var(--spacing)*-32)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-3{margin-right:calc(var(--spacing)*3)}.mr-4{margin-right:calc(var(--spacing)*4)}.\!mb-0{margin-bottom:calc(var(--spacing)*0)!important}.mb-0{margin-bottom:calc(var(--spacing)*0)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-5{margin-bottom:calc(var(--spacing)*5)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-10{margin-bottom:calc(var(--spacing)*10)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.mb-16{margin-bottom:calc(var(--spacing)*16)}.mb-20{margin-bottom:calc(var(--spacing)*20)}.mb-\[-80px\]{margin-bottom:-80px}.-ml-1{margin-left:calc(var(--spacing)*-1)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.ml-12{margin-left:calc(var(--spacing)*12)}.ml-auto{margin-left:auto}.touch-target{justify-content:center;align-items:center;min-width:48px;min-height:48px;display:inline-flex}.grid-mobile-stacked{gap:calc(var(--spacing)*6);grid-template-columns:repeat(1,minmax(0,1fr));display:grid}@media (min-width:768px){.grid-mobile-stacked{gap:calc(var(--spacing)*8);grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.grid-mobile-stacked{gap:calc(var(--spacing)*12);grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:767px){.grid-mobile-stacked{flex-direction:column;gap:1rem;display:flex}}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}@media (min-width:1024px){.desktop-hidden{display:none!important}}@media (max-width:1023px){.desktop-only{display:none!important}}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}@media (max-width:767px){.mobile-hidden{display:none!important}}@media (min-width:768px){.mobile-only{display:none!important}}.table{display:table}@media (min-width:768px) and (max-width:1023px){.tablet-hidden{display:none!important}}@media (max-width:767px),(min-width:1024px){.tablet-only{display:none!important}}.aspect-\[3\/4\]{aspect-ratio:3/4}.aspect-\[4\/3\]{aspect-ratio:4/3}.aspect-\[16\/10\]{aspect-ratio:16/10}.h-0\.5{height:calc(var(--spacing)*.5)}.h-1{height:calc(var(--spacing)*1)}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-1\/2{height:50%}.h-2{height:calc(var(--spacing)*2)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-11{height:calc(var(--spacing)*11)}.h-12{height:calc(var(--spacing)*12)}.h-14{height:calc(var(--spacing)*14)}.h-16{height:calc(var(--spacing)*16)}.h-20{height:calc(var(--spacing)*20)}.h-24{height:calc(var(--spacing)*24)}.h-32{height:calc(var(--spacing)*32)}.h-40{height:calc(var(--spacing)*40)}.h-48{height:calc(var(--spacing)*48)}.h-64{height:calc(var(--spacing)*64)}.h-96{height:calc(var(--spacing)*96)}.h-\[2px\]{height:2px}.h-\[40vh\]{height:40vh}.h-\[50vh\]{height:50vh}.h-\[70vh\]{height:70vh}.h-\[100svh\]{height:100svh}.h-\[140\%\]{height:140%}.h-\[150\%\]{height:150%}.h-\[300px\]{height:300px}.h-\[400px\]{height:400px}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-24{max-height:calc(var(--spacing)*24)}.max-h-\[85vh\]{max-height:85vh}.max-h-\[400px\]{max-height:400px}.max-h-\[none\]{max-height:none}.min-h-\[50vh\]{min-height:50vh}.min-h-\[70vh\]{min-height:70vh}.min-h-\[85vh\]{min-height:85vh}.min-h-\[400px\]{min-height:400px}.min-h-\[450px\]{min-height:450px}.min-h-\[500px\]{min-height:500px}.min-h-screen{min-height:100vh}.w-0{width:calc(var(--spacing)*0)}.w-1{width:calc(var(--spacing)*1)}.w-1\.5{width:calc(var(--spacing)*1.5)}.w-1\/3{width:33.3333%}.w-1\/4{width:25%}.w-2{width:calc(var(--spacing)*2)}.w-3{width:calc(var(--spacing)*3)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-10{width:calc(var(--spacing)*10)}.w-12{width:calc(var(--spacing)*12)}.w-14{width:calc(var(--spacing)*14)}.w-16{width:calc(var(--spacing)*16)}.w-20{width:calc(var(--spacing)*20)}.w-24{width:calc(var(--spacing)*24)}.w-32{width:calc(var(--spacing)*32)}.w-40{width:calc(var(--spacing)*40)}.w-48{width:calc(var(--spacing)*48)}.w-64{width:calc(var(--spacing)*64)}.w-\[2px\]{width:2px}.w-\[140\%\]{width:140%}.w-\[150\%\]{width:150%}.w-\[320px\]{width:320px}.w-\[350px\]{width:350px}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[85\%\]{max-width:85%}.max-w-\[90\%\]{max-width:90%}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.border-separate{border-collapse:separate}.border-spacing-0{--tw-border-spacing-x:calc(var(--spacing)*0);--tw-border-spacing-y:calc(var(--spacing)*0);border-spacing:var(--tw-border-spacing-x)var(--tw-border-spacing-y)}.-translate-x-1\/2{--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-1{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-1\/2{--tw-translate-x:calc(1/2*100%);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-1\/2{--tw-translate-y:calc(1/2*100%);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-4{--tw-translate-y:calc(var(--spacing)*4);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[101\%\]{--tw-translate-y:101%;translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-105{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-110{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.rotate-45{rotate:45deg}.-skew-x-12{--tw-skew-x:skewX(calc(12deg*-1));transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.skew-x-12{--tw-skew-x:skewX(12deg);transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.reveal-on-scroll{opacity:0;filter:blur(8px);transition:opacity .6s ease-out,transform .8s cubic-bezier(.16,1,.3,1),filter .8s cubic-bezier(.16,1,.3,1);transform:translateY(20px)}.reveal-on-scroll.is-visible{opacity:1;filter:blur();transform:translateY(0)}@media (prefers-reduced-motion:reduce){.reveal-on-scroll{opacity:1;transition:opacity .3s ease-out;filter:none!important;transform:none!important}}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-bounce{animation:var(--animate-bounce)}.animate-draw-stroke{animation:var(--animate-draw-stroke)}.animate-fade-in{animation:var(--animate-fade-in)}.animate-gradient-x{animation:var(--animate-gradient-x)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-slide-up{animation:var(--animate-slide-up)}.animate-slight-fade-in-from-bottom{animation:var(--animate-slight-fade-in-from-bottom)}.animate-slow-zoom{animation:var(--animate-slow-zoom)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.snap-x{scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness:mandatory}.snap-center{scroll-snap-align:center}.list-none{list-style-type:none}.auto-rows-\[220px\]{grid-auto-rows:220px}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-5{gap:calc(var(--spacing)*5)}.gap-6{gap:calc(var(--spacing)*6)}.gap-8{gap:calc(var(--spacing)*8)}.gap-10{gap:calc(var(--spacing)*10)}.gap-12{gap:calc(var(--spacing)*12)}.gap-16{gap:calc(var(--spacing)*16)}:where(.space-y-0>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*0)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*0)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*8)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-12>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*12)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*12)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-24>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*24)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*24)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-6{-moz-column-gap:calc(var(--spacing)*6);column-gap:calc(var(--spacing)*6)}.gap-x-8{-moz-column-gap:calc(var(--spacing)*8);column-gap:calc(var(--spacing)*8)}.gap-x-12{-moz-column-gap:calc(var(--spacing)*12);column-gap:calc(var(--spacing)*12)}:where(.-space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*-4)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*-4)*calc(1 - var(--tw-space-x-reverse)))}:where(.space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*2)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-x-reverse)))}.gap-y-0{row-gap:calc(var(--spacing)*0)}.gap-y-3{row-gap:calc(var(--spacing)*3)}.gap-y-6{row-gap:calc(var(--spacing)*6)}.gap-y-12{row-gap:calc(var(--spacing)*12)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-neutral-dark\/5>:not(:last-child)){border-color:#0a0a0a0d}@supports (color:color-mix(in lab, red, red)){:where(.divide-neutral-dark\/5>:not(:last-child)){border-color:color-mix(in oklab,var(--color-neutral-dark)5%,transparent)}}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.scroll-smooth{scroll-behavior:smooth}.rounded{border-radius:.5rem}.rounded-2xl{border-radius:1.5rem}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\[2rem\]{border-radius:2rem}.rounded-\[20px\]{border-radius:20px}.rounded-\[31px\]{border-radius:31px}.rounded-\[32px\]{border-radius:32px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:.75rem}.rounded-sm{border-radius:.25rem}.rounded-xl{border-radius:1rem}.rounded-tl-none{border-top-left-radius:0}.rounded-r-xl{border-top-right-radius:1rem;border-bottom-right-radius:1rem}.rounded-tr-none{border-top-right-radius:0}.rounded-br-lg{border-bottom-right-radius:.75rem}.rounded-bl-lg{border-bottom-left-radius:.75rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-none{--tw-border-style:none;border-style:none}.border-accent{border-color:var(--color-accent)}.border-accent\/20{border-color:#82ed2033}@supports (color:color-mix(in lab, red, red)){.border-accent\/20{border-color:color-mix(in oklab,var(--color-accent)20%,transparent)}}.border-accent\/30{border-color:#82ed204d}@supports (color:color-mix(in lab, red, red)){.border-accent\/30{border-color:color-mix(in oklab,var(--color-accent)30%,transparent)}}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-200\/50{border-color:#bedbff80}@supports (color:color-mix(in lab, red, red)){.border-blue-200\/50{border-color:color-mix(in oklab,var(--color-blue-200)50%,transparent)}}.border-destructive\/20{border-color:#ef444433}@supports (color:color-mix(in lab, red, red)){.border-destructive\/20{border-color:color-mix(in oklab,var(--color-destructive)20%,transparent)}}.border-green-200{border-color:var(--color-green-200)}.border-neutral-100{border-color:var(--color-neutral-100)}.border-neutral-200{border-color:var(--color-neutral-200)}.border-neutral-800{border-color:var(--color-neutral-800)}.border-neutral-dark{border-color:var(--color-neutral-dark)}.border-neutral-dark\/5{border-color:#0a0a0a0d}@supports (color:color-mix(in lab, red, red)){.border-neutral-dark\/5{border-color:color-mix(in oklab,var(--color-neutral-dark)5%,transparent)}}.border-neutral-dark\/10{border-color:#0a0a0a1a}@supports (color:color-mix(in lab, red, red)){.border-neutral-dark\/10{border-color:color-mix(in oklab,var(--color-neutral-dark)10%,transparent)}}.border-neutral-medium{border-color:var(--color-neutral-medium)}.border-orange-500\/50{border-color:#fe6e0080}@supports (color:color-mix(in lab, red, red)){.border-orange-500\/50{border-color:color-mix(in oklab,var(--color-orange-500)50%,transparent)}}.border-primary{border-color:var(--color-primary)}.border-primary\/10{border-color:#0e7a5c1a}@supports (color:color-mix(in lab, red, red)){.border-primary\/10{border-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.border-primary\/20{border-color:#0e7a5c33}@supports (color:color-mix(in lab, red, red)){.border-primary\/20{border-color:color-mix(in oklab,var(--color-primary)20%,transparent)}}.border-primary\/30{border-color:#0e7a5c4d}@supports (color:color-mix(in lab, red, red)){.border-primary\/30{border-color:color-mix(in oklab,var(--color-primary)30%,transparent)}}.border-primary\/40{border-color:#0e7a5c66}@supports (color:color-mix(in lab, red, red)){.border-primary\/40{border-color:color-mix(in oklab,var(--color-primary)40%,transparent)}}.border-primary\/50{border-color:#0e7a5c80}@supports (color:color-mix(in lab, red, red)){.border-primary\/50{border-color:color-mix(in oklab,var(--color-primary)50%,transparent)}}.border-purple-200{border-color:var(--color-purple-200)}.border-red-500\/20{border-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.border-red-500\/20{border-color:color-mix(in oklab,var(--color-red-500)20%,transparent)}}.border-saturated\/10{border-color:#10a3791a}@supports (color:color-mix(in lab, red, red)){.border-saturated\/10{border-color:color-mix(in oklab,var(--color-saturated)10%,transparent)}}.border-transparent{border-color:#0000}.border-white\/5{border-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.border-white\/5{border-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.border-white\/10{border-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.border-white\/20{border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.border-white\/20{border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.border-white\/30{border-color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.border-white\/30{border-color:color-mix(in oklab,var(--color-white)30%,transparent)}}.border-white\/40{border-color:#fff6}@supports (color:color-mix(in lab, red, red)){.border-white\/40{border-color:color-mix(in oklab,var(--color-white)40%,transparent)}}.border-white\/60{border-color:#fff9}@supports (color:color-mix(in lab, red, red)){.border-white\/60{border-color:color-mix(in oklab,var(--color-white)60%,transparent)}}.border-white\/\[0\.04\]{border-color:#ffffff0a}@supports (color:color-mix(in lab, red, red)){.border-white\/\[0\.04\]{border-color:color-mix(in oklab,var(--color-white)4%,transparent)}}.border-white\/\[0\.06\]{border-color:#ffffff0f}@supports (color:color-mix(in lab, red, red)){.border-white\/\[0\.06\]{border-color:color-mix(in oklab,var(--color-white)6%,transparent)}}.border-white\/\[0\.08\]{border-color:#ffffff14}@supports (color:color-mix(in lab, red, red)){.border-white\/\[0\.08\]{border-color:color-mix(in oklab,var(--color-white)8%,transparent)}}.border-yellow-200{border-color:var(--color-yellow-200)}.bg-\[\#0a192f\]{background-color:#0a192f}.bg-\[\#0a192f\]\/30{background-color:oklab(21.3588% -.0100861 -.047253/.3)}.bg-\[\#000a18\]\/90{background-color:oklab(14.1232% -.0143141 -.0349624/.9)}.bg-accent{background-color:var(--color-accent)}.bg-accent-dark{background-color:var(--color-accent-dark)}.bg-accent-light{background-color:var(--color-accent-light)}.bg-accent\/5{background-color:#82ed200d}@supports (color:color-mix(in lab, red, red)){.bg-accent\/5{background-color:color-mix(in oklab,var(--color-accent)5%,transparent)}}.bg-accent\/10{background-color:#82ed201a}@supports (color:color-mix(in lab, red, red)){.bg-accent\/10{background-color:color-mix(in oklab,var(--color-accent)10%,transparent)}}.bg-accent\/20{background-color:#82ed2033}@supports (color:color-mix(in lab, red, red)){.bg-accent\/20{background-color:color-mix(in oklab,var(--color-accent)20%,transparent)}}.bg-accent\/40{background-color:#82ed2066}@supports (color:color-mix(in lab, red, red)){.bg-accent\/40{background-color:color-mix(in oklab,var(--color-accent)40%,transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\/60{background-color:color-mix(in oklab,var(--color-black)60%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-destructive{background-color:var(--color-destructive)}.bg-destructive\/5{background-color:#ef44440d}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/5{background-color:color-mix(in oklab,var(--color-destructive)5%,transparent)}}.bg-destructive\/90{background-color:#ef4444e6}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/90{background-color:color-mix(in oklab,var(--color-destructive)90%,transparent)}}.bg-emerald-500\/20{background-color:#00bb7f33}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/20{background-color:color-mix(in oklab,var(--color-emerald-500)20%,transparent)}}.bg-green-50{background-color:var(--color-green-50)}.bg-neutral{background-color:var(--color-neutral)}.bg-neutral-50{background-color:var(--color-neutral-50)}.bg-neutral-100{background-color:var(--color-neutral-100)}.bg-neutral-200{background-color:var(--color-neutral-200)}.bg-neutral-300{background-color:var(--color-neutral-300)}.bg-neutral-400{background-color:var(--color-neutral-400)}.bg-neutral-800{background-color:var(--color-neutral-800)}.bg-neutral-dark{background-color:var(--color-neutral-dark)}.bg-neutral-dark\/10{background-color:#0a0a0a1a}@supports (color:color-mix(in lab, red, red)){.bg-neutral-dark\/10{background-color:color-mix(in oklab,var(--color-neutral-dark)10%,transparent)}}.bg-neutral-dark\/20{background-color:#0a0a0a33}@supports (color:color-mix(in lab, red, red)){.bg-neutral-dark\/20{background-color:color-mix(in oklab,var(--color-neutral-dark)20%,transparent)}}.bg-neutral-dark\/40{background-color:#0a0a0a66}@supports (color:color-mix(in lab, red, red)){.bg-neutral-dark\/40{background-color:color-mix(in oklab,var(--color-neutral-dark)40%,transparent)}}.bg-neutral-dark\/80{background-color:#0a0a0acc}@supports (color:color-mix(in lab, red, red)){.bg-neutral-dark\/80{background-color:color-mix(in oklab,var(--color-neutral-dark)80%,transparent)}}.bg-neutral-light{background-color:var(--color-neutral-light)}.bg-neutral-light\/50{background-color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.bg-neutral-light\/50{background-color:color-mix(in oklab,var(--color-neutral-light)50%,transparent)}}.bg-neutral-light\/90{background-color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.bg-neutral-light\/90{background-color:color-mix(in oklab,var(--color-neutral-light)90%,transparent)}}.bg-neutral-medium{background-color:var(--color-neutral-medium)}.bg-primary{background-color:var(--color-primary)}.bg-primary-dark{background-color:var(--color-primary-dark)}.bg-primary-dark\/20{background-color:#084c3933}@supports (color:color-mix(in lab, red, red)){.bg-primary-dark\/20{background-color:color-mix(in oklab,var(--color-primary-dark)20%,transparent)}}.bg-primary-dark\/40{background-color:#084c3966}@supports (color:color-mix(in lab, red, red)){.bg-primary-dark\/40{background-color:color-mix(in oklab,var(--color-primary-dark)40%,transparent)}}.bg-primary-dark\/50{background-color:#084c3980}@supports (color:color-mix(in lab, red, red)){.bg-primary-dark\/50{background-color:color-mix(in oklab,var(--color-primary-dark)50%,transparent)}}.bg-primary-dark\/60{background-color:#084c3999}@supports (color:color-mix(in lab, red, red)){.bg-primary-dark\/60{background-color:color-mix(in oklab,var(--color-primary-dark)60%,transparent)}}.bg-primary-dark\/90{background-color:#084c39e6}@supports (color:color-mix(in lab, red, red)){.bg-primary-dark\/90{background-color:color-mix(in oklab,var(--color-primary-dark)90%,transparent)}}.bg-primary-light{background-color:var(--color-primary-light)}.bg-primary-light\/10{background-color:#e6f5f01a}@supports (color:color-mix(in lab, red, red)){.bg-primary-light\/10{background-color:color-mix(in oklab,var(--color-primary-light)10%,transparent)}}.bg-primary\/5{background-color:#0e7a5c0d}@supports (color:color-mix(in lab, red, red)){.bg-primary\/5{background-color:color-mix(in oklab,var(--color-primary)5%,transparent)}}.bg-primary\/10{background-color:#0e7a5c1a}@supports (color:color-mix(in lab, red, red)){.bg-primary\/10{background-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.bg-primary\/20{background-color:#0e7a5c33}@supports (color:color-mix(in lab, red, red)){.bg-primary\/20{background-color:color-mix(in oklab,var(--color-primary)20%,transparent)}}.bg-primary\/30{background-color:#0e7a5c4d}@supports (color:color-mix(in lab, red, red)){.bg-primary\/30{background-color:color-mix(in oklab,var(--color-primary)30%,transparent)}}.bg-primary\/70{background-color:#0e7a5cb3}@supports (color:color-mix(in lab, red, red)){.bg-primary\/70{background-color:color-mix(in oklab,var(--color-primary)70%,transparent)}}.bg-primary\/80{background-color:#0e7a5ccc}@supports (color:color-mix(in lab, red, red)){.bg-primary\/80{background-color:color-mix(in oklab,var(--color-primary)80%,transparent)}}.bg-primary\/95{background-color:#0e7a5cf2}@supports (color:color-mix(in lab, red, red)){.bg-primary\/95{background-color:color-mix(in oklab,var(--color-primary)95%,transparent)}}.bg-purple-50{background-color:var(--color-purple-50)}.bg-red-500\/\[0\.06\]{background-color:#fb2c360f}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/\[0\.06\]{background-color:color-mix(in oklab,var(--color-red-500)6%,transparent)}}.bg-saturated{background-color:var(--color-saturated)}.bg-saturated\/5{background-color:#10a3790d}@supports (color:color-mix(in lab, red, red)){.bg-saturated\/5{background-color:color-mix(in oklab,var(--color-saturated)5%,transparent)}}.bg-saturated\/10{background-color:#10a3791a}@supports (color:color-mix(in lab, red, red)){.bg-saturated\/10{background-color:color-mix(in oklab,var(--color-saturated)10%,transparent)}}.bg-saturated\/30{background-color:#10a3794d}@supports (color:color-mix(in lab, red, red)){.bg-saturated\/30{background-color:color-mix(in oklab,var(--color-saturated)30%,transparent)}}.bg-secondary{background-color:var(--color-secondary)}.bg-secondary-light{background-color:var(--color-secondary-light)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/5{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.bg-white\/5{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.bg-white\/10{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.bg-white\/20{background-color:#fff3}@supports (color:color-mix(in lab, red, red)){.bg-white\/20{background-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.bg-white\/30{background-color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.bg-white\/30{background-color:color-mix(in oklab,var(--color-white)30%,transparent)}}.bg-white\/\[0\.03\]{background-color:#ffffff08}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[0\.03\]{background-color:color-mix(in oklab,var(--color-white)3%,transparent)}}.bg-white\/\[0\.04\]{background-color:#ffffff0a}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[0\.04\]{background-color:color-mix(in oklab,var(--color-white)4%,transparent)}}.bg-white\/\[0\.05\]{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[0\.05\]{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.bg-white\/\[0\.08\]{background-color:#ffffff14}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[0\.08\]{background-color:color-mix(in oklab,var(--color-white)8%,transparent)}}.bg-yellow-50{background-color:var(--color-yellow-50)}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-l{--tw-gradient-position:to left in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-tr{--tw-gradient-position:to top right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-\[radial-gradient\(\#3b82f6_1px\,transparent_1px\)\]{background-image:radial-gradient(#3b82f6 1px,#0000 1px)}.bg-\[radial-gradient\(circle_at_center\,_var\(--tw-gradient-stops\)\)\]{background-image:radial-gradient(circle at center,var(--tw-gradient-stops))}.bg-\[radial-gradient\(ellipse_at_center\,_var\(--tw-gradient-stops\)\)\]{background-image:radial-gradient(ellipse at center,var(--tw-gradient-stops))}.bg-\[url\(\'\/grid\.svg\'\)\]{background-image:url(/grid.svg)}.from-\[\#0a192f\]\/90{--tw-gradient-from:oklab(21.3588% -.0100861 -.047253/.9);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-accent{--tw-gradient-from:var(--color-accent);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-accent\/5{--tw-gradient-from:#82ed200d}@supports (color:color-mix(in lab, red, red)){.from-accent\/5{--tw-gradient-from:color-mix(in oklab,var(--color-accent)5%,transparent)}}.from-accent\/5{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-accent\/50{--tw-gradient-from:#82ed2080}@supports (color:color-mix(in lab, red, red)){.from-accent\/50{--tw-gradient-from:color-mix(in oklab,var(--color-accent)50%,transparent)}}.from-accent\/50{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-black\/80{--tw-gradient-from:#000c}@supports (color:color-mix(in lab, red, red)){.from-black\/80{--tw-gradient-from:color-mix(in oklab,var(--color-black)80%,transparent)}}.from-black\/80{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-black\/90{--tw-gradient-from:#000000e6}@supports (color:color-mix(in lab, red, red)){.from-black\/90{--tw-gradient-from:color-mix(in oklab,var(--color-black)90%,transparent)}}.from-black\/90{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-blue-50\/50{--tw-gradient-from:#eff6ff80}@supports (color:color-mix(in lab, red, red)){.from-blue-50\/50{--tw-gradient-from:color-mix(in oklab,var(--color-blue-50)50%,transparent)}}.from-blue-50\/50{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-emerald-500{--tw-gradient-from:var(--color-emerald-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-neutral-dark{--tw-gradient-from:var(--color-neutral-dark);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-neutral-dark\/90{--tw-gradient-from:#0a0a0ae6}@supports (color:color-mix(in lab, red, red)){.from-neutral-dark\/90{--tw-gradient-from:color-mix(in oklab,var(--color-neutral-dark)90%,transparent)}}.from-neutral-dark\/90{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-neutral-dark\/95{--tw-gradient-from:#0a0a0af2}@supports (color:color-mix(in lab, red, red)){.from-neutral-dark\/95{--tw-gradient-from:color-mix(in oklab,var(--color-neutral-dark)95%,transparent)}}.from-neutral-dark\/95{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-primary{--tw-gradient-from:var(--color-primary);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-primary-dark\/60{--tw-gradient-from:#084c3999}@supports (color:color-mix(in lab, red, red)){.from-primary-dark\/60{--tw-gradient-from:color-mix(in oklab,var(--color-primary-dark)60%,transparent)}}.from-primary-dark\/60{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-primary-dark\/80{--tw-gradient-from:#084c39cc}@supports (color:color-mix(in lab, red, red)){.from-primary-dark\/80{--tw-gradient-from:color-mix(in oklab,var(--color-primary-dark)80%,transparent)}}.from-primary-dark\/80{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-primary\/5{--tw-gradient-from:#0e7a5c0d}@supports (color:color-mix(in lab, red, red)){.from-primary\/5{--tw-gradient-from:color-mix(in oklab,var(--color-primary)5%,transparent)}}.from-primary\/5{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-primary\/10{--tw-gradient-from:#0e7a5c1a}@supports (color:color-mix(in lab, red, red)){.from-primary\/10{--tw-gradient-from:color-mix(in oklab,var(--color-primary)10%,transparent)}}.from-primary\/10{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-primary\/60{--tw-gradient-from:#0e7a5c99}@supports (color:color-mix(in lab, red, red)){.from-primary\/60{--tw-gradient-from:color-mix(in oklab,var(--color-primary)60%,transparent)}}.from-primary\/60{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-saturated\/50{--tw-gradient-from:#10a37980}@supports (color:color-mix(in lab, red, red)){.from-saturated\/50{--tw-gradient-from:color-mix(in oklab,var(--color-saturated)50%,transparent)}}.from-saturated\/50{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-transparent{--tw-gradient-from:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-white{--tw-gradient-from:var(--color-white);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-white\/5{--tw-gradient-from:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.from-white\/5{--tw-gradient-from:color-mix(in oklab,var(--color-white)5%,transparent)}}.from-white\/5{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-white\/10{--tw-gradient-from:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.from-white\/10{--tw-gradient-from:color-mix(in oklab,var(--color-white)10%,transparent)}}.from-white\/10{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-white\/20{--tw-gradient-from:#fff3}@supports (color:color-mix(in lab, red, red)){.from-white\/20{--tw-gradient-from:color-mix(in oklab,var(--color-white)20%,transparent)}}.from-white\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-white\/60{--tw-gradient-from:#fff9}@supports (color:color-mix(in lab, red, red)){.from-white\/60{--tw-gradient-from:color-mix(in oklab,var(--color-white)60%,transparent)}}.from-white\/60{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-white\/\[0\.06\]{--tw-gradient-from:#ffffff0f}@supports (color:color-mix(in lab, red, red)){.from-white\/\[0\.06\]{--tw-gradient-from:color-mix(in oklab,var(--color-white)6%,transparent)}}.from-white\/\[0\.06\]{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.via-\[\#0a192f\]\/60{--tw-gradient-via:oklab(21.3588% -.0100861 -.047253/.6);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-black\/20{--tw-gradient-via:#0003}@supports (color:color-mix(in lab, red, red)){.via-black\/20{--tw-gradient-via:color-mix(in oklab,var(--color-black)20%,transparent)}}.via-black\/20{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-black\/30{--tw-gradient-via:#0000004d}@supports (color:color-mix(in lab, red, red)){.via-black\/30{--tw-gradient-via:color-mix(in oklab,var(--color-black)30%,transparent)}}.via-black\/30{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-neutral-900{--tw-gradient-via:var(--color-neutral-900);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-neutral-dark\/40{--tw-gradient-via:#0a0a0a66}@supports (color:color-mix(in lab, red, red)){.via-neutral-dark\/40{--tw-gradient-via:color-mix(in oklab,var(--color-neutral-dark)40%,transparent)}}.via-neutral-dark\/40{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-neutral-dark\/60{--tw-gradient-via:#0a0a0a99}@supports (color:color-mix(in lab, red, red)){.via-neutral-dark\/60{--tw-gradient-via:color-mix(in oklab,var(--color-neutral-dark)60%,transparent)}}.via-neutral-dark\/60{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-neutral-dark\/70{--tw-gradient-via:#0a0a0ab3}@supports (color:color-mix(in lab, red, red)){.via-neutral-dark\/70{--tw-gradient-via:color-mix(in oklab,var(--color-neutral-dark)70%,transparent)}}.via-neutral-dark\/70{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-primary-dark\/40{--tw-gradient-via:#084c3966}@supports (color:color-mix(in lab, red, red)){.via-primary-dark\/40{--tw-gradient-via:color-mix(in oklab,var(--color-primary-dark)40%,transparent)}}.via-primary-dark\/40{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-primary\/20{--tw-gradient-via:#0e7a5c33}@supports (color:color-mix(in lab, red, red)){.via-primary\/20{--tw-gradient-via:color-mix(in oklab,var(--color-primary)20%,transparent)}}.via-primary\/20{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-primary\/40{--tw-gradient-via:#0e7a5c66}@supports (color:color-mix(in lab, red, red)){.via-primary\/40{--tw-gradient-via:color-mix(in oklab,var(--color-primary)40%,transparent)}}.via-primary\/40{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-saturated{--tw-gradient-via:var(--color-saturated);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-teal-400{--tw-gradient-via:var(--color-teal-400);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-transparent{--tw-gradient-via:transparent;--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-white\/10{--tw-gradient-via:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.via-white\/10{--tw-gradient-via:color-mix(in oklab,var(--color-white)10%,transparent)}}.via-white\/10{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-white\/80{--tw-gradient-via:#fffc}@supports (color:color-mix(in lab, red, red)){.via-white\/80{--tw-gradient-via:color-mix(in oklab,var(--color-white)80%,transparent)}}.via-white\/80{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-\[\#0a192f\]\/40{--tw-gradient-to:oklab(21.3588% -.0100861 -.047253/.4);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-accent{--tw-gradient-to:var(--color-accent);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-black\/80{--tw-gradient-to:#000c}@supports (color:color-mix(in lab, red, red)){.to-black\/80{--tw-gradient-to:color-mix(in oklab,var(--color-black)80%,transparent)}}.to-black\/80{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-emerald-500{--tw-gradient-to:var(--color-emerald-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-neutral-dark{--tw-gradient-to:var(--color-neutral-dark);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-primary-dark\/80{--tw-gradient-to:#084c39cc}@supports (color:color-mix(in lab, red, red)){.to-primary-dark\/80{--tw-gradient-to:color-mix(in oklab,var(--color-primary-dark)80%,transparent)}}.to-primary-dark\/80{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-primary-light{--tw-gradient-to:var(--color-primary-light);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-primary\/9{--tw-gradient-to:#0e7a5c17}@supports (color:color-mix(in lab, red, red)){.to-primary\/9{--tw-gradient-to:color-mix(in oklab,var(--color-primary)9%,transparent)}}.to-primary\/9{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-primary\/60{--tw-gradient-to:#0e7a5c99}@supports (color:color-mix(in lab, red, red)){.to-primary\/60{--tw-gradient-to:color-mix(in oklab,var(--color-primary)60%,transparent)}}.to-primary\/60{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-white\/\[0\.02\]{--tw-gradient-to:#ffffff05}@supports (color:color-mix(in lab, red, red)){.to-white\/\[0\.02\]{--tw-gradient-to:color-mix(in oklab,var(--color-white)2%,transparent)}}.to-white\/\[0\.02\]{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.\[background-size\:40px_40px\]{background-size:40px 40px}.bg-cover{background-size:cover}.bg-repeat{background-repeat:repeat}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-center{-o-object-position:center;object-position:center}.object-left{-o-object-position:left;object-position:left}.p-0{padding:calc(var(--spacing)*0)}.p-0\.5{padding:calc(var(--spacing)*.5)}.p-1{padding:calc(var(--spacing)*1)}.p-1\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.p-10{padding:calc(var(--spacing)*10)}.p-12{padding:calc(var(--spacing)*12)}.p-35{padding:calc(var(--spacing)*35)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.px-12{padding-inline:calc(var(--spacing)*12)}.px-\[calc\(\(100vw-min\(100\%\,1280px\)\)\/2\)\]{padding-inline:calc(50vw - min(100%,1280px)/2)}.py-0{padding-block:calc(var(--spacing)*0)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-3\.5{padding-block:calc(var(--spacing)*3.5)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-12{padding-block:calc(var(--spacing)*12)}.py-16{padding-block:calc(var(--spacing)*16)}.py-20{padding-block:calc(var(--spacing)*20)}.py-24{padding-block:calc(var(--spacing)*24)}.py-32{padding-block:calc(var(--spacing)*32)}.safe-area-p{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);padding-top:max(1rem,env(safe-area-inset-top));padding-bottom:max(1rem,env(safe-area-inset-bottom));padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right))}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-3{padding-top:calc(var(--spacing)*3)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-6{padding-top:calc(var(--spacing)*6)}.pt-8{padding-top:calc(var(--spacing)*8)}.pt-10{padding-top:calc(var(--spacing)*10)}.pt-24{padding-top:calc(var(--spacing)*24)}.pt-32{padding-top:calc(var(--spacing)*32)}.pt-40{padding-top:calc(var(--spacing)*40)}.pr-2{padding-right:calc(var(--spacing)*2)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-5{padding-bottom:calc(var(--spacing)*5)}.pb-6{padding-bottom:calc(var(--spacing)*6)}.pb-8{padding-bottom:calc(var(--spacing)*8)}.pb-12{padding-bottom:calc(var(--spacing)*12)}.pb-16{padding-bottom:calc(var(--spacing)*16)}.pb-20{padding-bottom:calc(var(--spacing)*20)}.pb-24{padding-bottom:calc(var(--spacing)*24)}.pl-5{padding-left:calc(var(--spacing)*5)}.pl-6{padding-left:calc(var(--spacing)*6)}.pl-8{padding-left:calc(var(--spacing)*8)}.pl-9{padding-left:calc(var(--spacing)*9)}.pl-16{padding-left:calc(var(--spacing)*16)}.pl-20{padding-left:calc(var(--spacing)*20)}.text-center{text-align:center}@media (max-width:767px){.text-center-mobile{text-align:center}.text-end-mobile{text-align:right}}.text-left{text-align:left}.text-right{text-align:right}@media (max-width:767px){.text-start-mobile{text-align:left}}.font-heading{font-family:var(--font-heading)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:1.5rem;line-height:var(--tw-leading,1.5)}.text-3xl{font-size:1.875rem;line-height:var(--tw-leading,1.4)}.text-4xl{font-size:2.25rem;line-height:var(--tw-leading,1.3)}.text-5xl{font-size:3rem;line-height:var(--tw-leading,1.25)}.text-6xl{font-size:3.75rem;line-height:var(--tw-leading,1.2)}.text-base{font-size:1rem;line-height:var(--tw-leading,1.7)}.text-lg{font-size:1.125rem;line-height:var(--tw-leading,1.7)}.text-sm{font-size:.875rem;line-height:var(--tw-leading,1.6)}.text-xl{font-size:1.25rem;line-height:var(--tw-leading,1.6)}.text-xs{font-size:.75rem;line-height:var(--tw-leading,1.6)}.text-\[7px\]{font-size:7px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[20rem\]{font-size:20rem}.leading-\[1\.1\]{--tw-leading:1.1;line-height:1.1}.leading-\[1\.2\]{--tw-leading:1.2;line-height:1.2}.leading-\[1\.3\]{--tw-leading:1.3;line-height:1.3}.leading-\[1\.4\]{--tw-leading:1.4;line-height:1.4}.leading-\[1\.5\]{--tw-leading:1.5;line-height:1.5}.leading-\[1\.6\]{--tw-leading:1.6;line-height:1.6}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:700;font-weight:700}.font-extrabold{--tw-font-weight:800;font-weight:800}.font-extralight{--tw-font-weight:var(--font-weight-extralight);font-weight:var(--font-weight-extralight)}.font-medium{--tw-font-weight:500;font-weight:500}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:600;font-weight:600}.tracking-\[0\.2em\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-\[0\.3em\]{--tw-tracking:.3em;letter-spacing:.3em}.tracking-\[0\.15em\]{--tw-tracking:.15em;letter-spacing:.15em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent{color:var(--color-accent)}.text-accent-dark{color:var(--color-accent-dark)}.text-accent\/30{color:#82ed204d}@supports (color:color-mix(in lab, red, red)){.text-accent\/30{color:color-mix(in oklab,var(--color-accent)30%,transparent)}}.text-accent\/40{color:#82ed2066}@supports (color:color-mix(in lab, red, red)){.text-accent\/40{color:color-mix(in oklab,var(--color-accent)40%,transparent)}}.text-accent\/50{color:#82ed2080}@supports (color:color-mix(in lab, red, red)){.text-accent\/50{color:color-mix(in oklab,var(--color-accent)50%,transparent)}}.text-accent\/60{color:#82ed2099}@supports (color:color-mix(in lab, red, red)){.text-accent\/60{color:color-mix(in oklab,var(--color-accent)60%,transparent)}}.text-accent\/80{color:#82ed20cc}@supports (color:color-mix(in lab, red, red)){.text-accent\/80{color:color-mix(in oklab,var(--color-accent)80%,transparent)}}.text-blue-500{color:var(--color-blue-500)}.text-blue-900{color:var(--color-blue-900)}.text-destructive{color:var(--color-destructive)}.text-destructive-foreground{color:var(--color-destructive-foreground)}.text-destructive\/80{color:#ef4444cc}@supports (color:color-mix(in lab, red, red)){.text-destructive\/80{color:color-mix(in oklab,var(--color-destructive)80%,transparent)}}.text-emerald-400{color:var(--color-emerald-400)}.text-green-500{color:var(--color-green-500)}.text-green-900{color:var(--color-green-900)}.text-neutral-400{color:var(--color-neutral-400)}.text-neutral-600{color:var(--color-neutral-600)}.text-neutral-dark{color:var(--color-neutral-dark)}.text-neutral-light{color:var(--color-neutral-light)}.text-orange-600{color:var(--color-orange-600)}.text-primary{color:var(--color-primary)}.text-primary-dark{color:var(--color-primary-dark)}.text-primary-light{color:var(--color-primary-light)}.text-primary\/20{color:#0e7a5c33}@supports (color:color-mix(in lab, red, red)){.text-primary\/20{color:color-mix(in oklab,var(--color-primary)20%,transparent)}}.text-primary\/40{color:#0e7a5c66}@supports (color:color-mix(in lab, red, red)){.text-primary\/40{color:color-mix(in oklab,var(--color-primary)40%,transparent)}}.text-primary\/60{color:#0e7a5c99}@supports (color:color-mix(in lab, red, red)){.text-primary\/60{color:color-mix(in oklab,var(--color-primary)60%,transparent)}}.text-primary\/80{color:#0e7a5ccc}@supports (color:color-mix(in lab, red, red)){.text-primary\/80{color:color-mix(in oklab,var(--color-primary)80%,transparent)}}.text-primary\/90{color:#0e7a5ce6}@supports (color:color-mix(in lab, red, red)){.text-primary\/90{color:color-mix(in oklab,var(--color-primary)90%,transparent)}}.text-purple-500{color:var(--color-purple-500)}.text-purple-900{color:var(--color-purple-900)}.text-red-300{color:var(--color-red-300)}.text-red-300\/50{color:#ffa3a380}@supports (color:color-mix(in lab, red, red)){.text-red-300\/50{color:color-mix(in oklab,var(--color-red-300)50%,transparent)}}.text-red-300\/60{color:#ffa3a399}@supports (color:color-mix(in lab, red, red)){.text-red-300\/60{color:color-mix(in oklab,var(--color-red-300)60%,transparent)}}.text-saturated{color:var(--color-saturated)}.text-saturated\/40{color:#10a37966}@supports (color:color-mix(in lab, red, red)){.text-saturated\/40{color:color-mix(in oklab,var(--color-saturated)40%,transparent)}}.text-text-light{color:var(--color-text-light)}.text-text-primary{color:var(--color-text-primary)}.text-text-primary\/70{color:#111827b3}@supports (color:color-mix(in lab, red, red)){.text-text-primary\/70{color:color-mix(in oklab,var(--color-text-primary)70%,transparent)}}.text-text-primary\/80{color:#111827cc}@supports (color:color-mix(in lab, red, red)){.text-text-primary\/80{color:color-mix(in oklab,var(--color-text-primary)80%,transparent)}}.text-text-secondary{color:var(--color-text-secondary)}.text-text-secondary\/40{color:#4b556366}@supports (color:color-mix(in lab, red, red)){.text-text-secondary\/40{color:color-mix(in oklab,var(--color-text-secondary)40%,transparent)}}.text-text-secondary\/80{color:#4b5563cc}@supports (color:color-mix(in lab, red, red)){.text-text-secondary\/80{color:color-mix(in oklab,var(--color-text-secondary)80%,transparent)}}.text-white{color:var(--color-white)}.text-white\/15{color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.text-white\/15{color:color-mix(in oklab,var(--color-white)15%,transparent)}}.text-white\/20{color:#fff3}@supports (color:color-mix(in lab, red, red)){.text-white\/20{color:color-mix(in oklab,var(--color-white)20%,transparent)}}.text-white\/25{color:#ffffff40}@supports (color:color-mix(in lab, red, red)){.text-white\/25{color:color-mix(in oklab,var(--color-white)25%,transparent)}}.text-white\/30{color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.text-white\/30{color:color-mix(in oklab,var(--color-white)30%,transparent)}}.text-white\/40{color:#fff6}@supports (color:color-mix(in lab, red, red)){.text-white\/40{color:color-mix(in oklab,var(--color-white)40%,transparent)}}.text-white\/50{color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.text-white\/50{color:color-mix(in oklab,var(--color-white)50%,transparent)}}.text-white\/60{color:#fff9}@supports (color:color-mix(in lab, red, red)){.text-white\/60{color:color-mix(in oklab,var(--color-white)60%,transparent)}}.text-white\/70{color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.text-white\/70{color:color-mix(in oklab,var(--color-white)70%,transparent)}}.text-white\/80{color:#fffc}@supports (color:color-mix(in lab, red, red)){.text-white\/80{color:color-mix(in oklab,var(--color-white)80%,transparent)}}.text-white\/90{color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.text-white\/90{color:color-mix(in oklab,var(--color-white)90%,transparent)}}.text-yellow-500{color:var(--color-yellow-500)}.text-yellow-900{color:var(--color-yellow-900)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.decoration-2{text-decoration-thickness:2px}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-10{opacity:.1}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-100{opacity:1}.opacity-\[0\.03\]{opacity:.03}.mix-blend-multiply{mix-blend-mode:multiply}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_20px_-4px_rgba\(130\,237\,32\,0\.1\)\]{--tw-shadow:0 0 20px -4px var(--tw-shadow-color,#82ed201a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_30px_rgba\(17\,124\,97\,0\.15\)\]{--tw-shadow:0 0 30px var(--tw-shadow-color,#117c6126);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_32px_64px_-12px_rgba\(0\,0\,0\,0\.6\)\]{--tw-shadow:0 32px 64px -12px var(--tw-shadow-color,#0009);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_40px_100px_-20px_rgba\(0\,0\,0\,0\.6\)\]{--tw-shadow:0 40px 100px -20px var(--tw-shadow-color,#0009);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -2px var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -1px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 10px 10px -5px var(--tw-shadow-color,#0000000a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-accent\/20{--tw-shadow-color:#82ed2033}@supports (color:color-mix(in lab, red, red)){.shadow-accent\/20{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-accent)20%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-destructive\/20{--tw-shadow-color:#ef444433}@supports (color:color-mix(in lab, red, red)){.shadow-destructive\/20{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-destructive)20%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-saturated\/20{--tw-shadow-color:#10a37933}@supports (color:color-mix(in lab, red, red)){.shadow-saturated\/20{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-saturated)20%,transparent)var(--tw-shadow-alpha),transparent)}}.ring-accent{--tw-ring-color:var(--color-accent)}.ring-white\/20{--tw-ring-color:#fff3}@supports (color:color-mix(in lab, red, red)){.ring-white\/20{--tw-ring-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.blur-2xl{--tw-blur:blur(var(--blur-2xl));filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.blur-3xl{--tw-blur:blur(var(--blur-3xl));filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.blur-\[80px\]{--tw-blur:blur(80px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.blur-xl{--tw-blur:blur(var(--blur-xl));filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.brightness-0{--tw-brightness:brightness(0%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.brightness-90{--tw-brightness:brightness(90%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.contrast-125{--tw-contrast:contrast(125%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a))drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a)drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.drop-shadow-2xl{--tw-drop-shadow-size:drop-shadow(0 25px 25px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-2xl));filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.drop-shadow-\[0_20px_30px_rgba\(0\,0\,0\,0\.4\)\]{--tw-drop-shadow-size:drop-shadow(0 20px 30px var(--tw-drop-shadow-color,#0006));--tw-drop-shadow:var(--tw-drop-shadow-size);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.drop-shadow-lg{--tw-drop-shadow-size:drop-shadow(0 4px 4px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-lg));filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.drop-shadow-md{--tw-drop-shadow-size:drop-shadow(0 3px 3px var(--tw-drop-shadow-color,#0000001f));--tw-drop-shadow:drop-shadow(var(--drop-shadow-md));filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.drop-shadow-sm{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-sm));filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.grayscale-0{--tw-grayscale:grayscale(0%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.grayscale-\[50\%\]{--tw-grayscale:grayscale(50%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.saturate-50{--tw-saturate:saturate(50%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.saturate-110{--tw-saturate:saturate(110%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-2xl{--tw-backdrop-blur:blur(var(--blur-2xl));backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.delay-100{transition-delay:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.duration-1000{--tw-duration:1s;transition-duration:1s}.duration-\[1\.5s\]{--tw-duration:1.5s;transition-duration:1.5s}.duration-\[3s\]{--tw-duration:3s;transition-duration:3s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.content-visibility-auto{content-visibility:auto;contain-intrinsic-size:1px 1000px}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{user-select:none}.\[-ms-overflow-style\:none\]{-ms-overflow-style:none}.\[scrollbar-width\:none\]{scrollbar-width:none}.\[text-shadow\:_-2px_-2px_0_\#002b49\,_2px_-2px_0_\#002b49\,_-2px_2px_0_\#002b49\,_2px_2px_0_\#002b49\,_-2px_0_0_\#002b49\,_2px_0_0_\#002b49\,_0_-2px_0_\#002b49\,_0_2px_0_\#002b49\]{text-shadow:-2px -2px #002b49,2px -2px #002b49,-2px 2px #002b49,2px 2px #002b49,-2px 0 #002b49,2px 0 #002b49,0 -2px #002b49,0 2px #002b49}@media (hover:hover){.group-hover\:max-h-32:is(:where(.group):hover *){max-height:calc(var(--spacing)*32)}.group-hover\:w-16:is(:where(.group):hover *){width:calc(var(--spacing)*16)}.group-hover\:w-full:is(:where(.group):hover *){width:100%}.group-hover\:-translate-x-1:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:-translate-x-2:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*-2);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:translate-x-0:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:translate-x-0\.5:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:translate-x-1:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:translate-x-1\/3:is(:where(.group):hover *){--tw-translate-x:calc(1/3*100%);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:translate-x-2:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*2);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:-translate-y-4:is(:where(.group):hover *){--tw-translate-y:calc(var(--spacing)*-4);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:translate-y-0:is(:where(.group):hover *){--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:scale-12:is(:where(.group):hover *){--tw-scale-x:12%;--tw-scale-y:12%;--tw-scale-z:12%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:scale-100:is(:where(.group):hover *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:scale-105:is(:where(.group):hover *){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:scale-110:is(:where(.group):hover *){--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:rotate-3:is(:where(.group):hover *){rotate:3deg}.group-hover\:rotate-90:is(:where(.group):hover *){rotate:90deg}.group-hover\:border-\[8px\]:is(:where(.group):hover *){border-style:var(--tw-border-style);border-width:8px}.group-hover\:border-\[16px\]:is(:where(.group):hover *){border-style:var(--tw-border-style);border-width:16px}.group-hover\:border-accent:is(:where(.group):hover *){border-color:var(--color-accent)}.group-hover\:border-accent\/40:is(:where(.group):hover *){border-color:#82ed2066}@supports (color:color-mix(in lab, red, red)){.group-hover\:border-accent\/40:is(:where(.group):hover *){border-color:color-mix(in oklab,var(--color-accent)40%,transparent)}}.group-hover\:border-white\/20:is(:where(.group):hover *){border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.group-hover\:border-white\/20:is(:where(.group):hover *){border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.group-hover\:bg-accent:is(:where(.group):hover *){background-color:var(--color-accent)}.group-hover\:bg-black\/50:is(:where(.group):hover *){background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.group-hover\:bg-black\/50:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.group-hover\:bg-emerald-600:is(:where(.group):hover *){background-color:var(--color-emerald-600)}.group-hover\:bg-neutral-dark\/5:is(:where(.group):hover *){background-color:#0a0a0a0d}@supports (color:color-mix(in lab, red, red)){.group-hover\:bg-neutral-dark\/5:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-neutral-dark)5%,transparent)}}.group-hover\:bg-neutral-light\/50:is(:where(.group):hover *){background-color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.group-hover\:bg-neutral-light\/50:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-neutral-light)50%,transparent)}}.group-hover\:bg-primary:is(:where(.group):hover *){background-color:var(--color-primary)}.group-hover\:bg-primary-dark:is(:where(.group):hover *){background-color:var(--color-primary-dark)}.group-hover\:bg-primary-dark\/60:is(:where(.group):hover *){background-color:#084c3999}@supports (color:color-mix(in lab, red, red)){.group-hover\:bg-primary-dark\/60:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-primary-dark)60%,transparent)}}.group-hover\:bg-primary\/50:is(:where(.group):hover *){background-color:#0e7a5c80}@supports (color:color-mix(in lab, red, red)){.group-hover\:bg-primary\/50:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-primary)50%,transparent)}}.group-hover\:bg-transparent:is(:where(.group):hover *){background-color:#0000}.group-hover\:from-primary\/90:is(:where(.group):hover *){--tw-gradient-from:#0e7a5ce6}@supports (color:color-mix(in lab, red, red)){.group-hover\:from-primary\/90:is(:where(.group):hover *){--tw-gradient-from:color-mix(in oklab,var(--color-primary)90%,transparent)}}.group-hover\:from-primary\/90:is(:where(.group):hover *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.group-hover\:to-primary\/20:is(:where(.group):hover *){--tw-gradient-to:#0e7a5c33}@supports (color:color-mix(in lab, red, red)){.group-hover\:to-primary\/20:is(:where(.group):hover *){--tw-gradient-to:color-mix(in oklab,var(--color-primary)20%,transparent)}}.group-hover\:to-primary\/20:is(:where(.group):hover *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.group-hover\:text-accent:is(:where(.group):hover *){color:var(--color-accent)}.group-hover\:text-accent-dark:is(:where(.group):hover *){color:var(--color-accent-dark)}.group-hover\:text-emerald-400:is(:where(.group):hover *){color:var(--color-emerald-400)}.group-hover\:text-primary:is(:where(.group):hover *){color:var(--color-primary)}.group-hover\:text-primary-dark:is(:where(.group):hover *){color:var(--color-primary-dark)}.group-hover\:text-text-primary:is(:where(.group):hover *){color:var(--color-text-primary)}.group-hover\:text-white:is(:where(.group):hover *){color:var(--color-white)}.group-hover\:underline:is(:where(.group):hover *){text-decoration-line:underline}.group-hover\:opacity-30:is(:where(.group):hover *){opacity:.3}.group-hover\:opacity-40:is(:where(.group):hover *){opacity:.4}.group-hover\:opacity-90:is(:where(.group):hover *){opacity:.9}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\:grayscale-0:is(:where(.group):hover *){--tw-grayscale:grayscale(0%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.group-hover\:saturate-100:is(:where(.group):hover *){--tw-saturate:saturate(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.group-hover\/btn\:translate-x-1:is(:where(.group\/btn):hover *){--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\/btn\:translate-x-2:is(:where(.group\/btn):hover *){--tw-translate-x:calc(var(--spacing)*2);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\/btn\:translate-y-0:is(:where(.group\/btn):hover *){--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\/btn\:text-primary-dark:is(:where(.group\/btn):hover *){color:var(--color-primary-dark)}.group-hover\/btn\:text-white:is(:where(.group\/btn):hover *){color:var(--color-white)}}.group-active\:w-full:is(:where(.group):active *){width:100%}.selection\:bg-primary\/10 ::selection{background-color:#0e7a5c1a}@supports (color:color-mix(in lab, red, red)){.selection\:bg-primary\/10 ::selection{background-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.selection\:bg-primary\/10::selection{background-color:#0e7a5c1a}@supports (color:color-mix(in lab, red, red)){.selection\:bg-primary\/10::selection{background-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.selection\:text-primary ::selection{color:var(--color-primary)}.selection\:text-primary::selection{color:var(--color-primary)}.placeholder\:text-neutral-dark\/40::placeholder{color:#0a0a0a66}@supports (color:color-mix(in lab, red, red)){.placeholder\:text-neutral-dark\/40::placeholder{color:color-mix(in oklab,var(--color-neutral-dark)40%,transparent)}}.placeholder\:text-white\/20::placeholder{color:#fff3}@supports (color:color-mix(in lab, red, red)){.placeholder\:text-white\/20::placeholder{color:color-mix(in oklab,var(--color-white)20%,transparent)}}.placeholder\:text-white\/50::placeholder{color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.placeholder\:text-white\/50::placeholder{color:color-mix(in oklab,var(--color-white)50%,transparent)}}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.last\:pb-0:last-child{padding-bottom:calc(var(--spacing)*0)}.focus-within\:border-accent:focus-within{border-color:var(--color-accent)}.focus-within\:bg-white\/15:focus-within{background-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.focus-within\:bg-white\/15:focus-within{background-color:color-mix(in oklab,var(--color-white)15%,transparent)}}@media (hover:hover){.hover\:translate-x-1:hover{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:-translate-y-1:hover{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:scale-100:hover{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:scale-\[1\.02\]:hover{scale:1.02}.hover\:scale-\[1\.03\]:hover{scale:1.03}.hover\:border-accent:hover{border-color:var(--color-accent)}.hover\:border-accent\/30:hover{border-color:#82ed204d}@supports (color:color-mix(in lab, red, red)){.hover\:border-accent\/30:hover{border-color:color-mix(in oklab,var(--color-accent)30%,transparent)}}.hover\:border-accent\/40:hover{border-color:#82ed2066}@supports (color:color-mix(in lab, red, red)){.hover\:border-accent\/40:hover{border-color:color-mix(in oklab,var(--color-accent)40%,transparent)}}.hover\:border-primary\/20:hover{border-color:#0e7a5c33}@supports (color:color-mix(in lab, red, red)){.hover\:border-primary\/20:hover{border-color:color-mix(in oklab,var(--color-primary)20%,transparent)}}.hover\:border-primary\/50:hover{border-color:#0e7a5c80}@supports (color:color-mix(in lab, red, red)){.hover\:border-primary\/50:hover{border-color:color-mix(in oklab,var(--color-primary)50%,transparent)}}.hover\:border-white:hover{border-color:var(--color-white)}.hover\:border-white\/10:hover{border-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.hover\:border-white\/10:hover{border-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.hover\:border-white\/20:hover{border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.hover\:border-white\/20:hover{border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.hover\:bg-accent:hover{background-color:var(--color-accent)}.hover\:bg-neutral-50:hover{background-color:var(--color-neutral-50)}.hover\:bg-neutral-light:hover{background-color:var(--color-neutral-light)}.hover\:bg-neutral-light\/50:hover{background-color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.hover\:bg-neutral-light\/50:hover{background-color:color-mix(in oklab,var(--color-neutral-light)50%,transparent)}}.hover\:bg-primary:hover{background-color:var(--color-primary)}.hover\:bg-primary-dark:hover{background-color:var(--color-primary-dark)}.hover\:bg-primary\/10:hover{background-color:#0e7a5c1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/10:hover{background-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.hover\:bg-primary\/20:hover{background-color:#0e7a5c33}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/20:hover{background-color:color-mix(in oklab,var(--color-primary)20%,transparent)}}.hover\:bg-primary\/90:hover{background-color:#0e7a5ce6}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--color-primary)90%,transparent)}}.hover\:bg-white:hover{background-color:var(--color-white)}.hover\:bg-white\/5:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/5:hover{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.hover\:bg-white\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/10:hover{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.hover\:bg-white\/\[0\.08\]:hover{background-color:#ffffff14}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/\[0\.08\]:hover{background-color:color-mix(in oklab,var(--color-white)8%,transparent)}}.hover\:text-accent:hover{color:var(--color-accent)}.hover\:text-neutral-dark:hover{color:var(--color-neutral-dark)}.hover\:text-primary:hover{color:var(--color-primary)}.hover\:text-primary-dark:hover{color:var(--color-primary-dark)}.hover\:text-primary-light:hover{color:var(--color-primary-light)}.hover\:text-red-300:hover{color:var(--color-red-300)}.hover\:text-white:hover{color:var(--color-white)}.hover\:text-white\/60:hover{color:#fff9}@supports (color:color-mix(in lab, red, red)){.hover\:text-white\/60:hover{color:color-mix(in oklab,var(--color-white)60%,transparent)}}.hover\:text-white\/80:hover{color:#fffc}@supports (color:color-mix(in lab, red, red)){.hover\:text-white\/80:hover{color:color-mix(in oklab,var(--color-white)80%,transparent)}}.hover\:shadow-2xl:hover{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-\[0_0_20px_rgba\(255\,255\,255\,0\.3\)\]:hover{--tw-shadow:0 0 20px var(--tw-shadow-color,#ffffff4d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-\[0_20px_50px_rgba\(0\,0\,0\,0\.2\)\]:hover{--tw-shadow:0 20px 50px var(--tw-shadow-color,#0003);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -2px var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -1px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 10px 10px -5px var(--tw-shadow-color,#0000000a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-accent\/20:hover{--tw-shadow-color:#82ed2033}@supports (color:color-mix(in lab, red, red)){.hover\:shadow-accent\/20:hover{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-accent)20%,transparent)var(--tw-shadow-alpha),transparent)}}.hover\:shadow-accent\/30:hover{--tw-shadow-color:#82ed204d}@supports (color:color-mix(in lab, red, red)){.hover\:shadow-accent\/30:hover{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-accent)30%,transparent)var(--tw-shadow-alpha),transparent)}}.hover\:shadow-accent\/40:hover{--tw-shadow-color:#82ed2066}@supports (color:color-mix(in lab, red, red)){.hover\:shadow-accent\/40:hover{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-accent)40%,transparent)var(--tw-shadow-alpha),transparent)}}.hover\:shadow-destructive\/30:hover{--tw-shadow-color:#ef44444d}@supports (color:color-mix(in lab, red, red)){.hover\:shadow-destructive\/30:hover{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-destructive)30%,transparent)var(--tw-shadow-alpha),transparent)}}.hover\:shadow-primary\/20:hover{--tw-shadow-color:#0e7a5c33}@supports (color:color-mix(in lab, red, red)){.hover\:shadow-primary\/20:hover{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-primary)20%,transparent)var(--tw-shadow-alpha),transparent)}}.hover\:shadow-primary\/30:hover{--tw-shadow-color:#0e7a5c4d}@supports (color:color-mix(in lab, red, red)){.hover\:shadow-primary\/30:hover{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-primary)30%,transparent)var(--tw-shadow-alpha),transparent)}}.hover\:shadow-secondary\/30:hover{--tw-shadow-color:#003d824d}@supports (color:color-mix(in lab, red, red)){.hover\:shadow-secondary\/30:hover{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-secondary)30%,transparent)var(--tw-shadow-alpha),transparent)}}.hover\:brightness-110:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.hover\:grayscale-0:hover{--tw-grayscale:grayscale(0%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}}.focus\:top-4:focus{top:calc(var(--spacing)*4)}.focus\:border-accent:focus{border-color:var(--color-accent)}.focus\:border-primary:focus{border-color:var(--color-primary)}.focus\:bg-white:focus{background-color:var(--color-white)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-accent\/20:focus{--tw-ring-color:#82ed2033}@supports (color:color-mix(in lab, red, red)){.focus\:ring-accent\/20:focus{--tw-ring-color:color-mix(in oklab,var(--color-accent)20%,transparent)}}.focus\:ring-primary\/20:focus{--tw-ring-color:#0e7a5c33}@supports (color:color-mix(in lab, red, red)){.focus\:ring-primary\/20:focus{--tw-ring-color:color-mix(in oklab,var(--color-primary)20%,transparent)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-primary:focus-visible{--tw-ring-color:var(--color-primary)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.active\:scale-\[0\.98\]:active{scale:.98}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width:640px){.sm\:block{display:block}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:rounded-xl{border-radius:1rem}.sm\:text-5xl{font-size:3rem;line-height:var(--tw-leading,1.25)}}@media (min-width:768px){.md\:absolute{position:absolute}.md\:top-1\/2{top:50%}.md\:bottom-10{bottom:calc(var(--spacing)*10)}.md\:-left-8{left:calc(var(--spacing)*-8)}.md\:left-1\/2{left:50%}.md\:order-none{order:0}.md\:col-span-1{grid-column:span 1/span 1}.md\:col-span-2{grid-column:span 2/span 2}.md\:row-span-2{grid-row:span 2/span 2}.md\:-mx-12{margin-inline:calc(var(--spacing)*-12)}.md\:mx-0{margin-inline:calc(var(--spacing)*0)}.md\:-mt-20{margin-top:calc(var(--spacing)*-20)}.md\:mt-0{margin-top:calc(var(--spacing)*0)}.md\:mt-12{margin-top:calc(var(--spacing)*12)}.md\:mt-24{margin-top:calc(var(--spacing)*24)}.md\:mr-auto{margin-right:auto}.md\:mb-0{margin-bottom:calc(var(--spacing)*0)}.md\:mb-2{margin-bottom:calc(var(--spacing)*2)}.md\:mb-4{margin-bottom:calc(var(--spacing)*4)}.md\:mb-6{margin-bottom:calc(var(--spacing)*6)}.md\:mb-8{margin-bottom:calc(var(--spacing)*8)}.md\:mb-10{margin-bottom:calc(var(--spacing)*10)}.md\:mb-12{margin-bottom:calc(var(--spacing)*12)}.md\:mb-16{margin-bottom:calc(var(--spacing)*16)}.md\:mb-20{margin-bottom:calc(var(--spacing)*20)}.md\:ml-auto{margin-left:auto}.md\:line-clamp-4{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.md\:line-clamp-none{-webkit-line-clamp:unset;-webkit-box-orient:horizontal;display:block;overflow:visible}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-7{height:calc(var(--spacing)*7)}.md\:h-10{height:calc(var(--spacing)*10)}.md\:h-11{height:calc(var(--spacing)*11)}.md\:h-12{height:calc(var(--spacing)*12)}.md\:h-14{height:calc(var(--spacing)*14)}.md\:h-16{height:calc(var(--spacing)*16)}.md\:h-80{height:calc(var(--spacing)*80)}.md\:h-\[70vh\]{height:70vh}.md\:h-\[90vh\]{height:90vh}.md\:h-\[500px\]{height:500px}.md\:h-auto{height:auto}.md\:h-full{height:100%}.md\:max-h-0{max-height:calc(var(--spacing)*0)}.md\:min-h-\[70vh\]{min-height:70vh}.md\:min-h-\[500px\]{min-height:500px}.md\:min-h-\[600px\]{min-height:600px}.md\:w-1\.5{width:calc(var(--spacing)*1.5)}.md\:w-7{width:calc(var(--spacing)*7)}.md\:w-10{width:calc(var(--spacing)*10)}.md\:w-12{width:calc(var(--spacing)*12)}.md\:w-14{width:calc(var(--spacing)*14)}.md\:w-16{width:calc(var(--spacing)*16)}.md\:w-64{width:calc(var(--spacing)*64)}.md\:w-\[480px\]{width:480px}.md\:w-\[calc\(50\%-2\.5rem\)\]{width:calc(50% - 2.5rem)}.md\:w-auto{width:auto}.md\:max-w-none{max-width:none}.md\:-translate-y-1\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:items-end{align-items:flex-end}.md\:justify-start{justify-content:flex-start}.md\:gap-4{gap:calc(var(--spacing)*4)}.md\:gap-6{gap:calc(var(--spacing)*6)}.md\:gap-8{gap:calc(var(--spacing)*8)}.md\:gap-10{gap:calc(var(--spacing)*10)}.md\:gap-16{gap:calc(var(--spacing)*16)}:where(.md\:space-y-0>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*0)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*0)*calc(1 - var(--tw-space-y-reverse)))}:where(.md\:space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.md\:space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.md\:space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*8)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-y-reverse)))}:where(.md\:space-y-12>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*12)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*12)*calc(1 - var(--tw-space-y-reverse)))}:where(.md\:space-y-16>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*16)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*16)*calc(1 - var(--tw-space-y-reverse)))}.md\:gap-x-12{-moz-column-gap:calc(var(--spacing)*12);column-gap:calc(var(--spacing)*12)}.md\:gap-y-8{row-gap:calc(var(--spacing)*8)}.md\:gap-y-20{row-gap:calc(var(--spacing)*20)}.md\:rounded-2xl{border-radius:1.5rem}.md\:rounded-3xl{border-radius:var(--radius-3xl)}.md\:rounded-\[32px\]{border-radius:32px}.md\:rounded-\[40px\]{border-radius:40px}.md\:rounded-r-2xl{border-top-right-radius:1.5rem;border-bottom-right-radius:1.5rem}.md\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.md\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.md\:border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.md\:border-neutral-100{border-color:var(--color-neutral-100)}.md\:p-6{padding:calc(var(--spacing)*6)}.md\:p-8{padding:calc(var(--spacing)*8)}.md\:p-10{padding:calc(var(--spacing)*10)}.md\:p-12{padding:calc(var(--spacing)*12)}.md\:p-16{padding:calc(var(--spacing)*16)}.md\:p-24{padding:calc(var(--spacing)*24)}.md\:px-4{padding-inline:calc(var(--spacing)*4)}.md\:px-6{padding-inline:calc(var(--spacing)*6)}.md\:px-8{padding-inline:calc(var(--spacing)*8)}.md\:px-10{padding-inline:calc(var(--spacing)*10)}.md\:px-12{padding-inline:calc(var(--spacing)*12)}.md\:py-0{padding-block:calc(var(--spacing)*0)}.md\:py-4{padding-block:calc(var(--spacing)*4)}.md\:py-6{padding-block:calc(var(--spacing)*6)}.md\:py-16{padding-block:calc(var(--spacing)*16)}.md\:py-24{padding-block:calc(var(--spacing)*24)}.md\:py-28{padding-block:calc(var(--spacing)*28)}.md\:py-32{padding-block:calc(var(--spacing)*32)}.md\:py-48{padding-block:calc(var(--spacing)*48)}.md\:pt-4{padding-top:calc(var(--spacing)*4)}.md\:pt-12{padding-top:calc(var(--spacing)*12)}.md\:pt-40{padding-top:calc(var(--spacing)*40)}.md\:pt-\[14\%\]{padding-top:14%}.md\:pb-4{padding-bottom:calc(var(--spacing)*4)}.md\:pb-24{padding-bottom:calc(var(--spacing)*24)}.md\:pb-32{padding-bottom:calc(var(--spacing)*32)}.md\:pb-\[12\%\]{padding-bottom:12%}.md\:pl-0{padding-left:calc(var(--spacing)*0)}.md\:pl-8{padding-left:calc(var(--spacing)*8)}.md\:pl-9{padding-left:calc(var(--spacing)*9)}.md\:text-left{text-align:left}.md\:text-right{text-align:right}.md\:text-2xl{font-size:1.5rem;line-height:var(--tw-leading,1.5)}.md\:text-3xl{font-size:1.875rem;line-height:var(--tw-leading,1.4)}.md\:text-4xl{font-size:2.25rem;line-height:var(--tw-leading,1.3)}.md\:text-5xl{font-size:3rem;line-height:var(--tw-leading,1.25)}.md\:text-6xl{font-size:3.75rem;line-height:var(--tw-leading,1.2)}.md\:text-7xl{font-size:4.5rem;line-height:var(--tw-leading,1.15)}.md\:text-8xl{font-size:6rem;line-height:var(--tw-leading,1.1)}.md\:text-base{font-size:1rem;line-height:var(--tw-leading,1.7)}.md\:text-lg{font-size:1.125rem;line-height:var(--tw-leading,1.7)}.md\:text-sm{font-size:.875rem;line-height:var(--tw-leading,1.6)}.md\:text-xl{font-size:1.25rem;line-height:var(--tw-leading,1.6)}.md\:text-xs{font-size:.75rem;line-height:var(--tw-leading,1.6)}.md\:text-\[15px\]{font-size:15px}.md\:opacity-0{opacity:0}.md\:opacity-30{opacity:.3}.md\:opacity-40{opacity:.4}.md\:opacity-60{opacity:.6}@media (hover:hover){.md\:group-hover\:border-\[12px\]:is(:where(.group):hover *){border-style:var(--tw-border-style);border-width:12px}}}@media (min-width:1024px){.lg\:sticky{position:sticky}.lg\:top-32{top:calc(var(--spacing)*32)}.lg\:order-1{order:1}.lg\:order-2{order:2}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:col-span-4{grid-column:span 4/span 4}.lg\:col-span-5{grid-column:span 5/span 5}.lg\:col-span-6{grid-column:span 6/span 6}.lg\:col-span-7{grid-column:span 7/span 7}.lg\:col-span-8{grid-column:span 8/span 8}.lg\:col-start-6{grid-column-start:6}.lg\:mb-0{margin-bottom:calc(var(--spacing)*0)}.lg\:block{display:block}.lg\:hidden{display:none}.lg\:h-\[650px\]{height:650px}.lg\:min-h-screen{min-height:100vh}.lg\:w-1\/2{width:50%}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:gap-8{gap:calc(var(--spacing)*8)}.lg\:gap-20{gap:calc(var(--spacing)*20)}.lg\:gap-24{gap:calc(var(--spacing)*24)}.lg\:bg-gradient-to-l{--tw-gradient-position:to left in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.lg\:bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.lg\:from-primary-dark\/20{--tw-gradient-from:#084c3933}@supports (color:color-mix(in lab, red, red)){.lg\:from-primary-dark\/20{--tw-gradient-from:color-mix(in oklab,var(--color-primary-dark)20%,transparent)}}.lg\:from-primary-dark\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.lg\:p-32{padding:calc(var(--spacing)*32)}.lg\:px-16{padding-inline:calc(var(--spacing)*16)}.lg\:py-0{padding-block:calc(var(--spacing)*0)}.lg\:py-36{padding-block:calc(var(--spacing)*36)}.lg\:text-left{text-align:left}.lg\:text-2xl{font-size:1.5rem;line-height:var(--tw-leading,1.5)}.lg\:text-3xl{font-size:1.875rem;line-height:var(--tw-leading,1.4)}.lg\:text-4xl{font-size:2.25rem;line-height:var(--tw-leading,1.3)}.lg\:text-5xl{font-size:3rem;line-height:var(--tw-leading,1.25)}.lg\:text-8xl{font-size:6rem;line-height:var(--tw-leading,1.1)}.lg\:text-xl{font-size:1.25rem;line-height:var(--tw-leading,1.6)}}@media (min-width:1280px){.xl\:w-\[400px\]{width:400px}}.\[\&\:\:-webkit-scrollbar\]\:hidden::-webkit-scrollbar{display:none}}@property --tw-border-spacing-x{syntax:"";inherits:false;initial-value:0}@property --tw-border-spacing-y{syntax:"";inherits:false;initial-value:0}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-scroll-snap-strictness{syntax:"*";inherits:false;initial-value:proximity}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}@keyframes draw-stroke{0%{stroke-dasharray:1;stroke-dashoffset:1px}to{stroke-dasharray:1;stroke-dashoffset:0}}@keyframes gradient-x{0%,to{background-position:0%}50%{background-position:100%}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slow-zoom{0%{transform:scale(1)}to{transform:scale(1.1)}}@keyframes slight-fade-in-from-bottom{0%{opacity:0;filter:blur(4px);transform:translateY(10px)}to{opacity:1;filter:blur();transform:translateY(0)}} diff --git a/.next/static/chunks/49a11913baa3bac9.js b/.next/static/chunks/49a11913baa3bac9.js deleted file mode 100644 index a67ef7667..000000000 --- a/.next/static/chunks/49a11913baa3bac9.js +++ /dev/null @@ -1,4 +0,0 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="8ce2103c-6565-e424-e4cb-6927d5b89260")}catch(e){}}(); -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,7284,e=>{"use strict";function t(){for(var e,t,r=0,n="",a=arguments.length;rt])},102227,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReflectAdapter",{enumerable:!0,get:function(){return n}});class n{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}},365278,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(496932).createAsyncLocalStorage)()},517110,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorage",{enumerable:!0,get:function(){return n.afterTaskAsyncStorageInstance}});let n=e.r(365278)},780329,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isRequestAPICallableInsideAfter:function(){return u},throwForSearchParamsAccessInUseCache:function(){return c},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(579781),s=e.r(517110);function o(e,t){throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${t}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function c(e,t){let r=Object.defineProperty(Error(`Route ${e.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(r,t),e.invalidDynamicUsageError??=r,r}function u(){let e=s.afterTaskAsyncStorage.getStore();return(null==e?void 0:e.rootTaskSpawnPhase)==="action"}},759823,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a={RenderStage:function(){return c},StagedRenderingController:function(){return u}};for(var i in a)Object.defineProperty(r,i,{enumerable:!0,get:a[i]});let s=e.r(436120),o=e.r(444841);var c=((n={})[n.Before=1]="Before",n[n.Static=2]="Static",n[n.Runtime=3]="Runtime",n[n.Dynamic=4]="Dynamic",n[n.Abandoned=5]="Abandoned",n);class u{constructor(e=null,t){this.abortSignal=e,this.hasRuntimePrefetch=t,this.currentStage=1,this.staticInterruptReason=null,this.runtimeInterruptReason=null,this.staticStageEndTime=1/0,this.runtimeStageEndTime=1/0,this.runtimeStageListeners=[],this.dynamicStageListeners=[],this.runtimeStagePromise=(0,o.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,o.createPromiseWithResolvers)(),this.mayAbandon=!1,e&&(e.addEventListener("abort",()=>{let{reason:t}=e;this.currentStage<3&&(this.runtimeStagePromise.promise.catch(l),this.runtimeStagePromise.reject(t)),(this.currentStage<4||5===this.currentStage)&&(this.dynamicStagePromise.promise.catch(l),this.dynamicStagePromise.reject(t))},{once:!0}),this.mayAbandon=!0)}onStage(e,t){if(this.currentStage>=e)t();else if(3===e)this.runtimeStageListeners.push(t);else if(4===e)this.dynamicStageListeners.push(t);else throw Object.defineProperty(new s.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}canSyncInterrupt(){if(1===this.currentStage)return!1;let e=this.hasRuntimePrefetch?4:3;return this.currentStage=3&&(this.staticStageEndTime=performance.now()+performance.timeOrigin,this.resolveRuntimeStage()),t<4&&e>=4){this.runtimeStageEndTime=performance.now()+performance.timeOrigin,this.resolveDynamicStage();return}}resolveRuntimeStage(){let e=this.runtimeStageListeners;for(let t=0;t{n.then(e.bind(null,i),t)}),void 0!==a&&(s.displayName=a),s);return this.abortSignal&&o.catch(l),o}}function l(){}},118720,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addPathSuffix",{enumerable:!0,get:function(){return a}});let n=e.r(506985);function a(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:i}=(0,n.parsePath)(e);return`${r}${t}${a}${i}`}},446247,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addLocale",{enumerable:!0,get:function(){return i}});let n=e.r(688391),a=e.r(712550);function i(e,t,r,i){if(!t||t===r)return e;let s=e.toLowerCase();return!i&&((0,a.pathHasPrefix)(s,"/api")||(0,a.pathHasPrefix)(s,`/${t.toLowerCase()}`))?e:(0,n.addPathPrefix)(e,`/${t}`)}},971560,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"formatNextPathnameInfo",{enumerable:!0,get:function(){return o}});let n=e.r(895708),a=e.r(688391),i=e.r(118720),s=e.r(446247);function o(e){let t=(0,s.addLocale)(e.pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix);return(e.buildId||!e.trailingSlash)&&(t=(0,n.removeTrailingSlash)(t)),e.buildId&&(t=(0,i.addPathSuffix)((0,a.addPathPrefix)(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=(0,a.addPathPrefix)(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:(0,i.addPathSuffix)(t,"/"):(0,n.removeTrailingSlash)(t)}},866140,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"normalizeLocalePath",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e,t){let r;if(!t)return{pathname:e};let a=n.get(t);a||(a=t.map(e=>e.toLowerCase()),n.set(t,a));let i=e.split("/",2);if(!i[1])return{pathname:e};let s=i[1].toLowerCase(),o=a.indexOf(s);return o<0?{pathname:e}:(r=t[o],{pathname:e=e.slice(r.length+1)||"/",detectedLocale:r})}},857436,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removePathPrefix",{enumerable:!0,get:function(){return a}});let n=e.r(712550);function a(e,t){if(!(0,n.pathHasPrefix)(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:`/${r}`}},707723,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getNextPathnameInfo",{enumerable:!0,get:function(){return s}});let n=e.r(866140),a=e.r(857436),i=e.r(712550);function s(e,t){let{basePath:r,i18n:s,trailingSlash:o}=t.nextConfig??{},c={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):o};r&&(0,i.pathHasPrefix)(c.pathname,r)&&(c.pathname=(0,a.removePathPrefix)(c.pathname,r),c.basePath=r);let u=c.pathname;if(c.pathname.startsWith("/_next/data/")&&c.pathname.endsWith(".json")){let e=c.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");c.buildId=e[0],u="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(c.pathname=u)}if(s){let e=t.i18nProvider?t.i18nProvider.analyze(c.pathname):(0,n.normalizeLocalePath)(c.pathname,s.locales);c.locale=e.detectedLocale,c.pathname=e.pathname??c.pathname,!e.detectedLocale&&c.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(u):(0,n.normalizeLocalePath)(u,s.locales)).detectedLocale&&(c.locale=e.detectedLocale)}return c}},955973,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_SUFFIX:function(){return m},APP_DIR_ALIAS:function(){return F},CACHE_ONE_YEAR:function(){return C},DOT_NEXT_ALIAS:function(){return M},ESLINT_DEFAULT_DIRS:function(){return ea},GSP_NO_RETURNED_VALUE:function(){return J},GSSP_COMPONENT_MEMBER_ERROR:function(){return et},GSSP_NO_RETURNED_VALUE:function(){return Z},HTML_CONTENT_TYPE_HEADER:function(){return s},INFINITE_CACHE:function(){return y},INSTRUMENTATION_HOOK_FILENAME:function(){return w},JSON_CONTENT_TYPE_HEADER:function(){return o},MATCHED_PATH_HEADER:function(){return l},MIDDLEWARE_FILENAME:function(){return N},MIDDLEWARE_LOCATION_REGEXP:function(){return L},NEXT_BODY_SUFFIX:function(){return S},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return v},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return P},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return T},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return b},NEXT_CACHE_TAGS_HEADER:function(){return R},NEXT_CACHE_TAG_MAX_ITEMS:function(){return O},NEXT_CACHE_TAG_MAX_LENGTH:function(){return I},NEXT_DATA_SUFFIX:function(){return h},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return u},NEXT_META_SUFFIX:function(){return g},NEXT_QUERY_PARAM_PREFIX:function(){return c},NEXT_RESUME_HEADER:function(){return A},NON_STANDARD_NODE_ENV:function(){return er},PAGES_DIR_ALIAS:function(){return j},PRERENDER_REVALIDATE_HEADER:function(){return d},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return _},PROXY_FILENAME:function(){return x},PROXY_LOCATION_REGEXP:function(){return D},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return V},ROOT_DIR_ALIAS:function(){return U},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return Y},RSC_ACTION_ENCRYPTION_ALIAS:function(){return k},RSC_ACTION_PROXY_ALIAS:function(){return H},RSC_ACTION_VALIDATE_ALIAS:function(){return X},RSC_CACHE_WRAPPER_ALIAS:function(){return B},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return W},RSC_MOD_REF_PROXY_ALIAS:function(){return G},RSC_SEGMENTS_DIR_SUFFIX:function(){return f},RSC_SEGMENT_SUFFIX:function(){return E},RSC_SUFFIX:function(){return p},SERVER_PROPS_EXPORT_ERROR:function(){return Q},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return K},SERVER_PROPS_SSG_CONFLICT:function(){return q},SERVER_RUNTIME:function(){return ei},SSG_FALLBACK_EXPORT_ERROR:function(){return en},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return $},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return z},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return i},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return ee},WEBPACK_LAYERS:function(){return ec},WEBPACK_RESOURCE_QUERIES:function(){return eu},WEB_SOCKET_MAX_RECONNECTIONS:function(){return es}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i="text/plain",s="text/html; charset=utf-8",o="application/json; charset=utf-8",c="nxtP",u="nxtI",l="x-matched-path",d="x-prerender-revalidate",_="x-prerender-revalidate-if-generated",f=".segments",E=".segment.rsc",p=".rsc",m=".action",h=".json",g=".meta",S=".body",R="x-next-cache-tags",P="x-next-revalidated-tags",T="x-next-revalidate-tag-token",A="next-resume",O=128,I=256,b=1024,v="_N_T_",C=31536e3,y=0xfffffffe,N="middleware",L=`(?:src/)?${N}`,x="proxy",D=`(?:src/)?${x}`,w="instrumentation",j="private-next-pages",M="private-dot-next",U="private-next-root-dir",F="private-next-app-dir",G="private-next-rsc-mod-ref-proxy",X="private-next-rsc-action-validate",H="private-next-rsc-server-reference",B="private-next-rsc-cache-wrapper",W="private-next-rsc-track-dynamic-import",k="private-next-rsc-action-encryption",Y="private-next-rsc-action-client-wrapper",V="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",$="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",K="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",q="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",z="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",Q="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",J="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",Z="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",ee="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",et="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",er='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',en="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",ea=["app","pages","components","lib","src"],ei={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},es=12,eo={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},ec={...eo,GROUP:{builtinReact:[eo.reactServerComponents,eo.actionBrowser],serverOnly:[eo.reactServerComponents,eo.actionBrowser,eo.instrument,eo.middleware],neutralTarget:[eo.apiNode,eo.apiEdge],clientOnly:[eo.serverSideRendering,eo.appPagesBrowser],bundled:[eo.reactServerComponents,eo.actionBrowser,eo.serverSideRendering,eo.appPagesBrowser,eo.shared,eo.instrument,eo.middleware],appPages:[eo.reactServerComponents,eo.serverSideRendering,eo.appPagesBrowser,eo.actionBrowser]}},eu={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},630655,e=>{"use strict";var t=e.i(907358),r=e.i(777616);function n(){let e=(0,r.getAppServices)();return{trackEvent:(0,t.useCallback)((t,r)=>{e.analytics.track(t,r)},[e]),trackPageview:(0,t.useCallback)(t=>{e.analytics.trackPageview(t)},[e])}}e.s(["useAnalytics",()=>n])},216033,e=>{"use strict";e.s(["AnalyticsEvents",0,{PAGE_VIEW:"pageview",PAGE_SCROLL:"page_scroll",PAGE_EXIT:"page_exit",SCROLL_DEPTH:"scroll_depth",BUTTON_CLICK:"button_click",LINK_CLICK:"link_click",FORM_SUBMIT:"form_submit",FORM_START:"form_start",FORM_ERROR:"form_error",FORM_FIELD_FOCUS:"form_field_focus",PRODUCT_VIEW:"product_view",PRODUCT_ADD_TO_CART:"product_add_to_cart",PRODUCT_REMOVE_FROM_CART:"product_remove_from_cart",PRODUCT_PURCHASE:"product_purchase",PRODUCT_WISHLIST_ADD:"product_wishlist_add",PRODUCT_WISHLIST_REMOVE:"product_wishlist_remove",PRODUCT_TAB_SWITCH:"product_tab_switch",SEARCH:"search",FILTER_APPLY:"filter_apply",FILTER_CLEAR:"filter_clear",USER_SIGNUP:"user_signup",USER_LOGIN:"user_login",USER_LOGOUT:"user_logout",USER_PROFILE_UPDATE:"user_profile_update",BLOG_POST_VIEW:"blog_post_view",VIDEO_PLAY:"video_play",VIDEO_PAUSE:"video_pause",VIDEO_COMPLETE:"video_complete",DOWNLOAD:"download",MODAL_OPEN:"modal_open",MODAL_CLOSE:"modal_close",TOGGLE_SWITCH:"toggle_switch",ACCORDION_TOGGLE:"accordion_toggle",TAB_SWITCH:"tab_switch",TOC_CLICK:"toc_click",ERROR:"error",PERFORMANCE:"performance",API_ERROR:"api_error",API_SUCCESS:"api_success",QUOTE_REQUEST:"quote_request",CONTACT_FORM_SUBMIT:"contact_form_submit",NEWSLETTER_SUBSCRIBE:"newsletter_subscribe",BROCHURE_DOWNLOAD:"brochure_download"}])},959504,e=>{"use strict";var t=e.i(452797),r=e.i(907358),n=e.i(111023),a=e.i(630655),i=e.i(216033);function s({headings:e,locale:s}){let[o,c]=(0,r.useState)(""),{trackEvent:u}=(0,a.useAnalytics)();return((0,r.useEffect)(()=>{let t=new IntersectionObserver(e=>{e.forEach(e=>{e.isIntersecting&&c(e.target.id)})},{rootMargin:"-10% 0% -70% 0%",threshold:0}),r=setTimeout(()=>{e.map(e=>document.getElementById(e.id)).forEach(e=>{e&&t.observe(e)})},500);return()=>{clearTimeout(r),t.disconnect()}},[e]),0===e.length)?null:(0,t.jsx)("nav",{className:"hidden lg:block w-full ml-12",children:(0,t.jsxs)("div",{className:"relative pl-6 border-l border-neutral-200",children:[(0,t.jsx)("h4",{className:"text-xs md:text-sm font-bold uppercase tracking-[0.2em] text-text-primary/70 mb-6",children:"de"===s?"Inhalt":"Table of Contents"}),(0,t.jsx)("ul",{className:"space-y-4",children:e.map(e=>(0,t.jsxs)("li",{style:{paddingLeft:`${(e.level-2)*1}rem`},className:"relative",children:[o===e.id&&(0,t.jsx)("div",{className:"absolute -left-[25px] top-0 w-[2px] h-full bg-primary transition-all duration-300"}),(0,t.jsx)("a",{href:`#${e.id}`,className:(0,n.cn)("text-sm md:text-base transition-all duration-300 hover:text-primary block leading-snug",o===e.id?"text-primary font-bold translate-x-1":"text-text-secondary font-medium hover:translate-x-1"),onClick:t=>{t.preventDefault();let r=document.getElementById(e.id);if(r){u(i.AnalyticsEvents.TOC_CLICK,{heading_id:e.id,heading_text:e.text,location:"blog_sidebar"});let t=r.getBoundingClientRect().top+window.pageYOffset+-100;window.scrollTo({top:t,behavior:"smooth"})}},children:e.text.replace(/\*\*(.*?)\*\*/g,"$1")})]},e.id))})]})})}e.s(["default",()=>s])},59828,e=>{"use strict";var t=e.i(907358),r=e.i(630655),n=e.i(216033);function a({title:e,slug:a,category:i,readingTime:s}){let{trackEvent:o}=(0,r.useAnalytics)();return(0,t.useEffect)(()=>{o(n.AnalyticsEvents.BLOG_POST_VIEW,{title:e,slug:a,category:i,estimated_reading_time:s,location:"blog_post_pdp"});let t=Date.now();return()=>{let r=Math.round((Date.now()-t)/1e3);o("blog_dwell_time",{title:e,slug:a,seconds:r,reading_time_completion:Math.min(100,Math.round(r/(60*s)*100))})}},[e,a,i,s,o]),null}e.s(["default",()=>a])},919007,e=>{e.v(t=>Promise.all(["static/chunks/3ffd2a1cf95ceb60.js","static/chunks/f99046ae195fe277.js","static/chunks/6d182a34db4f4c54.js"].map(t=>e.l(t))).then(()=>t(502456)))}]); - -//# debugId=8ce2103c-6565-e424-e4cb-6927d5b89260 \ No newline at end of file diff --git a/.next/static/chunks/595f4cd305cd0088.js b/.next/static/chunks/595f4cd305cd0088.js new file mode 100644 index 000000000..0e3de6ff7 --- /dev/null +++ b/.next/static/chunks/595f4cd305cd0088.js @@ -0,0 +1,6 @@ +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="4f663698-a043-a492-506b-4f3e59c8d98e")}catch(e){}}(); +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,675375,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return c},getImageProps:function(){return u}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=e.r(481258),a=e.r(631297),l=e.r(702050),s=o._(e.r(168800));function u(e){let{props:t}=(0,a.getImgProps)(e,{defaultLoader:s.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[25,50,75,100],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let c=l.Image},663067,(e,t,r)=>{t.exports=e.r(675375)},976819,(e,t,r)=>{t.exports=e.r(68380)},847658,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RouterContext",{enumerable:!0,get:function(){return n}});let n=e.r(481258)._(e.r(907358)).default.createContext(null)},795439,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return l}});let n=e.r(907358),i="u"{}:n.useLayoutEffect,a=i?()=>{}:n.useEffect;function l(e){let{headManager:t,reduceComponentsToState:r}=e;function l(){if(t&&t.mountedInstances){let e=n.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(e))}}return i&&(t?.mountedInstances?.add(e.children),l()),o(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),o(()=>(t&&(t._pendingUpdate=l),()=>{t&&(t._pendingUpdate=l)})),a(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},498515,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return g},defaultHead:function(){return d}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=e.r(481258),a=e.r(744066),l=e.r(452797),s=a._(e.r(907358)),u=o._(e.r(795439)),c=e.r(717441);function d(){return[(0,l.jsx)("meta",{charSet:"utf-8"},"charset"),(0,l.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function f(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===s.default.Fragment?e.concat(s.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(437698);let p=["name","httpEquiv","charSet","itemProp"];function m(e){let t,r,n,i;return e.reduce(f,[]).reverse().concat(d().reverse()).filter((t=new Set,r=new Set,n=new Set,i={},e=>{let o=!0,a=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){a=!0;let r=e.key.slice(e.key.indexOf("$")+1);t.has(r)?o=!1:t.add(r)}switch(e.type){case"title":case"base":r.has(e.type)?o=!1:r.add(e.type);break;case"meta":for(let t=0,r=p.length;t{let r=e.key||t;return s.default.cloneElement(e,{key:r})})}let g=function({children:e}){let t=(0,s.useContext)(c.HeadManagerContext);return(0,l.jsx)(u.default,{reduceComponentsToState:m,headManager:t,children:e})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},678810,(e,t,r)=>{"use strict";function n({widthInt:e,heightInt:t,blurWidth:r,blurHeight:n,blurDataURL:i,objectFit:o}){let a=r?40*r:e,l=n?40*n:t,s=a&&l?`viewBox='0 0 ${a} ${l}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${s}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${s?"none":"contain"===o?"xMidYMid":"cover"===o?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${i}'/%3E%3C/svg%3E`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImageBlurSvg",{enumerable:!0,get:function(){return n}})},83573,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={VALID_LOADERS:function(){return o},imageConfigDefault:function(){return a}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=["default","imgix","cloudinary","akamai","custom"],a={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1}},631297,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImgProps",{enumerable:!0,get:function(){return u}}),e.r(437698);let n=e.r(954633),i=e.r(678810),o=e.r(83573),a=["-moz-initial","fill","none","scale-down",void 0];function l(e){return void 0!==e.default}function s(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function u({src:e,sizes:t,unoptimized:r=!1,priority:u=!1,preload:c=!1,loading:d,className:f,quality:p,width:m,height:g,fill:h=!1,style:y,overrideSrc:v,onLoad:b,onLoadingComplete:w,placeholder:C="empty",blurDataURL:_,fetchPriority:x,decoding:P="async",layout:S,objectFit:j,objectPosition:E,lazyBoundary:M,lazyRoot:O,...R},I){var T;let A,D,z,{imgConf:V,showAltText:L,blurComplete:$,defaultLoader:k}=I,F=V||o.imageConfigDefault;if("allSizes"in F)A=F;else{let e=[...F.deviceSizes,...F.imageSizes].sort((e,t)=>e-t),t=F.deviceSizes.sort((e,t)=>e-t),r=F.qualities?.sort((e,t)=>e-t);A={...F,allSizes:e,deviceSizes:t,qualities:r}}if(void 0===k)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let N=R.loader||k;delete R.loader,delete R.srcSet;let W="__next_img_default"in N;if(W){if("custom"===A.loader)throw Object.defineProperty(Error(`Image with src "${e}" is missing "loader" prop. +Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=N;N=t=>{let{config:r,...n}=t;return e(n)}}if(S){"fill"===S&&(h=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[S];e&&(y={...y,...e});let r={responsive:"100vw",fill:"100vw"}[S];r&&!t&&(t=r)}let U="",G=s(m),H=s(g);if((T=e)&&"object"==typeof T&&(l(T)||void 0!==T.src)){let t=l(e)?e.default:e;if(!t.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!t.height||!t.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(D=t.blurWidth,z=t.blurHeight,_=_||t.blurDataURL,U=t.src,!h)if(G||H){if(G&&!H){let e=G/t.width;H=Math.round(t.height*e)}else if(!G&&H){let e=H/t.height;G=Math.round(t.width*e)}}else G=t.width,H=t.height}let q=!u&&!c&&("lazy"===d||void 0===d);(!(e="string"==typeof e?e:U)||e.startsWith("data:")||e.startsWith("blob:"))&&(r=!0,q=!1),A.unoptimized&&(r=!0),W&&!A.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(r=!0);let B=s(p),X=Object.assign(h?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:j,objectPosition:E}:{},L?{}:{color:"transparent"},y),Y=$||"empty"===C?null:"blur"===C?`url("data:image/svg+xml;charset=utf-8,${(0,i.getImageBlurSvg)({widthInt:G,heightInt:H,blurWidth:D,blurHeight:z,blurDataURL:_||"",objectFit:X.objectFit})}")`:`url("${C}")`,J=a.includes(X.objectFit)?"fill"===X.objectFit?"100% 100%":"cover":X.objectFit,K=Y?{backgroundSize:J,backgroundPosition:X.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:Y}:{},Q=function({config:e,src:t,unoptimized:r,width:i,quality:o,sizes:a,loader:l}){if(r){let e=(0,n.getDeploymentId)();if(t.startsWith("/")&&!t.startsWith("//")&&e){let r=t.includes("?")?"&":"?";t=`${t}${r}dpl=${e}`}return{src:t,srcSet:void 0,sizes:void 0}}let{widths:s,kind:u}=function({deviceSizes:e,allSizes:t},r,n){if(n){let r=/(^|\s)(1?\d?\d)vw/g,i=[];for(let e;e=r.exec(n);)i.push(parseInt(e[2]));if(i.length){let r=.01*Math.min(...i);return{widths:t.filter(t=>t>=e[0]*r),kind:"w"}}return{widths:t,kind:"w"}}return"number"!=typeof r?{widths:e,kind:"w"}:{widths:[...new Set([r,2*r].map(e=>t.find(t=>t>=e)||t[t.length-1]))],kind:"x"}}(e,i,a),c=s.length-1;return{sizes:a||"w"!==u?a:"100vw",srcSet:s.map((r,n)=>`${l({config:e,src:t,quality:o,width:r})} ${"w"===u?r:n+1}${u}`).join(", "),src:l({config:e,src:t,quality:o,width:s[c]})}}({config:A,src:e,unoptimized:r,width:G,quality:B,sizes:t,loader:N}),Z=q?"lazy":d;return{props:{...R,loading:Z,fetchPriority:x,width:G,height:H,decoding:P,className:f,style:{...X,...K},sizes:Q.sizes,srcSet:Q.srcSet,src:v||Q.src},meta:{unoptimized:r,preload:c||u,placeholder:C,fill:h}}}},320069,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageConfigContext",{enumerable:!0,get:function(){return o}});let n=e.r(481258)._(e.r(907358)),i=e.r(83573),o=n.default.createContext(i.imageConfigDefault)},959321,(e,t,r)=>{"use strict";function n(e,t){let r=e||75;return t?.qualities?.length?t.qualities.reduce((e,t)=>Math.abs(t-r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return a}});let n=e.r(959321),i=e.r(954633);function o({config:e,src:t,width:r,quality:o}){if(t.startsWith("/")&&t.includes("?")&&e.localPatterns?.length===1&&"**"===e.localPatterns[0].pathname&&""===e.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${t}" is using a query string which is not configured in images.localPatterns. +Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let a=(0,n.findClosestQuality)(o,e),l=(0,i.getDeploymentId)();return`${e.path}?url=${encodeURIComponent(t)}&w=${r}&q=${a}${t.startsWith("/")&&l?`&dpl=${l}`:""}`}o.__next_img_default=!0;let a=o},702050,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Image",{enumerable:!0,get:function(){return w}});let n=e.r(481258),i=e.r(744066),o=e.r(452797),a=i._(e.r(907358)),l=n._(e.r(910353)),s=n._(e.r(498515)),u=e.r(631297),c=e.r(83573),d=e.r(320069);e.r(437698);let f=e.r(847658),p=n._(e.r(168800)),m=e.r(391736),g={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[25,50,75,100],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function h(e,t,r,n,i,o,a){let l=e?.src;e&&e["data-loaded-src"]!==l&&(e["data-loaded-src"]=l,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&i(!0),r?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let n=!1,i=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>n,isPropagationStopped:()=>i,persist:()=>{},preventDefault:()=>{n=!0,t.preventDefault()},stopPropagation:()=>{i=!0,t.stopPropagation()}})}n?.current&&n.current(e)}}))}function y(e){return a.use?{fetchPriority:e}:{fetchpriority:e}}"u"{let E=(0,a.useCallback)(e=>{e&&(P&&(e.src=e.src),e.complete&&h(e,d,v,b,w,p,_))},[e,d,v,b,w,P,p,_]),M=(0,m.useMergedRef)(j,E);return(0,o.jsx)("img",{...S,...y(c),loading:f,width:i,height:n,decoding:l,"data-nimg":g?"fill":"1",className:s,style:u,sizes:r,srcSet:t,src:e,ref:M,onLoad:e=>{h(e.currentTarget,d,v,b,w,p,_)},onError:e=>{C(!0),"empty"!==d&&w(!0),P&&P(e)}})});function b({isAppRouter:e,imgAttributes:t}){let r={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...y(t.fetchPriority)};return e&&l.default.preload?(l.default.preload(t.src,r),null):(0,o.jsx)(s.default,{children:(0,o.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...r},"__nimg-"+t.src+t.srcSet+t.sizes)})}let w=(0,a.forwardRef)((e,t)=>{let r=(0,a.useContext)(f.RouterContext),n=(0,a.useContext)(d.ImageConfigContext),i=(0,a.useMemo)(()=>{let e=g||n||c.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),r=e.deviceSizes.sort((e,t)=>e-t),i=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:r,qualities:i,localPatterns:"u"{m.current=l},[l]);let h=(0,a.useRef)(s);(0,a.useEffect)(()=>{h.current=s},[s]);let[y,w]=(0,a.useState)(!1),[C,_]=(0,a.useState)(!1),{props:x,meta:P}=(0,u.getImgProps)(e,{defaultLoader:p.default,imgConf:i,blurComplete:y,showAltText:C});return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(v,{...x,unoptimized:P.unoptimized,placeholder:P.placeholder,fill:P.fill,onLoadRef:m,onLoadingCompleteRef:h,setBlurComplete:w,setShowAltText:_,sizesInput:e.sizes,ref:t}),P.preload?(0,o.jsx)(b,{isAppRouter:!r,imgAttributes:x}):null]})});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},933112,807464,247237,753942,891945,370338,134174,286091,636333,339705,736986,718015,e=>{"use strict";e.i(653782);var t,r=e.i(452797),n=e.i(907358);let i=(0,n.createContext)({});e.s(["LayoutGroupContext",()=>i],807464);let o=(0,n.createContext)({strict:!1});e.s(["LazyContext",()=>o],247237);let a=(0,n.createContext)({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});e.s(["MotionConfigContext",()=>a],753942);let l=(0,n.createContext)({});var s=e.i(21280),u=e.i(786843);function c(e){return Array.isArray(e)?e.join(" "):e}var d=e.i(236585),f=e.i(235629),p=e.i(19563);let m=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function g(e,t,r){for(let n in t)(0,d.isMotionValue)(t[n])||(0,f.isForcedMotionValue)(n,r)||(e[n]=t[n])}var h=e.i(348971),y=e.i(604445);let v=()=>({...m(),attrs:{}}),b=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","propagate","ignoreStrict","viewport"]);function w(e){return e.startsWith("while")||e.startsWith("drag")&&"draggable"!==e||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||b.has(e)}let C=e=>!w(e);try{t=(()=>{let e=Error("Cannot find module '@emotion/is-prop-valid'");throw e.code="MODULE_NOT_FOUND",e})().default,"function"==typeof t&&(C=e=>e.startsWith("on")?!w(e):t(e))}catch{}var _=e.i(592798),x=e.i(645744),x=x;function P(e){return(0,d.isMotionValue)(e)?e.get():e}e.s(["resolveMotionValue",()=>P],891945);var S=e.i(991363),j=e.i(161560);let E=(0,n.createContext)(null);function M(e){let t=(0,n.useRef)(null);return null===t.current&&(t.current=e()),t.current}e.s(["PresenceContext",()=>E],370338),e.s(["useConstant",()=>M],134174);let O=e=>(t,r)=>{let i=(0,n.useContext)(l),o=(0,n.useContext)(E),a=()=>(function({scrapeMotionValuesFromProps:e,createRenderState:t},r,n,i){return{latestValues:function(e,t,r,n){let i={},o=n(e,{});for(let e in o)i[e]=P(o[e]);let{initial:a,animate:l}=e,u=(0,s.isControllingVariants)(e),c=(0,s.isVariantNode)(e);t&&c&&!u&&!1!==e.inherit&&(void 0===a&&(a=t.initial),void 0===l&&(l=t.animate));let d=!!r&&!1===r.initial,f=(d=d||!1===a)?l:a;if(f&&"boolean"!=typeof f&&!(0,S.isAnimationControls)(f)){let t=Array.isArray(f)?f:[f];for(let r=0;rD[t].some(t=>!!e[t])};(0,A.setFeatureDefinitions)(e),z=!0}(),(0,A.getFeatureDefinitions)()}function L(e){let t=V();for(let r in e)t[r]={...t[r],...e[r]};(0,A.setFeatureDefinitions)(t)}e.s(["loadFeatures",()=>L],286091);let $=Symbol.for("motionComponentSymbol");var k=e.i(329957);let F=(0,n.createContext)({});function N(e){return e&&"object"==typeof e&&Object.prototype.hasOwnProperty.call(e,"current")}e.s(["SwitchLayoutGroupContext",()=>F],636333),e.s(["isRefObject",()=>N],339705);let W="u">typeof window?n.useLayoutEffect:n.useEffect;function U(e,{forwardMotionProps:t=!1,type:f}={},b,x){b&&L(b);let P=f?"svg"===f:(0,_.isSVGComponent)(e),S=P?T:R;function j(f,b){var j;let M,O,R,I={...(0,n.useContext)(a),...f,layoutId:function({layoutId:e}){let t=(0,n.useContext)(i).id;return t&&void 0!==e?t+"-"+e:e}(f)},{isStatic:T}=I,A=function(e){let{initial:t,animate:r}=function(e,t){if((0,s.isControllingVariants)(e)){let{initial:t,animate:r}=e;return{initial:!1===t||(0,u.isVariantLabel)(t)?t:void 0,animate:(0,u.isVariantLabel)(r)?r:void 0}}return!1!==e.inherit?t:{}}(e,(0,n.useContext)(l));return(0,n.useMemo)(()=>({initial:t,animate:r}),[c(t),c(r)])}(f),D=S(f,T);if(!T&&"u">typeof window){(0,n.useContext)(o).strict;let t=function(e){let{drag:t,layout:r}=V();if(!t&&!r)return{};let n={...t,...r};return{MeasureLayout:t?.isEnabled(e)||r?.isEnabled(e)?n.MeasureLayout:void 0,ProjectionNode:n.ProjectionNode}}(I);M=t.MeasureLayout,A.visualElement=function(e,t,r,i,s,u){let{visualElement:c}=(0,n.useContext)(l),d=(0,n.useContext)(o),f=(0,n.useContext)(E),p=(0,n.useContext)(a),m=p.reducedMotion,g=p.skipAnimations,h=(0,n.useRef)(null),y=(0,n.useRef)(!1);i=i||d.renderer,!h.current&&i&&(h.current=i(e,{visualState:t,parent:c,props:r,presenceContext:f,blockInitialAnimation:!!f&&!1===f.initial,reducedMotionConfig:m,skipAnimations:g,isSVG:u}),y.current&&h.current&&(h.current.manuallyAnimateOnMount=!0));let v=h.current,b=(0,n.useContext)(F);v&&!v.projection&&s&&("html"===v.type||"svg"===v.type)&&function(e,t,r,n){let{layoutId:i,layout:o,drag:a,dragConstraints:l,layoutScroll:s,layoutRoot:u,layoutAnchor:c,layoutCrossfade:d}=t;e.projection=new r(e.latestValues,t["data-framer-portal-id"]?void 0:function e(t){if(t)return!1!==t.options.allowProjection?t.projection:e(t.parent)}(e.parent)),e.projection.setOptions({layoutId:i,layout:o,alwaysMeasureLayout:!!a||l&&N(l),visualElement:e,animationType:"string"==typeof o?o:"both",initialPromotionConfig:n,crossfade:d,layoutScroll:s,layoutRoot:u,layoutAnchor:c})}(h.current,r,s,b);let w=(0,n.useRef)(!1);(0,n.useInsertionEffect)(()=>{v&&w.current&&v.update(r,f)});let C=r[k.optimizedAppearDataAttribute],_=(0,n.useRef)(!!C&&"u">typeof window&&!window.MotionHandoffIsComplete?.(C)&&window.MotionHasOptimisedAnimation?.(C));return W(()=>{y.current=!0,v&&(w.current=!0,window.MotionIsMounted=!0,v.updateFeatures(),v.scheduleRenderMicrotask(),_.current&&v.animationState&&v.animationState.animateChanges())}),(0,n.useEffect)(()=>{v&&(!_.current&&v.animationState&&v.animationState.animateChanges(),_.current&&(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(C)}),_.current=!1),v.enteringChildren=void 0)}),v}(e,D,I,x,t.ProjectionNode,P)}return(0,r.jsxs)(l.Provider,{value:A,children:[M&&A.visualElement?(0,r.jsx)(M,{visualElement:A.visualElement,...I}):null,function(e,t,r,{latestValues:i},o,a=!1,l){let s=(l??(0,_.isSVGComponent)(e)?function(e,t,r,i){let o=(0,n.useMemo)(()=>{let r=v();return(0,h.buildSVGAttrs)(r,t,(0,y.isSVGTag)(i),e.transformTemplate,e.style),{...r.attrs,style:{...r.style}}},[t]);if(e.style){let t={};g(t,e.style,e),o.style={...t,...o.style}}return o}:function(e,t){let r,i,o={},a=(r=e.style||{},g(i={},r,e),Object.assign(i,function({transformTemplate:e},t){return(0,n.useMemo)(()=>{let r=m();return(0,p.buildHTMLStyles)(r,t,e),Object.assign({},r.vars,r.style)},[t])}(e,t)),i);return e.drag&&!1!==e.dragListener&&(o.draggable=!1,a.userSelect=a.WebkitUserSelect=a.WebkitTouchCallout="none",a.touchAction=!0===e.drag?"none":`pan-${"x"===e.drag?"y":"x"}`),void 0===e.tabIndex&&(e.onTap||e.onTapStart||e.whileTap)&&(o.tabIndex=0),o.style=a,o})(t,i,o,e),u=function(e,t,r){let n={};for(let i in e)("values"!==i||"object"!=typeof e.values)&&!(0,d.isMotionValue)(e[i])&&(C(i)||!0===r&&w(i)||!t&&!w(i)||e.draggable&&i.startsWith("onDrag"))&&(n[i]=e[i]);return n}(t,"string"==typeof e,a),c=e!==n.Fragment?{...u,...s,ref:r}:{},{children:f}=t,b=(0,n.useMemo)(()=>(0,d.isMotionValue)(f)?f.get():f,[f]);return(0,n.createElement)(e,{...c,children:b})}(e,f,(j=A.visualElement,O=(0,n.useRef)(b),(0,n.useInsertionEffect)(()=>{O.current=b}),R=(0,n.useRef)(null),(0,n.useCallback)(e=>{e&&D.onMount?.(e);let t=O.current;if("function"==typeof t)if(e){let r=t(e);"function"==typeof r&&(R.current=r)}else R.current?(R.current(),R.current=null):t(e);else t&&(t.current=e);j&&(e?j.mount(e):j.unmount())},[j])),D,T,t,P)]})}j.displayName=`motion.${"string"==typeof e?e:`create(${e.displayName??e.name??""})`}`;let M=(0,n.forwardRef)(j);return M[$]=e,M}function G(e,t){if("u"U(r,n,e,t);return new Proxy((e,t)=>n(e,t),{get:(i,o)=>"create"===o?n:(r.has(o)||r.set(o,U(o,void 0,e,t)),r.get(o))})}function H(e=!0){let t=(0,n.useContext)(E);if(null===t)return[!0,null];let{isPresent:r,onExitComplete:i,register:o}=t,a=(0,n.useId)();(0,n.useEffect)(()=>{if(e)return o(a)},[e]);let l=(0,n.useCallback)(()=>e&&i&&i(a),[a,i,e]);return!r&&i?[!1,l]:[!0]}e.s(["useIsomorphicLayoutEffect",()=>W],736986),e.s(["createMotionProxy",()=>G],933112),e.s(["usePresence",()=>H],718015)}]); + +//# debugId=4f663698-a043-a492-506b-4f3e59c8d98e \ No newline at end of file diff --git a/.next/static/chunks/650cc12d707f2be0.js b/.next/static/chunks/650cc12d707f2be0.js new file mode 100644 index 000000000..95e42d1df --- /dev/null +++ b/.next/static/chunks/650cc12d707f2be0.js @@ -0,0 +1,4 @@ +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="8ce34cc0-0f09-7254-e4c7-65b19c36baba")}catch(e){}}(); +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,610408,e=>{"use strict";var t=e.i(452797),a=e.i(676525),r=e.i(112086);function s(e){let{data:s}=e,i=e.title||s?.title||"DIE EXPERTEN FÜR KABELTIEFBAU",l=e.subtitle||e.description||s?.subtitle||"Wir verbinden Infrastruktur mit Präzision. Von Horizontalbohrungen bis zu komplexen Leitungsnetzen.",n=e.videoUrl||s?.videoUrl||"/assets/dummy-hero.mp4",o=s?.posterImage?.url||"/assets/photos/DJI_0048.JPG";s?.posterImage?.alt;let d=e.ctaLabel||e.linkText||s?.ctaLabel||"Unternehmen entdecken",c=e.ctaHref||e.linkHref||s?.ctaHref||"#unternehmen",x=e.secondaryCtaLabel||s?.secondaryCtaLabel||"Projekt anfragen",m=e.secondaryCtaHref||s?.secondaryCtaHref||"/kontakt";return(0,t.jsxs)("div",{className:"relative w-full h-[100svh] flex items-center justify-center overflow-hidden bg-neutral-dark",children:[(0,t.jsx)("div",{className:"absolute inset-0 z-0 bg-neutral-dark"}),n&&(0,t.jsx)("video",{className:"absolute inset-0 w-full h-full object-cover z-1 pointer-events-none filter contrast-125 saturate-110 brightness-90",src:n,poster:o,autoPlay:!0,muted:!0,loop:!0,playsInline:!0,preload:"auto"}),(0,t.jsx)("div",{className:"absolute inset-0 bg-[#0a192f]/30 z-[2] mix-blend-multiply"}),(0,t.jsx)("div",{className:"absolute inset-0 bg-[radial-gradient(ellipse_at_center,_var(--tw-gradient-stops))] from-transparent via-black/20 to-black/80 z-[2]"}),(0,t.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-neutral-dark via-neutral-dark/60 to-transparent z-[3]"}),(0,t.jsx)("div",{className:"container relative z-[4] text-center px-4",children:(0,t.jsxs)(r.motion.div,{initial:{opacity:0,y:40},animate:{opacity:1,y:0},transition:{duration:1.2,ease:[.16,1,.3,1]},children:[(0,t.jsx)("h1",{className:"font-heading font-bold text-4xl md:text-6xl lg:text-8xl text-white mb-6 uppercase tracking-tight drop-shadow-lg",dangerouslySetInnerHTML:{__html:i.replace("KABELTIEFBAU",'KABELTIEFBAU').replace(/\n/g,"
")}}),(0,t.jsx)("p",{className:"text-lg md:text-xl lg:text-2xl text-white/90 max-w-3xl mx-auto mb-12 drop-shadow",children:l}),(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-6",children:[(0,t.jsx)(a.Button,{href:c,variant:"primary",size:"lg",children:d}),(0,t.jsx)(a.Button,{href:m,variant:"outline",size:"lg",className:"border-white/60 text-white hover:text-primary hover:bg-white",children:x})]})]})})]})}e.s(["HeroVideo",()=>s])},138557,e=>{"use strict";var t=e.i(452797),a=e.i(112086),r=e.i(663067),s=e.i(976819);let i=[{title:"E-TIB GmbH",backgroundImage:"/assets/photos/DJI_0243.JPG"},{title:"E-TIB Ingenieurgesellschaft mbH",url:"https://www.etib-ing.com/",backgroundImage:"/assets/photos/DSC01137.JPG"},{title:"NEMO GmbH",url:"https://www.nemo-gmbh.de/",backgroundImage:"/assets/photos/DJI_0048.JPG"}],l={hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.15}}},n={hidden:{opacity:0,y:30},visible:{opacity:1,y:0,transition:{duration:.8,ease:[.16,1,.3,1]}}};function o(e){let{data:o}=e,d=e.badge||o?.badge,c=e.title||o?.title,x=e.companies||o?.companies,m=(0,s.usePathname)(),h=m?.startsWith("/de")??!0,u=x?.map(e=>({title:e.title,url:e.url,backgroundImage:e.backgroundImage?.url||e.backgroundImage||"/assets/photos/DJI_0243.JPG"}))||i;return(0,t.jsx)("section",{id:"unternehmen",className:"py-24 bg-neutral-dark border-b border-neutral-800",children:(0,t.jsxs)("div",{className:"container relative z-10 px-4",children:[(d||c)&&(0,t.jsxs)("div",{className:"text-center max-w-3xl mx-auto mb-16",children:[d&&(0,t.jsx)("h2",{className:"text-primary font-bold tracking-wider uppercase text-sm mb-3",children:d}),c&&(0,t.jsx)("h3",{className:"font-heading text-4xl md:text-5xl font-extrabold text-white",children:c})]}),(0,t.jsx)(a.motion.div,{className:"grid grid-cols-1 md:grid-cols-3 gap-6",variants:l,initial:"hidden",whileInView:"visible",viewport:{once:!0,margin:"-50px"},children:u.map((e,s)=>{let i=!e.url,l=i?{}:{href:e.url,target:"_blank",rel:"noopener noreferrer"},o=e.title.includes("E-TIB"),d=e.title.includes("Ingenieur"),c=e.title.includes("NEMO");return(0,t.jsx)(a.motion.div,{variants:n,className:"h-full",children:(0,t.jsxs)(i?"div":"a",{...l,className:`group relative overflow-hidden aspect-[4/3] flex flex-col justify-center items-center shadow-xl transition-all duration-500 bg-neutral-dark block w-full h-full sm:rounded-xl ${i?"border-2 border-primary shadow-[0_0_30px_rgba(17,124,97,0.15)] cursor-default":"border border-white/5 hover:shadow-2xl hover:-translate-y-1 hover:border-white/10 cursor-pointer"}`,children:[(0,t.jsx)("div",{className:"absolute inset-0 bg-[#0a192f] z-0",children:(0,t.jsx)(r.default,{src:e.backgroundImage,alt:"Background",fill:!0,className:`object-cover transition-all duration-1000 ease-out ${i?"opacity-30 grayscale-0 scale-105":"opacity-40 grayscale-[50%] group-hover:opacity-30 group-hover:grayscale-0 group-hover:scale-110"}`,sizes:"(max-width: 768px) 100vw, 33vw"})}),(0,t.jsx)("div",{className:`absolute inset-0 z-0 transition-colors duration-700 mix-blend-multiply ${i?"bg-gradient-to-t from-[#0a192f]/90 via-[#0a192f]/60 to-[#0a192f]/40":"bg-gradient-to-t from-[#0a192f]/90 via-[#0a192f]/60 to-[#0a192f]/40 group-hover:from-primary/90 group-hover:to-primary/20"}`}),i&&(0,t.jsx)("div",{className:"absolute top-6 right-6 z-20",children:(0,t.jsxs)("div",{className:"flex items-center space-x-2 bg-neutral-dark/80 backdrop-blur-md border border-primary/40 px-3 py-1.5 rounded-full shadow-lg",children:[(0,t.jsxs)("span",{className:"relative flex h-2 w-2",children:[(0,t.jsx)("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-primary opacity-75"}),(0,t.jsx)("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-primary"})]}),(0,t.jsx)("span",{className:"text-[10px] font-bold uppercase tracking-widest text-primary/90",children:h?"Aktuell hier":"You are here"})]})}),(0,t.jsx)("div",{className:"relative z-10 flex flex-col items-center justify-center w-full h-full p-8 transform group-hover:scale-105 transition-transform duration-500",children:o?(0,t.jsxs)("div",{className:"flex flex-col items-center",children:[(0,t.jsx)("div",{className:"relative w-48 h-14 mb-2",children:(0,t.jsx)(r.default,{src:"/assets/logo-white.png",alt:"E-TIB Logo",fill:!0,className:"object-contain"})}),d&&(0,t.jsx)("div",{className:"text-white/80 tracking-[0.3em] text-xs font-semibold uppercase mt-1",children:"Ingenieurgesellschaft"})]}):c?(0,t.jsxs)("div",{className:"flex flex-col items-center",children:[(0,t.jsx)("div",{className:"text-5xl font-heading font-black text-white tracking-tight",children:"NEMO"}),(0,t.jsx)("div",{className:"text-white/60 tracking-widest text-xs font-semibold uppercase mt-1",children:"GmbH"})]}):(0,t.jsx)("div",{className:"text-2xl font-heading font-bold text-white uppercase text-center",children:e.title})}),e.url&&(0,t.jsx)("div",{className:"absolute bottom-6 left-0 right-0 flex justify-center opacity-0 group-hover:opacity-100 transform translate-y-4 group-hover:translate-y-0 transition-all duration-500 z-20",children:(0,t.jsxs)("div",{className:"flex items-center text-white font-bold uppercase text-xs tracking-widest bg-white/10 backdrop-blur-md px-4 py-2 rounded-full border border-white/20",children:["Website Besuchen",(0,t.jsx)("svg",{className:"w-4 h-4 ml-2",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,t.jsx)("path",{d:"M5 12h14M12 5l7 7-7 7"})})]})})]})},s)})})]})})}e.s(["SubCompanyTiles",()=>o])},285997,e=>{"use strict";var t=e.i(452797),a=e.i(663067),r=e.i(112086),s=e.i(907358),i=e.i(676525);function l(e){let{data:l}=e,[n,o]=(0,s.useState)(!1);(0,s.useEffect)(()=>{o(!0)},[]);let d=e.badge||l?.badge||"Leistungsspektrum",c=e.title||l?.title||"Umfassende Lösungen für komplexe Netzwerke",x=e.ctaLabel||l?.ctaLabel||"Alle Kompetenzen ansehen",m=e.ctaHref||l?.ctaHref||"/kompetenzen",h=e.items||l?.items||[];return n?(0,t.jsx)("section",{className:"py-24 bg-neutral text-neutral-dark overflow-hidden relative",children:(0,t.jsxs)("div",{className:"container",children:[(0,t.jsxs)("div",{className:"flex flex-col md:flex-row justify-between items-end mb-12",children:[(0,t.jsxs)("div",{className:"max-w-2xl",children:[(0,t.jsx)("h2",{className:"text-primary font-bold tracking-wider uppercase text-sm mb-3",children:d}),(0,t.jsx)("h3",{className:"font-heading text-4xl md:text-5xl font-extrabold text-neutral-dark mb-4",children:c})]}),(0,t.jsxs)(i.Button,{href:m,variant:"ghost",className:"mt-6 md:mt-0 bg-primary/5 hover:bg-primary/10",children:[x,(0,t.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-5 h-5 ml-2 transform group-hover:translate-x-1 transition-transform",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),(0,t.jsx)("polyline",{points:"12 5 19 12 12 19"})]})]})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-3 lg:grid-cols-4 gap-4 auto-rows-[220px]",children:h.map((e,s)=>{let i="large"===e.size,l="medium"===e.size,n="accent"===e.size,o=e.image?.url,d="rounded-2xl overflow-hidden relative group ";return(i?d+="md:col-span-2 md:row-span-2":l?d+="md:col-span-2 lg:col-span-2":n?d+="md:col-span-1 bg-primary text-white p-6 md:p-8 flex flex-col justify-center border-none shadow-md":d+="md:col-span-1",n)?(0,t.jsxs)(r.motion.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:.1*s},className:d,children:[(0,t.jsx)("div",{className:"absolute top-0 right-0 w-32 h-32 bg-primary/30 blur-3xl rounded-full -mr-10 -mt-10 group-hover:bg-primary/50 transition-colors duration-500"}),(0,t.jsx)("h4",{className:"font-bold text-xl md:text-2xl relative z-10 leading-snug",children:e.title}),e.description&&(0,t.jsx)("p",{className:"text-white/60 text-sm mt-3 relative z-10",children:e.description})]},s):(0,t.jsxs)(r.motion.div,{initial:{opacity:0,scale:.95},whileInView:{opacity:1,scale:1},viewport:{once:!0},transition:{delay:.1*s},className:d,children:[!o&&(0,t.jsx)("div",{className:"absolute inset-0 bg-neutral-dark z-0 transition-colors duration-500 group-hover:bg-primary-dark"}),o&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"absolute inset-0 bg-white z-0",children:(0,t.jsx)(a.default,{src:o,alt:e.title||"",fill:!0,className:"object-cover opacity-90 group-hover:scale-105 group-hover:opacity-100 transition-all duration-700 ease-in-out",sizes:i?"(max-width: 768px) 100vw, 50vw":"(max-width: 768px) 100vw, 25vw"})}),(0,t.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-black/80 via-black/20 to-transparent opacity-90 transition-opacity duration-500 z-0"})]}),(0,t.jsxs)("div",{className:"relative z-10 p-8 flex flex-col justify-end h-full text-white",children:[e.tag&&(0,t.jsx)("span",{className:"inline-block px-3 py-1 bg-primary/20 backdrop-blur-md rounded-full text-xs font-bold uppercase tracking-wider text-primary-light mb-3 w-fit border border-primary/30",children:e.tag}),(0,t.jsx)("h4",{className:`font-heading font-extrabold mb-2 ${i?"text-3xl md:text-5xl":"text-xl md:text-2xl"}`,children:e.title}),e.description&&(0,t.jsx)("p",{className:`text-white/80 ${i?"text-lg md:text-xl max-w-sm":"text-sm"}`,children:e.description})]})]},s)})})]})}):(0,t.jsx)("section",{className:"py-24 bg-neutral text-neutral-dark overflow-hidden relative",children:(0,t.jsxs)("div",{className:"container",children:[(0,t.jsx)("div",{className:"flex flex-col md:flex-row justify-between items-end mb-12",children:(0,t.jsxs)("div",{className:"max-w-2xl",children:[(0,t.jsx)("h2",{className:"text-primary font-bold tracking-wider uppercase text-sm mb-3",children:d}),(0,t.jsx)("h3",{className:"font-heading text-4xl md:text-5xl font-extrabold text-neutral-dark mb-4",children:c})]})}),(0,t.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-3 lg:grid-cols-4 gap-4 auto-rows-[220px]"})]})})}e.s(["CompetenceBentoGrid",()=>l])},677705,e=>{"use strict";var t=e.i(452797),a=e.i(907358),r=e.i(112086),s=e.i(184868),i=e.i(663067);function l(e){let{data:l}=e,n=e.references||[],o=a.useRef(null),d=e.badge||l?.badge||"Ausgewählte Projekte",c=e.title||l?.title||"Referenzen & Erfolge",x=e.description||l?.description||"Ein Auszug unserer erfolgreich abgeschlossenen Projekte im Bereich Kabeltiefbau, Bohrtechnik und Netzinfrastruktur.",m=e.ctaLabel||l?.ctaLabel||"Alle Referenzen ansehen",h=e.ctaHref||l?.ctaHref||"/referenzen";if(!n||0===n.length)return null;let u=["/assets/photos/DSC01123.JPG","/assets/photos/DSC00850.JPG","/assets/photos/DSC01129.JPG","/assets/photos/DSC00010.JPG"];return(0,t.jsxs)("section",{className:"py-24 bg-neutral-dark text-white overflow-hidden relative",children:[(0,t.jsx)("div",{className:"absolute inset-0 bg-gradient-to-b from-neutral-dark via-neutral-900 to-neutral-dark z-0"}),(0,t.jsxs)("div",{className:"container relative z-10 mb-12 flex flex-col md:flex-row justify-between items-end gap-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-primary-light font-bold tracking-wider uppercase text-sm mb-3",children:d}),(0,t.jsx)("h3",{className:"font-heading text-4xl md:text-5xl font-extrabold",children:c})]}),(0,t.jsx)("p",{className:"text-white/60 max-w-md",children:x})]}),(0,t.jsx)("div",{className:"relative z-10",children:(0,t.jsx)("div",{ref:o,className:"flex gap-6 overflow-x-auto pb-12 pt-4 snap-x snap-mandatory px-[calc((100vw-min(100%,1280px))/2)] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden",children:n.map((e,a)=>{let s=e.image&&"object"==typeof e.image&&e.image.url?e.image.url:u[a%u.length];return(0,t.jsx)(r.motion.div,{initial:{opacity:0,x:50},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{delay:.1*a,duration:.6,ease:"easeOut"},className:"flex-shrink-0 w-[320px] md:w-[480px] snap-center group cursor-pointer",children:(0,t.jsxs)("div",{className:"relative aspect-[16/10] bg-neutral-800 rounded-2xl overflow-hidden mb-5 border border-white/5 shadow-2xl",children:[(0,t.jsx)(i.default,{src:s,alt:e.title,fill:!0,sizes:"(max-width: 768px) 320px, 480px",className:"object-cover saturate-50 opacity-70 group-hover:scale-105 group-hover:opacity-100 group-hover:saturate-100 transition-all duration-700 ease-in-out"}),(0,t.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-black/90 via-black/30 to-transparent opacity-80 group-hover:opacity-90 transition-opacity duration-300"}),(0,t.jsxs)("div",{className:"absolute bottom-6 left-8 right-8 transform translate-y-4 group-hover:translate-y-0 transition-transform duration-500",children:[(0,t.jsx)("span",{className:"inline-block py-1.5 px-4 rounded-full bg-primary/30 backdrop-blur-md text-white text-xs font-bold uppercase tracking-widest mb-3 border border-primary/50",children:e.category}),(0,t.jsx)("h4",{className:"font-heading text-2xl md:text-3xl font-bold line-clamp-2",children:e.title})]})]})},e.id)})})}),(0,t.jsx)("div",{className:"container relative z-10 mt-4 flex justify-center",children:(0,t.jsxs)(s.default,{href:h,className:"px-8 py-4 rounded-xl bg-white/5 border border-white/20 hover:bg-white hover:text-neutral-dark hover:shadow-[0_0_20px_rgba(255,255,255,0.3)] transition-all font-bold flex items-center gap-3 backdrop-blur-sm",children:[m,(0,t.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-5 h-5",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),(0,t.jsx)("polyline",{points:"12 5 19 12 12 19"})]})]})})]})}e.s(["ReferencesSlider",()=>l])}]); + +//# debugId=8ce34cc0-0f09-7254-e4c7-65b19c36baba \ No newline at end of file diff --git a/.next/static/chunks/6640bcd504ed2815.js b/.next/static/chunks/6640bcd504ed2815.js new file mode 100644 index 000000000..70764f8d3 --- /dev/null +++ b/.next/static/chunks/6640bcd504ed2815.js @@ -0,0 +1,12 @@ +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="b18cf55d-8395-e50b-2fd3-eafe46fd795d")}catch(e){}}(); +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,209157,e=>{"use strict";function t(e,t){let i=t&&t.cache?t.cache:s,a=t&&t.serializer?t.serializer:o;return(t&&t.strategy?t.strategy:function(e,t){var o,i;let s=1===e.length?r:n;return o=t.cache.create(),i=t.serializer,s.bind(this,e,o,i)})(e,{cache:i,serializer:a})}function r(e,t,r,n){let o=null==n||"number"==typeof n||"boolean"==typeof n?n:r(n),i=t.get(o);return void 0===i&&(i=e.call(this,n),t.set(o,i)),i}function n(e,t,r){let n=Array.prototype.slice.call(arguments,3),o=r(n),i=t.get(o);return void 0===i&&(i=e.apply(this,n),t.set(o,i)),i}let o=function(){return JSON.stringify(arguments)};class i{cache;constructor(){this.cache=Object.create(null)}get(e){return this.cache[e]}set(e,t){this.cache[e]=t}}let s={create:function(){return new i}};e.s(["memoize",()=>t,"strategies",0,{variadic:function(e,t){var r,o;return r=t.cache.create(),o=t.serializer,n.bind(this,e,r,o)},monadic:function(e,t){var n,o;return n=t.cache.create(),o=t.serializer,r.bind(this,e,n,o)}}])},801296,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return l},searchParamsToUrlQuery:function(){return i},urlQueryToSearchParams:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function i(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function s(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function a(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,s(e));else t.set(r,s(n));return t}function l(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},462307,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return a},formatWithValidation:function(){return u},urlObjectKeys:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=e.r(744066)._(e.r(801296)),s=/https?|ftp|gopher|file/;function a(e){let{auth:t,hostname:r}=e,n=e.protocol||"",o=e.pathname||"",a=e.hash||"",l=e.query||"",u=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?u=t+e.host:r&&(u=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(u+=":"+e.port)),l&&"object"==typeof l&&(l=String(i.urlQueryToSearchParams(l)));let c=e.search||l&&`?${l}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||s.test(n))&&!1!==u?(u="//"+(u||""),o&&"/"!==o[0]&&(o="/"+o)):u||(u=""),a&&"#"!==a[0]&&(a="#"+a),c&&"?"!==c[0]&&(c="?"+c),o=o.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${n}${u}${o}${c}${a}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function u(e){return a(e)}},97872,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return g},MiddlewareNotFoundError:function(){return j},MissingStaticPage:function(){return v},NormalizeError:function(){return b},PageNotFoundError:function(){return y},SP:function(){return m},ST:function(){return x},WEB_VITALS:function(){return i},execOnce:function(){return s},getDisplayName:function(){return d},getLocationOrigin:function(){return u},getURL:function(){return c},isAbsoluteUrl:function(){return l},isResSent:function(){return f},loadGetInitialProps:function(){return p},normalizeRepeatedSlashes:function(){return h},stringifyError:function(){return w}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let i=["CLS","FCP","FID","INP","LCP","TTFB"];function s(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let a=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>a.test(e);function u(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function c(){let{href:e}=window.location,t=u();return e.substring(t.length)}function d(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function h(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function p(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await p(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&f(r))return n;if(!n)throw Object.defineProperty(Error(`"${d(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}let m="u">typeof performance,x=m&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class g extends Error{}class b extends Error{}class y extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class v extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class j extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function w(e){return JSON.stringify({message:e.message,stack:e.stack})}},171064,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return i}});let n=e.r(97872),o=e.r(33905);function i(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}},7284,e=>{"use strict";function t(){for(var e,t,r=0,n="",o=arguments.length;rt])},437698,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},391736,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return o}});let n=e.r(907358);function o(e,t){let r=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(r.current=i(e,n)),t&&(o.current=i(t,n))},[e,t])}function i(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},676525,e=>{"use strict";var t=e.i(452797),r=e.i(184868),n=e.i(111023);let o={primary:"bg-primary text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl",secondary:"bg-secondary text-white shadow-md hover:shadow-secondary/30 hover:shadow-2xl",accent:"bg-accent text-primary-dark shadow-md hover:shadow-accent/30 hover:shadow-2xl",saturated:"bg-saturated text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl",outline:"border-2 border-primary bg-transparent text-primary hover:text-white hover:shadow-primary/20 hover:shadow-xl",ghost:"text-primary hover:shadow-lg",white:"bg-white text-primary shadow-md hover:shadow-primary/30 hover:shadow-2xl hover:text-white",destructive:"bg-destructive text-destructive-foreground shadow-md hover:shadow-destructive/30 hover:shadow-2xl"},i={sm:"h-9 px-4 text-sm md:text-base",md:"h-11 px-6 text-base md:text-lg",lg:"h-14 px-5 md:px-8 text-base md:text-lg",xl:"h-16 px-6 md:px-10 text-lg md:text-xl"},s={primary:"bg-primary-dark",secondary:"bg-secondary-light",accent:"bg-accent-dark",saturated:"bg-primary",outline:"bg-primary",ghost:"bg-primary-light/10",white:"bg-primary-light",destructive:"bg-destructive/90"};function a({variant:e="primary"}){return(0,t.jsx)("span",{className:(0,n.cn)("absolute inset-0 translate-y-[101%] group-hover/btn:translate-y-0 transition-transform duration-500 ease-out",s[e])})}function l({className:e,variant:s="primary",size:l="md",href:u,...c}){let d=function(e="primary",t="md",r){return(0,n.cn)("inline-flex items-center justify-center whitespace-nowrap rounded-full font-semibold transition-all duration-500 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none active:scale-95 hover:-translate-y-1 hover:scale-[1.02] relative overflow-hidden group/btn isolate",o[e],i[t],r)}(s,l,e),f=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:(0,n.cn)("relative z-10 flex items-center justify-center gap-2 transition-colors duration-500","white"===s?"group-hover/btn:text-primary-dark":""),children:c.children}),(0,t.jsx)(a,{variant:s})]});return u?(0,t.jsx)(r.default,{href:u,className:d,children:f}):(0,t.jsx)("button",{className:d,...c,children:f})}e.s(["Button",()=>l])},818127,(e,t,r)=>{"use strict";function n(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"encodeURIPath",{enumerable:!0,get:function(){return n}})},50239,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"BailoutToCSR",{enumerable:!0,get:function(){return o}});let n=e.r(880813);function o({reason:e,children:t}){if("u"{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"PreloadChunks",{enumerable:!0,get:function(){return l}});let n=e.r(452797),o=e.r(910353),i=e.r(306648),s=e.r(818127),a=e.r(954633);function l({moduleIds:e}){if("u">typeof window)return null;let t=i.workAsyncStorage.getStore();if(void 0===t)return null;let r=[];if(t.reactLoadableManifest&&e){let n=t.reactLoadableManifest;for(let t of e){if(!n[t])continue;let e=n[t].files;r.push(...e)}}if(0===r.length)return null;let l=(0,a.getDeploymentIdQueryOrEmptyString)();return(0,n.jsx)(n.Fragment,{children:r.map(e=>{let r=`${t.assetPrefix}/_next/${(0,s.encodeURIPath)(e)}${l}`;return e.endsWith(".css")?(0,n.jsx)("link",{precedence:"dynamic",href:r,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,o.preload)(r,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},768337,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return u}});let n=e.r(452797),o=e.r(907358),i=e.r(50239),s=e.r(445929);function a(e){return{default:e&&"default"in e?e.default:e}}let l={loader:()=>Promise.resolve(a(()=>null)),loading:null,ssr:!0},u=function(e){let t={...l,...e},r=(0,o.lazy)(()=>t.loader().then(a)),u=t.loading;function c(e){let a=u?(0,n.jsx)(u,{isLoading:!0,pastDelay:!0,error:null}):null,l=!t.ssr||!!t.loading,c=l?o.Suspense:o.Fragment,d=t.ssr?(0,n.jsxs)(n.Fragment,{children:["u"{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return o}});let n=e.r(481258)._(e.r(768337));function o(e,t){let r={};"function"==typeof e&&(r.loader=e);let o={...r,...t};return(0,n.default)({...o,modules:o.loadableGenerated?.modules})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},140802,e=>{"use strict";e.i(653782);var t=e.i(452797),r=e.i(907358),n=e.i(807464),o=e.i(134174),i=e.i(736986),s=e.i(370338),a=e.i(250438),l=r,u=e.i(753942);function c(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}class d extends l.Component{getSnapshotBeforeUpdate(e){let t=this.props.childRef.current;if((0,a.isHTMLElement)(t)&&e.isPresent&&!this.props.isPresent&&!1!==this.props.pop){let e=t.offsetParent,r=(0,a.isHTMLElement)(e)&&e.offsetWidth||0,n=(0,a.isHTMLElement)(e)&&e.offsetHeight||0,o=getComputedStyle(t),i=this.props.sizeRef.current;i.height=parseFloat(o.height),i.width=parseFloat(o.width),i.top=t.offsetTop,i.left=t.offsetLeft,i.right=r-i.width-i.left,i.bottom=n-i.height-i.top}return null}componentDidUpdate(){}render(){return this.props.children}}function f({children:e,isPresent:n,anchorX:o,anchorY:i,root:s,pop:a}){let f=(0,l.useId)(),h=(0,l.useRef)(null),p=(0,l.useRef)({width:0,height:0,top:0,left:0,right:0,bottom:0}),{nonce:m}=(0,l.useContext)(u.MotionConfigContext),x=function(...e){return r.useCallback(function(...e){return t=>{let r=!1,n=e.map(e=>{let n=c(e,t);return r||"function"!=typeof n||(r=!0),n});if(r)return()=>{for(let t=0;t{let{width:e,height:t,top:r,left:l,right:u,bottom:c}=p.current;if(n||!1===a||!h.current||!e||!t)return;let d="left"===o?`left: ${l}`:`right: ${u}`,x="bottom"===i?`bottom: ${c}`:`top: ${r}`;h.current.dataset.motionPopId=f;let g=document.createElement("style");m&&(g.nonce=m);let b=s??document.head;return b.appendChild(g),g.sheet&&g.sheet.insertRule(` + [data-motion-pop-id="${f}"] { + position: absolute !important; + width: ${e}px !important; + height: ${t}px !important; + ${d}px !important; + ${x}px !important; + } + `),()=>{h.current?.removeAttribute("data-motion-pop-id"),b.contains(g)&&b.removeChild(g)}},[n]),(0,t.jsx)(d,{isPresent:n,childRef:h,sizeRef:p,pop:a,children:!1===a?e:l.cloneElement(e,{ref:x})})}let h=({children:e,initial:n,isPresent:i,onExitComplete:a,custom:l,presenceAffectsLayout:u,mode:c,anchorX:d,anchorY:h,root:m})=>{let x=(0,o.useConstant)(p),g=(0,r.useId)(),b=!0,y=(0,r.useMemo)(()=>(b=!1,{id:g,initial:n,isPresent:i,custom:l,onExitComplete:e=>{for(let t of(x.set(e,!0),x.values()))if(!t)return;a&&a()},register:e=>(x.set(e,!1),()=>x.delete(e))}),[i,x,a]);return u&&b&&(y={...y}),(0,r.useMemo)(()=>{x.forEach((e,t)=>x.set(t,!1))},[i]),r.useEffect(()=>{i||x.size||!a||a()},[i]),e=(0,t.jsx)(f,{pop:"popLayout"===c,isPresent:i,anchorX:d,anchorY:h,root:m,children:e}),(0,t.jsx)(s.PresenceContext.Provider,{value:y,children:e})};function p(){return new Map}var m=e.i(718015);let x=e=>e.key||"";function g(e){let t=[];return r.Children.forEach(e,e=>{(0,r.isValidElement)(e)&&t.push(e)}),t}let b=({children:e,custom:s,initial:a=!0,onExitComplete:l,presenceAffectsLayout:u=!0,mode:c="sync",propagate:d=!1,anchorX:f="left",anchorY:p="top",root:b})=>{let[y,v]=(0,m.usePresence)(d),j=(0,r.useMemo)(()=>g(e),[e]),w=d&&!y?[]:j.map(x),P=(0,r.useRef)(!0),E=(0,r.useRef)(j),k=(0,o.useConstant)(()=>new Map),N=(0,r.useRef)(new Set),[O,C]=(0,r.useState)(j),[$,_]=(0,r.useState)(j);(0,i.useIsomorphicLayoutEffect)(()=>{P.current=!1,E.current=j;for(let e=0;e<$.length;e++){let t=x($[e]);w.includes(t)?(k.delete(t),N.current.delete(t)):!0!==k.get(t)&&k.set(t,!1)}},[$,w.length,w.join("-")]);let S=[];if(j!==O){let e=[...j];for(let t=0;t<$.length;t++){let r=$[t],n=x(r);w.includes(n)||(e.splice(t,0,r),S.push(r))}return"wait"===c&&S.length&&(e=S),_(g(e)),C(j),null}let{forceRender:L}=(0,r.useContext)(n.LayoutGroupContext);return(0,t.jsx)(t.Fragment,{children:$.map(e=>{let r=x(e),n=(!d||!!y)&&(j===$||w.includes(r));return(0,t.jsx)(h,{isPresent:n,initial:(!P.current||!!a)&&void 0,custom:s,presenceAffectsLayout:u,mode:c,root:b,onExitComplete:n?void 0:()=>{if(N.current.has(r)||!k.has(r))return;N.current.add(r),k.set(r,!0);let e=!0;k.forEach(t=>{t||(e=!1)}),e&&(L?.(),_(E.current),d&&v?.(),l&&l())},anchorX:f,anchorY:p,children:e},r)})})};e.s(["AnimatePresence",()=>b],140802)},287564,e=>{"use strict";var t=e.i(452797),r=e.i(184868),n=e.i(976819);function o({mobile:e=!1,isSolidMode:o=!1}){let i=(0,n.usePathname)()||"/",s=i.startsWith("/en")?"en":"de",a=e=>{let t=i.replace(/^\/(en|de)/,"");return`/${e}${""===t?"":t}`},l=[{code:"de",label:"DE",fullLabel:"Deutsch",flag:"🇩🇪"},{code:"en",label:"EN",fullLabel:"English",flag:"🇬🇧"}];return e?(0,t.jsx)("div",{className:"flex flex-col gap-3",children:l.map(e=>(0,t.jsxs)(r.default,{href:a(e.code),className:`flex items-center gap-3 px-5 py-3 rounded-xl text-lg font-semibold transition-all duration-300 ${s===e.code?"bg-primary/10 text-primary border border-primary/20":"text-text-secondary hover:bg-neutral-50 border border-transparent"}`,children:[(0,t.jsx)("span",{className:"text-2xl","aria-hidden":"true",children:e.flag}),(0,t.jsx)("span",{children:e.fullLabel}),s===e.code&&(0,t.jsx)("svg",{className:"w-5 h-5 ml-auto text-primary",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:(0,t.jsx)("polyline",{points:"20 6 9 17 4 12"})})]},e.code))}):(0,t.jsx)("div",{className:`flex items-center rounded-full p-0.5 border ${o?"bg-neutral-100 border-neutral-200":"bg-white/10 backdrop-blur-sm border-white/10"} transition-colors duration-300`,children:l.map(e=>{let n=s===e.code,i="";return i=n?"bg-white text-primary shadow-sm":o?"text-text-secondary hover:text-primary":"text-white/70 hover:text-white",(0,t.jsxs)(r.default,{href:a(e.code),className:`flex items-center gap-1.5 px-3 py-1.5 rounded-full text-xs font-bold uppercase tracking-wider transition-all duration-300 ${i}`,"aria-label":`Switch to ${e.fullLabel}`,children:[(0,t.jsx)("span",{className:"text-sm","aria-hidden":"true",children:e.flag}),(0,t.jsx)("span",{children:e.label})]},e.code)})})}e.s(["LanguageSwitcher",()=>o])},993983,e=>{"use strict";var t=e.i(452797),r=e.i(907358),n=e.i(184868),o=e.i(663067),i=e.i(976819),s=e.i(112086),a=e.i(140802),l=e.i(287564),u=e.i(676525);function c({navLinks:e}){let[c,d]=r.useState(!1),[f,h]=r.useState(!1),[p,m]=r.useState(!1),x=(0,i.usePathname)()||"/",g=x.startsWith("/en")?"en":"de";r.useEffect(()=>{let e=()=>{d(window.scrollY>20)};window.addEventListener("scroll",e);let t=()=>{m("true"===document.body.getAttribute("data-force-solid-header"))};t();let r=new MutationObserver(t);return r.observe(document.body,{attributes:!0,attributeFilter:["data-force-solid-header"]}),t(),()=>{window.removeEventListener("scroll",e),r.disconnect()}},[x]),r.useEffect(()=>{h(!1)},[x]);let b=c||p;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("header",{className:`fixed top-0 left-0 right-0 z-50 transition-all duration-300 ease-in-out ${b?"bg-neutral-light/90 backdrop-blur-md shadow-sm py-4":"bg-transparent py-6"}`,children:(0,t.jsxs)("div",{className:"container flex items-center justify-between",children:[(0,t.jsx)(n.default,{href:`/${g}`,className:"relative flex items-center h-12 w-48 z-50",children:(0,t.jsx)(o.default,{src:b||f?"/assets/logo.png":"/assets/logo-white.png",alt:"E-TIB Gruppe",fill:!0,className:"object-contain object-left",priority:!0,sizes:"192px"})}),(0,t.jsxs)("nav",{className:"hidden md:flex items-center gap-10",children:[e&&e.length>0&&e.map(e=>{let r=e.url.startsWith("/")&&!e.url.match(/^\/(en|de)/)?`/${g}${e.url}`:e.url;return(0,t.jsx)(n.default,{href:r,className:`font-semibold text-sm uppercase tracking-widest transition-all duration-300 ${b?"text-text-primary hover:text-primary":"text-neutral-light hover:text-primary-light"}`,children:e.label},e.url)}),(0,t.jsx)("div",{className:`h-4 w-px mx-2 transition-colors duration-300 ${b?"bg-neutral-300":"bg-white/20"}`}),(0,t.jsx)(l.LanguageSwitcher,{isSolidMode:b}),(0,t.jsx)(u.Button,{href:`/${g}/${"de"===g?"kontakt":"contact"}`,variant:"primary",className:"px-8",children:"de"===g?"Kontakt":"Contact"})]}),(0,t.jsx)("button",{className:"md:hidden z-50 text-primary p-2",onClick:()=>h(!f),"aria-label":"Toggle menu",children:(0,t.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",viewBox:"0 0 24 24",fill:"none",stroke:b||f?"currentColor":"white",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:f?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,t.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("line",{x1:"3",x2:"21",y1:"6",y2:"6"}),(0,t.jsx)("line",{x1:"3",x2:"21",y1:"12",y2:"12"}),(0,t.jsx)("line",{x1:"3",x2:"21",y1:"18",y2:"18"})]})})})]})}),(0,t.jsx)(a.AnimatePresence,{children:f&&(0,t.jsx)(s.motion.div,{initial:{opacity:0,y:-20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},transition:{duration:.2},className:"fixed inset-0 z-40 bg-white md:hidden pt-32 pb-8 px-6 overflow-y-auto",children:(0,t.jsxs)("nav",{className:"flex flex-col gap-6",children:[e&&e.length>0&&e.map(e=>{let r=e.url.startsWith("/")&&!e.url.match(/^\/(en|de)/)?`/${g}${e.url}`:e.url;return(0,t.jsx)(n.default,{href:r,className:"text-2xl font-heading font-bold text-neutral-dark border-b border-neutral-100 pb-4",children:e.label},e.url)}),(0,t.jsx)(n.default,{href:`/${g}/${"de"===g?"kontakt":"contact"}`,className:"text-2xl font-heading font-bold text-primary border-b border-neutral-100 pb-4",children:"de"===g?"Kontakt":"Contact"}),(0,t.jsxs)("div",{className:"mt-8 pt-6",children:[(0,t.jsx)("p",{className:"text-text-secondary text-sm font-bold uppercase tracking-widest mb-4",children:"Sprache wählen"}),(0,t.jsx)(l.LanguageSwitcher,{mobile:!0})]})]})})})]})}e.s(["Header",()=>c])},814508,e=>{"use strict";var t=e.i(452797),r=e.i(190422);function n(){let e=(0,r.useTranslations)("Navigation");return(0,t.jsx)("a",{href:"#main-content",className:"fixed -top-full left-4 z-[100] px-6 py-3 bg-white text-primary-dark font-bold rounded-lg shadow-xl outline-none ring-2 ring-accent transition-all duration-300 focus:top-4",children:e("skipToContent")})}e.s(["default",()=>n])},531518,e=>{"use strict";var t=e.i(653782),r=e.i(452797),n=e.i(902498),o=e.i(907358);let i=(0,n.default)(()=>e.A(348814),{loadableGenerated:{modules:[565071]},ssr:!1}),s=(0,n.default)(()=>e.A(740018),{loadableGenerated:{modules:[248785]},ssr:!1}),a=(0,n.default)(()=>e.A(225514),{loadableGenerated:{modules:[950648]},ssr:!1});function l(){let[e,n]=(0,o.useState)(!1);return((0,o.useEffect)(()=>{if("true"!==t.default.env.NEXT_PUBLIC_CI)if("requestIdleCallback"in window)window.requestIdleCallback(()=>n(!0),{timeout:3e3});else{let e=setTimeout(()=>n(!0),2500);return()=>clearTimeout(e)}},[]),e)?(0,r.jsxs)(o.Suspense,{fallback:null,children:[(0,r.jsx)(i,{}),(0,r.jsx)(s,{}),(0,r.jsx)(a,{})]}):null}e.s(["default",()=>l])},600023,e=>{"use strict";var t=e.i(883647),r=e.i(452797);function n({locale:e,...n}){if(!e)throw Error(void 0);return(0,r.jsx)(t.IntlProvider,{locale:e,...n})}e.s(["default",()=>n])},689647,e=>{"use strict";var t=e.i(452797);let r=(0,e.i(902498).default)(()=>e.A(262386).then(e=>e.FeedbackOverlay),{loadableGenerated:{modules:[566137]},ssr:!1});function n({feedbackEnabled:e}){return e?(0,t.jsx)(r,{}):null}e.s(["default",()=>n])},348814,e=>{e.v(t=>Promise.all(["static/chunks/d62bf387414e0748.js","static/chunks/0ff158dd58fe47c8.js"].map(t=>e.l(t))).then(()=>t(565071)))},740018,e=>{e.v(t=>Promise.all(["static/chunks/ff6db6d7946b9f90.js","static/chunks/0ff158dd58fe47c8.js"].map(t=>e.l(t))).then(()=>t(248785)))},225514,e=>{e.v(t=>Promise.all(["static/chunks/844db355c06db065.js","static/chunks/0ff158dd58fe47c8.js"].map(t=>e.l(t))).then(()=>t(950648)))},262386,e=>{e.v(t=>Promise.all(["static/chunks/9c4a690cd48e1298.js","static/chunks/c9e4534297dc4d54.js"].map(t=>e.l(t))).then(()=>t(566137)))}]); + +//# debugId=b18cf55d-8395-e50b-2fd3-eafe46fd795d \ No newline at end of file diff --git a/.next/static/chunks/76668d2ab61cd4a8.js b/.next/static/chunks/76668d2ab61cd4a8.js deleted file mode 100644 index 1784afaa8..000000000 --- a/.next/static/chunks/76668d2ab61cd4a8.js +++ /dev/null @@ -1,12 +0,0 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="db15ec48-72da-62e4-0744-7e9e84f06087")}catch(e){}}(); -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,209157,e=>{"use strict";function t(e,t){let l=t&&t.cache?t.cache:i,a=t&&t.serializer?t.serializer:o;return(t&&t.strategy?t.strategy:function(e,t){var o,l;let i=1===e.length?r:n;return o=t.cache.create(),l=t.serializer,i.bind(this,e,o,l)})(e,{cache:l,serializer:a})}function r(e,t,r,n){let o=null==n||"number"==typeof n||"boolean"==typeof n?n:r(n),l=t.get(o);return void 0===l&&(l=e.call(this,n),t.set(o,l)),l}function n(e,t,r){let n=Array.prototype.slice.call(arguments,3),o=r(n),l=t.get(o);return void 0===l&&(l=e.apply(this,n),t.set(o,l)),l}let o=function(){return JSON.stringify(arguments)};class l{cache;constructor(){this.cache=Object.create(null)}get(e){return this.cache[e]}set(e,t){this.cache[e]=t}}let i={create:function(){return new l}};e.s(["memoize",()=>t,"strategies",0,{variadic:function(e,t){var r,o;return r=t.cache.create(),o=t.serializer,n.bind(this,e,r,o)},monadic:function(e,t){var n,o;return n=t.cache.create(),o=t.serializer,r.bind(this,e,n,o)}}])},531426,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},184868,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return y},useLinkStatus:function(){return x}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let l=e.r(744066),i=e.r(452797),a=l._(e.r(907358)),s=e.r(462307),u=e.r(99585),c=e.r(391736),d=e.r(97872),f=e.r(266190);e.r(437698);let p=e.r(126791),h=e.r(171064),m=e.r(751108);function g(e){return"string"==typeof e?e:(0,s.formatUrl)(e)}function y(t){var r;let n,o,l,[s,y]=(0,a.useOptimistic)(p.IDLE_LINK_STATUS),x=(0,a.useRef)(null),{href:j,as:v,children:w,prefetch:P=null,passHref:E,replace:_,shallow:C,scroll:k,onClick:O,onMouseEnter:S,onTouchStart:N,legacyBehavior:$=!1,onNavigate:L,ref:R,unstable_dynamicOnHover:T,...M}=t;n=w,$&&("string"==typeof n||"number"==typeof n)&&(n=(0,i.jsx)("a",{children:n}));let I=a.default.useContext(u.AppRouterContext),A=!1!==P,U=!1!==P?null===(r=P)||"auto"===r?m.FetchStrategy.PPR:m.FetchStrategy.Full:m.FetchStrategy.PPR,{href:F,as:z}=a.default.useMemo(()=>{let e=g(j);return{href:e,as:v?g(v):e}},[j,v]);if($){if(n?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `
` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});o=a.default.Children.only(n)}let B=$?o&&"object"==typeof o&&o.ref:R,D=a.default.useCallback(e=>(null!==I&&(x.current=(0,p.mountLinkInstance)(e,F,I,U,A,y)),()=>{x.current&&((0,p.unmountLinkForCurrentNavigation)(x.current),x.current=null),(0,p.unmountPrefetchableInstance)(e)}),[A,F,I,U,y]),K={ref:(0,c.useMergedRef)(D,B),onClick(t){$||"function"!=typeof O||O(t),$&&o.props&&"function"==typeof o.props.onClick&&o.props.onClick(t),!I||t.defaultPrevented||function(t,r,n,o,l,i,s){if("u">typeof window){let u,{nodeName:c}=t.currentTarget;if("A"===c.toUpperCase()&&((u=t.currentTarget.getAttribute("target"))&&"_self"!==u||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,h.isLocalURL)(r)){l&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),s){let e=!1;if(s({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:d}=e.r(215493);a.default.startTransition(()=>{d(n||r,l?"replace":"push",i??!0,o.current)})}}(t,F,z,x,_,k,L)},onMouseEnter(e){$||"function"!=typeof S||S(e),$&&o.props&&"function"==typeof o.props.onMouseEnter&&o.props.onMouseEnter(e),I&&A&&(0,p.onNavigationIntent)(e.currentTarget,!0===T)},onTouchStart:function(e){$||"function"!=typeof N||N(e),$&&o.props&&"function"==typeof o.props.onTouchStart&&o.props.onTouchStart(e),I&&A&&(0,p.onNavigationIntent)(e.currentTarget,!0===T)}};return(0,d.isAbsoluteUrl)(z)?K.href=z:$&&!E&&("a"!==o.type||"href"in o.props)||(K.href=(0,f.addBasePath)(z)),l=$?a.default.cloneElement(o,K):(0,i.jsx)("a",{...M,...K,children:n}),(0,i.jsx)(b.Provider,{value:s,children:l})}e.r(531426);let b=(0,a.createContext)(p.IDLE_LINK_STATUS),x=()=>(0,a.useContext)(b);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},437698,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},391736,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return o}});let n=e.r(907358);function o(e,t){let r=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(r.current=l(e,n)),t&&(o.current=l(t,n))},[e,t])}function l(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},801296,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return s},searchParamsToUrlQuery:function(){return l},urlQueryToSearchParams:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function l(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function i(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function a(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,i(e));else t.set(r,i(n));return t}function s(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},462307,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return a},formatWithValidation:function(){return u},urlObjectKeys:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let l=e.r(744066)._(e.r(801296)),i=/https?|ftp|gopher|file/;function a(e){let{auth:t,hostname:r}=e,n=e.protocol||"",o=e.pathname||"",a=e.hash||"",s=e.query||"",u=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?u=t+e.host:r&&(u=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(u+=":"+e.port)),s&&"object"==typeof s&&(s=String(l.urlQueryToSearchParams(s)));let c=e.search||s&&`?${s}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||i.test(n))&&!1!==u?(u="//"+(u||""),o&&"/"!==o[0]&&(o="/"+o)):u||(u=""),a&&"#"!==a[0]&&(a="#"+a),c&&"?"!==c[0]&&(c="?"+c),o=o.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${n}${u}${o}${c}${a}`}let s=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function u(e){return a(e)}},97872,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return y},MiddlewareNotFoundError:function(){return v},MissingStaticPage:function(){return j},NormalizeError:function(){return b},PageNotFoundError:function(){return x},SP:function(){return m},ST:function(){return g},WEB_VITALS:function(){return l},execOnce:function(){return i},getDisplayName:function(){return d},getLocationOrigin:function(){return u},getURL:function(){return c},isAbsoluteUrl:function(){return s},isResSent:function(){return f},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return w}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let l=["CLS","FCP","FID","INP","LCP","TTFB"];function i(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let a=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,s=e=>a.test(e);function u(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function c(){let{href:e}=window.location,t=u();return e.substring(t.length)}function d(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function p(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&f(r))return n;if(!n)throw Object.defineProperty(Error(`"${d(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}let m="u">typeof performance,g=m&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class y extends Error{}class b extends Error{}class x extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class j extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class v extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function w(e){return JSON.stringify({message:e.message,stack:e.stack})}},171064,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return l}});let n=e.r(97872),o=e.r(33905);function l(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}},976819,(e,t,r)=>{t.exports=e.r(68380)},818127,(e,t,r)=>{"use strict";function n(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"encodeURIPath",{enumerable:!0,get:function(){return n}})},50239,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"BailoutToCSR",{enumerable:!0,get:function(){return o}});let n=e.r(880813);function o({reason:e,children:t}){if("u"{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"PreloadChunks",{enumerable:!0,get:function(){return s}});let n=e.r(452797),o=e.r(910353),l=e.r(306648),i=e.r(818127),a=e.r(954633);function s({moduleIds:e}){if("u">typeof window)return null;let t=l.workAsyncStorage.getStore();if(void 0===t)return null;let r=[];if(t.reactLoadableManifest&&e){let n=t.reactLoadableManifest;for(let t of e){if(!n[t])continue;let e=n[t].files;r.push(...e)}}if(0===r.length)return null;let s=(0,a.getDeploymentIdQueryOrEmptyString)();return(0,n.jsx)(n.Fragment,{children:r.map(e=>{let r=`${t.assetPrefix}/_next/${(0,i.encodeURIPath)(e)}${s}`;return e.endsWith(".css")?(0,n.jsx)("link",{precedence:"dynamic",href:r,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,o.preload)(r,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},768337,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return u}});let n=e.r(452797),o=e.r(907358),l=e.r(50239),i=e.r(445929);function a(e){return{default:e&&"default"in e?e.default:e}}let s={loader:()=>Promise.resolve(a(()=>null)),loading:null,ssr:!0},u=function(e){let t={...s,...e},r=(0,o.lazy)(()=>t.loader().then(a)),u=t.loading;function c(e){let a=u?(0,n.jsx)(u,{isLoading:!0,pastDelay:!0,error:null}):null,s=!t.ssr||!!t.loading,c=s?o.Suspense:o.Fragment,d=t.ssr?(0,n.jsxs)(n.Fragment,{children:["u"{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return o}});let n=e.r(481258)._(e.r(768337));function o(e,t){let r={};"function"==typeof e&&(r.loader=e);let o={...r,...t};return(0,n.default)({...o,modules:o.loadableGenerated?.modules})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},140802,e=>{"use strict";e.i(653782);var t=e.i(452797),r=e.i(907358),n=e.i(807464),o=e.i(134174),l=e.i(736986),i=e.i(370338),a=e.i(250438),s=r,u=e.i(753942);function c(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}class d extends s.Component{getSnapshotBeforeUpdate(e){let t=this.props.childRef.current;if((0,a.isHTMLElement)(t)&&e.isPresent&&!this.props.isPresent&&!1!==this.props.pop){let e=t.offsetParent,r=(0,a.isHTMLElement)(e)&&e.offsetWidth||0,n=(0,a.isHTMLElement)(e)&&e.offsetHeight||0,o=getComputedStyle(t),l=this.props.sizeRef.current;l.height=parseFloat(o.height),l.width=parseFloat(o.width),l.top=t.offsetTop,l.left=t.offsetLeft,l.right=r-l.width-l.left,l.bottom=n-l.height-l.top}return null}componentDidUpdate(){}render(){return this.props.children}}function f({children:e,isPresent:n,anchorX:o,anchorY:l,root:i,pop:a}){let f=(0,s.useId)(),p=(0,s.useRef)(null),h=(0,s.useRef)({width:0,height:0,top:0,left:0,right:0,bottom:0}),{nonce:m}=(0,s.useContext)(u.MotionConfigContext),g=function(...e){return r.useCallback(function(...e){return t=>{let r=!1,n=e.map(e=>{let n=c(e,t);return r||"function"!=typeof n||(r=!0),n});if(r)return()=>{for(let t=0;t{let{width:e,height:t,top:r,left:s,right:u,bottom:c}=h.current;if(n||!1===a||!p.current||!e||!t)return;let d="left"===o?`left: ${s}`:`right: ${u}`,g="bottom"===l?`bottom: ${c}`:`top: ${r}`;p.current.dataset.motionPopId=f;let y=document.createElement("style");m&&(y.nonce=m);let b=i??document.head;return b.appendChild(y),y.sheet&&y.sheet.insertRule(` - [data-motion-pop-id="${f}"] { - position: absolute !important; - width: ${e}px !important; - height: ${t}px !important; - ${d}px !important; - ${g}px !important; - } - `),()=>{p.current?.removeAttribute("data-motion-pop-id"),b.contains(y)&&b.removeChild(y)}},[n]),(0,t.jsx)(d,{isPresent:n,childRef:p,sizeRef:h,pop:a,children:!1===a?e:s.cloneElement(e,{ref:g})})}let p=({children:e,initial:n,isPresent:l,onExitComplete:a,custom:s,presenceAffectsLayout:u,mode:c,anchorX:d,anchorY:p,root:m})=>{let g=(0,o.useConstant)(h),y=(0,r.useId)(),b=!0,x=(0,r.useMemo)(()=>(b=!1,{id:y,initial:n,isPresent:l,custom:s,onExitComplete:e=>{for(let t of(g.set(e,!0),g.values()))if(!t)return;a&&a()},register:e=>(g.set(e,!1),()=>g.delete(e))}),[l,g,a]);return u&&b&&(x={...x}),(0,r.useMemo)(()=>{g.forEach((e,t)=>g.set(t,!1))},[l]),r.useEffect(()=>{l||g.size||!a||a()},[l]),e=(0,t.jsx)(f,{pop:"popLayout"===c,isPresent:l,anchorX:d,anchorY:p,root:m,children:e}),(0,t.jsx)(i.PresenceContext.Provider,{value:x,children:e})};function h(){return new Map}var m=e.i(718015);let g=e=>e.key||"";function y(e){let t=[];return r.Children.forEach(e,e=>{(0,r.isValidElement)(e)&&t.push(e)}),t}let b=({children:e,custom:i,initial:a=!0,onExitComplete:s,presenceAffectsLayout:u=!0,mode:c="sync",propagate:d=!1,anchorX:f="left",anchorY:h="top",root:b})=>{let[x,j]=(0,m.usePresence)(d),v=(0,r.useMemo)(()=>y(e),[e]),w=d&&!x?[]:v.map(g),P=(0,r.useRef)(!0),E=(0,r.useRef)(v),_=(0,o.useConstant)(()=>new Map),C=(0,r.useRef)(new Set),[k,O]=(0,r.useState)(v),[S,N]=(0,r.useState)(v);(0,l.useIsomorphicLayoutEffect)(()=>{P.current=!1,E.current=v;for(let e=0;e{let r=g(e),n=(!d||!!x)&&(v===S||w.includes(r));return(0,t.jsx)(p,{isPresent:n,initial:(!P.current||!!a)&&void 0,custom:i,presenceAffectsLayout:u,mode:c,root:b,onExitComplete:n?void 0:()=>{if(C.current.has(r)||!_.has(r))return;C.current.add(r),_.set(r,!0);let e=!0;_.forEach(t=>{t||(e=!1)}),e&&(L?.(),N(E.current),d&&j?.(),s&&s())},anchorX:f,anchorY:h,children:e},r)})})};e.s(["AnimatePresence",()=>b],140802)},287564,e=>{"use strict";var t=e.i(452797),r=e.i(184868),n=e.i(976819);function o({mobile:e=!1,isSolidMode:o=!1}){let l=(0,n.usePathname)()||"/",i=l.startsWith("/en")?"en":"de",a=e=>{let t=l.replace(/^\/(en|de)/,"");return`/${e}${""===t?"":t}`},s=[{code:"de",label:"DE",fullLabel:"Deutsch",flag:"🇩🇪"},{code:"en",label:"EN",fullLabel:"English",flag:"🇬🇧"}];return e?(0,t.jsx)("div",{className:"flex flex-col gap-3",children:s.map(e=>(0,t.jsxs)(r.default,{href:a(e.code),className:`flex items-center gap-3 px-5 py-3 rounded-xl text-lg font-semibold transition-all duration-300 ${i===e.code?"bg-primary/10 text-primary border border-primary/20":"text-text-secondary hover:bg-neutral-50 border border-transparent"}`,children:[(0,t.jsx)("span",{className:"text-2xl","aria-hidden":"true",children:e.flag}),(0,t.jsx)("span",{children:e.fullLabel}),i===e.code&&(0,t.jsx)("svg",{className:"w-5 h-5 ml-auto text-primary",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:(0,t.jsx)("polyline",{points:"20 6 9 17 4 12"})})]},e.code))}):(0,t.jsx)("div",{className:`flex items-center rounded-full p-0.5 border ${o?"bg-neutral-100 border-neutral-200":"bg-white/10 backdrop-blur-sm border-white/10"} transition-colors duration-300`,children:s.map(e=>{let n=i===e.code,l="";return l=n?"bg-white text-primary shadow-sm":o?"text-text-secondary hover:text-primary":"text-white/70 hover:text-white",(0,t.jsxs)(r.default,{href:a(e.code),className:`flex items-center gap-1.5 px-3 py-1.5 rounded-full text-xs font-bold uppercase tracking-wider transition-all duration-300 ${l}`,"aria-label":`Switch to ${e.fullLabel}`,children:[(0,t.jsx)("span",{className:"text-sm","aria-hidden":"true",children:e.flag}),(0,t.jsx)("span",{children:e.label})]},e.code)})})}e.s(["LanguageSwitcher",()=>o])},993983,e=>{"use strict";var t=e.i(452797),r=e.i(907358),n=e.i(184868),o=e.i(663067),l=e.i(976819),i=e.i(112086),a=e.i(140802),s=e.i(287564);function u({navLinks:e}){let[u,c]=r.useState(!1),[d,f]=r.useState(!1),[p,h]=r.useState(!1),m=(0,l.usePathname)()||"/",g=m.startsWith("/en")?"en":"de";r.useEffect(()=>{let e=()=>{c(window.scrollY>20)};window.addEventListener("scroll",e);let t=()=>{h("true"===document.body.getAttribute("data-force-solid-header"))};t();let r=new MutationObserver(t);return r.observe(document.body,{attributes:!0,attributeFilter:["data-force-solid-header"]}),t(),()=>{window.removeEventListener("scroll",e),r.disconnect()}},[m]),r.useEffect(()=>{f(!1)},[m]);let y=u||p;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("header",{className:`fixed top-0 left-0 right-0 z-50 transition-all duration-300 ease-in-out ${y?"bg-neutral-light/90 backdrop-blur-md shadow-sm py-4":"bg-transparent py-6"}`,children:(0,t.jsxs)("div",{className:"container flex items-center justify-between",children:[(0,t.jsx)(n.default,{href:`/${g}`,className:"relative flex items-center h-12 w-48 z-50",children:(0,t.jsx)(o.default,{src:y||d?"/assets/logo.png":"/assets/logo-white.png",alt:"E-TIB Gruppe",fill:!0,className:"object-contain object-left",priority:!0,sizes:"192px"})}),(0,t.jsxs)("nav",{className:"hidden md:flex items-center gap-10",children:[e&&e.length>0&&e.map(e=>{let r=e.url.startsWith("/")&&!e.url.match(/^\/(en|de)/)?`/${g}${e.url}`:e.url;return(0,t.jsx)(n.default,{href:r,className:`font-semibold text-sm uppercase tracking-widest transition-all duration-300 ${y?"text-text-primary hover:text-primary":"text-neutral-light hover:text-primary-light"}`,children:e.label},e.url)}),(0,t.jsx)("div",{className:`h-4 w-px mx-2 transition-colors duration-300 ${y?"bg-neutral-300":"bg-white/20"}`}),(0,t.jsx)(s.LanguageSwitcher,{isSolidMode:y}),(0,t.jsx)(n.default,{href:`/${g}/${"de"===g?"kontakt":"contact"}`,className:"rounded-xl bg-primary hover:bg-primary-dark text-neutral-light px-8 py-3 font-bold text-sm uppercase tracking-wider transition-all shadow-xl hover:shadow-primary/20 hover:-translate-y-0.5 active:translate-y-0",children:"de"===g?"Kontakt":"Contact"})]}),(0,t.jsx)("button",{className:"md:hidden z-50 text-primary p-2",onClick:()=>f(!d),"aria-label":"Toggle menu",children:(0,t.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"28",height:"28",viewBox:"0 0 24 24",fill:"none",stroke:y||d?"currentColor":"white",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:d?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,t.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("line",{x1:"3",x2:"21",y1:"6",y2:"6"}),(0,t.jsx)("line",{x1:"3",x2:"21",y1:"12",y2:"12"}),(0,t.jsx)("line",{x1:"3",x2:"21",y1:"18",y2:"18"})]})})})]})}),(0,t.jsx)(a.AnimatePresence,{children:d&&(0,t.jsx)(i.motion.div,{initial:{opacity:0,y:-20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},transition:{duration:.2},className:"fixed inset-0 z-40 bg-white md:hidden pt-32 pb-8 px-6 overflow-y-auto",children:(0,t.jsxs)("nav",{className:"flex flex-col gap-6",children:[e&&e.length>0&&e.map(e=>{let r=e.url.startsWith("/")&&!e.url.match(/^\/(en|de)/)?`/${g}${e.url}`:e.url;return(0,t.jsx)(n.default,{href:r,className:"text-2xl font-heading font-bold text-neutral-dark border-b border-neutral-100 pb-4",children:e.label},e.url)}),(0,t.jsx)(n.default,{href:`/${g}/${"de"===g?"kontakt":"contact"}`,className:"text-2xl font-heading font-bold text-primary border-b border-neutral-100 pb-4",children:"de"===g?"Kontakt":"Contact"}),(0,t.jsxs)("div",{className:"mt-8 pt-6",children:[(0,t.jsx)("p",{className:"text-text-secondary text-sm font-bold uppercase tracking-widest mb-4",children:"Sprache wählen"}),(0,t.jsx)(s.LanguageSwitcher,{mobile:!0})]})]})})})]})}e.s(["Header",()=>u])},814508,e=>{"use strict";var t=e.i(452797),r=e.i(190422);function n(){let e=(0,r.useTranslations)("Navigation");return(0,t.jsx)("a",{href:"#main-content",className:"fixed -top-full left-4 z-[100] px-6 py-3 bg-white text-primary-dark font-bold rounded-lg shadow-xl outline-none ring-2 ring-accent transition-all duration-300 focus:top-4",children:e("skipToContent")})}e.s(["default",()=>n])},531518,e=>{"use strict";var t=e.i(653782),r=e.i(452797),n=e.i(902498),o=e.i(907358);let l=(0,n.default)(()=>e.A(348814),{loadableGenerated:{modules:[565071]},ssr:!1}),i=(0,n.default)(()=>e.A(740018),{loadableGenerated:{modules:[248785]},ssr:!1}),a=(0,n.default)(()=>e.A(225514),{loadableGenerated:{modules:[950648]},ssr:!1});function s(){let[e,n]=(0,o.useState)(!1);return((0,o.useEffect)(()=>{if("true"!==t.default.env.NEXT_PUBLIC_CI)if("requestIdleCallback"in window)window.requestIdleCallback(()=>n(!0),{timeout:3e3});else{let e=setTimeout(()=>n(!0),2500);return()=>clearTimeout(e)}},[]),e)?(0,r.jsxs)(o.Suspense,{fallback:null,children:[(0,r.jsx)(l,{}),(0,r.jsx)(i,{}),(0,r.jsx)(a,{})]}):null}e.s(["default",()=>s])},600023,e=>{"use strict";var t=e.i(883647),r=e.i(452797);function n({locale:e,...n}){if(!e)throw Error(void 0);return(0,r.jsx)(t.IntlProvider,{locale:e,...n})}e.s(["default",()=>n])},689647,e=>{"use strict";var t=e.i(452797);let r=(0,e.i(902498).default)(()=>e.A(262386).then(e=>e.FeedbackOverlay),{loadableGenerated:{modules:[566137]},ssr:!1});function n({feedbackEnabled:e}){return e?(0,t.jsx)(r,{}):null}e.s(["default",()=>n])},348814,e=>{e.v(t=>Promise.all(["static/chunks/a6d16f278f687ad0.js","static/chunks/0ff158dd58fe47c8.js"].map(t=>e.l(t))).then(()=>t(565071)))},740018,e=>{e.v(t=>Promise.all(["static/chunks/1fa1fc1d8df71347.js","static/chunks/0ff158dd58fe47c8.js"].map(t=>e.l(t))).then(()=>t(248785)))},225514,e=>{e.v(t=>Promise.all(["static/chunks/d578f418b9661eaf.js","static/chunks/0ff158dd58fe47c8.js"].map(t=>e.l(t))).then(()=>t(950648)))},262386,e=>{e.v(t=>Promise.all(["static/chunks/0a765fb53d81ccec.js","static/chunks/c9e4534297dc4d54.js","static/chunks/9c4a690cd48e1298.js"].map(t=>e.l(t))).then(()=>t(566137)))}]); - -//# debugId=db15ec48-72da-62e4-0744-7e9e84f06087 \ No newline at end of file diff --git a/.next/static/chunks/d578f418b9661eaf.js b/.next/static/chunks/844db355c06db065.js similarity index 99% rename from .next/static/chunks/d578f418b9661eaf.js rename to .next/static/chunks/844db355c06db065.js index 34b7e1d81..24e2a27c7 100644 --- a/.next/static/chunks/d578f418b9661eaf.js +++ b/.next/static/chunks/844db355c06db065.js @@ -1,4 +1,4 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="7af3ce68-6da9-d1e1-6d07-618a09ed9464")}catch(e){}}(); -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,102227,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"ReflectAdapter",{enumerable:!0,get:function(){return r}});class r{static get(e,t,n){let r=Reflect.get(e,t,n);return"function"==typeof r?r.bind(e):r}static set(e,t,n,r){return Reflect.set(e,t,n,r)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}},365278,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"afterTaskAsyncStorageInstance",{enumerable:!0,get:function(){return r}});let r=(0,e.r(496932).createAsyncLocalStorage)()},517110,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"afterTaskAsyncStorage",{enumerable:!0,get:function(){return r.afterTaskAsyncStorageInstance}});let r=e.r(365278)},780329,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={isRequestAPICallableInsideAfter:function(){return c},throwForSearchParamsAccessInUseCache:function(){return u},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return s}};for(var i in r)Object.defineProperty(n,i,{enumerable:!0,get:r[i]});let a=e.r(579781),o=e.r(517110);function s(e,t){throw Object.defineProperty(new a.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${t}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function u(e,t){let n=Object.defineProperty(Error(`Route ${e.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(n,t),e.invalidDynamicUsageError??=n,n}function c(){let e=o.afterTaskAsyncStorage.getStore();return(null==e?void 0:e.rootTaskSpawnPhase)==="action"}},759823,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r,i={RenderStage:function(){return u},StagedRenderingController:function(){return c}};for(var a in i)Object.defineProperty(n,a,{enumerable:!0,get:i[a]});let o=e.r(436120),s=e.r(444841);var u=((r={})[r.Before=1]="Before",r[r.Static=2]="Static",r[r.Runtime=3]="Runtime",r[r.Dynamic=4]="Dynamic",r[r.Abandoned=5]="Abandoned",r);class c{constructor(e=null,t){this.abortSignal=e,this.hasRuntimePrefetch=t,this.currentStage=1,this.staticInterruptReason=null,this.runtimeInterruptReason=null,this.staticStageEndTime=1/0,this.runtimeStageEndTime=1/0,this.runtimeStageListeners=[],this.dynamicStageListeners=[],this.runtimeStagePromise=(0,s.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,s.createPromiseWithResolvers)(),this.mayAbandon=!1,e&&(e.addEventListener("abort",()=>{let{reason:t}=e;this.currentStage<3&&(this.runtimeStagePromise.promise.catch(d),this.runtimeStagePromise.reject(t)),(this.currentStage<4||5===this.currentStage)&&(this.dynamicStagePromise.promise.catch(d),this.dynamicStagePromise.reject(t))},{once:!0}),this.mayAbandon=!0)}onStage(e,t){if(this.currentStage>=e)t();else if(3===e)this.runtimeStageListeners.push(t);else if(4===e)this.dynamicStageListeners.push(t);else throw Object.defineProperty(new o.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}canSyncInterrupt(){if(1===this.currentStage)return!1;let e=this.hasRuntimePrefetch?4:3;return this.currentStage=3&&(this.staticStageEndTime=performance.now()+performance.timeOrigin,this.resolveRuntimeStage()),t<4&&e>=4){this.runtimeStageEndTime=performance.now()+performance.timeOrigin,this.resolveDynamicStage();return}}resolveRuntimeStage(){let e=this.runtimeStageListeners;for(let t=0;t{r.then(e.bind(null,a),t)}),void 0!==i&&(o.displayName=i),o);return this.abortSignal&&s.catch(d),s}}function d(){}},118720,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"addPathSuffix",{enumerable:!0,get:function(){return i}});let r=e.r(506985);function i(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:n,query:i,hash:a}=(0,r.parsePath)(e);return`${n}${t}${i}${a}`}},446247,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"addLocale",{enumerable:!0,get:function(){return a}});let r=e.r(688391),i=e.r(712550);function a(e,t,n,a){if(!t||t===n)return e;let o=e.toLowerCase();return!a&&((0,i.pathHasPrefix)(o,"/api")||(0,i.pathHasPrefix)(o,`/${t.toLowerCase()}`))?e:(0,r.addPathPrefix)(e,`/${t}`)}},971560,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"formatNextPathnameInfo",{enumerable:!0,get:function(){return s}});let r=e.r(895708),i=e.r(688391),a=e.r(118720),o=e.r(446247);function s(e){let t=(0,o.addLocale)(e.pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix);return(e.buildId||!e.trailingSlash)&&(t=(0,r.removeTrailingSlash)(t)),e.buildId&&(t=(0,a.addPathSuffix)((0,i.addPathPrefix)(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=(0,i.addPathPrefix)(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:(0,a.addPathSuffix)(t,"/"):(0,r.removeTrailingSlash)(t)}},866140,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"normalizeLocalePath",{enumerable:!0,get:function(){return i}});let r=new WeakMap;function i(e,t){let n;if(!t)return{pathname:e};let i=r.get(t);i||(i=t.map(e=>e.toLowerCase()),r.set(t,i));let a=e.split("/",2);if(!a[1])return{pathname:e};let o=a[1].toLowerCase(),s=i.indexOf(o);return s<0?{pathname:e}:(n=t[s],{pathname:e=e.slice(n.length+1)||"/",detectedLocale:n})}},857436,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"removePathPrefix",{enumerable:!0,get:function(){return i}});let r=e.r(712550);function i(e,t){if(!(0,r.pathHasPrefix)(e,t))return e;let n=e.slice(t.length);return n.startsWith("/")?n:`/${n}`}},707723,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"getNextPathnameInfo",{enumerable:!0,get:function(){return o}});let r=e.r(866140),i=e.r(857436),a=e.r(712550);function o(e,t){let{basePath:n,i18n:o,trailingSlash:s}=t.nextConfig??{},u={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):s};n&&(0,a.pathHasPrefix)(u.pathname,n)&&(u.pathname=(0,i.removePathPrefix)(u.pathname,n),u.basePath=n);let c=u.pathname;if(u.pathname.startsWith("/_next/data/")&&u.pathname.endsWith(".json")){let e=u.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");u.buildId=e[0],c="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(u.pathname=c)}if(o){let e=t.i18nProvider?t.i18nProvider.analyze(u.pathname):(0,r.normalizeLocalePath)(u.pathname,o.locales);u.locale=e.detectedLocale,u.pathname=e.pathname??u.pathname,!e.detectedLocale&&u.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(c):(0,r.normalizeLocalePath)(c,o.locales)).detectedLocale&&(u.locale=e.detectedLocale)}return u}},955973,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={ACTION_SUFFIX:function(){return g},APP_DIR_ALIAS:function(){return X},CACHE_ONE_YEAR:function(){return C},DOT_NEXT_ALIAS:function(){return M},ESLINT_DEFAULT_DIRS:function(){return ei},GSP_NO_RETURNED_VALUE:function(){return J},GSSP_COMPONENT_MEMBER_ERROR:function(){return et},GSSP_NO_RETURNED_VALUE:function(){return Z},HTML_CONTENT_TYPE_HEADER:function(){return o},INFINITE_CACHE:function(){return O},INSTRUMENTATION_HOOK_FILENAME:function(){return D},JSON_CONTENT_TYPE_HEADER:function(){return s},MATCHED_PATH_HEADER:function(){return d},MIDDLEWARE_FILENAME:function(){return N},MIDDLEWARE_LOCATION_REGEXP:function(){return L},NEXT_BODY_SUFFIX:function(){return S},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return I},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return P},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return R},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return y},NEXT_CACHE_TAGS_HEADER:function(){return v},NEXT_CACHE_TAG_MAX_ITEMS:function(){return b},NEXT_CACHE_TAG_MAX_LENGTH:function(){return A},NEXT_DATA_SUFFIX:function(){return _},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return c},NEXT_META_SUFFIX:function(){return E},NEXT_QUERY_PARAM_PREFIX:function(){return u},NEXT_RESUME_HEADER:function(){return T},NON_STANDARD_NODE_ENV:function(){return en},PAGES_DIR_ALIAS:function(){return j},PRERENDER_REVALIDATE_HEADER:function(){return l},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return f},PROXY_FILENAME:function(){return x},PROXY_LOCATION_REGEXP:function(){return w},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return $},ROOT_DIR_ALIAS:function(){return F},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return Y},RSC_ACTION_ENCRYPTION_ALIAS:function(){return W},RSC_ACTION_PROXY_ALIAS:function(){return G},RSC_ACTION_VALIDATE_ALIAS:function(){return B},RSC_CACHE_WRAPPER_ALIAS:function(){return k},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return U},RSC_MOD_REF_PROXY_ALIAS:function(){return H},RSC_SEGMENTS_DIR_SUFFIX:function(){return p},RSC_SEGMENT_SUFFIX:function(){return m},RSC_SUFFIX:function(){return h},SERVER_PROPS_EXPORT_ERROR:function(){return Q},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return K},SERVER_PROPS_SSG_CONFLICT:function(){return q},SERVER_RUNTIME:function(){return ea},SSG_FALLBACK_EXPORT_ERROR:function(){return er},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return V},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return z},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return a},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return ee},WEBPACK_LAYERS:function(){return eu},WEBPACK_RESOURCE_QUERIES:function(){return ec},WEB_SOCKET_MAX_RECONNECTIONS:function(){return eo}};for(var i in r)Object.defineProperty(n,i,{enumerable:!0,get:r[i]});let a="text/plain",o="text/html; charset=utf-8",s="application/json; charset=utf-8",u="nxtP",c="nxtI",d="x-matched-path",l="x-prerender-revalidate",f="x-prerender-revalidate-if-generated",p=".segments",m=".segment.rsc",h=".rsc",g=".action",_=".json",E=".meta",S=".body",v="x-next-cache-tags",P="x-next-revalidated-tags",R="x-next-revalidate-tag-token",T="next-resume",b=128,A=256,y=1024,I="_N_T_",C=31536e3,O=0xfffffffe,N="middleware",L=`(?:src/)?${N}`,x="proxy",w=`(?:src/)?${x}`,D="instrumentation",j="private-next-pages",M="private-dot-next",F="private-next-root-dir",X="private-next-app-dir",H="private-next-rsc-mod-ref-proxy",B="private-next-rsc-action-validate",G="private-next-rsc-server-reference",k="private-next-rsc-cache-wrapper",U="private-next-rsc-track-dynamic-import",W="private-next-rsc-action-encryption",Y="private-next-rsc-action-client-wrapper",$="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",V="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",K="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",q="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",z="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",Q="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",J="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",Z="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",ee="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",et="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",en='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',er="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",ei=["app","pages","components","lib","src"],ea={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},eo=12,es={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},eu={...es,GROUP:{builtinReact:[es.reactServerComponents,es.actionBrowser],serverOnly:[es.reactServerComponents,es.actionBrowser,es.instrument,es.middleware],neutralTarget:[es.apiNode,es.apiEdge],clientOnly:[es.serverSideRendering,es.appPagesBrowser],bundled:[es.reactServerComponents,es.actionBrowser,es.serverSideRendering,es.appPagesBrowser,es.shared,es.instrument,es.middleware],appPages:[es.reactServerComponents,es.serverSideRendering,es.appPagesBrowser,es.actionBrowser]}},ec={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},630655,e=>{"use strict";var t=e.i(907358),n=e.i(777616);function r(){let e=(0,n.getAppServices)();return{trackEvent:(0,t.useCallback)((t,n)=>{e.analytics.track(t,n)},[e]),trackPageview:(0,t.useCallback)(t=>{e.analytics.trackPageview(t)},[e])}}e.s(["useAnalytics",()=>r])},182069,(e,t,n)=>{!function(){"use strict";var e={};e.d=function(t,n){for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},e.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},e.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},void 0!==e&&(e.ab="/ROOT/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/web-vitals/");var n={};e.r(n),e.d(n,{CLSThresholds:function(){return I},FCPThresholds:function(){return A},FIDThresholds:function(){return ee},INPThresholds:function(){return B},LCPThresholds:function(){return k},TTFBThresholds:function(){return Y},onCLS:function(){return C},onFCP:function(){return y},onFID:function(){return et},onINP:function(){return G},onLCP:function(){return W},onTTFB:function(){return V}});var r,i,a,o,s,u=-1,c=function(e){addEventListener("pageshow",function(t){t.persisted&&(u=t.timeStamp,e(t))},!0)},d=function(){var e=self.performance&&performance.getEntriesByType&&performance.getEntriesByType("navigation")[0];if(e&&e.responseStart>0&&e.responseStart=0?r="back-forward-cache":n&&(document.prerendering||l()>0?r="prerender":document.wasDiscarded?r="restore":n.type&&(r=n.type.replace(/_/g,"-"))),{name:e,value:void 0===t?-1:t,rating:"good",delta:0,entries:[],id:"v4-".concat(Date.now(),"-").concat(Math.floor(0x82f79cd8fff*Math.random())+1e12),navigationType:r}},p=function(e,t,n){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var r=new PerformanceObserver(function(e){Promise.resolve().then(function(){t(e.getEntries())})});return r.observe(Object.assign({type:e,buffered:!0},n||{})),r}}catch(e){}},m=function(e,t,n,r){var i,a;return function(o){var s;t.value>=0&&(o||r)&&((a=t.value-(i||0))||void 0===i)&&(i=t.value,t.delta=a,s=t.value,t.rating=s>n[1]?"poor":s>n[0]?"needs-improvement":"good",e(t))}},h=function(e){requestAnimationFrame(function(){return requestAnimationFrame(function(){return e()})})},g=function(e){document.addEventListener("visibilitychange",function(){"hidden"===document.visibilityState&&e()})},_=function(e){var t=!1;return function(){t||(e(),t=!0)}},E=-1,S=function(){return"hidden"!==document.visibilityState||document.prerendering?1/0:0},v=function(e){"hidden"===document.visibilityState&&E>-1&&(E="visibilitychange"===e.type?e.timeStamp:0,R())},P=function(){addEventListener("visibilitychange",v,!0),addEventListener("prerenderingchange",v,!0)},R=function(){removeEventListener("visibilitychange",v,!0),removeEventListener("prerenderingchange",v,!0)},T=function(){return E<0&&(E=S(),P(),c(function(){setTimeout(function(){E=S(),P()},0)})),{get firstHiddenTime(){return E}}},b=function(e){document.prerendering?addEventListener("prerenderingchange",function(){return e()},!0):e()},A=[1800,3e3],y=function(e,t){t=t||{},b(function(){var n,r=T(),i=f("FCP"),a=p("paint",function(e){e.forEach(function(e){"first-contentful-paint"===e.name&&(a.disconnect(),e.startTimer.value&&(r.value=i,r.entries=a,n())},s=p("layout-shift",o);s&&(n=m(e,r,I,t.reportAllChanges),g(function(){o(s.takeRecords()),n(!0)}),c(function(){i=0,n=m(e,r=f("CLS",0),I,t.reportAllChanges),h(function(){return n()})}),setTimeout(n,0))}))},O=0,N=1/0,L=0,x=function(e){e.forEach(function(e){e.interactionId&&(N=Math.min(N,e.interactionId),O=(L=Math.max(L,e.interactionId))?(L-N)/7+1:0)})},w=function(){"interactionCount"in performance||r||(r=p("event",x,{type:"event",buffered:!0,durationThreshold:0}))},D=[],j=new Map,M=0,F=[],X=function(e){if(F.forEach(function(t){return t(e)}),e.interactionId||"first-input"===e.entryType){var t=D[D.length-1],n=j.get(e.interactionId);if(n||D.length<10||e.duration>t.latency){if(n)e.duration>n.latency?(n.entries=[e],n.latency=e.duration):e.duration===n.latency&&e.startTime===n.entries[0].startTime&&n.entries.push(e);else{var r={id:e.interactionId,latency:e.duration,entries:[e]};j.set(r.id,r),D.push(r)}D.sort(function(e,t){return t.latency-e.latency}),D.length>10&&D.splice(10).forEach(function(e){return j.delete(e.id)})}}},H=function(e){var t=self.requestIdleCallback||self.setTimeout,n=-1;return e=_(e),"hidden"===document.visibilityState?e():(n=t(e),g(e)),n},B=[200,500],G=function(e,t){"PerformanceEventTiming"in self&&"interactionId"in PerformanceEventTiming.prototype&&(t=t||{},b(function(){w();var n,i,a=f("INP"),o=function(e){H(function(){e.forEach(X);var t,n=(t=Math.min(D.length-1,Math.floor(((r?O:performance.interactionCount||0)-M)/50)),D[t]);n&&n.latency!==a.value&&(a.value=n.latency,a.entries=n.entries,i())})},s=p("event",o,{durationThreshold:null!=(n=t.durationThreshold)?n:40});i=m(e,a,B,t.reportAllChanges),s&&(s.observe({type:"first-input",buffered:!0}),g(function(){o(s.takeRecords()),i(!0)}),c(function(){M=0,D.length=0,j.clear(),i=m(e,a=f("INP"),B,t.reportAllChanges)}))}))},k=[2500,4e3],U={},W=function(e,t){t=t||{},b(function(){var n,r=T(),i=f("LCP"),a=function(e){t.reportAllChanges||(e=e.slice(-1)),e.forEach(function(e){e.startTime=0&&a1e12?new Date:performance.now())-e.timeStamp;"pointerdown"==e.type?(t=function(){z(i,e),r()},n=function(){r()},r=function(){removeEventListener("pointerup",t,K),removeEventListener("pointercancel",n,K)},addEventListener("pointerup",t,K),addEventListener("pointercancel",n,K)):z(i,e)}},Z=function(e){["mousedown","keydown","touchstart","pointerdown"].forEach(function(t){return e(t,J,K)})},ee=[100,300],et=function(e,t){t=t||{},b(function(){var n,r=T(),o=f("FID"),u=function(e){e.startTime{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"useReportWebVitals",{enumerable:!0,get:function(){return a}});let r=e.r(907358),i=e.r(182069);function a(e){(0,r.useEffect)(()=>{(0,i.onCLS)(e),(0,i.onFID)(e),(0,i.onLCP)(e),(0,i.onINP)(e),(0,i.onFCP)(e),(0,i.onTTFB)(e)},[e])}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},729932,(e,t,n)=>{t.exports=e.r(34986)},727825,e=>{"use strict";var t=e.i(729932),n=e.i(630655);function r(){let{trackEvent:e}=(0,n.useAnalytics)();return(0,t.useReportWebVitals)(t=>{let{name:n,value:r,id:i,label:a}=t,o="good";"LCP"===n?r>4e3?o="poor":r>2500&&(o="needs-improvement"):"CLS"===n?r>.25?o="poor":r>.1&&(o="needs-improvement"):"FID"===n?r>300?o="poor":r>100&&(o="needs-improvement"):"FCP"===n?r>3e3?o="poor":r>1800&&(o="needs-improvement"):"TTFB"===n?r>1500?o="poor":r>800&&(o="needs-improvement"):"INP"===n&&(r>500?o="poor":r>200&&(o="needs-improvement")),e("web-vital",{metric:n,value:Math.round("CLS"===n?1e3*r:r),rating:o,id:i,label:a,path:window.location.pathname})}),null}e.s(["default",()=>r])},950648,e=>{e.n(e.i(727825))},919007,e=>{e.v(t=>Promise.all(["static/chunks/3ffd2a1cf95ceb60.js","static/chunks/f99046ae195fe277.js","static/chunks/6d182a34db4f4c54.js"].map(t=>e.l(t))).then(()=>t(502456)))}]); +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="c2a5a48d-31e3-b7bb-af8e-5dc48ef7b712")}catch(e){}}(); +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,102227,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"ReflectAdapter",{enumerable:!0,get:function(){return r}});class r{static get(e,t,n){let r=Reflect.get(e,t,n);return"function"==typeof r?r.bind(e):r}static set(e,t,n,r){return Reflect.set(e,t,n,r)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}},365278,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"afterTaskAsyncStorageInstance",{enumerable:!0,get:function(){return r}});let r=(0,e.r(496932).createAsyncLocalStorage)()},517110,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"afterTaskAsyncStorage",{enumerable:!0,get:function(){return r.afterTaskAsyncStorageInstance}});let r=e.r(365278)},780329,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={isRequestAPICallableInsideAfter:function(){return c},throwForSearchParamsAccessInUseCache:function(){return u},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return s}};for(var i in r)Object.defineProperty(n,i,{enumerable:!0,get:r[i]});let a=e.r(579781),o=e.r(517110);function s(e,t){throw Object.defineProperty(new a.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${t}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function u(e,t){let n=Object.defineProperty(Error(`Route ${e.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(n,t),e.invalidDynamicUsageError??=n,n}function c(){let e=o.afterTaskAsyncStorage.getStore();return(null==e?void 0:e.rootTaskSpawnPhase)==="action"}},759823,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r,i={RenderStage:function(){return u},StagedRenderingController:function(){return c}};for(var a in i)Object.defineProperty(n,a,{enumerable:!0,get:i[a]});let o=e.r(436120),s=e.r(444841);var u=((r={})[r.Before=1]="Before",r[r.Static=2]="Static",r[r.Runtime=3]="Runtime",r[r.Dynamic=4]="Dynamic",r[r.Abandoned=5]="Abandoned",r);class c{constructor(e=null,t){this.abortSignal=e,this.hasRuntimePrefetch=t,this.currentStage=1,this.staticInterruptReason=null,this.runtimeInterruptReason=null,this.staticStageEndTime=1/0,this.runtimeStageEndTime=1/0,this.runtimeStageListeners=[],this.dynamicStageListeners=[],this.runtimeStagePromise=(0,s.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,s.createPromiseWithResolvers)(),this.mayAbandon=!1,e&&(e.addEventListener("abort",()=>{let{reason:t}=e;this.currentStage<3&&(this.runtimeStagePromise.promise.catch(d),this.runtimeStagePromise.reject(t)),(this.currentStage<4||5===this.currentStage)&&(this.dynamicStagePromise.promise.catch(d),this.dynamicStagePromise.reject(t))},{once:!0}),this.mayAbandon=!0)}onStage(e,t){if(this.currentStage>=e)t();else if(3===e)this.runtimeStageListeners.push(t);else if(4===e)this.dynamicStageListeners.push(t);else throw Object.defineProperty(new o.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}canSyncInterrupt(){if(1===this.currentStage)return!1;let e=this.hasRuntimePrefetch?4:3;return this.currentStage=3&&(this.staticStageEndTime=performance.now()+performance.timeOrigin,this.resolveRuntimeStage()),t<4&&e>=4){this.runtimeStageEndTime=performance.now()+performance.timeOrigin,this.resolveDynamicStage();return}}resolveRuntimeStage(){let e=this.runtimeStageListeners;for(let t=0;t{r.then(e.bind(null,a),t)}),void 0!==i&&(o.displayName=i),o);return this.abortSignal&&s.catch(d),s}}function d(){}},118720,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"addPathSuffix",{enumerable:!0,get:function(){return i}});let r=e.r(506985);function i(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:n,query:i,hash:a}=(0,r.parsePath)(e);return`${n}${t}${i}${a}`}},446247,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"addLocale",{enumerable:!0,get:function(){return a}});let r=e.r(688391),i=e.r(712550);function a(e,t,n,a){if(!t||t===n)return e;let o=e.toLowerCase();return!a&&((0,i.pathHasPrefix)(o,"/api")||(0,i.pathHasPrefix)(o,`/${t.toLowerCase()}`))?e:(0,r.addPathPrefix)(e,`/${t}`)}},971560,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"formatNextPathnameInfo",{enumerable:!0,get:function(){return s}});let r=e.r(895708),i=e.r(688391),a=e.r(118720),o=e.r(446247);function s(e){let t=(0,o.addLocale)(e.pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix);return(e.buildId||!e.trailingSlash)&&(t=(0,r.removeTrailingSlash)(t)),e.buildId&&(t=(0,a.addPathSuffix)((0,i.addPathPrefix)(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=(0,i.addPathPrefix)(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:(0,a.addPathSuffix)(t,"/"):(0,r.removeTrailingSlash)(t)}},866140,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"normalizeLocalePath",{enumerable:!0,get:function(){return i}});let r=new WeakMap;function i(e,t){let n;if(!t)return{pathname:e};let i=r.get(t);i||(i=t.map(e=>e.toLowerCase()),r.set(t,i));let a=e.split("/",2);if(!a[1])return{pathname:e};let o=a[1].toLowerCase(),s=i.indexOf(o);return s<0?{pathname:e}:(n=t[s],{pathname:e=e.slice(n.length+1)||"/",detectedLocale:n})}},857436,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"removePathPrefix",{enumerable:!0,get:function(){return i}});let r=e.r(712550);function i(e,t){if(!(0,r.pathHasPrefix)(e,t))return e;let n=e.slice(t.length);return n.startsWith("/")?n:`/${n}`}},707723,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"getNextPathnameInfo",{enumerable:!0,get:function(){return o}});let r=e.r(866140),i=e.r(857436),a=e.r(712550);function o(e,t){let{basePath:n,i18n:o,trailingSlash:s}=t.nextConfig??{},u={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):s};n&&(0,a.pathHasPrefix)(u.pathname,n)&&(u.pathname=(0,i.removePathPrefix)(u.pathname,n),u.basePath=n);let c=u.pathname;if(u.pathname.startsWith("/_next/data/")&&u.pathname.endsWith(".json")){let e=u.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");u.buildId=e[0],c="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(u.pathname=c)}if(o){let e=t.i18nProvider?t.i18nProvider.analyze(u.pathname):(0,r.normalizeLocalePath)(u.pathname,o.locales);u.locale=e.detectedLocale,u.pathname=e.pathname??u.pathname,!e.detectedLocale&&u.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(c):(0,r.normalizeLocalePath)(c,o.locales)).detectedLocale&&(u.locale=e.detectedLocale)}return u}},955973,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0});var r={ACTION_SUFFIX:function(){return g},APP_DIR_ALIAS:function(){return X},CACHE_ONE_YEAR:function(){return C},DOT_NEXT_ALIAS:function(){return M},ESLINT_DEFAULT_DIRS:function(){return ei},GSP_NO_RETURNED_VALUE:function(){return J},GSSP_COMPONENT_MEMBER_ERROR:function(){return et},GSSP_NO_RETURNED_VALUE:function(){return Z},HTML_CONTENT_TYPE_HEADER:function(){return o},INFINITE_CACHE:function(){return O},INSTRUMENTATION_HOOK_FILENAME:function(){return D},JSON_CONTENT_TYPE_HEADER:function(){return s},MATCHED_PATH_HEADER:function(){return d},MIDDLEWARE_FILENAME:function(){return N},MIDDLEWARE_LOCATION_REGEXP:function(){return L},NEXT_BODY_SUFFIX:function(){return S},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return I},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return P},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return R},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return y},NEXT_CACHE_TAGS_HEADER:function(){return v},NEXT_CACHE_TAG_MAX_ITEMS:function(){return b},NEXT_CACHE_TAG_MAX_LENGTH:function(){return A},NEXT_DATA_SUFFIX:function(){return _},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return c},NEXT_META_SUFFIX:function(){return E},NEXT_QUERY_PARAM_PREFIX:function(){return u},NEXT_RESUME_HEADER:function(){return T},NON_STANDARD_NODE_ENV:function(){return en},PAGES_DIR_ALIAS:function(){return j},PRERENDER_REVALIDATE_HEADER:function(){return l},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return f},PROXY_FILENAME:function(){return x},PROXY_LOCATION_REGEXP:function(){return w},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return $},ROOT_DIR_ALIAS:function(){return F},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return Y},RSC_ACTION_ENCRYPTION_ALIAS:function(){return W},RSC_ACTION_PROXY_ALIAS:function(){return G},RSC_ACTION_VALIDATE_ALIAS:function(){return B},RSC_CACHE_WRAPPER_ALIAS:function(){return k},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return U},RSC_MOD_REF_PROXY_ALIAS:function(){return H},RSC_SEGMENTS_DIR_SUFFIX:function(){return p},RSC_SEGMENT_SUFFIX:function(){return m},RSC_SUFFIX:function(){return h},SERVER_PROPS_EXPORT_ERROR:function(){return Q},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return K},SERVER_PROPS_SSG_CONFLICT:function(){return q},SERVER_RUNTIME:function(){return ea},SSG_FALLBACK_EXPORT_ERROR:function(){return er},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return V},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return z},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return a},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return ee},WEBPACK_LAYERS:function(){return eu},WEBPACK_RESOURCE_QUERIES:function(){return ec},WEB_SOCKET_MAX_RECONNECTIONS:function(){return eo}};for(var i in r)Object.defineProperty(n,i,{enumerable:!0,get:r[i]});let a="text/plain",o="text/html; charset=utf-8",s="application/json; charset=utf-8",u="nxtP",c="nxtI",d="x-matched-path",l="x-prerender-revalidate",f="x-prerender-revalidate-if-generated",p=".segments",m=".segment.rsc",h=".rsc",g=".action",_=".json",E=".meta",S=".body",v="x-next-cache-tags",P="x-next-revalidated-tags",R="x-next-revalidate-tag-token",T="next-resume",b=128,A=256,y=1024,I="_N_T_",C=31536e3,O=0xfffffffe,N="middleware",L=`(?:src/)?${N}`,x="proxy",w=`(?:src/)?${x}`,D="instrumentation",j="private-next-pages",M="private-dot-next",F="private-next-root-dir",X="private-next-app-dir",H="private-next-rsc-mod-ref-proxy",B="private-next-rsc-action-validate",G="private-next-rsc-server-reference",k="private-next-rsc-cache-wrapper",U="private-next-rsc-track-dynamic-import",W="private-next-rsc-action-encryption",Y="private-next-rsc-action-client-wrapper",$="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",V="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",K="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",q="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",z="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",Q="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",J="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",Z="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",ee="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",et="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",en='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',er="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",ei=["app","pages","components","lib","src"],ea={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},eo=12,es={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},eu={...es,GROUP:{builtinReact:[es.reactServerComponents,es.actionBrowser],serverOnly:[es.reactServerComponents,es.actionBrowser,es.instrument,es.middleware],neutralTarget:[es.apiNode,es.apiEdge],clientOnly:[es.serverSideRendering,es.appPagesBrowser],bundled:[es.reactServerComponents,es.actionBrowser,es.serverSideRendering,es.appPagesBrowser,es.shared,es.instrument,es.middleware],appPages:[es.reactServerComponents,es.serverSideRendering,es.appPagesBrowser,es.actionBrowser]}},ec={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},630655,e=>{"use strict";var t=e.i(907358),n=e.i(777616);function r(){let e=(0,n.getAppServices)();return{trackEvent:(0,t.useCallback)((t,n)=>{e.analytics.track(t,n)},[e]),trackPageview:(0,t.useCallback)(t=>{e.analytics.trackPageview(t)},[e])}}e.s(["useAnalytics",()=>r])},182069,(e,t,n)=>{!function(){"use strict";var e={};e.d=function(t,n){for(var r in n)e.o(n,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:n[r]})},e.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},e.r=function(e){"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},void 0!==e&&(e.ab="/ROOT/node_modules/.pnpm/next@16.1.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.4_react@19.2.4__react@19.2.4_sass@1.98.0/node_modules/next/dist/compiled/web-vitals/");var n={};e.r(n),e.d(n,{CLSThresholds:function(){return I},FCPThresholds:function(){return A},FIDThresholds:function(){return ee},INPThresholds:function(){return B},LCPThresholds:function(){return k},TTFBThresholds:function(){return Y},onCLS:function(){return C},onFCP:function(){return y},onFID:function(){return et},onINP:function(){return G},onLCP:function(){return W},onTTFB:function(){return V}});var r,i,a,o,s,u=-1,c=function(e){addEventListener("pageshow",function(t){t.persisted&&(u=t.timeStamp,e(t))},!0)},d=function(){var e=self.performance&&performance.getEntriesByType&&performance.getEntriesByType("navigation")[0];if(e&&e.responseStart>0&&e.responseStart=0?r="back-forward-cache":n&&(document.prerendering||l()>0?r="prerender":document.wasDiscarded?r="restore":n.type&&(r=n.type.replace(/_/g,"-"))),{name:e,value:void 0===t?-1:t,rating:"good",delta:0,entries:[],id:"v4-".concat(Date.now(),"-").concat(Math.floor(0x82f79cd8fff*Math.random())+1e12),navigationType:r}},p=function(e,t,n){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var r=new PerformanceObserver(function(e){Promise.resolve().then(function(){t(e.getEntries())})});return r.observe(Object.assign({type:e,buffered:!0},n||{})),r}}catch(e){}},m=function(e,t,n,r){var i,a;return function(o){var s;t.value>=0&&(o||r)&&((a=t.value-(i||0))||void 0===i)&&(i=t.value,t.delta=a,s=t.value,t.rating=s>n[1]?"poor":s>n[0]?"needs-improvement":"good",e(t))}},h=function(e){requestAnimationFrame(function(){return requestAnimationFrame(function(){return e()})})},g=function(e){document.addEventListener("visibilitychange",function(){"hidden"===document.visibilityState&&e()})},_=function(e){var t=!1;return function(){t||(e(),t=!0)}},E=-1,S=function(){return"hidden"!==document.visibilityState||document.prerendering?1/0:0},v=function(e){"hidden"===document.visibilityState&&E>-1&&(E="visibilitychange"===e.type?e.timeStamp:0,R())},P=function(){addEventListener("visibilitychange",v,!0),addEventListener("prerenderingchange",v,!0)},R=function(){removeEventListener("visibilitychange",v,!0),removeEventListener("prerenderingchange",v,!0)},T=function(){return E<0&&(E=S(),P(),c(function(){setTimeout(function(){E=S(),P()},0)})),{get firstHiddenTime(){return E}}},b=function(e){document.prerendering?addEventListener("prerenderingchange",function(){return e()},!0):e()},A=[1800,3e3],y=function(e,t){t=t||{},b(function(){var n,r=T(),i=f("FCP"),a=p("paint",function(e){e.forEach(function(e){"first-contentful-paint"===e.name&&(a.disconnect(),e.startTimer.value&&(r.value=i,r.entries=a,n())},s=p("layout-shift",o);s&&(n=m(e,r,I,t.reportAllChanges),g(function(){o(s.takeRecords()),n(!0)}),c(function(){i=0,n=m(e,r=f("CLS",0),I,t.reportAllChanges),h(function(){return n()})}),setTimeout(n,0))}))},O=0,N=1/0,L=0,x=function(e){e.forEach(function(e){e.interactionId&&(N=Math.min(N,e.interactionId),O=(L=Math.max(L,e.interactionId))?(L-N)/7+1:0)})},w=function(){"interactionCount"in performance||r||(r=p("event",x,{type:"event",buffered:!0,durationThreshold:0}))},D=[],j=new Map,M=0,F=[],X=function(e){if(F.forEach(function(t){return t(e)}),e.interactionId||"first-input"===e.entryType){var t=D[D.length-1],n=j.get(e.interactionId);if(n||D.length<10||e.duration>t.latency){if(n)e.duration>n.latency?(n.entries=[e],n.latency=e.duration):e.duration===n.latency&&e.startTime===n.entries[0].startTime&&n.entries.push(e);else{var r={id:e.interactionId,latency:e.duration,entries:[e]};j.set(r.id,r),D.push(r)}D.sort(function(e,t){return t.latency-e.latency}),D.length>10&&D.splice(10).forEach(function(e){return j.delete(e.id)})}}},H=function(e){var t=self.requestIdleCallback||self.setTimeout,n=-1;return e=_(e),"hidden"===document.visibilityState?e():(n=t(e),g(e)),n},B=[200,500],G=function(e,t){"PerformanceEventTiming"in self&&"interactionId"in PerformanceEventTiming.prototype&&(t=t||{},b(function(){w();var n,i,a=f("INP"),o=function(e){H(function(){e.forEach(X);var t,n=(t=Math.min(D.length-1,Math.floor(((r?O:performance.interactionCount||0)-M)/50)),D[t]);n&&n.latency!==a.value&&(a.value=n.latency,a.entries=n.entries,i())})},s=p("event",o,{durationThreshold:null!=(n=t.durationThreshold)?n:40});i=m(e,a,B,t.reportAllChanges),s&&(s.observe({type:"first-input",buffered:!0}),g(function(){o(s.takeRecords()),i(!0)}),c(function(){M=0,D.length=0,j.clear(),i=m(e,a=f("INP"),B,t.reportAllChanges)}))}))},k=[2500,4e3],U={},W=function(e,t){t=t||{},b(function(){var n,r=T(),i=f("LCP"),a=function(e){t.reportAllChanges||(e=e.slice(-1)),e.forEach(function(e){e.startTime=0&&a1e12?new Date:performance.now())-e.timeStamp;"pointerdown"==e.type?(t=function(){z(i,e),r()},n=function(){r()},r=function(){removeEventListener("pointerup",t,K),removeEventListener("pointercancel",n,K)},addEventListener("pointerup",t,K),addEventListener("pointercancel",n,K)):z(i,e)}},Z=function(e){["mousedown","keydown","touchstart","pointerdown"].forEach(function(t){return e(t,J,K)})},ee=[100,300],et=function(e,t){t=t||{},b(function(){var n,r=T(),o=f("FID"),u=function(e){e.startTime{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"useReportWebVitals",{enumerable:!0,get:function(){return a}});let r=e.r(907358),i=e.r(182069);function a(e){(0,r.useEffect)(()=>{(0,i.onCLS)(e),(0,i.onFID)(e),(0,i.onLCP)(e),(0,i.onINP)(e),(0,i.onFCP)(e),(0,i.onTTFB)(e)},[e])}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},729932,(e,t,n)=>{t.exports=e.r(34986)},727825,e=>{"use strict";var t=e.i(729932),n=e.i(630655);function r(){let{trackEvent:e}=(0,n.useAnalytics)();return(0,t.useReportWebVitals)(t=>{let{name:n,value:r,id:i,label:a}=t,o="good";"LCP"===n?r>4e3?o="poor":r>2500&&(o="needs-improvement"):"CLS"===n?r>.25?o="poor":r>.1&&(o="needs-improvement"):"FID"===n?r>300?o="poor":r>100&&(o="needs-improvement"):"FCP"===n?r>3e3?o="poor":r>1800&&(o="needs-improvement"):"TTFB"===n?r>1500?o="poor":r>800&&(o="needs-improvement"):"INP"===n&&(r>500?o="poor":r>200&&(o="needs-improvement")),e("web-vital",{metric:n,value:Math.round("CLS"===n?1e3*r:r),rating:o,id:i,label:a,path:window.location.pathname})}),null}e.s(["default",()=>r])},950648,e=>{e.n(e.i(727825))},919007,e=>{e.v(t=>Promise.all(["static/chunks/3ffd2a1cf95ceb60.js","static/chunks/32fec23faa4b171a.js","static/chunks/6d182a34db4f4c54.js"].map(t=>e.l(t))).then(()=>t(502456)))}]); -//# debugId=7af3ce68-6da9-d1e1-6d07-618a09ed9464 \ No newline at end of file +//# debugId=c2a5a48d-31e3-b7bb-af8e-5dc48ef7b712 \ No newline at end of file diff --git a/.next/static/chunks/928be433d65b40cc.css b/.next/static/chunks/928be433d65b40cc.css deleted file mode 100644 index 8396d6ba8..000000000 --- a/.next/static/chunks/928be433d65b40cc.css +++ /dev/null @@ -1 +0,0 @@ -@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-scroll-snap-strictness:proximity;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:var(--font-inter),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-300:oklch(80.8% .114 19.571);--color-red-500:oklch(63.7% .237 25.331);--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-yellow-50:oklch(98.7% .026 102.212);--color-yellow-200:oklch(94.5% .129 101.54);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-900:oklch(42.1% .095 57.708);--color-green-50:oklch(98.2% .018 155.826);--color-green-200:oklch(92.5% .084 155.995);--color-green-500:oklch(72.3% .219 149.579);--color-green-900:oklch(39.3% .095 152.535);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-teal-400:oklch(77.7% .152 181.912);--color-blue-50:oklch(97% .014 254.604);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-900:oklch(37.9% .146 265.522);--color-purple-50:oklch(97.7% .014 308.299);--color-purple-200:oklch(90.2% .063 306.703);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-900:oklch(38.1% .176 304.987);--color-neutral-50:oklch(98.5% 0 0);--color-neutral-100:oklch(97% 0 0);--color-neutral-200:oklch(92.2% 0 0);--color-neutral-300:oklch(87% 0 0);--color-neutral-400:oklch(70.8% 0 0);--color-neutral-600:oklch(43.9% 0 0);--color-neutral-800:oklch(26.9% 0 0);--color-neutral-900:oklch(20.5% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-7xl:80rem;--font-weight-extralight:200;--font-weight-normal:400;--font-weight-black:900;--tracking-tighter:-.05em;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-3xl:1.5rem;--drop-shadow-sm:0 1px 2px #00000026;--drop-shadow-md:0 3px 3px #0000001f;--drop-shadow-lg:0 4px 4px #00000026;--drop-shadow-2xl:0 25px 25px #00000026;--ease-in:cubic-bezier(.4,0,1,1);--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--animate-bounce:bounce 1s infinite;--blur-sm:8px;--blur-md:12px;--blur-xl:24px;--blur-2xl:40px;--blur-3xl:64px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-heading:"Inter",system-ui,sans-serif;--color-primary:#0e7a5c;--color-primary-dark:#084c39;--color-primary-light:#e6f5f0;--color-saturated:#10a379;--color-secondary:#003d82;--color-secondary-light:#0056b3;--color-accent:#82ed20;--color-accent-dark:#14532d;--color-accent-light:#f0f9e6;--color-neutral:#f8f9fa;--color-neutral-light:#fff;--color-neutral-dark:#0a0a0a;--color-neutral-medium:#e5e7eb;--color-text-primary:#111827;--color-text-secondary:#4b5563;--color-text-light:#9ca3af;--color-destructive:#ef4444;--color-destructive-foreground:#fff;--animate-fade-in:fade-in .5s ease-out;--animate-slide-up:slide-up .6s ease-out;--animate-slow-zoom:slow-zoom 20s linear infinite;--animate-slight-fade-in-from-bottom:slight-fade-in-from-bottom .8s cubic-bezier(.16,1,.3,1)forwards;--animate-gradient-x:gradient-x 15s ease infinite;--animate-draw-stroke:draw-stroke 1.8s ease-in-out .5s forwards}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}html{font-size:87.5%}@media (min-width:768px){html{font-size:100%}}.bg-primary a,.bg-primary-dark a{color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.bg-primary a,.bg-primary-dark a{color:color-mix(in oklab,var(--color-white)90%,transparent)}}.bg-primary a,.bg-primary-dark a{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){:is(.bg-primary a,.bg-primary-dark a):hover{color:var(--color-white)}}body{font-size:1rem;line-height:var(--tw-leading,1.7)}@media (min-width:768px){body{font-size:1.125rem;line-height:var(--tw-leading,1.7)}}body{text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.7}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);--tw-font-weight:700;--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight);font-weight:700;line-height:1.2}h1{font-size:1.875rem;line-height:var(--tw-leading,1.4);--tw-leading:1.1;line-height:1.1}@media (min-width:768px){h1{font-size:3rem;line-height:var(--tw-leading,1.25)}}@media (min-width:1024px){h1{font-size:3.75rem;line-height:var(--tw-leading,1.2)}}h2{font-size:1.5rem;line-height:var(--tw-leading,1.5);--tw-leading:1.2;line-height:1.2}@media (min-width:768px){h2{font-size:2.25rem;line-height:var(--tw-leading,1.3)}}@media (min-width:1024px){h2{font-size:3rem;line-height:var(--tw-leading,1.25)}}h3{font-size:1.25rem;line-height:var(--tw-leading,1.6);--tw-leading:1.3;line-height:1.3}@media (min-width:768px){h3{font-size:1.5rem;line-height:var(--tw-leading,1.5)}}@media (min-width:1024px){h3{font-size:1.875rem;line-height:var(--tw-leading,1.4)}}h4{font-size:1.125rem;line-height:var(--tw-leading,1.7);--tw-leading:1.4;line-height:1.4}@media (min-width:768px){h4{font-size:1.25rem;line-height:var(--tw-leading,1.6)}}@media (min-width:1024px){h4{font-size:1.5rem;line-height:var(--tw-leading,1.5)}}h5{font-size:1rem;line-height:var(--tw-leading,1.7);--tw-leading:1.5;line-height:1.5}@media (min-width:768px){h5{font-size:1.125rem;line-height:var(--tw-leading,1.7)}}h6{font-size:.875rem;line-height:var(--tw-leading,1.6);--tw-leading:1.6;line-height:1.6}@media (min-width:768px){h6{font-size:1rem;line-height:var(--tw-leading,1.7)}}p{margin-bottom:calc(var(--spacing)*4);--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}a{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.2s;text-decoration-line:none;transition-duration:.2s}ul,ol{margin-block:calc(var(--spacing)*4);margin-left:calc(var(--spacing)*6)}li{margin-bottom:calc(var(--spacing)*2);--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}small{font-size:.875rem;line-height:var(--tw-leading,1.6)}@media (min-width:768px){small{font-size:1rem;line-height:var(--tw-leading,1.7)}}strong{--tw-font-weight:700;font-weight:700}em{font-style:italic}blockquote{margin-block:calc(var(--spacing)*6);border-left-style:var(--tw-border-style);padding-left:calc(var(--spacing)*6);border-left-width:4px;font-style:italic}code{padding-inline:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*1);font-family:var(--font-mono);font-size:.875rem;line-height:var(--tw-leading,1.6);border-radius:.5rem}hr{margin-block:calc(var(--spacing)*8)}}@layer components{.glass-panel{border-style:var(--tw-border-style);border-width:1px;border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.glass-panel{border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.glass-panel{background-color:#fffc}@supports (color:color-mix(in lab, red, red)){.glass-panel{background-color:color-mix(in oklab,var(--color-white)80%,transparent)}}.glass-panel{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -2px var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);--tw-backdrop-blur:blur(var(--blur-md));backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.image-overlay-gradient{inset:calc(var(--spacing)*0);--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops));--tw-gradient-from:color-mix(in oklab,var(--color-black)90%,transparent);--tw-gradient-via:color-mix(in oklab,var(--color-black)40%,transparent);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position));--tw-gradient-to:transparent;position:absolute}.premium-card{border-radius:var(--radius-3xl);background-color:var(--color-white);--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration));--tw-duration:.5s;transition-duration:.5s}@media (hover:hover){.premium-card:hover{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y);--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.sticky-narrative-container{gap:calc(var(--spacing)*12);grid-template-columns:repeat(1,minmax(0,1fr));display:grid}@media (min-width:1024px){.sticky-narrative-container{gap:calc(var(--spacing)*20);grid-template-columns:repeat(12,minmax(0,1fr))}}.sticky-narrative-sidebar{height:fit-content}@media (min-width:1024px){.sticky-narrative-sidebar{top:calc(var(--spacing)*32);grid-column:span 4/span 4;position:sticky}.sticky-narrative-content{grid-column:span 8/span 8}}}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.-top-\[20\%\]{top:-20%}.-top-\[25\%\]{top:-25%}.-top-full{top:-100%}.top-0{top:calc(var(--spacing)*0)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing)*2)}.top-4{top:calc(var(--spacing)*4)}.top-6{top:calc(var(--spacing)*6)}.top-8{top:calc(var(--spacing)*8)}.top-32{top:calc(var(--spacing)*32)}.right-0{right:calc(var(--spacing)*0)}.right-2{right:calc(var(--spacing)*2)}.right-4{right:calc(var(--spacing)*4)}.right-6{right:calc(var(--spacing)*6)}.right-8{right:calc(var(--spacing)*8)}.-bottom-2{bottom:calc(var(--spacing)*-2)}.-bottom-3{bottom:calc(var(--spacing)*-3)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-6{bottom:calc(var(--spacing)*6)}.-left-4{left:calc(var(--spacing)*-4)}.-left-8{left:calc(var(--spacing)*-8)}.-left-\[20\%\]{left:-20%}.-left-\[25\%\]{left:-25%}.-left-\[25px\]{left:-25px}.left-0{left:calc(var(--spacing)*0)}.left-1{left:calc(var(--spacing)*1)}.left-1\/2{left:50%}.left-4{left:calc(var(--spacing)*4)}.left-6{left:calc(var(--spacing)*6)}.left-8{left:calc(var(--spacing)*8)}.isolate{isolation:isolate}.-z-10{z-index:calc(10*-1)}.z-0{z-index:0}.z-1{z-index:1}.z-7{z-index:7}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.z-\[2\]{z-index:2}.z-\[3\]{z-index:3}.z-\[4\]{z-index:4}.z-\[100\]{z-index:100}.z-\[10000\]{z-index:10000}.z-\[99999\]{z-index:99999}.order-1{order:1}.order-2{order:2}.col-span-1{grid-column:span 1/span 1}.container{width:100%}@media (min-width:475px){.container{max-width:475px}}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1400px){.container{max-width:1400px}}@media (min-width:1600px){.container{max-width:1600px}}.fluid-spacing{margin:clamp(.5rem,2vw,2rem);padding:clamp(1rem,3vw,3rem);margin:clamp(1rem,3vw,3rem);padding:clamp(1.5rem,5vw,5rem)}.-m-4{margin:calc(var(--spacing)*-4)}.m-0{margin:calc(var(--spacing)*0)}.m-5{margin:calc(var(--spacing)*5)}.container{margin-inline:auto;padding-inline:1rem}@media (min-width:475px){.container{max-width:475px}}@media (min-width:640px){.container{max-width:640px;padding-inline:1.5rem}}@media (min-width:768px){.container{max-width:768px;padding-inline:2rem}}@media (min-width:1024px){.container{max-width:1024px;padding-inline:2.5rem}}@media (min-width:1280px){.container{max-width:1280px;padding-inline:3rem}}@media (min-width:1400px){.container{max-width:1400px;padding-inline:4rem}}@media (min-width:1600px){.container{max-width:1600px}}.-mx-5{margin-inline:calc(var(--spacing)*-5)}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-3{margin-inline:calc(var(--spacing)*3)}.mx-auto{margin-inline:auto}.my-8{margin-block:calc(var(--spacing)*8)}.my-10{margin-block:calc(var(--spacing)*10)}.my-12{margin-block:calc(var(--spacing)*12)}.my-16{margin-block:calc(var(--spacing)*16)}.my-24{margin-block:calc(var(--spacing)*24)}.\!mt-0{margin-top:calc(var(--spacing)*0)!important}.\!mt-1{margin-top:calc(var(--spacing)*1)!important}.-mt-6{margin-top:calc(var(--spacing)*-6)}.-mt-8{margin-top:calc(var(--spacing)*-8)}.-mt-10{margin-top:calc(var(--spacing)*-10)}.-mt-32{margin-top:calc(var(--spacing)*-32)}.-mt-px{margin-top:-1px}.mt-0{margin-top:calc(var(--spacing)*0)}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-1\.5{margin-top:calc(var(--spacing)*1.5)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-2\.5{margin-top:calc(var(--spacing)*2.5)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-8{margin-top:calc(var(--spacing)*8)}.mt-12{margin-top:calc(var(--spacing)*12)}.mt-16{margin-top:calc(var(--spacing)*16)}.mt-24{margin-top:calc(var(--spacing)*24)}.mt-\[80px\]{margin-top:80px}.mt-auto{margin-top:auto}.-mr-1{margin-right:calc(var(--spacing)*-1)}.-mr-6{margin-right:calc(var(--spacing)*-6)}.-mr-8{margin-right:calc(var(--spacing)*-8)}.-mr-10{margin-right:calc(var(--spacing)*-10)}.-mr-32{margin-right:calc(var(--spacing)*-32)}.mr-2{margin-right:calc(var(--spacing)*2)}.mr-3{margin-right:calc(var(--spacing)*3)}.mr-4{margin-right:calc(var(--spacing)*4)}.\!mb-0{margin-bottom:calc(var(--spacing)*0)!important}.mb-0{margin-bottom:calc(var(--spacing)*0)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-5{margin-bottom:calc(var(--spacing)*5)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-10{margin-bottom:calc(var(--spacing)*10)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.mb-16{margin-bottom:calc(var(--spacing)*16)}.mb-20{margin-bottom:calc(var(--spacing)*20)}.mb-\[-80px\]{margin-bottom:-80px}.-ml-1{margin-left:calc(var(--spacing)*-1)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-3{margin-left:calc(var(--spacing)*3)}.ml-12{margin-left:calc(var(--spacing)*12)}.ml-auto{margin-left:auto}.touch-target{justify-content:center;align-items:center;min-width:48px;min-height:48px;display:inline-flex}.grid-mobile-stacked{gap:calc(var(--spacing)*6);grid-template-columns:repeat(1,minmax(0,1fr));display:grid}@media (min-width:768px){.grid-mobile-stacked{gap:calc(var(--spacing)*8);grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.grid-mobile-stacked{gap:calc(var(--spacing)*12);grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:767px){.grid-mobile-stacked{flex-direction:column;gap:1rem;display:flex}}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}@media (min-width:1024px){.desktop-hidden{display:none!important}}@media (max-width:1023px){.desktop-only{display:none!important}}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}@media (max-width:767px){.mobile-hidden{display:none!important}}@media (min-width:768px){.mobile-only{display:none!important}}.table{display:table}@media (min-width:768px) and (max-width:1023px){.tablet-hidden{display:none!important}}@media (max-width:767px),(min-width:1024px){.tablet-only{display:none!important}}.aspect-\[3\/4\]{aspect-ratio:3/4}.aspect-\[4\/3\]{aspect-ratio:4/3}.aspect-\[16\/10\]{aspect-ratio:16/10}.h-0\.5{height:calc(var(--spacing)*.5)}.h-1{height:calc(var(--spacing)*1)}.h-1\.5{height:calc(var(--spacing)*1.5)}.h-1\/2{height:50%}.h-2{height:calc(var(--spacing)*2)}.h-3{height:calc(var(--spacing)*3)}.h-3\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-11{height:calc(var(--spacing)*11)}.h-12{height:calc(var(--spacing)*12)}.h-14{height:calc(var(--spacing)*14)}.h-16{height:calc(var(--spacing)*16)}.h-20{height:calc(var(--spacing)*20)}.h-24{height:calc(var(--spacing)*24)}.h-32{height:calc(var(--spacing)*32)}.h-40{height:calc(var(--spacing)*40)}.h-48{height:calc(var(--spacing)*48)}.h-64{height:calc(var(--spacing)*64)}.h-96{height:calc(var(--spacing)*96)}.h-\[2px\]{height:2px}.h-\[40vh\]{height:40vh}.h-\[50vh\]{height:50vh}.h-\[70vh\]{height:70vh}.h-\[100svh\]{height:100svh}.h-\[140\%\]{height:140%}.h-\[150\%\]{height:150%}.h-\[300px\]{height:300px}.h-\[400px\]{height:400px}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-24{max-height:calc(var(--spacing)*24)}.max-h-\[85vh\]{max-height:85vh}.max-h-\[400px\]{max-height:400px}.max-h-\[none\]{max-height:none}.min-h-\[50vh\]{min-height:50vh}.min-h-\[70vh\]{min-height:70vh}.min-h-\[85vh\]{min-height:85vh}.min-h-\[400px\]{min-height:400px}.min-h-\[450px\]{min-height:450px}.min-h-\[500px\]{min-height:500px}.min-h-screen{min-height:100vh}.w-0{width:calc(var(--spacing)*0)}.w-1{width:calc(var(--spacing)*1)}.w-1\.5{width:calc(var(--spacing)*1.5)}.w-1\/3{width:33.3333%}.w-1\/4{width:25%}.w-2{width:calc(var(--spacing)*2)}.w-3{width:calc(var(--spacing)*3)}.w-3\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-10{width:calc(var(--spacing)*10)}.w-12{width:calc(var(--spacing)*12)}.w-14{width:calc(var(--spacing)*14)}.w-16{width:calc(var(--spacing)*16)}.w-20{width:calc(var(--spacing)*20)}.w-24{width:calc(var(--spacing)*24)}.w-32{width:calc(var(--spacing)*32)}.w-40{width:calc(var(--spacing)*40)}.w-48{width:calc(var(--spacing)*48)}.w-64{width:calc(var(--spacing)*64)}.w-\[2px\]{width:2px}.w-\[140\%\]{width:140%}.w-\[150\%\]{width:150%}.w-\[320px\]{width:320px}.w-\[350px\]{width:350px}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:var(--container-7xl)}.max-w-\[85\%\]{max-width:85%}.max-w-\[90\%\]{max-width:90%}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.border-separate{border-collapse:separate}.border-spacing-0{--tw-border-spacing-x:calc(var(--spacing)*0);--tw-border-spacing-y:calc(var(--spacing)*0);border-spacing:var(--tw-border-spacing-x)var(--tw-border-spacing-y)}.-translate-x-1\/2{--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-1{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-1\/2{--tw-translate-x:calc(1/2*100%);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-1\/2{--tw-translate-y:calc(1/2*100%);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-4{--tw-translate-y:calc(var(--spacing)*4);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[101\%\]{--tw-translate-y:101%;translate:var(--tw-translate-x)var(--tw-translate-y)}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-105{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.scale-110{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.rotate-45{rotate:45deg}.-skew-x-12{--tw-skew-x:skewX(calc(12deg*-1));transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.skew-x-12{--tw-skew-x:skewX(12deg);transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.reveal-on-scroll{opacity:0;filter:blur(8px);transition:opacity .6s ease-out,transform .8s cubic-bezier(.16,1,.3,1),filter .8s cubic-bezier(.16,1,.3,1);transform:translateY(20px)}.reveal-on-scroll.is-visible{opacity:1;filter:blur();transform:translateY(0)}@media (prefers-reduced-motion:reduce){.reveal-on-scroll{opacity:1;transition:opacity .3s ease-out;filter:none!important;transform:none!important}}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-bounce{animation:var(--animate-bounce)}.animate-draw-stroke{animation:var(--animate-draw-stroke)}.animate-fade-in{animation:var(--animate-fade-in)}.animate-gradient-x{animation:var(--animate-gradient-x)}.animate-pulse{animation:var(--animate-pulse)}.animate-slide-up{animation:var(--animate-slide-up)}.animate-slight-fade-in-from-bottom{animation:var(--animate-slight-fade-in-from-bottom)}.animate-slow-zoom{animation:var(--animate-slow-zoom)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.snap-x{scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness:mandatory}.snap-center{scroll-snap-align:center}.list-none{list-style-type:none}.auto-rows-\[220px\]{grid-auto-rows:220px}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-5{gap:calc(var(--spacing)*5)}.gap-6{gap:calc(var(--spacing)*6)}.gap-8{gap:calc(var(--spacing)*8)}.gap-10{gap:calc(var(--spacing)*10)}.gap-12{gap:calc(var(--spacing)*12)}.gap-16{gap:calc(var(--spacing)*16)}:where(.space-y-0>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*0)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*0)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*5)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*8)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-12>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*12)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*12)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-24>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*24)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*24)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-6{-moz-column-gap:calc(var(--spacing)*6);column-gap:calc(var(--spacing)*6)}.gap-x-8{-moz-column-gap:calc(var(--spacing)*8);column-gap:calc(var(--spacing)*8)}.gap-x-12{-moz-column-gap:calc(var(--spacing)*12);column-gap:calc(var(--spacing)*12)}:where(.-space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*-4)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*-4)*calc(1 - var(--tw-space-x-reverse)))}.gap-y-0{row-gap:calc(var(--spacing)*0)}.gap-y-3{row-gap:calc(var(--spacing)*3)}.gap-y-6{row-gap:calc(var(--spacing)*6)}.gap-y-12{row-gap:calc(var(--spacing)*12)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-neutral-dark\/5>:not(:last-child)){border-color:#0a0a0a0d}@supports (color:color-mix(in lab, red, red)){:where(.divide-neutral-dark\/5>:not(:last-child)){border-color:color-mix(in oklab,var(--color-neutral-dark)5%,transparent)}}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.scroll-smooth{scroll-behavior:smooth}.rounded{border-radius:.5rem}.rounded-2xl{border-radius:1.5rem}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\[2rem\]{border-radius:2rem}.rounded-\[20px\]{border-radius:20px}.rounded-\[31px\]{border-radius:31px}.rounded-\[32px\]{border-radius:32px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:.75rem}.rounded-sm{border-radius:.25rem}.rounded-xl{border-radius:1rem}.rounded-tl-none{border-top-left-radius:0}.rounded-r-xl{border-top-right-radius:1rem;border-bottom-right-radius:1rem}.rounded-tr-none{border-top-right-radius:0}.rounded-br-lg{border-bottom-right-radius:.75rem}.rounded-bl-lg{border-bottom-left-radius:.75rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-none{--tw-border-style:none;border-style:none}.border-accent{border-color:var(--color-accent)}.border-accent\/20{border-color:#82ed2033}@supports (color:color-mix(in lab, red, red)){.border-accent\/20{border-color:color-mix(in oklab,var(--color-accent)20%,transparent)}}.border-accent\/30{border-color:#82ed204d}@supports (color:color-mix(in lab, red, red)){.border-accent\/30{border-color:color-mix(in oklab,var(--color-accent)30%,transparent)}}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-200\/50{border-color:#bedbff80}@supports (color:color-mix(in lab, red, red)){.border-blue-200\/50{border-color:color-mix(in oklab,var(--color-blue-200)50%,transparent)}}.border-destructive\/20{border-color:#ef444433}@supports (color:color-mix(in lab, red, red)){.border-destructive\/20{border-color:color-mix(in oklab,var(--color-destructive)20%,transparent)}}.border-green-200{border-color:var(--color-green-200)}.border-neutral-100{border-color:var(--color-neutral-100)}.border-neutral-200{border-color:var(--color-neutral-200)}.border-neutral-800{border-color:var(--color-neutral-800)}.border-neutral-dark{border-color:var(--color-neutral-dark)}.border-neutral-dark\/5{border-color:#0a0a0a0d}@supports (color:color-mix(in lab, red, red)){.border-neutral-dark\/5{border-color:color-mix(in oklab,var(--color-neutral-dark)5%,transparent)}}.border-neutral-dark\/10{border-color:#0a0a0a1a}@supports (color:color-mix(in lab, red, red)){.border-neutral-dark\/10{border-color:color-mix(in oklab,var(--color-neutral-dark)10%,transparent)}}.border-neutral-medium{border-color:var(--color-neutral-medium)}.border-orange-500\/50{border-color:#fe6e0080}@supports (color:color-mix(in lab, red, red)){.border-orange-500\/50{border-color:color-mix(in oklab,var(--color-orange-500)50%,transparent)}}.border-primary{border-color:var(--color-primary)}.border-primary\/10{border-color:#0e7a5c1a}@supports (color:color-mix(in lab, red, red)){.border-primary\/10{border-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.border-primary\/20{border-color:#0e7a5c33}@supports (color:color-mix(in lab, red, red)){.border-primary\/20{border-color:color-mix(in oklab,var(--color-primary)20%,transparent)}}.border-primary\/30{border-color:#0e7a5c4d}@supports (color:color-mix(in lab, red, red)){.border-primary\/30{border-color:color-mix(in oklab,var(--color-primary)30%,transparent)}}.border-primary\/50{border-color:#0e7a5c80}@supports (color:color-mix(in lab, red, red)){.border-primary\/50{border-color:color-mix(in oklab,var(--color-primary)50%,transparent)}}.border-purple-200{border-color:var(--color-purple-200)}.border-red-500\/20{border-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.border-red-500\/20{border-color:color-mix(in oklab,var(--color-red-500)20%,transparent)}}.border-saturated\/10{border-color:#10a3791a}@supports (color:color-mix(in lab, red, red)){.border-saturated\/10{border-color:color-mix(in oklab,var(--color-saturated)10%,transparent)}}.border-transparent{border-color:#0000}.border-white\/5{border-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.border-white\/5{border-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.border-white\/10{border-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.border-white\/20{border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.border-white\/20{border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.border-white\/30{border-color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.border-white\/30{border-color:color-mix(in oklab,var(--color-white)30%,transparent)}}.border-white\/40{border-color:#fff6}@supports (color:color-mix(in lab, red, red)){.border-white\/40{border-color:color-mix(in oklab,var(--color-white)40%,transparent)}}.border-white\/60{border-color:#fff9}@supports (color:color-mix(in lab, red, red)){.border-white\/60{border-color:color-mix(in oklab,var(--color-white)60%,transparent)}}.border-white\/\[0\.04\]{border-color:#ffffff0a}@supports (color:color-mix(in lab, red, red)){.border-white\/\[0\.04\]{border-color:color-mix(in oklab,var(--color-white)4%,transparent)}}.border-white\/\[0\.06\]{border-color:#ffffff0f}@supports (color:color-mix(in lab, red, red)){.border-white\/\[0\.06\]{border-color:color-mix(in oklab,var(--color-white)6%,transparent)}}.border-white\/\[0\.08\]{border-color:#ffffff14}@supports (color:color-mix(in lab, red, red)){.border-white\/\[0\.08\]{border-color:color-mix(in oklab,var(--color-white)8%,transparent)}}.border-yellow-200{border-color:var(--color-yellow-200)}.bg-\[\#0a192f\]{background-color:#0a192f}.bg-\[\#0a192f\]\/30{background-color:oklab(21.3588% -.0100861 -.047253/.3)}.bg-\[\#000a18\]\/90{background-color:oklab(14.1232% -.0143141 -.0349624/.9)}.bg-accent{background-color:var(--color-accent)}.bg-accent-dark{background-color:var(--color-accent-dark)}.bg-accent-light{background-color:var(--color-accent-light)}.bg-accent\/5{background-color:#82ed200d}@supports (color:color-mix(in lab, red, red)){.bg-accent\/5{background-color:color-mix(in oklab,var(--color-accent)5%,transparent)}}.bg-accent\/10{background-color:#82ed201a}@supports (color:color-mix(in lab, red, red)){.bg-accent\/10{background-color:color-mix(in oklab,var(--color-accent)10%,transparent)}}.bg-accent\/20{background-color:#82ed2033}@supports (color:color-mix(in lab, red, red)){.bg-accent\/20{background-color:color-mix(in oklab,var(--color-accent)20%,transparent)}}.bg-accent\/40{background-color:#82ed2066}@supports (color:color-mix(in lab, red, red)){.bg-accent\/40{background-color:color-mix(in oklab,var(--color-accent)40%,transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\/60{background-color:color-mix(in oklab,var(--color-black)60%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-destructive{background-color:var(--color-destructive)}.bg-destructive\/5{background-color:#ef44440d}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/5{background-color:color-mix(in oklab,var(--color-destructive)5%,transparent)}}.bg-destructive\/90{background-color:#ef4444e6}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/90{background-color:color-mix(in oklab,var(--color-destructive)90%,transparent)}}.bg-emerald-500\/20{background-color:#00bb7f33}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/20{background-color:color-mix(in oklab,var(--color-emerald-500)20%,transparent)}}.bg-green-50{background-color:var(--color-green-50)}.bg-neutral{background-color:var(--color-neutral)}.bg-neutral-50{background-color:var(--color-neutral-50)}.bg-neutral-100{background-color:var(--color-neutral-100)}.bg-neutral-200{background-color:var(--color-neutral-200)}.bg-neutral-300{background-color:var(--color-neutral-300)}.bg-neutral-400{background-color:var(--color-neutral-400)}.bg-neutral-800{background-color:var(--color-neutral-800)}.bg-neutral-dark{background-color:var(--color-neutral-dark)}.bg-neutral-dark\/10{background-color:#0a0a0a1a}@supports (color:color-mix(in lab, red, red)){.bg-neutral-dark\/10{background-color:color-mix(in oklab,var(--color-neutral-dark)10%,transparent)}}.bg-neutral-dark\/20{background-color:#0a0a0a33}@supports (color:color-mix(in lab, red, red)){.bg-neutral-dark\/20{background-color:color-mix(in oklab,var(--color-neutral-dark)20%,transparent)}}.bg-neutral-dark\/40{background-color:#0a0a0a66}@supports (color:color-mix(in lab, red, red)){.bg-neutral-dark\/40{background-color:color-mix(in oklab,var(--color-neutral-dark)40%,transparent)}}.bg-neutral-light{background-color:var(--color-neutral-light)}.bg-neutral-light\/50{background-color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.bg-neutral-light\/50{background-color:color-mix(in oklab,var(--color-neutral-light)50%,transparent)}}.bg-neutral-light\/90{background-color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.bg-neutral-light\/90{background-color:color-mix(in oklab,var(--color-neutral-light)90%,transparent)}}.bg-neutral-medium{background-color:var(--color-neutral-medium)}.bg-primary{background-color:var(--color-primary)}.bg-primary-dark{background-color:var(--color-primary-dark)}.bg-primary-dark\/20{background-color:#084c3933}@supports (color:color-mix(in lab, red, red)){.bg-primary-dark\/20{background-color:color-mix(in oklab,var(--color-primary-dark)20%,transparent)}}.bg-primary-dark\/40{background-color:#084c3966}@supports (color:color-mix(in lab, red, red)){.bg-primary-dark\/40{background-color:color-mix(in oklab,var(--color-primary-dark)40%,transparent)}}.bg-primary-dark\/50{background-color:#084c3980}@supports (color:color-mix(in lab, red, red)){.bg-primary-dark\/50{background-color:color-mix(in oklab,var(--color-primary-dark)50%,transparent)}}.bg-primary-dark\/60{background-color:#084c3999}@supports (color:color-mix(in lab, red, red)){.bg-primary-dark\/60{background-color:color-mix(in oklab,var(--color-primary-dark)60%,transparent)}}.bg-primary-dark\/90{background-color:#084c39e6}@supports (color:color-mix(in lab, red, red)){.bg-primary-dark\/90{background-color:color-mix(in oklab,var(--color-primary-dark)90%,transparent)}}.bg-primary-light{background-color:var(--color-primary-light)}.bg-primary-light\/10{background-color:#e6f5f01a}@supports (color:color-mix(in lab, red, red)){.bg-primary-light\/10{background-color:color-mix(in oklab,var(--color-primary-light)10%,transparent)}}.bg-primary\/5{background-color:#0e7a5c0d}@supports (color:color-mix(in lab, red, red)){.bg-primary\/5{background-color:color-mix(in oklab,var(--color-primary)5%,transparent)}}.bg-primary\/10{background-color:#0e7a5c1a}@supports (color:color-mix(in lab, red, red)){.bg-primary\/10{background-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.bg-primary\/20{background-color:#0e7a5c33}@supports (color:color-mix(in lab, red, red)){.bg-primary\/20{background-color:color-mix(in oklab,var(--color-primary)20%,transparent)}}.bg-primary\/30{background-color:#0e7a5c4d}@supports (color:color-mix(in lab, red, red)){.bg-primary\/30{background-color:color-mix(in oklab,var(--color-primary)30%,transparent)}}.bg-primary\/70{background-color:#0e7a5cb3}@supports (color:color-mix(in lab, red, red)){.bg-primary\/70{background-color:color-mix(in oklab,var(--color-primary)70%,transparent)}}.bg-primary\/80{background-color:#0e7a5ccc}@supports (color:color-mix(in lab, red, red)){.bg-primary\/80{background-color:color-mix(in oklab,var(--color-primary)80%,transparent)}}.bg-primary\/95{background-color:#0e7a5cf2}@supports (color:color-mix(in lab, red, red)){.bg-primary\/95{background-color:color-mix(in oklab,var(--color-primary)95%,transparent)}}.bg-purple-50{background-color:var(--color-purple-50)}.bg-red-500\/\[0\.06\]{background-color:#fb2c360f}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/\[0\.06\]{background-color:color-mix(in oklab,var(--color-red-500)6%,transparent)}}.bg-saturated{background-color:var(--color-saturated)}.bg-saturated\/5{background-color:#10a3790d}@supports (color:color-mix(in lab, red, red)){.bg-saturated\/5{background-color:color-mix(in oklab,var(--color-saturated)5%,transparent)}}.bg-saturated\/10{background-color:#10a3791a}@supports (color:color-mix(in lab, red, red)){.bg-saturated\/10{background-color:color-mix(in oklab,var(--color-saturated)10%,transparent)}}.bg-saturated\/30{background-color:#10a3794d}@supports (color:color-mix(in lab, red, red)){.bg-saturated\/30{background-color:color-mix(in oklab,var(--color-saturated)30%,transparent)}}.bg-secondary{background-color:var(--color-secondary)}.bg-secondary-light{background-color:var(--color-secondary-light)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\/5{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.bg-white\/5{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.bg-white\/10{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.bg-white\/20{background-color:#fff3}@supports (color:color-mix(in lab, red, red)){.bg-white\/20{background-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.bg-white\/30{background-color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.bg-white\/30{background-color:color-mix(in oklab,var(--color-white)30%,transparent)}}.bg-white\/\[0\.03\]{background-color:#ffffff08}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[0\.03\]{background-color:color-mix(in oklab,var(--color-white)3%,transparent)}}.bg-white\/\[0\.04\]{background-color:#ffffff0a}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[0\.04\]{background-color:color-mix(in oklab,var(--color-white)4%,transparent)}}.bg-white\/\[0\.05\]{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[0\.05\]{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.bg-white\/\[0\.08\]{background-color:#ffffff14}@supports (color:color-mix(in lab, red, red)){.bg-white\/\[0\.08\]{background-color:color-mix(in oklab,var(--color-white)8%,transparent)}}.bg-yellow-50{background-color:var(--color-yellow-50)}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-l{--tw-gradient-position:to left in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-tr{--tw-gradient-position:to top right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-\[radial-gradient\(\#3b82f6_1px\,transparent_1px\)\]{background-image:radial-gradient(#3b82f6 1px,#0000 1px)}.bg-\[radial-gradient\(circle_at_center\,_var\(--tw-gradient-stops\)\)\]{background-image:radial-gradient(circle at center,var(--tw-gradient-stops))}.bg-\[radial-gradient\(ellipse_at_center\,_var\(--tw-gradient-stops\)\)\]{background-image:radial-gradient(ellipse at center,var(--tw-gradient-stops))}.bg-\[url\(\'\/grid\.svg\'\)\]{background-image:url(/grid.svg)}.from-\[\#0a192f\]\/90{--tw-gradient-from:oklab(21.3588% -.0100861 -.047253/.9);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-accent{--tw-gradient-from:var(--color-accent);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-accent\/5{--tw-gradient-from:#82ed200d}@supports (color:color-mix(in lab, red, red)){.from-accent\/5{--tw-gradient-from:color-mix(in oklab,var(--color-accent)5%,transparent)}}.from-accent\/5{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-accent\/50{--tw-gradient-from:#82ed2080}@supports (color:color-mix(in lab, red, red)){.from-accent\/50{--tw-gradient-from:color-mix(in oklab,var(--color-accent)50%,transparent)}}.from-accent\/50{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-black\/80{--tw-gradient-from:#000c}@supports (color:color-mix(in lab, red, red)){.from-black\/80{--tw-gradient-from:color-mix(in oklab,var(--color-black)80%,transparent)}}.from-black\/80{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-black\/90{--tw-gradient-from:#000000e6}@supports (color:color-mix(in lab, red, red)){.from-black\/90{--tw-gradient-from:color-mix(in oklab,var(--color-black)90%,transparent)}}.from-black\/90{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-blue-50\/50{--tw-gradient-from:#eff6ff80}@supports (color:color-mix(in lab, red, red)){.from-blue-50\/50{--tw-gradient-from:color-mix(in oklab,var(--color-blue-50)50%,transparent)}}.from-blue-50\/50{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-emerald-500{--tw-gradient-from:var(--color-emerald-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-neutral-dark{--tw-gradient-from:var(--color-neutral-dark);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-neutral-dark\/90{--tw-gradient-from:#0a0a0ae6}@supports (color:color-mix(in lab, red, red)){.from-neutral-dark\/90{--tw-gradient-from:color-mix(in oklab,var(--color-neutral-dark)90%,transparent)}}.from-neutral-dark\/90{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-neutral-dark\/95{--tw-gradient-from:#0a0a0af2}@supports (color:color-mix(in lab, red, red)){.from-neutral-dark\/95{--tw-gradient-from:color-mix(in oklab,var(--color-neutral-dark)95%,transparent)}}.from-neutral-dark\/95{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-primary{--tw-gradient-from:var(--color-primary);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-primary-dark\/60{--tw-gradient-from:#084c3999}@supports (color:color-mix(in lab, red, red)){.from-primary-dark\/60{--tw-gradient-from:color-mix(in oklab,var(--color-primary-dark)60%,transparent)}}.from-primary-dark\/60{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-primary-dark\/80{--tw-gradient-from:#084c39cc}@supports (color:color-mix(in lab, red, red)){.from-primary-dark\/80{--tw-gradient-from:color-mix(in oklab,var(--color-primary-dark)80%,transparent)}}.from-primary-dark\/80{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-primary\/5{--tw-gradient-from:#0e7a5c0d}@supports (color:color-mix(in lab, red, red)){.from-primary\/5{--tw-gradient-from:color-mix(in oklab,var(--color-primary)5%,transparent)}}.from-primary\/5{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-primary\/10{--tw-gradient-from:#0e7a5c1a}@supports (color:color-mix(in lab, red, red)){.from-primary\/10{--tw-gradient-from:color-mix(in oklab,var(--color-primary)10%,transparent)}}.from-primary\/10{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-primary\/60{--tw-gradient-from:#0e7a5c99}@supports (color:color-mix(in lab, red, red)){.from-primary\/60{--tw-gradient-from:color-mix(in oklab,var(--color-primary)60%,transparent)}}.from-primary\/60{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-saturated\/50{--tw-gradient-from:#10a37980}@supports (color:color-mix(in lab, red, red)){.from-saturated\/50{--tw-gradient-from:color-mix(in oklab,var(--color-saturated)50%,transparent)}}.from-saturated\/50{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-transparent{--tw-gradient-from:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-white{--tw-gradient-from:var(--color-white);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-white\/5{--tw-gradient-from:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.from-white\/5{--tw-gradient-from:color-mix(in oklab,var(--color-white)5%,transparent)}}.from-white\/5{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-white\/10{--tw-gradient-from:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.from-white\/10{--tw-gradient-from:color-mix(in oklab,var(--color-white)10%,transparent)}}.from-white\/10{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-white\/20{--tw-gradient-from:#fff3}@supports (color:color-mix(in lab, red, red)){.from-white\/20{--tw-gradient-from:color-mix(in oklab,var(--color-white)20%,transparent)}}.from-white\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-white\/60{--tw-gradient-from:#fff9}@supports (color:color-mix(in lab, red, red)){.from-white\/60{--tw-gradient-from:color-mix(in oklab,var(--color-white)60%,transparent)}}.from-white\/60{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-white\/\[0\.06\]{--tw-gradient-from:#ffffff0f}@supports (color:color-mix(in lab, red, red)){.from-white\/\[0\.06\]{--tw-gradient-from:color-mix(in oklab,var(--color-white)6%,transparent)}}.from-white\/\[0\.06\]{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.via-\[\#0a192f\]\/60{--tw-gradient-via:oklab(21.3588% -.0100861 -.047253/.6);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-black\/20{--tw-gradient-via:#0003}@supports (color:color-mix(in lab, red, red)){.via-black\/20{--tw-gradient-via:color-mix(in oklab,var(--color-black)20%,transparent)}}.via-black\/20{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-black\/30{--tw-gradient-via:#0000004d}@supports (color:color-mix(in lab, red, red)){.via-black\/30{--tw-gradient-via:color-mix(in oklab,var(--color-black)30%,transparent)}}.via-black\/30{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-neutral-900{--tw-gradient-via:var(--color-neutral-900);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-neutral-dark\/40{--tw-gradient-via:#0a0a0a66}@supports (color:color-mix(in lab, red, red)){.via-neutral-dark\/40{--tw-gradient-via:color-mix(in oklab,var(--color-neutral-dark)40%,transparent)}}.via-neutral-dark\/40{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-neutral-dark\/60{--tw-gradient-via:#0a0a0a99}@supports (color:color-mix(in lab, red, red)){.via-neutral-dark\/60{--tw-gradient-via:color-mix(in oklab,var(--color-neutral-dark)60%,transparent)}}.via-neutral-dark\/60{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-neutral-dark\/70{--tw-gradient-via:#0a0a0ab3}@supports (color:color-mix(in lab, red, red)){.via-neutral-dark\/70{--tw-gradient-via:color-mix(in oklab,var(--color-neutral-dark)70%,transparent)}}.via-neutral-dark\/70{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-primary-dark\/40{--tw-gradient-via:#084c3966}@supports (color:color-mix(in lab, red, red)){.via-primary-dark\/40{--tw-gradient-via:color-mix(in oklab,var(--color-primary-dark)40%,transparent)}}.via-primary-dark\/40{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-primary\/20{--tw-gradient-via:#0e7a5c33}@supports (color:color-mix(in lab, red, red)){.via-primary\/20{--tw-gradient-via:color-mix(in oklab,var(--color-primary)20%,transparent)}}.via-primary\/20{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-primary\/40{--tw-gradient-via:#0e7a5c66}@supports (color:color-mix(in lab, red, red)){.via-primary\/40{--tw-gradient-via:color-mix(in oklab,var(--color-primary)40%,transparent)}}.via-primary\/40{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-saturated{--tw-gradient-via:var(--color-saturated);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-teal-400{--tw-gradient-via:var(--color-teal-400);--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-transparent{--tw-gradient-via:transparent;--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-white\/10{--tw-gradient-via:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.via-white\/10{--tw-gradient-via:color-mix(in oklab,var(--color-white)10%,transparent)}}.via-white\/10{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.via-white\/80{--tw-gradient-via:#fffc}@supports (color:color-mix(in lab, red, red)){.via-white\/80{--tw-gradient-via:color-mix(in oklab,var(--color-white)80%,transparent)}}.via-white\/80{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-via)var(--tw-gradient-via-position),var(--tw-gradient-to)var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-\[\#0a192f\]\/40{--tw-gradient-to:oklab(21.3588% -.0100861 -.047253/.4);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-accent{--tw-gradient-to:var(--color-accent);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-black\/80{--tw-gradient-to:#000c}@supports (color:color-mix(in lab, red, red)){.to-black\/80{--tw-gradient-to:color-mix(in oklab,var(--color-black)80%,transparent)}}.to-black\/80{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-emerald-500{--tw-gradient-to:var(--color-emerald-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-neutral-dark{--tw-gradient-to:var(--color-neutral-dark);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-primary-dark\/80{--tw-gradient-to:#084c39cc}@supports (color:color-mix(in lab, red, red)){.to-primary-dark\/80{--tw-gradient-to:color-mix(in oklab,var(--color-primary-dark)80%,transparent)}}.to-primary-dark\/80{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-primary-light{--tw-gradient-to:var(--color-primary-light);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-primary\/9{--tw-gradient-to:#0e7a5c17}@supports (color:color-mix(in lab, red, red)){.to-primary\/9{--tw-gradient-to:color-mix(in oklab,var(--color-primary)9%,transparent)}}.to-primary\/9{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-primary\/60{--tw-gradient-to:#0e7a5c99}@supports (color:color-mix(in lab, red, red)){.to-primary\/60{--tw-gradient-to:color-mix(in oklab,var(--color-primary)60%,transparent)}}.to-primary\/60{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-white\/\[0\.02\]{--tw-gradient-to:#ffffff05}@supports (color:color-mix(in lab, red, red)){.to-white\/\[0\.02\]{--tw-gradient-to:color-mix(in oklab,var(--color-white)2%,transparent)}}.to-white\/\[0\.02\]{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.\[background-size\:40px_40px\]{background-size:40px 40px}.bg-cover{background-size:cover}.bg-repeat{background-repeat:repeat}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-center{-o-object-position:center;object-position:center}.object-left{-o-object-position:left;object-position:left}.p-0{padding:calc(var(--spacing)*0)}.p-0\.5{padding:calc(var(--spacing)*.5)}.p-1{padding:calc(var(--spacing)*1)}.p-1\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.p-6{padding:calc(var(--spacing)*6)}.p-8{padding:calc(var(--spacing)*8)}.p-10{padding:calc(var(--spacing)*10)}.p-12{padding:calc(var(--spacing)*12)}.p-35{padding:calc(var(--spacing)*35)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.px-12{padding-inline:calc(var(--spacing)*12)}.px-\[calc\(\(100vw-min\(100\%\,1280px\)\)\/2\)\]{padding-inline:calc(50vw - min(100%,1280px)/2)}.py-0{padding-block:calc(var(--spacing)*0)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-3\.5{padding-block:calc(var(--spacing)*3.5)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-12{padding-block:calc(var(--spacing)*12)}.py-16{padding-block:calc(var(--spacing)*16)}.py-20{padding-block:calc(var(--spacing)*20)}.py-24{padding-block:calc(var(--spacing)*24)}.py-32{padding-block:calc(var(--spacing)*32)}.safe-area-p{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);padding-top:max(1rem,env(safe-area-inset-top));padding-bottom:max(1rem,env(safe-area-inset-bottom));padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right))}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-3{padding-top:calc(var(--spacing)*3)}.pt-4{padding-top:calc(var(--spacing)*4)}.pt-6{padding-top:calc(var(--spacing)*6)}.pt-8{padding-top:calc(var(--spacing)*8)}.pt-10{padding-top:calc(var(--spacing)*10)}.pt-24{padding-top:calc(var(--spacing)*24)}.pt-32{padding-top:calc(var(--spacing)*32)}.pt-40{padding-top:calc(var(--spacing)*40)}.pr-2{padding-right:calc(var(--spacing)*2)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-5{padding-bottom:calc(var(--spacing)*5)}.pb-6{padding-bottom:calc(var(--spacing)*6)}.pb-8{padding-bottom:calc(var(--spacing)*8)}.pb-12{padding-bottom:calc(var(--spacing)*12)}.pb-16{padding-bottom:calc(var(--spacing)*16)}.pb-20{padding-bottom:calc(var(--spacing)*20)}.pb-24{padding-bottom:calc(var(--spacing)*24)}.pl-5{padding-left:calc(var(--spacing)*5)}.pl-6{padding-left:calc(var(--spacing)*6)}.pl-8{padding-left:calc(var(--spacing)*8)}.pl-9{padding-left:calc(var(--spacing)*9)}.pl-16{padding-left:calc(var(--spacing)*16)}.pl-20{padding-left:calc(var(--spacing)*20)}.text-center{text-align:center}@media (max-width:767px){.text-center-mobile{text-align:center}.text-end-mobile{text-align:right}}.text-left{text-align:left}.text-right{text-align:right}@media (max-width:767px){.text-start-mobile{text-align:left}}.font-heading{font-family:var(--font-heading)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:1.5rem;line-height:var(--tw-leading,1.5)}.text-3xl{font-size:1.875rem;line-height:var(--tw-leading,1.4)}.text-4xl{font-size:2.25rem;line-height:var(--tw-leading,1.3)}.text-5xl{font-size:3rem;line-height:var(--tw-leading,1.25)}.text-6xl{font-size:3.75rem;line-height:var(--tw-leading,1.2)}.text-base{font-size:1rem;line-height:var(--tw-leading,1.7)}.text-lg{font-size:1.125rem;line-height:var(--tw-leading,1.7)}.text-sm{font-size:.875rem;line-height:var(--tw-leading,1.6)}.text-xl{font-size:1.25rem;line-height:var(--tw-leading,1.6)}.text-xs{font-size:.75rem;line-height:var(--tw-leading,1.6)}.text-\[7px\]{font-size:7px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[20rem\]{font-size:20rem}.leading-\[1\.1\]{--tw-leading:1.1;line-height:1.1}.leading-\[1\.2\]{--tw-leading:1.2;line-height:1.2}.leading-\[1\.3\]{--tw-leading:1.3;line-height:1.3}.leading-\[1\.4\]{--tw-leading:1.4;line-height:1.4}.leading-\[1\.5\]{--tw-leading:1.5;line-height:1.5}.leading-\[1\.6\]{--tw-leading:1.6;line-height:1.6}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:700;font-weight:700}.font-extrabold{--tw-font-weight:800;font-weight:800}.font-extralight{--tw-font-weight:var(--font-weight-extralight);font-weight:var(--font-weight-extralight)}.font-medium{--tw-font-weight:500;font-weight:500}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:600;font-weight:600}.tracking-\[0\.2em\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-\[0\.3em\]{--tw-tracking:.3em;letter-spacing:.3em}.tracking-\[0\.15em\]{--tw-tracking:.15em;letter-spacing:.15em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent{color:var(--color-accent)}.text-accent-dark{color:var(--color-accent-dark)}.text-accent\/30{color:#82ed204d}@supports (color:color-mix(in lab, red, red)){.text-accent\/30{color:color-mix(in oklab,var(--color-accent)30%,transparent)}}.text-accent\/40{color:#82ed2066}@supports (color:color-mix(in lab, red, red)){.text-accent\/40{color:color-mix(in oklab,var(--color-accent)40%,transparent)}}.text-accent\/50{color:#82ed2080}@supports (color:color-mix(in lab, red, red)){.text-accent\/50{color:color-mix(in oklab,var(--color-accent)50%,transparent)}}.text-accent\/60{color:#82ed2099}@supports (color:color-mix(in lab, red, red)){.text-accent\/60{color:color-mix(in oklab,var(--color-accent)60%,transparent)}}.text-accent\/80{color:#82ed20cc}@supports (color:color-mix(in lab, red, red)){.text-accent\/80{color:color-mix(in oklab,var(--color-accent)80%,transparent)}}.text-blue-500{color:var(--color-blue-500)}.text-blue-900{color:var(--color-blue-900)}.text-destructive{color:var(--color-destructive)}.text-destructive-foreground{color:var(--color-destructive-foreground)}.text-destructive\/80{color:#ef4444cc}@supports (color:color-mix(in lab, red, red)){.text-destructive\/80{color:color-mix(in oklab,var(--color-destructive)80%,transparent)}}.text-emerald-400{color:var(--color-emerald-400)}.text-green-500{color:var(--color-green-500)}.text-green-900{color:var(--color-green-900)}.text-neutral-400{color:var(--color-neutral-400)}.text-neutral-600{color:var(--color-neutral-600)}.text-neutral-dark{color:var(--color-neutral-dark)}.text-neutral-light{color:var(--color-neutral-light)}.text-orange-600{color:var(--color-orange-600)}.text-primary{color:var(--color-primary)}.text-primary-dark{color:var(--color-primary-dark)}.text-primary-light{color:var(--color-primary-light)}.text-primary\/20{color:#0e7a5c33}@supports (color:color-mix(in lab, red, red)){.text-primary\/20{color:color-mix(in oklab,var(--color-primary)20%,transparent)}}.text-primary\/40{color:#0e7a5c66}@supports (color:color-mix(in lab, red, red)){.text-primary\/40{color:color-mix(in oklab,var(--color-primary)40%,transparent)}}.text-primary\/60{color:#0e7a5c99}@supports (color:color-mix(in lab, red, red)){.text-primary\/60{color:color-mix(in oklab,var(--color-primary)60%,transparent)}}.text-primary\/80{color:#0e7a5ccc}@supports (color:color-mix(in lab, red, red)){.text-primary\/80{color:color-mix(in oklab,var(--color-primary)80%,transparent)}}.text-purple-500{color:var(--color-purple-500)}.text-purple-900{color:var(--color-purple-900)}.text-red-300{color:var(--color-red-300)}.text-red-300\/50{color:#ffa3a380}@supports (color:color-mix(in lab, red, red)){.text-red-300\/50{color:color-mix(in oklab,var(--color-red-300)50%,transparent)}}.text-red-300\/60{color:#ffa3a399}@supports (color:color-mix(in lab, red, red)){.text-red-300\/60{color:color-mix(in oklab,var(--color-red-300)60%,transparent)}}.text-saturated{color:var(--color-saturated)}.text-saturated\/40{color:#10a37966}@supports (color:color-mix(in lab, red, red)){.text-saturated\/40{color:color-mix(in oklab,var(--color-saturated)40%,transparent)}}.text-text-light{color:var(--color-text-light)}.text-text-primary{color:var(--color-text-primary)}.text-text-primary\/70{color:#111827b3}@supports (color:color-mix(in lab, red, red)){.text-text-primary\/70{color:color-mix(in oklab,var(--color-text-primary)70%,transparent)}}.text-text-primary\/80{color:#111827cc}@supports (color:color-mix(in lab, red, red)){.text-text-primary\/80{color:color-mix(in oklab,var(--color-text-primary)80%,transparent)}}.text-text-secondary{color:var(--color-text-secondary)}.text-text-secondary\/40{color:#4b556366}@supports (color:color-mix(in lab, red, red)){.text-text-secondary\/40{color:color-mix(in oklab,var(--color-text-secondary)40%,transparent)}}.text-text-secondary\/80{color:#4b5563cc}@supports (color:color-mix(in lab, red, red)){.text-text-secondary\/80{color:color-mix(in oklab,var(--color-text-secondary)80%,transparent)}}.text-white{color:var(--color-white)}.text-white\/15{color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.text-white\/15{color:color-mix(in oklab,var(--color-white)15%,transparent)}}.text-white\/20{color:#fff3}@supports (color:color-mix(in lab, red, red)){.text-white\/20{color:color-mix(in oklab,var(--color-white)20%,transparent)}}.text-white\/25{color:#ffffff40}@supports (color:color-mix(in lab, red, red)){.text-white\/25{color:color-mix(in oklab,var(--color-white)25%,transparent)}}.text-white\/30{color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.text-white\/30{color:color-mix(in oklab,var(--color-white)30%,transparent)}}.text-white\/40{color:#fff6}@supports (color:color-mix(in lab, red, red)){.text-white\/40{color:color-mix(in oklab,var(--color-white)40%,transparent)}}.text-white\/50{color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.text-white\/50{color:color-mix(in oklab,var(--color-white)50%,transparent)}}.text-white\/60{color:#fff9}@supports (color:color-mix(in lab, red, red)){.text-white\/60{color:color-mix(in oklab,var(--color-white)60%,transparent)}}.text-white\/70{color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.text-white\/70{color:color-mix(in oklab,var(--color-white)70%,transparent)}}.text-white\/80{color:#fffc}@supports (color:color-mix(in lab, red, red)){.text-white\/80{color:color-mix(in oklab,var(--color-white)80%,transparent)}}.text-white\/90{color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.text-white\/90{color:color-mix(in oklab,var(--color-white)90%,transparent)}}.text-yellow-500{color:var(--color-yellow-500)}.text-yellow-900{color:var(--color-yellow-900)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.decoration-2{text-decoration-thickness:2px}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-0{opacity:0}.opacity-10{opacity:.1}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-100{opacity:1}.opacity-\[0\.03\]{opacity:.03}.mix-blend-multiply{mix-blend-mode:multiply}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_20px_-4px_rgba\(130\,237\,32\,0\.1\)\]{--tw-shadow:0 0 20px -4px var(--tw-shadow-color,#82ed201a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_32px_64px_-12px_rgba\(0\,0\,0\,0\.6\)\]{--tw-shadow:0 32px 64px -12px var(--tw-shadow-color,#0009);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_40px_100px_-20px_rgba\(0\,0\,0\,0\.6\)\]{--tw-shadow:0 40px 100px -20px var(--tw-shadow-color,#0009);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -2px var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -1px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 10px 10px -5px var(--tw-shadow-color,#0000000a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-accent\/20{--tw-shadow-color:#82ed2033}@supports (color:color-mix(in lab, red, red)){.shadow-accent\/20{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-accent)20%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-destructive\/20{--tw-shadow-color:#ef444433}@supports (color:color-mix(in lab, red, red)){.shadow-destructive\/20{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-destructive)20%,transparent)var(--tw-shadow-alpha),transparent)}}.shadow-saturated\/20{--tw-shadow-color:#10a37933}@supports (color:color-mix(in lab, red, red)){.shadow-saturated\/20{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-saturated)20%,transparent)var(--tw-shadow-alpha),transparent)}}.ring-accent{--tw-ring-color:var(--color-accent)}.ring-white\/20{--tw-ring-color:#fff3}@supports (color:color-mix(in lab, red, red)){.ring-white\/20{--tw-ring-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.blur-2xl{--tw-blur:blur(var(--blur-2xl));filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.blur-3xl{--tw-blur:blur(var(--blur-3xl));filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.blur-\[80px\]{--tw-blur:blur(80px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.blur-xl{--tw-blur:blur(var(--blur-xl));filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.brightness-0{--tw-brightness:brightness(0%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.brightness-90{--tw-brightness:brightness(90%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.contrast-125{--tw-contrast:contrast(125%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a))drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a)drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.drop-shadow-2xl{--tw-drop-shadow-size:drop-shadow(0 25px 25px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-2xl));filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.drop-shadow-\[0_20px_30px_rgba\(0\,0\,0\,0\.4\)\]{--tw-drop-shadow-size:drop-shadow(0 20px 30px var(--tw-drop-shadow-color,#0006));--tw-drop-shadow:var(--tw-drop-shadow-size);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.drop-shadow-lg{--tw-drop-shadow-size:drop-shadow(0 4px 4px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-lg));filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.drop-shadow-md{--tw-drop-shadow-size:drop-shadow(0 3px 3px var(--tw-drop-shadow-color,#0000001f));--tw-drop-shadow:drop-shadow(var(--drop-shadow-md));filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.drop-shadow-sm{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-sm));filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.grayscale-\[50\%\]{--tw-grayscale:grayscale(50%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.saturate-50{--tw-saturate:saturate(50%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.saturate-110{--tw-saturate:saturate(110%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-2xl{--tw-backdrop-blur:blur(var(--blur-2xl));backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.delay-100{transition-delay:.1s}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.duration-700{--tw-duration:.7s;transition-duration:.7s}.duration-1000{--tw-duration:1s;transition-duration:1s}.duration-\[1\.5s\]{--tw-duration:1.5s;transition-duration:1.5s}.duration-\[3s\]{--tw-duration:3s;transition-duration:3s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.content-visibility-auto{content-visibility:auto;contain-intrinsic-size:1px 1000px}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{user-select:none}.\[-ms-overflow-style\:none\]{-ms-overflow-style:none}.\[scrollbar-width\:none\]{scrollbar-width:none}.\[text-shadow\:_-2px_-2px_0_\#002b49\,_2px_-2px_0_\#002b49\,_-2px_2px_0_\#002b49\,_2px_2px_0_\#002b49\,_-2px_0_0_\#002b49\,_2px_0_0_\#002b49\,_0_-2px_0_\#002b49\,_0_2px_0_\#002b49\]{text-shadow:-2px -2px #002b49,2px -2px #002b49,-2px 2px #002b49,2px 2px #002b49,-2px 0 #002b49,2px 0 #002b49,0 -2px #002b49,0 2px #002b49}@media (hover:hover){.group-hover\:max-h-32:is(:where(.group):hover *){max-height:calc(var(--spacing)*32)}.group-hover\:w-16:is(:where(.group):hover *){width:calc(var(--spacing)*16)}.group-hover\:w-full:is(:where(.group):hover *){width:100%}.group-hover\:-translate-x-1:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:-translate-x-2:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*-2);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:translate-x-0:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:translate-x-0\.5:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:translate-x-1:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:translate-x-1\/3:is(:where(.group):hover *){--tw-translate-x:calc(1/3*100%);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:translate-x-2:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing)*2);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:-translate-y-4:is(:where(.group):hover *){--tw-translate-y:calc(var(--spacing)*-4);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:translate-y-0:is(:where(.group):hover *){--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\:scale-12:is(:where(.group):hover *){--tw-scale-x:12%;--tw-scale-y:12%;--tw-scale-z:12%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:scale-100:is(:where(.group):hover *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:scale-105:is(:where(.group):hover *){--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:scale-110:is(:where(.group):hover *){--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\:rotate-3:is(:where(.group):hover *){rotate:3deg}.group-hover\:rotate-90:is(:where(.group):hover *){rotate:90deg}.group-hover\:border-\[8px\]:is(:where(.group):hover *){border-style:var(--tw-border-style);border-width:8px}.group-hover\:border-\[16px\]:is(:where(.group):hover *){border-style:var(--tw-border-style);border-width:16px}.group-hover\:border-accent:is(:where(.group):hover *){border-color:var(--color-accent)}.group-hover\:border-accent\/40:is(:where(.group):hover *){border-color:#82ed2066}@supports (color:color-mix(in lab, red, red)){.group-hover\:border-accent\/40:is(:where(.group):hover *){border-color:color-mix(in oklab,var(--color-accent)40%,transparent)}}.group-hover\:border-white\/20:is(:where(.group):hover *){border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.group-hover\:border-white\/20:is(:where(.group):hover *){border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.group-hover\:bg-accent:is(:where(.group):hover *){background-color:var(--color-accent)}.group-hover\:bg-black\/50:is(:where(.group):hover *){background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.group-hover\:bg-black\/50:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.group-hover\:bg-emerald-600:is(:where(.group):hover *){background-color:var(--color-emerald-600)}.group-hover\:bg-neutral-dark\/5:is(:where(.group):hover *){background-color:#0a0a0a0d}@supports (color:color-mix(in lab, red, red)){.group-hover\:bg-neutral-dark\/5:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-neutral-dark)5%,transparent)}}.group-hover\:bg-neutral-light\/50:is(:where(.group):hover *){background-color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.group-hover\:bg-neutral-light\/50:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-neutral-light)50%,transparent)}}.group-hover\:bg-primary:is(:where(.group):hover *){background-color:var(--color-primary)}.group-hover\:bg-primary-dark:is(:where(.group):hover *){background-color:var(--color-primary-dark)}.group-hover\:bg-primary-dark\/60:is(:where(.group):hover *){background-color:#084c3999}@supports (color:color-mix(in lab, red, red)){.group-hover\:bg-primary-dark\/60:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-primary-dark)60%,transparent)}}.group-hover\:bg-primary\/50:is(:where(.group):hover *){background-color:#0e7a5c80}@supports (color:color-mix(in lab, red, red)){.group-hover\:bg-primary\/50:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-primary)50%,transparent)}}.group-hover\:bg-transparent:is(:where(.group):hover *){background-color:#0000}.group-hover\:from-primary\/90:is(:where(.group):hover *){--tw-gradient-from:#0e7a5ce6}@supports (color:color-mix(in lab, red, red)){.group-hover\:from-primary\/90:is(:where(.group):hover *){--tw-gradient-from:color-mix(in oklab,var(--color-primary)90%,transparent)}}.group-hover\:from-primary\/90:is(:where(.group):hover *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.group-hover\:to-primary\/20:is(:where(.group):hover *){--tw-gradient-to:#0e7a5c33}@supports (color:color-mix(in lab, red, red)){.group-hover\:to-primary\/20:is(:where(.group):hover *){--tw-gradient-to:color-mix(in oklab,var(--color-primary)20%,transparent)}}.group-hover\:to-primary\/20:is(:where(.group):hover *){--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.group-hover\:text-accent:is(:where(.group):hover *){color:var(--color-accent)}.group-hover\:text-accent-dark:is(:where(.group):hover *){color:var(--color-accent-dark)}.group-hover\:text-emerald-400:is(:where(.group):hover *){color:var(--color-emerald-400)}.group-hover\:text-primary:is(:where(.group):hover *){color:var(--color-primary)}.group-hover\:text-primary-dark:is(:where(.group):hover *){color:var(--color-primary-dark)}.group-hover\:text-text-primary:is(:where(.group):hover *){color:var(--color-text-primary)}.group-hover\:text-white:is(:where(.group):hover *){color:var(--color-white)}.group-hover\:underline:is(:where(.group):hover *){text-decoration-line:underline}.group-hover\:opacity-30:is(:where(.group):hover *){opacity:.3}.group-hover\:opacity-40:is(:where(.group):hover *){opacity:.4}.group-hover\:opacity-90:is(:where(.group):hover *){opacity:.9}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\:grayscale-0:is(:where(.group):hover *){--tw-grayscale:grayscale(0%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.group-hover\:saturate-100:is(:where(.group):hover *){--tw-saturate:saturate(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.group-hover\/btn\:translate-x-1:is(:where(.group\/btn):hover *){--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\/btn\:translate-x-2:is(:where(.group\/btn):hover *){--tw-translate-x:calc(var(--spacing)*2);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\/btn\:translate-y-0:is(:where(.group\/btn):hover *){--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\/btn\:text-primary-dark:is(:where(.group\/btn):hover *){color:var(--color-primary-dark)}.group-hover\/btn\:text-white:is(:where(.group\/btn):hover *){color:var(--color-white)}}.group-active\:w-full:is(:where(.group):active *){width:100%}.selection\:bg-primary\/10 ::selection{background-color:#0e7a5c1a}@supports (color:color-mix(in lab, red, red)){.selection\:bg-primary\/10 ::selection{background-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.selection\:bg-primary\/10::selection{background-color:#0e7a5c1a}@supports (color:color-mix(in lab, red, red)){.selection\:bg-primary\/10::selection{background-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.selection\:text-primary ::selection{color:var(--color-primary)}.selection\:text-primary::selection{color:var(--color-primary)}.placeholder\:text-neutral-dark\/40::placeholder{color:#0a0a0a66}@supports (color:color-mix(in lab, red, red)){.placeholder\:text-neutral-dark\/40::placeholder{color:color-mix(in oklab,var(--color-neutral-dark)40%,transparent)}}.placeholder\:text-white\/20::placeholder{color:#fff3}@supports (color:color-mix(in lab, red, red)){.placeholder\:text-white\/20::placeholder{color:color-mix(in oklab,var(--color-white)20%,transparent)}}.placeholder\:text-white\/50::placeholder{color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.placeholder\:text-white\/50::placeholder{color:color-mix(in oklab,var(--color-white)50%,transparent)}}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.last\:pb-0:last-child{padding-bottom:calc(var(--spacing)*0)}.focus-within\:border-accent:focus-within{border-color:var(--color-accent)}.focus-within\:bg-white\/15:focus-within{background-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.focus-within\:bg-white\/15:focus-within{background-color:color-mix(in oklab,var(--color-white)15%,transparent)}}@media (hover:hover){.hover\:translate-x-1:hover{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:-translate-y-0\.5:hover{--tw-translate-y:calc(var(--spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:-translate-y-1:hover{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:scale-100:hover{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\:scale-\[1\.02\]:hover{scale:1.02}.hover\:scale-\[1\.03\]:hover{scale:1.03}.hover\:border-accent:hover{border-color:var(--color-accent)}.hover\:border-accent\/30:hover{border-color:#82ed204d}@supports (color:color-mix(in lab, red, red)){.hover\:border-accent\/30:hover{border-color:color-mix(in oklab,var(--color-accent)30%,transparent)}}.hover\:border-accent\/40:hover{border-color:#82ed2066}@supports (color:color-mix(in lab, red, red)){.hover\:border-accent\/40:hover{border-color:color-mix(in oklab,var(--color-accent)40%,transparent)}}.hover\:border-primary\/20:hover{border-color:#0e7a5c33}@supports (color:color-mix(in lab, red, red)){.hover\:border-primary\/20:hover{border-color:color-mix(in oklab,var(--color-primary)20%,transparent)}}.hover\:border-primary\/50:hover{border-color:#0e7a5c80}@supports (color:color-mix(in lab, red, red)){.hover\:border-primary\/50:hover{border-color:color-mix(in oklab,var(--color-primary)50%,transparent)}}.hover\:border-white:hover{border-color:var(--color-white)}.hover\:border-white\/20:hover{border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.hover\:border-white\/20:hover{border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.hover\:bg-accent:hover{background-color:var(--color-accent)}.hover\:bg-neutral-50:hover{background-color:var(--color-neutral-50)}.hover\:bg-neutral-light:hover{background-color:var(--color-neutral-light)}.hover\:bg-neutral-light\/50:hover{background-color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.hover\:bg-neutral-light\/50:hover{background-color:color-mix(in oklab,var(--color-neutral-light)50%,transparent)}}.hover\:bg-primary:hover{background-color:var(--color-primary)}.hover\:bg-primary-dark:hover{background-color:var(--color-primary-dark)}.hover\:bg-primary\/10:hover{background-color:#0e7a5c1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/10:hover{background-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.hover\:bg-primary\/20:hover{background-color:#0e7a5c33}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/20:hover{background-color:color-mix(in oklab,var(--color-primary)20%,transparent)}}.hover\:bg-primary\/90:hover{background-color:#0e7a5ce6}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--color-primary)90%,transparent)}}.hover\:bg-white:hover{background-color:var(--color-white)}.hover\:bg-white\/5:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/5:hover{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.hover\:bg-white\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/10:hover{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.hover\:bg-white\/\[0\.08\]:hover{background-color:#ffffff14}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/\[0\.08\]:hover{background-color:color-mix(in oklab,var(--color-white)8%,transparent)}}.hover\:text-accent:hover{color:var(--color-accent)}.hover\:text-neutral-dark:hover{color:var(--color-neutral-dark)}.hover\:text-primary:hover{color:var(--color-primary)}.hover\:text-primary-dark:hover{color:var(--color-primary-dark)}.hover\:text-primary-light:hover{color:var(--color-primary-light)}.hover\:text-red-300:hover{color:var(--color-red-300)}.hover\:text-white:hover{color:var(--color-white)}.hover\:text-white\/60:hover{color:#fff9}@supports (color:color-mix(in lab, red, red)){.hover\:text-white\/60:hover{color:color-mix(in oklab,var(--color-white)60%,transparent)}}.hover\:text-white\/80:hover{color:#fffc}@supports (color:color-mix(in lab, red, red)){.hover\:text-white\/80:hover{color:color-mix(in oklab,var(--color-white)80%,transparent)}}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-2xl:hover{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-\[0_0_20px_rgba\(255\,255\,255\,0\.3\)\]:hover{--tw-shadow:0 0 20px var(--tw-shadow-color,#ffffff4d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-\[0_20px_50px_rgba\(0\,0\,0\,0\.2\)\]:hover{--tw-shadow:0 20px 50px var(--tw-shadow-color,#0003);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -2px var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -1px var(--tw-shadow-color,#0000000f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 10px 10px -5px var(--tw-shadow-color,#0000000a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-accent\/20:hover{--tw-shadow-color:#82ed2033}@supports (color:color-mix(in lab, red, red)){.hover\:shadow-accent\/20:hover{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-accent)20%,transparent)var(--tw-shadow-alpha),transparent)}}.hover\:shadow-accent\/30:hover{--tw-shadow-color:#82ed204d}@supports (color:color-mix(in lab, red, red)){.hover\:shadow-accent\/30:hover{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-accent)30%,transparent)var(--tw-shadow-alpha),transparent)}}.hover\:shadow-accent\/40:hover{--tw-shadow-color:#82ed2066}@supports (color:color-mix(in lab, red, red)){.hover\:shadow-accent\/40:hover{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-accent)40%,transparent)var(--tw-shadow-alpha),transparent)}}.hover\:shadow-destructive\/30:hover{--tw-shadow-color:#ef44444d}@supports (color:color-mix(in lab, red, red)){.hover\:shadow-destructive\/30:hover{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-destructive)30%,transparent)var(--tw-shadow-alpha),transparent)}}.hover\:shadow-primary\/20:hover{--tw-shadow-color:#0e7a5c33}@supports (color:color-mix(in lab, red, red)){.hover\:shadow-primary\/20:hover{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-primary)20%,transparent)var(--tw-shadow-alpha),transparent)}}.hover\:shadow-primary\/30:hover{--tw-shadow-color:#0e7a5c4d}@supports (color:color-mix(in lab, red, red)){.hover\:shadow-primary\/30:hover{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-primary)30%,transparent)var(--tw-shadow-alpha),transparent)}}.hover\:shadow-secondary\/30:hover{--tw-shadow-color:#003d824d}@supports (color:color-mix(in lab, red, red)){.hover\:shadow-secondary\/30:hover{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-secondary)30%,transparent)var(--tw-shadow-alpha),transparent)}}.hover\:brightness-110:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.hover\:grayscale-0:hover{--tw-grayscale:grayscale(0%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}}.focus\:top-4:focus{top:calc(var(--spacing)*4)}.focus\:border-accent:focus{border-color:var(--color-accent)}.focus\:border-primary:focus{border-color:var(--color-primary)}.focus\:bg-white:focus{background-color:var(--color-white)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-accent\/20:focus{--tw-ring-color:#82ed2033}@supports (color:color-mix(in lab, red, red)){.focus\:ring-accent\/20:focus{--tw-ring-color:color-mix(in oklab,var(--color-accent)20%,transparent)}}.focus\:ring-primary\/20:focus{--tw-ring-color:#0e7a5c33}@supports (color:color-mix(in lab, red, red)){.focus\:ring-primary\/20:focus{--tw-ring-color:color-mix(in oklab,var(--color-primary)20%,transparent)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-primary:focus-visible{--tw-ring-color:var(--color-primary)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:translate-y-0:active{--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.active\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.active\:scale-\[0\.98\]:active{scale:.98}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-70:disabled{opacity:.7}@media (min-width:640px){.sm\:block{display:block}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:rounded-xl{border-radius:1rem}.sm\:text-5xl{font-size:3rem;line-height:var(--tw-leading,1.25)}}@media (min-width:768px){.md\:absolute{position:absolute}.md\:top-1\/2{top:50%}.md\:bottom-10{bottom:calc(var(--spacing)*10)}.md\:-left-8{left:calc(var(--spacing)*-8)}.md\:left-1\/2{left:50%}.md\:order-none{order:0}.md\:col-span-1{grid-column:span 1/span 1}.md\:col-span-2{grid-column:span 2/span 2}.md\:row-span-2{grid-row:span 2/span 2}.md\:-mx-12{margin-inline:calc(var(--spacing)*-12)}.md\:mx-0{margin-inline:calc(var(--spacing)*0)}.md\:-mt-20{margin-top:calc(var(--spacing)*-20)}.md\:mt-0{margin-top:calc(var(--spacing)*0)}.md\:mt-12{margin-top:calc(var(--spacing)*12)}.md\:mt-24{margin-top:calc(var(--spacing)*24)}.md\:mr-auto{margin-right:auto}.md\:mb-0{margin-bottom:calc(var(--spacing)*0)}.md\:mb-2{margin-bottom:calc(var(--spacing)*2)}.md\:mb-4{margin-bottom:calc(var(--spacing)*4)}.md\:mb-6{margin-bottom:calc(var(--spacing)*6)}.md\:mb-8{margin-bottom:calc(var(--spacing)*8)}.md\:mb-10{margin-bottom:calc(var(--spacing)*10)}.md\:mb-12{margin-bottom:calc(var(--spacing)*12)}.md\:mb-16{margin-bottom:calc(var(--spacing)*16)}.md\:mb-20{margin-bottom:calc(var(--spacing)*20)}.md\:ml-auto{margin-left:auto}.md\:line-clamp-4{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.md\:line-clamp-none{-webkit-line-clamp:unset;-webkit-box-orient:horizontal;display:block;overflow:visible}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-7{height:calc(var(--spacing)*7)}.md\:h-10{height:calc(var(--spacing)*10)}.md\:h-11{height:calc(var(--spacing)*11)}.md\:h-12{height:calc(var(--spacing)*12)}.md\:h-14{height:calc(var(--spacing)*14)}.md\:h-16{height:calc(var(--spacing)*16)}.md\:h-80{height:calc(var(--spacing)*80)}.md\:h-\[70vh\]{height:70vh}.md\:h-\[90vh\]{height:90vh}.md\:h-\[500px\]{height:500px}.md\:h-auto{height:auto}.md\:h-full{height:100%}.md\:max-h-0{max-height:calc(var(--spacing)*0)}.md\:min-h-\[70vh\]{min-height:70vh}.md\:min-h-\[500px\]{min-height:500px}.md\:min-h-\[600px\]{min-height:600px}.md\:w-1\.5{width:calc(var(--spacing)*1.5)}.md\:w-7{width:calc(var(--spacing)*7)}.md\:w-10{width:calc(var(--spacing)*10)}.md\:w-12{width:calc(var(--spacing)*12)}.md\:w-14{width:calc(var(--spacing)*14)}.md\:w-16{width:calc(var(--spacing)*16)}.md\:w-64{width:calc(var(--spacing)*64)}.md\:w-\[480px\]{width:480px}.md\:w-\[calc\(50\%-2\.5rem\)\]{width:calc(50% - 2.5rem)}.md\:w-auto{width:auto}.md\:max-w-none{max-width:none}.md\:-translate-y-1\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:items-end{align-items:flex-end}.md\:justify-start{justify-content:flex-start}.md\:gap-4{gap:calc(var(--spacing)*4)}.md\:gap-6{gap:calc(var(--spacing)*6)}.md\:gap-8{gap:calc(var(--spacing)*8)}.md\:gap-10{gap:calc(var(--spacing)*10)}.md\:gap-16{gap:calc(var(--spacing)*16)}:where(.md\:space-y-0>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*0)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*0)*calc(1 - var(--tw-space-y-reverse)))}:where(.md\:space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.md\:space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.md\:space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*8)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*8)*calc(1 - var(--tw-space-y-reverse)))}:where(.md\:space-y-12>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*12)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*12)*calc(1 - var(--tw-space-y-reverse)))}:where(.md\:space-y-16>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*16)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*16)*calc(1 - var(--tw-space-y-reverse)))}.md\:gap-x-12{-moz-column-gap:calc(var(--spacing)*12);column-gap:calc(var(--spacing)*12)}.md\:gap-y-8{row-gap:calc(var(--spacing)*8)}.md\:gap-y-20{row-gap:calc(var(--spacing)*20)}.md\:rounded-2xl{border-radius:1.5rem}.md\:rounded-3xl{border-radius:var(--radius-3xl)}.md\:rounded-\[32px\]{border-radius:32px}.md\:rounded-\[40px\]{border-radius:40px}.md\:rounded-r-2xl{border-top-right-radius:1.5rem;border-bottom-right-radius:1.5rem}.md\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.md\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.md\:border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.md\:border-neutral-100{border-color:var(--color-neutral-100)}.md\:p-6{padding:calc(var(--spacing)*6)}.md\:p-8{padding:calc(var(--spacing)*8)}.md\:p-10{padding:calc(var(--spacing)*10)}.md\:p-12{padding:calc(var(--spacing)*12)}.md\:p-16{padding:calc(var(--spacing)*16)}.md\:p-24{padding:calc(var(--spacing)*24)}.md\:px-4{padding-inline:calc(var(--spacing)*4)}.md\:px-6{padding-inline:calc(var(--spacing)*6)}.md\:px-8{padding-inline:calc(var(--spacing)*8)}.md\:px-10{padding-inline:calc(var(--spacing)*10)}.md\:px-12{padding-inline:calc(var(--spacing)*12)}.md\:py-0{padding-block:calc(var(--spacing)*0)}.md\:py-4{padding-block:calc(var(--spacing)*4)}.md\:py-6{padding-block:calc(var(--spacing)*6)}.md\:py-16{padding-block:calc(var(--spacing)*16)}.md\:py-24{padding-block:calc(var(--spacing)*24)}.md\:py-28{padding-block:calc(var(--spacing)*28)}.md\:py-32{padding-block:calc(var(--spacing)*32)}.md\:py-48{padding-block:calc(var(--spacing)*48)}.md\:pt-4{padding-top:calc(var(--spacing)*4)}.md\:pt-12{padding-top:calc(var(--spacing)*12)}.md\:pt-40{padding-top:calc(var(--spacing)*40)}.md\:pt-\[14\%\]{padding-top:14%}.md\:pb-4{padding-bottom:calc(var(--spacing)*4)}.md\:pb-24{padding-bottom:calc(var(--spacing)*24)}.md\:pb-32{padding-bottom:calc(var(--spacing)*32)}.md\:pb-\[12\%\]{padding-bottom:12%}.md\:pl-0{padding-left:calc(var(--spacing)*0)}.md\:pl-8{padding-left:calc(var(--spacing)*8)}.md\:pl-9{padding-left:calc(var(--spacing)*9)}.md\:text-left{text-align:left}.md\:text-right{text-align:right}.md\:text-2xl{font-size:1.5rem;line-height:var(--tw-leading,1.5)}.md\:text-3xl{font-size:1.875rem;line-height:var(--tw-leading,1.4)}.md\:text-4xl{font-size:2.25rem;line-height:var(--tw-leading,1.3)}.md\:text-5xl{font-size:3rem;line-height:var(--tw-leading,1.25)}.md\:text-6xl{font-size:3.75rem;line-height:var(--tw-leading,1.2)}.md\:text-7xl{font-size:4.5rem;line-height:var(--tw-leading,1.15)}.md\:text-8xl{font-size:6rem;line-height:var(--tw-leading,1.1)}.md\:text-base{font-size:1rem;line-height:var(--tw-leading,1.7)}.md\:text-lg{font-size:1.125rem;line-height:var(--tw-leading,1.7)}.md\:text-sm{font-size:.875rem;line-height:var(--tw-leading,1.6)}.md\:text-xl{font-size:1.25rem;line-height:var(--tw-leading,1.6)}.md\:text-xs{font-size:.75rem;line-height:var(--tw-leading,1.6)}.md\:text-\[15px\]{font-size:15px}.md\:opacity-0{opacity:0}.md\:opacity-30{opacity:.3}.md\:opacity-40{opacity:.4}.md\:opacity-60{opacity:.6}@media (hover:hover){.md\:group-hover\:border-\[12px\]:is(:where(.group):hover *){border-style:var(--tw-border-style);border-width:12px}}}@media (min-width:1024px){.lg\:sticky{position:sticky}.lg\:top-32{top:calc(var(--spacing)*32)}.lg\:order-1{order:1}.lg\:order-2{order:2}.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:col-span-4{grid-column:span 4/span 4}.lg\:col-span-5{grid-column:span 5/span 5}.lg\:col-span-6{grid-column:span 6/span 6}.lg\:col-span-7{grid-column:span 7/span 7}.lg\:col-span-8{grid-column:span 8/span 8}.lg\:col-start-6{grid-column-start:6}.lg\:mb-0{margin-bottom:calc(var(--spacing)*0)}.lg\:block{display:block}.lg\:hidden{display:none}.lg\:h-\[650px\]{height:650px}.lg\:min-h-screen{min-height:100vh}.lg\:w-1\/2{width:50%}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:gap-8{gap:calc(var(--spacing)*8)}.lg\:gap-20{gap:calc(var(--spacing)*20)}.lg\:gap-24{gap:calc(var(--spacing)*24)}.lg\:bg-gradient-to-l{--tw-gradient-position:to left in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.lg\:bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.lg\:from-primary-dark\/20{--tw-gradient-from:#084c3933}@supports (color:color-mix(in lab, red, red)){.lg\:from-primary-dark\/20{--tw-gradient-from:color-mix(in oklab,var(--color-primary-dark)20%,transparent)}}.lg\:from-primary-dark\/20{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.lg\:p-32{padding:calc(var(--spacing)*32)}.lg\:px-16{padding-inline:calc(var(--spacing)*16)}.lg\:py-0{padding-block:calc(var(--spacing)*0)}.lg\:py-36{padding-block:calc(var(--spacing)*36)}.lg\:text-left{text-align:left}.lg\:text-2xl{font-size:1.5rem;line-height:var(--tw-leading,1.5)}.lg\:text-3xl{font-size:1.875rem;line-height:var(--tw-leading,1.4)}.lg\:text-4xl{font-size:2.25rem;line-height:var(--tw-leading,1.3)}.lg\:text-5xl{font-size:3rem;line-height:var(--tw-leading,1.25)}.lg\:text-8xl{font-size:6rem;line-height:var(--tw-leading,1.1)}.lg\:text-xl{font-size:1.25rem;line-height:var(--tw-leading,1.6)}}@media (min-width:1280px){.xl\:w-\[400px\]{width:400px}}.\[\&\:\:-webkit-scrollbar\]\:hidden::-webkit-scrollbar{display:none}}@property --tw-border-spacing-x{syntax:"";inherits:false;initial-value:0}@property --tw-border-spacing-y{syntax:"";inherits:false;initial-value:0}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-scroll-snap-strictness{syntax:"*";inherits:false;initial-value:proximity}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}@keyframes draw-stroke{0%{stroke-dasharray:1;stroke-dashoffset:1px}to{stroke-dasharray:1;stroke-dashoffset:0}}@keyframes gradient-x{0%,to{background-position:0%}50%{background-position:100%}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slow-zoom{0%{transform:scale(1)}to{transform:scale(1.1)}}@keyframes slight-fade-in-from-bottom{0%{opacity:0;filter:blur(4px);transform:translateY(10px)}to{opacity:1;filter:blur();transform:translateY(0)}} diff --git a/.next/static/chunks/981b2323ce5143ef.js b/.next/static/chunks/981b2323ce5143ef.js new file mode 100644 index 000000000..86c1592a4 --- /dev/null +++ b/.next/static/chunks/981b2323ce5143ef.js @@ -0,0 +1,4 @@ +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="b6f49d6e-43ce-fd92-68d0-22ec2e6c4a30")}catch(e){}}(); +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,445774,370476,575003,982016,105050,801206,587778,9797,e=>{"use strict";var t=e.i(111023);e.i(676525);var n=e.i(452797);function r({className:e,children:r,...l}){return(0,n.jsx)("section",{className:(0,t.cn)("py-16 md:py-28 lg:py-36 overflow-hidden content-visibility-auto",e),...l,children:r})}function l({className:e,children:r,...l}){return(0,n.jsx)("div",{className:(0,t.cn)("container mx-auto px-4 md:px-12 lg:px-16 max-w-7xl",e),...l,children:r})}function a({level:e=2,children:r,className:l,subtitle:a,align:i="left"}){let s=`h${e}`;return(0,n.jsxs)("div",{className:(0,t.cn)("mb-6 md:mb-12 text-primary",{left:"text-left",center:"text-center mx-auto",right:"text-right"}[i],l),children:[a&&(0,n.jsx)("span",{className:"inline-block text-accent font-bold tracking-widest uppercase text-xs md:text-sm mb-3 md:mb-4 animate-fade-in",children:a}),(0,n.jsx)(s,{className:(0,t.cn)({1:"text-2xl md:text-4xl lg:text-5xl font-bold leading-[1.1] tracking-tight",2:"text-xl md:text-3xl lg:text-4xl font-bold leading-[1.2] tracking-tight",3:"text-lg md:text-2xl lg:text-3xl font-bold leading-[1.3] tracking-tight",4:"text-lg md:text-xl lg:text-2xl font-bold leading-[1.4]",5:"text-base md:text-lg font-bold leading-[1.5]",6:"text-base md:text-lg font-semibold leading-[1.6]"}[e]),children:r})]})}function i({className:e,children:r,tag:l="div",...a}){return(0,n.jsx)(l,{className:(0,t.cn)("premium-card overflow-hidden",e),...a,children:r})}function s({className:e,...r}){return(0,n.jsx)("input",{className:(0,t.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg",e),...r})}function o({className:e,...r}){return(0,n.jsx)("textarea",{className:(0,t.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg resize-none",e),...r})}function c({className:e,...r}){return(0,n.jsx)("label",{className:(0,t.cn)("text-[10px] md:text-xs font-extrabold text-primary uppercase tracking-widest",e),...r})}e.s(["Section",()=>r],370476),e.s(["Container",()=>l],575003),e.s(["Heading",()=>a],982016),e.s(["Card",()=>i],105050),e.s(["Input",()=>s],801206),e.s(["Textarea",()=>o],587778),e.s(["Label",()=>c],9797),e.s([],445774)},759095,e=>{"use strict";var t=e.i(452797),n=e.i(907358);e.i(445774);var r=e.i(111023);function l({children:e,className:l,threshold:a=.1,delay:i=0}){let[s,o]=(0,n.useState)(!1),c=(0,n.useRef)(null);return(0,n.useEffect)(()=>{let e=new IntersectionObserver(([t])=>{t.isIntersecting&&(o(!0),e.unobserve(t.target))},{threshold:a}),t=c.current;return t&&e.observe(t),()=>{t&&e.unobserve(t)}},[a]),(0,t.jsx)("div",{ref:c,className:(0,r.cn)("reveal-on-scroll",s&&"is-visible",l),style:{transitionDelay:`${i}ms`},children:e})}e.s(["default",()=>l])},783488,e=>{"use strict";var t=e.i(907358),n=e.i(976819);function r({currentPage:e,totalPages:r,locale:l}){let a=(0,n.useRouter)();return(0,t.useEffect)(()=>{let t=t=>{document.activeElement?.tagName!=="INPUT"&&document.activeElement?.tagName!=="TEXTAREA"&&document.activeElement?.tagName!=="SELECT"&&("ArrowLeft"===t.key&&e>1?a.push(`/${l}/blog?page=${e-1}`):"ArrowRight"===t.key&&ewindow.removeEventListener("keydown",t)},[e,r,l,a]),null}e.s(["BlogPaginationKeyboardObserver",()=>r])}]); + +//# debugId=b6f49d6e-43ce-fd92-68d0-22ec2e6c4a30 \ No newline at end of file diff --git a/.next/static/chunks/a147e5875d1faa83.js b/.next/static/chunks/a147e5875d1faa83.js new file mode 100644 index 000000000..75d82cad1 --- /dev/null +++ b/.next/static/chunks/a147e5875d1faa83.js @@ -0,0 +1,4 @@ +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="f5780093-07aa-8522-95c2-fc30224e28a6")}catch(e){}}(); +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,102227,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReflectAdapter",{enumerable:!0,get:function(){return n}});class n{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}},365278,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(496932).createAsyncLocalStorage)()},517110,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorage",{enumerable:!0,get:function(){return n.afterTaskAsyncStorageInstance}});let n=e.r(365278)},780329,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isRequestAPICallableInsideAfter:function(){return u},throwForSearchParamsAccessInUseCache:function(){return c},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(579781),s=e.r(517110);function o(e,t){throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${t}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function c(e,t){let r=Object.defineProperty(Error(`Route ${e.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(r,t),e.invalidDynamicUsageError??=r,r}function u(){let e=s.afterTaskAsyncStorage.getStore();return(null==e?void 0:e.rootTaskSpawnPhase)==="action"}},759823,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a={RenderStage:function(){return c},StagedRenderingController:function(){return u}};for(var i in a)Object.defineProperty(r,i,{enumerable:!0,get:a[i]});let s=e.r(436120),o=e.r(444841);var c=((n={})[n.Before=1]="Before",n[n.Static=2]="Static",n[n.Runtime=3]="Runtime",n[n.Dynamic=4]="Dynamic",n[n.Abandoned=5]="Abandoned",n);class u{constructor(e=null,t){this.abortSignal=e,this.hasRuntimePrefetch=t,this.currentStage=1,this.staticInterruptReason=null,this.runtimeInterruptReason=null,this.staticStageEndTime=1/0,this.runtimeStageEndTime=1/0,this.runtimeStageListeners=[],this.dynamicStageListeners=[],this.runtimeStagePromise=(0,o.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,o.createPromiseWithResolvers)(),this.mayAbandon=!1,e&&(e.addEventListener("abort",()=>{let{reason:t}=e;this.currentStage<3&&(this.runtimeStagePromise.promise.catch(l),this.runtimeStagePromise.reject(t)),(this.currentStage<4||5===this.currentStage)&&(this.dynamicStagePromise.promise.catch(l),this.dynamicStagePromise.reject(t))},{once:!0}),this.mayAbandon=!0)}onStage(e,t){if(this.currentStage>=e)t();else if(3===e)this.runtimeStageListeners.push(t);else if(4===e)this.dynamicStageListeners.push(t);else throw Object.defineProperty(new s.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}canSyncInterrupt(){if(1===this.currentStage)return!1;let e=this.hasRuntimePrefetch?4:3;return this.currentStage=3&&(this.staticStageEndTime=performance.now()+performance.timeOrigin,this.resolveRuntimeStage()),t<4&&e>=4){this.runtimeStageEndTime=performance.now()+performance.timeOrigin,this.resolveDynamicStage();return}}resolveRuntimeStage(){let e=this.runtimeStageListeners;for(let t=0;t{n.then(e.bind(null,i),t)}),void 0!==a&&(s.displayName=a),s);return this.abortSignal&&o.catch(l),o}}function l(){}},118720,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addPathSuffix",{enumerable:!0,get:function(){return a}});let n=e.r(506985);function a(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:i}=(0,n.parsePath)(e);return`${r}${t}${a}${i}`}},446247,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addLocale",{enumerable:!0,get:function(){return i}});let n=e.r(688391),a=e.r(712550);function i(e,t,r,i){if(!t||t===r)return e;let s=e.toLowerCase();return!i&&((0,a.pathHasPrefix)(s,"/api")||(0,a.pathHasPrefix)(s,`/${t.toLowerCase()}`))?e:(0,n.addPathPrefix)(e,`/${t}`)}},971560,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"formatNextPathnameInfo",{enumerable:!0,get:function(){return o}});let n=e.r(895708),a=e.r(688391),i=e.r(118720),s=e.r(446247);function o(e){let t=(0,s.addLocale)(e.pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix);return(e.buildId||!e.trailingSlash)&&(t=(0,n.removeTrailingSlash)(t)),e.buildId&&(t=(0,i.addPathSuffix)((0,a.addPathPrefix)(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=(0,a.addPathPrefix)(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:(0,i.addPathSuffix)(t,"/"):(0,n.removeTrailingSlash)(t)}},866140,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"normalizeLocalePath",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e,t){let r;if(!t)return{pathname:e};let a=n.get(t);a||(a=t.map(e=>e.toLowerCase()),n.set(t,a));let i=e.split("/",2);if(!i[1])return{pathname:e};let s=i[1].toLowerCase(),o=a.indexOf(s);return o<0?{pathname:e}:(r=t[o],{pathname:e=e.slice(r.length+1)||"/",detectedLocale:r})}},857436,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removePathPrefix",{enumerable:!0,get:function(){return a}});let n=e.r(712550);function a(e,t){if(!(0,n.pathHasPrefix)(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:`/${r}`}},707723,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getNextPathnameInfo",{enumerable:!0,get:function(){return s}});let n=e.r(866140),a=e.r(857436),i=e.r(712550);function s(e,t){let{basePath:r,i18n:s,trailingSlash:o}=t.nextConfig??{},c={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):o};r&&(0,i.pathHasPrefix)(c.pathname,r)&&(c.pathname=(0,a.removePathPrefix)(c.pathname,r),c.basePath=r);let u=c.pathname;if(c.pathname.startsWith("/_next/data/")&&c.pathname.endsWith(".json")){let e=c.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");c.buildId=e[0],u="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(c.pathname=u)}if(s){let e=t.i18nProvider?t.i18nProvider.analyze(c.pathname):(0,n.normalizeLocalePath)(c.pathname,s.locales);c.locale=e.detectedLocale,c.pathname=e.pathname??c.pathname,!e.detectedLocale&&c.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(u):(0,n.normalizeLocalePath)(u,s.locales)).detectedLocale&&(c.locale=e.detectedLocale)}return c}},955973,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_SUFFIX:function(){return m},APP_DIR_ALIAS:function(){return F},CACHE_ONE_YEAR:function(){return C},DOT_NEXT_ALIAS:function(){return M},ESLINT_DEFAULT_DIRS:function(){return ea},GSP_NO_RETURNED_VALUE:function(){return J},GSSP_COMPONENT_MEMBER_ERROR:function(){return et},GSSP_NO_RETURNED_VALUE:function(){return Z},HTML_CONTENT_TYPE_HEADER:function(){return s},INFINITE_CACHE:function(){return N},INSTRUMENTATION_HOOK_FILENAME:function(){return w},JSON_CONTENT_TYPE_HEADER:function(){return o},MATCHED_PATH_HEADER:function(){return l},MIDDLEWARE_FILENAME:function(){return y},MIDDLEWARE_LOCATION_REGEXP:function(){return L},NEXT_BODY_SUFFIX:function(){return S},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return v},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return P},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return T},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return b},NEXT_CACHE_TAGS_HEADER:function(){return R},NEXT_CACHE_TAG_MAX_ITEMS:function(){return O},NEXT_CACHE_TAG_MAX_LENGTH:function(){return I},NEXT_DATA_SUFFIX:function(){return h},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return u},NEXT_META_SUFFIX:function(){return g},NEXT_QUERY_PARAM_PREFIX:function(){return c},NEXT_RESUME_HEADER:function(){return A},NON_STANDARD_NODE_ENV:function(){return er},PAGES_DIR_ALIAS:function(){return j},PRERENDER_REVALIDATE_HEADER:function(){return d},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return _},PROXY_FILENAME:function(){return x},PROXY_LOCATION_REGEXP:function(){return D},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return V},ROOT_DIR_ALIAS:function(){return U},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return Y},RSC_ACTION_ENCRYPTION_ALIAS:function(){return k},RSC_ACTION_PROXY_ALIAS:function(){return H},RSC_ACTION_VALIDATE_ALIAS:function(){return X},RSC_CACHE_WRAPPER_ALIAS:function(){return B},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return W},RSC_MOD_REF_PROXY_ALIAS:function(){return G},RSC_SEGMENTS_DIR_SUFFIX:function(){return E},RSC_SEGMENT_SUFFIX:function(){return f},RSC_SUFFIX:function(){return p},SERVER_PROPS_EXPORT_ERROR:function(){return Q},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return K},SERVER_PROPS_SSG_CONFLICT:function(){return q},SERVER_RUNTIME:function(){return ei},SSG_FALLBACK_EXPORT_ERROR:function(){return en},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return $},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return z},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return i},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return ee},WEBPACK_LAYERS:function(){return ec},WEBPACK_RESOURCE_QUERIES:function(){return eu},WEB_SOCKET_MAX_RECONNECTIONS:function(){return es}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i="text/plain",s="text/html; charset=utf-8",o="application/json; charset=utf-8",c="nxtP",u="nxtI",l="x-matched-path",d="x-prerender-revalidate",_="x-prerender-revalidate-if-generated",E=".segments",f=".segment.rsc",p=".rsc",m=".action",h=".json",g=".meta",S=".body",R="x-next-cache-tags",P="x-next-revalidated-tags",T="x-next-revalidate-tag-token",A="next-resume",O=128,I=256,b=1024,v="_N_T_",C=31536e3,N=0xfffffffe,y="middleware",L=`(?:src/)?${y}`,x="proxy",D=`(?:src/)?${x}`,w="instrumentation",j="private-next-pages",M="private-dot-next",U="private-next-root-dir",F="private-next-app-dir",G="private-next-rsc-mod-ref-proxy",X="private-next-rsc-action-validate",H="private-next-rsc-server-reference",B="private-next-rsc-cache-wrapper",W="private-next-rsc-track-dynamic-import",k="private-next-rsc-action-encryption",Y="private-next-rsc-action-client-wrapper",V="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",$="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",K="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",q="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",z="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",Q="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",J="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",Z="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",ee="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",et="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",er='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',en="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",ea=["app","pages","components","lib","src"],ei={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},es=12,eo={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},ec={...eo,GROUP:{builtinReact:[eo.reactServerComponents,eo.actionBrowser],serverOnly:[eo.reactServerComponents,eo.actionBrowser,eo.instrument,eo.middleware],neutralTarget:[eo.apiNode,eo.apiEdge],clientOnly:[eo.serverSideRendering,eo.appPagesBrowser],bundled:[eo.reactServerComponents,eo.actionBrowser,eo.serverSideRendering,eo.appPagesBrowser,eo.shared,eo.instrument,eo.middleware],appPages:[eo.reactServerComponents,eo.serverSideRendering,eo.appPagesBrowser,eo.actionBrowser]}},eu={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},630655,e=>{"use strict";var t=e.i(907358),r=e.i(777616);function n(){let e=(0,r.getAppServices)();return{trackEvent:(0,t.useCallback)((t,r)=>{e.analytics.track(t,r)},[e]),trackPageview:(0,t.useCallback)(t=>{e.analytics.trackPageview(t)},[e])}}e.s(["useAnalytics",()=>n])},216033,e=>{"use strict";e.s(["AnalyticsEvents",0,{PAGE_VIEW:"pageview",PAGE_SCROLL:"page_scroll",PAGE_EXIT:"page_exit",SCROLL_DEPTH:"scroll_depth",BUTTON_CLICK:"button_click",LINK_CLICK:"link_click",FORM_SUBMIT:"form_submit",FORM_START:"form_start",FORM_ERROR:"form_error",FORM_FIELD_FOCUS:"form_field_focus",PRODUCT_VIEW:"product_view",PRODUCT_ADD_TO_CART:"product_add_to_cart",PRODUCT_REMOVE_FROM_CART:"product_remove_from_cart",PRODUCT_PURCHASE:"product_purchase",PRODUCT_WISHLIST_ADD:"product_wishlist_add",PRODUCT_WISHLIST_REMOVE:"product_wishlist_remove",PRODUCT_TAB_SWITCH:"product_tab_switch",SEARCH:"search",FILTER_APPLY:"filter_apply",FILTER_CLEAR:"filter_clear",USER_SIGNUP:"user_signup",USER_LOGIN:"user_login",USER_LOGOUT:"user_logout",USER_PROFILE_UPDATE:"user_profile_update",BLOG_POST_VIEW:"blog_post_view",VIDEO_PLAY:"video_play",VIDEO_PAUSE:"video_pause",VIDEO_COMPLETE:"video_complete",DOWNLOAD:"download",MODAL_OPEN:"modal_open",MODAL_CLOSE:"modal_close",TOGGLE_SWITCH:"toggle_switch",ACCORDION_TOGGLE:"accordion_toggle",TAB_SWITCH:"tab_switch",TOC_CLICK:"toc_click",ERROR:"error",PERFORMANCE:"performance",API_ERROR:"api_error",API_SUCCESS:"api_success",QUOTE_REQUEST:"quote_request",CONTACT_FORM_SUBMIT:"contact_form_submit",NEWSLETTER_SUBSCRIBE:"newsletter_subscribe",BROCHURE_DOWNLOAD:"brochure_download"}])},959504,e=>{"use strict";var t=e.i(452797),r=e.i(907358),n=e.i(111023),a=e.i(630655),i=e.i(216033);function s({headings:e,locale:s}){let[o,c]=(0,r.useState)(""),{trackEvent:u}=(0,a.useAnalytics)();return((0,r.useEffect)(()=>{let t=new IntersectionObserver(e=>{e.forEach(e=>{e.isIntersecting&&c(e.target.id)})},{rootMargin:"-10% 0% -70% 0%",threshold:0}),r=setTimeout(()=>{e.map(e=>document.getElementById(e.id)).forEach(e=>{e&&t.observe(e)})},500);return()=>{clearTimeout(r),t.disconnect()}},[e]),0===e.length)?null:(0,t.jsx)("nav",{className:"hidden lg:block w-full ml-12",children:(0,t.jsxs)("div",{className:"relative pl-6 border-l border-neutral-200",children:[(0,t.jsx)("h4",{className:"text-xs md:text-sm font-bold uppercase tracking-[0.2em] text-text-primary/70 mb-6",children:"de"===s?"Inhalt":"Table of Contents"}),(0,t.jsx)("ul",{className:"space-y-4",children:e.map(e=>(0,t.jsxs)("li",{style:{paddingLeft:`${(e.level-2)*1}rem`},className:"relative",children:[o===e.id&&(0,t.jsx)("div",{className:"absolute -left-[25px] top-0 w-[2px] h-full bg-primary transition-all duration-300"}),(0,t.jsx)("a",{href:`#${e.id}`,className:(0,n.cn)("text-sm md:text-base transition-all duration-300 hover:text-primary block leading-snug",o===e.id?"text-primary font-bold translate-x-1":"text-text-secondary font-medium hover:translate-x-1"),onClick:t=>{t.preventDefault();let r=document.getElementById(e.id);if(r){u(i.AnalyticsEvents.TOC_CLICK,{heading_id:e.id,heading_text:e.text,location:"blog_sidebar"});let t=r.getBoundingClientRect().top+window.pageYOffset+-100;window.scrollTo({top:t,behavior:"smooth"})}},children:e.text.replace(/\*\*(.*?)\*\*/g,"$1")})]},e.id))})]})})}e.s(["default",()=>s])},59828,e=>{"use strict";var t=e.i(907358),r=e.i(630655),n=e.i(216033);function a({title:e,slug:a,category:i,readingTime:s}){let{trackEvent:o}=(0,r.useAnalytics)();return(0,t.useEffect)(()=>{o(n.AnalyticsEvents.BLOG_POST_VIEW,{title:e,slug:a,category:i,estimated_reading_time:s,location:"blog_post_pdp"});let t=Date.now();return()=>{let r=Math.round((Date.now()-t)/1e3);o("blog_dwell_time",{title:e,slug:a,seconds:r,reading_time_completion:Math.min(100,Math.round(r/(60*s)*100))})}},[e,a,i,s,o]),null}e.s(["default",()=>a])},919007,e=>{e.v(t=>Promise.all(["static/chunks/3ffd2a1cf95ceb60.js","static/chunks/32fec23faa4b171a.js","static/chunks/6d182a34db4f4c54.js"].map(t=>e.l(t))).then(()=>t(502456)))}]); + +//# debugId=f5780093-07aa-8522-95c2-fc30224e28a6 \ No newline at end of file diff --git a/.next/static/chunks/ab5e3144c40ca7be.js b/.next/static/chunks/ab5e3144c40ca7be.js deleted file mode 100644 index 909171075..000000000 --- a/.next/static/chunks/ab5e3144c40ca7be.js +++ /dev/null @@ -1,4 +0,0 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="4d60c771-3ebf-77c3-50ea-bfb9723014b7")}catch(e){}}(); -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,7284,e=>{"use strict";function t(){for(var e,t,r=0,n="",a=arguments.length;rt])},676525,e=>{"use strict";var t=e.i(452797),r=e.i(184868),n=e.i(111023);let a={primary:"bg-primary text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl",secondary:"bg-secondary text-white shadow-md hover:shadow-secondary/30 hover:shadow-2xl",accent:"bg-accent text-primary-dark shadow-md hover:shadow-accent/30 hover:shadow-2xl",saturated:"bg-saturated text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl",outline:"border-2 border-primary bg-transparent text-primary hover:text-white hover:shadow-primary/20 hover:shadow-xl",ghost:"text-primary hover:shadow-lg",white:"bg-white text-primary shadow-md hover:shadow-primary/30 hover:shadow-2xl hover:text-white",destructive:"bg-destructive text-destructive-foreground shadow-md hover:shadow-destructive/30 hover:shadow-2xl"},i={sm:"h-9 px-4 text-sm md:text-base",md:"h-11 px-6 text-base md:text-lg",lg:"h-14 px-5 md:px-8 text-base md:text-lg",xl:"h-16 px-6 md:px-10 text-lg md:text-xl"},s={primary:"bg-primary-dark",secondary:"bg-secondary-light",accent:"bg-accent-dark",saturated:"bg-primary",outline:"bg-primary",ghost:"bg-primary-light/10",white:"bg-primary-light",destructive:"bg-destructive/90"};function o({variant:e="primary"}){return(0,t.jsx)("span",{className:(0,n.cn)("absolute inset-0 translate-y-[101%] group-hover/btn:translate-y-0 transition-transform duration-500 ease-out",s[e])})}function l({className:e,variant:s="primary",size:l="md",href:c,...d}){let u=function(e="primary",t="md",r){return(0,n.cn)("inline-flex items-center justify-center whitespace-nowrap rounded-full font-semibold transition-all duration-500 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none active:scale-95 hover:-translate-y-1 hover:scale-[1.02] relative overflow-hidden group/btn isolate",a[e],i[t],r)}(s,l,e),m=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:(0,n.cn)("relative z-10 flex items-center justify-center gap-2 transition-colors duration-500","white"===s?"group-hover/btn:text-primary-dark":""),children:d.children}),(0,t.jsx)(o,{variant:s})]});return c?(0,t.jsx)(r.default,{href:c,className:u,children:m}):(0,t.jsx)("button",{className:u,...d,children:m})}e.s(["Button",()=>l])},102227,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReflectAdapter",{enumerable:!0,get:function(){return n}});class n{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}},365278,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(496932).createAsyncLocalStorage)()},517110,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorage",{enumerable:!0,get:function(){return n.afterTaskAsyncStorageInstance}});let n=e.r(365278)},780329,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isRequestAPICallableInsideAfter:function(){return c},throwForSearchParamsAccessInUseCache:function(){return l},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(579781),s=e.r(517110);function o(e,t){throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${t}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function l(e,t){let r=Object.defineProperty(Error(`Route ${e.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(r,t),e.invalidDynamicUsageError??=r,r}function c(){let e=s.afterTaskAsyncStorage.getStore();return(null==e?void 0:e.rootTaskSpawnPhase)==="action"}},759823,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a={RenderStage:function(){return l},StagedRenderingController:function(){return c}};for(var i in a)Object.defineProperty(r,i,{enumerable:!0,get:a[i]});let s=e.r(436120),o=e.r(444841);var l=((n={})[n.Before=1]="Before",n[n.Static=2]="Static",n[n.Runtime=3]="Runtime",n[n.Dynamic=4]="Dynamic",n[n.Abandoned=5]="Abandoned",n);class c{constructor(e=null,t){this.abortSignal=e,this.hasRuntimePrefetch=t,this.currentStage=1,this.staticInterruptReason=null,this.runtimeInterruptReason=null,this.staticStageEndTime=1/0,this.runtimeStageEndTime=1/0,this.runtimeStageListeners=[],this.dynamicStageListeners=[],this.runtimeStagePromise=(0,o.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,o.createPromiseWithResolvers)(),this.mayAbandon=!1,e&&(e.addEventListener("abort",()=>{let{reason:t}=e;this.currentStage<3&&(this.runtimeStagePromise.promise.catch(d),this.runtimeStagePromise.reject(t)),(this.currentStage<4||5===this.currentStage)&&(this.dynamicStagePromise.promise.catch(d),this.dynamicStagePromise.reject(t))},{once:!0}),this.mayAbandon=!0)}onStage(e,t){if(this.currentStage>=e)t();else if(3===e)this.runtimeStageListeners.push(t);else if(4===e)this.dynamicStageListeners.push(t);else throw Object.defineProperty(new s.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}canSyncInterrupt(){if(1===this.currentStage)return!1;let e=this.hasRuntimePrefetch?4:3;return this.currentStage=3&&(this.staticStageEndTime=performance.now()+performance.timeOrigin,this.resolveRuntimeStage()),t<4&&e>=4){this.runtimeStageEndTime=performance.now()+performance.timeOrigin,this.resolveDynamicStage();return}}resolveRuntimeStage(){let e=this.runtimeStageListeners;for(let t=0;t{n.then(e.bind(null,i),t)}),void 0!==a&&(s.displayName=a),s);return this.abortSignal&&o.catch(d),o}}function d(){}},118720,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addPathSuffix",{enumerable:!0,get:function(){return a}});let n=e.r(506985);function a(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:i}=(0,n.parsePath)(e);return`${r}${t}${a}${i}`}},446247,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addLocale",{enumerable:!0,get:function(){return i}});let n=e.r(688391),a=e.r(712550);function i(e,t,r,i){if(!t||t===r)return e;let s=e.toLowerCase();return!i&&((0,a.pathHasPrefix)(s,"/api")||(0,a.pathHasPrefix)(s,`/${t.toLowerCase()}`))?e:(0,n.addPathPrefix)(e,`/${t}`)}},971560,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"formatNextPathnameInfo",{enumerable:!0,get:function(){return o}});let n=e.r(895708),a=e.r(688391),i=e.r(118720),s=e.r(446247);function o(e){let t=(0,s.addLocale)(e.pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix);return(e.buildId||!e.trailingSlash)&&(t=(0,n.removeTrailingSlash)(t)),e.buildId&&(t=(0,i.addPathSuffix)((0,a.addPathPrefix)(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=(0,a.addPathPrefix)(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:(0,i.addPathSuffix)(t,"/"):(0,n.removeTrailingSlash)(t)}},866140,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"normalizeLocalePath",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e,t){let r;if(!t)return{pathname:e};let a=n.get(t);a||(a=t.map(e=>e.toLowerCase()),n.set(t,a));let i=e.split("/",2);if(!i[1])return{pathname:e};let s=i[1].toLowerCase(),o=a.indexOf(s);return o<0?{pathname:e}:(r=t[o],{pathname:e=e.slice(r.length+1)||"/",detectedLocale:r})}},857436,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removePathPrefix",{enumerable:!0,get:function(){return a}});let n=e.r(712550);function a(e,t){if(!(0,n.pathHasPrefix)(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:`/${r}`}},707723,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getNextPathnameInfo",{enumerable:!0,get:function(){return s}});let n=e.r(866140),a=e.r(857436),i=e.r(712550);function s(e,t){let{basePath:r,i18n:s,trailingSlash:o}=t.nextConfig??{},l={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):o};r&&(0,i.pathHasPrefix)(l.pathname,r)&&(l.pathname=(0,a.removePathPrefix)(l.pathname,r),l.basePath=r);let c=l.pathname;if(l.pathname.startsWith("/_next/data/")&&l.pathname.endsWith(".json")){let e=l.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");l.buildId=e[0],c="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(l.pathname=c)}if(s){let e=t.i18nProvider?t.i18nProvider.analyze(l.pathname):(0,n.normalizeLocalePath)(l.pathname,s.locales);l.locale=e.detectedLocale,l.pathname=e.pathname??l.pathname,!e.detectedLocale&&l.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(c):(0,n.normalizeLocalePath)(c,s.locales)).detectedLocale&&(l.locale=e.detectedLocale)}return l}},955973,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_SUFFIX:function(){return g},APP_DIR_ALIAS:function(){return H},CACHE_ONE_YEAR:function(){return T},DOT_NEXT_ALIAS:function(){return D},ESLINT_DEFAULT_DIRS:function(){return ea},GSP_NO_RETURNED_VALUE:function(){return Q},GSSP_COMPONENT_MEMBER_ERROR:function(){return et},GSSP_NO_RETURNED_VALUE:function(){return Z},HTML_CONTENT_TYPE_HEADER:function(){return s},INFINITE_CACHE:function(){return j},INSTRUMENTATION_HOOK_FILENAME:function(){return L},JSON_CONTENT_TYPE_HEADER:function(){return o},MATCHED_PATH_HEADER:function(){return d},MIDDLEWARE_FILENAME:function(){return I},MIDDLEWARE_LOCATION_REGEXP:function(){return A},NEXT_BODY_SUFFIX:function(){return v},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return P},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return y},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return E},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return N},NEXT_CACHE_TAGS_HEADER:function(){return _},NEXT_CACHE_TAG_MAX_ITEMS:function(){return S},NEXT_CACHE_TAG_MAX_LENGTH:function(){return R},NEXT_DATA_SUFFIX:function(){return x},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return c},NEXT_META_SUFFIX:function(){return b},NEXT_QUERY_PARAM_PREFIX:function(){return l},NEXT_RESUME_HEADER:function(){return w},NON_STANDARD_NODE_ENV:function(){return er},PAGES_DIR_ALIAS:function(){return k},PRERENDER_REVALIDATE_HEADER:function(){return u},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return m},PROXY_FILENAME:function(){return O},PROXY_LOCATION_REGEXP:function(){return C},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return V},ROOT_DIR_ALIAS:function(){return M},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return X},RSC_ACTION_ENCRYPTION_ALIAS:function(){return z},RSC_ACTION_PROXY_ALIAS:function(){return U},RSC_ACTION_VALIDATE_ALIAS:function(){return G},RSC_CACHE_WRAPPER_ALIAS:function(){return W},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return F},RSC_MOD_REF_PROXY_ALIAS:function(){return B},RSC_SEGMENTS_DIR_SUFFIX:function(){return f},RSC_SEGMENT_SUFFIX:function(){return h},RSC_SUFFIX:function(){return p},SERVER_PROPS_EXPORT_ERROR:function(){return q},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return $},SERVER_PROPS_SSG_CONFLICT:function(){return K},SERVER_RUNTIME:function(){return ei},SSG_FALLBACK_EXPORT_ERROR:function(){return en},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return Y},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return J},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return i},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return ee},WEBPACK_LAYERS:function(){return el},WEBPACK_RESOURCE_QUERIES:function(){return ec},WEB_SOCKET_MAX_RECONNECTIONS:function(){return es}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i="text/plain",s="text/html; charset=utf-8",o="application/json; charset=utf-8",l="nxtP",c="nxtI",d="x-matched-path",u="x-prerender-revalidate",m="x-prerender-revalidate-if-generated",f=".segments",h=".segment.rsc",p=".rsc",g=".action",x=".json",b=".meta",v=".body",_="x-next-cache-tags",y="x-next-revalidated-tags",E="x-next-revalidate-tag-token",w="next-resume",S=128,R=256,N=1024,P="_N_T_",T=31536e3,j=0xfffffffe,I="middleware",A=`(?:src/)?${I}`,O="proxy",C=`(?:src/)?${O}`,L="instrumentation",k="private-next-pages",D="private-dot-next",M="private-next-root-dir",H="private-next-app-dir",B="private-next-rsc-mod-ref-proxy",G="private-next-rsc-action-validate",U="private-next-rsc-server-reference",W="private-next-rsc-cache-wrapper",F="private-next-rsc-track-dynamic-import",z="private-next-rsc-action-encryption",X="private-next-rsc-action-client-wrapper",V="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",Y="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",$="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",K="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",J="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",q="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",Q="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",Z="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",ee="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",et="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",er='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',en="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",ea=["app","pages","components","lib","src"],ei={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},es=12,eo={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},el={...eo,GROUP:{builtinReact:[eo.reactServerComponents,eo.actionBrowser],serverOnly:[eo.reactServerComponents,eo.actionBrowser,eo.instrument,eo.middleware],neutralTarget:[eo.apiNode,eo.apiEdge],clientOnly:[eo.serverSideRendering,eo.appPagesBrowser],bundled:[eo.reactServerComponents,eo.actionBrowser,eo.serverSideRendering,eo.appPagesBrowser,eo.shared,eo.instrument,eo.middleware],appPages:[eo.reactServerComponents,eo.serverSideRendering,eo.appPagesBrowser,eo.actionBrowser]}},ec={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},630655,e=>{"use strict";var t=e.i(907358),r=e.i(777616);function n(){let e=(0,r.getAppServices)();return{trackEvent:(0,t.useCallback)((t,r)=>{e.analytics.track(t,r)},[e]),trackPageview:(0,t.useCallback)(t=>{e.analytics.trackPageview(t)},[e])}}e.s(["useAnalytics",()=>n])},216033,e=>{"use strict";e.s(["AnalyticsEvents",0,{PAGE_VIEW:"pageview",PAGE_SCROLL:"page_scroll",PAGE_EXIT:"page_exit",SCROLL_DEPTH:"scroll_depth",BUTTON_CLICK:"button_click",LINK_CLICK:"link_click",FORM_SUBMIT:"form_submit",FORM_START:"form_start",FORM_ERROR:"form_error",FORM_FIELD_FOCUS:"form_field_focus",PRODUCT_VIEW:"product_view",PRODUCT_ADD_TO_CART:"product_add_to_cart",PRODUCT_REMOVE_FROM_CART:"product_remove_from_cart",PRODUCT_PURCHASE:"product_purchase",PRODUCT_WISHLIST_ADD:"product_wishlist_add",PRODUCT_WISHLIST_REMOVE:"product_wishlist_remove",PRODUCT_TAB_SWITCH:"product_tab_switch",SEARCH:"search",FILTER_APPLY:"filter_apply",FILTER_CLEAR:"filter_clear",USER_SIGNUP:"user_signup",USER_LOGIN:"user_login",USER_LOGOUT:"user_logout",USER_PROFILE_UPDATE:"user_profile_update",BLOG_POST_VIEW:"blog_post_view",VIDEO_PLAY:"video_play",VIDEO_PAUSE:"video_pause",VIDEO_COMPLETE:"video_complete",DOWNLOAD:"download",MODAL_OPEN:"modal_open",MODAL_CLOSE:"modal_close",TOGGLE_SWITCH:"toggle_switch",ACCORDION_TOGGLE:"accordion_toggle",TAB_SWITCH:"tab_switch",TOC_CLICK:"toc_click",ERROR:"error",PERFORMANCE:"performance",API_ERROR:"api_error",API_SUCCESS:"api_success",QUOTE_REQUEST:"quote_request",CONTACT_FORM_SUBMIT:"contact_form_submit",NEWSLETTER_SUBSCRIBE:"newsletter_subscribe",BROCHURE_DOWNLOAD:"brochure_download"}])},610408,e=>{"use strict";var t=e.i(452797),r=e.i(676525),n=e.i(112086);function a(e){let{data:a}=e,i=e.title||a?.title||"DIE EXPERTEN FÜR KABELTIEFBAU",s=e.subtitle||e.description||a?.subtitle||"Wir verbinden Infrastruktur mit Präzision. Von Horizontalbohrungen bis zu komplexen Leitungsnetzen.",o=e.videoUrl||a?.videoUrl||"/assets/dummy-hero.mp4",l=a?.posterImage?.url||"/assets/photos/DJI_0048.JPG";a?.posterImage?.alt;let c=e.ctaLabel||e.linkText||a?.ctaLabel||"Unternehmen entdecken",d=e.ctaHref||e.linkHref||a?.ctaHref||"#unternehmen",u=e.secondaryCtaLabel||a?.secondaryCtaLabel||"Projekt anfragen",m=e.secondaryCtaHref||a?.secondaryCtaHref||"/kontakt";return(0,t.jsxs)("div",{className:"relative w-full h-[100svh] flex items-center justify-center overflow-hidden bg-neutral-dark",children:[(0,t.jsx)("div",{className:"absolute inset-0 z-0 bg-neutral-dark"}),o&&(0,t.jsx)("video",{className:"absolute inset-0 w-full h-full object-cover z-1 pointer-events-none filter contrast-125 saturate-110 brightness-90",src:o,poster:l,autoPlay:!0,muted:!0,loop:!0,playsInline:!0,preload:"auto"}),(0,t.jsx)("div",{className:"absolute inset-0 bg-[#0a192f]/30 z-[2] mix-blend-multiply"}),(0,t.jsx)("div",{className:"absolute inset-0 bg-[radial-gradient(ellipse_at_center,_var(--tw-gradient-stops))] from-transparent via-black/20 to-black/80 z-[2]"}),(0,t.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-neutral-dark via-neutral-dark/60 to-transparent z-[3]"}),(0,t.jsx)("div",{className:"container relative z-[4] text-center px-4",children:(0,t.jsxs)(n.motion.div,{initial:{opacity:0,y:40},animate:{opacity:1,y:0},transition:{duration:1.2,ease:[.16,1,.3,1]},children:[(0,t.jsx)("h1",{className:"font-heading font-bold text-4xl md:text-6xl lg:text-8xl text-white mb-6 uppercase tracking-tight drop-shadow-lg",dangerouslySetInnerHTML:{__html:i.replace("KABELTIEFBAU",'KABELTIEFBAU').replace(/\n/g,"
")}}),(0,t.jsx)("p",{className:"text-lg md:text-xl lg:text-2xl text-white/90 max-w-3xl mx-auto mb-12 drop-shadow",children:s}),(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-6",children:[(0,t.jsx)(r.Button,{href:d,variant:"primary",size:"lg",children:c}),(0,t.jsx)(r.Button,{href:m,variant:"outline",size:"lg",className:"border-white/60 text-white hover:text-primary hover:bg-white",children:u})]})]})})]})}e.s(["HeroVideo",()=>a])},138557,e=>{"use strict";var t=e.i(452797),r=e.i(112086),n=e.i(663067);let a=[{title:"E-TIB GmbH",url:"https://www.e-tib.com/",backgroundImage:"/assets/photos/DJI_0243.JPG"},{title:"E-TIB Ingenieurgesellschaft mbH",url:"https://www.etib-ing.com/",backgroundImage:"/assets/photos/DSC01137.JPG"},{title:"NEMO GmbH",url:"https://www.nemo-gmbh.de/",backgroundImage:"/assets/photos/DJI_0048.JPG"}],i={hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.15}}},s={hidden:{opacity:0,y:30},visible:{opacity:1,y:0,transition:{duration:.8,ease:[.16,1,.3,1]}}};function o(e){let{data:o}=e,l=e.badge||o?.badge,c=e.title||o?.title,d=e.companies||o?.companies,u=d?.map(e=>({title:e.title,url:e.url,backgroundImage:e.backgroundImage?.url||e.backgroundImage||"/assets/photos/DJI_0243.JPG"}))||a;return(0,t.jsx)("section",{id:"unternehmen",className:"py-24 bg-neutral-dark border-b border-neutral-800",children:(0,t.jsxs)("div",{className:"container relative z-10 px-4",children:[(l||c)&&(0,t.jsxs)("div",{className:"text-center max-w-3xl mx-auto mb-16",children:[l&&(0,t.jsx)("h2",{className:"text-primary font-bold tracking-wider uppercase text-sm mb-3",children:l}),c&&(0,t.jsx)("h3",{className:"font-heading text-4xl md:text-5xl font-extrabold text-white",children:c})]}),(0,t.jsx)(r.motion.div,{className:"grid grid-cols-1 md:grid-cols-3 gap-6",variants:i,initial:"hidden",whileInView:"visible",viewport:{once:!0,margin:"-50px"},children:u.map((e,a)=>{let i=e.url?"a":"div",o=e.url?{href:e.url,target:"_blank",rel:"noopener noreferrer"}:{},l=e.title.includes("E-TIB"),c=e.title.includes("Ingenieur"),d=e.title.includes("NEMO");return(0,t.jsx)(r.motion.div,{variants:s,className:"h-full",children:(0,t.jsxs)(i,{...o,className:"group relative overflow-hidden aspect-[4/3] flex flex-col justify-center items-center shadow-xl border border-white/5 transition-all duration-500 hover:shadow-2xl hover:-translate-y-1 bg-neutral-dark cursor-pointer block w-full h-full sm:rounded-xl",children:[(0,t.jsx)("div",{className:"absolute inset-0 bg-[#0a192f] z-0",children:(0,t.jsx)(n.default,{src:e.backgroundImage,alt:"Background",fill:!0,className:"object-cover opacity-40 group-hover:opacity-30 group-hover:scale-110 transition-all duration-1000 ease-out grayscale-[50%] group-hover:grayscale-0",sizes:"(max-width: 768px) 100vw, 33vw"})}),(0,t.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-[#0a192f]/90 via-[#0a192f]/60 to-[#0a192f]/40 z-0 group-hover:from-primary/90 group-hover:to-primary/20 transition-colors duration-700 mix-blend-multiply"}),(0,t.jsx)("div",{className:"relative z-10 flex flex-col items-center justify-center w-full h-full p-8 transform group-hover:scale-105 transition-transform duration-500",children:l?(0,t.jsxs)("div",{className:"flex flex-col items-center",children:[(0,t.jsx)("div",{className:"relative w-48 h-14 mb-2",children:(0,t.jsx)(n.default,{src:"/assets/logo-white.png",alt:"E-TIB Logo",fill:!0,className:"object-contain"})}),c&&(0,t.jsx)("div",{className:"text-white/80 tracking-[0.3em] text-xs font-semibold uppercase mt-1",children:"Ingenieurgesellschaft"})]}):d?(0,t.jsxs)("div",{className:"flex flex-col items-center",children:[(0,t.jsx)("div",{className:"text-5xl font-heading font-black text-white tracking-tight",children:"NEMO"}),(0,t.jsx)("div",{className:"text-white/60 tracking-widest text-xs font-semibold uppercase mt-1",children:"GmbH"})]}):(0,t.jsx)("div",{className:"text-2xl font-heading font-bold text-white uppercase text-center",children:e.title})}),e.url&&(0,t.jsx)("div",{className:"absolute bottom-6 left-0 right-0 flex justify-center opacity-0 group-hover:opacity-100 transform translate-y-4 group-hover:translate-y-0 transition-all duration-500 z-20",children:(0,t.jsxs)("div",{className:"flex items-center text-white font-bold uppercase text-xs tracking-widest bg-white/10 backdrop-blur-md px-4 py-2 rounded-full border border-white/20",children:["Website Besuchen",(0,t.jsx)("svg",{className:"w-4 h-4 ml-2",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,t.jsx)("path",{d:"M5 12h14M12 5l7 7-7 7"})})]})})]})},a)})})]})})}e.s(["SubCompanyTiles",()=>o])},285997,e=>{"use strict";var t=e.i(452797),r=e.i(184868),n=e.i(663067),a=e.i(112086),i=e.i(907358);function s(e){let{data:s}=e,[o,l]=(0,i.useState)(!1);(0,i.useEffect)(()=>{l(!0)},[]);let c=e.badge||s?.badge||"Leistungsspektrum",d=e.title||s?.title||"Umfassende Lösungen für komplexe Netzwerke",u=e.ctaLabel||s?.ctaLabel||"Alle Kompetenzen ansehen",m=e.ctaHref||s?.ctaHref||"/kompetenzen",f=e.items||s?.items||[];return o?(0,t.jsx)("section",{className:"py-24 bg-neutral text-neutral-dark overflow-hidden relative",children:(0,t.jsxs)("div",{className:"container",children:[(0,t.jsxs)("div",{className:"flex flex-col md:flex-row justify-between items-end mb-12",children:[(0,t.jsxs)("div",{className:"max-w-2xl",children:[(0,t.jsx)("h2",{className:"text-primary font-bold tracking-wider uppercase text-sm mb-3",children:c}),(0,t.jsx)("h3",{className:"font-heading text-4xl md:text-5xl font-extrabold text-neutral-dark mb-4",children:d})]}),(0,t.jsxs)(r.default,{href:m,className:"inline-flex items-center font-bold text-primary hover:text-primary-dark transition-colors group mt-6 md:mt-0 bg-primary/5 hover:bg-primary/10 px-6 py-3 rounded-xl",children:[u,(0,t.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-5 h-5 ml-2 transform group-hover:translate-x-1 transition-transform",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),(0,t.jsx)("polyline",{points:"12 5 19 12 12 19"})]})]})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-3 lg:grid-cols-4 gap-4 auto-rows-[220px]",children:f.map((e,r)=>{let i="large"===e.size,s="medium"===e.size,o="accent"===e.size,l=e.image?.url,c="rounded-2xl overflow-hidden relative group ";return(i?c+="md:col-span-2 md:row-span-2":s?c+="md:col-span-2 lg:col-span-2":o?c+="md:col-span-1 bg-primary text-white p-6 md:p-8 flex flex-col justify-center border-none shadow-md":c+="md:col-span-1",o)?(0,t.jsxs)(a.motion.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:.1*r},className:c,children:[(0,t.jsx)("div",{className:"absolute top-0 right-0 w-32 h-32 bg-primary/30 blur-3xl rounded-full -mr-10 -mt-10 group-hover:bg-primary/50 transition-colors duration-500"}),(0,t.jsx)("h4",{className:"font-bold text-xl md:text-2xl relative z-10 leading-snug",children:e.title}),e.description&&(0,t.jsx)("p",{className:"text-white/60 text-sm mt-3 relative z-10",children:e.description})]},r):(0,t.jsxs)(a.motion.div,{initial:{opacity:0,scale:.95},whileInView:{opacity:1,scale:1},viewport:{once:!0},transition:{delay:.1*r},className:c,children:[!l&&(0,t.jsx)("div",{className:"absolute inset-0 bg-neutral-dark z-0 transition-colors duration-500 group-hover:bg-primary-dark"}),l&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"absolute inset-0 bg-white z-0",children:(0,t.jsx)(n.default,{src:l,alt:e.title||"",fill:!0,className:"object-cover opacity-90 group-hover:scale-105 group-hover:opacity-100 transition-all duration-700 ease-in-out",sizes:i?"(max-width: 768px) 100vw, 50vw":"(max-width: 768px) 100vw, 25vw"})}),(0,t.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-black/80 via-black/20 to-transparent opacity-90 transition-opacity duration-500 z-0"})]}),(0,t.jsxs)("div",{className:"relative z-10 p-8 flex flex-col justify-end h-full text-white",children:[e.tag&&(0,t.jsx)("span",{className:"inline-block px-3 py-1 bg-primary/20 backdrop-blur-md rounded-full text-xs font-bold uppercase tracking-wider text-primary-light mb-3 w-fit border border-primary/30",children:e.tag}),(0,t.jsx)("h4",{className:`font-heading font-extrabold mb-2 ${i?"text-3xl md:text-5xl":"text-xl md:text-2xl"}`,children:e.title}),e.description&&(0,t.jsx)("p",{className:`text-white/80 ${i?"text-lg md:text-xl max-w-sm":"text-sm"}`,children:e.description})]})]},r)})})]})}):(0,t.jsx)("section",{className:"py-24 bg-neutral text-neutral-dark overflow-hidden relative",children:(0,t.jsxs)("div",{className:"container",children:[(0,t.jsx)("div",{className:"flex flex-col md:flex-row justify-between items-end mb-12",children:(0,t.jsxs)("div",{className:"max-w-2xl",children:[(0,t.jsx)("h2",{className:"text-primary font-bold tracking-wider uppercase text-sm mb-3",children:c}),(0,t.jsx)("h3",{className:"font-heading text-4xl md:text-5xl font-extrabold text-neutral-dark mb-4",children:d})]})}),(0,t.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-3 lg:grid-cols-4 gap-4 auto-rows-[220px]"})]})})}e.s(["CompetenceBentoGrid",()=>s])},677705,e=>{"use strict";var t=e.i(452797),r=e.i(907358),n=e.i(112086),a=e.i(184868),i=e.i(663067);function s(e){let{data:s}=e,o=e.references||[],l=r.useRef(null),c=e.badge||s?.badge||"Ausgewählte Projekte",d=e.title||s?.title||"Referenzen & Erfolge",u=e.description||s?.description||"Ein Auszug unserer erfolgreich abgeschlossenen Projekte im Bereich Kabeltiefbau, Bohrtechnik und Netzinfrastruktur.",m=e.ctaLabel||s?.ctaLabel||"Alle Referenzen ansehen",f=e.ctaHref||s?.ctaHref||"/referenzen";if(!o||0===o.length)return null;let h=["/assets/photos/DSC01123.JPG","/assets/photos/DSC00850.JPG","/assets/photos/DSC01129.JPG","/assets/photos/DSC00010.JPG"];return(0,t.jsxs)("section",{className:"py-24 bg-neutral-dark text-white overflow-hidden relative",children:[(0,t.jsx)("div",{className:"absolute inset-0 bg-gradient-to-b from-neutral-dark via-neutral-900 to-neutral-dark z-0"}),(0,t.jsxs)("div",{className:"container relative z-10 mb-12 flex flex-col md:flex-row justify-between items-end gap-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-primary-light font-bold tracking-wider uppercase text-sm mb-3",children:c}),(0,t.jsx)("h3",{className:"font-heading text-4xl md:text-5xl font-extrabold",children:d})]}),(0,t.jsx)("p",{className:"text-white/60 max-w-md",children:u})]}),(0,t.jsx)("div",{className:"relative z-10",children:(0,t.jsx)("div",{ref:l,className:"flex gap-6 overflow-x-auto pb-12 pt-4 snap-x snap-mandatory px-[calc((100vw-min(100%,1280px))/2)] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden",children:o.map((e,r)=>{let a=e.image&&"object"==typeof e.image&&e.image.url?e.image.url:h[r%h.length];return(0,t.jsx)(n.motion.div,{initial:{opacity:0,x:50},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{delay:.1*r,duration:.6,ease:"easeOut"},className:"flex-shrink-0 w-[320px] md:w-[480px] snap-center group cursor-pointer",children:(0,t.jsxs)("div",{className:"relative aspect-[16/10] bg-neutral-800 rounded-2xl overflow-hidden mb-5 border border-white/5 shadow-2xl",children:[(0,t.jsx)(i.default,{src:a,alt:e.title,fill:!0,sizes:"(max-width: 768px) 320px, 480px",className:"object-cover saturate-50 opacity-70 group-hover:scale-105 group-hover:opacity-100 group-hover:saturate-100 transition-all duration-700 ease-in-out"}),(0,t.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-black/90 via-black/30 to-transparent opacity-80 group-hover:opacity-90 transition-opacity duration-300"}),(0,t.jsxs)("div",{className:"absolute bottom-6 left-8 right-8 transform translate-y-4 group-hover:translate-y-0 transition-transform duration-500",children:[(0,t.jsx)("span",{className:"inline-block py-1.5 px-4 rounded-full bg-primary/30 backdrop-blur-md text-white text-xs font-bold uppercase tracking-widest mb-3 border border-primary/50",children:e.category}),(0,t.jsx)("h4",{className:"font-heading text-2xl md:text-3xl font-bold line-clamp-2",children:e.title})]})]})},e.id)})})}),(0,t.jsx)("div",{className:"container relative z-10 mt-4 flex justify-center",children:(0,t.jsxs)(a.default,{href:f,className:"px-8 py-4 rounded-xl bg-white/5 border border-white/20 hover:bg-white hover:text-neutral-dark hover:shadow-[0_0_20px_rgba(255,255,255,0.3)] transition-all font-bold flex items-center gap-3 backdrop-blur-sm",children:[m,(0,t.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-5 h-5",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),(0,t.jsx)("polyline",{points:"12 5 19 12 12 19"})]})]})})]})}e.s(["ReferencesSlider",()=>s])},813804,e=>{"use strict";var t=e.i(452797),r=e.i(184868),n=e.i(630655),a=e.i(216033);function i({href:e,eventName:i=a.AnalyticsEvents.LINK_CLICK,eventProperties:s={},className:o,children:l,onClick:c}){let{trackEvent:d}=(0,n.useAnalytics)();return(0,t.jsx)(r.default,{href:e,className:o,onClick:()=>{try{d(i,{href:e,...s})}catch{}c&&c()},children:l})}e.s(["default",()=>i])},287980,e=>{"use strict";var t=e.i(452797),r=e.i(907358),n=e.i(112086),a=e.i(651692),i=e.i(702915),s=e.i(26809),o=e.i(470919),l=e.i(967682);function c(e,t){let r,n=()=>{let{currentTime:n}=t,a=(null===n?0:n.value)/100;r!==a&&e(a),r=a};return l.frame.preUpdate(n,!0),()=>(0,l.cancelFrame)(n)}function d(e){return!("u"({current:0,offset:[],progress:0,scrollLength:0,targetOffset:0,targetLength:0,containerLength:0,velocity:0}),p={x:{length:"Width",position:"Left"},y:{length:"Height",position:"Top"}};function g(e,t,r,n){let a=r[t],{length:i,position:s}=p[t],o=a.current,l=r.time;a.current=Math.abs(e[`scroll${s}`]),a.scrollLength=e[`scroll${i}`]-e[`client${i}`],a.offset.length=0,a.offset[0]=0,a.offset[1]=a.scrollLength,a.progress=(0,m.progress)(0,a.scrollLength,a.current);let c=n-l;a.velocity=c>50?0:(0,f.velocityPerSecond)(a.current-o,c)}e.i(653782);var x=e.i(498920),b=e.i(805639),v=e.i(493858),_=e.i(250438);let y={start:0,center:.5,end:1};function E(e,t,r=0){let n=0;if(e in y&&(e=y[e]),"string"==typeof e){let t=parseFloat(e);e.endsWith("px")?n=t:e.endsWith("%")?e=t/100:e.endsWith("vw")?n=t/100*document.documentElement.clientWidth:e.endsWith("vh")?n=t/100*document.documentElement.clientHeight:e=t}return"number"==typeof e&&(n=t*e),r+n}let w=[0,0],S=[[0,0],[1,1]],R={x:0,y:0},N=new WeakMap,P=new WeakMap,T=new WeakMap,j=new WeakMap,I=new WeakMap,A=e=>e===document.scrollingElement?window:e;function O(e,{container:t=document.scrollingElement,trackContentSize:r=!1,...n}={}){if(!t)return o.noop;let a=T.get(t);a||(a=new Set,T.set(t,a));let i=function(e,t,r,n={}){return{measure:t=>{!function(e,t=e,r){if(r.x.targetOffset=0,r.y.targetOffset=0,t!==e){let n=t;for(;n&&n!==e;)r.x.targetOffset+=n.offsetLeft,r.y.targetOffset+=n.offsetTop,n=n.offsetParent}r.x.targetLength=t===e?t.scrollWidth:t.clientWidth,r.y.targetLength=t===e?t.scrollHeight:t.clientHeight,r.x.containerLength=e.clientWidth,r.y.containerLength=e.clientHeight}(e,n.target,r),g(e,"x",r,t),g(e,"y",r,t),r.time=t,(n.offset||n.target)&&function(e,t,r){let{offset:n=S}=r,{target:a=e,axis:i="y"}=r,s="y"===i?"height":"width",o=a!==e?function(e,t){let r={x:0,y:0},n=e;for(;n&&n!==t;)if((0,_.isHTMLElement)(n))r.x+=n.offsetLeft,r.y+=n.offsetTop,n=n.offsetParent;else if("svg"===n.tagName){let e=n.getBoundingClientRect(),t=(n=n.parentElement).getBoundingClientRect();r.x+=e.left-t.left,r.y+=e.top-t.top}else if(n instanceof SVGGraphicsElement){let{x:e,y:t}=n.getBBox();r.x+=e,r.y+=t;let a=null,i=n.parentNode;for(;!a;)"svg"===i.tagName&&(a=i),i=n.parentNode;n=a}else break;return r}(a,e):R,l=a===e?{width:e.scrollWidth,height:e.scrollHeight}:"getBBox"in a&&"svg"!==a.tagName?a.getBBox():{width:a.clientWidth,height:a.clientHeight},c={width:e.clientWidth,height:e.clientHeight};t[i].offset.length=0;let d=!t[i].interpolate,u=n.length;for(let e=0;et(r)}}(t,e,{time:0,x:h(),y:h()},n);if(a.add(i),!N.has(t)){let e=()=>{for(let e of a)e.measure(l.frameData.timestamp);l.frame.preUpdate(r)},r=()=>{for(let e of a)e.notify()},n=()=>l.frame.read(e);N.set(t,n);let i=A(t);window.addEventListener("resize",n),t!==document.documentElement&&P.set(t,(0,u.resize)(t,n)),i.addEventListener("scroll",n),n()}if(r&&!I.has(t)){let e=N.get(t),r={width:t.scrollWidth,height:t.scrollHeight};j.set(t,r);let n=l.frame.read(()=>{let n=t.scrollWidth,a=t.scrollHeight;(r.width!==n||r.height!==a)&&(e(),r.width=n,r.height=a)},!0);I.set(t,n)}let s=N.get(t);return l.frame.read(s,!1,!0),()=>{(0,l.cancelFrame)(s);let e=T.get(t);if(!e||(e.delete(i),e.size))return;let r=N.get(t);N.delete(t),r&&(A(t).removeEventListener("scroll",r),P.get(t)?.(),window.removeEventListener("resize",r));let n=I.get(t);n&&((0,l.cancelFrame)(n),I.delete(t)),j.delete(t)}}let C=[[[[0,1],[1,1]],"entry"],[[[0,0],[1,0]],"exit"],[[[1,0],[0,1]],"cover"],[S,"contain"]],L={start:0,end:1};function k(e){if(!e)return{rangeStart:"contain 0%",rangeEnd:"contain 100%"};for(let[t,r]of C)if(function(e,t){let r=function(e){if(2!==e.length)return;let t=[];for(let r of e)if(Array.isArray(r))t.push(r);else{if("string"!=typeof r)return;let e=function(e){let t=e.trim().split(/\s+/);if(2!==t.length)return;let r=L[t[0]],n=L[t[1]];if(void 0!==r&&void 0!==n)return[r,n]}(r);if(!e)return;t.push(e)}return t}(e);if(!r)return!1;for(let e=0;e<2;e++){let n=r[e],a=t[e];if(n[0]!==a[0]||n[1]!==a[1])return!1}return!0}(e,t))return{rangeStart:`${r} 0%`,rangeEnd:`${r} 100%`}}let D=new Map;function M(e){let t={value:0},r=O(r=>{t.value=100*r[e.axis].progress},e);return{currentTime:t,cancel:r}}function H({source:e,container:t,...r}){let{axis:n}=r;e&&(t=e);let a=D.get(t);a||(a=new Map,D.set(t,a));let i=r.target??"self",s=a.get(i);s||(s={},a.set(i,s));let o=n+(r.offset??[]).join(",");return s[o]||(r.target&&d(r.target)?k(r.offset)?s[o]=new ViewTimeline({subject:r.target,axis:n}):s[o]=M({container:t,...r}):d()?s[o]=new ScrollTimeline({source:t,axis:n}):s[o]=M({container:t,...r})),s[o]}function B(e,{axis:t="y",container:r=document.scrollingElement,...n}={}){var a,i;let s,l,u;if(!r)return o.noop;let m={axis:t,container:r,...n};return"function"==typeof e?(a=e,i=m,2===a.length?O(e=>{a(e[i.axis].progress,e)},i):c(a,H(i))):(s=H(m),l=m.target?k(m.offset):void 0,u=m.target?d(m.target)&&!!l:d(),e.attachTimeline({timeline:u?s:void 0,...l&&u&&{rangeStart:l.rangeStart,rangeEnd:l.rangeEnd},observe:e=>(e.pause(),c(t=>{e.time=e.iterationDuration*t},s))}))}var G=e.i(134174),U=e.i(736986);let W=()=>({scrollX:(0,i.motionValue)(0),scrollY:(0,i.motionValue)(0),scrollXProgress:(0,i.motionValue)(0),scrollYProgress:(0,i.motionValue)(0)}),F=e=>!!e&&!e.current;function z(e,t,r,n){return{factory:a=>B(a,{...t,axis:e,container:r?.current||void 0,target:n?.current||void 0}),times:[0,1],keyframes:[0,1],ease:e=>e,duration:1}}var X=e.i(753942);function V(e,t){let n=function(e){let t=(0,G.useConstant)(()=>(0,i.motionValue)(e)),{isStatic:n}=(0,r.useContext)(X.MotionConfigContext);if(n){let[,n]=(0,r.useState)(e);(0,r.useEffect)(()=>t.on("change",n),[])}return t}(t()),a=()=>n.set(t());return a(),(0,U.useIsomorphicLayoutEffect)(()=>{let t=()=>l.frame.preRender(a,!1,!0),r=e.map(e=>e.on("change",t));return()=>{r.forEach(e=>e()),(0,l.cancelFrame)(a)}}),n}function Y(e,t){let r=(0,G.useConstant)(()=>[]);return V(e,()=>{r.length=0;let n=e.length;for(let t=0;t(l.current=B((e,{x:t,y:r})=>{o.scrollX.set(t.current),o.scrollXProgress.set(t.progress),o.scrollY.set(r.current),o.scrollYProgress.set(r.progress)},{...n,container:e?.current||void 0,target:t?.current||void 0}),()=>{l.current?.()}),[e,t,JSON.stringify(n.offset)]);return(0,U.useIsomorphicLayoutEffect)(()=>{if(c.current=!1,!(F(e)||F(t)))return d();c.current=!0},[d]),(0,r.useEffect)(()=>c.current?((0,s.invariant)(!F(e),"Container ref is defined but not hydrated","use-scroll-ref"),(0,s.invariant)(!F(t),"Target ref is defined but not hydrated","use-scroll-ref"),d()):void 0,[d]),o}({target:c,offset:["start center","end center"]}),u=function e(t,r,n,a){if("function"==typeof t){let e;return i.collectMotionValues.current=[],t(),e=V(i.collectMotionValues.current,t),i.collectMotionValues.current=void 0,e}if(void 0!==n&&!Array.isArray(n)&&"function"!=typeof r){var s=t,o=r,l=n,c=a;let i=(0,G.useConstant)(()=>Object.keys(l)),d=(0,G.useConstant)(()=>({}));for(let t of i)d[t]=e(s,o,l[t],c);return d}let d="function"==typeof r?r:function(...e){let t=!Array.isArray(e[0]),r=t?0:-1,n=e[0+r],a=e[1+r],i=e[2+r],s=e[3+r],o=(0,x.interpolate)(a,i,s);return t?o(n):o}(r,n,a),u=Array.isArray(t)?Y(t,d):Y([t],([e])=>d(e)),m=Array.isArray(t)?void 0:t.accelerate;return m&&!m.isTransformed&&"function"!=typeof r&&Array.isArray(n)&&a?.clamp!==!1&&(u.accelerate={...m,times:r,keyframes:n,isTransformed:!0,...a?.ease?{ease:a.ease}:{}}),u}(d,[0,1],["0%","100%"]);return(0,t.jsx)("section",{className:"py-24 bg-white relative",children:(0,t.jsxs)("div",{className:"container max-w-4xl",children:[(0,t.jsxs)("div",{className:"text-center mb-16",children:[(0,t.jsx)("h2",{className:"text-primary font-bold tracking-wider uppercase text-sm mb-3",children:e}),(0,t.jsx)("h3",{className:"font-heading text-4xl font-extrabold text-neutral-dark",children:o})]}),(0,t.jsxs)("div",{ref:c,className:"relative",children:[(0,t.jsx)("div",{className:"absolute left-4 md:left-1/2 top-0 bottom-0 w-1 bg-neutral-200 -translate-x-1/2 rounded-full overflow-hidden",children:(0,t.jsx)(n.motion.div,{className:"w-full bg-primary",style:{height:u}})}),(0,t.jsx)("div",{className:"space-y-12 md:space-y-0",children:l.map((e,r)=>{let a=r%2==0;return(0,t.jsxs)(n.motion.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0,margin:"-100px"},transition:{duration:.6},className:"relative flex flex-col w-full",children:[(0,t.jsx)("div",{className:"absolute left-4 md:left-1/2 top-8 md:top-1/2 w-6 h-6 rounded-full bg-white border-4 border-primary z-10 -translate-x-1/2 md:-translate-y-1/2 shadow-lg"}),(0,t.jsx)("div",{className:`w-full md:w-[calc(50%-2.5rem)] pl-16 md:pl-0 ${a?"md:mr-auto md:text-right":"md:ml-auto md:text-left"}`,children:(0,t.jsxs)("div",{className:"bg-neutral-50 p-6 md:p-8 rounded-2xl shadow-sm border border-neutral-100 hover:shadow-md transition-shadow relative",children:[(0,t.jsx)("span",{className:"inline-block py-1.5 px-4 rounded-full bg-primary/10 text-primary font-bold text-sm mb-4",children:e.date}),(0,t.jsx)("h4",{className:"font-heading font-bold text-2xl md:text-3xl mb-3 text-neutral-dark leading-tight",children:e.title}),(0,t.jsx)("p",{className:"text-text-secondary leading-relaxed",children:e.desc})]})})]},r)})})]})]})})}e.s(["CompanyTimeline",()=>K],287980)},919007,e=>{e.v(t=>Promise.all(["static/chunks/3ffd2a1cf95ceb60.js","static/chunks/f99046ae195fe277.js","static/chunks/6d182a34db4f4c54.js"].map(t=>e.l(t))).then(()=>t(502456)))}]); - -//# debugId=4d60c771-3ebf-77c3-50ea-bfb9723014b7 \ No newline at end of file diff --git a/.next/static/chunks/4e4487a1c38504b3.js b/.next/static/chunks/b02fdfb08ad720b0.js similarity index 56% rename from .next/static/chunks/4e4487a1c38504b3.js rename to .next/static/chunks/b02fdfb08ad720b0.js index b585295c6..8e79d1bd2 100644 --- a/.next/static/chunks/4e4487a1c38504b3.js +++ b/.next/static/chunks/b02fdfb08ad720b0.js @@ -1,4 +1,4 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="788313af-0917-dbd1-f803-07755a6af68e")}catch(e){}}(); -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,102227,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReflectAdapter",{enumerable:!0,get:function(){return n}});class n{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}},365278,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(496932).createAsyncLocalStorage)()},517110,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorage",{enumerable:!0,get:function(){return n.afterTaskAsyncStorageInstance}});let n=e.r(365278)},780329,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isRequestAPICallableInsideAfter:function(){return u},throwForSearchParamsAccessInUseCache:function(){return c},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(579781),s=e.r(517110);function o(e,t){throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${t}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function c(e,t){let r=Object.defineProperty(Error(`Route ${e.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(r,t),e.invalidDynamicUsageError??=r,r}function u(){let e=s.afterTaskAsyncStorage.getStore();return(null==e?void 0:e.rootTaskSpawnPhase)==="action"}},759823,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a={RenderStage:function(){return c},StagedRenderingController:function(){return u}};for(var i in a)Object.defineProperty(r,i,{enumerable:!0,get:a[i]});let s=e.r(436120),o=e.r(444841);var c=((n={})[n.Before=1]="Before",n[n.Static=2]="Static",n[n.Runtime=3]="Runtime",n[n.Dynamic=4]="Dynamic",n[n.Abandoned=5]="Abandoned",n);class u{constructor(e=null,t){this.abortSignal=e,this.hasRuntimePrefetch=t,this.currentStage=1,this.staticInterruptReason=null,this.runtimeInterruptReason=null,this.staticStageEndTime=1/0,this.runtimeStageEndTime=1/0,this.runtimeStageListeners=[],this.dynamicStageListeners=[],this.runtimeStagePromise=(0,o.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,o.createPromiseWithResolvers)(),this.mayAbandon=!1,e&&(e.addEventListener("abort",()=>{let{reason:t}=e;this.currentStage<3&&(this.runtimeStagePromise.promise.catch(d),this.runtimeStagePromise.reject(t)),(this.currentStage<4||5===this.currentStage)&&(this.dynamicStagePromise.promise.catch(d),this.dynamicStagePromise.reject(t))},{once:!0}),this.mayAbandon=!0)}onStage(e,t){if(this.currentStage>=e)t();else if(3===e)this.runtimeStageListeners.push(t);else if(4===e)this.dynamicStageListeners.push(t);else throw Object.defineProperty(new s.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}canSyncInterrupt(){if(1===this.currentStage)return!1;let e=this.hasRuntimePrefetch?4:3;return this.currentStage=3&&(this.staticStageEndTime=performance.now()+performance.timeOrigin,this.resolveRuntimeStage()),t<4&&e>=4){this.runtimeStageEndTime=performance.now()+performance.timeOrigin,this.resolveDynamicStage();return}}resolveRuntimeStage(){let e=this.runtimeStageListeners;for(let t=0;t{n.then(e.bind(null,i),t)}),void 0!==a&&(s.displayName=a),s);return this.abortSignal&&o.catch(d),o}}function d(){}},118720,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addPathSuffix",{enumerable:!0,get:function(){return a}});let n=e.r(506985);function a(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:i}=(0,n.parsePath)(e);return`${r}${t}${a}${i}`}},446247,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addLocale",{enumerable:!0,get:function(){return i}});let n=e.r(688391),a=e.r(712550);function i(e,t,r,i){if(!t||t===r)return e;let s=e.toLowerCase();return!i&&((0,a.pathHasPrefix)(s,"/api")||(0,a.pathHasPrefix)(s,`/${t.toLowerCase()}`))?e:(0,n.addPathPrefix)(e,`/${t}`)}},971560,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"formatNextPathnameInfo",{enumerable:!0,get:function(){return o}});let n=e.r(895708),a=e.r(688391),i=e.r(118720),s=e.r(446247);function o(e){let t=(0,s.addLocale)(e.pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix);return(e.buildId||!e.trailingSlash)&&(t=(0,n.removeTrailingSlash)(t)),e.buildId&&(t=(0,i.addPathSuffix)((0,a.addPathPrefix)(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=(0,a.addPathPrefix)(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:(0,i.addPathSuffix)(t,"/"):(0,n.removeTrailingSlash)(t)}},866140,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"normalizeLocalePath",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e,t){let r;if(!t)return{pathname:e};let a=n.get(t);a||(a=t.map(e=>e.toLowerCase()),n.set(t,a));let i=e.split("/",2);if(!i[1])return{pathname:e};let s=i[1].toLowerCase(),o=a.indexOf(s);return o<0?{pathname:e}:(r=t[o],{pathname:e=e.slice(r.length+1)||"/",detectedLocale:r})}},857436,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removePathPrefix",{enumerable:!0,get:function(){return a}});let n=e.r(712550);function a(e,t){if(!(0,n.pathHasPrefix)(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:`/${r}`}},707723,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getNextPathnameInfo",{enumerable:!0,get:function(){return s}});let n=e.r(866140),a=e.r(857436),i=e.r(712550);function s(e,t){let{basePath:r,i18n:s,trailingSlash:o}=t.nextConfig??{},c={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):o};r&&(0,i.pathHasPrefix)(c.pathname,r)&&(c.pathname=(0,a.removePathPrefix)(c.pathname,r),c.basePath=r);let u=c.pathname;if(c.pathname.startsWith("/_next/data/")&&c.pathname.endsWith(".json")){let e=c.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");c.buildId=e[0],u="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(c.pathname=u)}if(s){let e=t.i18nProvider?t.i18nProvider.analyze(c.pathname):(0,n.normalizeLocalePath)(c.pathname,s.locales);c.locale=e.detectedLocale,c.pathname=e.pathname??c.pathname,!e.detectedLocale&&c.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(u):(0,n.normalizeLocalePath)(u,s.locales)).detectedLocale&&(c.locale=e.detectedLocale)}return c}},955973,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_SUFFIX:function(){return g},APP_DIR_ALIAS:function(){return X},CACHE_ONE_YEAR:function(){return I},DOT_NEXT_ALIAS:function(){return k},ESLINT_DEFAULT_DIRS:function(){return ea},GSP_NO_RETURNED_VALUE:function(){return J},GSSP_COMPONENT_MEMBER_ERROR:function(){return et},GSSP_NO_RETURNED_VALUE:function(){return Z},HTML_CONTENT_TYPE_HEADER:function(){return s},INFINITE_CACHE:function(){return N},INSTRUMENTATION_HOOK_FILENAME:function(){return L},JSON_CONTENT_TYPE_HEADER:function(){return o},MATCHED_PATH_HEADER:function(){return d},MIDDLEWARE_FILENAME:function(){return w},MIDDLEWARE_LOCATION_REGEXP:function(){return O},NEXT_BODY_SUFFIX:function(){return E},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return T},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return b},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return v},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return A},NEXT_CACHE_TAGS_HEADER:function(){return S},NEXT_CACHE_TAG_MAX_ITEMS:function(){return P},NEXT_CACHE_TAG_MAX_LENGTH:function(){return y},NEXT_DATA_SUFFIX:function(){return _},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return u},NEXT_META_SUFFIX:function(){return x},NEXT_QUERY_PARAM_PREFIX:function(){return c},NEXT_RESUME_HEADER:function(){return R},NON_STANDARD_NODE_ENV:function(){return er},PAGES_DIR_ALIAS:function(){return D},PRERENDER_REVALIDATE_HEADER:function(){return l},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return m},PROXY_FILENAME:function(){return j},PROXY_LOCATION_REGEXP:function(){return C},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return $},ROOT_DIR_ALIAS:function(){return M},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return Y},RSC_ACTION_ENCRYPTION_ALIAS:function(){return W},RSC_ACTION_PROXY_ALIAS:function(){return G},RSC_ACTION_VALIDATE_ALIAS:function(){return F},RSC_CACHE_WRAPPER_ALIAS:function(){return B},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return U},RSC_MOD_REF_PROXY_ALIAS:function(){return H},RSC_SEGMENTS_DIR_SUFFIX:function(){return h},RSC_SEGMENT_SUFFIX:function(){return f},RSC_SUFFIX:function(){return p},SERVER_PROPS_EXPORT_ERROR:function(){return Q},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return z},SERVER_PROPS_SSG_CONFLICT:function(){return K},SERVER_RUNTIME:function(){return ei},SSG_FALLBACK_EXPORT_ERROR:function(){return en},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return V},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return q},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return i},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return ee},WEBPACK_LAYERS:function(){return ec},WEBPACK_RESOURCE_QUERIES:function(){return eu},WEB_SOCKET_MAX_RECONNECTIONS:function(){return es}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i="text/plain",s="text/html; charset=utf-8",o="application/json; charset=utf-8",c="nxtP",u="nxtI",d="x-matched-path",l="x-prerender-revalidate",m="x-prerender-revalidate-if-generated",h=".segments",f=".segment.rsc",p=".rsc",g=".action",_=".json",x=".meta",E=".body",S="x-next-cache-tags",b="x-next-revalidated-tags",v="x-next-revalidate-tag-token",R="next-resume",P=128,y=256,A=1024,T="_N_T_",I=31536e3,N=0xfffffffe,w="middleware",O=`(?:src/)?${w}`,j="proxy",C=`(?:src/)?${j}`,L="instrumentation",D="private-next-pages",k="private-dot-next",M="private-next-root-dir",X="private-next-app-dir",H="private-next-rsc-mod-ref-proxy",F="private-next-rsc-action-validate",G="private-next-rsc-server-reference",B="private-next-rsc-cache-wrapper",U="private-next-rsc-track-dynamic-import",W="private-next-rsc-action-encryption",Y="private-next-rsc-action-client-wrapper",$="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",V="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",z="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",K="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",q="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",Q="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",J="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",Z="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",ee="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",et="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",er='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',en="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",ea=["app","pages","components","lib","src"],ei={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},es=12,eo={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},ec={...eo,GROUP:{builtinReact:[eo.reactServerComponents,eo.actionBrowser],serverOnly:[eo.reactServerComponents,eo.actionBrowser,eo.instrument,eo.middleware],neutralTarget:[eo.apiNode,eo.apiEdge],clientOnly:[eo.serverSideRendering,eo.appPagesBrowser],bundled:[eo.reactServerComponents,eo.actionBrowser,eo.serverSideRendering,eo.appPagesBrowser,eo.shared,eo.instrument,eo.middleware],appPages:[eo.reactServerComponents,eo.serverSideRendering,eo.appPagesBrowser,eo.actionBrowser]}},eu={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},7284,e=>{"use strict";function t(){for(var e,t,r=0,n="",a=arguments.length;rt])},676525,e=>{"use strict";var t=e.i(452797),r=e.i(184868),n=e.i(111023);let a={primary:"bg-primary text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl",secondary:"bg-secondary text-white shadow-md hover:shadow-secondary/30 hover:shadow-2xl",accent:"bg-accent text-primary-dark shadow-md hover:shadow-accent/30 hover:shadow-2xl",saturated:"bg-saturated text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl",outline:"border-2 border-primary bg-transparent text-primary hover:text-white hover:shadow-primary/20 hover:shadow-xl",ghost:"text-primary hover:shadow-lg",white:"bg-white text-primary shadow-md hover:shadow-primary/30 hover:shadow-2xl hover:text-white",destructive:"bg-destructive text-destructive-foreground shadow-md hover:shadow-destructive/30 hover:shadow-2xl"},i={sm:"h-9 px-4 text-sm md:text-base",md:"h-11 px-6 text-base md:text-lg",lg:"h-14 px-5 md:px-8 text-base md:text-lg",xl:"h-16 px-6 md:px-10 text-lg md:text-xl"},s={primary:"bg-primary-dark",secondary:"bg-secondary-light",accent:"bg-accent-dark",saturated:"bg-primary",outline:"bg-primary",ghost:"bg-primary-light/10",white:"bg-primary-light",destructive:"bg-destructive/90"};function o({variant:e="primary"}){return(0,t.jsx)("span",{className:(0,n.cn)("absolute inset-0 translate-y-[101%] group-hover/btn:translate-y-0 transition-transform duration-500 ease-out",s[e])})}function c({className:e,variant:s="primary",size:c="md",href:u,...d}){let l=function(e="primary",t="md",r){return(0,n.cn)("inline-flex items-center justify-center whitespace-nowrap rounded-full font-semibold transition-all duration-500 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none active:scale-95 hover:-translate-y-1 hover:scale-[1.02] relative overflow-hidden group/btn isolate",a[e],i[t],r)}(s,c,e),m=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:(0,n.cn)("relative z-10 flex items-center justify-center gap-2 transition-colors duration-500","white"===s?"group-hover/btn:text-primary-dark":""),children:d.children}),(0,t.jsx)(o,{variant:s})]});return u?(0,t.jsx)(r.default,{href:u,className:l,children:m}):(0,t.jsx)("button",{className:l,...d,children:m})}e.s(["Button",()=>c])},445774,370476,575003,982016,105050,801206,587778,9797,e=>{"use strict";var t=e.i(111023);e.i(676525);var r=e.i(452797);function n({className:e,children:n,...a}){return(0,r.jsx)("section",{className:(0,t.cn)("py-16 md:py-28 lg:py-36 overflow-hidden content-visibility-auto",e),...a,children:n})}function a({className:e,children:n,...a}){return(0,r.jsx)("div",{className:(0,t.cn)("container mx-auto px-4 md:px-12 lg:px-16 max-w-7xl",e),...a,children:n})}function i({level:e=2,children:n,className:a,subtitle:i,align:s="left"}){let o=`h${e}`;return(0,r.jsxs)("div",{className:(0,t.cn)("mb-6 md:mb-12 text-primary",{left:"text-left",center:"text-center mx-auto",right:"text-right"}[s],a),children:[i&&(0,r.jsx)("span",{className:"inline-block text-accent font-bold tracking-widest uppercase text-xs md:text-sm mb-3 md:mb-4 animate-fade-in",children:i}),(0,r.jsx)(o,{className:(0,t.cn)({1:"text-2xl md:text-4xl lg:text-5xl font-bold leading-[1.1] tracking-tight",2:"text-xl md:text-3xl lg:text-4xl font-bold leading-[1.2] tracking-tight",3:"text-lg md:text-2xl lg:text-3xl font-bold leading-[1.3] tracking-tight",4:"text-lg md:text-xl lg:text-2xl font-bold leading-[1.4]",5:"text-base md:text-lg font-bold leading-[1.5]",6:"text-base md:text-lg font-semibold leading-[1.6]"}[e]),children:n})]})}function s({className:e,children:n,tag:a="div",...i}){return(0,r.jsx)(a,{className:(0,t.cn)("premium-card overflow-hidden",e),...i,children:n})}function o({className:e,...n}){return(0,r.jsx)("input",{className:(0,t.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg",e),...n})}function c({className:e,...n}){return(0,r.jsx)("textarea",{className:(0,t.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg resize-none",e),...n})}function u({className:e,...n}){return(0,r.jsx)("label",{className:(0,t.cn)("text-[10px] md:text-xs font-extrabold text-primary uppercase tracking-widest",e),...n})}e.s(["Section",()=>n],370476),e.s(["Container",()=>a],575003),e.s(["Heading",()=>i],982016),e.s(["Card",()=>s],105050),e.s(["Input",()=>o],801206),e.s(["Textarea",()=>c],587778),e.s(["Label",()=>u],9797),e.s([],445774)},224038,e=>{"use strict";var t=e.i(452797);e.i(445774);var r=e.i(111023);function n({variant:e,className:n,color:a="#82ed20"}){return"circle"===e?(0,t.jsx)("svg",{className:(0,r.cn)("absolute pointer-events-none",n),"aria-hidden":"true",viewBox:"0 0 800 350",preserveAspectRatio:"none",children:(0,t.jsx)("path",{className:"animate-draw-stroke",pathLength:"1",style:{strokeDasharray:1,strokeDashoffset:1,animation:"draw-stroke 1.8s ease-in-out 0.5s forwards"},transform:"matrix(0.9791300296783447,0,0,0.9791300296783447,400,179)",strokeLinejoin:"miter",fillOpacity:"0",strokeMiterlimit:"4",stroke:a,strokeOpacity:"1",strokeWidth:"20",d:" M253,-161 C253,-161 -284.78900146484375,-201.4600067138672 -376,-21 C-469,163 67.62300109863281,174.2100067138672 256,121 C564,34 250.82899475097656,-141.6929931640625 19.10700035095215,-116.93599700927734"})}):"underline"===e?(0,t.jsx)("svg",{className:(0,r.cn)("absolute pointer-events-none",n),"aria-hidden":"true",viewBox:"-400 -55 730 60",preserveAspectRatio:"none",children:(0,t.jsx)("path",{className:"animate-draw-stroke",pathLength:"1",style:{strokeDasharray:1,strokeDashoffset:1,animation:"draw-stroke 1.8s ease-in-out 0.5s forwards"},d:"m -383.25 -6 c 55.25 -22 130.75 -33.5 293.25 -38 c 54.5 -0.5 195 -2.5 401 15",stroke:a,strokeWidth:"20",fill:"none"})}):null}e.s(["default",()=>n])},309974,e=>{"use strict";var t=e.i(452797),r=e.i(907358),n=e.i(190422),a=e.i(777616);e.i(445774);var i=e.i(575003),s=e.i(676525),o=e.i(982016),c=e.i(224038);function u({error:e,reset:u}){let d=(0,n.useTranslations)("Error");return(0,r.useEffect)(()=>{if(e?.message?.includes("Failed to find Server Action"))return void window.location.reload();let t=(0,a.getAppServices)();return t.errors.captureException(e),t.logger.error("Application error caught by boundary",{message:e?.message||"Unknown error",stack:e?.stack,digest:e?.digest}),document.body.setAttribute("data-force-solid-header","true"),()=>{document.body.removeAttribute("data-force-solid-header")}},[e]),(0,t.jsx)(t.Fragment,{children:(0,t.jsxs)(i.Container,{className:"relative py-32 mt-16 flex flex-col items-center justify-center text-center min-h-[70vh] overflow-hidden",children:[(0,t.jsx)("div",{className:"absolute inset-0 -z-10 opacity-[0.03] pointer-events-none flex items-center justify-center",children:(0,t.jsx)("span",{className:"text-[20rem] font-bold select-none",children:"500"})}),(0,t.jsxs)("div",{className:"relative mb-8",children:[(0,t.jsx)(o.Heading,{level:1,className:"text-6xl md:text-8xl font-bold mb-2 text-saturated",children:"500"}),(0,t.jsx)(c.default,{variant:"underline",className:"w-full h-6 -bottom-2 left-0 text-saturated/40"})]}),(0,t.jsx)(o.Heading,{level:2,className:"text-2xl md:text-3xl font-bold mb-4 text-primary",children:d("title")}),(0,t.jsx)("p",{className:"text-text-secondary mb-10 max-w-md text-lg mx-auto",children:d("description")}),(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[(0,t.jsx)(s.Button,{onClick:()=>u(),variant:"saturated",size:"lg",children:d("tryAgain")}),(0,t.jsx)(s.Button,{href:"/",variant:"outline",size:"lg",children:d("goHome")})]}),(0,t.jsx)("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 w-px h-24 bg-gradient-to-b from-saturated/50 to-transparent"})]})})}e.s(["default",()=>u])},919007,e=>{e.v(t=>Promise.all(["static/chunks/3ffd2a1cf95ceb60.js","static/chunks/f99046ae195fe277.js","static/chunks/6d182a34db4f4c54.js"].map(t=>e.l(t))).then(()=>t(502456)))}]); +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="579f73b4-5dec-fd98-7ed6-87780c610d12")}catch(e){}}(); +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,102227,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReflectAdapter",{enumerable:!0,get:function(){return n}});class n{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}},365278,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(496932).createAsyncLocalStorage)()},517110,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorage",{enumerable:!0,get:function(){return n.afterTaskAsyncStorageInstance}});let n=e.r(365278)},780329,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isRequestAPICallableInsideAfter:function(){return u},throwForSearchParamsAccessInUseCache:function(){return c},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(579781),s=e.r(517110);function o(e,t){throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${t}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function c(e,t){let r=Object.defineProperty(Error(`Route ${e.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(r,t),e.invalidDynamicUsageError??=r,r}function u(){let e=s.afterTaskAsyncStorage.getStore();return(null==e?void 0:e.rootTaskSpawnPhase)==="action"}},759823,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a={RenderStage:function(){return c},StagedRenderingController:function(){return u}};for(var i in a)Object.defineProperty(r,i,{enumerable:!0,get:a[i]});let s=e.r(436120),o=e.r(444841);var c=((n={})[n.Before=1]="Before",n[n.Static=2]="Static",n[n.Runtime=3]="Runtime",n[n.Dynamic=4]="Dynamic",n[n.Abandoned=5]="Abandoned",n);class u{constructor(e=null,t){this.abortSignal=e,this.hasRuntimePrefetch=t,this.currentStage=1,this.staticInterruptReason=null,this.runtimeInterruptReason=null,this.staticStageEndTime=1/0,this.runtimeStageEndTime=1/0,this.runtimeStageListeners=[],this.dynamicStageListeners=[],this.runtimeStagePromise=(0,o.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,o.createPromiseWithResolvers)(),this.mayAbandon=!1,e&&(e.addEventListener("abort",()=>{let{reason:t}=e;this.currentStage<3&&(this.runtimeStagePromise.promise.catch(d),this.runtimeStagePromise.reject(t)),(this.currentStage<4||5===this.currentStage)&&(this.dynamicStagePromise.promise.catch(d),this.dynamicStagePromise.reject(t))},{once:!0}),this.mayAbandon=!0)}onStage(e,t){if(this.currentStage>=e)t();else if(3===e)this.runtimeStageListeners.push(t);else if(4===e)this.dynamicStageListeners.push(t);else throw Object.defineProperty(new s.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}canSyncInterrupt(){if(1===this.currentStage)return!1;let e=this.hasRuntimePrefetch?4:3;return this.currentStage=3&&(this.staticStageEndTime=performance.now()+performance.timeOrigin,this.resolveRuntimeStage()),t<4&&e>=4){this.runtimeStageEndTime=performance.now()+performance.timeOrigin,this.resolveDynamicStage();return}}resolveRuntimeStage(){let e=this.runtimeStageListeners;for(let t=0;t{n.then(e.bind(null,i),t)}),void 0!==a&&(s.displayName=a),s);return this.abortSignal&&o.catch(d),o}}function d(){}},118720,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addPathSuffix",{enumerable:!0,get:function(){return a}});let n=e.r(506985);function a(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:i}=(0,n.parsePath)(e);return`${r}${t}${a}${i}`}},446247,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addLocale",{enumerable:!0,get:function(){return i}});let n=e.r(688391),a=e.r(712550);function i(e,t,r,i){if(!t||t===r)return e;let s=e.toLowerCase();return!i&&((0,a.pathHasPrefix)(s,"/api")||(0,a.pathHasPrefix)(s,`/${t.toLowerCase()}`))?e:(0,n.addPathPrefix)(e,`/${t}`)}},971560,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"formatNextPathnameInfo",{enumerable:!0,get:function(){return o}});let n=e.r(895708),a=e.r(688391),i=e.r(118720),s=e.r(446247);function o(e){let t=(0,s.addLocale)(e.pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix);return(e.buildId||!e.trailingSlash)&&(t=(0,n.removeTrailingSlash)(t)),e.buildId&&(t=(0,i.addPathSuffix)((0,a.addPathPrefix)(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=(0,a.addPathPrefix)(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:(0,i.addPathSuffix)(t,"/"):(0,n.removeTrailingSlash)(t)}},866140,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"normalizeLocalePath",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e,t){let r;if(!t)return{pathname:e};let a=n.get(t);a||(a=t.map(e=>e.toLowerCase()),n.set(t,a));let i=e.split("/",2);if(!i[1])return{pathname:e};let s=i[1].toLowerCase(),o=a.indexOf(s);return o<0?{pathname:e}:(r=t[o],{pathname:e=e.slice(r.length+1)||"/",detectedLocale:r})}},857436,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removePathPrefix",{enumerable:!0,get:function(){return a}});let n=e.r(712550);function a(e,t){if(!(0,n.pathHasPrefix)(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:`/${r}`}},707723,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getNextPathnameInfo",{enumerable:!0,get:function(){return s}});let n=e.r(866140),a=e.r(857436),i=e.r(712550);function s(e,t){let{basePath:r,i18n:s,trailingSlash:o}=t.nextConfig??{},c={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):o};r&&(0,i.pathHasPrefix)(c.pathname,r)&&(c.pathname=(0,a.removePathPrefix)(c.pathname,r),c.basePath=r);let u=c.pathname;if(c.pathname.startsWith("/_next/data/")&&c.pathname.endsWith(".json")){let e=c.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");c.buildId=e[0],u="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(c.pathname=u)}if(s){let e=t.i18nProvider?t.i18nProvider.analyze(c.pathname):(0,n.normalizeLocalePath)(c.pathname,s.locales);c.locale=e.detectedLocale,c.pathname=e.pathname??c.pathname,!e.detectedLocale&&c.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(u):(0,n.normalizeLocalePath)(u,s.locales)).detectedLocale&&(c.locale=e.detectedLocale)}return c}},955973,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_SUFFIX:function(){return h},APP_DIR_ALIAS:function(){return X},CACHE_ONE_YEAR:function(){return N},DOT_NEXT_ALIAS:function(){return M},ESLINT_DEFAULT_DIRS:function(){return ea},GSP_NO_RETURNED_VALUE:function(){return J},GSSP_COMPONENT_MEMBER_ERROR:function(){return et},GSSP_NO_RETURNED_VALUE:function(){return Z},HTML_CONTENT_TYPE_HEADER:function(){return s},INFINITE_CACHE:function(){return y},INSTRUMENTATION_HOOK_FILENAME:function(){return L},JSON_CONTENT_TYPE_HEADER:function(){return o},MATCHED_PATH_HEADER:function(){return d},MIDDLEWARE_FILENAME:function(){return O},MIDDLEWARE_LOCATION_REGEXP:function(){return C},NEXT_BODY_SUFFIX:function(){return S},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return I},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return R},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return P},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return T},NEXT_CACHE_TAGS_HEADER:function(){return x},NEXT_CACHE_TAG_MAX_ITEMS:function(){return v},NEXT_CACHE_TAG_MAX_LENGTH:function(){return A},NEXT_DATA_SUFFIX:function(){return _},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return u},NEXT_META_SUFFIX:function(){return E},NEXT_QUERY_PARAM_PREFIX:function(){return c},NEXT_RESUME_HEADER:function(){return b},NON_STANDARD_NODE_ENV:function(){return er},PAGES_DIR_ALIAS:function(){return D},PRERENDER_REVALIDATE_HEADER:function(){return l},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return f},PROXY_FILENAME:function(){return j},PROXY_LOCATION_REGEXP:function(){return w},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return $},ROOT_DIR_ALIAS:function(){return k},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return Y},RSC_ACTION_ENCRYPTION_ALIAS:function(){return W},RSC_ACTION_PROXY_ALIAS:function(){return G},RSC_ACTION_VALIDATE_ALIAS:function(){return F},RSC_CACHE_WRAPPER_ALIAS:function(){return B},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return U},RSC_MOD_REF_PROXY_ALIAS:function(){return H},RSC_SEGMENTS_DIR_SUFFIX:function(){return m},RSC_SEGMENT_SUFFIX:function(){return g},RSC_SUFFIX:function(){return p},SERVER_PROPS_EXPORT_ERROR:function(){return Q},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return z},SERVER_PROPS_SSG_CONFLICT:function(){return K},SERVER_RUNTIME:function(){return ei},SSG_FALLBACK_EXPORT_ERROR:function(){return en},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return V},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return q},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return i},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return ee},WEBPACK_LAYERS:function(){return ec},WEBPACK_RESOURCE_QUERIES:function(){return eu},WEB_SOCKET_MAX_RECONNECTIONS:function(){return es}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i="text/plain",s="text/html; charset=utf-8",o="application/json; charset=utf-8",c="nxtP",u="nxtI",d="x-matched-path",l="x-prerender-revalidate",f="x-prerender-revalidate-if-generated",m=".segments",g=".segment.rsc",p=".rsc",h=".action",_=".json",E=".meta",S=".body",x="x-next-cache-tags",R="x-next-revalidated-tags",P="x-next-revalidate-tag-token",b="next-resume",v=128,A=256,T=1024,I="_N_T_",N=31536e3,y=0xfffffffe,O="middleware",C=`(?:src/)?${O}`,j="proxy",w=`(?:src/)?${j}`,L="instrumentation",D="private-next-pages",M="private-dot-next",k="private-next-root-dir",X="private-next-app-dir",H="private-next-rsc-mod-ref-proxy",F="private-next-rsc-action-validate",G="private-next-rsc-server-reference",B="private-next-rsc-cache-wrapper",U="private-next-rsc-track-dynamic-import",W="private-next-rsc-action-encryption",Y="private-next-rsc-action-client-wrapper",$="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",V="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",z="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",K="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",q="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",Q="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",J="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",Z="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",ee="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",et="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",er='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',en="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",ea=["app","pages","components","lib","src"],ei={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},es=12,eo={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},ec={...eo,GROUP:{builtinReact:[eo.reactServerComponents,eo.actionBrowser],serverOnly:[eo.reactServerComponents,eo.actionBrowser,eo.instrument,eo.middleware],neutralTarget:[eo.apiNode,eo.apiEdge],clientOnly:[eo.serverSideRendering,eo.appPagesBrowser],bundled:[eo.reactServerComponents,eo.actionBrowser,eo.serverSideRendering,eo.appPagesBrowser,eo.shared,eo.instrument,eo.middleware],appPages:[eo.reactServerComponents,eo.serverSideRendering,eo.appPagesBrowser,eo.actionBrowser]}},eu={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},445774,370476,575003,982016,105050,801206,587778,9797,e=>{"use strict";var t=e.i(111023);e.i(676525);var r=e.i(452797);function n({className:e,children:n,...a}){return(0,r.jsx)("section",{className:(0,t.cn)("py-16 md:py-28 lg:py-36 overflow-hidden content-visibility-auto",e),...a,children:n})}function a({className:e,children:n,...a}){return(0,r.jsx)("div",{className:(0,t.cn)("container mx-auto px-4 md:px-12 lg:px-16 max-w-7xl",e),...a,children:n})}function i({level:e=2,children:n,className:a,subtitle:i,align:s="left"}){let o=`h${e}`;return(0,r.jsxs)("div",{className:(0,t.cn)("mb-6 md:mb-12 text-primary",{left:"text-left",center:"text-center mx-auto",right:"text-right"}[s],a),children:[i&&(0,r.jsx)("span",{className:"inline-block text-accent font-bold tracking-widest uppercase text-xs md:text-sm mb-3 md:mb-4 animate-fade-in",children:i}),(0,r.jsx)(o,{className:(0,t.cn)({1:"text-2xl md:text-4xl lg:text-5xl font-bold leading-[1.1] tracking-tight",2:"text-xl md:text-3xl lg:text-4xl font-bold leading-[1.2] tracking-tight",3:"text-lg md:text-2xl lg:text-3xl font-bold leading-[1.3] tracking-tight",4:"text-lg md:text-xl lg:text-2xl font-bold leading-[1.4]",5:"text-base md:text-lg font-bold leading-[1.5]",6:"text-base md:text-lg font-semibold leading-[1.6]"}[e]),children:n})]})}function s({className:e,children:n,tag:a="div",...i}){return(0,r.jsx)(a,{className:(0,t.cn)("premium-card overflow-hidden",e),...i,children:n})}function o({className:e,...n}){return(0,r.jsx)("input",{className:(0,t.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg",e),...n})}function c({className:e,...n}){return(0,r.jsx)("textarea",{className:(0,t.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg resize-none",e),...n})}function u({className:e,...n}){return(0,r.jsx)("label",{className:(0,t.cn)("text-[10px] md:text-xs font-extrabold text-primary uppercase tracking-widest",e),...n})}e.s(["Section",()=>n],370476),e.s(["Container",()=>a],575003),e.s(["Heading",()=>i],982016),e.s(["Card",()=>s],105050),e.s(["Input",()=>o],801206),e.s(["Textarea",()=>c],587778),e.s(["Label",()=>u],9797),e.s([],445774)},224038,e=>{"use strict";var t=e.i(452797);e.i(445774);var r=e.i(111023);function n({variant:e,className:n,color:a="#82ed20"}){return"circle"===e?(0,t.jsx)("svg",{className:(0,r.cn)("absolute pointer-events-none",n),"aria-hidden":"true",viewBox:"0 0 800 350",preserveAspectRatio:"none",children:(0,t.jsx)("path",{className:"animate-draw-stroke",pathLength:"1",style:{strokeDasharray:1,strokeDashoffset:1,animation:"draw-stroke 1.8s ease-in-out 0.5s forwards"},transform:"matrix(0.9791300296783447,0,0,0.9791300296783447,400,179)",strokeLinejoin:"miter",fillOpacity:"0",strokeMiterlimit:"4",stroke:a,strokeOpacity:"1",strokeWidth:"20",d:" M253,-161 C253,-161 -284.78900146484375,-201.4600067138672 -376,-21 C-469,163 67.62300109863281,174.2100067138672 256,121 C564,34 250.82899475097656,-141.6929931640625 19.10700035095215,-116.93599700927734"})}):"underline"===e?(0,t.jsx)("svg",{className:(0,r.cn)("absolute pointer-events-none",n),"aria-hidden":"true",viewBox:"-400 -55 730 60",preserveAspectRatio:"none",children:(0,t.jsx)("path",{className:"animate-draw-stroke",pathLength:"1",style:{strokeDasharray:1,strokeDashoffset:1,animation:"draw-stroke 1.8s ease-in-out 0.5s forwards"},d:"m -383.25 -6 c 55.25 -22 130.75 -33.5 293.25 -38 c 54.5 -0.5 195 -2.5 401 15",stroke:a,strokeWidth:"20",fill:"none"})}):null}e.s(["default",()=>n])},309974,e=>{"use strict";var t=e.i(452797),r=e.i(907358),n=e.i(190422),a=e.i(777616);e.i(445774);var i=e.i(575003),s=e.i(676525),o=e.i(982016),c=e.i(224038);function u({error:e,reset:u}){let d=(0,n.useTranslations)("Error");return(0,r.useEffect)(()=>{if(e?.message?.includes("Failed to find Server Action"))return void window.location.reload();let t=(0,a.getAppServices)();return t.errors.captureException(e),t.logger.error("Application error caught by boundary",{message:e?.message||"Unknown error",stack:e?.stack,digest:e?.digest}),document.body.setAttribute("data-force-solid-header","true"),()=>{document.body.removeAttribute("data-force-solid-header")}},[e]),(0,t.jsx)(t.Fragment,{children:(0,t.jsxs)(i.Container,{className:"relative py-32 mt-16 flex flex-col items-center justify-center text-center min-h-[70vh] overflow-hidden",children:[(0,t.jsx)("div",{className:"absolute inset-0 -z-10 opacity-[0.03] pointer-events-none flex items-center justify-center",children:(0,t.jsx)("span",{className:"text-[20rem] font-bold select-none",children:"500"})}),(0,t.jsxs)("div",{className:"relative mb-8",children:[(0,t.jsx)(o.Heading,{level:1,className:"text-6xl md:text-8xl font-bold mb-2 text-saturated",children:"500"}),(0,t.jsx)(c.default,{variant:"underline",className:"w-full h-6 -bottom-2 left-0 text-saturated/40"})]}),(0,t.jsx)(o.Heading,{level:2,className:"text-2xl md:text-3xl font-bold mb-4 text-primary",children:d("title")}),(0,t.jsx)("p",{className:"text-text-secondary mb-10 max-w-md text-lg mx-auto",children:d("description")}),(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[(0,t.jsx)(s.Button,{onClick:()=>u(),variant:"saturated",size:"lg",children:d("tryAgain")}),(0,t.jsx)(s.Button,{href:"/",variant:"outline",size:"lg",children:d("goHome")})]}),(0,t.jsx)("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 w-px h-24 bg-gradient-to-b from-saturated/50 to-transparent"})]})})}e.s(["default",()=>u])},919007,e=>{e.v(t=>Promise.all(["static/chunks/3ffd2a1cf95ceb60.js","static/chunks/32fec23faa4b171a.js","static/chunks/6d182a34db4f4c54.js"].map(t=>e.l(t))).then(()=>t(502456)))}]); -//# debugId=788313af-0917-dbd1-f803-07755a6af68e \ No newline at end of file +//# debugId=579f73b4-5dec-fd98-7ed6-87780c610d12 \ No newline at end of file diff --git a/.next/static/chunks/b263a60573bfd155.js b/.next/static/chunks/b263a60573bfd155.js new file mode 100644 index 000000000..41cbdc145 --- /dev/null +++ b/.next/static/chunks/b263a60573bfd155.js @@ -0,0 +1,7 @@ +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="a121a19a-d484-9be3-c4a2-d777602f9192")}catch(e){}}(); +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,880813,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={BailoutToCSRError:function(){return i},isBailoutToCSRError:function(){return c}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o="BAILOUT_TO_CLIENT_SIDE_RENDERING";class i extends Error{constructor(e){super(`Bail out to client-side rendering: ${e}`),this.reason=e,this.digest=o}}function c(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===o}},496932,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={bindSnapshot:function(){return u},createAsyncLocalStorage:function(){return s},createSnapshot:function(){return d}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class i{disable(){throw o}getStore(){}run(){throw o}exit(){throw o}enterWith(){throw o}static bind(e){return e}}let c="u">typeof globalThis&&globalThis.AsyncLocalStorage;function s(){return c?new c:new i}function u(e){return c?c.bind(e):i.bind(e)}function d(){return c?c.snapshot():function(e,...r){return e(...r)}}},716891,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workUnitAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(496932).createAsyncLocalStorage)()},750436,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={ACTION_HEADER:function(){return i},FLIGHT_HEADERS:function(){return h},NEXT_ACTION_NOT_FOUND_HEADER:function(){return R},NEXT_ACTION_REVALIDATED_HEADER:function(){return D},NEXT_DID_POSTPONE_HEADER:function(){return E},NEXT_HMR_REFRESH_HASH_COOKIE:function(){return l},NEXT_HMR_REFRESH_HEADER:function(){return d},NEXT_HTML_REQUEST_ID_HEADER:function(){return w},NEXT_IS_PRERENDER_HEADER:function(){return b},NEXT_REQUEST_ID_HEADER:function(){return v},NEXT_REWRITTEN_PATH_HEADER:function(){return g},NEXT_REWRITTEN_QUERY_HEADER:function(){return _},NEXT_ROUTER_PREFETCH_HEADER:function(){return s},NEXT_ROUTER_SEGMENT_PREFETCH_HEADER:function(){return u},NEXT_ROUTER_STALE_TIME_HEADER:function(){return y},NEXT_ROUTER_STATE_TREE_HEADER:function(){return c},NEXT_RSC_UNION_QUERY:function(){return m},NEXT_URL:function(){return f},RSC_CONTENT_TYPE_HEADER:function(){return p},RSC_HEADER:function(){return o}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o="rsc",i="next-action",c="next-router-state-tree",s="next-router-prefetch",u="next-router-segment-prefetch",d="next-hmr-refresh",l="__next_hmr_refresh_hash__",f="next-url",p="text/x-component",h=[o,c,s,d,u],m="_rsc",y="x-nextjs-stale-time",E="x-nextjs-postponed",g="x-nextjs-rewritten-path",_="x-nextjs-rewritten-query",b="x-nextjs-prerender",R="x-nextjs-action-not-found",v="x-nextjs-request-id",w="x-nextjs-html-request-id",D="x-action-revalidated";("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},763713,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={getCacheSignal:function(){return y},getDraftModeProviderForCacheScope:function(){return m},getHmrRefreshHash:function(){return f},getPrerenderResumeDataCache:function(){return d},getRenderResumeDataCache:function(){return l},getRuntimeStagePromise:function(){return E},getServerComponentsHmrCache:function(){return h},isHmrRefresh:function(){return p},throwForMissingRequestStore:function(){return s},throwInvariantForMissingStore:function(){return u},workUnitAsyncStorage:function(){return o.workUnitAsyncStorageInstance}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o=e.r(716891),i=e.r(750436),c=e.r(436120);function s(e){throw Object.defineProperty(Error(`\`${e}\` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E251",enumerable:!1,configurable:!0})}function u(){throw Object.defineProperty(new c.InvariantError("Expected workUnitAsyncStorage to have a store."),"__NEXT_ERROR_CODE",{value:"E696",enumerable:!1,configurable:!0})}function d(e){switch(e.type){case"prerender":case"prerender-runtime":case"prerender-ppr":case"prerender-client":return e.prerenderResumeDataCache;case"request":if(e.prerenderResumeDataCache)return e.prerenderResumeDataCache;case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":return null;default:return e}}function l(e){switch(e.type){case"request":case"prerender":case"prerender-runtime":case"prerender-client":if(e.renderResumeDataCache)return e.renderResumeDataCache;case"prerender-ppr":return e.prerenderResumeDataCache??null;case"cache":case"private-cache":case"unstable-cache":case"prerender-legacy":return null;default:return e}}function f(e,r){if(e.dev)switch(r.type){case"cache":case"private-cache":case"prerender":case"prerender-runtime":return r.hmrRefreshHash;case"request":var t;return null==(t=r.cookies.get(i.NEXT_HMR_REFRESH_HASH_COOKIE))?void 0:t.value}}function p(e,r){if(e.dev)switch(r.type){case"cache":case"private-cache":case"request":return r.isHmrRefresh??!1}return!1}function h(e,r){if(e.dev)switch(r.type){case"cache":case"private-cache":case"request":return r.serverComponentsHmrCache}}function m(e,r){if(e.isDraftMode)switch(r.type){case"cache":case"private-cache":case"unstable-cache":case"prerender-runtime":case"request":return r.draftMode}}function y(e){switch(e.type){case"prerender":case"prerender-client":case"prerender-runtime":return e.cacheSignal;case"request":if(e.cacheSignal)return e.cacheSignal;case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":return null;default:return e}}function E(e){switch(e.type){case"prerender-runtime":case"private-cache":return e.runtimeStagePromise;case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"unstable-cache":return null;default:return e}}},731816,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(496932).createAsyncLocalStorage)()},306648,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorage",{enumerable:!0,get:function(){return n.workAsyncStorageInstance}});let n=e.r(731816)},863327,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={isHangingPromiseRejectionError:function(){return o},makeDevtoolsIOAwarePromise:function(){return l},makeHangingPromise:function(){return u}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});function o(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===i}let i="HANGING_PROMISE_REJECTION";class c extends Error{constructor(e,r){super(`During prerendering, ${r} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${r} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${e}".`),this.route=e,this.expression=r,this.digest=i}}let s=new WeakMap;function u(e,r,t){if(e.aborted)return Promise.reject(new c(r,t));{let n=new Promise((n,a)=>{let o=a.bind(null,new c(r,t)),i=s.get(e);if(i)i.push(o);else{let r=[o];s.set(e,r),e.addEventListener("abort",()=>{for(let e=0;e{setTimeout(()=>{r(e)},0)})}},404266,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={DynamicServerError:function(){return i},isDynamicServerError:function(){return c}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o="DYNAMIC_SERVER_USAGE";class i extends Error{constructor(e){super(`Dynamic server usage: ${e}`),this.description=e,this.digest=o}}function c(e){return"object"==typeof e&&null!==e&&"digest"in e&&"string"==typeof e.digest&&e.digest===o}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},579781,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={StaticGenBailoutError:function(){return i},isStaticGenBailoutError:function(){return c}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o="NEXT_STATIC_GEN_BAILOUT";class i extends Error{constructor(...e){super(...e),this.code=o}}function c(e){return"object"==typeof e&&null!==e&&"code"in e&&e.code===o}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),r.exports=t.default)},778967,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={METADATA_BOUNDARY_NAME:function(){return o},OUTLET_BOUNDARY_NAME:function(){return c},ROOT_LAYOUT_BOUNDARY_NAME:function(){return s},VIEWPORT_BOUNDARY_NAME:function(){return i}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let o="__next_metadata_boundary__",i="__next_viewport_boundary__",c="__next_outlet_boundary__",s="__next_root_layout_boundary__"},530207,(e,r,t)=>{"use strict";var n=e.i(653782);Object.defineProperty(t,"__esModule",{value:!0});var a={atLeastOneTask:function(){return s},scheduleImmediate:function(){return c},scheduleOnNextTick:function(){return i},waitAtLeastOneReactRenderTask:function(){return u}};for(var o in a)Object.defineProperty(t,o,{enumerable:!0,get:a[o]});let i=e=>{Promise.resolve().then(()=>{n.default.nextTick(e)})},c=e=>{setImmediate(e)};function s(){return new Promise(e=>c(e))}function u(){return new Promise(e=>setImmediate(e))}},990913,(e,r,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,a,o={Postpone:function(){return T},PreludeState:function(){return J},abortAndThrowOnSynchronousRequestDataAccess:function(){return O},abortOnSynchronousPlatformIOAccess:function(){return S},accessedDynamicData:function(){return C},annotateDynamicAccess:function(){return X},consumeDynamicAccess:function(){return M},createDynamicTrackingState:function(){return g},createDynamicValidationState:function(){return _},createHangingInputAbortSignal:function(){return $},createRenderInBrowserAbortSignal:function(){return U},delayUntilRuntimeStage:function(){return et},formatDynamicAPIAccesses:function(){return H},getFirstDynamicReason:function(){return b},getStaticShellDisallowedDynamicReasons:function(){return er},isDynamicPostpone:function(){return j},isPrerenderInterruptedError:function(){return I},logDisallowedDynamicError:function(){return Z},markCurrentScopeAsDynamic:function(){return R},postponeWithTracking:function(){return A},throwIfDisallowedDynamic:function(){return ee},throwToInterruptStaticGeneration:function(){return v},trackAllowedDynamicAccess:function(){return V},trackDynamicDataInDynamicRender:function(){return w},trackDynamicHoleInRuntimeShell:function(){return K},trackDynamicHoleInStaticShell:function(){return Q},useDynamicRouteParams:function(){return B},useDynamicSearchParams:function(){return L}};for(var i in o)Object.defineProperty(t,i,{enumerable:!0,get:o[i]});let c=(n=e.r(907358))&&n.__esModule?n:{default:n},s=e.r(404266),u=e.r(579781),d=e.r(763713),l=e.r(306648),f=e.r(863327),p=e.r(778967),h=e.r(530207),m=e.r(880813),y=e.r(436120),E="function"==typeof c.default.unstable_postpone;function g(e){return{isDebugDynamicAccesses:e,dynamicAccesses:[],syncDynamicErrorWithStack:null}}function _(){return{hasSuspenseAboveBody:!1,hasDynamicMetadata:!1,dynamicMetadata:null,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[]}}function b(e){var r;return null==(r=e.dynamicAccesses[0])?void 0:r.expression}function R(e,r,t){if(r)switch(r.type){case"cache":case"unstable-cache":case"private-cache":return}if(!e.forceDynamic&&!e.forceStatic){if(e.dynamicShouldError)throw Object.defineProperty(new u.StaticGenBailoutError(`Route ${e.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${t}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(r)switch(r.type){case"prerender-ppr":return A(e.route,t,r.dynamicTracking);case"prerender-legacy":r.revalidate=0;let n=Object.defineProperty(new s.DynamicServerError(`Route ${e.route} couldn't be rendered statically because it used ${t}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E550",enumerable:!1,configurable:!0});throw e.dynamicUsageDescription=t,e.dynamicUsageStack=n.stack,n}}}function v(e,r,t){let n=Object.defineProperty(new s.DynamicServerError(`Route ${r.route} couldn't be rendered statically because it used \`${e}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw t.revalidate=0,r.dynamicUsageDescription=e,r.dynamicUsageStack=n.stack,n}function w(e){switch(e.type){case"cache":case"unstable-cache":case"private-cache":return}}function D(e,r,t){let n=k(`Route ${e} needs to bail out of prerendering at this point because it used ${r}.`);t.controller.abort(n);let a=t.dynamicTracking;a&&a.dynamicAccesses.push({stack:a.isDebugDynamicAccesses?Error().stack:void 0,expression:r})}function S(e,r,t,n){let a=n.dynamicTracking;D(e,r,n),a&&null===a.syncDynamicErrorWithStack&&(a.syncDynamicErrorWithStack=t)}function O(e,r,t,n){if(!1===n.controller.signal.aborted){D(e,r,n);let a=n.dynamicTracking;a&&null===a.syncDynamicErrorWithStack&&(a.syncDynamicErrorWithStack=t)}throw k(`Route ${e} needs to bail out of prerendering at this point because it used ${r}.`)}function T({reason:e,route:r}){let t=d.workUnitAsyncStorage.getStore();A(r,e,t&&"prerender-ppr"===t.type?t.dynamicTracking:null)}function A(e,r,t){(function(){if(!E)throw Object.defineProperty(Error("Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E224",enumerable:!1,configurable:!0})})(),t&&t.dynamicAccesses.push({stack:t.isDebugDynamicAccesses?Error().stack:void 0,expression:r}),c.default.unstable_postpone(x(e,r))}function x(e,r){return`Route ${e} needs to bail out of prerendering at this point because it used ${r}. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`}function j(e){return"object"==typeof e&&null!==e&&"string"==typeof e.message&&P(e.message)}function P(e){return e.includes("needs to bail out of prerendering at this point because it used")&&e.includes("Learn more: https://nextjs.org/docs/messages/ppr-caught-error")}if(!1===P(x("%%%","^^^")))throw Object.defineProperty(Error("Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E296",enumerable:!1,configurable:!0});let N="NEXT_PRERENDER_INTERRUPTED";function k(e){let r=Object.defineProperty(Error(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return r.digest=N,r}function I(e){return"object"==typeof e&&null!==e&&e.digest===N&&"name"in e&&"message"in e&&e instanceof Error}function C(e){return e.length>0}function M(e,r){return e.dynamicAccesses.push(...r.dynamicAccesses),e.dynamicAccesses}function H(e){return e.filter(e=>"string"==typeof e.stack&&e.stack.length>0).map(({expression:e,stack:r})=>(r=r.split("\n").slice(4).filter(e=>!(e.includes("node_modules/next/")||e.includes(" ()")||e.includes(" (node:"))).join("\n"),`Dynamic API Usage Debug - ${e}: +${r}`))}function U(){let e=new AbortController;return e.abort(Object.defineProperty(new m.BailoutToCSRError("Render in Browser"),"__NEXT_ERROR_CODE",{value:"E721",enumerable:!1,configurable:!0})),e.signal}function $(e){switch(e.type){case"prerender":case"prerender-runtime":let r=new AbortController;if(e.cacheSignal)e.cacheSignal.inputReady().then(()=>{r.abort()});else{let t=(0,d.getRuntimeStagePromise)(e);t?t.then(()=>(0,h.scheduleOnNextTick)(()=>r.abort())):(0,h.scheduleOnNextTick)(()=>r.abort())}return r.signal;case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":return}}function X(e,r){let t=r.dynamicTracking;t&&t.dynamicAccesses.push({stack:t.isDebugDynamicAccesses?Error().stack:void 0,expression:e})}function B(e){let r=l.workAsyncStorage.getStore(),t=d.workUnitAsyncStorage.getStore();if(r&&t)switch(t.type){case"prerender-client":case"prerender":{let n=t.fallbackRouteParams;n&&n.size>0&&c.default.use((0,f.makeHangingPromise)(t.renderSignal,r.route,e));break}case"prerender-ppr":{let n=t.fallbackRouteParams;if(n&&n.size>0)return A(r.route,e,t.dynamicTracking);break}case"prerender-runtime":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called during a runtime prerender. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E771",enumerable:!1,configurable:!0});case"cache":case"private-cache":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called inside a cache scope. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0})}}function L(e){let r=l.workAsyncStorage.getStore(),t=d.workUnitAsyncStorage.getStore();if(r)switch(!t&&(0,d.throwForMissingRequestStore)(e),t.type){case"prerender-client":c.default.use((0,f.makeHangingPromise)(t.renderSignal,r.route,e));break;case"prerender-legacy":case"prerender-ppr":if(r.forceStatic)return;throw Object.defineProperty(new m.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called from a Server Component. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E795",enumerable:!1,configurable:!0});case"cache":case"unstable-cache":case"private-cache":throw Object.defineProperty(new y.InvariantError(`\`${e}\` was called inside a cache scope. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0});case"request":return}}let W=/\n\s+at Suspense \(\)/,q=RegExp(`\\n\\s+at Suspense \\(\\)(?:(?!\\n\\s+at (?:body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6) \\(\\))[\\s\\S])*?\\n\\s+at ${p.ROOT_LAYOUT_BOUNDARY_NAME} \\([^\\n]*\\)`),G=RegExp(`\\n\\s+at ${p.METADATA_BOUNDARY_NAME}[\\n\\s]`),F=RegExp(`\\n\\s+at ${p.VIEWPORT_BOUNDARY_NAME}[\\n\\s]`),Y=RegExp(`\\n\\s+at ${p.OUTLET_BOUNDARY_NAME}[\\n\\s]`);function V(e,r,t,n){if(!Y.test(r)){if(G.test(r)){t.hasDynamicMetadata=!0;return}if(F.test(r)){t.hasDynamicViewport=!0;return}if(q.test(r)){t.hasAllowedDynamic=!0,t.hasSuspenseAboveBody=!0;return}else if(W.test(r)){t.hasAllowedDynamic=!0;return}else{if(n.syncDynamicErrorWithStack)return void t.dynamicErrors.push(n.syncDynamicErrorWithStack);let a=z(`Route "${e.route}": Uncached data was accessed outside of . This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`,r);return void t.dynamicErrors.push(a)}}}function K(e,r,t,n){if(!Y.test(r)){if(G.test(r)){t.dynamicMetadata=z(`Route "${e.route}": Uncached data or \`connection()\` was accessed inside \`generateMetadata\`. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`,r);return}if(F.test(r)){let n=z(`Route "${e.route}": Uncached data or \`connection()\` was accessed inside \`generateViewport\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`,r);t.dynamicErrors.push(n);return}if(q.test(r)){t.hasAllowedDynamic=!0,t.hasSuspenseAboveBody=!0;return}else if(W.test(r)){t.hasAllowedDynamic=!0;return}else{if(n.syncDynamicErrorWithStack)return void t.dynamicErrors.push(n.syncDynamicErrorWithStack);let a=z(`Route "${e.route}": Uncached data or \`connection()\` was accessed outside of \`\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`,r);return void t.dynamicErrors.push(a)}}}function Q(e,r,t,n){if(!Y.test(r)){if(G.test(r)){t.dynamicMetadata=z(`Route "${e.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed inside \`generateMetadata\` or you have file-based metadata such as icons that depend on dynamic params segments. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`,r);return}if(F.test(r)){let n=z(`Route "${e.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed inside \`generateViewport\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`,r);t.dynamicErrors.push(n);return}if(q.test(r)){t.hasAllowedDynamic=!0,t.hasSuspenseAboveBody=!0;return}else if(W.test(r)){t.hasAllowedDynamic=!0;return}else{if(n.syncDynamicErrorWithStack)return void t.dynamicErrors.push(n.syncDynamicErrorWithStack);let a=z(`Route "${e.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed outside of \`\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`,r);return void t.dynamicErrors.push(a)}}}function z(e,r){let t=Object.defineProperty(Error(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t.stack=t.name+": "+e+r,t}var J=((a={})[a.Full=0]="Full",a[a.Empty=1]="Empty",a[a.Errored=2]="Errored",a);function Z(e,r){console.error(r),e.dev||(e.hasReadableErrorStacks?console.error(`To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \`next dev\`, then open "${e.route}" in your browser to investigate the error.`):console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following: + - Start the app in development mode by running \`next dev\`, then open "${e.route}" in your browser to investigate the error. + - Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`))}function ee(e,r,t,n){if(n.syncDynamicErrorWithStack)throw Z(e,n.syncDynamicErrorWithStack),new u.StaticGenBailoutError;if(0!==r){if(t.hasSuspenseAboveBody)return;let n=t.dynamicErrors;if(n.length>0){for(let r=0;r0)return n;if(1===r)return[Object.defineProperty(new y.InvariantError(`Route "${e.route}" did not produce a static shell and Next.js was unable to determine a reason.`),"__NEXT_ERROR_CODE",{value:"E936",enumerable:!1,configurable:!0})]}else if(!1===t.hasAllowedDynamic&&0===t.dynamicErrors.length&&t.dynamicMetadata)return[t.dynamicMetadata];return[]}function et(e,r){return e.runtimeStagePromise?e.runtimeStagePromise.then(()=>r):r}}]); + +//# debugId=a121a19a-d484-9be3-c4a2-d777602f9192 \ No newline at end of file diff --git a/.next/static/chunks/b550ef5d0ebc89bc.js b/.next/static/chunks/b550ef5d0ebc89bc.js deleted file mode 100644 index 03016402c..000000000 --- a/.next/static/chunks/b550ef5d0ebc89bc.js +++ /dev/null @@ -1,4 +0,0 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="6cffddae-d022-57ba-560b-879fe5c56538")}catch(e){}}(); -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,111023,e=>{"use strict";let r,o,t,l,s;var a,n=e.i(7284);let i=(e=new Map,r=null,o)=>({nextPart:e,validators:r,classGroupId:o}),d=[],c=(e,r,o)=>{if(0==e.length-r)return o.classGroupId;let t=e[r],l=o.nextPart.get(t);if(l){let o=c(e,r+1,l);if(o)return o}let s=o.validators;if(null===s)return;let a=0===r?e.join("-"):e.slice(r).join("-"),n=s.length;for(let e=0;e{let o=i();for(let t in e)p(e[t],o,t,r);return o},p=(e,r,o,t)=>{let l=e.length;for(let s=0;s{"string"==typeof e?u(e,r,o):"function"==typeof e?f(e,r,o,t):g(e,r,o,t)},u=(e,r,o)=>{(""===e?r:h(r,e)).classGroupId=o},f=(e,r,o,t)=>{k(e)?p(e(t),r,o,t):(null===r.validators&&(r.validators=[]),r.validators.push({classGroupId:o,validator:e}))},g=(e,r,o,t)=>{let l=Object.entries(e),s=l.length;for(let e=0;e{let o=e,t=r.split("-"),l=t.length;for(let e=0;e"isThemeGetter"in e&&!0===e.isThemeGetter,x=[],w=(e,r,o,t,l)=>({modifiers:e,hasImportantModifier:r,baseClassName:o,maybePostfixModifierPosition:t,isExternal:l}),v=/\s+/,y=e=>{let r;if("string"==typeof e)return e;let o="";for(let t=0;t{let r=r=>r[e]||z;return r.isThemeGetter=!0,r},G=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,C=/^\((?:(\w[\w-]*):)?(.+)\)$/i,O=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,N=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,I=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,T=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,$=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,M=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,W=e=>O.test(e),P=e=>!!e&&!Number.isNaN(Number(e)),S=e=>!!e&&Number.isInteger(Number(e)),A=e=>e.endsWith("%")&&P(e.slice(0,-1)),q=e=>N.test(e),B=()=>!0,K=e=>I.test(e)&&!T.test(e),R=()=>!1,U=e=>$.test(e),_=e=>M.test(e),E=e=>!F(e)&&!Z(e),D=e=>en(e,em,R),F=e=>G.test(e),H=e=>en(e,ep,K),J=e=>en(e,eb,P),L=e=>en(e,ef,B),Q=e=>en(e,eu,R),V=e=>en(e,ed,R),X=e=>en(e,ec,_),Y=e=>en(e,eg,U),Z=e=>C.test(e),ee=e=>ei(e,ep),er=e=>ei(e,eu),eo=e=>ei(e,ed),et=e=>ei(e,em),el=e=>ei(e,ec),es=e=>ei(e,eg,!0),ea=e=>ei(e,ef,!0),en=(e,r,o)=>{let t=G.exec(e);return!!t&&(t[1]?r(t[1]):o(t[2]))},ei=(e,r,o=!1)=>{let t=C.exec(e);return!!t&&(t[1]?r(t[1]):o)},ed=e=>"position"===e||"percentage"===e,ec=e=>"image"===e||"url"===e,em=e=>"length"===e||"size"===e||"bg-size"===e,ep=e=>"length"===e,eb=e=>"number"===e,eu=e=>"family-name"===e,ef=e=>"number"===e||"weight"===e,eg=e=>"shadow"===e,eh=(a=()=>{let e=j("color"),r=j("font"),o=j("text"),t=j("font-weight"),l=j("tracking"),s=j("leading"),a=j("breakpoint"),n=j("container"),i=j("spacing"),d=j("radius"),c=j("shadow"),m=j("inset-shadow"),p=j("text-shadow"),b=j("drop-shadow"),u=j("blur"),f=j("perspective"),g=j("aspect"),h=j("ease"),k=j("animate"),x=()=>["auto","avoid","all","avoid-page","page","left","right","column"],w=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],v=()=>[...w(),Z,F],y=()=>["auto","hidden","clip","visible","scroll"],z=()=>["auto","contain","none"],G=()=>[Z,F,i],C=()=>[W,"full","auto",...G()],O=()=>[S,"none","subgrid",Z,F],N=()=>["auto",{span:["full",S,Z,F]},S,Z,F],I=()=>[S,"auto",Z,F],T=()=>["auto","min","max","fr",Z,F],$=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],M=()=>["start","end","center","stretch","center-safe","end-safe"],K=()=>["auto",...G()],R=()=>[W,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...G()],U=()=>[W,"screen","full","dvw","lvw","svw","min","max","fit",...G()],_=()=>[W,"screen","full","lh","dvh","lvh","svh","min","max","fit",...G()],en=()=>[e,Z,F],ei=()=>[...w(),eo,V,{position:[Z,F]}],ed=()=>["no-repeat",{repeat:["","x","y","space","round"]}],ec=()=>["auto","cover","contain",et,D,{size:[Z,F]}],em=()=>[A,ee,H],ep=()=>["","none","full",d,Z,F],eb=()=>["",P,ee,H],eu=()=>["solid","dashed","dotted","double"],ef=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],eg=()=>[P,A,eo,V],eh=()=>["","none",u,Z,F],ek=()=>["none",P,Z,F],ex=()=>["none",P,Z,F],ew=()=>[P,Z,F],ev=()=>[W,"full",...G()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[q],breakpoint:[q],color:[B],container:[q],"drop-shadow":[q],ease:["in","out","in-out"],font:[E],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[q],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[q],shadow:[q],spacing:["px",P],text:[q],"text-shadow":[q],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",W,F,Z,g]}],container:["container"],columns:[{columns:[P,F,Z,n]}],"break-after":[{"break-after":x()}],"break-before":[{"break-before":x()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:v()}],overflow:[{overflow:y()}],"overflow-x":[{"overflow-x":y()}],"overflow-y":[{"overflow-y":y()}],overscroll:[{overscroll:z()}],"overscroll-x":[{"overscroll-x":z()}],"overscroll-y":[{"overscroll-y":z()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:C()}],"inset-x":[{"inset-x":C()}],"inset-y":[{"inset-y":C()}],start:[{"inset-s":C(),start:C()}],end:[{"inset-e":C(),end:C()}],"inset-bs":[{"inset-bs":C()}],"inset-be":[{"inset-be":C()}],top:[{top:C()}],right:[{right:C()}],bottom:[{bottom:C()}],left:[{left:C()}],visibility:["visible","invisible","collapse"],z:[{z:[S,"auto",Z,F]}],basis:[{basis:[W,"full","auto",n,...G()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[P,W,"auto","initial","none",F]}],grow:[{grow:["",P,Z,F]}],shrink:[{shrink:["",P,Z,F]}],order:[{order:[S,"first","last","none",Z,F]}],"grid-cols":[{"grid-cols":O()}],"col-start-end":[{col:N()}],"col-start":[{"col-start":I()}],"col-end":[{"col-end":I()}],"grid-rows":[{"grid-rows":O()}],"row-start-end":[{row:N()}],"row-start":[{"row-start":I()}],"row-end":[{"row-end":I()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":T()}],"auto-rows":[{"auto-rows":T()}],gap:[{gap:G()}],"gap-x":[{"gap-x":G()}],"gap-y":[{"gap-y":G()}],"justify-content":[{justify:[...$(),"normal"]}],"justify-items":[{"justify-items":[...M(),"normal"]}],"justify-self":[{"justify-self":["auto",...M()]}],"align-content":[{content:["normal",...$()]}],"align-items":[{items:[...M(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...M(),{baseline:["","last"]}]}],"place-content":[{"place-content":$()}],"place-items":[{"place-items":[...M(),"baseline"]}],"place-self":[{"place-self":["auto",...M()]}],p:[{p:G()}],px:[{px:G()}],py:[{py:G()}],ps:[{ps:G()}],pe:[{pe:G()}],pbs:[{pbs:G()}],pbe:[{pbe:G()}],pt:[{pt:G()}],pr:[{pr:G()}],pb:[{pb:G()}],pl:[{pl:G()}],m:[{m:K()}],mx:[{mx:K()}],my:[{my:K()}],ms:[{ms:K()}],me:[{me:K()}],mbs:[{mbs:K()}],mbe:[{mbe:K()}],mt:[{mt:K()}],mr:[{mr:K()}],mb:[{mb:K()}],ml:[{ml:K()}],"space-x":[{"space-x":G()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":G()}],"space-y-reverse":["space-y-reverse"],size:[{size:R()}],"inline-size":[{inline:["auto",...U()]}],"min-inline-size":[{"min-inline":["auto",...U()]}],"max-inline-size":[{"max-inline":["none",...U()]}],"block-size":[{block:["auto",..._()]}],"min-block-size":[{"min-block":["auto",..._()]}],"max-block-size":[{"max-block":["none",..._()]}],w:[{w:[n,"screen",...R()]}],"min-w":[{"min-w":[n,"screen","none",...R()]}],"max-w":[{"max-w":[n,"screen","none","prose",{screen:[a]},...R()]}],h:[{h:["screen","lh",...R()]}],"min-h":[{"min-h":["screen","lh","none",...R()]}],"max-h":[{"max-h":["screen","lh",...R()]}],"font-size":[{text:["base",o,ee,H]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[t,ea,L]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",A,F]}],"font-family":[{font:[er,Q,r]}],"font-features":[{"font-features":[F]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[l,Z,F]}],"line-clamp":[{"line-clamp":[P,"none",Z,J]}],leading:[{leading:[s,...G()]}],"list-image":[{"list-image":["none",Z,F]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",Z,F]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:en()}],"text-color":[{text:en()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...eu(),"wavy"]}],"text-decoration-thickness":[{decoration:[P,"from-font","auto",Z,H]}],"text-decoration-color":[{decoration:en()}],"underline-offset":[{"underline-offset":[P,"auto",Z,F]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:G()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Z,F]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Z,F]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:ei()}],"bg-repeat":[{bg:ed()}],"bg-size":[{bg:ec()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},S,Z,F],radial:["",Z,F],conic:[S,Z,F]},el,X]}],"bg-color":[{bg:en()}],"gradient-from-pos":[{from:em()}],"gradient-via-pos":[{via:em()}],"gradient-to-pos":[{to:em()}],"gradient-from":[{from:en()}],"gradient-via":[{via:en()}],"gradient-to":[{to:en()}],rounded:[{rounded:ep()}],"rounded-s":[{"rounded-s":ep()}],"rounded-e":[{"rounded-e":ep()}],"rounded-t":[{"rounded-t":ep()}],"rounded-r":[{"rounded-r":ep()}],"rounded-b":[{"rounded-b":ep()}],"rounded-l":[{"rounded-l":ep()}],"rounded-ss":[{"rounded-ss":ep()}],"rounded-se":[{"rounded-se":ep()}],"rounded-ee":[{"rounded-ee":ep()}],"rounded-es":[{"rounded-es":ep()}],"rounded-tl":[{"rounded-tl":ep()}],"rounded-tr":[{"rounded-tr":ep()}],"rounded-br":[{"rounded-br":ep()}],"rounded-bl":[{"rounded-bl":ep()}],"border-w":[{border:eb()}],"border-w-x":[{"border-x":eb()}],"border-w-y":[{"border-y":eb()}],"border-w-s":[{"border-s":eb()}],"border-w-e":[{"border-e":eb()}],"border-w-bs":[{"border-bs":eb()}],"border-w-be":[{"border-be":eb()}],"border-w-t":[{"border-t":eb()}],"border-w-r":[{"border-r":eb()}],"border-w-b":[{"border-b":eb()}],"border-w-l":[{"border-l":eb()}],"divide-x":[{"divide-x":eb()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":eb()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...eu(),"hidden","none"]}],"divide-style":[{divide:[...eu(),"hidden","none"]}],"border-color":[{border:en()}],"border-color-x":[{"border-x":en()}],"border-color-y":[{"border-y":en()}],"border-color-s":[{"border-s":en()}],"border-color-e":[{"border-e":en()}],"border-color-bs":[{"border-bs":en()}],"border-color-be":[{"border-be":en()}],"border-color-t":[{"border-t":en()}],"border-color-r":[{"border-r":en()}],"border-color-b":[{"border-b":en()}],"border-color-l":[{"border-l":en()}],"divide-color":[{divide:en()}],"outline-style":[{outline:[...eu(),"none","hidden"]}],"outline-offset":[{"outline-offset":[P,Z,F]}],"outline-w":[{outline:["",P,ee,H]}],"outline-color":[{outline:en()}],shadow:[{shadow:["","none",c,es,Y]}],"shadow-color":[{shadow:en()}],"inset-shadow":[{"inset-shadow":["none",m,es,Y]}],"inset-shadow-color":[{"inset-shadow":en()}],"ring-w":[{ring:eb()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:en()}],"ring-offset-w":[{"ring-offset":[P,H]}],"ring-offset-color":[{"ring-offset":en()}],"inset-ring-w":[{"inset-ring":eb()}],"inset-ring-color":[{"inset-ring":en()}],"text-shadow":[{"text-shadow":["none",p,es,Y]}],"text-shadow-color":[{"text-shadow":en()}],opacity:[{opacity:[P,Z,F]}],"mix-blend":[{"mix-blend":[...ef(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ef()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[P]}],"mask-image-linear-from-pos":[{"mask-linear-from":eg()}],"mask-image-linear-to-pos":[{"mask-linear-to":eg()}],"mask-image-linear-from-color":[{"mask-linear-from":en()}],"mask-image-linear-to-color":[{"mask-linear-to":en()}],"mask-image-t-from-pos":[{"mask-t-from":eg()}],"mask-image-t-to-pos":[{"mask-t-to":eg()}],"mask-image-t-from-color":[{"mask-t-from":en()}],"mask-image-t-to-color":[{"mask-t-to":en()}],"mask-image-r-from-pos":[{"mask-r-from":eg()}],"mask-image-r-to-pos":[{"mask-r-to":eg()}],"mask-image-r-from-color":[{"mask-r-from":en()}],"mask-image-r-to-color":[{"mask-r-to":en()}],"mask-image-b-from-pos":[{"mask-b-from":eg()}],"mask-image-b-to-pos":[{"mask-b-to":eg()}],"mask-image-b-from-color":[{"mask-b-from":en()}],"mask-image-b-to-color":[{"mask-b-to":en()}],"mask-image-l-from-pos":[{"mask-l-from":eg()}],"mask-image-l-to-pos":[{"mask-l-to":eg()}],"mask-image-l-from-color":[{"mask-l-from":en()}],"mask-image-l-to-color":[{"mask-l-to":en()}],"mask-image-x-from-pos":[{"mask-x-from":eg()}],"mask-image-x-to-pos":[{"mask-x-to":eg()}],"mask-image-x-from-color":[{"mask-x-from":en()}],"mask-image-x-to-color":[{"mask-x-to":en()}],"mask-image-y-from-pos":[{"mask-y-from":eg()}],"mask-image-y-to-pos":[{"mask-y-to":eg()}],"mask-image-y-from-color":[{"mask-y-from":en()}],"mask-image-y-to-color":[{"mask-y-to":en()}],"mask-image-radial":[{"mask-radial":[Z,F]}],"mask-image-radial-from-pos":[{"mask-radial-from":eg()}],"mask-image-radial-to-pos":[{"mask-radial-to":eg()}],"mask-image-radial-from-color":[{"mask-radial-from":en()}],"mask-image-radial-to-color":[{"mask-radial-to":en()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":w()}],"mask-image-conic-pos":[{"mask-conic":[P]}],"mask-image-conic-from-pos":[{"mask-conic-from":eg()}],"mask-image-conic-to-pos":[{"mask-conic-to":eg()}],"mask-image-conic-from-color":[{"mask-conic-from":en()}],"mask-image-conic-to-color":[{"mask-conic-to":en()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:ei()}],"mask-repeat":[{mask:ed()}],"mask-size":[{mask:ec()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",Z,F]}],filter:[{filter:["","none",Z,F]}],blur:[{blur:eh()}],brightness:[{brightness:[P,Z,F]}],contrast:[{contrast:[P,Z,F]}],"drop-shadow":[{"drop-shadow":["","none",b,es,Y]}],"drop-shadow-color":[{"drop-shadow":en()}],grayscale:[{grayscale:["",P,Z,F]}],"hue-rotate":[{"hue-rotate":[P,Z,F]}],invert:[{invert:["",P,Z,F]}],saturate:[{saturate:[P,Z,F]}],sepia:[{sepia:["",P,Z,F]}],"backdrop-filter":[{"backdrop-filter":["","none",Z,F]}],"backdrop-blur":[{"backdrop-blur":eh()}],"backdrop-brightness":[{"backdrop-brightness":[P,Z,F]}],"backdrop-contrast":[{"backdrop-contrast":[P,Z,F]}],"backdrop-grayscale":[{"backdrop-grayscale":["",P,Z,F]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[P,Z,F]}],"backdrop-invert":[{"backdrop-invert":["",P,Z,F]}],"backdrop-opacity":[{"backdrop-opacity":[P,Z,F]}],"backdrop-saturate":[{"backdrop-saturate":[P,Z,F]}],"backdrop-sepia":[{"backdrop-sepia":["",P,Z,F]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":G()}],"border-spacing-x":[{"border-spacing-x":G()}],"border-spacing-y":[{"border-spacing-y":G()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",Z,F]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[P,"initial",Z,F]}],ease:[{ease:["linear","initial",h,Z,F]}],delay:[{delay:[P,Z,F]}],animate:[{animate:["none",k,Z,F]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[f,Z,F]}],"perspective-origin":[{"perspective-origin":v()}],rotate:[{rotate:ek()}],"rotate-x":[{"rotate-x":ek()}],"rotate-y":[{"rotate-y":ek()}],"rotate-z":[{"rotate-z":ek()}],scale:[{scale:ex()}],"scale-x":[{"scale-x":ex()}],"scale-y":[{"scale-y":ex()}],"scale-z":[{"scale-z":ex()}],"scale-3d":["scale-3d"],skew:[{skew:ew()}],"skew-x":[{"skew-x":ew()}],"skew-y":[{"skew-y":ew()}],transform:[{transform:[Z,F,"","none","gpu","cpu"]}],"transform-origin":[{origin:v()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:ev()}],"translate-x":[{"translate-x":ev()}],"translate-y":[{"translate-y":ev()}],"translate-z":[{"translate-z":ev()}],"translate-none":["translate-none"],accent:[{accent:en()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:en()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Z,F]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":G()}],"scroll-mx":[{"scroll-mx":G()}],"scroll-my":[{"scroll-my":G()}],"scroll-ms":[{"scroll-ms":G()}],"scroll-me":[{"scroll-me":G()}],"scroll-mbs":[{"scroll-mbs":G()}],"scroll-mbe":[{"scroll-mbe":G()}],"scroll-mt":[{"scroll-mt":G()}],"scroll-mr":[{"scroll-mr":G()}],"scroll-mb":[{"scroll-mb":G()}],"scroll-ml":[{"scroll-ml":G()}],"scroll-p":[{"scroll-p":G()}],"scroll-px":[{"scroll-px":G()}],"scroll-py":[{"scroll-py":G()}],"scroll-ps":[{"scroll-ps":G()}],"scroll-pe":[{"scroll-pe":G()}],"scroll-pbs":[{"scroll-pbs":G()}],"scroll-pbe":[{"scroll-pbe":G()}],"scroll-pt":[{"scroll-pt":G()}],"scroll-pr":[{"scroll-pr":G()}],"scroll-pb":[{"scroll-pb":G()}],"scroll-pl":[{"scroll-pl":G()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Z,F]}],fill:[{fill:["none",...en()]}],"stroke-w":[{stroke:[P,ee,H,J]}],stroke:[{stroke:["none",...en()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},s=e=>{let l=o(e);if(l)return l;let s=((e,r)=>{let{parseClassName:o,getClassGroupId:t,getConflictingClassGroupIds:l,sortModifiers:s}=r,a=[],n=e.trim().split(v),i="";for(let e=n.length-1;e>=0;e-=1){let r=n[e],{isExternal:d,modifiers:c,hasImportantModifier:m,baseClassName:p,maybePostfixModifierPosition:b}=o(r);if(d){i=r+(i.length>0?" "+i:i);continue}let u=!!b,f=t(u?p.substring(0,b):p);if(!f){if(!u||!(f=t(p))){i=r+(i.length>0?" "+i:i);continue}u=!1}let g=0===c.length?"":1===c.length?c[0]:s(c).join(":"),h=m?g+"!":g,k=h+f;if(a.indexOf(k)>-1)continue;a.push(k);let x=l(f,u);for(let e=0;e0?" "+i:i)}return i})(e,r);return t(e,s),s},l=e=>{var n;let i;return o=(r={cache:(e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let r=0,o=Object.create(null),t=Object.create(null),l=(l,s)=>{o[l]=s,++r>e&&(r=0,t=o,o=Object.create(null))};return{get(e){let r=o[e];return void 0!==r?r:void 0!==(r=t[e])?(l(e,r),r):void 0},set(e,r){e in o?o[e]=r:l(e,r)}}})((n=[].reduce((e,r)=>r(e),a())).cacheSize),parseClassName:(e=>{let{prefix:r,experimentalParseClassName:o}=e,t=e=>{let r,o=[],t=0,l=0,s=0,a=e.length;for(let n=0;ns?r-s:void 0)};if(r){let e=r+":",o=t;t=r=>r.startsWith(e)?o(r.slice(e.length)):w(x,!1,r,void 0,!0)}if(o){let e=t;t=r=>o({className:r,parseClassName:e})}return t})(n),sortModifiers:(i=new Map,n.orderSensitiveModifiers.forEach((e,r)=>{i.set(e,1e6+r)}),e=>{let r=[],o=[];for(let t=0;t0&&(o.sort(),r.push(...o),o=[]),r.push(l)):o.push(l)}return o.length>0&&(o.sort(),r.push(...o)),r}),...(e=>{let r=(e=>{let{theme:r,classGroups:o}=e;return m(o,r)})(e),{conflictingClassGroups:o,conflictingClassGroupModifiers:t}=e;return{getClassGroupId:e=>{if(e.startsWith("[")&&e.endsWith("]")){var o;let r,t,l;return -1===(o=e).slice(1,-1).indexOf(":")?void 0:(t=(r=o.slice(1,-1)).indexOf(":"),(l=r.slice(0,t))?"arbitrary.."+l:void 0)}let t=e.split("-"),l=+(""===t[0]&&t.length>1);return c(t,l,r)},getConflictingClassGroupIds:(e,r)=>{if(r){let r=t[e],l=o[e];if(r){if(l){let e=Array(l.length+r.length);for(let r=0;rl(((...e)=>{let r,o,t=0,l="";for(;tek],111023)}]); - -//# debugId=6cffddae-d022-57ba-560b-879fe5c56538 \ No newline at end of file diff --git a/.next/static/chunks/b62c08cc490fef16.js b/.next/static/chunks/b62c08cc490fef16.js deleted file mode 100644 index 953e60767..000000000 --- a/.next/static/chunks/b62c08cc490fef16.js +++ /dev/null @@ -1,7 +0,0 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="38db8857-24c8-3a96-bdbb-5981b7d334d0")}catch(e){}}(); -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,334164,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RedirectStatusCode",{enumerable:!0,get:function(){return a}});var n,a=((n={})[n.SeeOther=303]="SeeOther",n[n.TemporaryRedirect=307]="TemporaryRedirect",n[n.PermanentRedirect=308]="PermanentRedirect",n);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},45678,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a={REDIRECT_ERROR_CODE:function(){return c},RedirectType:function(){return s},isRedirectError:function(){return u}};for(var o in a)Object.defineProperty(r,o,{enumerable:!0,get:a[o]});let i=e.r(334164),c="NEXT_REDIRECT";var s=((n={}).push="push",n.replace="replace",n);function u(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let t=e.digest.split(";"),[r,n]=t,a=t.slice(2,-2).join(";"),o=Number(t.at(-2));return r===c&&("replace"===n||"push"===n)&&"string"==typeof a&&!isNaN(o)&&o in i.RedirectStatusCode}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},992112,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={UnrecognizedActionError:function(){return o},unstable_isUnrecognizedActionError:function(){return i}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});class o extends Error{constructor(...e){super(...e),this.name="UnrecognizedActionError"}}function i(e){return!!(e&&"object"==typeof e&&e instanceof o)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},520716,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"actionAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(496932).createAsyncLocalStorage)()},642395,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"actionAsyncStorage",{enumerable:!0,get:function(){return n.actionAsyncStorageInstance}});let n=e.r(520716)},430485,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getRedirectError:function(){return s},getRedirectStatusCodeFromError:function(){return p},getRedirectTypeFromError:function(){return f},getURLFromRedirectError:function(){return l},permanentRedirect:function(){return d},redirect:function(){return u}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(334164),i=e.r(45678),c="u"{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={AppRouterContext:function(){return i},GlobalLayoutRouterContext:function(){return s},LayoutRouterContext:function(){return c},MissingSlotContext:function(){return d},TemplateContext:function(){return u}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(481258)._(e.r(907358)),i=o.default.createContext(null),c=o.default.createContext(null),s=o.default.createContext(null),u=o.default.createContext(null),d=o.default.createContext(new Set)},481258,(e,t,r)=>{"use strict";r._=function(e){return e&&e.__esModule?e:{default:e}}},744066,(e,t,r)=>{"use strict";function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(n=function(e){return e?r:t})(e)}r._=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=n(t);if(r&&r.has(e))return r.get(e);var a={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var c=o?Object.getOwnPropertyDescriptor(e,i):null;c&&(c.get||c.set)?Object.defineProperty(a,i,c):a[i]=e[i]}return a.default=e,r&&r.set(e,a),a}},198151,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DEFAULT_SEGMENT_KEY:function(){return l},NOT_FOUND_SEGMENT_KEY:function(){return f},PAGE_SEGMENT_KEY:function(){return d},addSearchParamsIfPageSegment:function(){return s},computeSelectedLayoutSegment:function(){return u},getSegmentValue:function(){return o},getSelectedLayoutSegmentPath:function(){return function e(t,r,n=!0,a=[]){let i;if(n)i=t[1][r];else{let e=t[1];i=e.children??Object.values(e)[0]}if(!i)return a;let c=o(i[0]);return!c||c.startsWith(d)?a:(a.push(c),e(i,r,!1,a))}},isGroupSegment:function(){return i},isParallelRouteSegment:function(){return c}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});function o(e){return Array.isArray(e)?e[1]:e}function i(e){return"("===e[0]&&e.endsWith(")")}function c(e){return e.startsWith("@")&&"@children"!==e}function s(e,t){if(e.includes(d)){let e=JSON.stringify(t);return"{}"!==e?d+"?"+e:d}return e}function u(e,t){if(!e||0===e.length)return null;let r="children"===t?e[0]:e[e.length-1];return r===l?null:r}let d="__PAGE__",l="__DEFAULT__",f="/_not-found"},496932,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={bindSnapshot:function(){return u},createAsyncLocalStorage:function(){return s},createSnapshot:function(){return d}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class i{disable(){throw o}getStore(){}run(){throw o}exit(){throw o}enterWith(){throw o}static bind(e){return e}}let c="u">typeof globalThis&&globalThis.AsyncLocalStorage;function s(){return c?new c:new i}function u(e){return c?c.bind(e):i.bind(e)}function d(){return c?c.snapshot():function(e,...t){return e(...t)}}},750436,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_HEADER:function(){return i},FLIGHT_HEADERS:function(){return h},NEXT_ACTION_NOT_FOUND_HEADER:function(){return R},NEXT_ACTION_REVALIDATED_HEADER:function(){return S},NEXT_DID_POSTPONE_HEADER:function(){return E},NEXT_HMR_REFRESH_HASH_COOKIE:function(){return l},NEXT_HMR_REFRESH_HEADER:function(){return d},NEXT_HTML_REQUEST_ID_HEADER:function(){return O},NEXT_IS_PRERENDER_HEADER:function(){return b},NEXT_REQUEST_ID_HEADER:function(){return v},NEXT_REWRITTEN_PATH_HEADER:function(){return g},NEXT_REWRITTEN_QUERY_HEADER:function(){return _},NEXT_ROUTER_PREFETCH_HEADER:function(){return s},NEXT_ROUTER_SEGMENT_PREFETCH_HEADER:function(){return u},NEXT_ROUTER_STALE_TIME_HEADER:function(){return m},NEXT_ROUTER_STATE_TREE_HEADER:function(){return c},NEXT_RSC_UNION_QUERY:function(){return y},NEXT_URL:function(){return f},RSC_CONTENT_TYPE_HEADER:function(){return p},RSC_HEADER:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o="rsc",i="next-action",c="next-router-state-tree",s="next-router-prefetch",u="next-router-segment-prefetch",d="next-hmr-refresh",l="__next_hmr_refresh_hash__",f="next-url",p="text/x-component",h=[o,c,s,d,u],y="_rsc",m="x-nextjs-stale-time",E="x-nextjs-postponed",g="x-nextjs-rewritten-path",_="x-nextjs-rewritten-query",b="x-nextjs-prerender",R="x-nextjs-action-not-found",v="x-nextjs-request-id",O="x-nextjs-html-request-id",S="x-action-revalidated";("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},880813,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={BailoutToCSRError:function(){return i},isBailoutToCSRError:function(){return c}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o="BAILOUT_TO_CLIENT_SIDE_RENDERING";class i extends Error{constructor(e){super(`Bail out to client-side rendering: ${e}`),this.reason=e,this.digest=o}}function c(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===o}},716891,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workUnitAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(496932).createAsyncLocalStorage)()},763713,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getCacheSignal:function(){return m},getDraftModeProviderForCacheScope:function(){return y},getHmrRefreshHash:function(){return f},getPrerenderResumeDataCache:function(){return d},getRenderResumeDataCache:function(){return l},getRuntimeStagePromise:function(){return E},getServerComponentsHmrCache:function(){return h},isHmrRefresh:function(){return p},throwForMissingRequestStore:function(){return s},throwInvariantForMissingStore:function(){return u},workUnitAsyncStorage:function(){return o.workUnitAsyncStorageInstance}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o=e.r(716891),i=e.r(750436),c=e.r(436120);function s(e){throw Object.defineProperty(Error(`\`${e}\` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E251",enumerable:!1,configurable:!0})}function u(){throw Object.defineProperty(new c.InvariantError("Expected workUnitAsyncStorage to have a store."),"__NEXT_ERROR_CODE",{value:"E696",enumerable:!1,configurable:!0})}function d(e){switch(e.type){case"prerender":case"prerender-runtime":case"prerender-ppr":case"prerender-client":return e.prerenderResumeDataCache;case"request":if(e.prerenderResumeDataCache)return e.prerenderResumeDataCache;case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":return null;default:return e}}function l(e){switch(e.type){case"request":case"prerender":case"prerender-runtime":case"prerender-client":if(e.renderResumeDataCache)return e.renderResumeDataCache;case"prerender-ppr":return e.prerenderResumeDataCache??null;case"cache":case"private-cache":case"unstable-cache":case"prerender-legacy":return null;default:return e}}function f(e,t){if(e.dev)switch(t.type){case"cache":case"private-cache":case"prerender":case"prerender-runtime":return t.hmrRefreshHash;case"request":var r;return null==(r=t.cookies.get(i.NEXT_HMR_REFRESH_HASH_COOKIE))?void 0:r.value}}function p(e,t){if(e.dev)switch(t.type){case"cache":case"private-cache":case"request":return t.isHmrRefresh??!1}return!1}function h(e,t){if(e.dev)switch(t.type){case"cache":case"private-cache":case"request":return t.serverComponentsHmrCache}}function y(e,t){if(e.isDraftMode)switch(t.type){case"cache":case"private-cache":case"unstable-cache":case"prerender-runtime":case"request":return t.draftMode}}function m(e){switch(e.type){case"prerender":case"prerender-client":case"prerender-runtime":return e.cacheSignal;case"request":if(e.cacheSignal)return e.cacheSignal;case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":return null;default:return e}}function E(e){switch(e.type){case"prerender-runtime":case"private-cache":return e.runtimeStagePromise;case"prerender":case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"unstable-cache":return null;default:return e}}},731816,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(496932).createAsyncLocalStorage)()},306648,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"workAsyncStorage",{enumerable:!0,get:function(){return n.workAsyncStorageInstance}});let n=e.r(731816)},863327,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isHangingPromiseRejectionError:function(){return o},makeDevtoolsIOAwarePromise:function(){return l},makeHangingPromise:function(){return u}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});function o(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===i}let i="HANGING_PROMISE_REJECTION";class c extends Error{constructor(e,t){super(`During prerendering, ${t} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${t} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${e}".`),this.route=e,this.expression=t,this.digest=i}}let s=new WeakMap;function u(e,t,r){if(e.aborted)return Promise.reject(new c(t,r));{let n=new Promise((n,a)=>{let o=a.bind(null,new c(t,r)),i=s.get(e);if(i)i.push(o);else{let t=[o];s.set(e,t),e.addEventListener("abort",()=>{for(let e=0;e{setTimeout(()=>{t(e)},0)})}},404266,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DynamicServerError:function(){return i},isDynamicServerError:function(){return c}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o="DYNAMIC_SERVER_USAGE";class i extends Error{constructor(e){super(`Dynamic server usage: ${e}`),this.description=e,this.digest=o}}function c(e){return"object"==typeof e&&null!==e&&"digest"in e&&"string"==typeof e.digest&&e.digest===o}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},579781,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={StaticGenBailoutError:function(){return i},isStaticGenBailoutError:function(){return c}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o="NEXT_STATIC_GEN_BAILOUT";class i extends Error{constructor(...e){super(...e),this.code=o}}function c(e){return"object"==typeof e&&null!==e&&"code"in e&&e.code===o}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},778967,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={METADATA_BOUNDARY_NAME:function(){return o},OUTLET_BOUNDARY_NAME:function(){return c},ROOT_LAYOUT_BOUNDARY_NAME:function(){return s},VIEWPORT_BOUNDARY_NAME:function(){return i}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let o="__next_metadata_boundary__",i="__next_viewport_boundary__",c="__next_outlet_boundary__",s="__next_root_layout_boundary__"},530207,(e,t,r)=>{"use strict";var n=e.i(653782);Object.defineProperty(r,"__esModule",{value:!0});var a={atLeastOneTask:function(){return s},scheduleImmediate:function(){return c},scheduleOnNextTick:function(){return i},waitAtLeastOneReactRenderTask:function(){return u}};for(var o in a)Object.defineProperty(r,o,{enumerable:!0,get:a[o]});let i=e=>{Promise.resolve().then(()=>{n.default.nextTick(e)})},c=e=>{setImmediate(e)};function s(){return new Promise(e=>c(e))}function u(){return new Promise(e=>setImmediate(e))}},990913,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a,o={Postpone:function(){return D},PreludeState:function(){return J},abortAndThrowOnSynchronousRequestDataAccess:function(){return T},abortOnSynchronousPlatformIOAccess:function(){return w},accessedDynamicData:function(){return M},annotateDynamicAccess:function(){return X},consumeDynamicAccess:function(){return I},createDynamicTrackingState:function(){return g},createDynamicValidationState:function(){return _},createHangingInputAbortSignal:function(){return H},createRenderInBrowserAbortSignal:function(){return $},delayUntilRuntimeStage:function(){return er},formatDynamicAPIAccesses:function(){return U},getFirstDynamicReason:function(){return b},getStaticShellDisallowedDynamicReasons:function(){return et},isDynamicPostpone:function(){return P},isPrerenderInterruptedError:function(){return C},logDisallowedDynamicError:function(){return Z},markCurrentScopeAsDynamic:function(){return R},postponeWithTracking:function(){return j},throwIfDisallowedDynamic:function(){return ee},throwToInterruptStaticGeneration:function(){return v},trackAllowedDynamicAccess:function(){return V},trackDynamicDataInDynamicRender:function(){return O},trackDynamicHoleInRuntimeShell:function(){return K},trackDynamicHoleInStaticShell:function(){return z},useDynamicRouteParams:function(){return L},useDynamicSearchParams:function(){return B}};for(var i in o)Object.defineProperty(r,i,{enumerable:!0,get:o[i]});let c=(n=e.r(907358))&&n.__esModule?n:{default:n},s=e.r(404266),u=e.r(579781),d=e.r(763713),l=e.r(306648),f=e.r(863327),p=e.r(778967),h=e.r(530207),y=e.r(880813),m=e.r(436120),E="function"==typeof c.default.unstable_postpone;function g(e){return{isDebugDynamicAccesses:e,dynamicAccesses:[],syncDynamicErrorWithStack:null}}function _(){return{hasSuspenseAboveBody:!1,hasDynamicMetadata:!1,dynamicMetadata:null,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[]}}function b(e){var t;return null==(t=e.dynamicAccesses[0])?void 0:t.expression}function R(e,t,r){if(t)switch(t.type){case"cache":case"unstable-cache":case"private-cache":return}if(!e.forceDynamic&&!e.forceStatic){if(e.dynamicShouldError)throw Object.defineProperty(new u.StaticGenBailoutError(`Route ${e.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${r}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(t)switch(t.type){case"prerender-ppr":return j(e.route,r,t.dynamicTracking);case"prerender-legacy":t.revalidate=0;let n=Object.defineProperty(new s.DynamicServerError(`Route ${e.route} couldn't be rendered statically because it used ${r}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E550",enumerable:!1,configurable:!0});throw e.dynamicUsageDescription=r,e.dynamicUsageStack=n.stack,n}}}function v(e,t,r){let n=Object.defineProperty(new s.DynamicServerError(`Route ${t.route} couldn't be rendered statically because it used \`${e}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw r.revalidate=0,t.dynamicUsageDescription=e,t.dynamicUsageStack=n.stack,n}function O(e){switch(e.type){case"cache":case"unstable-cache":case"private-cache":return}}function S(e,t,r){let n=k(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`);r.controller.abort(n);let a=r.dynamicTracking;a&&a.dynamicAccesses.push({stack:a.isDebugDynamicAccesses?Error().stack:void 0,expression:t})}function w(e,t,r,n){let a=n.dynamicTracking;S(e,t,n),a&&null===a.syncDynamicErrorWithStack&&(a.syncDynamicErrorWithStack=r)}function T(e,t,r,n){if(!1===n.controller.signal.aborted){S(e,t,n);let a=n.dynamicTracking;a&&null===a.syncDynamicErrorWithStack&&(a.syncDynamicErrorWithStack=r)}throw k(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`)}function D({reason:e,route:t}){let r=d.workUnitAsyncStorage.getStore();j(t,e,r&&"prerender-ppr"===r.type?r.dynamicTracking:null)}function j(e,t,r){(function(){if(!E)throw Object.defineProperty(Error("Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E224",enumerable:!1,configurable:!0})})(),r&&r.dynamicAccesses.push({stack:r.isDebugDynamicAccesses?Error().stack:void 0,expression:t}),c.default.unstable_postpone(A(e,t))}function A(e,t){return`Route ${e} needs to bail out of prerendering at this point because it used ${t}. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`}function P(e){return"object"==typeof e&&null!==e&&"string"==typeof e.message&&x(e.message)}function x(e){return e.includes("needs to bail out of prerendering at this point because it used")&&e.includes("Learn more: https://nextjs.org/docs/messages/ppr-caught-error")}if(!1===x(A("%%%","^^^")))throw Object.defineProperty(Error("Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E296",enumerable:!1,configurable:!0});let N="NEXT_PRERENDER_INTERRUPTED";function k(e){let t=Object.defineProperty(Error(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t.digest=N,t}function C(e){return"object"==typeof e&&null!==e&&e.digest===N&&"name"in e&&"message"in e&&e instanceof Error}function M(e){return e.length>0}function I(e,t){return e.dynamicAccesses.push(...t.dynamicAccesses),e.dynamicAccesses}function U(e){return e.filter(e=>"string"==typeof e.stack&&e.stack.length>0).map(({expression:e,stack:t})=>(t=t.split("\n").slice(4).filter(e=>!(e.includes("node_modules/next/")||e.includes(" ()")||e.includes(" (node:"))).join("\n"),`Dynamic API Usage Debug - ${e}: -${t}`))}function $(){let e=new AbortController;return e.abort(Object.defineProperty(new y.BailoutToCSRError("Render in Browser"),"__NEXT_ERROR_CODE",{value:"E721",enumerable:!1,configurable:!0})),e.signal}function H(e){switch(e.type){case"prerender":case"prerender-runtime":let t=new AbortController;if(e.cacheSignal)e.cacheSignal.inputReady().then(()=>{t.abort()});else{let r=(0,d.getRuntimeStagePromise)(e);r?r.then(()=>(0,h.scheduleOnNextTick)(()=>t.abort())):(0,h.scheduleOnNextTick)(()=>t.abort())}return t.signal;case"prerender-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":return}}function X(e,t){let r=t.dynamicTracking;r&&r.dynamicAccesses.push({stack:r.isDebugDynamicAccesses?Error().stack:void 0,expression:e})}function L(e){let t=l.workAsyncStorage.getStore(),r=d.workUnitAsyncStorage.getStore();if(t&&r)switch(r.type){case"prerender-client":case"prerender":{let n=r.fallbackRouteParams;n&&n.size>0&&c.default.use((0,f.makeHangingPromise)(r.renderSignal,t.route,e));break}case"prerender-ppr":{let n=r.fallbackRouteParams;if(n&&n.size>0)return j(t.route,e,r.dynamicTracking);break}case"prerender-runtime":throw Object.defineProperty(new m.InvariantError(`\`${e}\` was called during a runtime prerender. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E771",enumerable:!1,configurable:!0});case"cache":case"private-cache":throw Object.defineProperty(new m.InvariantError(`\`${e}\` was called inside a cache scope. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0})}}function B(e){let t=l.workAsyncStorage.getStore(),r=d.workUnitAsyncStorage.getStore();if(t)switch(!r&&(0,d.throwForMissingRequestStore)(e),r.type){case"prerender-client":c.default.use((0,f.makeHangingPromise)(r.renderSignal,t.route,e));break;case"prerender-legacy":case"prerender-ppr":if(t.forceStatic)return;throw Object.defineProperty(new y.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":throw Object.defineProperty(new m.InvariantError(`\`${e}\` was called from a Server Component. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E795",enumerable:!1,configurable:!0});case"cache":case"unstable-cache":case"private-cache":throw Object.defineProperty(new m.InvariantError(`\`${e}\` was called inside a cache scope. Next.js should be preventing ${e} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0});case"request":return}}let W=/\n\s+at Suspense \(\)/,G=RegExp(`\\n\\s+at Suspense \\(\\)(?:(?!\\n\\s+at (?:body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6) \\(\\))[\\s\\S])*?\\n\\s+at ${p.ROOT_LAYOUT_BOUNDARY_NAME} \\([^\\n]*\\)`),F=RegExp(`\\n\\s+at ${p.METADATA_BOUNDARY_NAME}[\\n\\s]`),q=RegExp(`\\n\\s+at ${p.VIEWPORT_BOUNDARY_NAME}[\\n\\s]`),Y=RegExp(`\\n\\s+at ${p.OUTLET_BOUNDARY_NAME}[\\n\\s]`);function V(e,t,r,n){if(!Y.test(t)){if(F.test(t)){r.hasDynamicMetadata=!0;return}if(q.test(t)){r.hasDynamicViewport=!0;return}if(G.test(t)){r.hasAllowedDynamic=!0,r.hasSuspenseAboveBody=!0;return}else if(W.test(t)){r.hasAllowedDynamic=!0;return}else{if(n.syncDynamicErrorWithStack)return void r.dynamicErrors.push(n.syncDynamicErrorWithStack);let a=Q(`Route "${e.route}": Uncached data was accessed outside of . This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`,t);return void r.dynamicErrors.push(a)}}}function K(e,t,r,n){if(!Y.test(t)){if(F.test(t)){r.dynamicMetadata=Q(`Route "${e.route}": Uncached data or \`connection()\` was accessed inside \`generateMetadata\`. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`,t);return}if(q.test(t)){let n=Q(`Route "${e.route}": Uncached data or \`connection()\` was accessed inside \`generateViewport\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`,t);r.dynamicErrors.push(n);return}if(G.test(t)){r.hasAllowedDynamic=!0,r.hasSuspenseAboveBody=!0;return}else if(W.test(t)){r.hasAllowedDynamic=!0;return}else{if(n.syncDynamicErrorWithStack)return void r.dynamicErrors.push(n.syncDynamicErrorWithStack);let a=Q(`Route "${e.route}": Uncached data or \`connection()\` was accessed outside of \`\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`,t);return void r.dynamicErrors.push(a)}}}function z(e,t,r,n){if(!Y.test(t)){if(F.test(t)){r.dynamicMetadata=Q(`Route "${e.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed inside \`generateMetadata\` or you have file-based metadata such as icons that depend on dynamic params segments. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`,t);return}if(q.test(t)){let n=Q(`Route "${e.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed inside \`generateViewport\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`,t);r.dynamicErrors.push(n);return}if(G.test(t)){r.hasAllowedDynamic=!0,r.hasSuspenseAboveBody=!0;return}else if(W.test(t)){r.hasAllowedDynamic=!0;return}else{if(n.syncDynamicErrorWithStack)return void r.dynamicErrors.push(n.syncDynamicErrorWithStack);let a=Q(`Route "${e.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed outside of \`\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`,t);return void r.dynamicErrors.push(a)}}}function Q(e,t){let r=Object.defineProperty(Error(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return r.stack=r.name+": "+e+t,r}var J=((a={})[a.Full=0]="Full",a[a.Empty=1]="Empty",a[a.Errored=2]="Errored",a);function Z(e,t){console.error(t),e.dev||(e.hasReadableErrorStacks?console.error(`To get a more detailed stack trace and pinpoint the issue, start the app in development mode by running \`next dev\`, then open "${e.route}" in your browser to investigate the error.`):console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following: - - Start the app in development mode by running \`next dev\`, then open "${e.route}" in your browser to investigate the error. - - Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`))}function ee(e,t,r,n){if(n.syncDynamicErrorWithStack)throw Z(e,n.syncDynamicErrorWithStack),new u.StaticGenBailoutError;if(0!==t){if(r.hasSuspenseAboveBody)return;let n=r.dynamicErrors;if(n.length>0){for(let t=0;t0)return n;if(1===t)return[Object.defineProperty(new m.InvariantError(`Route "${e.route}" did not produce a static shell and Next.js was unable to determine a reason.`),"__NEXT_ERROR_CODE",{value:"E936",enumerable:!1,configurable:!0})]}else if(!1===r.hasAllowedDynamic&&0===r.dynamicErrors.length&&r.dynamicMetadata)return[r.dynamicMetadata];return[]}function er(e,t){return e.runtimeStagePromise?e.runtimeStagePromise.then(()=>t):t}}]); - -//# debugId=38db8857-24c8-3a96-bdbb-5981b7d334d0 \ No newline at end of file diff --git a/.next/static/chunks/b6898185462c2fee.js b/.next/static/chunks/b6898185462c2fee.js new file mode 100644 index 000000000..105c680cb --- /dev/null +++ b/.next/static/chunks/b6898185462c2fee.js @@ -0,0 +1,4 @@ +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="f4e661fe-2c0c-e533-c111-e9e742cb1cf8")}catch(e){}}(); +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,334164,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RedirectStatusCode",{enumerable:!0,get:function(){return o}});var n,o=((n={})[n.SeeOther=303]="SeeOther",n[n.TemporaryRedirect=307]="TemporaryRedirect",n[n.PermanentRedirect=308]="PermanentRedirect",n);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},45678,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,o={REDIRECT_ERROR_CODE:function(){return a},RedirectType:function(){return c},isRedirectError:function(){return l}};for(var u in o)Object.defineProperty(r,u,{enumerable:!0,get:o[u]});let i=e.r(334164),a="NEXT_REDIRECT";var c=((n={}).push="push",n.replace="replace",n);function l(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let t=e.digest.split(";"),[r,n]=t,o=t.slice(2,-2).join(";"),u=Number(t.at(-2));return r===a&&("replace"===n||"push"===n)&&"string"==typeof o&&!isNaN(u)&&u in i.RedirectStatusCode}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},992112,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={UnrecognizedActionError:function(){return u},unstable_isUnrecognizedActionError:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});class u extends Error{constructor(...e){super(...e),this.name="UnrecognizedActionError"}}function i(e){return!!(e&&"object"==typeof e&&e instanceof u)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},520716,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"actionAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(496932).createAsyncLocalStorage)()},642395,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"actionAsyncStorage",{enumerable:!0,get:function(){return n.actionAsyncStorageInstance}});let n=e.r(520716)},430485,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getRedirectError:function(){return c},getRedirectStatusCodeFromError:function(){return p},getRedirectTypeFromError:function(){return d},getURLFromRedirectError:function(){return f},permanentRedirect:function(){return s},redirect:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(334164),i=e.r(45678),a="u"{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={AppRouterContext:function(){return i},GlobalLayoutRouterContext:function(){return c},LayoutRouterContext:function(){return a},MissingSlotContext:function(){return s},TemplateContext:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(481258)._(e.r(907358)),i=u.default.createContext(null),a=u.default.createContext(null),c=u.default.createContext(null),l=u.default.createContext(null),s=u.default.createContext(new Set)},444841,(e,t,r)=>{"use strict";function n(){let e,t,r=new Promise((r,n)=>{e=r,t=n});return{resolve:e,reject:t,promise:r}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createPromiseWithResolvers",{enumerable:!0,get:function(){return n}})},506985,(e,t,r)=>{"use strict";function n(e){let t=e.indexOf("#"),r=e.indexOf("?"),n=r>-1&&(t<0||r-1?{pathname:e.substring(0,n?r:t),query:n?e.substring(r,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"parsePath",{enumerable:!0,get:function(){return n}})},688391,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addPathPrefix",{enumerable:!0,get:function(){return o}});let n=e.r(506985);function o(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:o,hash:u}=(0,n.parsePath)(e);return`${t}${r}${o}${u}`}},895708,(e,t,r)=>{"use strict";function n(e){return e.replace(/\/$/,"")||"/"}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removeTrailingSlash",{enumerable:!0,get:function(){return n}})},712550,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"pathHasPrefix",{enumerable:!0,get:function(){return o}});let n=e.r(506985);function o(e,t){if("string"!=typeof e)return!1;let{pathname:r}=(0,n.parsePath)(e);return r===t||r.startsWith(t+"/")}},436120,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"InvariantError",{enumerable:!0,get:function(){return n}});class n extends Error{constructor(e,t){super(`Invariant: ${e.endsWith(".")?e:e+"."} This is a bug in Next.js.`,t),this.name="InvariantError"}}},481258,(e,t,r)=>{"use strict";r._=function(e){return e&&e.__esModule?e:{default:e}}},744066,(e,t,r)=>{"use strict";function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(n=function(e){return e?r:t})(e)}r._=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=n(t);if(r&&r.has(e))return r.get(e);var o={__proto__:null},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var a=u?Object.getOwnPropertyDescriptor(e,i):null;a&&(a.get||a.set)?Object.defineProperty(o,i,a):o[i]=e[i]}return o.default=e,r&&r.set(e,o),o}},198151,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DEFAULT_SEGMENT_KEY:function(){return f},NOT_FOUND_SEGMENT_KEY:function(){return d},PAGE_SEGMENT_KEY:function(){return s},addSearchParamsIfPageSegment:function(){return c},computeSelectedLayoutSegment:function(){return l},getSegmentValue:function(){return u},getSelectedLayoutSegmentPath:function(){return function e(t,r,n=!0,o=[]){let i;if(n)i=t[1][r];else{let e=t[1];i=e.children??Object.values(e)[0]}if(!i)return o;let a=u(i[0]);return!a||a.startsWith(s)?o:(o.push(a),e(i,r,!1,o))}},isGroupSegment:function(){return i},isParallelRouteSegment:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(e){return Array.isArray(e)?e[1]:e}function i(e){return"("===e[0]&&e.endsWith(")")}function a(e){return e.startsWith("@")&&"@children"!==e}function c(e,t){if(e.includes(s)){let e=JSON.stringify(t);return"{}"!==e?s+"?"+e:s}return e}function l(e,t){if(!e||0===e.length)return null;let r="children"===t?e[0]:e[e.length-1];return r===f?null:r}let s="__PAGE__",f="__DEFAULT__",d="/_not-found"},695129,(e,t,r)=>{var n={229:function(e){var t,r,n,o=e.exports={};function u(){throw Error("setTimeout has not been defined")}function i(){throw Error("clearTimeout has not been defined")}try{t="function"==typeof setTimeout?setTimeout:u}catch(e){t=u}try{r="function"==typeof clearTimeout?clearTimeout:i}catch(e){r=i}function a(e){if(t===setTimeout)return setTimeout(e,0);if((t===u||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}var c=[],l=!1,s=-1;function f(){l&&n&&(l=!1,n.length?c=n.concat(c):s=-1,c.length&&d())}function d(){if(!l){var e=a(f);l=!0;for(var t=c.length;t;){for(n=c,c=[];++s1)for(var r=1;r{"use strict";var n,o;t.exports=(null==(n=e.g.process)?void 0:n.env)&&"object"==typeof(null==(o=e.g.process)?void 0:o.env)?e.g.process:e.r(695129)},396299,(e,t,r)=>{"use strict";var n=e.i(653782),o=Symbol.for("react.transitional.element"),u=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),c=Symbol.for("react.profiler"),l=Symbol.for("react.consumer"),s=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),_=Symbol.for("react.activity"),b=Symbol.for("react.view_transition"),v=Symbol.iterator,g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,h={};function O(e,t,r){this.props=e,this.context=t,this.refs=h,this.updater=r||g}function E(){}function P(e,t,r){this.props=e,this.context=t,this.refs=h,this.updater=r||g}O.prototype.isReactComponent={},O.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},O.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},E.prototype=O.prototype;var R=P.prototype=new E;R.constructor=P,m(R,O.prototype),R.isPureReactComponent=!0;var j=Array.isArray;function S(){}var T={H:null,A:null,T:null,S:null},M=Object.prototype.hasOwnProperty;function C(e,t,r){var n=r.ref;return{$$typeof:o,type:e,key:t,ref:void 0!==n?n:null,props:r}}function x(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var w=/\/+/g;function L(e,t){var r,n;return"object"==typeof e&&null!==e&&null!=e.key?(r=""+e.key,n={"=":"=0",":":"=2"},"$"+r.replace(/[=:]/g,function(e){return n[e]})):t.toString(36)}function A(e,t,r){if(null==e)return e;var n=[],i=0;return!function e(t,r,n,i,a){var c,l,s,f=typeof t;("undefined"===f||"boolean"===f)&&(t=null);var d=!1;if(null===t)d=!0;else switch(f){case"bigint":case"string":case"number":d=!0;break;case"object":switch(t.$$typeof){case o:case u:d=!0;break;case y:return e((d=t._init)(t._payload),r,n,i,a)}}if(d)return a=a(t),d=""===i?"."+L(t,0):i,j(a)?(n="",null!=d&&(n=d.replace(w,"$&/")+"/"),e(a,r,n,"",function(e){return e})):null!=a&&(x(a)&&(c=a,l=n+(null==a.key||t&&t.key===a.key?"":(""+a.key).replace(w,"$&/")+"/")+d,a=C(c.type,l,c.props)),r.push(a)),1;d=0;var p=""===i?".":i+":";if(j(t))for(var _=0;_{"use strict";t.exports=e.r(396299)},73738,(e,t,r)=>{"use strict";var n=Symbol.for("react.transitional.element");function o(e,t,r){var o=null;if(void 0!==r&&(o=""+r),void 0!==t.key&&(o=""+t.key),"key"in t)for(var u in r={},t)"key"!==u&&(r[u]=t[u]);else r=t;return{$$typeof:n,type:e,key:o,ref:void 0!==(t=r.ref)?t:null,props:r}}r.Fragment=Symbol.for("react.fragment"),r.jsx=o,r.jsxs=o},452797,(e,t,r)=>{"use strict";t.exports=e.r(73738)},593488,(e,t,r)=>{"use strict";var n=e.r(907358);function o(e){var t="https://react.dev/errors/"+e;if(1{"use strict";!function e(){if("u">typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),t.exports=e.r(593488)},954633,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getDeploymentId:function(){return u},getDeploymentIdQueryOrEmptyString:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(){return!1}function i(){return""}},631663,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"HTML_LIMITED_BOT_UA_RE",{enumerable:!0,get:function(){return n}});let n=/[\w-]+-Google|Google-[\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i},801404,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HTML_LIMITED_BOT_UA_RE:function(){return u.HTML_LIMITED_BOT_UA_RE},HTML_LIMITED_BOT_UA_RE_STRING:function(){return a},getBotType:function(){return s},isBot:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(631663),i=/Googlebot(?!-)|Googlebot$/i,a=u.HTML_LIMITED_BOT_UA_RE.source;function c(e){return u.HTML_LIMITED_BOT_UA_RE.test(e)}function l(e){return i.test(e)||c(e)}function s(e){return i.test(e)?"dom":c(e)?"html":void 0}},302564,(e,t,r)=>{"use strict";function n(e){return e.startsWith("/")?e:`/${e}`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ensureLeadingSlash",{enumerable:!0,get:function(){return n}})},185754,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={normalizeAppPath:function(){return a},normalizeRscURL:function(){return c}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(302564),i=e.r(198151);function a(e){return(0,u.ensureLeadingSlash)(e.split("/").reduce((e,t,r,n)=>!t||(0,i.isGroupSegment)(t)||"@"===t[0]||("page"===t||"route"===t)&&r===n.length-1?e:`${e}/${t}`,""))}function c(e){return e.replace(/\.rsc($|\?)/,"$1")}},261308,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={INTERCEPTION_ROUTE_MARKERS:function(){return i},extractInterceptionRouteInformation:function(){return c},isInterceptionRouteAppPath:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(185754),i=["(..)(..)","(.)","(..)","(...)"];function a(e){return void 0!==e.split("/").find(e=>i.find(t=>e.startsWith(t)))}function c(e){let t,r,n;for(let o of e.split("/"))if(r=i.find(e=>o.startsWith(e))){[t,n]=e.split(r,2);break}if(!t||!r||!n)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Must be in the format //(..|...|..)(..)/`),"__NEXT_ERROR_CODE",{value:"E269",enumerable:!1,configurable:!0});switch(t=(0,u.normalizeAppPath)(t),r){case"(.)":n="/"===t?`/${n}`:t+"/"+n;break;case"(..)":if("/"===t)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..) marker at the root level, use (.) instead.`),"__NEXT_ERROR_CODE",{value:"E207",enumerable:!1,configurable:!0});n=t.split("/").slice(0,-1).concat(n).join("/");break;case"(...)":n="/"+n;break;case"(..)(..)":let o=t.split("/");if(o.length<=2)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..)(..) marker at the root level or one level up.`),"__NEXT_ERROR_CODE",{value:"E486",enumerable:!1,configurable:!0});n=o.slice(0,-2).concat(n).join("/");break;default:throw Object.defineProperty(Error("Invariant: unexpected marker"),"__NEXT_ERROR_CODE",{value:"E112",enumerable:!1,configurable:!0})}return{interceptingRoute:t,interceptedRoute:n}}},164934,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"normalizePathTrailingSlash",{enumerable:!0,get:function(){return u}});let n=e.r(895708),o=e.r(506985),u=e=>{if(!e.startsWith("/"))return e;let{pathname:t,query:r,hash:u}=(0,o.parsePath)(e);return`${(0,n.removeTrailingSlash)(t)}${r}${u}`};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},266190,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addBasePath",{enumerable:!0,get:function(){return u}});let n=e.r(688391),o=e.r(164934);function u(e,t){return(0,o.normalizePathTrailingSlash)((0,n.addPathPrefix)(e,""))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},33905,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"hasBasePath",{enumerable:!0,get:function(){return o}});let n=e.r(712550);function o(e){return(0,n.pathHasPrefix)(e,"")}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},391518,(e,t,r)=>{"use strict";function n(e){return e}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removeBasePath",{enumerable:!0,get:function(){return n}}),e.r(33905),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},919025,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HTTPAccessErrorStatus:function(){return u},HTTP_ERROR_FALLBACK_ERROR_CODE:function(){return a},getAccessFallbackErrorTypeByStatus:function(){return s},getAccessFallbackHTTPStatus:function(){return l},isHTTPAccessFallbackError:function(){return c}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u={NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401},i=new Set(Object.values(u)),a="NEXT_HTTP_ERROR_FALLBACK";function c(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let[t,r]=e.digest.split(";");return t===a&&i.has(Number(r))}function l(e){return Number(e.digest.split(";")[1])}function s(e){switch(e){case 401:return"unauthorized";case 403:return"forbidden";case 404:return"not-found";default:return}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},778726,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isNextRouterError",{enumerable:!0,get:function(){return u}});let n=e.r(919025),o=e.r(45678);function u(e){return(0,o.isRedirectError)(e)||(0,n.isHTTPAccessFallbackError)(e)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},334788,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReadonlyURLSearchParams",{enumerable:!0,get:function(){return o}});class n extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class o extends URLSearchParams{append(){throw new n}delete(){throw new n}set(){throw new n}sort(){throw new n}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},527814,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={NavigationPromisesContext:function(){return s},PathParamsContext:function(){return l},PathnameContext:function(){return c},ReadonlyURLSearchParams:function(){return i.ReadonlyURLSearchParams},SearchParamsContext:function(){return a},createDevToolsInstrumentedPromise:function(){return f}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(907358),i=e.r(334788),a=(0,u.createContext)(null),c=(0,u.createContext)(null),l=(0,u.createContext)(null),s=(0,u.createContext)(null);function f(e,t){let r=Promise.resolve(t);return r.status="fulfilled",r.value=t,r.displayName=`${e} (SSR)`,r}},380828,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ServerInsertedHTMLContext:function(){return i},useServerInsertedHTML:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(744066)._(e.r(907358)),i=u.default.createContext(null);function a(e){let t=(0,u.useContext)(i);t&&t(e)}},511877,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"notFound",{enumerable:!0,get:function(){return u}});let n=e.r(919025),o=`${n.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;function u(){let e=Object.defineProperty(Error(o),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});throw e.digest=o,e}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},529491,(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"forbidden",{enumerable:!0,get:function(){return n}}),e.r(919025).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},66895,(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unauthorized",{enumerable:!0,get:function(){return n}}),e.r(919025).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},84066,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,o.isNextRouterError)(t)||(0,n.isBailoutToCSRError)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=e.r(880813),o=e.r(778726);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},744147,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isPostpone",{enumerable:!0,get:function(){return o}});let n=Symbol.for("react.postpone");function o(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}},381861,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,i.isNextRouterError)(t)||(0,u.isBailoutToCSRError)(t)||(0,c.isDynamicServerError)(t)||(0,a.isDynamicPostpone)(t)||(0,o.isPostpone)(t)||(0,n.isHangingPromiseRejectionError)(t)||(0,a.isPrerenderInterruptedError)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=e.r(863327),o=e.r(744147),u=e.r(880813),i=e.r(778726),a=e.r(990913),c=e.r(404266);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},322121,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return n}});let n="u"{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ReadonlyURLSearchParams:function(){return u.ReadonlyURLSearchParams},RedirectType:function(){return a.RedirectType},forbidden:function(){return l.forbidden},notFound:function(){return c.notFound},permanentRedirect:function(){return i.permanentRedirect},redirect:function(){return i.redirect},unauthorized:function(){return s.unauthorized},unstable_isUnrecognizedActionError:function(){return d},unstable_rethrow:function(){return f.unstable_rethrow}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(334788),i=e.r(430485),a=e.r(45678),c=e.r(511877),l=e.r(529491),s=e.r(66895),f=e.r(322121);function d(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},68380,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ReadonlyURLSearchParams:function(){return a.ReadonlyURLSearchParams},RedirectType:function(){return f.RedirectType},ServerInsertedHTMLContext:function(){return l.ServerInsertedHTMLContext},forbidden:function(){return f.forbidden},notFound:function(){return f.notFound},permanentRedirect:function(){return f.permanentRedirect},redirect:function(){return f.redirect},unauthorized:function(){return f.unauthorized},unstable_isUnrecognizedActionError:function(){return s.unstable_isUnrecognizedActionError},unstable_rethrow:function(){return f.unstable_rethrow},useParams:function(){return v},usePathname:function(){return _},useRouter:function(){return b},useSearchParams:function(){return y},useSelectedLayoutSegment:function(){return m},useSelectedLayoutSegments:function(){return g},useServerInsertedHTML:function(){return l.useServerInsertedHTML}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(744066)._(e.r(907358)),i=e.r(99585),a=e.r(527814),c=e.r(198151),l=e.r(380828),s=e.r(992112),f=e.r(596517),d="u"e?new a.ReadonlyURLSearchParams(e):null,[e])}function _(){return d?.("usePathname()"),(0,u.useContext)(a.PathnameContext)}function b(){let e=(0,u.useContext)(i.AppRouterContext);if(null===e)throw Object.defineProperty(Error("invariant expected app router to be mounted"),"__NEXT_ERROR_CODE",{value:"E238",enumerable:!1,configurable:!0});return e}function v(){return d?.("useParams()"),(0,u.useContext)(a.PathParamsContext)}function g(e="children"){d?.("useSelectedLayoutSegments()");let t=(0,u.useContext)(i.LayoutRouterContext);return t?(0,c.getSelectedLayoutSegmentPath)(t.parentTree,e):null}function m(e="children"){d?.("useSelectedLayoutSegment()"),(0,u.useContext)(a.NavigationPromisesContext);let t=g(e);return(0,c.computeSelectedLayoutSegment)(t,e)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)}]); + +//# debugId=f4e661fe-2c0c-e533-c111-e9e742cb1cf8 \ No newline at end of file diff --git a/.next/static/chunks/b786cbc2e9238523.js b/.next/static/chunks/b786cbc2e9238523.js deleted file mode 100644 index fe1ad9a57..000000000 --- a/.next/static/chunks/b786cbc2e9238523.js +++ /dev/null @@ -1,6 +0,0 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="a276e454-797b-38d1-1da1-a01e1a7ff97a")}catch(e){}}(); -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,847658,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RouterContext",{enumerable:!0,get:function(){return n}});let n=e.r(481258)._(e.r(907358)).default.createContext(null)},795439,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return l}});let n=e.r(907358),i="u"{}:n.useLayoutEffect,a=i?()=>{}:n.useEffect;function l(e){let{headManager:t,reduceComponentsToState:r}=e;function l(){if(t&&t.mountedInstances){let e=n.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(e))}}return i&&(t?.mountedInstances?.add(e.children),l()),o(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),o(()=>(t&&(t._pendingUpdate=l),()=>{t&&(t._pendingUpdate=l)})),a(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},498515,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return g},defaultHead:function(){return d}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=e.r(481258),a=e.r(744066),l=e.r(452797),s=a._(e.r(907358)),u=o._(e.r(795439)),c=e.r(717441);function d(){return[(0,l.jsx)("meta",{charSet:"utf-8"},"charset"),(0,l.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function f(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===s.default.Fragment?e.concat(s.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(437698);let p=["name","httpEquiv","charSet","itemProp"];function m(e){let t,r,n,i;return e.reduce(f,[]).reverse().concat(d().reverse()).filter((t=new Set,r=new Set,n=new Set,i={},e=>{let o=!0,a=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){a=!0;let r=e.key.slice(e.key.indexOf("$")+1);t.has(r)?o=!1:t.add(r)}switch(e.type){case"title":case"base":r.has(e.type)?o=!1:r.add(e.type);break;case"meta":for(let t=0,r=p.length;t{let r=e.key||t;return s.default.cloneElement(e,{key:r})})}let g=function({children:e}){let t=(0,s.useContext)(c.HeadManagerContext);return(0,l.jsx)(u.default,{reduceComponentsToState:m,headManager:t,children:e})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},678810,(e,t,r)=>{"use strict";function n({widthInt:e,heightInt:t,blurWidth:r,blurHeight:n,blurDataURL:i,objectFit:o}){let a=r?40*r:e,l=n?40*n:t,s=a&&l?`viewBox='0 0 ${a} ${l}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${s}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${s?"none":"contain"===o?"xMidYMid":"cover"===o?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${i}'/%3E%3C/svg%3E`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImageBlurSvg",{enumerable:!0,get:function(){return n}})},83573,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={VALID_LOADERS:function(){return o},imageConfigDefault:function(){return a}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=["default","imgix","cloudinary","akamai","custom"],a={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1}},631297,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImgProps",{enumerable:!0,get:function(){return u}}),e.r(437698);let n=e.r(954633),i=e.r(678810),o=e.r(83573),a=["-moz-initial","fill","none","scale-down",void 0];function l(e){return void 0!==e.default}function s(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function u({src:e,sizes:t,unoptimized:r=!1,priority:u=!1,preload:c=!1,loading:d,className:f,quality:p,width:m,height:g,fill:h=!1,style:y,overrideSrc:v,onLoad:b,onLoadingComplete:w,placeholder:C="empty",blurDataURL:_,fetchPriority:x,decoding:P="async",layout:S,objectFit:j,objectPosition:E,lazyBoundary:M,lazyRoot:O,...R},I){var T;let A,D,z,{imgConf:V,showAltText:L,blurComplete:$,defaultLoader:k}=I,F=V||o.imageConfigDefault;if("allSizes"in F)A=F;else{let e=[...F.deviceSizes,...F.imageSizes].sort((e,t)=>e-t),t=F.deviceSizes.sort((e,t)=>e-t),r=F.qualities?.sort((e,t)=>e-t);A={...F,allSizes:e,deviceSizes:t,qualities:r}}if(void 0===k)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let N=R.loader||k;delete R.loader,delete R.srcSet;let W="__next_img_default"in N;if(W){if("custom"===A.loader)throw Object.defineProperty(Error(`Image with src "${e}" is missing "loader" prop. -Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=N;N=t=>{let{config:r,...n}=t;return e(n)}}if(S){"fill"===S&&(h=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[S];e&&(y={...y,...e});let r={responsive:"100vw",fill:"100vw"}[S];r&&!t&&(t=r)}let U="",G=s(m),H=s(g);if((T=e)&&"object"==typeof T&&(l(T)||void 0!==T.src)){let t=l(e)?e.default:e;if(!t.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!t.height||!t.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(D=t.blurWidth,z=t.blurHeight,_=_||t.blurDataURL,U=t.src,!h)if(G||H){if(G&&!H){let e=G/t.width;H=Math.round(t.height*e)}else if(!G&&H){let e=H/t.height;G=Math.round(t.width*e)}}else G=t.width,H=t.height}let q=!u&&!c&&("lazy"===d||void 0===d);(!(e="string"==typeof e?e:U)||e.startsWith("data:")||e.startsWith("blob:"))&&(r=!0,q=!1),A.unoptimized&&(r=!0),W&&!A.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(r=!0);let B=s(p),X=Object.assign(h?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:j,objectPosition:E}:{},L?{}:{color:"transparent"},y),Y=$||"empty"===C?null:"blur"===C?`url("data:image/svg+xml;charset=utf-8,${(0,i.getImageBlurSvg)({widthInt:G,heightInt:H,blurWidth:D,blurHeight:z,blurDataURL:_||"",objectFit:X.objectFit})}")`:`url("${C}")`,J=a.includes(X.objectFit)?"fill"===X.objectFit?"100% 100%":"cover":X.objectFit,K=Y?{backgroundSize:J,backgroundPosition:X.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:Y}:{},Q=function({config:e,src:t,unoptimized:r,width:i,quality:o,sizes:a,loader:l}){if(r){let e=(0,n.getDeploymentId)();if(t.startsWith("/")&&!t.startsWith("//")&&e){let r=t.includes("?")?"&":"?";t=`${t}${r}dpl=${e}`}return{src:t,srcSet:void 0,sizes:void 0}}let{widths:s,kind:u}=function({deviceSizes:e,allSizes:t},r,n){if(n){let r=/(^|\s)(1?\d?\d)vw/g,i=[];for(let e;e=r.exec(n);)i.push(parseInt(e[2]));if(i.length){let r=.01*Math.min(...i);return{widths:t.filter(t=>t>=e[0]*r),kind:"w"}}return{widths:t,kind:"w"}}return"number"!=typeof r?{widths:e,kind:"w"}:{widths:[...new Set([r,2*r].map(e=>t.find(t=>t>=e)||t[t.length-1]))],kind:"x"}}(e,i,a),c=s.length-1;return{sizes:a||"w"!==u?a:"100vw",srcSet:s.map((r,n)=>`${l({config:e,src:t,quality:o,width:r})} ${"w"===u?r:n+1}${u}`).join(", "),src:l({config:e,src:t,quality:o,width:s[c]})}}({config:A,src:e,unoptimized:r,width:G,quality:B,sizes:t,loader:N}),Z=q?"lazy":d;return{props:{...R,loading:Z,fetchPriority:x,width:G,height:H,decoding:P,className:f,style:{...X,...K},sizes:Q.sizes,srcSet:Q.srcSet,src:v||Q.src},meta:{unoptimized:r,preload:c||u,placeholder:C,fill:h}}}},320069,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageConfigContext",{enumerable:!0,get:function(){return o}});let n=e.r(481258)._(e.r(907358)),i=e.r(83573),o=n.default.createContext(i.imageConfigDefault)},959321,(e,t,r)=>{"use strict";function n(e,t){let r=e||75;return t?.qualities?.length?t.qualities.reduce((e,t)=>Math.abs(t-r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return a}});let n=e.r(959321),i=e.r(954633);function o({config:e,src:t,width:r,quality:o}){if(t.startsWith("/")&&t.includes("?")&&e.localPatterns?.length===1&&"**"===e.localPatterns[0].pathname&&""===e.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${t}" is using a query string which is not configured in images.localPatterns. -Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let a=(0,n.findClosestQuality)(o,e),l=(0,i.getDeploymentId)();return`${e.path}?url=${encodeURIComponent(t)}&w=${r}&q=${a}${t.startsWith("/")&&l?`&dpl=${l}`:""}`}o.__next_img_default=!0;let a=o},702050,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Image",{enumerable:!0,get:function(){return w}});let n=e.r(481258),i=e.r(744066),o=e.r(452797),a=i._(e.r(907358)),l=n._(e.r(910353)),s=n._(e.r(498515)),u=e.r(631297),c=e.r(83573),d=e.r(320069);e.r(437698);let f=e.r(847658),p=n._(e.r(168800)),m=e.r(391736),g={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[25,50,75,100],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function h(e,t,r,n,i,o,a){let l=e?.src;e&&e["data-loaded-src"]!==l&&(e["data-loaded-src"]=l,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&i(!0),r?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let n=!1,i=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>n,isPropagationStopped:()=>i,persist:()=>{},preventDefault:()=>{n=!0,t.preventDefault()},stopPropagation:()=>{i=!0,t.stopPropagation()}})}n?.current&&n.current(e)}}))}function y(e){return a.use?{fetchPriority:e}:{fetchpriority:e}}"u"{let E=(0,a.useCallback)(e=>{e&&(P&&(e.src=e.src),e.complete&&h(e,d,v,b,w,p,_))},[e,d,v,b,w,P,p,_]),M=(0,m.useMergedRef)(j,E);return(0,o.jsx)("img",{...S,...y(c),loading:f,width:i,height:n,decoding:l,"data-nimg":g?"fill":"1",className:s,style:u,sizes:r,srcSet:t,src:e,ref:M,onLoad:e=>{h(e.currentTarget,d,v,b,w,p,_)},onError:e=>{C(!0),"empty"!==d&&w(!0),P&&P(e)}})});function b({isAppRouter:e,imgAttributes:t}){let r={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...y(t.fetchPriority)};return e&&l.default.preload?(l.default.preload(t.src,r),null):(0,o.jsx)(s.default,{children:(0,o.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...r},"__nimg-"+t.src+t.srcSet+t.sizes)})}let w=(0,a.forwardRef)((e,t)=>{let r=(0,a.useContext)(f.RouterContext),n=(0,a.useContext)(d.ImageConfigContext),i=(0,a.useMemo)(()=>{let e=g||n||c.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),r=e.deviceSizes.sort((e,t)=>e-t),i=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:r,qualities:i,localPatterns:"u"{m.current=l},[l]);let h=(0,a.useRef)(s);(0,a.useEffect)(()=>{h.current=s},[s]);let[y,w]=(0,a.useState)(!1),[C,_]=(0,a.useState)(!1),{props:x,meta:P}=(0,u.getImgProps)(e,{defaultLoader:p.default,imgConf:i,blurComplete:y,showAltText:C});return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(v,{...x,unoptimized:P.unoptimized,placeholder:P.placeholder,fill:P.fill,onLoadRef:m,onLoadingCompleteRef:h,setBlurComplete:w,setShowAltText:_,sizesInput:e.sizes,ref:t}),P.preload?(0,o.jsx)(b,{isAppRouter:!r,imgAttributes:x}):null]})});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},675375,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return c},getImageProps:function(){return u}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=e.r(481258),a=e.r(631297),l=e.r(702050),s=o._(e.r(168800));function u(e){let{props:t}=(0,a.getImgProps)(e,{defaultLoader:s.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[25,50,75,100],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let c=l.Image},663067,(e,t,r)=>{t.exports=e.r(675375)},933112,807464,247237,753942,891945,370338,134174,286091,636333,339705,736986,718015,e=>{"use strict";e.i(653782);var t,r=e.i(452797),n=e.i(907358);let i=(0,n.createContext)({});e.s(["LayoutGroupContext",()=>i],807464);let o=(0,n.createContext)({strict:!1});e.s(["LazyContext",()=>o],247237);let a=(0,n.createContext)({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});e.s(["MotionConfigContext",()=>a],753942);let l=(0,n.createContext)({});var s=e.i(21280),u=e.i(786843);function c(e){return Array.isArray(e)?e.join(" "):e}var d=e.i(236585),f=e.i(235629),p=e.i(19563);let m=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function g(e,t,r){for(let n in t)(0,d.isMotionValue)(t[n])||(0,f.isForcedMotionValue)(n,r)||(e[n]=t[n])}var h=e.i(348971),y=e.i(604445);let v=()=>({...m(),attrs:{}}),b=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","propagate","ignoreStrict","viewport"]);function w(e){return e.startsWith("while")||e.startsWith("drag")&&"draggable"!==e||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||b.has(e)}let C=e=>!w(e);try{t=(()=>{let e=Error("Cannot find module '@emotion/is-prop-valid'");throw e.code="MODULE_NOT_FOUND",e})().default,"function"==typeof t&&(C=e=>e.startsWith("on")?!w(e):t(e))}catch{}var _=e.i(592798),x=e.i(645744),x=x;function P(e){return(0,d.isMotionValue)(e)?e.get():e}e.s(["resolveMotionValue",()=>P],891945);var S=e.i(991363),j=e.i(161560);let E=(0,n.createContext)(null);function M(e){let t=(0,n.useRef)(null);return null===t.current&&(t.current=e()),t.current}e.s(["PresenceContext",()=>E],370338),e.s(["useConstant",()=>M],134174);let O=e=>(t,r)=>{let i=(0,n.useContext)(l),o=(0,n.useContext)(E),a=()=>(function({scrapeMotionValuesFromProps:e,createRenderState:t},r,n,i){return{latestValues:function(e,t,r,n){let i={},o=n(e,{});for(let e in o)i[e]=P(o[e]);let{initial:a,animate:l}=e,u=(0,s.isControllingVariants)(e),c=(0,s.isVariantNode)(e);t&&c&&!u&&!1!==e.inherit&&(void 0===a&&(a=t.initial),void 0===l&&(l=t.animate));let d=!!r&&!1===r.initial,f=(d=d||!1===a)?l:a;if(f&&"boolean"!=typeof f&&!(0,S.isAnimationControls)(f)){let t=Array.isArray(f)?f:[f];for(let r=0;rD[t].some(t=>!!e[t])};(0,A.setFeatureDefinitions)(e),z=!0}(),(0,A.getFeatureDefinitions)()}function L(e){let t=V();for(let r in e)t[r]={...t[r],...e[r]};(0,A.setFeatureDefinitions)(t)}e.s(["loadFeatures",()=>L],286091);let $=Symbol.for("motionComponentSymbol");var k=e.i(329957);let F=(0,n.createContext)({});function N(e){return e&&"object"==typeof e&&Object.prototype.hasOwnProperty.call(e,"current")}e.s(["SwitchLayoutGroupContext",()=>F],636333),e.s(["isRefObject",()=>N],339705);let W="u">typeof window?n.useLayoutEffect:n.useEffect;function U(e,{forwardMotionProps:t=!1,type:f}={},b,x){b&&L(b);let P=f?"svg"===f:(0,_.isSVGComponent)(e),S=P?T:R;function j(f,b){var j;let M,O,R,I={...(0,n.useContext)(a),...f,layoutId:function({layoutId:e}){let t=(0,n.useContext)(i).id;return t&&void 0!==e?t+"-"+e:e}(f)},{isStatic:T}=I,A=function(e){let{initial:t,animate:r}=function(e,t){if((0,s.isControllingVariants)(e)){let{initial:t,animate:r}=e;return{initial:!1===t||(0,u.isVariantLabel)(t)?t:void 0,animate:(0,u.isVariantLabel)(r)?r:void 0}}return!1!==e.inherit?t:{}}(e,(0,n.useContext)(l));return(0,n.useMemo)(()=>({initial:t,animate:r}),[c(t),c(r)])}(f),D=S(f,T);if(!T&&"u">typeof window){(0,n.useContext)(o).strict;let t=function(e){let{drag:t,layout:r}=V();if(!t&&!r)return{};let n={...t,...r};return{MeasureLayout:t?.isEnabled(e)||r?.isEnabled(e)?n.MeasureLayout:void 0,ProjectionNode:n.ProjectionNode}}(I);M=t.MeasureLayout,A.visualElement=function(e,t,r,i,s,u){let{visualElement:c}=(0,n.useContext)(l),d=(0,n.useContext)(o),f=(0,n.useContext)(E),p=(0,n.useContext)(a),m=p.reducedMotion,g=p.skipAnimations,h=(0,n.useRef)(null),y=(0,n.useRef)(!1);i=i||d.renderer,!h.current&&i&&(h.current=i(e,{visualState:t,parent:c,props:r,presenceContext:f,blockInitialAnimation:!!f&&!1===f.initial,reducedMotionConfig:m,skipAnimations:g,isSVG:u}),y.current&&h.current&&(h.current.manuallyAnimateOnMount=!0));let v=h.current,b=(0,n.useContext)(F);v&&!v.projection&&s&&("html"===v.type||"svg"===v.type)&&function(e,t,r,n){let{layoutId:i,layout:o,drag:a,dragConstraints:l,layoutScroll:s,layoutRoot:u,layoutAnchor:c,layoutCrossfade:d}=t;e.projection=new r(e.latestValues,t["data-framer-portal-id"]?void 0:function e(t){if(t)return!1!==t.options.allowProjection?t.projection:e(t.parent)}(e.parent)),e.projection.setOptions({layoutId:i,layout:o,alwaysMeasureLayout:!!a||l&&N(l),visualElement:e,animationType:"string"==typeof o?o:"both",initialPromotionConfig:n,crossfade:d,layoutScroll:s,layoutRoot:u,layoutAnchor:c})}(h.current,r,s,b);let w=(0,n.useRef)(!1);(0,n.useInsertionEffect)(()=>{v&&w.current&&v.update(r,f)});let C=r[k.optimizedAppearDataAttribute],_=(0,n.useRef)(!!C&&"u">typeof window&&!window.MotionHandoffIsComplete?.(C)&&window.MotionHasOptimisedAnimation?.(C));return W(()=>{y.current=!0,v&&(w.current=!0,window.MotionIsMounted=!0,v.updateFeatures(),v.scheduleRenderMicrotask(),_.current&&v.animationState&&v.animationState.animateChanges())}),(0,n.useEffect)(()=>{v&&(!_.current&&v.animationState&&v.animationState.animateChanges(),_.current&&(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(C)}),_.current=!1),v.enteringChildren=void 0)}),v}(e,D,I,x,t.ProjectionNode,P)}return(0,r.jsxs)(l.Provider,{value:A,children:[M&&A.visualElement?(0,r.jsx)(M,{visualElement:A.visualElement,...I}):null,function(e,t,r,{latestValues:i},o,a=!1,l){let s=(l??(0,_.isSVGComponent)(e)?function(e,t,r,i){let o=(0,n.useMemo)(()=>{let r=v();return(0,h.buildSVGAttrs)(r,t,(0,y.isSVGTag)(i),e.transformTemplate,e.style),{...r.attrs,style:{...r.style}}},[t]);if(e.style){let t={};g(t,e.style,e),o.style={...t,...o.style}}return o}:function(e,t){let r,i,o={},a=(r=e.style||{},g(i={},r,e),Object.assign(i,function({transformTemplate:e},t){return(0,n.useMemo)(()=>{let r=m();return(0,p.buildHTMLStyles)(r,t,e),Object.assign({},r.vars,r.style)},[t])}(e,t)),i);return e.drag&&!1!==e.dragListener&&(o.draggable=!1,a.userSelect=a.WebkitUserSelect=a.WebkitTouchCallout="none",a.touchAction=!0===e.drag?"none":`pan-${"x"===e.drag?"y":"x"}`),void 0===e.tabIndex&&(e.onTap||e.onTapStart||e.whileTap)&&(o.tabIndex=0),o.style=a,o})(t,i,o,e),u=function(e,t,r){let n={};for(let i in e)("values"!==i||"object"!=typeof e.values)&&!(0,d.isMotionValue)(e[i])&&(C(i)||!0===r&&w(i)||!t&&!w(i)||e.draggable&&i.startsWith("onDrag"))&&(n[i]=e[i]);return n}(t,"string"==typeof e,a),c=e!==n.Fragment?{...u,...s,ref:r}:{},{children:f}=t,b=(0,n.useMemo)(()=>(0,d.isMotionValue)(f)?f.get():f,[f]);return(0,n.createElement)(e,{...c,children:b})}(e,f,(j=A.visualElement,O=(0,n.useRef)(b),(0,n.useInsertionEffect)(()=>{O.current=b}),R=(0,n.useRef)(null),(0,n.useCallback)(e=>{e&&D.onMount?.(e);let t=O.current;if("function"==typeof t)if(e){let r=t(e);"function"==typeof r&&(R.current=r)}else R.current?(R.current(),R.current=null):t(e);else t&&(t.current=e);j&&(e?j.mount(e):j.unmount())},[j])),D,T,t,P)]})}j.displayName=`motion.${"string"==typeof e?e:`create(${e.displayName??e.name??""})`}`;let M=(0,n.forwardRef)(j);return M[$]=e,M}function G(e,t){if("u"U(r,n,e,t);return new Proxy((e,t)=>n(e,t),{get:(i,o)=>"create"===o?n:(r.has(o)||r.set(o,U(o,void 0,e,t)),r.get(o))})}function H(e=!0){let t=(0,n.useContext)(E);if(null===t)return[!0,null];let{isPresent:r,onExitComplete:i,register:o}=t,a=(0,n.useId)();(0,n.useEffect)(()=>{if(e)return o(a)},[e]);let l=(0,n.useCallback)(()=>e&&i&&i(a),[a,i,e]);return!r&&i?[!1,l]:[!0]}e.s(["useIsomorphicLayoutEffect",()=>W],736986),e.s(["createMotionProxy",()=>G],933112),e.s(["usePresence",()=>H],718015)}]); - -//# debugId=a276e454-797b-38d1-1da1-a01e1a7ff97a \ No newline at end of file diff --git a/.next/static/chunks/4d4a06e69ee5f0c8.js b/.next/static/chunks/c1fbbe823a34b6d4.js similarity index 51% rename from .next/static/chunks/4d4a06e69ee5f0c8.js rename to .next/static/chunks/c1fbbe823a34b6d4.js index dc8d926ea..ce63255ee 100644 --- a/.next/static/chunks/4d4a06e69ee5f0c8.js +++ b/.next/static/chunks/c1fbbe823a34b6d4.js @@ -1,4 +1,4 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="9df741a5-0c29-82f4-864f-6cb1513c4bfe")}catch(e){}}(); -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,102227,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReflectAdapter",{enumerable:!0,get:function(){return n}});class n{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}},365278,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(496932).createAsyncLocalStorage)()},517110,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorage",{enumerable:!0,get:function(){return n.afterTaskAsyncStorageInstance}});let n=e.r(365278)},780329,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isRequestAPICallableInsideAfter:function(){return l},throwForSearchParamsAccessInUseCache:function(){return c},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(579781),s=e.r(517110);function o(e,t){throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${t}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function c(e,t){let r=Object.defineProperty(Error(`Route ${e.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(r,t),e.invalidDynamicUsageError??=r,r}function l(){let e=s.afterTaskAsyncStorage.getStore();return(null==e?void 0:e.rootTaskSpawnPhase)==="action"}},759823,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a={RenderStage:function(){return c},StagedRenderingController:function(){return l}};for(var i in a)Object.defineProperty(r,i,{enumerable:!0,get:a[i]});let s=e.r(436120),o=e.r(444841);var c=((n={})[n.Before=1]="Before",n[n.Static=2]="Static",n[n.Runtime=3]="Runtime",n[n.Dynamic=4]="Dynamic",n[n.Abandoned=5]="Abandoned",n);class l{constructor(e=null,t){this.abortSignal=e,this.hasRuntimePrefetch=t,this.currentStage=1,this.staticInterruptReason=null,this.runtimeInterruptReason=null,this.staticStageEndTime=1/0,this.runtimeStageEndTime=1/0,this.runtimeStageListeners=[],this.dynamicStageListeners=[],this.runtimeStagePromise=(0,o.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,o.createPromiseWithResolvers)(),this.mayAbandon=!1,e&&(e.addEventListener("abort",()=>{let{reason:t}=e;this.currentStage<3&&(this.runtimeStagePromise.promise.catch(u),this.runtimeStagePromise.reject(t)),(this.currentStage<4||5===this.currentStage)&&(this.dynamicStagePromise.promise.catch(u),this.dynamicStagePromise.reject(t))},{once:!0}),this.mayAbandon=!0)}onStage(e,t){if(this.currentStage>=e)t();else if(3===e)this.runtimeStageListeners.push(t);else if(4===e)this.dynamicStageListeners.push(t);else throw Object.defineProperty(new s.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}canSyncInterrupt(){if(1===this.currentStage)return!1;let e=this.hasRuntimePrefetch?4:3;return this.currentStage=3&&(this.staticStageEndTime=performance.now()+performance.timeOrigin,this.resolveRuntimeStage()),t<4&&e>=4){this.runtimeStageEndTime=performance.now()+performance.timeOrigin,this.resolveDynamicStage();return}}resolveRuntimeStage(){let e=this.runtimeStageListeners;for(let t=0;t{n.then(e.bind(null,i),t)}),void 0!==a&&(s.displayName=a),s);return this.abortSignal&&o.catch(u),o}}function u(){}},118720,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addPathSuffix",{enumerable:!0,get:function(){return a}});let n=e.r(506985);function a(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:i}=(0,n.parsePath)(e);return`${r}${t}${a}${i}`}},446247,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addLocale",{enumerable:!0,get:function(){return i}});let n=e.r(688391),a=e.r(712550);function i(e,t,r,i){if(!t||t===r)return e;let s=e.toLowerCase();return!i&&((0,a.pathHasPrefix)(s,"/api")||(0,a.pathHasPrefix)(s,`/${t.toLowerCase()}`))?e:(0,n.addPathPrefix)(e,`/${t}`)}},971560,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"formatNextPathnameInfo",{enumerable:!0,get:function(){return o}});let n=e.r(895708),a=e.r(688391),i=e.r(118720),s=e.r(446247);function o(e){let t=(0,s.addLocale)(e.pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix);return(e.buildId||!e.trailingSlash)&&(t=(0,n.removeTrailingSlash)(t)),e.buildId&&(t=(0,i.addPathSuffix)((0,a.addPathPrefix)(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=(0,a.addPathPrefix)(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:(0,i.addPathSuffix)(t,"/"):(0,n.removeTrailingSlash)(t)}},866140,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"normalizeLocalePath",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e,t){let r;if(!t)return{pathname:e};let a=n.get(t);a||(a=t.map(e=>e.toLowerCase()),n.set(t,a));let i=e.split("/",2);if(!i[1])return{pathname:e};let s=i[1].toLowerCase(),o=a.indexOf(s);return o<0?{pathname:e}:(r=t[o],{pathname:e=e.slice(r.length+1)||"/",detectedLocale:r})}},857436,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removePathPrefix",{enumerable:!0,get:function(){return a}});let n=e.r(712550);function a(e,t){if(!(0,n.pathHasPrefix)(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:`/${r}`}},707723,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getNextPathnameInfo",{enumerable:!0,get:function(){return s}});let n=e.r(866140),a=e.r(857436),i=e.r(712550);function s(e,t){let{basePath:r,i18n:s,trailingSlash:o}=t.nextConfig??{},c={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):o};r&&(0,i.pathHasPrefix)(c.pathname,r)&&(c.pathname=(0,a.removePathPrefix)(c.pathname,r),c.basePath=r);let l=c.pathname;if(c.pathname.startsWith("/_next/data/")&&c.pathname.endsWith(".json")){let e=c.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");c.buildId=e[0],l="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(c.pathname=l)}if(s){let e=t.i18nProvider?t.i18nProvider.analyze(c.pathname):(0,n.normalizeLocalePath)(c.pathname,s.locales);c.locale=e.detectedLocale,c.pathname=e.pathname??c.pathname,!e.detectedLocale&&c.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(l):(0,n.normalizeLocalePath)(l,s.locales)).detectedLocale&&(c.locale=e.detectedLocale)}return c}},955973,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_SUFFIX:function(){return _},APP_DIR_ALIAS:function(){return F},CACHE_ONE_YEAR:function(){return O},DOT_NEXT_ALIAS:function(){return M},ESLINT_DEFAULT_DIRS:function(){return ea},GSP_NO_RETURNED_VALUE:function(){return J},GSSP_COMPONENT_MEMBER_ERROR:function(){return et},GSSP_NO_RETURNED_VALUE:function(){return Z},HTML_CONTENT_TYPE_HEADER:function(){return s},INFINITE_CACHE:function(){return I},INSTRUMENTATION_HOOK_FILENAME:function(){return L},JSON_CONTENT_TYPE_HEADER:function(){return o},MATCHED_PATH_HEADER:function(){return u},MIDDLEWARE_FILENAME:function(){return C},MIDDLEWARE_LOCATION_REGEXP:function(){return N},NEXT_BODY_SUFFIX:function(){return E},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return A},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return R},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return b},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return T},NEXT_CACHE_TAGS_HEADER:function(){return S},NEXT_CACHE_TAG_MAX_ITEMS:function(){return P},NEXT_CACHE_TAG_MAX_LENGTH:function(){return y},NEXT_DATA_SUFFIX:function(){return g},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return l},NEXT_META_SUFFIX:function(){return x},NEXT_QUERY_PARAM_PREFIX:function(){return c},NEXT_RESUME_HEADER:function(){return v},NON_STANDARD_NODE_ENV:function(){return er},PAGES_DIR_ALIAS:function(){return D},PRERENDER_REVALIDATE_HEADER:function(){return d},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return m},PROXY_FILENAME:function(){return w},PROXY_LOCATION_REGEXP:function(){return j},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return Y},ROOT_DIR_ALIAS:function(){return k},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return V},RSC_ACTION_ENCRYPTION_ALIAS:function(){return W},RSC_ACTION_PROXY_ALIAS:function(){return G},RSC_ACTION_VALIDATE_ALIAS:function(){return H},RSC_CACHE_WRAPPER_ALIAS:function(){return X},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return B},RSC_MOD_REF_PROXY_ALIAS:function(){return U},RSC_SEGMENTS_DIR_SUFFIX:function(){return f},RSC_SEGMENT_SUFFIX:function(){return h},RSC_SUFFIX:function(){return p},SERVER_PROPS_EXPORT_ERROR:function(){return Q},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return K},SERVER_PROPS_SSG_CONFLICT:function(){return z},SERVER_RUNTIME:function(){return ei},SSG_FALLBACK_EXPORT_ERROR:function(){return en},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return $},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return q},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return i},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return ee},WEBPACK_LAYERS:function(){return ec},WEBPACK_RESOURCE_QUERIES:function(){return el},WEB_SOCKET_MAX_RECONNECTIONS:function(){return es}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i="text/plain",s="text/html; charset=utf-8",o="application/json; charset=utf-8",c="nxtP",l="nxtI",u="x-matched-path",d="x-prerender-revalidate",m="x-prerender-revalidate-if-generated",f=".segments",h=".segment.rsc",p=".rsc",_=".action",g=".json",x=".meta",E=".body",S="x-next-cache-tags",R="x-next-revalidated-tags",b="x-next-revalidate-tag-token",v="next-resume",P=128,y=256,T=1024,A="_N_T_",O=31536e3,I=0xfffffffe,C="middleware",N=`(?:src/)?${C}`,w="proxy",j=`(?:src/)?${w}`,L="instrumentation",D="private-next-pages",M="private-dot-next",k="private-next-root-dir",F="private-next-app-dir",U="private-next-rsc-mod-ref-proxy",H="private-next-rsc-action-validate",G="private-next-rsc-server-reference",X="private-next-rsc-cache-wrapper",B="private-next-rsc-track-dynamic-import",W="private-next-rsc-action-encryption",V="private-next-rsc-action-client-wrapper",Y="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",$="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",K="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",z="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",q="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",Q="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",J="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",Z="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",ee="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",et="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",er='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',en="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",ea=["app","pages","components","lib","src"],ei={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},es=12,eo={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},ec={...eo,GROUP:{builtinReact:[eo.reactServerComponents,eo.actionBrowser],serverOnly:[eo.reactServerComponents,eo.actionBrowser,eo.instrument,eo.middleware],neutralTarget:[eo.apiNode,eo.apiEdge],clientOnly:[eo.serverSideRendering,eo.appPagesBrowser],bundled:[eo.reactServerComponents,eo.actionBrowser,eo.serverSideRendering,eo.appPagesBrowser,eo.shared,eo.instrument,eo.middleware],appPages:[eo.reactServerComponents,eo.serverSideRendering,eo.appPagesBrowser,eo.actionBrowser]}},el={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},630655,e=>{"use strict";var t=e.i(907358),r=e.i(777616);function n(){let e=(0,r.getAppServices)();return{trackEvent:(0,t.useCallback)((t,r)=>{e.analytics.track(t,r)},[e]),trackPageview:(0,t.useCallback)(t=>{e.analytics.trackPageview(t)},[e])}}e.s(["useAnalytics",()=>n])},216033,e=>{"use strict";e.s(["AnalyticsEvents",0,{PAGE_VIEW:"pageview",PAGE_SCROLL:"page_scroll",PAGE_EXIT:"page_exit",SCROLL_DEPTH:"scroll_depth",BUTTON_CLICK:"button_click",LINK_CLICK:"link_click",FORM_SUBMIT:"form_submit",FORM_START:"form_start",FORM_ERROR:"form_error",FORM_FIELD_FOCUS:"form_field_focus",PRODUCT_VIEW:"product_view",PRODUCT_ADD_TO_CART:"product_add_to_cart",PRODUCT_REMOVE_FROM_CART:"product_remove_from_cart",PRODUCT_PURCHASE:"product_purchase",PRODUCT_WISHLIST_ADD:"product_wishlist_add",PRODUCT_WISHLIST_REMOVE:"product_wishlist_remove",PRODUCT_TAB_SWITCH:"product_tab_switch",SEARCH:"search",FILTER_APPLY:"filter_apply",FILTER_CLEAR:"filter_clear",USER_SIGNUP:"user_signup",USER_LOGIN:"user_login",USER_LOGOUT:"user_logout",USER_PROFILE_UPDATE:"user_profile_update",BLOG_POST_VIEW:"blog_post_view",VIDEO_PLAY:"video_play",VIDEO_PAUSE:"video_pause",VIDEO_COMPLETE:"video_complete",DOWNLOAD:"download",MODAL_OPEN:"modal_open",MODAL_CLOSE:"modal_close",TOGGLE_SWITCH:"toggle_switch",ACCORDION_TOGGLE:"accordion_toggle",TAB_SWITCH:"tab_switch",TOC_CLICK:"toc_click",ERROR:"error",PERFORMANCE:"performance",API_ERROR:"api_error",API_SUCCESS:"api_success",QUOTE_REQUEST:"quote_request",CONTACT_FORM_SUBMIT:"contact_form_submit",NEWSLETTER_SUBSCRIBE:"newsletter_subscribe",BROCHURE_DOWNLOAD:"brochure_download"}])},7284,e=>{"use strict";function t(){for(var e,t,r=0,n="",a=arguments.length;rt])},676525,e=>{"use strict";var t=e.i(452797),r=e.i(184868),n=e.i(111023);let a={primary:"bg-primary text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl",secondary:"bg-secondary text-white shadow-md hover:shadow-secondary/30 hover:shadow-2xl",accent:"bg-accent text-primary-dark shadow-md hover:shadow-accent/30 hover:shadow-2xl",saturated:"bg-saturated text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl",outline:"border-2 border-primary bg-transparent text-primary hover:text-white hover:shadow-primary/20 hover:shadow-xl",ghost:"text-primary hover:shadow-lg",white:"bg-white text-primary shadow-md hover:shadow-primary/30 hover:shadow-2xl hover:text-white",destructive:"bg-destructive text-destructive-foreground shadow-md hover:shadow-destructive/30 hover:shadow-2xl"},i={sm:"h-9 px-4 text-sm md:text-base",md:"h-11 px-6 text-base md:text-lg",lg:"h-14 px-5 md:px-8 text-base md:text-lg",xl:"h-16 px-6 md:px-10 text-lg md:text-xl"},s={primary:"bg-primary-dark",secondary:"bg-secondary-light",accent:"bg-accent-dark",saturated:"bg-primary",outline:"bg-primary",ghost:"bg-primary-light/10",white:"bg-primary-light",destructive:"bg-destructive/90"};function o({variant:e="primary"}){return(0,t.jsx)("span",{className:(0,n.cn)("absolute inset-0 translate-y-[101%] group-hover/btn:translate-y-0 transition-transform duration-500 ease-out",s[e])})}function c({className:e,variant:s="primary",size:c="md",href:l,...u}){let d=function(e="primary",t="md",r){return(0,n.cn)("inline-flex items-center justify-center whitespace-nowrap rounded-full font-semibold transition-all duration-500 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none active:scale-95 hover:-translate-y-1 hover:scale-[1.02] relative overflow-hidden group/btn isolate",a[e],i[t],r)}(s,c,e),m=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:(0,n.cn)("relative z-10 flex items-center justify-center gap-2 transition-colors duration-500","white"===s?"group-hover/btn:text-primary-dark":""),children:u.children}),(0,t.jsx)(o,{variant:s})]});return l?(0,t.jsx)(r.default,{href:l,className:d,children:m}):(0,t.jsx)("button",{className:d,...u,children:m})}e.s(["Button",()=>c])},445774,370476,575003,982016,105050,801206,587778,9797,e=>{"use strict";var t=e.i(111023);e.i(676525);var r=e.i(452797);function n({className:e,children:n,...a}){return(0,r.jsx)("section",{className:(0,t.cn)("py-16 md:py-28 lg:py-36 overflow-hidden content-visibility-auto",e),...a,children:n})}function a({className:e,children:n,...a}){return(0,r.jsx)("div",{className:(0,t.cn)("container mx-auto px-4 md:px-12 lg:px-16 max-w-7xl",e),...a,children:n})}function i({level:e=2,children:n,className:a,subtitle:i,align:s="left"}){let o=`h${e}`;return(0,r.jsxs)("div",{className:(0,t.cn)("mb-6 md:mb-12 text-primary",{left:"text-left",center:"text-center mx-auto",right:"text-right"}[s],a),children:[i&&(0,r.jsx)("span",{className:"inline-block text-accent font-bold tracking-widest uppercase text-xs md:text-sm mb-3 md:mb-4 animate-fade-in",children:i}),(0,r.jsx)(o,{className:(0,t.cn)({1:"text-2xl md:text-4xl lg:text-5xl font-bold leading-[1.1] tracking-tight",2:"text-xl md:text-3xl lg:text-4xl font-bold leading-[1.2] tracking-tight",3:"text-lg md:text-2xl lg:text-3xl font-bold leading-[1.3] tracking-tight",4:"text-lg md:text-xl lg:text-2xl font-bold leading-[1.4]",5:"text-base md:text-lg font-bold leading-[1.5]",6:"text-base md:text-lg font-semibold leading-[1.6]"}[e]),children:n})]})}function s({className:e,children:n,tag:a="div",...i}){return(0,r.jsx)(a,{className:(0,t.cn)("premium-card overflow-hidden",e),...i,children:n})}function o({className:e,...n}){return(0,r.jsx)("input",{className:(0,t.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg",e),...n})}function c({className:e,...n}){return(0,r.jsx)("textarea",{className:(0,t.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg resize-none",e),...n})}function l({className:e,...n}){return(0,r.jsx)("label",{className:(0,t.cn)("text-[10px] md:text-xs font-extrabold text-primary uppercase tracking-widest",e),...n})}e.s(["Section",()=>n],370476),e.s(["Container",()=>a],575003),e.s(["Heading",()=>i],982016),e.s(["Card",()=>s],105050),e.s(["Input",()=>o],801206),e.s(["Textarea",()=>c],587778),e.s(["Label",()=>l],9797),e.s([],445774)},759095,e=>{"use strict";var t=e.i(452797),r=e.i(907358);e.i(445774);var n=e.i(111023);function a({children:e,className:a,threshold:i=.1,delay:s=0}){let[o,c]=(0,r.useState)(!1),l=(0,r.useRef)(null);return(0,r.useEffect)(()=>{let e=new IntersectionObserver(([t])=>{t.isIntersecting&&(c(!0),e.unobserve(t.target))},{threshold:i}),t=l.current;return t&&e.observe(t),()=>{t&&e.unobserve(t)}},[i]),(0,t.jsx)("div",{ref:l,className:(0,n.cn)("reveal-on-scroll",o&&"is-visible",a),style:{transitionDelay:`${s}ms`},children:e})}e.s(["default",()=>a])},73191,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={callServer:function(){return i.callServer},createServerReference:function(){return o.createServerReference},findSourceMapURL:function(){return s.findSourceMapURL}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(273136),s=e.r(694658),o=e.r(429220)},833128,e=>{"use strict";var t=e.i(452797),r=e.i(907358),n=e.i(190422);e.i(445774);var a=e.i(676525),i=e.i(982016),s=e.i(105050),o=e.i(801206),c=e.i(587778),l=e.i(9797),u=e.i(73191);let d=(0,u.createServerReference)("406fa8a8e7f827b5ac517f1985fa7a67a217b1e6b5",u.callServer,void 0,u.findSourceMapURL,"sendContactFormAction");var m=e.i(630655),f=e.i(216033);function h(){let e=(0,n.useTranslations)("Contact"),{trackEvent:u}=(0,m.useAnalytics)(),[h,p]=(0,r.useState)("idle"),[_,g]=(0,r.useState)(!1),x=e=>{_||(g(!0),u(f.AnalyticsEvents.FORM_START,{form_id:"contact_form",form_name:"Contact"})),u(f.AnalyticsEvents.FORM_FIELD_FOCUS,{form_id:"contact_form",field_id:e})};async function E(e){e.preventDefault(),p("submitting");let t=new FormData(e.currentTarget),r=t.get("email");try{let n=await d(t);n?.success?(u("contact_form_submission",{form_type:"general",email:r}),p("success"),e.target.reset()):(console.error("Contact form submission failed:",{email:r,error:n.error}),u(f.AnalyticsEvents.FORM_ERROR,{form_id:"contact_form",error:n.error||"submission_failed"}),p("error"))}catch(e){console.error("Contact form submission error:",{email:r,error:e}),u(f.AnalyticsEvents.FORM_ERROR,{form_id:"contact_form",error:e.message||"unexpected_error"}),p("error")}}return"success"===h?(0,t.jsxs)(s.Card,{className:"p-6 md:p-12 rounded-2xl md:rounded-[40px] border-none shadow-2xl text-center",role:"alert","aria-live":"polite",children:[(0,t.jsx)("div",{className:"w-20 h-20 bg-accent rounded-full flex items-center justify-center mx-auto mb-6 shadow-lg shadow-accent/20",children:(0,t.jsx)("svg",{className:"w-10 h-10 text-primary-dark",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:3,d:"M5 13l4 4L19 7"})})}),(0,t.jsx)(i.Heading,{level:3,className:"mb-4",children:e("form.successTitle")||"Message Sent!"}),(0,t.jsx)("p",{className:"text-text-secondary text-lg mb-8",children:e("form.successDesc")||"Thank you for your message. We will get back to you as soon as possible."}),(0,t.jsx)(a.Button,{onClick:()=>p("idle"),variant:"saturated",children:e("form.sendAnother")||"Send another message"})]}):"error"===h?(0,t.jsxs)(s.Card,{className:"p-6 md:p-12 rounded-2xl md:rounded-[40px] border-destructive/20 shadow-2xl text-center bg-destructive/5 animate-slide-up",role:"alert","aria-live":"assertive",children:[(0,t.jsx)("div",{className:"w-20 h-20 bg-destructive rounded-full flex items-center justify-center mx-auto mb-6 shadow-lg shadow-destructive/20",children:(0,t.jsxs)("svg",{className:"w-10 h-10 text-destructive-foreground",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:"2",children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,t.jsx)("line",{x1:"15",y1:"9",x2:"9",y2:"15",strokeLinecap:"round",strokeLinejoin:"round"}),(0,t.jsx)("line",{x1:"9",y1:"9",x2:"15",y2:"15",strokeLinecap:"round",strokeLinejoin:"round"})]})}),(0,t.jsx)(i.Heading,{level:3,className:"mb-4 text-destructive font-black",children:e("form.errorTitle")||"Submission Failed!"}),(0,t.jsx)("p",{className:"text-destructive/80 text-lg mb-8 leading-relaxed font-medium",children:e("form.error")||"Something went wrong. Please check your input and try again."}),(0,t.jsx)(a.Button,{onClick:()=>p("idle"),variant:"destructive",size:"lg",className:"w-full",children:e("form.tryAgain")||"Try Again"})]}):(0,t.jsxs)(s.Card,{className:"p-6 md:p-12 rounded-2xl md:rounded-[40px] border-none shadow-2xl animate-slide-up",children:[(0,t.jsx)(i.Heading,{level:3,subtitle:e("form.subtitle"),className:"mb-6 md:mb-10",children:e("form.title")}),(0,t.jsxs)("form",{id:"contact-form",onSubmit:E,className:"grid grid-cols-1 md:grid-cols-2 gap-4 md:gap-8",children:[(0,t.jsx)("input",{type:"text",name:"company_website",tabIndex:-1,autoComplete:"off",style:{display:"none"},"aria-hidden":"true"}),(0,t.jsxs)("div",{className:"space-y-1 md:space-y-2",children:[(0,t.jsx)(l.Label,{htmlFor:"contact-name",children:e("form.name")}),(0,t.jsx)(o.Input,{type:"text",id:"contact-name",name:"name",autoComplete:"name",enterKeyHint:"next",onFocus:()=>x("contact-name"),required:!0})]}),(0,t.jsxs)("div",{className:"space-y-1 md:space-y-2",children:[(0,t.jsx)(l.Label,{htmlFor:"contact-email",children:e("form.email")}),(0,t.jsx)(o.Input,{type:"email",id:"contact-email",name:"email",autoComplete:"email",inputMode:"email",enterKeyHint:"next",placeholder:e("form.emailPlaceholder"),onFocus:()=>x("contact-email"),required:!0})]}),(0,t.jsxs)("div",{className:"md:col-span-2 space-y-1 md:space-y-2",children:[(0,t.jsx)(l.Label,{htmlFor:"contact-message",children:e("form.message")}),(0,t.jsx)(c.Textarea,{id:"contact-message",name:"message",rows:4,enterKeyHint:"send",placeholder:e("form.messagePlaceholder"),onFocus:()=>x("contact-message"),required:!0})]}),(0,t.jsx)("div",{className:"md:col-span-2 pt-2 md:pt-4",children:(0,t.jsx)(a.Button,{type:"submit",variant:"saturated",size:"lg",disabled:"submitting"===h,className:"w-full shadow-xl shadow-saturated/20 md:h-16 md:px-10 md:text-xl active:scale-[0.98] transition-transform",children:"submitting"===h?(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[(0,t.jsxs)("svg",{className:"animate-spin h-5 w-5 text-white",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[(0,t.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,t.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),e("form.submitting")||"Sending..."]}):e("form.submit")})})]})]})}e.s(["default",()=>h],833128)},936744,e=>{"use strict";var t=e.i(452797);let r=(0,e.i(902498).default)(()=>e.A(246796),{loadableGenerated:{modules:[408235]},ssr:!1,loading:()=>(0,t.jsx)("div",{className:"h-full w-full bg-neutral-medium flex items-center justify-center",children:(0,t.jsx)("div",{className:"animate-pulse text-primary font-medium",children:"Loading Map..."})})});function n({address:e,lat:n,lng:a}){return(0,t.jsx)(r,{locations:[{name:"E-TIB Gruppe",address:e,lat:n,lng:a}]})}e.s(["default",()=>n])},499139,e=>{"use strict";var t=e.i(452797),r=e.i(907358);function n({email:e,className:n="",children:a}){let[i,s]=(0,r.useState)(!1);return((0,r.useEffect)(()=>{s(!0)},[]),i)?(0,t.jsx)("a",{href:`mailto:${e}`,className:n,children:a||e}):(0,t.jsx)("span",{className:n,"aria-hidden":"true",children:a||e.replace("@"," [at] ").replace(/\./g," [dot] ")})}e.s(["default",()=>n])},919007,e=>{e.v(t=>Promise.all(["static/chunks/3ffd2a1cf95ceb60.js","static/chunks/f99046ae195fe277.js","static/chunks/6d182a34db4f4c54.js"].map(t=>e.l(t))).then(()=>t(502456)))},246796,e=>{e.v(t=>Promise.all(["static/chunks/c3e8a4ea96f068f8.js","static/chunks/e637d58b27e09d36.css"].map(t=>e.l(t))).then(()=>t(408235)))}]); +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="9358f49c-f520-e53d-7c34-bd757ec77584")}catch(e){}}(); +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,102227,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReflectAdapter",{enumerable:!0,get:function(){return n}});class n{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}},365278,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(496932).createAsyncLocalStorage)()},517110,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorage",{enumerable:!0,get:function(){return n.afterTaskAsyncStorageInstance}});let n=e.r(365278)},780329,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isRequestAPICallableInsideAfter:function(){return l},throwForSearchParamsAccessInUseCache:function(){return c},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(579781),s=e.r(517110);function o(e,t){throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${t}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function c(e,t){let r=Object.defineProperty(Error(`Route ${e.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(r,t),e.invalidDynamicUsageError??=r,r}function l(){let e=s.afterTaskAsyncStorage.getStore();return(null==e?void 0:e.rootTaskSpawnPhase)==="action"}},759823,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a={RenderStage:function(){return c},StagedRenderingController:function(){return l}};for(var i in a)Object.defineProperty(r,i,{enumerable:!0,get:a[i]});let s=e.r(436120),o=e.r(444841);var c=((n={})[n.Before=1]="Before",n[n.Static=2]="Static",n[n.Runtime=3]="Runtime",n[n.Dynamic=4]="Dynamic",n[n.Abandoned=5]="Abandoned",n);class l{constructor(e=null,t){this.abortSignal=e,this.hasRuntimePrefetch=t,this.currentStage=1,this.staticInterruptReason=null,this.runtimeInterruptReason=null,this.staticStageEndTime=1/0,this.runtimeStageEndTime=1/0,this.runtimeStageListeners=[],this.dynamicStageListeners=[],this.runtimeStagePromise=(0,o.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,o.createPromiseWithResolvers)(),this.mayAbandon=!1,e&&(e.addEventListener("abort",()=>{let{reason:t}=e;this.currentStage<3&&(this.runtimeStagePromise.promise.catch(u),this.runtimeStagePromise.reject(t)),(this.currentStage<4||5===this.currentStage)&&(this.dynamicStagePromise.promise.catch(u),this.dynamicStagePromise.reject(t))},{once:!0}),this.mayAbandon=!0)}onStage(e,t){if(this.currentStage>=e)t();else if(3===e)this.runtimeStageListeners.push(t);else if(4===e)this.dynamicStageListeners.push(t);else throw Object.defineProperty(new s.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}canSyncInterrupt(){if(1===this.currentStage)return!1;let e=this.hasRuntimePrefetch?4:3;return this.currentStage=3&&(this.staticStageEndTime=performance.now()+performance.timeOrigin,this.resolveRuntimeStage()),t<4&&e>=4){this.runtimeStageEndTime=performance.now()+performance.timeOrigin,this.resolveDynamicStage();return}}resolveRuntimeStage(){let e=this.runtimeStageListeners;for(let t=0;t{n.then(e.bind(null,i),t)}),void 0!==a&&(s.displayName=a),s);return this.abortSignal&&o.catch(u),o}}function u(){}},118720,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addPathSuffix",{enumerable:!0,get:function(){return a}});let n=e.r(506985);function a(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:i}=(0,n.parsePath)(e);return`${r}${t}${a}${i}`}},446247,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addLocale",{enumerable:!0,get:function(){return i}});let n=e.r(688391),a=e.r(712550);function i(e,t,r,i){if(!t||t===r)return e;let s=e.toLowerCase();return!i&&((0,a.pathHasPrefix)(s,"/api")||(0,a.pathHasPrefix)(s,`/${t.toLowerCase()}`))?e:(0,n.addPathPrefix)(e,`/${t}`)}},971560,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"formatNextPathnameInfo",{enumerable:!0,get:function(){return o}});let n=e.r(895708),a=e.r(688391),i=e.r(118720),s=e.r(446247);function o(e){let t=(0,s.addLocale)(e.pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix);return(e.buildId||!e.trailingSlash)&&(t=(0,n.removeTrailingSlash)(t)),e.buildId&&(t=(0,i.addPathSuffix)((0,a.addPathPrefix)(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=(0,a.addPathPrefix)(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:(0,i.addPathSuffix)(t,"/"):(0,n.removeTrailingSlash)(t)}},866140,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"normalizeLocalePath",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e,t){let r;if(!t)return{pathname:e};let a=n.get(t);a||(a=t.map(e=>e.toLowerCase()),n.set(t,a));let i=e.split("/",2);if(!i[1])return{pathname:e};let s=i[1].toLowerCase(),o=a.indexOf(s);return o<0?{pathname:e}:(r=t[o],{pathname:e=e.slice(r.length+1)||"/",detectedLocale:r})}},857436,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removePathPrefix",{enumerable:!0,get:function(){return a}});let n=e.r(712550);function a(e,t){if(!(0,n.pathHasPrefix)(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:`/${r}`}},707723,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getNextPathnameInfo",{enumerable:!0,get:function(){return s}});let n=e.r(866140),a=e.r(857436),i=e.r(712550);function s(e,t){let{basePath:r,i18n:s,trailingSlash:o}=t.nextConfig??{},c={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):o};r&&(0,i.pathHasPrefix)(c.pathname,r)&&(c.pathname=(0,a.removePathPrefix)(c.pathname,r),c.basePath=r);let l=c.pathname;if(c.pathname.startsWith("/_next/data/")&&c.pathname.endsWith(".json")){let e=c.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");c.buildId=e[0],l="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(c.pathname=l)}if(s){let e=t.i18nProvider?t.i18nProvider.analyze(c.pathname):(0,n.normalizeLocalePath)(c.pathname,s.locales);c.locale=e.detectedLocale,c.pathname=e.pathname??c.pathname,!e.detectedLocale&&c.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(l):(0,n.normalizeLocalePath)(l,s.locales)).detectedLocale&&(c.locale=e.detectedLocale)}return c}},955973,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_SUFFIX:function(){return g},APP_DIR_ALIAS:function(){return U},CACHE_ONE_YEAR:function(){return I},DOT_NEXT_ALIAS:function(){return M},ESLINT_DEFAULT_DIRS:function(){return ea},GSP_NO_RETURNED_VALUE:function(){return J},GSSP_COMPONENT_MEMBER_ERROR:function(){return et},GSSP_NO_RETURNED_VALUE:function(){return Z},HTML_CONTENT_TYPE_HEADER:function(){return s},INFINITE_CACHE:function(){return y},INSTRUMENTATION_HOOK_FILENAME:function(){return w},JSON_CONTENT_TYPE_HEADER:function(){return o},MATCHED_PATH_HEADER:function(){return u},MIDDLEWARE_FILENAME:function(){return C},MIDDLEWARE_LOCATION_REGEXP:function(){return N},NEXT_BODY_SUFFIX:function(){return S},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return O},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return x},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return b},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return A},NEXT_CACHE_TAGS_HEADER:function(){return R},NEXT_CACHE_TAG_MAX_ITEMS:function(){return v},NEXT_CACHE_TAG_MAX_LENGTH:function(){return T},NEXT_DATA_SUFFIX:function(){return h},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return l},NEXT_META_SUFFIX:function(){return E},NEXT_QUERY_PARAM_PREFIX:function(){return c},NEXT_RESUME_HEADER:function(){return P},NON_STANDARD_NODE_ENV:function(){return er},PAGES_DIR_ALIAS:function(){return D},PRERENDER_REVALIDATE_HEADER:function(){return d},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return m},PROXY_FILENAME:function(){return j},PROXY_LOCATION_REGEXP:function(){return L},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return Y},ROOT_DIR_ALIAS:function(){return F},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return V},RSC_ACTION_ENCRYPTION_ALIAS:function(){return W},RSC_ACTION_PROXY_ALIAS:function(){return G},RSC_ACTION_VALIDATE_ALIAS:function(){return H},RSC_CACHE_WRAPPER_ALIAS:function(){return X},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return B},RSC_MOD_REF_PROXY_ALIAS:function(){return k},RSC_SEGMENTS_DIR_SUFFIX:function(){return f},RSC_SEGMENT_SUFFIX:function(){return _},RSC_SUFFIX:function(){return p},SERVER_PROPS_EXPORT_ERROR:function(){return Q},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return K},SERVER_PROPS_SSG_CONFLICT:function(){return z},SERVER_RUNTIME:function(){return ei},SSG_FALLBACK_EXPORT_ERROR:function(){return en},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return $},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return q},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return i},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return ee},WEBPACK_LAYERS:function(){return ec},WEBPACK_RESOURCE_QUERIES:function(){return el},WEB_SOCKET_MAX_RECONNECTIONS:function(){return es}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i="text/plain",s="text/html; charset=utf-8",o="application/json; charset=utf-8",c="nxtP",l="nxtI",u="x-matched-path",d="x-prerender-revalidate",m="x-prerender-revalidate-if-generated",f=".segments",_=".segment.rsc",p=".rsc",g=".action",h=".json",E=".meta",S=".body",R="x-next-cache-tags",x="x-next-revalidated-tags",b="x-next-revalidate-tag-token",P="next-resume",v=128,T=256,A=1024,O="_N_T_",I=31536e3,y=0xfffffffe,C="middleware",N=`(?:src/)?${C}`,j="proxy",L=`(?:src/)?${j}`,w="instrumentation",D="private-next-pages",M="private-dot-next",F="private-next-root-dir",U="private-next-app-dir",k="private-next-rsc-mod-ref-proxy",H="private-next-rsc-action-validate",G="private-next-rsc-server-reference",X="private-next-rsc-cache-wrapper",B="private-next-rsc-track-dynamic-import",W="private-next-rsc-action-encryption",V="private-next-rsc-action-client-wrapper",Y="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",$="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",K="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",z="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",q="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",Q="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",J="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",Z="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",ee="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",et="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",er='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',en="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",ea=["app","pages","components","lib","src"],ei={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},es=12,eo={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},ec={...eo,GROUP:{builtinReact:[eo.reactServerComponents,eo.actionBrowser],serverOnly:[eo.reactServerComponents,eo.actionBrowser,eo.instrument,eo.middleware],neutralTarget:[eo.apiNode,eo.apiEdge],clientOnly:[eo.serverSideRendering,eo.appPagesBrowser],bundled:[eo.reactServerComponents,eo.actionBrowser,eo.serverSideRendering,eo.appPagesBrowser,eo.shared,eo.instrument,eo.middleware],appPages:[eo.reactServerComponents,eo.serverSideRendering,eo.appPagesBrowser,eo.actionBrowser]}},el={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},630655,e=>{"use strict";var t=e.i(907358),r=e.i(777616);function n(){let e=(0,r.getAppServices)();return{trackEvent:(0,t.useCallback)((t,r)=>{e.analytics.track(t,r)},[e]),trackPageview:(0,t.useCallback)(t=>{e.analytics.trackPageview(t)},[e])}}e.s(["useAnalytics",()=>n])},216033,e=>{"use strict";e.s(["AnalyticsEvents",0,{PAGE_VIEW:"pageview",PAGE_SCROLL:"page_scroll",PAGE_EXIT:"page_exit",SCROLL_DEPTH:"scroll_depth",BUTTON_CLICK:"button_click",LINK_CLICK:"link_click",FORM_SUBMIT:"form_submit",FORM_START:"form_start",FORM_ERROR:"form_error",FORM_FIELD_FOCUS:"form_field_focus",PRODUCT_VIEW:"product_view",PRODUCT_ADD_TO_CART:"product_add_to_cart",PRODUCT_REMOVE_FROM_CART:"product_remove_from_cart",PRODUCT_PURCHASE:"product_purchase",PRODUCT_WISHLIST_ADD:"product_wishlist_add",PRODUCT_WISHLIST_REMOVE:"product_wishlist_remove",PRODUCT_TAB_SWITCH:"product_tab_switch",SEARCH:"search",FILTER_APPLY:"filter_apply",FILTER_CLEAR:"filter_clear",USER_SIGNUP:"user_signup",USER_LOGIN:"user_login",USER_LOGOUT:"user_logout",USER_PROFILE_UPDATE:"user_profile_update",BLOG_POST_VIEW:"blog_post_view",VIDEO_PLAY:"video_play",VIDEO_PAUSE:"video_pause",VIDEO_COMPLETE:"video_complete",DOWNLOAD:"download",MODAL_OPEN:"modal_open",MODAL_CLOSE:"modal_close",TOGGLE_SWITCH:"toggle_switch",ACCORDION_TOGGLE:"accordion_toggle",TAB_SWITCH:"tab_switch",TOC_CLICK:"toc_click",ERROR:"error",PERFORMANCE:"performance",API_ERROR:"api_error",API_SUCCESS:"api_success",QUOTE_REQUEST:"quote_request",CONTACT_FORM_SUBMIT:"contact_form_submit",NEWSLETTER_SUBSCRIBE:"newsletter_subscribe",BROCHURE_DOWNLOAD:"brochure_download"}])},445774,370476,575003,982016,105050,801206,587778,9797,e=>{"use strict";var t=e.i(111023);e.i(676525);var r=e.i(452797);function n({className:e,children:n,...a}){return(0,r.jsx)("section",{className:(0,t.cn)("py-16 md:py-28 lg:py-36 overflow-hidden content-visibility-auto",e),...a,children:n})}function a({className:e,children:n,...a}){return(0,r.jsx)("div",{className:(0,t.cn)("container mx-auto px-4 md:px-12 lg:px-16 max-w-7xl",e),...a,children:n})}function i({level:e=2,children:n,className:a,subtitle:i,align:s="left"}){let o=`h${e}`;return(0,r.jsxs)("div",{className:(0,t.cn)("mb-6 md:mb-12 text-primary",{left:"text-left",center:"text-center mx-auto",right:"text-right"}[s],a),children:[i&&(0,r.jsx)("span",{className:"inline-block text-accent font-bold tracking-widest uppercase text-xs md:text-sm mb-3 md:mb-4 animate-fade-in",children:i}),(0,r.jsx)(o,{className:(0,t.cn)({1:"text-2xl md:text-4xl lg:text-5xl font-bold leading-[1.1] tracking-tight",2:"text-xl md:text-3xl lg:text-4xl font-bold leading-[1.2] tracking-tight",3:"text-lg md:text-2xl lg:text-3xl font-bold leading-[1.3] tracking-tight",4:"text-lg md:text-xl lg:text-2xl font-bold leading-[1.4]",5:"text-base md:text-lg font-bold leading-[1.5]",6:"text-base md:text-lg font-semibold leading-[1.6]"}[e]),children:n})]})}function s({className:e,children:n,tag:a="div",...i}){return(0,r.jsx)(a,{className:(0,t.cn)("premium-card overflow-hidden",e),...i,children:n})}function o({className:e,...n}){return(0,r.jsx)("input",{className:(0,t.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg",e),...n})}function c({className:e,...n}){return(0,r.jsx)("textarea",{className:(0,t.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg resize-none",e),...n})}function l({className:e,...n}){return(0,r.jsx)("label",{className:(0,t.cn)("text-[10px] md:text-xs font-extrabold text-primary uppercase tracking-widest",e),...n})}e.s(["Section",()=>n],370476),e.s(["Container",()=>a],575003),e.s(["Heading",()=>i],982016),e.s(["Card",()=>s],105050),e.s(["Input",()=>o],801206),e.s(["Textarea",()=>c],587778),e.s(["Label",()=>l],9797),e.s([],445774)},759095,e=>{"use strict";var t=e.i(452797),r=e.i(907358);e.i(445774);var n=e.i(111023);function a({children:e,className:a,threshold:i=.1,delay:s=0}){let[o,c]=(0,r.useState)(!1),l=(0,r.useRef)(null);return(0,r.useEffect)(()=>{let e=new IntersectionObserver(([t])=>{t.isIntersecting&&(c(!0),e.unobserve(t.target))},{threshold:i}),t=l.current;return t&&e.observe(t),()=>{t&&e.unobserve(t)}},[i]),(0,t.jsx)("div",{ref:l,className:(0,n.cn)("reveal-on-scroll",o&&"is-visible",a),style:{transitionDelay:`${s}ms`},children:e})}e.s(["default",()=>a])},73191,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={callServer:function(){return i.callServer},createServerReference:function(){return o.createServerReference},findSourceMapURL:function(){return s.findSourceMapURL}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(273136),s=e.r(694658),o=e.r(429220)},833128,e=>{"use strict";var t=e.i(452797),r=e.i(907358),n=e.i(190422);e.i(445774);var a=e.i(676525),i=e.i(982016),s=e.i(105050),o=e.i(801206),c=e.i(587778),l=e.i(9797),u=e.i(73191);let d=(0,u.createServerReference)("406fa8a8e7f827b5ac517f1985fa7a67a217b1e6b5",u.callServer,void 0,u.findSourceMapURL,"sendContactFormAction");var m=e.i(630655),f=e.i(216033);function _(){let e=(0,n.useTranslations)("Contact"),{trackEvent:u}=(0,m.useAnalytics)(),[_,p]=(0,r.useState)("idle"),[g,h]=(0,r.useState)(!1),E=e=>{g||(h(!0),u(f.AnalyticsEvents.FORM_START,{form_id:"contact_form",form_name:"Contact"})),u(f.AnalyticsEvents.FORM_FIELD_FOCUS,{form_id:"contact_form",field_id:e})};async function S(e){e.preventDefault(),p("submitting");let t=new FormData(e.currentTarget),r=t.get("email");try{let n=await d(t);n?.success?(u("contact_form_submission",{form_type:"general",email:r}),p("success"),e.target.reset()):(console.error("Contact form submission failed:",{email:r,error:n.error}),u(f.AnalyticsEvents.FORM_ERROR,{form_id:"contact_form",error:n.error||"submission_failed"}),p("error"))}catch(e){console.error("Contact form submission error:",{email:r,error:e}),u(f.AnalyticsEvents.FORM_ERROR,{form_id:"contact_form",error:e.message||"unexpected_error"}),p("error")}}return"success"===_?(0,t.jsxs)(s.Card,{className:"p-6 md:p-12 rounded-2xl md:rounded-[40px] border-none shadow-2xl text-center",role:"alert","aria-live":"polite",children:[(0,t.jsx)("div",{className:"w-20 h-20 bg-accent rounded-full flex items-center justify-center mx-auto mb-6 shadow-lg shadow-accent/20",children:(0,t.jsx)("svg",{className:"w-10 h-10 text-primary-dark",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:3,d:"M5 13l4 4L19 7"})})}),(0,t.jsx)(i.Heading,{level:3,className:"mb-4",children:e("form.successTitle")||"Message Sent!"}),(0,t.jsx)("p",{className:"text-text-secondary text-lg mb-8",children:e("form.successDesc")||"Thank you for your message. We will get back to you as soon as possible."}),(0,t.jsx)(a.Button,{onClick:()=>p("idle"),variant:"saturated",children:e("form.sendAnother")||"Send another message"})]}):"error"===_?(0,t.jsxs)(s.Card,{className:"p-6 md:p-12 rounded-2xl md:rounded-[40px] border-destructive/20 shadow-2xl text-center bg-destructive/5 animate-slide-up",role:"alert","aria-live":"assertive",children:[(0,t.jsx)("div",{className:"w-20 h-20 bg-destructive rounded-full flex items-center justify-center mx-auto mb-6 shadow-lg shadow-destructive/20",children:(0,t.jsxs)("svg",{className:"w-10 h-10 text-destructive-foreground",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:"2",children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,t.jsx)("line",{x1:"15",y1:"9",x2:"9",y2:"15",strokeLinecap:"round",strokeLinejoin:"round"}),(0,t.jsx)("line",{x1:"9",y1:"9",x2:"15",y2:"15",strokeLinecap:"round",strokeLinejoin:"round"})]})}),(0,t.jsx)(i.Heading,{level:3,className:"mb-4 text-destructive font-black",children:e("form.errorTitle")||"Submission Failed!"}),(0,t.jsx)("p",{className:"text-destructive/80 text-lg mb-8 leading-relaxed font-medium",children:e("form.error")||"Something went wrong. Please check your input and try again."}),(0,t.jsx)(a.Button,{onClick:()=>p("idle"),variant:"destructive",size:"lg",className:"w-full",children:e("form.tryAgain")||"Try Again"})]}):(0,t.jsxs)(s.Card,{className:"p-6 md:p-12 rounded-2xl md:rounded-[40px] border-none shadow-2xl animate-slide-up",children:[(0,t.jsx)(i.Heading,{level:3,subtitle:e("form.subtitle"),className:"mb-6 md:mb-10",children:e("form.title")}),(0,t.jsxs)("form",{id:"contact-form",onSubmit:S,className:"grid grid-cols-1 md:grid-cols-2 gap-4 md:gap-8",children:[(0,t.jsx)("input",{type:"text",name:"company_website",tabIndex:-1,autoComplete:"off",style:{display:"none"},"aria-hidden":"true"}),(0,t.jsxs)("div",{className:"space-y-1 md:space-y-2",children:[(0,t.jsx)(l.Label,{htmlFor:"contact-name",children:e("form.name")}),(0,t.jsx)(o.Input,{type:"text",id:"contact-name",name:"name",autoComplete:"name",enterKeyHint:"next",onFocus:()=>E("contact-name"),required:!0})]}),(0,t.jsxs)("div",{className:"space-y-1 md:space-y-2",children:[(0,t.jsx)(l.Label,{htmlFor:"contact-email",children:e("form.email")}),(0,t.jsx)(o.Input,{type:"email",id:"contact-email",name:"email",autoComplete:"email",inputMode:"email",enterKeyHint:"next",placeholder:e("form.emailPlaceholder"),onFocus:()=>E("contact-email"),required:!0})]}),(0,t.jsxs)("div",{className:"md:col-span-2 space-y-1 md:space-y-2",children:[(0,t.jsx)(l.Label,{htmlFor:"contact-message",children:e("form.message")}),(0,t.jsx)(c.Textarea,{id:"contact-message",name:"message",rows:4,enterKeyHint:"send",placeholder:e("form.messagePlaceholder"),onFocus:()=>E("contact-message"),required:!0})]}),(0,t.jsx)("div",{className:"md:col-span-2 pt-2 md:pt-4",children:(0,t.jsx)(a.Button,{type:"submit",variant:"saturated",size:"lg",disabled:"submitting"===_,className:"w-full shadow-xl shadow-saturated/20 md:h-16 md:px-10 md:text-xl active:scale-[0.98] transition-transform",children:"submitting"===_?(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[(0,t.jsxs)("svg",{className:"animate-spin h-5 w-5 text-white",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[(0,t.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,t.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),e("form.submitting")||"Sending..."]}):e("form.submit")})})]})]})}e.s(["default",()=>_],833128)},936744,e=>{"use strict";var t=e.i(452797);let r=(0,e.i(902498).default)(()=>e.A(246796),{loadableGenerated:{modules:[408235]},ssr:!1,loading:()=>(0,t.jsx)("div",{className:"h-full w-full bg-neutral-medium flex items-center justify-center",children:(0,t.jsx)("div",{className:"animate-pulse text-primary font-medium",children:"Loading Map..."})})});function n({address:e,lat:n,lng:a}){return(0,t.jsx)(r,{locations:[{name:"E-TIB Gruppe",address:e,lat:n,lng:a}]})}e.s(["default",()=>n])},499139,e=>{"use strict";var t=e.i(452797),r=e.i(907358);function n({email:e,className:n="",children:a}){let[i,s]=(0,r.useState)(!1);return((0,r.useEffect)(()=>{s(!0)},[]),i)?(0,t.jsx)("a",{href:`mailto:${e}`,className:n,children:a||e}):(0,t.jsx)("span",{className:n,"aria-hidden":"true",children:a||e.replace("@"," [at] ").replace(/\./g," [dot] ")})}e.s(["default",()=>n])},919007,e=>{e.v(t=>Promise.all(["static/chunks/3ffd2a1cf95ceb60.js","static/chunks/32fec23faa4b171a.js","static/chunks/6d182a34db4f4c54.js"].map(t=>e.l(t))).then(()=>t(502456)))},246796,e=>{e.v(t=>Promise.all(["static/chunks/c3e8a4ea96f068f8.js","static/chunks/e637d58b27e09d36.css"].map(t=>e.l(t))).then(()=>t(408235)))}]); -//# debugId=9df741a5-0c29-82f4-864f-6cb1513c4bfe \ No newline at end of file +//# debugId=9358f49c-f520-e53d-7c34-bd757ec77584 \ No newline at end of file diff --git a/.next/static/chunks/a6d16f278f687ad0.js b/.next/static/chunks/d62bf387414e0748.js similarity index 98% rename from .next/static/chunks/a6d16f278f687ad0.js rename to .next/static/chunks/d62bf387414e0748.js index 3a460fdf8..29c52d0f0 100644 --- a/.next/static/chunks/a6d16f278f687ad0.js +++ b/.next/static/chunks/d62bf387414e0748.js @@ -1,4 +1,4 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="fec9e801-64b1-4857-545c-0afdeac98333")}catch(e){}}(); -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,102227,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReflectAdapter",{enumerable:!0,get:function(){return n}});class n{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}},365278,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(496932).createAsyncLocalStorage)()},517110,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorage",{enumerable:!0,get:function(){return n.afterTaskAsyncStorageInstance}});let n=e.r(365278)},780329,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isRequestAPICallableInsideAfter:function(){return c},throwForSearchParamsAccessInUseCache:function(){return u},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(579781),s=e.r(517110);function o(e,t){throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${t}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function u(e,t){let r=Object.defineProperty(Error(`Route ${e.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(r,t),e.invalidDynamicUsageError??=r,r}function c(){let e=s.afterTaskAsyncStorage.getStore();return(null==e?void 0:e.rootTaskSpawnPhase)==="action"}},759823,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a={RenderStage:function(){return u},StagedRenderingController:function(){return c}};for(var i in a)Object.defineProperty(r,i,{enumerable:!0,get:a[i]});let s=e.r(436120),o=e.r(444841);var u=((n={})[n.Before=1]="Before",n[n.Static=2]="Static",n[n.Runtime=3]="Runtime",n[n.Dynamic=4]="Dynamic",n[n.Abandoned=5]="Abandoned",n);class c{constructor(e=null,t){this.abortSignal=e,this.hasRuntimePrefetch=t,this.currentStage=1,this.staticInterruptReason=null,this.runtimeInterruptReason=null,this.staticStageEndTime=1/0,this.runtimeStageEndTime=1/0,this.runtimeStageListeners=[],this.dynamicStageListeners=[],this.runtimeStagePromise=(0,o.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,o.createPromiseWithResolvers)(),this.mayAbandon=!1,e&&(e.addEventListener("abort",()=>{let{reason:t}=e;this.currentStage<3&&(this.runtimeStagePromise.promise.catch(d),this.runtimeStagePromise.reject(t)),(this.currentStage<4||5===this.currentStage)&&(this.dynamicStagePromise.promise.catch(d),this.dynamicStagePromise.reject(t))},{once:!0}),this.mayAbandon=!0)}onStage(e,t){if(this.currentStage>=e)t();else if(3===e)this.runtimeStageListeners.push(t);else if(4===e)this.dynamicStageListeners.push(t);else throw Object.defineProperty(new s.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}canSyncInterrupt(){if(1===this.currentStage)return!1;let e=this.hasRuntimePrefetch?4:3;return this.currentStage=3&&(this.staticStageEndTime=performance.now()+performance.timeOrigin,this.resolveRuntimeStage()),t<4&&e>=4){this.runtimeStageEndTime=performance.now()+performance.timeOrigin,this.resolveDynamicStage();return}}resolveRuntimeStage(){let e=this.runtimeStageListeners;for(let t=0;t{n.then(e.bind(null,i),t)}),void 0!==a&&(s.displayName=a),s);return this.abortSignal&&o.catch(d),o}}function d(){}},118720,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addPathSuffix",{enumerable:!0,get:function(){return a}});let n=e.r(506985);function a(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:i}=(0,n.parsePath)(e);return`${r}${t}${a}${i}`}},446247,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addLocale",{enumerable:!0,get:function(){return i}});let n=e.r(688391),a=e.r(712550);function i(e,t,r,i){if(!t||t===r)return e;let s=e.toLowerCase();return!i&&((0,a.pathHasPrefix)(s,"/api")||(0,a.pathHasPrefix)(s,`/${t.toLowerCase()}`))?e:(0,n.addPathPrefix)(e,`/${t}`)}},971560,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"formatNextPathnameInfo",{enumerable:!0,get:function(){return o}});let n=e.r(895708),a=e.r(688391),i=e.r(118720),s=e.r(446247);function o(e){let t=(0,s.addLocale)(e.pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix);return(e.buildId||!e.trailingSlash)&&(t=(0,n.removeTrailingSlash)(t)),e.buildId&&(t=(0,i.addPathSuffix)((0,a.addPathPrefix)(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=(0,a.addPathPrefix)(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:(0,i.addPathSuffix)(t,"/"):(0,n.removeTrailingSlash)(t)}},866140,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"normalizeLocalePath",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e,t){let r;if(!t)return{pathname:e};let a=n.get(t);a||(a=t.map(e=>e.toLowerCase()),n.set(t,a));let i=e.split("/",2);if(!i[1])return{pathname:e};let s=i[1].toLowerCase(),o=a.indexOf(s);return o<0?{pathname:e}:(r=t[o],{pathname:e=e.slice(r.length+1)||"/",detectedLocale:r})}},857436,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removePathPrefix",{enumerable:!0,get:function(){return a}});let n=e.r(712550);function a(e,t){if(!(0,n.pathHasPrefix)(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:`/${r}`}},707723,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getNextPathnameInfo",{enumerable:!0,get:function(){return s}});let n=e.r(866140),a=e.r(857436),i=e.r(712550);function s(e,t){let{basePath:r,i18n:s,trailingSlash:o}=t.nextConfig??{},u={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):o};r&&(0,i.pathHasPrefix)(u.pathname,r)&&(u.pathname=(0,a.removePathPrefix)(u.pathname,r),u.basePath=r);let c=u.pathname;if(u.pathname.startsWith("/_next/data/")&&u.pathname.endsWith(".json")){let e=u.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");u.buildId=e[0],c="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(u.pathname=c)}if(s){let e=t.i18nProvider?t.i18nProvider.analyze(u.pathname):(0,n.normalizeLocalePath)(u.pathname,s.locales);u.locale=e.detectedLocale,u.pathname=e.pathname??u.pathname,!e.detectedLocale&&u.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(c):(0,n.normalizeLocalePath)(c,s.locales)).detectedLocale&&(u.locale=e.detectedLocale)}return u}},955973,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_SUFFIX:function(){return E},APP_DIR_ALIAS:function(){return F},CACHE_ONE_YEAR:function(){return N},DOT_NEXT_ALIAS:function(){return M},ESLINT_DEFAULT_DIRS:function(){return ea},GSP_NO_RETURNED_VALUE:function(){return J},GSSP_COMPONENT_MEMBER_ERROR:function(){return et},GSSP_NO_RETURNED_VALUE:function(){return Z},HTML_CONTENT_TYPE_HEADER:function(){return s},INFINITE_CACHE:function(){return y},INSTRUMENTATION_HOOK_FILENAME:function(){return j},JSON_CONTENT_TYPE_HEADER:function(){return o},MATCHED_PATH_HEADER:function(){return d},MIDDLEWARE_FILENAME:function(){return C},MIDDLEWARE_LOCATION_REGEXP:function(){return x},NEXT_BODY_SUFFIX:function(){return S},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return v},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return P},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return A},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return O},NEXT_CACHE_TAGS_HEADER:function(){return R},NEXT_CACHE_TAG_MAX_ITEMS:function(){return I},NEXT_CACHE_TAG_MAX_LENGTH:function(){return b},NEXT_DATA_SUFFIX:function(){return g},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return c},NEXT_META_SUFFIX:function(){return m},NEXT_QUERY_PARAM_PREFIX:function(){return u},NEXT_RESUME_HEADER:function(){return T},NON_STANDARD_NODE_ENV:function(){return er},PAGES_DIR_ALIAS:function(){return w},PRERENDER_REVALIDATE_HEADER:function(){return l},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return _},PROXY_FILENAME:function(){return L},PROXY_LOCATION_REGEXP:function(){return D},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return k},ROOT_DIR_ALIAS:function(){return X},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return $},RSC_ACTION_ENCRYPTION_ALIAS:function(){return Y},RSC_ACTION_PROXY_ALIAS:function(){return U},RSC_ACTION_VALIDATE_ALIAS:function(){return H},RSC_CACHE_WRAPPER_ALIAS:function(){return B},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return W},RSC_MOD_REF_PROXY_ALIAS:function(){return G},RSC_SEGMENTS_DIR_SUFFIX:function(){return f},RSC_SEGMENT_SUFFIX:function(){return p},RSC_SUFFIX:function(){return h},SERVER_PROPS_EXPORT_ERROR:function(){return Q},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return K},SERVER_PROPS_SSG_CONFLICT:function(){return z},SERVER_RUNTIME:function(){return ei},SSG_FALLBACK_EXPORT_ERROR:function(){return en},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return V},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return q},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return i},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return ee},WEBPACK_LAYERS:function(){return eu},WEBPACK_RESOURCE_QUERIES:function(){return ec},WEB_SOCKET_MAX_RECONNECTIONS:function(){return es}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i="text/plain",s="text/html; charset=utf-8",o="application/json; charset=utf-8",u="nxtP",c="nxtI",d="x-matched-path",l="x-prerender-revalidate",_="x-prerender-revalidate-if-generated",f=".segments",p=".segment.rsc",h=".rsc",E=".action",g=".json",m=".meta",S=".body",R="x-next-cache-tags",P="x-next-revalidated-tags",A="x-next-revalidate-tag-token",T="next-resume",I=128,b=256,O=1024,v="_N_T_",N=31536e3,y=0xfffffffe,C="middleware",x=`(?:src/)?${C}`,L="proxy",D=`(?:src/)?${L}`,j="instrumentation",w="private-next-pages",M="private-dot-next",X="private-next-root-dir",F="private-next-app-dir",G="private-next-rsc-mod-ref-proxy",H="private-next-rsc-action-validate",U="private-next-rsc-server-reference",B="private-next-rsc-cache-wrapper",W="private-next-rsc-track-dynamic-import",Y="private-next-rsc-action-encryption",$="private-next-rsc-action-client-wrapper",k="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",V="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",K="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",z="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",q="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",Q="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",J="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",Z="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",ee="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",et="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",er='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',en="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",ea=["app","pages","components","lib","src"],ei={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},es=12,eo={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},eu={...eo,GROUP:{builtinReact:[eo.reactServerComponents,eo.actionBrowser],serverOnly:[eo.reactServerComponents,eo.actionBrowser,eo.instrument,eo.middleware],neutralTarget:[eo.apiNode,eo.apiEdge],clientOnly:[eo.serverSideRendering,eo.appPagesBrowser],bundled:[eo.reactServerComponents,eo.actionBrowser,eo.serverSideRendering,eo.appPagesBrowser,eo.shared,eo.instrument,eo.middleware],appPages:[eo.reactServerComponents,eo.serverSideRendering,eo.appPagesBrowser,eo.actionBrowser]}},ec={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},987143,e=>{"use strict";var t=e.i(907358),r=e.i(976819),n=e.i(777616);function a(){let e=(0,r.usePathname)(),a=(0,r.useSearchParams)();return(0,t.useEffect)(()=>{if(!e)return;let t=(0,n.getAppServices)(),r=`${e}${a?.size?`?${a.toString()}`:""}`;t.analytics.trackPageview(r)},[e,a]),null}e.s(["default",()=>a])},565071,e=>{e.n(e.i(987143))},919007,e=>{e.v(t=>Promise.all(["static/chunks/3ffd2a1cf95ceb60.js","static/chunks/f99046ae195fe277.js","static/chunks/6d182a34db4f4c54.js"].map(t=>e.l(t))).then(()=>t(502456)))}]); +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="dd8b0c02-8c91-136c-19e4-dec49f367461")}catch(e){}}(); +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,102227,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReflectAdapter",{enumerable:!0,get:function(){return n}});class n{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}},365278,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(496932).createAsyncLocalStorage)()},517110,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorage",{enumerable:!0,get:function(){return n.afterTaskAsyncStorageInstance}});let n=e.r(365278)},780329,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isRequestAPICallableInsideAfter:function(){return c},throwForSearchParamsAccessInUseCache:function(){return u},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(579781),s=e.r(517110);function o(e,t){throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${t}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function u(e,t){let r=Object.defineProperty(Error(`Route ${e.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(r,t),e.invalidDynamicUsageError??=r,r}function c(){let e=s.afterTaskAsyncStorage.getStore();return(null==e?void 0:e.rootTaskSpawnPhase)==="action"}},759823,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a={RenderStage:function(){return u},StagedRenderingController:function(){return c}};for(var i in a)Object.defineProperty(r,i,{enumerable:!0,get:a[i]});let s=e.r(436120),o=e.r(444841);var u=((n={})[n.Before=1]="Before",n[n.Static=2]="Static",n[n.Runtime=3]="Runtime",n[n.Dynamic=4]="Dynamic",n[n.Abandoned=5]="Abandoned",n);class c{constructor(e=null,t){this.abortSignal=e,this.hasRuntimePrefetch=t,this.currentStage=1,this.staticInterruptReason=null,this.runtimeInterruptReason=null,this.staticStageEndTime=1/0,this.runtimeStageEndTime=1/0,this.runtimeStageListeners=[],this.dynamicStageListeners=[],this.runtimeStagePromise=(0,o.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,o.createPromiseWithResolvers)(),this.mayAbandon=!1,e&&(e.addEventListener("abort",()=>{let{reason:t}=e;this.currentStage<3&&(this.runtimeStagePromise.promise.catch(d),this.runtimeStagePromise.reject(t)),(this.currentStage<4||5===this.currentStage)&&(this.dynamicStagePromise.promise.catch(d),this.dynamicStagePromise.reject(t))},{once:!0}),this.mayAbandon=!0)}onStage(e,t){if(this.currentStage>=e)t();else if(3===e)this.runtimeStageListeners.push(t);else if(4===e)this.dynamicStageListeners.push(t);else throw Object.defineProperty(new s.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}canSyncInterrupt(){if(1===this.currentStage)return!1;let e=this.hasRuntimePrefetch?4:3;return this.currentStage=3&&(this.staticStageEndTime=performance.now()+performance.timeOrigin,this.resolveRuntimeStage()),t<4&&e>=4){this.runtimeStageEndTime=performance.now()+performance.timeOrigin,this.resolveDynamicStage();return}}resolveRuntimeStage(){let e=this.runtimeStageListeners;for(let t=0;t{n.then(e.bind(null,i),t)}),void 0!==a&&(s.displayName=a),s);return this.abortSignal&&o.catch(d),o}}function d(){}},118720,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addPathSuffix",{enumerable:!0,get:function(){return a}});let n=e.r(506985);function a(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:i}=(0,n.parsePath)(e);return`${r}${t}${a}${i}`}},446247,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addLocale",{enumerable:!0,get:function(){return i}});let n=e.r(688391),a=e.r(712550);function i(e,t,r,i){if(!t||t===r)return e;let s=e.toLowerCase();return!i&&((0,a.pathHasPrefix)(s,"/api")||(0,a.pathHasPrefix)(s,`/${t.toLowerCase()}`))?e:(0,n.addPathPrefix)(e,`/${t}`)}},971560,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"formatNextPathnameInfo",{enumerable:!0,get:function(){return o}});let n=e.r(895708),a=e.r(688391),i=e.r(118720),s=e.r(446247);function o(e){let t=(0,s.addLocale)(e.pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix);return(e.buildId||!e.trailingSlash)&&(t=(0,n.removeTrailingSlash)(t)),e.buildId&&(t=(0,i.addPathSuffix)((0,a.addPathPrefix)(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=(0,a.addPathPrefix)(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:(0,i.addPathSuffix)(t,"/"):(0,n.removeTrailingSlash)(t)}},866140,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"normalizeLocalePath",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e,t){let r;if(!t)return{pathname:e};let a=n.get(t);a||(a=t.map(e=>e.toLowerCase()),n.set(t,a));let i=e.split("/",2);if(!i[1])return{pathname:e};let s=i[1].toLowerCase(),o=a.indexOf(s);return o<0?{pathname:e}:(r=t[o],{pathname:e=e.slice(r.length+1)||"/",detectedLocale:r})}},857436,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removePathPrefix",{enumerable:!0,get:function(){return a}});let n=e.r(712550);function a(e,t){if(!(0,n.pathHasPrefix)(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:`/${r}`}},707723,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getNextPathnameInfo",{enumerable:!0,get:function(){return s}});let n=e.r(866140),a=e.r(857436),i=e.r(712550);function s(e,t){let{basePath:r,i18n:s,trailingSlash:o}=t.nextConfig??{},u={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):o};r&&(0,i.pathHasPrefix)(u.pathname,r)&&(u.pathname=(0,a.removePathPrefix)(u.pathname,r),u.basePath=r);let c=u.pathname;if(u.pathname.startsWith("/_next/data/")&&u.pathname.endsWith(".json")){let e=u.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");u.buildId=e[0],c="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(u.pathname=c)}if(s){let e=t.i18nProvider?t.i18nProvider.analyze(u.pathname):(0,n.normalizeLocalePath)(u.pathname,s.locales);u.locale=e.detectedLocale,u.pathname=e.pathname??u.pathname,!e.detectedLocale&&u.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(c):(0,n.normalizeLocalePath)(c,s.locales)).detectedLocale&&(u.locale=e.detectedLocale)}return u}},955973,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_SUFFIX:function(){return E},APP_DIR_ALIAS:function(){return F},CACHE_ONE_YEAR:function(){return N},DOT_NEXT_ALIAS:function(){return M},ESLINT_DEFAULT_DIRS:function(){return ea},GSP_NO_RETURNED_VALUE:function(){return J},GSSP_COMPONENT_MEMBER_ERROR:function(){return et},GSSP_NO_RETURNED_VALUE:function(){return Z},HTML_CONTENT_TYPE_HEADER:function(){return s},INFINITE_CACHE:function(){return y},INSTRUMENTATION_HOOK_FILENAME:function(){return j},JSON_CONTENT_TYPE_HEADER:function(){return o},MATCHED_PATH_HEADER:function(){return d},MIDDLEWARE_FILENAME:function(){return C},MIDDLEWARE_LOCATION_REGEXP:function(){return x},NEXT_BODY_SUFFIX:function(){return S},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return v},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return P},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return A},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return O},NEXT_CACHE_TAGS_HEADER:function(){return R},NEXT_CACHE_TAG_MAX_ITEMS:function(){return I},NEXT_CACHE_TAG_MAX_LENGTH:function(){return b},NEXT_DATA_SUFFIX:function(){return g},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return c},NEXT_META_SUFFIX:function(){return m},NEXT_QUERY_PARAM_PREFIX:function(){return u},NEXT_RESUME_HEADER:function(){return T},NON_STANDARD_NODE_ENV:function(){return er},PAGES_DIR_ALIAS:function(){return w},PRERENDER_REVALIDATE_HEADER:function(){return l},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return _},PROXY_FILENAME:function(){return L},PROXY_LOCATION_REGEXP:function(){return D},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return k},ROOT_DIR_ALIAS:function(){return X},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return $},RSC_ACTION_ENCRYPTION_ALIAS:function(){return Y},RSC_ACTION_PROXY_ALIAS:function(){return U},RSC_ACTION_VALIDATE_ALIAS:function(){return H},RSC_CACHE_WRAPPER_ALIAS:function(){return B},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return W},RSC_MOD_REF_PROXY_ALIAS:function(){return G},RSC_SEGMENTS_DIR_SUFFIX:function(){return f},RSC_SEGMENT_SUFFIX:function(){return p},RSC_SUFFIX:function(){return h},SERVER_PROPS_EXPORT_ERROR:function(){return Q},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return K},SERVER_PROPS_SSG_CONFLICT:function(){return z},SERVER_RUNTIME:function(){return ei},SSG_FALLBACK_EXPORT_ERROR:function(){return en},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return V},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return q},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return i},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return ee},WEBPACK_LAYERS:function(){return eu},WEBPACK_RESOURCE_QUERIES:function(){return ec},WEB_SOCKET_MAX_RECONNECTIONS:function(){return es}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i="text/plain",s="text/html; charset=utf-8",o="application/json; charset=utf-8",u="nxtP",c="nxtI",d="x-matched-path",l="x-prerender-revalidate",_="x-prerender-revalidate-if-generated",f=".segments",p=".segment.rsc",h=".rsc",E=".action",g=".json",m=".meta",S=".body",R="x-next-cache-tags",P="x-next-revalidated-tags",A="x-next-revalidate-tag-token",T="next-resume",I=128,b=256,O=1024,v="_N_T_",N=31536e3,y=0xfffffffe,C="middleware",x=`(?:src/)?${C}`,L="proxy",D=`(?:src/)?${L}`,j="instrumentation",w="private-next-pages",M="private-dot-next",X="private-next-root-dir",F="private-next-app-dir",G="private-next-rsc-mod-ref-proxy",H="private-next-rsc-action-validate",U="private-next-rsc-server-reference",B="private-next-rsc-cache-wrapper",W="private-next-rsc-track-dynamic-import",Y="private-next-rsc-action-encryption",$="private-next-rsc-action-client-wrapper",k="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",V="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",K="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",z="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",q="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",Q="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",J="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",Z="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",ee="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",et="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",er='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',en="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",ea=["app","pages","components","lib","src"],ei={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},es=12,eo={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},eu={...eo,GROUP:{builtinReact:[eo.reactServerComponents,eo.actionBrowser],serverOnly:[eo.reactServerComponents,eo.actionBrowser,eo.instrument,eo.middleware],neutralTarget:[eo.apiNode,eo.apiEdge],clientOnly:[eo.serverSideRendering,eo.appPagesBrowser],bundled:[eo.reactServerComponents,eo.actionBrowser,eo.serverSideRendering,eo.appPagesBrowser,eo.shared,eo.instrument,eo.middleware],appPages:[eo.reactServerComponents,eo.serverSideRendering,eo.appPagesBrowser,eo.actionBrowser]}},ec={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},987143,e=>{"use strict";var t=e.i(907358),r=e.i(976819),n=e.i(777616);function a(){let e=(0,r.usePathname)(),a=(0,r.useSearchParams)();return(0,t.useEffect)(()=>{if(!e)return;let t=(0,n.getAppServices)(),r=`${e}${a?.size?`?${a.toString()}`:""}`;t.analytics.trackPageview(r)},[e,a]),null}e.s(["default",()=>a])},565071,e=>{e.n(e.i(987143))},919007,e=>{e.v(t=>Promise.all(["static/chunks/3ffd2a1cf95ceb60.js","static/chunks/32fec23faa4b171a.js","static/chunks/6d182a34db4f4c54.js"].map(t=>e.l(t))).then(()=>t(502456)))}]); -//# debugId=fec9e801-64b1-4857-545c-0afdeac98333 \ No newline at end of file +//# debugId=dd8b0c02-8c91-136c-19e4-dec49f367461 \ No newline at end of file diff --git a/.next/static/chunks/a86ed0e5ea629175.js b/.next/static/chunks/e91fc49c513620bc.js similarity index 63% rename from .next/static/chunks/a86ed0e5ea629175.js rename to .next/static/chunks/e91fc49c513620bc.js index e35b5b230..f96d8fa5d 100644 --- a/.next/static/chunks/a86ed0e5ea629175.js +++ b/.next/static/chunks/e91fc49c513620bc.js @@ -1,4 +1,4 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="9d7aff46-7403-3270-9a87-26094c17587d")}catch(e){}}(); -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,102227,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReflectAdapter",{enumerable:!0,get:function(){return n}});class n{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}},365278,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(496932).createAsyncLocalStorage)()},517110,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorage",{enumerable:!0,get:function(){return n.afterTaskAsyncStorageInstance}});let n=e.r(365278)},780329,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isRequestAPICallableInsideAfter:function(){return u},throwForSearchParamsAccessInUseCache:function(){return c},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(579781),s=e.r(517110);function o(e,t){throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${t}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function c(e,t){let r=Object.defineProperty(Error(`Route ${e.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(r,t),e.invalidDynamicUsageError??=r,r}function u(){let e=s.afterTaskAsyncStorage.getStore();return(null==e?void 0:e.rootTaskSpawnPhase)==="action"}},759823,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a={RenderStage:function(){return c},StagedRenderingController:function(){return u}};for(var i in a)Object.defineProperty(r,i,{enumerable:!0,get:a[i]});let s=e.r(436120),o=e.r(444841);var c=((n={})[n.Before=1]="Before",n[n.Static=2]="Static",n[n.Runtime=3]="Runtime",n[n.Dynamic=4]="Dynamic",n[n.Abandoned=5]="Abandoned",n);class u{constructor(e=null,t){this.abortSignal=e,this.hasRuntimePrefetch=t,this.currentStage=1,this.staticInterruptReason=null,this.runtimeInterruptReason=null,this.staticStageEndTime=1/0,this.runtimeStageEndTime=1/0,this.runtimeStageListeners=[],this.dynamicStageListeners=[],this.runtimeStagePromise=(0,o.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,o.createPromiseWithResolvers)(),this.mayAbandon=!1,e&&(e.addEventListener("abort",()=>{let{reason:t}=e;this.currentStage<3&&(this.runtimeStagePromise.promise.catch(d),this.runtimeStagePromise.reject(t)),(this.currentStage<4||5===this.currentStage)&&(this.dynamicStagePromise.promise.catch(d),this.dynamicStagePromise.reject(t))},{once:!0}),this.mayAbandon=!0)}onStage(e,t){if(this.currentStage>=e)t();else if(3===e)this.runtimeStageListeners.push(t);else if(4===e)this.dynamicStageListeners.push(t);else throw Object.defineProperty(new s.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}canSyncInterrupt(){if(1===this.currentStage)return!1;let e=this.hasRuntimePrefetch?4:3;return this.currentStage=3&&(this.staticStageEndTime=performance.now()+performance.timeOrigin,this.resolveRuntimeStage()),t<4&&e>=4){this.runtimeStageEndTime=performance.now()+performance.timeOrigin,this.resolveDynamicStage();return}}resolveRuntimeStage(){let e=this.runtimeStageListeners;for(let t=0;t{n.then(e.bind(null,i),t)}),void 0!==a&&(s.displayName=a),s);return this.abortSignal&&o.catch(d),o}}function d(){}},118720,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addPathSuffix",{enumerable:!0,get:function(){return a}});let n=e.r(506985);function a(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:i}=(0,n.parsePath)(e);return`${r}${t}${a}${i}`}},446247,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addLocale",{enumerable:!0,get:function(){return i}});let n=e.r(688391),a=e.r(712550);function i(e,t,r,i){if(!t||t===r)return e;let s=e.toLowerCase();return!i&&((0,a.pathHasPrefix)(s,"/api")||(0,a.pathHasPrefix)(s,`/${t.toLowerCase()}`))?e:(0,n.addPathPrefix)(e,`/${t}`)}},971560,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"formatNextPathnameInfo",{enumerable:!0,get:function(){return o}});let n=e.r(895708),a=e.r(688391),i=e.r(118720),s=e.r(446247);function o(e){let t=(0,s.addLocale)(e.pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix);return(e.buildId||!e.trailingSlash)&&(t=(0,n.removeTrailingSlash)(t)),e.buildId&&(t=(0,i.addPathSuffix)((0,a.addPathPrefix)(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=(0,a.addPathPrefix)(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:(0,i.addPathSuffix)(t,"/"):(0,n.removeTrailingSlash)(t)}},866140,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"normalizeLocalePath",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e,t){let r;if(!t)return{pathname:e};let a=n.get(t);a||(a=t.map(e=>e.toLowerCase()),n.set(t,a));let i=e.split("/",2);if(!i[1])return{pathname:e};let s=i[1].toLowerCase(),o=a.indexOf(s);return o<0?{pathname:e}:(r=t[o],{pathname:e=e.slice(r.length+1)||"/",detectedLocale:r})}},857436,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removePathPrefix",{enumerable:!0,get:function(){return a}});let n=e.r(712550);function a(e,t){if(!(0,n.pathHasPrefix)(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:`/${r}`}},707723,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getNextPathnameInfo",{enumerable:!0,get:function(){return s}});let n=e.r(866140),a=e.r(857436),i=e.r(712550);function s(e,t){let{basePath:r,i18n:s,trailingSlash:o}=t.nextConfig??{},c={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):o};r&&(0,i.pathHasPrefix)(c.pathname,r)&&(c.pathname=(0,a.removePathPrefix)(c.pathname,r),c.basePath=r);let u=c.pathname;if(c.pathname.startsWith("/_next/data/")&&c.pathname.endsWith(".json")){let e=c.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");c.buildId=e[0],u="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(c.pathname=u)}if(s){let e=t.i18nProvider?t.i18nProvider.analyze(c.pathname):(0,n.normalizeLocalePath)(c.pathname,s.locales);c.locale=e.detectedLocale,c.pathname=e.pathname??c.pathname,!e.detectedLocale&&c.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(u):(0,n.normalizeLocalePath)(u,s.locales)).detectedLocale&&(c.locale=e.detectedLocale)}return c}},955973,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_SUFFIX:function(){return f},APP_DIR_ALIAS:function(){return U},CACHE_ONE_YEAR:function(){return I},DOT_NEXT_ALIAS:function(){return M},ESLINT_DEFAULT_DIRS:function(){return ea},GSP_NO_RETURNED_VALUE:function(){return J},GSSP_COMPONENT_MEMBER_ERROR:function(){return et},GSSP_NO_RETURNED_VALUE:function(){return Z},HTML_CONTENT_TYPE_HEADER:function(){return s},INFINITE_CACHE:function(){return y},INSTRUMENTATION_HOOK_FILENAME:function(){return D},JSON_CONTENT_TYPE_HEADER:function(){return o},MATCHED_PATH_HEADER:function(){return d},MIDDLEWARE_FILENAME:function(){return C},MIDDLEWARE_LOCATION_REGEXP:function(){return N},NEXT_BODY_SUFFIX:function(){return R},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return O},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return x},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return P},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return A},NEXT_CACHE_TAGS_HEADER:function(){return S},NEXT_CACHE_TAG_MAX_ITEMS:function(){return v},NEXT_CACHE_TAG_MAX_LENGTH:function(){return T},NEXT_DATA_SUFFIX:function(){return g},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return u},NEXT_META_SUFFIX:function(){return E},NEXT_QUERY_PARAM_PREFIX:function(){return c},NEXT_RESUME_HEADER:function(){return b},NON_STANDARD_NODE_ENV:function(){return er},PAGES_DIR_ALIAS:function(){return j},PRERENDER_REVALIDATE_HEADER:function(){return l},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return _},PROXY_FILENAME:function(){return w},PROXY_LOCATION_REGEXP:function(){return L},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return V},ROOT_DIR_ALIAS:function(){return k},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return Y},RSC_ACTION_ENCRYPTION_ALIAS:function(){return W},RSC_ACTION_PROXY_ALIAS:function(){return G},RSC_ACTION_VALIDATE_ALIAS:function(){return X},RSC_CACHE_WRAPPER_ALIAS:function(){return H},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return B},RSC_MOD_REF_PROXY_ALIAS:function(){return F},RSC_SEGMENTS_DIR_SUFFIX:function(){return h},RSC_SEGMENT_SUFFIX:function(){return p},RSC_SUFFIX:function(){return m},SERVER_PROPS_EXPORT_ERROR:function(){return Q},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return K},SERVER_PROPS_SSG_CONFLICT:function(){return z},SERVER_RUNTIME:function(){return ei},SSG_FALLBACK_EXPORT_ERROR:function(){return en},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return $},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return q},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return i},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return ee},WEBPACK_LAYERS:function(){return ec},WEBPACK_RESOURCE_QUERIES:function(){return eu},WEB_SOCKET_MAX_RECONNECTIONS:function(){return es}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i="text/plain",s="text/html; charset=utf-8",o="application/json; charset=utf-8",c="nxtP",u="nxtI",d="x-matched-path",l="x-prerender-revalidate",_="x-prerender-revalidate-if-generated",h=".segments",p=".segment.rsc",m=".rsc",f=".action",g=".json",E=".meta",R=".body",S="x-next-cache-tags",x="x-next-revalidated-tags",P="x-next-revalidate-tag-token",b="next-resume",v=128,T=256,A=1024,O="_N_T_",I=31536e3,y=0xfffffffe,C="middleware",N=`(?:src/)?${C}`,w="proxy",L=`(?:src/)?${w}`,D="instrumentation",j="private-next-pages",M="private-dot-next",k="private-next-root-dir",U="private-next-app-dir",F="private-next-rsc-mod-ref-proxy",X="private-next-rsc-action-validate",G="private-next-rsc-server-reference",H="private-next-rsc-cache-wrapper",B="private-next-rsc-track-dynamic-import",W="private-next-rsc-action-encryption",Y="private-next-rsc-action-client-wrapper",V="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",$="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",K="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",z="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",q="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",Q="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",J="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",Z="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",ee="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",et="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",er='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',en="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",ea=["app","pages","components","lib","src"],ei={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},es=12,eo={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},ec={...eo,GROUP:{builtinReact:[eo.reactServerComponents,eo.actionBrowser],serverOnly:[eo.reactServerComponents,eo.actionBrowser,eo.instrument,eo.middleware],neutralTarget:[eo.apiNode,eo.apiEdge],clientOnly:[eo.serverSideRendering,eo.appPagesBrowser],bundled:[eo.reactServerComponents,eo.actionBrowser,eo.serverSideRendering,eo.appPagesBrowser,eo.shared,eo.instrument,eo.middleware],appPages:[eo.reactServerComponents,eo.serverSideRendering,eo.appPagesBrowser,eo.actionBrowser]}},eu={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},630655,e=>{"use strict";var t=e.i(907358),r=e.i(777616);function n(){let e=(0,r.getAppServices)();return{trackEvent:(0,t.useCallback)((t,r)=>{e.analytics.track(t,r)},[e]),trackPageview:(0,t.useCallback)(t=>{e.analytics.trackPageview(t)},[e])}}e.s(["useAnalytics",()=>n])},216033,e=>{"use strict";e.s(["AnalyticsEvents",0,{PAGE_VIEW:"pageview",PAGE_SCROLL:"page_scroll",PAGE_EXIT:"page_exit",SCROLL_DEPTH:"scroll_depth",BUTTON_CLICK:"button_click",LINK_CLICK:"link_click",FORM_SUBMIT:"form_submit",FORM_START:"form_start",FORM_ERROR:"form_error",FORM_FIELD_FOCUS:"form_field_focus",PRODUCT_VIEW:"product_view",PRODUCT_ADD_TO_CART:"product_add_to_cart",PRODUCT_REMOVE_FROM_CART:"product_remove_from_cart",PRODUCT_PURCHASE:"product_purchase",PRODUCT_WISHLIST_ADD:"product_wishlist_add",PRODUCT_WISHLIST_REMOVE:"product_wishlist_remove",PRODUCT_TAB_SWITCH:"product_tab_switch",SEARCH:"search",FILTER_APPLY:"filter_apply",FILTER_CLEAR:"filter_clear",USER_SIGNUP:"user_signup",USER_LOGIN:"user_login",USER_LOGOUT:"user_logout",USER_PROFILE_UPDATE:"user_profile_update",BLOG_POST_VIEW:"blog_post_view",VIDEO_PLAY:"video_play",VIDEO_PAUSE:"video_pause",VIDEO_COMPLETE:"video_complete",DOWNLOAD:"download",MODAL_OPEN:"modal_open",MODAL_CLOSE:"modal_close",TOGGLE_SWITCH:"toggle_switch",ACCORDION_TOGGLE:"accordion_toggle",TAB_SWITCH:"tab_switch",TOC_CLICK:"toc_click",ERROR:"error",PERFORMANCE:"performance",API_ERROR:"api_error",API_SUCCESS:"api_success",QUOTE_REQUEST:"quote_request",CONTACT_FORM_SUBMIT:"contact_form_submit",NEWSLETTER_SUBSCRIBE:"newsletter_subscribe",BROCHURE_DOWNLOAD:"brochure_download"}])},7284,e=>{"use strict";function t(){for(var e,t,r=0,n="",a=arguments.length;rt])},676525,e=>{"use strict";var t=e.i(452797),r=e.i(184868),n=e.i(111023);let a={primary:"bg-primary text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl",secondary:"bg-secondary text-white shadow-md hover:shadow-secondary/30 hover:shadow-2xl",accent:"bg-accent text-primary-dark shadow-md hover:shadow-accent/30 hover:shadow-2xl",saturated:"bg-saturated text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl",outline:"border-2 border-primary bg-transparent text-primary hover:text-white hover:shadow-primary/20 hover:shadow-xl",ghost:"text-primary hover:shadow-lg",white:"bg-white text-primary shadow-md hover:shadow-primary/30 hover:shadow-2xl hover:text-white",destructive:"bg-destructive text-destructive-foreground shadow-md hover:shadow-destructive/30 hover:shadow-2xl"},i={sm:"h-9 px-4 text-sm md:text-base",md:"h-11 px-6 text-base md:text-lg",lg:"h-14 px-5 md:px-8 text-base md:text-lg",xl:"h-16 px-6 md:px-10 text-lg md:text-xl"},s={primary:"bg-primary-dark",secondary:"bg-secondary-light",accent:"bg-accent-dark",saturated:"bg-primary",outline:"bg-primary",ghost:"bg-primary-light/10",white:"bg-primary-light",destructive:"bg-destructive/90"};function o({variant:e="primary"}){return(0,t.jsx)("span",{className:(0,n.cn)("absolute inset-0 translate-y-[101%] group-hover/btn:translate-y-0 transition-transform duration-500 ease-out",s[e])})}function c({className:e,variant:s="primary",size:c="md",href:u,...d}){let l=function(e="primary",t="md",r){return(0,n.cn)("inline-flex items-center justify-center whitespace-nowrap rounded-full font-semibold transition-all duration-500 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none active:scale-95 hover:-translate-y-1 hover:scale-[1.02] relative overflow-hidden group/btn isolate",a[e],i[t],r)}(s,c,e),_=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:(0,n.cn)("relative z-10 flex items-center justify-center gap-2 transition-colors duration-500","white"===s?"group-hover/btn:text-primary-dark":""),children:d.children}),(0,t.jsx)(o,{variant:s})]});return u?(0,t.jsx)(r.default,{href:u,className:l,children:_}):(0,t.jsx)("button",{className:l,...d,children:_})}e.s(["Button",()=>c])},445774,370476,575003,982016,105050,801206,587778,9797,e=>{"use strict";var t=e.i(111023);e.i(676525);var r=e.i(452797);function n({className:e,children:n,...a}){return(0,r.jsx)("section",{className:(0,t.cn)("py-16 md:py-28 lg:py-36 overflow-hidden content-visibility-auto",e),...a,children:n})}function a({className:e,children:n,...a}){return(0,r.jsx)("div",{className:(0,t.cn)("container mx-auto px-4 md:px-12 lg:px-16 max-w-7xl",e),...a,children:n})}function i({level:e=2,children:n,className:a,subtitle:i,align:s="left"}){let o=`h${e}`;return(0,r.jsxs)("div",{className:(0,t.cn)("mb-6 md:mb-12 text-primary",{left:"text-left",center:"text-center mx-auto",right:"text-right"}[s],a),children:[i&&(0,r.jsx)("span",{className:"inline-block text-accent font-bold tracking-widest uppercase text-xs md:text-sm mb-3 md:mb-4 animate-fade-in",children:i}),(0,r.jsx)(o,{className:(0,t.cn)({1:"text-2xl md:text-4xl lg:text-5xl font-bold leading-[1.1] tracking-tight",2:"text-xl md:text-3xl lg:text-4xl font-bold leading-[1.2] tracking-tight",3:"text-lg md:text-2xl lg:text-3xl font-bold leading-[1.3] tracking-tight",4:"text-lg md:text-xl lg:text-2xl font-bold leading-[1.4]",5:"text-base md:text-lg font-bold leading-[1.5]",6:"text-base md:text-lg font-semibold leading-[1.6]"}[e]),children:n})]})}function s({className:e,children:n,tag:a="div",...i}){return(0,r.jsx)(a,{className:(0,t.cn)("premium-card overflow-hidden",e),...i,children:n})}function o({className:e,...n}){return(0,r.jsx)("input",{className:(0,t.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg",e),...n})}function c({className:e,...n}){return(0,r.jsx)("textarea",{className:(0,t.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg resize-none",e),...n})}function u({className:e,...n}){return(0,r.jsx)("label",{className:(0,t.cn)("text-[10px] md:text-xs font-extrabold text-primary uppercase tracking-widest",e),...n})}e.s(["Section",()=>n],370476),e.s(["Container",()=>a],575003),e.s(["Heading",()=>i],982016),e.s(["Card",()=>s],105050),e.s(["Input",()=>o],801206),e.s(["Textarea",()=>c],587778),e.s(["Label",()=>u],9797),e.s([],445774)},224038,e=>{"use strict";var t=e.i(452797);e.i(445774);var r=e.i(111023);function n({variant:e,className:n,color:a="#82ed20"}){return"circle"===e?(0,t.jsx)("svg",{className:(0,r.cn)("absolute pointer-events-none",n),"aria-hidden":"true",viewBox:"0 0 800 350",preserveAspectRatio:"none",children:(0,t.jsx)("path",{className:"animate-draw-stroke",pathLength:"1",style:{strokeDasharray:1,strokeDashoffset:1,animation:"draw-stroke 1.8s ease-in-out 0.5s forwards"},transform:"matrix(0.9791300296783447,0,0,0.9791300296783447,400,179)",strokeLinejoin:"miter",fillOpacity:"0",strokeMiterlimit:"4",stroke:a,strokeOpacity:"1",strokeWidth:"20",d:" M253,-161 C253,-161 -284.78900146484375,-201.4600067138672 -376,-21 C-469,163 67.62300109863281,174.2100067138672 256,121 C564,34 250.82899475097656,-141.6929931640625 19.10700035095215,-116.93599700927734"})}):"underline"===e?(0,t.jsx)("svg",{className:(0,r.cn)("absolute pointer-events-none",n),"aria-hidden":"true",viewBox:"-400 -55 730 60",preserveAspectRatio:"none",children:(0,t.jsx)("path",{className:"animate-draw-stroke",pathLength:"1",style:{strokeDasharray:1,strokeDashoffset:1,animation:"draw-stroke 1.8s ease-in-out 0.5s forwards"},d:"m -383.25 -6 c 55.25 -22 130.75 -33.5 293.25 -38 c 54.5 -0.5 195 -2.5 401 15",stroke:a,strokeWidth:"20",fill:"none"})}):null}e.s(["default",()=>n])},555331,e=>{"use strict";var t=e.i(907358),r=e.i(630655),n=e.i(216033);function a({path:a}){let{trackEvent:i}=(0,r.useAnalytics)();return(0,t.useEffect)(()=>{i(n.AnalyticsEvents.ERROR,{type:"404_not_found",path:a}),e.A(919007).then(e=>{e.withScope(t=>{t.setTag("status_code","404"),t.setTag("path",a),e.captureMessage(`Route Not Found: ${a}`,"warning")})})},[i,a]),null}e.s(["default",()=>a])},919007,e=>{e.v(t=>Promise.all(["static/chunks/3ffd2a1cf95ceb60.js","static/chunks/f99046ae195fe277.js","static/chunks/6d182a34db4f4c54.js"].map(t=>e.l(t))).then(()=>t(502456)))}]); +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="24540a2d-7944-b9b6-810e-8ebf8395cd63")}catch(e){}}(); +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,102227,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReflectAdapter",{enumerable:!0,get:function(){return n}});class n{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}},365278,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(496932).createAsyncLocalStorage)()},517110,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorage",{enumerable:!0,get:function(){return n.afterTaskAsyncStorageInstance}});let n=e.r(365278)},780329,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isRequestAPICallableInsideAfter:function(){return u},throwForSearchParamsAccessInUseCache:function(){return c},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(579781),s=e.r(517110);function o(e,t){throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${t}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function c(e,t){let r=Object.defineProperty(Error(`Route ${e.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(r,t),e.invalidDynamicUsageError??=r,r}function u(){let e=s.afterTaskAsyncStorage.getStore();return(null==e?void 0:e.rootTaskSpawnPhase)==="action"}},759823,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a={RenderStage:function(){return c},StagedRenderingController:function(){return u}};for(var i in a)Object.defineProperty(r,i,{enumerable:!0,get:a[i]});let s=e.r(436120),o=e.r(444841);var c=((n={})[n.Before=1]="Before",n[n.Static=2]="Static",n[n.Runtime=3]="Runtime",n[n.Dynamic=4]="Dynamic",n[n.Abandoned=5]="Abandoned",n);class u{constructor(e=null,t){this.abortSignal=e,this.hasRuntimePrefetch=t,this.currentStage=1,this.staticInterruptReason=null,this.runtimeInterruptReason=null,this.staticStageEndTime=1/0,this.runtimeStageEndTime=1/0,this.runtimeStageListeners=[],this.dynamicStageListeners=[],this.runtimeStagePromise=(0,o.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,o.createPromiseWithResolvers)(),this.mayAbandon=!1,e&&(e.addEventListener("abort",()=>{let{reason:t}=e;this.currentStage<3&&(this.runtimeStagePromise.promise.catch(d),this.runtimeStagePromise.reject(t)),(this.currentStage<4||5===this.currentStage)&&(this.dynamicStagePromise.promise.catch(d),this.dynamicStagePromise.reject(t))},{once:!0}),this.mayAbandon=!0)}onStage(e,t){if(this.currentStage>=e)t();else if(3===e)this.runtimeStageListeners.push(t);else if(4===e)this.dynamicStageListeners.push(t);else throw Object.defineProperty(new s.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}canSyncInterrupt(){if(1===this.currentStage)return!1;let e=this.hasRuntimePrefetch?4:3;return this.currentStage=3&&(this.staticStageEndTime=performance.now()+performance.timeOrigin,this.resolveRuntimeStage()),t<4&&e>=4){this.runtimeStageEndTime=performance.now()+performance.timeOrigin,this.resolveDynamicStage();return}}resolveRuntimeStage(){let e=this.runtimeStageListeners;for(let t=0;t{n.then(e.bind(null,i),t)}),void 0!==a&&(s.displayName=a),s);return this.abortSignal&&o.catch(d),o}}function d(){}},118720,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addPathSuffix",{enumerable:!0,get:function(){return a}});let n=e.r(506985);function a(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:i}=(0,n.parsePath)(e);return`${r}${t}${a}${i}`}},446247,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addLocale",{enumerable:!0,get:function(){return i}});let n=e.r(688391),a=e.r(712550);function i(e,t,r,i){if(!t||t===r)return e;let s=e.toLowerCase();return!i&&((0,a.pathHasPrefix)(s,"/api")||(0,a.pathHasPrefix)(s,`/${t.toLowerCase()}`))?e:(0,n.addPathPrefix)(e,`/${t}`)}},971560,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"formatNextPathnameInfo",{enumerable:!0,get:function(){return o}});let n=e.r(895708),a=e.r(688391),i=e.r(118720),s=e.r(446247);function o(e){let t=(0,s.addLocale)(e.pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix);return(e.buildId||!e.trailingSlash)&&(t=(0,n.removeTrailingSlash)(t)),e.buildId&&(t=(0,i.addPathSuffix)((0,a.addPathPrefix)(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=(0,a.addPathPrefix)(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:(0,i.addPathSuffix)(t,"/"):(0,n.removeTrailingSlash)(t)}},866140,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"normalizeLocalePath",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e,t){let r;if(!t)return{pathname:e};let a=n.get(t);a||(a=t.map(e=>e.toLowerCase()),n.set(t,a));let i=e.split("/",2);if(!i[1])return{pathname:e};let s=i[1].toLowerCase(),o=a.indexOf(s);return o<0?{pathname:e}:(r=t[o],{pathname:e=e.slice(r.length+1)||"/",detectedLocale:r})}},857436,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removePathPrefix",{enumerable:!0,get:function(){return a}});let n=e.r(712550);function a(e,t){if(!(0,n.pathHasPrefix)(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:`/${r}`}},707723,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getNextPathnameInfo",{enumerable:!0,get:function(){return s}});let n=e.r(866140),a=e.r(857436),i=e.r(712550);function s(e,t){let{basePath:r,i18n:s,trailingSlash:o}=t.nextConfig??{},c={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):o};r&&(0,i.pathHasPrefix)(c.pathname,r)&&(c.pathname=(0,a.removePathPrefix)(c.pathname,r),c.basePath=r);let u=c.pathname;if(c.pathname.startsWith("/_next/data/")&&c.pathname.endsWith(".json")){let e=c.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");c.buildId=e[0],u="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(c.pathname=u)}if(s){let e=t.i18nProvider?t.i18nProvider.analyze(c.pathname):(0,n.normalizeLocalePath)(c.pathname,s.locales);c.locale=e.detectedLocale,c.pathname=e.pathname??c.pathname,!e.detectedLocale&&c.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(u):(0,n.normalizeLocalePath)(u,s.locales)).detectedLocale&&(c.locale=e.detectedLocale)}return c}},955973,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_SUFFIX:function(){return g},APP_DIR_ALIAS:function(){return k},CACHE_ONE_YEAR:function(){return v},DOT_NEXT_ALIAS:function(){return M},ESLINT_DEFAULT_DIRS:function(){return ea},GSP_NO_RETURNED_VALUE:function(){return J},GSSP_COMPONENT_MEMBER_ERROR:function(){return et},GSSP_NO_RETURNED_VALUE:function(){return Z},HTML_CONTENT_TYPE_HEADER:function(){return s},INFINITE_CACHE:function(){return C},INSTRUMENTATION_HOOK_FILENAME:function(){return w},JSON_CONTENT_TYPE_HEADER:function(){return o},MATCHED_PATH_HEADER:function(){return d},MIDDLEWARE_FILENAME:function(){return N},MIDDLEWARE_LOCATION_REGEXP:function(){return y},NEXT_BODY_SUFFIX:function(){return R},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return b},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return P},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return T},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return I},NEXT_CACHE_TAGS_HEADER:function(){return S},NEXT_CACHE_TAG_MAX_ITEMS:function(){return O},NEXT_CACHE_TAG_MAX_LENGTH:function(){return x},NEXT_DATA_SUFFIX:function(){return E},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return u},NEXT_META_SUFFIX:function(){return h},NEXT_QUERY_PARAM_PREFIX:function(){return c},NEXT_RESUME_HEADER:function(){return A},NON_STANDARD_NODE_ENV:function(){return er},PAGES_DIR_ALIAS:function(){return j},PRERENDER_REVALIDATE_HEADER:function(){return l},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return _},PROXY_FILENAME:function(){return L},PROXY_LOCATION_REGEXP:function(){return D},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return V},ROOT_DIR_ALIAS:function(){return U},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return Y},RSC_ACTION_ENCRYPTION_ALIAS:function(){return W},RSC_ACTION_PROXY_ALIAS:function(){return G},RSC_ACTION_VALIDATE_ALIAS:function(){return X},RSC_CACHE_WRAPPER_ALIAS:function(){return H},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return B},RSC_MOD_REF_PROXY_ALIAS:function(){return F},RSC_SEGMENTS_DIR_SUFFIX:function(){return f},RSC_SEGMENT_SUFFIX:function(){return p},RSC_SUFFIX:function(){return m},SERVER_PROPS_EXPORT_ERROR:function(){return Q},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return K},SERVER_PROPS_SSG_CONFLICT:function(){return q},SERVER_RUNTIME:function(){return ei},SSG_FALLBACK_EXPORT_ERROR:function(){return en},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return $},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return z},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return i},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return ee},WEBPACK_LAYERS:function(){return ec},WEBPACK_RESOURCE_QUERIES:function(){return eu},WEB_SOCKET_MAX_RECONNECTIONS:function(){return es}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i="text/plain",s="text/html; charset=utf-8",o="application/json; charset=utf-8",c="nxtP",u="nxtI",d="x-matched-path",l="x-prerender-revalidate",_="x-prerender-revalidate-if-generated",f=".segments",p=".segment.rsc",m=".rsc",g=".action",E=".json",h=".meta",R=".body",S="x-next-cache-tags",P="x-next-revalidated-tags",T="x-next-revalidate-tag-token",A="next-resume",O=128,x=256,I=1024,b="_N_T_",v=31536e3,C=0xfffffffe,N="middleware",y=`(?:src/)?${N}`,L="proxy",D=`(?:src/)?${L}`,w="instrumentation",j="private-next-pages",M="private-dot-next",U="private-next-root-dir",k="private-next-app-dir",F="private-next-rsc-mod-ref-proxy",X="private-next-rsc-action-validate",G="private-next-rsc-server-reference",H="private-next-rsc-cache-wrapper",B="private-next-rsc-track-dynamic-import",W="private-next-rsc-action-encryption",Y="private-next-rsc-action-client-wrapper",V="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",$="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",K="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",q="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",z="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",Q="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",J="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",Z="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",ee="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",et="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",er='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',en="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",ea=["app","pages","components","lib","src"],ei={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},es=12,eo={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},ec={...eo,GROUP:{builtinReact:[eo.reactServerComponents,eo.actionBrowser],serverOnly:[eo.reactServerComponents,eo.actionBrowser,eo.instrument,eo.middleware],neutralTarget:[eo.apiNode,eo.apiEdge],clientOnly:[eo.serverSideRendering,eo.appPagesBrowser],bundled:[eo.reactServerComponents,eo.actionBrowser,eo.serverSideRendering,eo.appPagesBrowser,eo.shared,eo.instrument,eo.middleware],appPages:[eo.reactServerComponents,eo.serverSideRendering,eo.appPagesBrowser,eo.actionBrowser]}},eu={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},630655,e=>{"use strict";var t=e.i(907358),r=e.i(777616);function n(){let e=(0,r.getAppServices)();return{trackEvent:(0,t.useCallback)((t,r)=>{e.analytics.track(t,r)},[e]),trackPageview:(0,t.useCallback)(t=>{e.analytics.trackPageview(t)},[e])}}e.s(["useAnalytics",()=>n])},216033,e=>{"use strict";e.s(["AnalyticsEvents",0,{PAGE_VIEW:"pageview",PAGE_SCROLL:"page_scroll",PAGE_EXIT:"page_exit",SCROLL_DEPTH:"scroll_depth",BUTTON_CLICK:"button_click",LINK_CLICK:"link_click",FORM_SUBMIT:"form_submit",FORM_START:"form_start",FORM_ERROR:"form_error",FORM_FIELD_FOCUS:"form_field_focus",PRODUCT_VIEW:"product_view",PRODUCT_ADD_TO_CART:"product_add_to_cart",PRODUCT_REMOVE_FROM_CART:"product_remove_from_cart",PRODUCT_PURCHASE:"product_purchase",PRODUCT_WISHLIST_ADD:"product_wishlist_add",PRODUCT_WISHLIST_REMOVE:"product_wishlist_remove",PRODUCT_TAB_SWITCH:"product_tab_switch",SEARCH:"search",FILTER_APPLY:"filter_apply",FILTER_CLEAR:"filter_clear",USER_SIGNUP:"user_signup",USER_LOGIN:"user_login",USER_LOGOUT:"user_logout",USER_PROFILE_UPDATE:"user_profile_update",BLOG_POST_VIEW:"blog_post_view",VIDEO_PLAY:"video_play",VIDEO_PAUSE:"video_pause",VIDEO_COMPLETE:"video_complete",DOWNLOAD:"download",MODAL_OPEN:"modal_open",MODAL_CLOSE:"modal_close",TOGGLE_SWITCH:"toggle_switch",ACCORDION_TOGGLE:"accordion_toggle",TAB_SWITCH:"tab_switch",TOC_CLICK:"toc_click",ERROR:"error",PERFORMANCE:"performance",API_ERROR:"api_error",API_SUCCESS:"api_success",QUOTE_REQUEST:"quote_request",CONTACT_FORM_SUBMIT:"contact_form_submit",NEWSLETTER_SUBSCRIBE:"newsletter_subscribe",BROCHURE_DOWNLOAD:"brochure_download"}])},445774,370476,575003,982016,105050,801206,587778,9797,e=>{"use strict";var t=e.i(111023);e.i(676525);var r=e.i(452797);function n({className:e,children:n,...a}){return(0,r.jsx)("section",{className:(0,t.cn)("py-16 md:py-28 lg:py-36 overflow-hidden content-visibility-auto",e),...a,children:n})}function a({className:e,children:n,...a}){return(0,r.jsx)("div",{className:(0,t.cn)("container mx-auto px-4 md:px-12 lg:px-16 max-w-7xl",e),...a,children:n})}function i({level:e=2,children:n,className:a,subtitle:i,align:s="left"}){let o=`h${e}`;return(0,r.jsxs)("div",{className:(0,t.cn)("mb-6 md:mb-12 text-primary",{left:"text-left",center:"text-center mx-auto",right:"text-right"}[s],a),children:[i&&(0,r.jsx)("span",{className:"inline-block text-accent font-bold tracking-widest uppercase text-xs md:text-sm mb-3 md:mb-4 animate-fade-in",children:i}),(0,r.jsx)(o,{className:(0,t.cn)({1:"text-2xl md:text-4xl lg:text-5xl font-bold leading-[1.1] tracking-tight",2:"text-xl md:text-3xl lg:text-4xl font-bold leading-[1.2] tracking-tight",3:"text-lg md:text-2xl lg:text-3xl font-bold leading-[1.3] tracking-tight",4:"text-lg md:text-xl lg:text-2xl font-bold leading-[1.4]",5:"text-base md:text-lg font-bold leading-[1.5]",6:"text-base md:text-lg font-semibold leading-[1.6]"}[e]),children:n})]})}function s({className:e,children:n,tag:a="div",...i}){return(0,r.jsx)(a,{className:(0,t.cn)("premium-card overflow-hidden",e),...i,children:n})}function o({className:e,...n}){return(0,r.jsx)("input",{className:(0,t.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg",e),...n})}function c({className:e,...n}){return(0,r.jsx)("textarea",{className:(0,t.cn)("w-full px-4 md:px-6 py-2.5 md:py-4 bg-neutral-light/50 border border-neutral-dark/10 rounded-xl md:rounded-2xl focus:outline-none focus:ring-2 focus:ring-accent/20 focus:border-accent focus:bg-white transition-all duration-300 placeholder:text-neutral-dark/40 text-sm md:text-lg resize-none",e),...n})}function u({className:e,...n}){return(0,r.jsx)("label",{className:(0,t.cn)("text-[10px] md:text-xs font-extrabold text-primary uppercase tracking-widest",e),...n})}e.s(["Section",()=>n],370476),e.s(["Container",()=>a],575003),e.s(["Heading",()=>i],982016),e.s(["Card",()=>s],105050),e.s(["Input",()=>o],801206),e.s(["Textarea",()=>c],587778),e.s(["Label",()=>u],9797),e.s([],445774)},224038,e=>{"use strict";var t=e.i(452797);e.i(445774);var r=e.i(111023);function n({variant:e,className:n,color:a="#82ed20"}){return"circle"===e?(0,t.jsx)("svg",{className:(0,r.cn)("absolute pointer-events-none",n),"aria-hidden":"true",viewBox:"0 0 800 350",preserveAspectRatio:"none",children:(0,t.jsx)("path",{className:"animate-draw-stroke",pathLength:"1",style:{strokeDasharray:1,strokeDashoffset:1,animation:"draw-stroke 1.8s ease-in-out 0.5s forwards"},transform:"matrix(0.9791300296783447,0,0,0.9791300296783447,400,179)",strokeLinejoin:"miter",fillOpacity:"0",strokeMiterlimit:"4",stroke:a,strokeOpacity:"1",strokeWidth:"20",d:" M253,-161 C253,-161 -284.78900146484375,-201.4600067138672 -376,-21 C-469,163 67.62300109863281,174.2100067138672 256,121 C564,34 250.82899475097656,-141.6929931640625 19.10700035095215,-116.93599700927734"})}):"underline"===e?(0,t.jsx)("svg",{className:(0,r.cn)("absolute pointer-events-none",n),"aria-hidden":"true",viewBox:"-400 -55 730 60",preserveAspectRatio:"none",children:(0,t.jsx)("path",{className:"animate-draw-stroke",pathLength:"1",style:{strokeDasharray:1,strokeDashoffset:1,animation:"draw-stroke 1.8s ease-in-out 0.5s forwards"},d:"m -383.25 -6 c 55.25 -22 130.75 -33.5 293.25 -38 c 54.5 -0.5 195 -2.5 401 15",stroke:a,strokeWidth:"20",fill:"none"})}):null}e.s(["default",()=>n])},555331,e=>{"use strict";var t=e.i(907358),r=e.i(630655),n=e.i(216033);function a({path:a}){let{trackEvent:i}=(0,r.useAnalytics)();return(0,t.useEffect)(()=>{i(n.AnalyticsEvents.ERROR,{type:"404_not_found",path:a}),e.A(919007).then(e=>{e.withScope(t=>{t.setTag("status_code","404"),t.setTag("path",a),e.captureMessage(`Route Not Found: ${a}`,"warning")})})},[i,a]),null}e.s(["default",()=>a])},919007,e=>{e.v(t=>Promise.all(["static/chunks/3ffd2a1cf95ceb60.js","static/chunks/32fec23faa4b171a.js","static/chunks/6d182a34db4f4c54.js"].map(t=>e.l(t))).then(()=>t(502456)))}]); -//# debugId=9d7aff46-7403-3270-9a87-26094c17587d \ No newline at end of file +//# debugId=24540a2d-7944-b9b6-810e-8ebf8395cd63 \ No newline at end of file diff --git a/.next/static/chunks/f51290069c969e8a.js b/.next/static/chunks/f51290069c969e8a.js deleted file mode 100644 index 8d2ed8f52..000000000 --- a/.next/static/chunks/f51290069c969e8a.js +++ /dev/null @@ -1,4 +0,0 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="5f424ad6-f6e5-d12d-b72a-0d248e9f0518")}catch(e){}}(); -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,444841,(e,t,r)=>{"use strict";function n(){let e,t,r=new Promise((r,n)=>{e=r,t=n});return{resolve:e,reject:t,promise:r}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"createPromiseWithResolvers",{enumerable:!0,get:function(){return n}})},436120,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"InvariantError",{enumerable:!0,get:function(){return n}});class n extends Error{constructor(e,t){super(`Invariant: ${e.endsWith(".")?e:e+"."} This is a bug in Next.js.`,t),this.name="InvariantError"}}},506985,(e,t,r)=>{"use strict";function n(e){let t=e.indexOf("#"),r=e.indexOf("?"),n=r>-1&&(t<0||r-1?{pathname:e.substring(0,n?r:t),query:n?e.substring(r,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"parsePath",{enumerable:!0,get:function(){return n}})},688391,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addPathPrefix",{enumerable:!0,get:function(){return o}});let n=e.r(506985);function o(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:o,hash:u}=(0,n.parsePath)(e);return`${t}${r}${o}${u}`}},895708,(e,t,r)=>{"use strict";function n(e){return e.replace(/\/$/,"")||"/"}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removeTrailingSlash",{enumerable:!0,get:function(){return n}})},712550,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"pathHasPrefix",{enumerable:!0,get:function(){return o}});let n=e.r(506985);function o(e,t){if("string"!=typeof e)return!1;let{pathname:r}=(0,n.parsePath)(e);return r===t||r.startsWith(t+"/")}},695129,(e,t,r)=>{var n={229:function(e){var t,r,n,o=e.exports={};function u(){throw Error("setTimeout has not been defined")}function i(){throw Error("clearTimeout has not been defined")}try{t="function"==typeof setTimeout?setTimeout:u}catch(e){t=u}try{r="function"==typeof clearTimeout?clearTimeout:i}catch(e){r=i}function a(e){if(t===setTimeout)return setTimeout(e,0);if((t===u||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}var l=[],s=!1,c=-1;function f(){s&&n&&(s=!1,n.length?l=n.concat(l):c=-1,l.length&&d())}function d(){if(!s){var e=a(f);s=!0;for(var t=l.length;t;){for(n=l,l=[];++c1)for(var r=1;r{"use strict";var n,o;t.exports=(null==(n=e.g.process)?void 0:n.env)&&"object"==typeof(null==(o=e.g.process)?void 0:o.env)?e.g.process:e.r(695129)},396299,(e,t,r)=>{"use strict";var n=e.i(653782),o=Symbol.for("react.transitional.element"),u=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),l=Symbol.for("react.profiler"),s=Symbol.for("react.consumer"),c=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),_=Symbol.for("react.activity"),b=Symbol.for("react.view_transition"),v=Symbol.iterator,h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,g={};function O(e,t,r){this.props=e,this.context=t,this.refs=g,this.updater=r||h}function P(){}function E(e,t,r){this.props=e,this.context=t,this.refs=g,this.updater=r||h}O.prototype.isReactComponent={},O.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},O.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},P.prototype=O.prototype;var R=E.prototype=new P;R.constructor=E,m(R,O.prototype),R.isPureReactComponent=!0;var j=Array.isArray;function T(){}var S={H:null,A:null,T:null,S:null},M=Object.prototype.hasOwnProperty;function x(e,t,r){var n=r.ref;return{$$typeof:o,type:e,key:t,ref:void 0!==n?n:null,props:r}}function w(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var C=/\/+/g;function L(e,t){var r,n;return"object"==typeof e&&null!==e&&null!=e.key?(r=""+e.key,n={"=":"=0",":":"=2"},"$"+r.replace(/[=:]/g,function(e){return n[e]})):t.toString(36)}function A(e,t,r){if(null==e)return e;var n=[],i=0;return!function e(t,r,n,i,a){var l,s,c,f=typeof t;("undefined"===f||"boolean"===f)&&(t=null);var d=!1;if(null===t)d=!0;else switch(f){case"bigint":case"string":case"number":d=!0;break;case"object":switch(t.$$typeof){case o:case u:d=!0;break;case y:return e((d=t._init)(t._payload),r,n,i,a)}}if(d)return a=a(t),d=""===i?"."+L(t,0):i,j(a)?(n="",null!=d&&(n=d.replace(C,"$&/")+"/"),e(a,r,n,"",function(e){return e})):null!=a&&(w(a)&&(l=a,s=n+(null==a.key||t&&t.key===a.key?"":(""+a.key).replace(C,"$&/")+"/")+d,a=x(l.type,s,l.props)),r.push(a)),1;d=0;var p=""===i?".":i+":";if(j(t))for(var _=0;_{"use strict";t.exports=e.r(396299)},73738,(e,t,r)=>{"use strict";var n=Symbol.for("react.transitional.element");function o(e,t,r){var o=null;if(void 0!==r&&(o=""+r),void 0!==t.key&&(o=""+t.key),"key"in t)for(var u in r={},t)"key"!==u&&(r[u]=t[u]);else r=t;return{$$typeof:n,type:e,key:o,ref:void 0!==(t=r.ref)?t:null,props:r}}r.Fragment=Symbol.for("react.fragment"),r.jsx=o,r.jsxs=o},452797,(e,t,r)=>{"use strict";t.exports=e.r(73738)},593488,(e,t,r)=>{"use strict";var n=e.r(907358);function o(e){var t="https://react.dev/errors/"+e;if(1{"use strict";!function e(){if("u">typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),t.exports=e.r(593488)},954633,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={getDeploymentId:function(){return u},getDeploymentIdQueryOrEmptyString:function(){return i}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(){return!1}function i(){return""}},631663,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"HTML_LIMITED_BOT_UA_RE",{enumerable:!0,get:function(){return n}});let n=/[\w-]+-Google|Google-[\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i},801404,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HTML_LIMITED_BOT_UA_RE:function(){return u.HTML_LIMITED_BOT_UA_RE},HTML_LIMITED_BOT_UA_RE_STRING:function(){return a},getBotType:function(){return c},isBot:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(631663),i=/Googlebot(?!-)|Googlebot$/i,a=u.HTML_LIMITED_BOT_UA_RE.source;function l(e){return u.HTML_LIMITED_BOT_UA_RE.test(e)}function s(e){return i.test(e)||l(e)}function c(e){return i.test(e)?"dom":l(e)?"html":void 0}},302564,(e,t,r)=>{"use strict";function n(e){return e.startsWith("/")?e:`/${e}`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ensureLeadingSlash",{enumerable:!0,get:function(){return n}})},185754,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={normalizeAppPath:function(){return a},normalizeRscURL:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(302564),i=e.r(198151);function a(e){return(0,u.ensureLeadingSlash)(e.split("/").reduce((e,t,r,n)=>!t||(0,i.isGroupSegment)(t)||"@"===t[0]||("page"===t||"route"===t)&&r===n.length-1?e:`${e}/${t}`,""))}function l(e){return e.replace(/\.rsc($|\?)/,"$1")}},261308,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={INTERCEPTION_ROUTE_MARKERS:function(){return i},extractInterceptionRouteInformation:function(){return l},isInterceptionRouteAppPath:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(185754),i=["(..)(..)","(.)","(..)","(...)"];function a(e){return void 0!==e.split("/").find(e=>i.find(t=>e.startsWith(t)))}function l(e){let t,r,n;for(let o of e.split("/"))if(r=i.find(e=>o.startsWith(e))){[t,n]=e.split(r,2);break}if(!t||!r||!n)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Must be in the format //(..|...|..)(..)/`),"__NEXT_ERROR_CODE",{value:"E269",enumerable:!1,configurable:!0});switch(t=(0,u.normalizeAppPath)(t),r){case"(.)":n="/"===t?`/${n}`:t+"/"+n;break;case"(..)":if("/"===t)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..) marker at the root level, use (.) instead.`),"__NEXT_ERROR_CODE",{value:"E207",enumerable:!1,configurable:!0});n=t.split("/").slice(0,-1).concat(n).join("/");break;case"(...)":n="/"+n;break;case"(..)(..)":let o=t.split("/");if(o.length<=2)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..)(..) marker at the root level or one level up.`),"__NEXT_ERROR_CODE",{value:"E486",enumerable:!1,configurable:!0});n=o.slice(0,-2).concat(n).join("/");break;default:throw Object.defineProperty(Error("Invariant: unexpected marker"),"__NEXT_ERROR_CODE",{value:"E112",enumerable:!1,configurable:!0})}return{interceptingRoute:t,interceptedRoute:n}}},164934,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"normalizePathTrailingSlash",{enumerable:!0,get:function(){return u}});let n=e.r(895708),o=e.r(506985),u=e=>{if(!e.startsWith("/"))return e;let{pathname:t,query:r,hash:u}=(0,o.parsePath)(e);return`${(0,n.removeTrailingSlash)(t)}${r}${u}`};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},266190,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addBasePath",{enumerable:!0,get:function(){return u}});let n=e.r(688391),o=e.r(164934);function u(e,t){return(0,o.normalizePathTrailingSlash)((0,n.addPathPrefix)(e,""))}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},33905,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"hasBasePath",{enumerable:!0,get:function(){return o}});let n=e.r(712550);function o(e){return(0,n.pathHasPrefix)(e,"")}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},391518,(e,t,r)=>{"use strict";function n(e){return e}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removeBasePath",{enumerable:!0,get:function(){return n}}),e.r(33905),("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},919025,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={HTTPAccessErrorStatus:function(){return u},HTTP_ERROR_FALLBACK_ERROR_CODE:function(){return a},getAccessFallbackErrorTypeByStatus:function(){return c},getAccessFallbackHTTPStatus:function(){return s},isHTTPAccessFallbackError:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u={NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401},i=new Set(Object.values(u)),a="NEXT_HTTP_ERROR_FALLBACK";function l(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let[t,r]=e.digest.split(";");return t===a&&i.has(Number(r))}function s(e){return Number(e.digest.split(";")[1])}function c(e){switch(e){case 401:return"unauthorized";case 403:return"forbidden";case 404:return"not-found";default:return}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},778726,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isNextRouterError",{enumerable:!0,get:function(){return u}});let n=e.r(919025),o=e.r(45678);function u(e){return(0,o.isRedirectError)(e)||(0,n.isHTTPAccessFallbackError)(e)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},334788,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReadonlyURLSearchParams",{enumerable:!0,get:function(){return o}});class n extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class o extends URLSearchParams{append(){throw new n}delete(){throw new n}set(){throw new n}sort(){throw new n}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},527814,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={NavigationPromisesContext:function(){return c},PathParamsContext:function(){return s},PathnameContext:function(){return l},ReadonlyURLSearchParams:function(){return i.ReadonlyURLSearchParams},SearchParamsContext:function(){return a},createDevToolsInstrumentedPromise:function(){return f}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(907358),i=e.r(334788),a=(0,u.createContext)(null),l=(0,u.createContext)(null),s=(0,u.createContext)(null),c=(0,u.createContext)(null);function f(e,t){let r=Promise.resolve(t);return r.status="fulfilled",r.value=t,r.displayName=`${e} (SSR)`,r}},380828,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ServerInsertedHTMLContext:function(){return i},useServerInsertedHTML:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(744066)._(e.r(907358)),i=u.default.createContext(null);function a(e){let t=(0,u.useContext)(i);t&&t(e)}},511877,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"notFound",{enumerable:!0,get:function(){return u}});let n=e.r(919025),o=`${n.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;function u(){let e=Object.defineProperty(Error(o),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});throw e.digest=o,e}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},529491,(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"forbidden",{enumerable:!0,get:function(){return n}}),e.r(919025).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},66895,(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unauthorized",{enumerable:!0,get:function(){return n}}),e.r(919025).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},84066,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,o.isNextRouterError)(t)||(0,n.isBailoutToCSRError)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=e.r(880813),o=e.r(778726);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},744147,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isPostpone",{enumerable:!0,get:function(){return o}});let n=Symbol.for("react.postpone");function o(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}},381861,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,i.isNextRouterError)(t)||(0,u.isBailoutToCSRError)(t)||(0,l.isDynamicServerError)(t)||(0,a.isDynamicPostpone)(t)||(0,o.isPostpone)(t)||(0,n.isHangingPromiseRejectionError)(t)||(0,a.isPrerenderInterruptedError)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=e.r(863327),o=e.r(744147),u=e.r(880813),i=e.r(778726),a=e.r(990913),l=e.r(404266);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},322121,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"unstable_rethrow",{enumerable:!0,get:function(){return n}});let n="u"{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ReadonlyURLSearchParams:function(){return u.ReadonlyURLSearchParams},RedirectType:function(){return a.RedirectType},forbidden:function(){return s.forbidden},notFound:function(){return l.notFound},permanentRedirect:function(){return i.permanentRedirect},redirect:function(){return i.redirect},unauthorized:function(){return c.unauthorized},unstable_isUnrecognizedActionError:function(){return d},unstable_rethrow:function(){return f.unstable_rethrow}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(334788),i=e.r(430485),a=e.r(45678),l=e.r(511877),s=e.r(529491),c=e.r(66895),f=e.r(322121);function d(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},68380,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ReadonlyURLSearchParams:function(){return a.ReadonlyURLSearchParams},RedirectType:function(){return f.RedirectType},ServerInsertedHTMLContext:function(){return s.ServerInsertedHTMLContext},forbidden:function(){return f.forbidden},notFound:function(){return f.notFound},permanentRedirect:function(){return f.permanentRedirect},redirect:function(){return f.redirect},unauthorized:function(){return f.unauthorized},unstable_isUnrecognizedActionError:function(){return c.unstable_isUnrecognizedActionError},unstable_rethrow:function(){return f.unstable_rethrow},useParams:function(){return v},usePathname:function(){return _},useRouter:function(){return b},useSearchParams:function(){return y},useSelectedLayoutSegment:function(){return m},useSelectedLayoutSegments:function(){return h},useServerInsertedHTML:function(){return s.useServerInsertedHTML}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(744066)._(e.r(907358)),i=e.r(99585),a=e.r(527814),l=e.r(198151),s=e.r(380828),c=e.r(992112),f=e.r(596517),d="u"e?new a.ReadonlyURLSearchParams(e):null,[e])}function _(){return d?.("usePathname()"),(0,u.useContext)(a.PathnameContext)}function b(){let e=(0,u.useContext)(i.AppRouterContext);if(null===e)throw Object.defineProperty(Error("invariant expected app router to be mounted"),"__NEXT_ERROR_CODE",{value:"E238",enumerable:!1,configurable:!0});return e}function v(){return d?.("useParams()"),(0,u.useContext)(a.PathParamsContext)}function h(e="children"){d?.("useSelectedLayoutSegments()");let t=(0,u.useContext)(i.LayoutRouterContext);return t?(0,l.getSelectedLayoutSegmentPath)(t.parentTree,e):null}function m(e="children"){d?.("useSelectedLayoutSegment()"),(0,u.useContext)(a.NavigationPromisesContext);let t=h(e);return(0,l.computeSelectedLayoutSegment)(t,e)}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)}]); - -//# debugId=5f424ad6-f6e5-d12d-b72a-0d248e9f0518 \ No newline at end of file diff --git a/.next/static/chunks/fac3383571a5e891.js b/.next/static/chunks/fac3383571a5e891.js new file mode 100644 index 000000000..69803e484 --- /dev/null +++ b/.next/static/chunks/fac3383571a5e891.js @@ -0,0 +1,4 @@ +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="2ffc7f4d-cca3-eb26-c2b2-62cd81496e7f")}catch(e){}}(); +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,531426,(e,r,o)=>{"use strict";Object.defineProperty(o,"__esModule",{value:!0}),Object.defineProperty(o,"errorOnce",{enumerable:!0,get:function(){return t}});let t=e=>{}},184868,(e,r,o)=>{"use strict";Object.defineProperty(o,"__esModule",{value:!0});var t={default:function(){return h},useLinkStatus:function(){return x}};for(var n in t)Object.defineProperty(o,n,{enumerable:!0,get:t[n]});let l=e.r(744066),a=e.r(452797),s=l._(e.r(907358)),i=e.r(462307),c=e.r(99585),d=e.r(391736),m=e.r(97872),p=e.r(266190);e.r(437698);let u=e.r(126791),b=e.r(171064),f=e.r(751108);function g(e){return"string"==typeof e?e:(0,i.formatUrl)(e)}function h(r){var o;let t,n,l,[i,h]=(0,s.useOptimistic)(u.IDLE_LINK_STATUS),x=(0,s.useRef)(null),{href:w,as:y,children:v,prefetch:z=null,passHref:j,replace:C,shallow:T,scroll:O,onClick:S,onMouseEnter:_,onTouchStart:P,legacyBehavior:E=!1,onNavigate:M,ref:I,unstable_dynamicOnHover:N,...G}=r;t=v,E&&("string"==typeof t||"number"==typeof t)&&(t=(0,a.jsx)("a",{children:t}));let R=s.default.useContext(c.AppRouterContext),L=!1!==z,A=!1!==z?null===(o=z)||"auto"===o?f.FetchStrategy.PPR:f.FetchStrategy.Full:f.FetchStrategy.PPR,{href:$,as:K}=s.default.useMemo(()=>{let e=g(w);return{href:e,as:y?g(y):e}},[w,y]);if(E){if(t?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `
` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});n=s.default.Children.only(t)}let U=E?n&&"object"==typeof n&&n.ref:I,D=s.default.useCallback(e=>(null!==R&&(x.current=(0,u.mountLinkInstance)(e,$,R,A,L,h)),()=>{x.current&&((0,u.unmountLinkForCurrentNavigation)(x.current),x.current=null),(0,u.unmountPrefetchableInstance)(e)}),[L,$,R,A,h]),W={ref:(0,d.useMergedRef)(D,U),onClick(r){E||"function"!=typeof S||S(r),E&&n.props&&"function"==typeof n.props.onClick&&n.props.onClick(r),!R||r.defaultPrevented||function(r,o,t,n,l,a,i){if("u">typeof window){let c,{nodeName:d}=r.currentTarget;if("A"===d.toUpperCase()&&((c=r.currentTarget.getAttribute("target"))&&"_self"!==c||r.metaKey||r.ctrlKey||r.shiftKey||r.altKey||r.nativeEvent&&2===r.nativeEvent.which)||r.currentTarget.hasAttribute("download"))return;if(!(0,b.isLocalURL)(o)){l&&(r.preventDefault(),location.replace(o));return}if(r.preventDefault(),i){let e=!1;if(i({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:m}=e.r(215493);s.default.startTransition(()=>{m(t||o,l?"replace":"push",a??!0,n.current)})}}(r,$,K,x,C,O,M)},onMouseEnter(e){E||"function"!=typeof _||_(e),E&&n.props&&"function"==typeof n.props.onMouseEnter&&n.props.onMouseEnter(e),R&&L&&(0,u.onNavigationIntent)(e.currentTarget,!0===N)},onTouchStart:function(e){E||"function"!=typeof P||P(e),E&&n.props&&"function"==typeof n.props.onTouchStart&&n.props.onTouchStart(e),R&&L&&(0,u.onNavigationIntent)(e.currentTarget,!0===N)}};return(0,m.isAbsoluteUrl)(K)?W.href=K:E&&!j&&("a"!==n.type||"href"in n.props)||(W.href=(0,p.addBasePath)(K)),l=E?s.default.cloneElement(n,W):(0,a.jsx)("a",{...G,...W,children:t}),(0,a.jsx)(k.Provider,{value:i,children:l})}e.r(531426);let k=(0,s.createContext)(u.IDLE_LINK_STATUS),x=()=>(0,s.useContext)(k);("function"==typeof o.default||"object"==typeof o.default&&null!==o.default)&&void 0===o.default.__esModule&&(Object.defineProperty(o.default,"__esModule",{value:!0}),Object.assign(o.default,o),r.exports=o.default)},111023,e=>{"use strict";let r,o,t,n,l;var a,s=e.i(7284);let i=(e=new Map,r=null,o)=>({nextPart:e,validators:r,classGroupId:o}),c=[],d=(e,r,o)=>{if(0==e.length-r)return o.classGroupId;let t=e[r],n=o.nextPart.get(t);if(n){let o=d(e,r+1,n);if(o)return o}let l=o.validators;if(null===l)return;let a=0===r?e.join("-"):e.slice(r).join("-"),s=l.length;for(let e=0;e{let o=i();for(let t in e)p(e[t],o,t,r);return o},p=(e,r,o,t)=>{let n=e.length;for(let l=0;l{"string"==typeof e?b(e,r,o):"function"==typeof e?f(e,r,o,t):g(e,r,o,t)},b=(e,r,o)=>{(""===e?r:h(r,e)).classGroupId=o},f=(e,r,o,t)=>{k(e)?p(e(t),r,o,t):(null===r.validators&&(r.validators=[]),r.validators.push({classGroupId:o,validator:e}))},g=(e,r,o,t)=>{let n=Object.entries(e),l=n.length;for(let e=0;e{let o=e,t=r.split("-"),n=t.length;for(let e=0;e"isThemeGetter"in e&&!0===e.isThemeGetter,x=[],w=(e,r,o,t,n)=>({modifiers:e,hasImportantModifier:r,baseClassName:o,maybePostfixModifierPosition:t,isExternal:n}),y=/\s+/,v=e=>{let r;if("string"==typeof e)return e;let o="";for(let t=0;t{let r=r=>r[e]||z;return r.isThemeGetter=!0,r},C=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,T=/^\((?:(\w[\w-]*):)?(.+)\)$/i,O=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,S=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,_=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,P=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,E=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,M=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,I=e=>O.test(e),N=e=>!!e&&!Number.isNaN(Number(e)),G=e=>!!e&&Number.isInteger(Number(e)),R=e=>e.endsWith("%")&&N(e.slice(0,-1)),L=e=>S.test(e),A=()=>!0,$=e=>_.test(e)&&!P.test(e),K=()=>!1,U=e=>E.test(e),D=e=>M.test(e),W=e=>!F(e)&&!Z(e),B=e=>es(e,em,K),F=e=>C.test(e),q=e=>es(e,ep,$),X=e=>es(e,eu,N),J=e=>es(e,ef,A),H=e=>es(e,eb,K),Q=e=>es(e,ec,K),V=e=>es(e,ed,D),Y=e=>es(e,eg,U),Z=e=>T.test(e),ee=e=>ei(e,ep),er=e=>ei(e,eb),eo=e=>ei(e,ec),et=e=>ei(e,em),en=e=>ei(e,ed),el=e=>ei(e,eg,!0),ea=e=>ei(e,ef,!0),es=(e,r,o)=>{let t=C.exec(e);return!!t&&(t[1]?r(t[1]):o(t[2]))},ei=(e,r,o=!1)=>{let t=T.exec(e);return!!t&&(t[1]?r(t[1]):o)},ec=e=>"position"===e||"percentage"===e,ed=e=>"image"===e||"url"===e,em=e=>"length"===e||"size"===e||"bg-size"===e,ep=e=>"length"===e,eu=e=>"number"===e,eb=e=>"family-name"===e,ef=e=>"number"===e||"weight"===e,eg=e=>"shadow"===e,eh=(a=()=>{let e=j("color"),r=j("font"),o=j("text"),t=j("font-weight"),n=j("tracking"),l=j("leading"),a=j("breakpoint"),s=j("container"),i=j("spacing"),c=j("radius"),d=j("shadow"),m=j("inset-shadow"),p=j("text-shadow"),u=j("drop-shadow"),b=j("blur"),f=j("perspective"),g=j("aspect"),h=j("ease"),k=j("animate"),x=()=>["auto","avoid","all","avoid-page","page","left","right","column"],w=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],y=()=>[...w(),Z,F],v=()=>["auto","hidden","clip","visible","scroll"],z=()=>["auto","contain","none"],C=()=>[Z,F,i],T=()=>[I,"full","auto",...C()],O=()=>[G,"none","subgrid",Z,F],S=()=>["auto",{span:["full",G,Z,F]},G,Z,F],_=()=>[G,"auto",Z,F],P=()=>["auto","min","max","fr",Z,F],E=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],M=()=>["start","end","center","stretch","center-safe","end-safe"],$=()=>["auto",...C()],K=()=>[I,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...C()],U=()=>[I,"screen","full","dvw","lvw","svw","min","max","fit",...C()],D=()=>[I,"screen","full","lh","dvh","lvh","svh","min","max","fit",...C()],es=()=>[e,Z,F],ei=()=>[...w(),eo,Q,{position:[Z,F]}],ec=()=>["no-repeat",{repeat:["","x","y","space","round"]}],ed=()=>["auto","cover","contain",et,B,{size:[Z,F]}],em=()=>[R,ee,q],ep=()=>["","none","full",c,Z,F],eu=()=>["",N,ee,q],eb=()=>["solid","dashed","dotted","double"],ef=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],eg=()=>[N,R,eo,Q],eh=()=>["","none",b,Z,F],ek=()=>["none",N,Z,F],ex=()=>["none",N,Z,F],ew=()=>[N,Z,F],ey=()=>[I,"full",...C()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[L],breakpoint:[L],color:[A],container:[L],"drop-shadow":[L],ease:["in","out","in-out"],font:[W],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[L],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[L],shadow:[L],spacing:["px",N],text:[L],"text-shadow":[L],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",I,F,Z,g]}],container:["container"],columns:[{columns:[N,F,Z,s]}],"break-after":[{"break-after":x()}],"break-before":[{"break-before":x()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:y()}],overflow:[{overflow:v()}],"overflow-x":[{"overflow-x":v()}],"overflow-y":[{"overflow-y":v()}],overscroll:[{overscroll:z()}],"overscroll-x":[{"overscroll-x":z()}],"overscroll-y":[{"overscroll-y":z()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:T()}],"inset-x":[{"inset-x":T()}],"inset-y":[{"inset-y":T()}],start:[{"inset-s":T(),start:T()}],end:[{"inset-e":T(),end:T()}],"inset-bs":[{"inset-bs":T()}],"inset-be":[{"inset-be":T()}],top:[{top:T()}],right:[{right:T()}],bottom:[{bottom:T()}],left:[{left:T()}],visibility:["visible","invisible","collapse"],z:[{z:[G,"auto",Z,F]}],basis:[{basis:[I,"full","auto",s,...C()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[N,I,"auto","initial","none",F]}],grow:[{grow:["",N,Z,F]}],shrink:[{shrink:["",N,Z,F]}],order:[{order:[G,"first","last","none",Z,F]}],"grid-cols":[{"grid-cols":O()}],"col-start-end":[{col:S()}],"col-start":[{"col-start":_()}],"col-end":[{"col-end":_()}],"grid-rows":[{"grid-rows":O()}],"row-start-end":[{row:S()}],"row-start":[{"row-start":_()}],"row-end":[{"row-end":_()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":P()}],"auto-rows":[{"auto-rows":P()}],gap:[{gap:C()}],"gap-x":[{"gap-x":C()}],"gap-y":[{"gap-y":C()}],"justify-content":[{justify:[...E(),"normal"]}],"justify-items":[{"justify-items":[...M(),"normal"]}],"justify-self":[{"justify-self":["auto",...M()]}],"align-content":[{content:["normal",...E()]}],"align-items":[{items:[...M(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...M(),{baseline:["","last"]}]}],"place-content":[{"place-content":E()}],"place-items":[{"place-items":[...M(),"baseline"]}],"place-self":[{"place-self":["auto",...M()]}],p:[{p:C()}],px:[{px:C()}],py:[{py:C()}],ps:[{ps:C()}],pe:[{pe:C()}],pbs:[{pbs:C()}],pbe:[{pbe:C()}],pt:[{pt:C()}],pr:[{pr:C()}],pb:[{pb:C()}],pl:[{pl:C()}],m:[{m:$()}],mx:[{mx:$()}],my:[{my:$()}],ms:[{ms:$()}],me:[{me:$()}],mbs:[{mbs:$()}],mbe:[{mbe:$()}],mt:[{mt:$()}],mr:[{mr:$()}],mb:[{mb:$()}],ml:[{ml:$()}],"space-x":[{"space-x":C()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":C()}],"space-y-reverse":["space-y-reverse"],size:[{size:K()}],"inline-size":[{inline:["auto",...U()]}],"min-inline-size":[{"min-inline":["auto",...U()]}],"max-inline-size":[{"max-inline":["none",...U()]}],"block-size":[{block:["auto",...D()]}],"min-block-size":[{"min-block":["auto",...D()]}],"max-block-size":[{"max-block":["none",...D()]}],w:[{w:[s,"screen",...K()]}],"min-w":[{"min-w":[s,"screen","none",...K()]}],"max-w":[{"max-w":[s,"screen","none","prose",{screen:[a]},...K()]}],h:[{h:["screen","lh",...K()]}],"min-h":[{"min-h":["screen","lh","none",...K()]}],"max-h":[{"max-h":["screen","lh",...K()]}],"font-size":[{text:["base",o,ee,q]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[t,ea,J]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",R,F]}],"font-family":[{font:[er,H,r]}],"font-features":[{"font-features":[F]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[n,Z,F]}],"line-clamp":[{"line-clamp":[N,"none",Z,X]}],leading:[{leading:[l,...C()]}],"list-image":[{"list-image":["none",Z,F]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",Z,F]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:es()}],"text-color":[{text:es()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...eb(),"wavy"]}],"text-decoration-thickness":[{decoration:[N,"from-font","auto",Z,q]}],"text-decoration-color":[{decoration:es()}],"underline-offset":[{"underline-offset":[N,"auto",Z,F]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:C()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Z,F]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Z,F]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:ei()}],"bg-repeat":[{bg:ec()}],"bg-size":[{bg:ed()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},G,Z,F],radial:["",Z,F],conic:[G,Z,F]},en,V]}],"bg-color":[{bg:es()}],"gradient-from-pos":[{from:em()}],"gradient-via-pos":[{via:em()}],"gradient-to-pos":[{to:em()}],"gradient-from":[{from:es()}],"gradient-via":[{via:es()}],"gradient-to":[{to:es()}],rounded:[{rounded:ep()}],"rounded-s":[{"rounded-s":ep()}],"rounded-e":[{"rounded-e":ep()}],"rounded-t":[{"rounded-t":ep()}],"rounded-r":[{"rounded-r":ep()}],"rounded-b":[{"rounded-b":ep()}],"rounded-l":[{"rounded-l":ep()}],"rounded-ss":[{"rounded-ss":ep()}],"rounded-se":[{"rounded-se":ep()}],"rounded-ee":[{"rounded-ee":ep()}],"rounded-es":[{"rounded-es":ep()}],"rounded-tl":[{"rounded-tl":ep()}],"rounded-tr":[{"rounded-tr":ep()}],"rounded-br":[{"rounded-br":ep()}],"rounded-bl":[{"rounded-bl":ep()}],"border-w":[{border:eu()}],"border-w-x":[{"border-x":eu()}],"border-w-y":[{"border-y":eu()}],"border-w-s":[{"border-s":eu()}],"border-w-e":[{"border-e":eu()}],"border-w-bs":[{"border-bs":eu()}],"border-w-be":[{"border-be":eu()}],"border-w-t":[{"border-t":eu()}],"border-w-r":[{"border-r":eu()}],"border-w-b":[{"border-b":eu()}],"border-w-l":[{"border-l":eu()}],"divide-x":[{"divide-x":eu()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":eu()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...eb(),"hidden","none"]}],"divide-style":[{divide:[...eb(),"hidden","none"]}],"border-color":[{border:es()}],"border-color-x":[{"border-x":es()}],"border-color-y":[{"border-y":es()}],"border-color-s":[{"border-s":es()}],"border-color-e":[{"border-e":es()}],"border-color-bs":[{"border-bs":es()}],"border-color-be":[{"border-be":es()}],"border-color-t":[{"border-t":es()}],"border-color-r":[{"border-r":es()}],"border-color-b":[{"border-b":es()}],"border-color-l":[{"border-l":es()}],"divide-color":[{divide:es()}],"outline-style":[{outline:[...eb(),"none","hidden"]}],"outline-offset":[{"outline-offset":[N,Z,F]}],"outline-w":[{outline:["",N,ee,q]}],"outline-color":[{outline:es()}],shadow:[{shadow:["","none",d,el,Y]}],"shadow-color":[{shadow:es()}],"inset-shadow":[{"inset-shadow":["none",m,el,Y]}],"inset-shadow-color":[{"inset-shadow":es()}],"ring-w":[{ring:eu()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:es()}],"ring-offset-w":[{"ring-offset":[N,q]}],"ring-offset-color":[{"ring-offset":es()}],"inset-ring-w":[{"inset-ring":eu()}],"inset-ring-color":[{"inset-ring":es()}],"text-shadow":[{"text-shadow":["none",p,el,Y]}],"text-shadow-color":[{"text-shadow":es()}],opacity:[{opacity:[N,Z,F]}],"mix-blend":[{"mix-blend":[...ef(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ef()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[N]}],"mask-image-linear-from-pos":[{"mask-linear-from":eg()}],"mask-image-linear-to-pos":[{"mask-linear-to":eg()}],"mask-image-linear-from-color":[{"mask-linear-from":es()}],"mask-image-linear-to-color":[{"mask-linear-to":es()}],"mask-image-t-from-pos":[{"mask-t-from":eg()}],"mask-image-t-to-pos":[{"mask-t-to":eg()}],"mask-image-t-from-color":[{"mask-t-from":es()}],"mask-image-t-to-color":[{"mask-t-to":es()}],"mask-image-r-from-pos":[{"mask-r-from":eg()}],"mask-image-r-to-pos":[{"mask-r-to":eg()}],"mask-image-r-from-color":[{"mask-r-from":es()}],"mask-image-r-to-color":[{"mask-r-to":es()}],"mask-image-b-from-pos":[{"mask-b-from":eg()}],"mask-image-b-to-pos":[{"mask-b-to":eg()}],"mask-image-b-from-color":[{"mask-b-from":es()}],"mask-image-b-to-color":[{"mask-b-to":es()}],"mask-image-l-from-pos":[{"mask-l-from":eg()}],"mask-image-l-to-pos":[{"mask-l-to":eg()}],"mask-image-l-from-color":[{"mask-l-from":es()}],"mask-image-l-to-color":[{"mask-l-to":es()}],"mask-image-x-from-pos":[{"mask-x-from":eg()}],"mask-image-x-to-pos":[{"mask-x-to":eg()}],"mask-image-x-from-color":[{"mask-x-from":es()}],"mask-image-x-to-color":[{"mask-x-to":es()}],"mask-image-y-from-pos":[{"mask-y-from":eg()}],"mask-image-y-to-pos":[{"mask-y-to":eg()}],"mask-image-y-from-color":[{"mask-y-from":es()}],"mask-image-y-to-color":[{"mask-y-to":es()}],"mask-image-radial":[{"mask-radial":[Z,F]}],"mask-image-radial-from-pos":[{"mask-radial-from":eg()}],"mask-image-radial-to-pos":[{"mask-radial-to":eg()}],"mask-image-radial-from-color":[{"mask-radial-from":es()}],"mask-image-radial-to-color":[{"mask-radial-to":es()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":w()}],"mask-image-conic-pos":[{"mask-conic":[N]}],"mask-image-conic-from-pos":[{"mask-conic-from":eg()}],"mask-image-conic-to-pos":[{"mask-conic-to":eg()}],"mask-image-conic-from-color":[{"mask-conic-from":es()}],"mask-image-conic-to-color":[{"mask-conic-to":es()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:ei()}],"mask-repeat":[{mask:ec()}],"mask-size":[{mask:ed()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",Z,F]}],filter:[{filter:["","none",Z,F]}],blur:[{blur:eh()}],brightness:[{brightness:[N,Z,F]}],contrast:[{contrast:[N,Z,F]}],"drop-shadow":[{"drop-shadow":["","none",u,el,Y]}],"drop-shadow-color":[{"drop-shadow":es()}],grayscale:[{grayscale:["",N,Z,F]}],"hue-rotate":[{"hue-rotate":[N,Z,F]}],invert:[{invert:["",N,Z,F]}],saturate:[{saturate:[N,Z,F]}],sepia:[{sepia:["",N,Z,F]}],"backdrop-filter":[{"backdrop-filter":["","none",Z,F]}],"backdrop-blur":[{"backdrop-blur":eh()}],"backdrop-brightness":[{"backdrop-brightness":[N,Z,F]}],"backdrop-contrast":[{"backdrop-contrast":[N,Z,F]}],"backdrop-grayscale":[{"backdrop-grayscale":["",N,Z,F]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[N,Z,F]}],"backdrop-invert":[{"backdrop-invert":["",N,Z,F]}],"backdrop-opacity":[{"backdrop-opacity":[N,Z,F]}],"backdrop-saturate":[{"backdrop-saturate":[N,Z,F]}],"backdrop-sepia":[{"backdrop-sepia":["",N,Z,F]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":C()}],"border-spacing-x":[{"border-spacing-x":C()}],"border-spacing-y":[{"border-spacing-y":C()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",Z,F]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[N,"initial",Z,F]}],ease:[{ease:["linear","initial",h,Z,F]}],delay:[{delay:[N,Z,F]}],animate:[{animate:["none",k,Z,F]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[f,Z,F]}],"perspective-origin":[{"perspective-origin":y()}],rotate:[{rotate:ek()}],"rotate-x":[{"rotate-x":ek()}],"rotate-y":[{"rotate-y":ek()}],"rotate-z":[{"rotate-z":ek()}],scale:[{scale:ex()}],"scale-x":[{"scale-x":ex()}],"scale-y":[{"scale-y":ex()}],"scale-z":[{"scale-z":ex()}],"scale-3d":["scale-3d"],skew:[{skew:ew()}],"skew-x":[{"skew-x":ew()}],"skew-y":[{"skew-y":ew()}],transform:[{transform:[Z,F,"","none","gpu","cpu"]}],"transform-origin":[{origin:y()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:ey()}],"translate-x":[{"translate-x":ey()}],"translate-y":[{"translate-y":ey()}],"translate-z":[{"translate-z":ey()}],"translate-none":["translate-none"],accent:[{accent:es()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:es()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Z,F]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":C()}],"scroll-mx":[{"scroll-mx":C()}],"scroll-my":[{"scroll-my":C()}],"scroll-ms":[{"scroll-ms":C()}],"scroll-me":[{"scroll-me":C()}],"scroll-mbs":[{"scroll-mbs":C()}],"scroll-mbe":[{"scroll-mbe":C()}],"scroll-mt":[{"scroll-mt":C()}],"scroll-mr":[{"scroll-mr":C()}],"scroll-mb":[{"scroll-mb":C()}],"scroll-ml":[{"scroll-ml":C()}],"scroll-p":[{"scroll-p":C()}],"scroll-px":[{"scroll-px":C()}],"scroll-py":[{"scroll-py":C()}],"scroll-ps":[{"scroll-ps":C()}],"scroll-pe":[{"scroll-pe":C()}],"scroll-pbs":[{"scroll-pbs":C()}],"scroll-pbe":[{"scroll-pbe":C()}],"scroll-pt":[{"scroll-pt":C()}],"scroll-pr":[{"scroll-pr":C()}],"scroll-pb":[{"scroll-pb":C()}],"scroll-pl":[{"scroll-pl":C()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Z,F]}],fill:[{fill:["none",...es()]}],"stroke-w":[{stroke:[N,ee,q,X]}],stroke:[{stroke:["none",...es()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},l=e=>{let n=o(e);if(n)return n;let l=((e,r)=>{let{parseClassName:o,getClassGroupId:t,getConflictingClassGroupIds:n,sortModifiers:l}=r,a=[],s=e.trim().split(y),i="";for(let e=s.length-1;e>=0;e-=1){let r=s[e],{isExternal:c,modifiers:d,hasImportantModifier:m,baseClassName:p,maybePostfixModifierPosition:u}=o(r);if(c){i=r+(i.length>0?" "+i:i);continue}let b=!!u,f=t(b?p.substring(0,u):p);if(!f){if(!b||!(f=t(p))){i=r+(i.length>0?" "+i:i);continue}b=!1}let g=0===d.length?"":1===d.length?d[0]:l(d).join(":"),h=m?g+"!":g,k=h+f;if(a.indexOf(k)>-1)continue;a.push(k);let x=n(f,b);for(let e=0;e0?" "+i:i)}return i})(e,r);return t(e,l),l},n=e=>{var s;let i;return o=(r={cache:(e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let r=0,o=Object.create(null),t=Object.create(null),n=(n,l)=>{o[n]=l,++r>e&&(r=0,t=o,o=Object.create(null))};return{get(e){let r=o[e];return void 0!==r?r:void 0!==(r=t[e])?(n(e,r),r):void 0},set(e,r){e in o?o[e]=r:n(e,r)}}})((s=[].reduce((e,r)=>r(e),a())).cacheSize),parseClassName:(e=>{let{prefix:r,experimentalParseClassName:o}=e,t=e=>{let r,o=[],t=0,n=0,l=0,a=e.length;for(let s=0;sl?r-l:void 0)};if(r){let e=r+":",o=t;t=r=>r.startsWith(e)?o(r.slice(e.length)):w(x,!1,r,void 0,!0)}if(o){let e=t;t=r=>o({className:r,parseClassName:e})}return t})(s),sortModifiers:(i=new Map,s.orderSensitiveModifiers.forEach((e,r)=>{i.set(e,1e6+r)}),e=>{let r=[],o=[];for(let t=0;t0&&(o.sort(),r.push(...o),o=[]),r.push(n)):o.push(n)}return o.length>0&&(o.sort(),r.push(...o)),r}),...(e=>{let r=(e=>{let{theme:r,classGroups:o}=e;return m(o,r)})(e),{conflictingClassGroups:o,conflictingClassGroupModifiers:t}=e;return{getClassGroupId:e=>{if(e.startsWith("[")&&e.endsWith("]")){var o;let r,t,n;return -1===(o=e).slice(1,-1).indexOf(":")?void 0:(t=(r=o.slice(1,-1)).indexOf(":"),(n=r.slice(0,t))?"arbitrary.."+n:void 0)}let t=e.split("-"),n=+(""===t[0]&&t.length>1);return d(t,n,r)},getConflictingClassGroupIds:(e,r)=>{if(r){let r=t[e],n=o[e];if(r){if(n){let e=Array(n.length+r.length);for(let r=0;rn(((...e)=>{let r,o,t=0,n="";for(;tek],111023)}]); + +//# debugId=2ffc7f4d-cca3-eb26-c2b2-62cd81496e7f \ No newline at end of file diff --git a/.next/static/chunks/fb4360ef78ba79a7.js b/.next/static/chunks/fb4360ef78ba79a7.js deleted file mode 100644 index 8f08d106a..000000000 --- a/.next/static/chunks/fb4360ef78ba79a7.js +++ /dev/null @@ -1,4 +0,0 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="00b78d9e-4745-448a-350f-d0aa6b7b514c")}catch(e){}}(); -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,7284,e=>{"use strict";function t(){for(var e,t,r=0,a="",s=arguments.length;rt])},676525,e=>{"use strict";var t=e.i(452797),r=e.i(184868),a=e.i(111023);let s={primary:"bg-primary text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl",secondary:"bg-secondary text-white shadow-md hover:shadow-secondary/30 hover:shadow-2xl",accent:"bg-accent text-primary-dark shadow-md hover:shadow-accent/30 hover:shadow-2xl",saturated:"bg-saturated text-white shadow-md hover:shadow-primary/30 hover:shadow-2xl",outline:"border-2 border-primary bg-transparent text-primary hover:text-white hover:shadow-primary/20 hover:shadow-xl",ghost:"text-primary hover:shadow-lg",white:"bg-white text-primary shadow-md hover:shadow-primary/30 hover:shadow-2xl hover:text-white",destructive:"bg-destructive text-destructive-foreground shadow-md hover:shadow-destructive/30 hover:shadow-2xl"},i={sm:"h-9 px-4 text-sm md:text-base",md:"h-11 px-6 text-base md:text-lg",lg:"h-14 px-5 md:px-8 text-base md:text-lg",xl:"h-16 px-6 md:px-10 text-lg md:text-xl"},l={primary:"bg-primary-dark",secondary:"bg-secondary-light",accent:"bg-accent-dark",saturated:"bg-primary",outline:"bg-primary",ghost:"bg-primary-light/10",white:"bg-primary-light",destructive:"bg-destructive/90"};function n({variant:e="primary"}){return(0,t.jsx)("span",{className:(0,a.cn)("absolute inset-0 translate-y-[101%] group-hover/btn:translate-y-0 transition-transform duration-500 ease-out",l[e])})}function o({className:e,variant:l="primary",size:o="md",href:d,...c}){let x=function(e="primary",t="md",r){return(0,a.cn)("inline-flex items-center justify-center whitespace-nowrap rounded-full font-semibold transition-all duration-500 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none active:scale-95 hover:-translate-y-1 hover:scale-[1.02] relative overflow-hidden group/btn isolate",s[e],i[t],r)}(l,o,e),m=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:(0,a.cn)("relative z-10 flex items-center justify-center gap-2 transition-colors duration-500","white"===l?"group-hover/btn:text-primary-dark":""),children:c.children}),(0,t.jsx)(n,{variant:l})]});return d?(0,t.jsx)(r.default,{href:d,className:x,children:m}):(0,t.jsx)("button",{className:x,...c,children:m})}e.s(["Button",()=>o])},610408,e=>{"use strict";var t=e.i(452797),r=e.i(676525),a=e.i(112086);function s(e){let{data:s}=e,i=e.title||s?.title||"DIE EXPERTEN FÜR KABELTIEFBAU",l=e.subtitle||e.description||s?.subtitle||"Wir verbinden Infrastruktur mit Präzision. Von Horizontalbohrungen bis zu komplexen Leitungsnetzen.",n=e.videoUrl||s?.videoUrl||"/assets/dummy-hero.mp4",o=s?.posterImage?.url||"/assets/photos/DJI_0048.JPG";s?.posterImage?.alt;let d=e.ctaLabel||e.linkText||s?.ctaLabel||"Unternehmen entdecken",c=e.ctaHref||e.linkHref||s?.ctaHref||"#unternehmen",x=e.secondaryCtaLabel||s?.secondaryCtaLabel||"Projekt anfragen",m=e.secondaryCtaHref||s?.secondaryCtaHref||"/kontakt";return(0,t.jsxs)("div",{className:"relative w-full h-[100svh] flex items-center justify-center overflow-hidden bg-neutral-dark",children:[(0,t.jsx)("div",{className:"absolute inset-0 z-0 bg-neutral-dark"}),n&&(0,t.jsx)("video",{className:"absolute inset-0 w-full h-full object-cover z-1 pointer-events-none filter contrast-125 saturate-110 brightness-90",src:n,poster:o,autoPlay:!0,muted:!0,loop:!0,playsInline:!0,preload:"auto"}),(0,t.jsx)("div",{className:"absolute inset-0 bg-[#0a192f]/30 z-[2] mix-blend-multiply"}),(0,t.jsx)("div",{className:"absolute inset-0 bg-[radial-gradient(ellipse_at_center,_var(--tw-gradient-stops))] from-transparent via-black/20 to-black/80 z-[2]"}),(0,t.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-neutral-dark via-neutral-dark/60 to-transparent z-[3]"}),(0,t.jsx)("div",{className:"container relative z-[4] text-center px-4",children:(0,t.jsxs)(a.motion.div,{initial:{opacity:0,y:40},animate:{opacity:1,y:0},transition:{duration:1.2,ease:[.16,1,.3,1]},children:[(0,t.jsx)("h1",{className:"font-heading font-bold text-4xl md:text-6xl lg:text-8xl text-white mb-6 uppercase tracking-tight drop-shadow-lg",dangerouslySetInnerHTML:{__html:i.replace("KABELTIEFBAU",'KABELTIEFBAU').replace(/\n/g,"
")}}),(0,t.jsx)("p",{className:"text-lg md:text-xl lg:text-2xl text-white/90 max-w-3xl mx-auto mb-12 drop-shadow",children:l}),(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row items-center justify-center gap-6",children:[(0,t.jsx)(r.Button,{href:c,variant:"primary",size:"lg",children:d}),(0,t.jsx)(r.Button,{href:m,variant:"outline",size:"lg",className:"border-white/60 text-white hover:text-primary hover:bg-white",children:x})]})]})})]})}e.s(["HeroVideo",()=>s])},138557,e=>{"use strict";var t=e.i(452797),r=e.i(112086),a=e.i(663067);let s=[{title:"E-TIB GmbH",url:"https://www.e-tib.com/",backgroundImage:"/assets/photos/DJI_0243.JPG"},{title:"E-TIB Ingenieurgesellschaft mbH",url:"https://www.etib-ing.com/",backgroundImage:"/assets/photos/DSC01137.JPG"},{title:"NEMO GmbH",url:"https://www.nemo-gmbh.de/",backgroundImage:"/assets/photos/DJI_0048.JPG"}],i={hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.15}}},l={hidden:{opacity:0,y:30},visible:{opacity:1,y:0,transition:{duration:.8,ease:[.16,1,.3,1]}}};function n(e){let{data:n}=e,o=e.badge||n?.badge,d=e.title||n?.title,c=e.companies||n?.companies,x=c?.map(e=>({title:e.title,url:e.url,backgroundImage:e.backgroundImage?.url||e.backgroundImage||"/assets/photos/DJI_0243.JPG"}))||s;return(0,t.jsx)("section",{id:"unternehmen",className:"py-24 bg-neutral-dark border-b border-neutral-800",children:(0,t.jsxs)("div",{className:"container relative z-10 px-4",children:[(o||d)&&(0,t.jsxs)("div",{className:"text-center max-w-3xl mx-auto mb-16",children:[o&&(0,t.jsx)("h2",{className:"text-primary font-bold tracking-wider uppercase text-sm mb-3",children:o}),d&&(0,t.jsx)("h3",{className:"font-heading text-4xl md:text-5xl font-extrabold text-white",children:d})]}),(0,t.jsx)(r.motion.div,{className:"grid grid-cols-1 md:grid-cols-3 gap-6",variants:i,initial:"hidden",whileInView:"visible",viewport:{once:!0,margin:"-50px"},children:x.map((e,s)=>{let i=e.url?"a":"div",n=e.url?{href:e.url,target:"_blank",rel:"noopener noreferrer"}:{},o=e.title.includes("E-TIB"),d=e.title.includes("Ingenieur"),c=e.title.includes("NEMO");return(0,t.jsx)(r.motion.div,{variants:l,className:"h-full",children:(0,t.jsxs)(i,{...n,className:"group relative overflow-hidden aspect-[4/3] flex flex-col justify-center items-center shadow-xl border border-white/5 transition-all duration-500 hover:shadow-2xl hover:-translate-y-1 bg-neutral-dark cursor-pointer block w-full h-full sm:rounded-xl",children:[(0,t.jsx)("div",{className:"absolute inset-0 bg-[#0a192f] z-0",children:(0,t.jsx)(a.default,{src:e.backgroundImage,alt:"Background",fill:!0,className:"object-cover opacity-40 group-hover:opacity-30 group-hover:scale-110 transition-all duration-1000 ease-out grayscale-[50%] group-hover:grayscale-0",sizes:"(max-width: 768px) 100vw, 33vw"})}),(0,t.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-[#0a192f]/90 via-[#0a192f]/60 to-[#0a192f]/40 z-0 group-hover:from-primary/90 group-hover:to-primary/20 transition-colors duration-700 mix-blend-multiply"}),(0,t.jsx)("div",{className:"relative z-10 flex flex-col items-center justify-center w-full h-full p-8 transform group-hover:scale-105 transition-transform duration-500",children:o?(0,t.jsxs)("div",{className:"flex flex-col items-center",children:[(0,t.jsx)("div",{className:"relative w-48 h-14 mb-2",children:(0,t.jsx)(a.default,{src:"/assets/logo-white.png",alt:"E-TIB Logo",fill:!0,className:"object-contain"})}),d&&(0,t.jsx)("div",{className:"text-white/80 tracking-[0.3em] text-xs font-semibold uppercase mt-1",children:"Ingenieurgesellschaft"})]}):c?(0,t.jsxs)("div",{className:"flex flex-col items-center",children:[(0,t.jsx)("div",{className:"text-5xl font-heading font-black text-white tracking-tight",children:"NEMO"}),(0,t.jsx)("div",{className:"text-white/60 tracking-widest text-xs font-semibold uppercase mt-1",children:"GmbH"})]}):(0,t.jsx)("div",{className:"text-2xl font-heading font-bold text-white uppercase text-center",children:e.title})}),e.url&&(0,t.jsx)("div",{className:"absolute bottom-6 left-0 right-0 flex justify-center opacity-0 group-hover:opacity-100 transform translate-y-4 group-hover:translate-y-0 transition-all duration-500 z-20",children:(0,t.jsxs)("div",{className:"flex items-center text-white font-bold uppercase text-xs tracking-widest bg-white/10 backdrop-blur-md px-4 py-2 rounded-full border border-white/20",children:["Website Besuchen",(0,t.jsx)("svg",{className:"w-4 h-4 ml-2",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,t.jsx)("path",{d:"M5 12h14M12 5l7 7-7 7"})})]})})]})},s)})})]})})}e.s(["SubCompanyTiles",()=>n])},285997,e=>{"use strict";var t=e.i(452797),r=e.i(184868),a=e.i(663067),s=e.i(112086),i=e.i(907358);function l(e){let{data:l}=e,[n,o]=(0,i.useState)(!1);(0,i.useEffect)(()=>{o(!0)},[]);let d=e.badge||l?.badge||"Leistungsspektrum",c=e.title||l?.title||"Umfassende Lösungen für komplexe Netzwerke",x=e.ctaLabel||l?.ctaLabel||"Alle Kompetenzen ansehen",m=e.ctaHref||l?.ctaHref||"/kompetenzen",h=e.items||l?.items||[];return n?(0,t.jsx)("section",{className:"py-24 bg-neutral text-neutral-dark overflow-hidden relative",children:(0,t.jsxs)("div",{className:"container",children:[(0,t.jsxs)("div",{className:"flex flex-col md:flex-row justify-between items-end mb-12",children:[(0,t.jsxs)("div",{className:"max-w-2xl",children:[(0,t.jsx)("h2",{className:"text-primary font-bold tracking-wider uppercase text-sm mb-3",children:d}),(0,t.jsx)("h3",{className:"font-heading text-4xl md:text-5xl font-extrabold text-neutral-dark mb-4",children:c})]}),(0,t.jsxs)(r.default,{href:m,className:"inline-flex items-center font-bold text-primary hover:text-primary-dark transition-colors group mt-6 md:mt-0 bg-primary/5 hover:bg-primary/10 px-6 py-3 rounded-xl",children:[x,(0,t.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-5 h-5 ml-2 transform group-hover:translate-x-1 transition-transform",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),(0,t.jsx)("polyline",{points:"12 5 19 12 12 19"})]})]})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-3 lg:grid-cols-4 gap-4 auto-rows-[220px]",children:h.map((e,r)=>{let i="large"===e.size,l="medium"===e.size,n="accent"===e.size,o=e.image?.url,d="rounded-2xl overflow-hidden relative group ";return(i?d+="md:col-span-2 md:row-span-2":l?d+="md:col-span-2 lg:col-span-2":n?d+="md:col-span-1 bg-primary text-white p-6 md:p-8 flex flex-col justify-center border-none shadow-md":d+="md:col-span-1",n)?(0,t.jsxs)(s.motion.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:.1*r},className:d,children:[(0,t.jsx)("div",{className:"absolute top-0 right-0 w-32 h-32 bg-primary/30 blur-3xl rounded-full -mr-10 -mt-10 group-hover:bg-primary/50 transition-colors duration-500"}),(0,t.jsx)("h4",{className:"font-bold text-xl md:text-2xl relative z-10 leading-snug",children:e.title}),e.description&&(0,t.jsx)("p",{className:"text-white/60 text-sm mt-3 relative z-10",children:e.description})]},r):(0,t.jsxs)(s.motion.div,{initial:{opacity:0,scale:.95},whileInView:{opacity:1,scale:1},viewport:{once:!0},transition:{delay:.1*r},className:d,children:[!o&&(0,t.jsx)("div",{className:"absolute inset-0 bg-neutral-dark z-0 transition-colors duration-500 group-hover:bg-primary-dark"}),o&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"absolute inset-0 bg-white z-0",children:(0,t.jsx)(a.default,{src:o,alt:e.title||"",fill:!0,className:"object-cover opacity-90 group-hover:scale-105 group-hover:opacity-100 transition-all duration-700 ease-in-out",sizes:i?"(max-width: 768px) 100vw, 50vw":"(max-width: 768px) 100vw, 25vw"})}),(0,t.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-black/80 via-black/20 to-transparent opacity-90 transition-opacity duration-500 z-0"})]}),(0,t.jsxs)("div",{className:"relative z-10 p-8 flex flex-col justify-end h-full text-white",children:[e.tag&&(0,t.jsx)("span",{className:"inline-block px-3 py-1 bg-primary/20 backdrop-blur-md rounded-full text-xs font-bold uppercase tracking-wider text-primary-light mb-3 w-fit border border-primary/30",children:e.tag}),(0,t.jsx)("h4",{className:`font-heading font-extrabold mb-2 ${i?"text-3xl md:text-5xl":"text-xl md:text-2xl"}`,children:e.title}),e.description&&(0,t.jsx)("p",{className:`text-white/80 ${i?"text-lg md:text-xl max-w-sm":"text-sm"}`,children:e.description})]})]},r)})})]})}):(0,t.jsx)("section",{className:"py-24 bg-neutral text-neutral-dark overflow-hidden relative",children:(0,t.jsxs)("div",{className:"container",children:[(0,t.jsx)("div",{className:"flex flex-col md:flex-row justify-between items-end mb-12",children:(0,t.jsxs)("div",{className:"max-w-2xl",children:[(0,t.jsx)("h2",{className:"text-primary font-bold tracking-wider uppercase text-sm mb-3",children:d}),(0,t.jsx)("h3",{className:"font-heading text-4xl md:text-5xl font-extrabold text-neutral-dark mb-4",children:c})]})}),(0,t.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-3 lg:grid-cols-4 gap-4 auto-rows-[220px]"})]})})}e.s(["CompetenceBentoGrid",()=>l])},677705,e=>{"use strict";var t=e.i(452797),r=e.i(907358),a=e.i(112086),s=e.i(184868),i=e.i(663067);function l(e){let{data:l}=e,n=e.references||[],o=r.useRef(null),d=e.badge||l?.badge||"Ausgewählte Projekte",c=e.title||l?.title||"Referenzen & Erfolge",x=e.description||l?.description||"Ein Auszug unserer erfolgreich abgeschlossenen Projekte im Bereich Kabeltiefbau, Bohrtechnik und Netzinfrastruktur.",m=e.ctaLabel||l?.ctaLabel||"Alle Referenzen ansehen",h=e.ctaHref||l?.ctaHref||"/referenzen";if(!n||0===n.length)return null;let u=["/assets/photos/DSC01123.JPG","/assets/photos/DSC00850.JPG","/assets/photos/DSC01129.JPG","/assets/photos/DSC00010.JPG"];return(0,t.jsxs)("section",{className:"py-24 bg-neutral-dark text-white overflow-hidden relative",children:[(0,t.jsx)("div",{className:"absolute inset-0 bg-gradient-to-b from-neutral-dark via-neutral-900 to-neutral-dark z-0"}),(0,t.jsxs)("div",{className:"container relative z-10 mb-12 flex flex-col md:flex-row justify-between items-end gap-6",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-primary-light font-bold tracking-wider uppercase text-sm mb-3",children:d}),(0,t.jsx)("h3",{className:"font-heading text-4xl md:text-5xl font-extrabold",children:c})]}),(0,t.jsx)("p",{className:"text-white/60 max-w-md",children:x})]}),(0,t.jsx)("div",{className:"relative z-10",children:(0,t.jsx)("div",{ref:o,className:"flex gap-6 overflow-x-auto pb-12 pt-4 snap-x snap-mandatory px-[calc((100vw-min(100%,1280px))/2)] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden",children:n.map((e,r)=>{let s=e.image&&"object"==typeof e.image&&e.image.url?e.image.url:u[r%u.length];return(0,t.jsx)(a.motion.div,{initial:{opacity:0,x:50},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{delay:.1*r,duration:.6,ease:"easeOut"},className:"flex-shrink-0 w-[320px] md:w-[480px] snap-center group cursor-pointer",children:(0,t.jsxs)("div",{className:"relative aspect-[16/10] bg-neutral-800 rounded-2xl overflow-hidden mb-5 border border-white/5 shadow-2xl",children:[(0,t.jsx)(i.default,{src:s,alt:e.title,fill:!0,sizes:"(max-width: 768px) 320px, 480px",className:"object-cover saturate-50 opacity-70 group-hover:scale-105 group-hover:opacity-100 group-hover:saturate-100 transition-all duration-700 ease-in-out"}),(0,t.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-black/90 via-black/30 to-transparent opacity-80 group-hover:opacity-90 transition-opacity duration-300"}),(0,t.jsxs)("div",{className:"absolute bottom-6 left-8 right-8 transform translate-y-4 group-hover:translate-y-0 transition-transform duration-500",children:[(0,t.jsx)("span",{className:"inline-block py-1.5 px-4 rounded-full bg-primary/30 backdrop-blur-md text-white text-xs font-bold uppercase tracking-widest mb-3 border border-primary/50",children:e.category}),(0,t.jsx)("h4",{className:"font-heading text-2xl md:text-3xl font-bold line-clamp-2",children:e.title})]})]})},e.id)})})}),(0,t.jsx)("div",{className:"container relative z-10 mt-4 flex justify-center",children:(0,t.jsxs)(s.default,{href:h,className:"px-8 py-4 rounded-xl bg-white/5 border border-white/20 hover:bg-white hover:text-neutral-dark hover:shadow-[0_0_20px_rgba(255,255,255,0.3)] transition-all font-bold flex items-center gap-3 backdrop-blur-sm",children:[m,(0,t.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",className:"w-5 h-5",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),(0,t.jsx)("polyline",{points:"12 5 19 12 12 19"})]})]})})]})}e.s(["ReferencesSlider",()=>l])}]); - -//# debugId=00b78d9e-4745-448a-350f-d0aa6b7b514c \ No newline at end of file diff --git a/.next/static/chunks/1fa1fc1d8df71347.js b/.next/static/chunks/ff6db6d7946b9f90.js similarity index 98% rename from .next/static/chunks/1fa1fc1d8df71347.js rename to .next/static/chunks/ff6db6d7946b9f90.js index 37bae40af..38261ba24 100644 --- a/.next/static/chunks/1fa1fc1d8df71347.js +++ b/.next/static/chunks/ff6db6d7946b9f90.js @@ -1,4 +1,4 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="8c0e24c0-52c2-99d0-c4f7-2f5c827ff097")}catch(e){}}(); -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,102227,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReflectAdapter",{enumerable:!0,get:function(){return n}});class n{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}},365278,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(496932).createAsyncLocalStorage)()},517110,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorage",{enumerable:!0,get:function(){return n.afterTaskAsyncStorageInstance}});let n=e.r(365278)},780329,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isRequestAPICallableInsideAfter:function(){return u},throwForSearchParamsAccessInUseCache:function(){return c},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(579781),o=e.r(517110);function s(e,t){throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${t}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function c(e,t){let r=Object.defineProperty(Error(`Route ${e.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(r,t),e.invalidDynamicUsageError??=r,r}function u(){let e=o.afterTaskAsyncStorage.getStore();return(null==e?void 0:e.rootTaskSpawnPhase)==="action"}},759823,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a={RenderStage:function(){return c},StagedRenderingController:function(){return u}};for(var i in a)Object.defineProperty(r,i,{enumerable:!0,get:a[i]});let o=e.r(436120),s=e.r(444841);var c=((n={})[n.Before=1]="Before",n[n.Static=2]="Static",n[n.Runtime=3]="Runtime",n[n.Dynamic=4]="Dynamic",n[n.Abandoned=5]="Abandoned",n);class u{constructor(e=null,t){this.abortSignal=e,this.hasRuntimePrefetch=t,this.currentStage=1,this.staticInterruptReason=null,this.runtimeInterruptReason=null,this.staticStageEndTime=1/0,this.runtimeStageEndTime=1/0,this.runtimeStageListeners=[],this.dynamicStageListeners=[],this.runtimeStagePromise=(0,s.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,s.createPromiseWithResolvers)(),this.mayAbandon=!1,e&&(e.addEventListener("abort",()=>{let{reason:t}=e;this.currentStage<3&&(this.runtimeStagePromise.promise.catch(_),this.runtimeStagePromise.reject(t)),(this.currentStage<4||5===this.currentStage)&&(this.dynamicStagePromise.promise.catch(_),this.dynamicStagePromise.reject(t))},{once:!0}),this.mayAbandon=!0)}onStage(e,t){if(this.currentStage>=e)t();else if(3===e)this.runtimeStageListeners.push(t);else if(4===e)this.dynamicStageListeners.push(t);else throw Object.defineProperty(new o.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}canSyncInterrupt(){if(1===this.currentStage)return!1;let e=this.hasRuntimePrefetch?4:3;return this.currentStage=3&&(this.staticStageEndTime=performance.now()+performance.timeOrigin,this.resolveRuntimeStage()),t<4&&e>=4){this.runtimeStageEndTime=performance.now()+performance.timeOrigin,this.resolveDynamicStage();return}}resolveRuntimeStage(){let e=this.runtimeStageListeners;for(let t=0;t{n.then(e.bind(null,i),t)}),void 0!==a&&(o.displayName=a),o);return this.abortSignal&&s.catch(_),s}}function _(){}},118720,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addPathSuffix",{enumerable:!0,get:function(){return a}});let n=e.r(506985);function a(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:i}=(0,n.parsePath)(e);return`${r}${t}${a}${i}`}},446247,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addLocale",{enumerable:!0,get:function(){return i}});let n=e.r(688391),a=e.r(712550);function i(e,t,r,i){if(!t||t===r)return e;let o=e.toLowerCase();return!i&&((0,a.pathHasPrefix)(o,"/api")||(0,a.pathHasPrefix)(o,`/${t.toLowerCase()}`))?e:(0,n.addPathPrefix)(e,`/${t}`)}},971560,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"formatNextPathnameInfo",{enumerable:!0,get:function(){return s}});let n=e.r(895708),a=e.r(688391),i=e.r(118720),o=e.r(446247);function s(e){let t=(0,o.addLocale)(e.pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix);return(e.buildId||!e.trailingSlash)&&(t=(0,n.removeTrailingSlash)(t)),e.buildId&&(t=(0,i.addPathSuffix)((0,a.addPathPrefix)(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=(0,a.addPathPrefix)(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:(0,i.addPathSuffix)(t,"/"):(0,n.removeTrailingSlash)(t)}},866140,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"normalizeLocalePath",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e,t){let r;if(!t)return{pathname:e};let a=n.get(t);a||(a=t.map(e=>e.toLowerCase()),n.set(t,a));let i=e.split("/",2);if(!i[1])return{pathname:e};let o=i[1].toLowerCase(),s=a.indexOf(o);return s<0?{pathname:e}:(r=t[s],{pathname:e=e.slice(r.length+1)||"/",detectedLocale:r})}},857436,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removePathPrefix",{enumerable:!0,get:function(){return a}});let n=e.r(712550);function a(e,t){if(!(0,n.pathHasPrefix)(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:`/${r}`}},707723,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getNextPathnameInfo",{enumerable:!0,get:function(){return o}});let n=e.r(866140),a=e.r(857436),i=e.r(712550);function o(e,t){let{basePath:r,i18n:o,trailingSlash:s}=t.nextConfig??{},c={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):s};r&&(0,i.pathHasPrefix)(c.pathname,r)&&(c.pathname=(0,a.removePathPrefix)(c.pathname,r),c.basePath=r);let u=c.pathname;if(c.pathname.startsWith("/_next/data/")&&c.pathname.endsWith(".json")){let e=c.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");c.buildId=e[0],u="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(c.pathname=u)}if(o){let e=t.i18nProvider?t.i18nProvider.analyze(c.pathname):(0,n.normalizeLocalePath)(c.pathname,o.locales);c.locale=e.detectedLocale,c.pathname=e.pathname??c.pathname,!e.detectedLocale&&c.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(u):(0,n.normalizeLocalePath)(u,o.locales)).detectedLocale&&(c.locale=e.detectedLocale)}return c}},955973,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_SUFFIX:function(){return h},APP_DIR_ALIAS:function(){return F},CACHE_ONE_YEAR:function(){return b},DOT_NEXT_ALIAS:function(){return j},ESLINT_DEFAULT_DIRS:function(){return ea},GSP_NO_RETURNED_VALUE:function(){return J},GSSP_COMPONENT_MEMBER_ERROR:function(){return et},GSSP_NO_RETURNED_VALUE:function(){return Z},HTML_CONTENT_TYPE_HEADER:function(){return o},INFINITE_CACHE:function(){return N},INSTRUMENTATION_HOOK_FILENAME:function(){return x},JSON_CONTENT_TYPE_HEADER:function(){return s},MATCHED_PATH_HEADER:function(){return _},MIDDLEWARE_FILENAME:function(){return L},MIDDLEWARE_LOCATION_REGEXP:function(){return y},NEXT_BODY_SUFFIX:function(){return g},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return v},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return P},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return T},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return C},NEXT_CACHE_TAGS_HEADER:function(){return m},NEXT_CACHE_TAG_MAX_ITEMS:function(){return O},NEXT_CACHE_TAG_MAX_LENGTH:function(){return I},NEXT_DATA_SUFFIX:function(){return S},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return u},NEXT_META_SUFFIX:function(){return R},NEXT_QUERY_PARAM_PREFIX:function(){return c},NEXT_RESUME_HEADER:function(){return A},NON_STANDARD_NODE_ENV:function(){return er},PAGES_DIR_ALIAS:function(){return M},PRERENDER_REVALIDATE_HEADER:function(){return d},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return l},PROXY_FILENAME:function(){return D},PROXY_LOCATION_REGEXP:function(){return w},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return V},ROOT_DIR_ALIAS:function(){return U},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return Y},RSC_ACTION_ENCRYPTION_ALIAS:function(){return k},RSC_ACTION_PROXY_ALIAS:function(){return G},RSC_ACTION_VALIDATE_ALIAS:function(){return X},RSC_CACHE_WRAPPER_ALIAS:function(){return B},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return W},RSC_MOD_REF_PROXY_ALIAS:function(){return H},RSC_SEGMENTS_DIR_SUFFIX:function(){return E},RSC_SEGMENT_SUFFIX:function(){return f},RSC_SUFFIX:function(){return p},SERVER_PROPS_EXPORT_ERROR:function(){return Q},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return K},SERVER_PROPS_SSG_CONFLICT:function(){return q},SERVER_RUNTIME:function(){return ei},SSG_FALLBACK_EXPORT_ERROR:function(){return en},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return $},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return z},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return i},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return ee},WEBPACK_LAYERS:function(){return ec},WEBPACK_RESOURCE_QUERIES:function(){return eu},WEB_SOCKET_MAX_RECONNECTIONS:function(){return eo}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i="text/plain",o="text/html; charset=utf-8",s="application/json; charset=utf-8",c="nxtP",u="nxtI",_="x-matched-path",d="x-prerender-revalidate",l="x-prerender-revalidate-if-generated",E=".segments",f=".segment.rsc",p=".rsc",h=".action",S=".json",R=".meta",g=".body",m="x-next-cache-tags",P="x-next-revalidated-tags",T="x-next-revalidate-tag-token",A="next-resume",O=128,I=256,C=1024,v="_N_T_",b=31536e3,N=0xfffffffe,L="middleware",y=`(?:src/)?${L}`,D="proxy",w=`(?:src/)?${D}`,x="instrumentation",M="private-next-pages",j="private-dot-next",U="private-next-root-dir",F="private-next-app-dir",H="private-next-rsc-mod-ref-proxy",X="private-next-rsc-action-validate",G="private-next-rsc-server-reference",B="private-next-rsc-cache-wrapper",W="private-next-rsc-track-dynamic-import",k="private-next-rsc-action-encryption",Y="private-next-rsc-action-client-wrapper",V="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",$="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",K="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",q="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",z="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",Q="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",J="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",Z="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",ee="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",et="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",er='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',en="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",ea=["app","pages","components","lib","src"],ei={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},eo=12,es={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},ec={...es,GROUP:{builtinReact:[es.reactServerComponents,es.actionBrowser],serverOnly:[es.reactServerComponents,es.actionBrowser,es.instrument,es.middleware],neutralTarget:[es.apiNode,es.apiEdge],clientOnly:[es.serverSideRendering,es.appPagesBrowser],bundled:[es.reactServerComponents,es.actionBrowser,es.serverSideRendering,es.appPagesBrowser,es.shared,es.instrument,es.middleware],appPages:[es.reactServerComponents,es.serverSideRendering,es.appPagesBrowser,es.actionBrowser]}},eu={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},630655,e=>{"use strict";var t=e.i(907358),r=e.i(777616);function n(){let e=(0,r.getAppServices)();return{trackEvent:(0,t.useCallback)((t,r)=>{e.analytics.track(t,r)},[e]),trackPageview:(0,t.useCallback)(t=>{e.analytics.trackPageview(t)},[e])}}e.s(["useAnalytics",()=>n])},216033,e=>{"use strict";e.s(["AnalyticsEvents",0,{PAGE_VIEW:"pageview",PAGE_SCROLL:"page_scroll",PAGE_EXIT:"page_exit",SCROLL_DEPTH:"scroll_depth",BUTTON_CLICK:"button_click",LINK_CLICK:"link_click",FORM_SUBMIT:"form_submit",FORM_START:"form_start",FORM_ERROR:"form_error",FORM_FIELD_FOCUS:"form_field_focus",PRODUCT_VIEW:"product_view",PRODUCT_ADD_TO_CART:"product_add_to_cart",PRODUCT_REMOVE_FROM_CART:"product_remove_from_cart",PRODUCT_PURCHASE:"product_purchase",PRODUCT_WISHLIST_ADD:"product_wishlist_add",PRODUCT_WISHLIST_REMOVE:"product_wishlist_remove",PRODUCT_TAB_SWITCH:"product_tab_switch",SEARCH:"search",FILTER_APPLY:"filter_apply",FILTER_CLEAR:"filter_clear",USER_SIGNUP:"user_signup",USER_LOGIN:"user_login",USER_LOGOUT:"user_logout",USER_PROFILE_UPDATE:"user_profile_update",BLOG_POST_VIEW:"blog_post_view",VIDEO_PLAY:"video_play",VIDEO_PAUSE:"video_pause",VIDEO_COMPLETE:"video_complete",DOWNLOAD:"download",MODAL_OPEN:"modal_open",MODAL_CLOSE:"modal_close",TOGGLE_SWITCH:"toggle_switch",ACCORDION_TOGGLE:"accordion_toggle",TAB_SWITCH:"tab_switch",TOC_CLICK:"toc_click",ERROR:"error",PERFORMANCE:"performance",API_ERROR:"api_error",API_SUCCESS:"api_success",QUOTE_REQUEST:"quote_request",CONTACT_FORM_SUBMIT:"contact_form_submit",NEWSLETTER_SUBSCRIBE:"newsletter_subscribe",BROCHURE_DOWNLOAD:"brochure_download"}])},315391,e=>{"use strict";var t=e.i(907358),r=e.i(976819),n=e.i(630655),a=e.i(216033);function i(){let e=(0,r.usePathname)(),{trackEvent:i}=(0,n.useAnalytics)(),o=(0,t.useRef)(new Set);return(0,t.useEffect)(()=>{o.current.clear()},[e]),(0,t.useEffect)(()=>{let t=()=>{let t=window.scrollY,r=window.innerHeight,n=document.documentElement.scrollHeight-r;if(n<=0)return;let s=Math.round(t/n*100);[25,50,75,100].forEach(t=>{s>=t&&!o.current.has(t)&&(o.current.add(t),i(a.AnalyticsEvents.SCROLL_DEPTH,{depth:t,path:e}))})};return window.addEventListener("scroll",t,{passive:!0}),t(),()=>{window.removeEventListener("scroll",t)}},[e,i]),null}e.s(["default",()=>i])},248785,e=>{e.n(e.i(315391))},919007,e=>{e.v(t=>Promise.all(["static/chunks/3ffd2a1cf95ceb60.js","static/chunks/f99046ae195fe277.js","static/chunks/6d182a34db4f4c54.js"].map(t=>e.l(t))).then(()=>t(502456)))}]); +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="f3c13ad1-6fb1-3267-e0ed-c24bd962b422")}catch(e){}}(); +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,102227,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ReflectAdapter",{enumerable:!0,get:function(){return n}});class n{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}},365278,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorageInstance",{enumerable:!0,get:function(){return n}});let n=(0,e.r(496932).createAsyncLocalStorage)()},517110,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"afterTaskAsyncStorage",{enumerable:!0,get:function(){return n.afterTaskAsyncStorageInstance}});let n=e.r(365278)},780329,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={isRequestAPICallableInsideAfter:function(){return u},throwForSearchParamsAccessInUseCache:function(){return c},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(579781),o=e.r(517110);function s(e,t){throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${e} with \`dynamic = "error"\` couldn't be rendered statically because it used ${t}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function c(e,t){let r=Object.defineProperty(Error(`Route ${e.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(r,t),e.invalidDynamicUsageError??=r,r}function u(){let e=o.afterTaskAsyncStorage.getStore();return(null==e?void 0:e.rootTaskSpawnPhase)==="action"}},759823,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n,a={RenderStage:function(){return c},StagedRenderingController:function(){return u}};for(var i in a)Object.defineProperty(r,i,{enumerable:!0,get:a[i]});let o=e.r(436120),s=e.r(444841);var c=((n={})[n.Before=1]="Before",n[n.Static=2]="Static",n[n.Runtime=3]="Runtime",n[n.Dynamic=4]="Dynamic",n[n.Abandoned=5]="Abandoned",n);class u{constructor(e=null,t){this.abortSignal=e,this.hasRuntimePrefetch=t,this.currentStage=1,this.staticInterruptReason=null,this.runtimeInterruptReason=null,this.staticStageEndTime=1/0,this.runtimeStageEndTime=1/0,this.runtimeStageListeners=[],this.dynamicStageListeners=[],this.runtimeStagePromise=(0,s.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,s.createPromiseWithResolvers)(),this.mayAbandon=!1,e&&(e.addEventListener("abort",()=>{let{reason:t}=e;this.currentStage<3&&(this.runtimeStagePromise.promise.catch(_),this.runtimeStagePromise.reject(t)),(this.currentStage<4||5===this.currentStage)&&(this.dynamicStagePromise.promise.catch(_),this.dynamicStagePromise.reject(t))},{once:!0}),this.mayAbandon=!0)}onStage(e,t){if(this.currentStage>=e)t();else if(3===e)this.runtimeStageListeners.push(t);else if(4===e)this.dynamicStageListeners.push(t);else throw Object.defineProperty(new o.InvariantError(`Invalid render stage: ${e}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}canSyncInterrupt(){if(1===this.currentStage)return!1;let e=this.hasRuntimePrefetch?4:3;return this.currentStage=3&&(this.staticStageEndTime=performance.now()+performance.timeOrigin,this.resolveRuntimeStage()),t<4&&e>=4){this.runtimeStageEndTime=performance.now()+performance.timeOrigin,this.resolveDynamicStage();return}}resolveRuntimeStage(){let e=this.runtimeStageListeners;for(let t=0;t{n.then(e.bind(null,i),t)}),void 0!==a&&(o.displayName=a),o);return this.abortSignal&&s.catch(_),s}}function _(){}},118720,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addPathSuffix",{enumerable:!0,get:function(){return a}});let n=e.r(506985);function a(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:i}=(0,n.parsePath)(e);return`${r}${t}${a}${i}`}},446247,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"addLocale",{enumerable:!0,get:function(){return i}});let n=e.r(688391),a=e.r(712550);function i(e,t,r,i){if(!t||t===r)return e;let o=e.toLowerCase();return!i&&((0,a.pathHasPrefix)(o,"/api")||(0,a.pathHasPrefix)(o,`/${t.toLowerCase()}`))?e:(0,n.addPathPrefix)(e,`/${t}`)}},971560,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"formatNextPathnameInfo",{enumerable:!0,get:function(){return s}});let n=e.r(895708),a=e.r(688391),i=e.r(118720),o=e.r(446247);function s(e){let t=(0,o.addLocale)(e.pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix);return(e.buildId||!e.trailingSlash)&&(t=(0,n.removeTrailingSlash)(t)),e.buildId&&(t=(0,i.addPathSuffix)((0,a.addPathPrefix)(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=(0,a.addPathPrefix)(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:(0,i.addPathSuffix)(t,"/"):(0,n.removeTrailingSlash)(t)}},866140,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"normalizeLocalePath",{enumerable:!0,get:function(){return a}});let n=new WeakMap;function a(e,t){let r;if(!t)return{pathname:e};let a=n.get(t);a||(a=t.map(e=>e.toLowerCase()),n.set(t,a));let i=e.split("/",2);if(!i[1])return{pathname:e};let o=i[1].toLowerCase(),s=a.indexOf(o);return s<0?{pathname:e}:(r=t[s],{pathname:e=e.slice(r.length+1)||"/",detectedLocale:r})}},857436,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"removePathPrefix",{enumerable:!0,get:function(){return a}});let n=e.r(712550);function a(e,t){if(!(0,n.pathHasPrefix)(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:`/${r}`}},707723,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getNextPathnameInfo",{enumerable:!0,get:function(){return o}});let n=e.r(866140),a=e.r(857436),i=e.r(712550);function o(e,t){let{basePath:r,i18n:o,trailingSlash:s}=t.nextConfig??{},c={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):s};r&&(0,i.pathHasPrefix)(c.pathname,r)&&(c.pathname=(0,a.removePathPrefix)(c.pathname,r),c.basePath=r);let u=c.pathname;if(c.pathname.startsWith("/_next/data/")&&c.pathname.endsWith(".json")){let e=c.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");c.buildId=e[0],u="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(c.pathname=u)}if(o){let e=t.i18nProvider?t.i18nProvider.analyze(c.pathname):(0,n.normalizeLocalePath)(c.pathname,o.locales);c.locale=e.detectedLocale,c.pathname=e.pathname??c.pathname,!e.detectedLocale&&c.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(u):(0,n.normalizeLocalePath)(u,o.locales)).detectedLocale&&(c.locale=e.detectedLocale)}return c}},955973,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ACTION_SUFFIX:function(){return h},APP_DIR_ALIAS:function(){return F},CACHE_ONE_YEAR:function(){return b},DOT_NEXT_ALIAS:function(){return j},ESLINT_DEFAULT_DIRS:function(){return ea},GSP_NO_RETURNED_VALUE:function(){return J},GSSP_COMPONENT_MEMBER_ERROR:function(){return et},GSSP_NO_RETURNED_VALUE:function(){return Z},HTML_CONTENT_TYPE_HEADER:function(){return o},INFINITE_CACHE:function(){return N},INSTRUMENTATION_HOOK_FILENAME:function(){return x},JSON_CONTENT_TYPE_HEADER:function(){return s},MATCHED_PATH_HEADER:function(){return _},MIDDLEWARE_FILENAME:function(){return L},MIDDLEWARE_LOCATION_REGEXP:function(){return y},NEXT_BODY_SUFFIX:function(){return g},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return v},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return P},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return T},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return C},NEXT_CACHE_TAGS_HEADER:function(){return m},NEXT_CACHE_TAG_MAX_ITEMS:function(){return O},NEXT_CACHE_TAG_MAX_LENGTH:function(){return I},NEXT_DATA_SUFFIX:function(){return S},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return u},NEXT_META_SUFFIX:function(){return R},NEXT_QUERY_PARAM_PREFIX:function(){return c},NEXT_RESUME_HEADER:function(){return A},NON_STANDARD_NODE_ENV:function(){return er},PAGES_DIR_ALIAS:function(){return M},PRERENDER_REVALIDATE_HEADER:function(){return d},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return l},PROXY_FILENAME:function(){return D},PROXY_LOCATION_REGEXP:function(){return w},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return V},ROOT_DIR_ALIAS:function(){return U},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return Y},RSC_ACTION_ENCRYPTION_ALIAS:function(){return k},RSC_ACTION_PROXY_ALIAS:function(){return G},RSC_ACTION_VALIDATE_ALIAS:function(){return X},RSC_CACHE_WRAPPER_ALIAS:function(){return B},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return W},RSC_MOD_REF_PROXY_ALIAS:function(){return H},RSC_SEGMENTS_DIR_SUFFIX:function(){return E},RSC_SEGMENT_SUFFIX:function(){return f},RSC_SUFFIX:function(){return p},SERVER_PROPS_EXPORT_ERROR:function(){return Q},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return K},SERVER_PROPS_SSG_CONFLICT:function(){return q},SERVER_RUNTIME:function(){return ei},SSG_FALLBACK_EXPORT_ERROR:function(){return en},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return $},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return z},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return i},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return ee},WEBPACK_LAYERS:function(){return ec},WEBPACK_RESOURCE_QUERIES:function(){return eu},WEB_SOCKET_MAX_RECONNECTIONS:function(){return eo}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i="text/plain",o="text/html; charset=utf-8",s="application/json; charset=utf-8",c="nxtP",u="nxtI",_="x-matched-path",d="x-prerender-revalidate",l="x-prerender-revalidate-if-generated",E=".segments",f=".segment.rsc",p=".rsc",h=".action",S=".json",R=".meta",g=".body",m="x-next-cache-tags",P="x-next-revalidated-tags",T="x-next-revalidate-tag-token",A="next-resume",O=128,I=256,C=1024,v="_N_T_",b=31536e3,N=0xfffffffe,L="middleware",y=`(?:src/)?${L}`,D="proxy",w=`(?:src/)?${D}`,x="instrumentation",M="private-next-pages",j="private-dot-next",U="private-next-root-dir",F="private-next-app-dir",H="private-next-rsc-mod-ref-proxy",X="private-next-rsc-action-validate",G="private-next-rsc-server-reference",B="private-next-rsc-cache-wrapper",W="private-next-rsc-track-dynamic-import",k="private-next-rsc-action-encryption",Y="private-next-rsc-action-client-wrapper",V="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",$="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",K="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",q="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",z="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",Q="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",J="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",Z="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",ee="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",et="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",er='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',en="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",ea=["app","pages","components","lib","src"],ei={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},eo=12,es={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},ec={...es,GROUP:{builtinReact:[es.reactServerComponents,es.actionBrowser],serverOnly:[es.reactServerComponents,es.actionBrowser,es.instrument,es.middleware],neutralTarget:[es.apiNode,es.apiEdge],clientOnly:[es.serverSideRendering,es.appPagesBrowser],bundled:[es.reactServerComponents,es.actionBrowser,es.serverSideRendering,es.appPagesBrowser,es.shared,es.instrument,es.middleware],appPages:[es.reactServerComponents,es.serverSideRendering,es.appPagesBrowser,es.actionBrowser]}},eu={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},630655,e=>{"use strict";var t=e.i(907358),r=e.i(777616);function n(){let e=(0,r.getAppServices)();return{trackEvent:(0,t.useCallback)((t,r)=>{e.analytics.track(t,r)},[e]),trackPageview:(0,t.useCallback)(t=>{e.analytics.trackPageview(t)},[e])}}e.s(["useAnalytics",()=>n])},216033,e=>{"use strict";e.s(["AnalyticsEvents",0,{PAGE_VIEW:"pageview",PAGE_SCROLL:"page_scroll",PAGE_EXIT:"page_exit",SCROLL_DEPTH:"scroll_depth",BUTTON_CLICK:"button_click",LINK_CLICK:"link_click",FORM_SUBMIT:"form_submit",FORM_START:"form_start",FORM_ERROR:"form_error",FORM_FIELD_FOCUS:"form_field_focus",PRODUCT_VIEW:"product_view",PRODUCT_ADD_TO_CART:"product_add_to_cart",PRODUCT_REMOVE_FROM_CART:"product_remove_from_cart",PRODUCT_PURCHASE:"product_purchase",PRODUCT_WISHLIST_ADD:"product_wishlist_add",PRODUCT_WISHLIST_REMOVE:"product_wishlist_remove",PRODUCT_TAB_SWITCH:"product_tab_switch",SEARCH:"search",FILTER_APPLY:"filter_apply",FILTER_CLEAR:"filter_clear",USER_SIGNUP:"user_signup",USER_LOGIN:"user_login",USER_LOGOUT:"user_logout",USER_PROFILE_UPDATE:"user_profile_update",BLOG_POST_VIEW:"blog_post_view",VIDEO_PLAY:"video_play",VIDEO_PAUSE:"video_pause",VIDEO_COMPLETE:"video_complete",DOWNLOAD:"download",MODAL_OPEN:"modal_open",MODAL_CLOSE:"modal_close",TOGGLE_SWITCH:"toggle_switch",ACCORDION_TOGGLE:"accordion_toggle",TAB_SWITCH:"tab_switch",TOC_CLICK:"toc_click",ERROR:"error",PERFORMANCE:"performance",API_ERROR:"api_error",API_SUCCESS:"api_success",QUOTE_REQUEST:"quote_request",CONTACT_FORM_SUBMIT:"contact_form_submit",NEWSLETTER_SUBSCRIBE:"newsletter_subscribe",BROCHURE_DOWNLOAD:"brochure_download"}])},315391,e=>{"use strict";var t=e.i(907358),r=e.i(976819),n=e.i(630655),a=e.i(216033);function i(){let e=(0,r.usePathname)(),{trackEvent:i}=(0,n.useAnalytics)(),o=(0,t.useRef)(new Set);return(0,t.useEffect)(()=>{o.current.clear()},[e]),(0,t.useEffect)(()=>{let t=()=>{let t=window.scrollY,r=window.innerHeight,n=document.documentElement.scrollHeight-r;if(n<=0)return;let s=Math.round(t/n*100);[25,50,75,100].forEach(t=>{s>=t&&!o.current.has(t)&&(o.current.add(t),i(a.AnalyticsEvents.SCROLL_DEPTH,{depth:t,path:e}))})};return window.addEventListener("scroll",t,{passive:!0}),t(),()=>{window.removeEventListener("scroll",t)}},[e,i]),null}e.s(["default",()=>i])},248785,e=>{e.n(e.i(315391))},919007,e=>{e.v(t=>Promise.all(["static/chunks/3ffd2a1cf95ceb60.js","static/chunks/32fec23faa4b171a.js","static/chunks/6d182a34db4f4c54.js"].map(t=>e.l(t))).then(()=>t(502456)))}]); -//# debugId=8c0e24c0-52c2-99d0-c4f7-2f5c827ff097 \ No newline at end of file +//# debugId=f3c13ad1-6fb1-3267-e0ed-c24bd962b422 \ No newline at end of file diff --git a/.next/static/chunks/turbopack-e5b78b2a7c8f1f21.js b/.next/static/chunks/turbopack-721eb9b8c3f79e29.js similarity index 90% rename from .next/static/chunks/turbopack-e5b78b2a7c8f1f21.js rename to .next/static/chunks/turbopack-721eb9b8c3f79e29.js index d49c08afd..14c23e887 100644 --- a/.next/static/chunks/turbopack-e5b78b2a7c8f1f21.js +++ b/.next/static/chunks/turbopack-721eb9b8c3f79e29.js @@ -1,7 +1,7 @@ -;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="662b758c-82f2-1130-3fdd-0f64e741a676")}catch(e){}}(); -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/c68fc807b9365f18.js","static/chunks/f51290069c969e8a.js","static/chunks/29297b02a438a66e.js","static/chunks/fd7b24483a212e2f.js","static/chunks/b62c08cc490fef16.js"],runtimeModuleIds:[312247]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=(self.TURBOPACK_CHUNK_SUFFIX??document?.currentScript?.getAttribute?.("src")?.replace(/^(.*(?=\?)|^.*$)/,""))||"",n=new WeakMap;function o(e,t){this.m=e,this.e=t}let l=o.prototype,i=Object.prototype.hasOwnProperty,s="u">typeof Symbol&&Symbol.toStringTag;function u(e,t,r){i.call(e,t)||Object.defineProperty(e,t,r)}function c(e,t){let r=e[t];return r||(r=a(t),e[t]=r),r}function a(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function f(e,t){u(e,"__esModule",{value:!0}),s&&u(e,s,{value:"Module"});let r=0;for(;rObject.getPrototypeOf(e):e=>e.__proto__,h=[null,p({}),p([]),p(p)];function d(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!h.includes(t);t=p(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),f(t,n),t}function m(e){let t=B(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=d(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function b(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}function y(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}l.i=m,l.A=function(e){return this.r(e)(m.bind(this))},l.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},l.r=function(e){return B(e,this.m).exports},l.f=function(e){function t(t){if(t=b(t),i.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(t=b(t),i.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let O=Symbol("turbopack queues"),g=Symbol("turbopack exports"),w=Symbol("turbopack error");function C(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}l.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:l,reject:i,promise:s}=y(),u=Object.assign(s,{[g]:r.exports,[O]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),c={get:()=>u,set(e){e!==u&&(u[g]=e)}};Object.defineProperty(r,"exports",c),Object.defineProperty(r,"namespaceObject",c),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(O in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[g]:{},[O]:e=>e(t)};return e.then(e=>{r[g]=e,C(t)},e=>{r[w]=e,C(t)}),r}}return{[g]:e,[O]:()=>{}}}),r=()=>t.map(e=>{if(e[w])throw e[w];return e[g]}),{promise:l,resolve:i}=y(),s=Object.assign(()=>i(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[O](u)),s.queueCount?l:r()},function(e){e?i(u[w]=e):l(u[g]),C(n)}),n&&-1===n.status&&(n.status=0)};let U=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function j(e,t){throw Error(`Invariant: ${t(e)}`)}U.prototype=URL.prototype,l.U=U,l.z=function(e){throw Error("dynamic usage of require is not supported")},l.g=globalThis;let R=o.prototype;var k,_=((k=_||{})[k.Runtime=0]="Runtime",k[k.Parent=1]="Parent",k[k.Update=2]="Update",k);let v=new Map;l.M=v;let $=new Map,P=new Map;async function S(e,t,r){let n;if("string"==typeof r)return E(e,t,K(r));let o=r.included||[],l=o.map(e=>!!v.has(e)||$.get(e));if(l.length>0&&l.every(e=>e))return void await Promise.all(l);let i=r.moduleChunks||[],s=i.map(e=>P.get(e)).filter(e=>e);if(s.length>0){if(s.length===i.length)return void await Promise.all(s);let r=new Set;for(let e of i)P.has(e)||r.add(e);for(let n of r){let r=E(e,t,K(n));P.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=E(e,t,K(r.path)),i))P.has(o)||P.set(o,n)}for(let e of o)$.has(e)||$.set(e,n);await n}R.l=function(e){return S(1,this.m.id,e)};let T=Promise.resolve(void 0),A=new WeakMap;function E(t,r,n){let o=e.loadChunkCached(t,n),l=A.get(o);if(void 0===l){let e=A.set.bind(A,o,T);l=o.then(e).catch(e=>{let o;switch(t){case 0:o=`as a runtime dependency of chunk ${r}`;break;case 1:o=`from module ${r}`;break;case 2:o="from an HMR update";break;default:j(t,e=>`Unknown source type: ${e}`)}let l=Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw l.name="ChunkLoadError",l}),A.set(o,l)}return l}function K(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}${r}`}R.L=function(e){return E(1,this.m.id,e)},R.R=function(e){let t=this.r(e);return t?.default??t},R.P=function(e){return`/ROOT/${e??""}`},R.b=function(e){let t=new Blob([`self.TURBOPACK_WORKER_LOCATION = ${JSON.stringify(location.origin)}; +;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="8f685a38-96aa-56cf-8d39-6e4e7fdd51bd")}catch(e){}}(); +(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/c68fc807b9365f18.js","static/chunks/b263a60573bfd155.js","static/chunks/29297b02a438a66e.js","static/chunks/fd7b24483a212e2f.js","static/chunks/b6898185462c2fee.js"],runtimeModuleIds:[312247]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=(self.TURBOPACK_CHUNK_SUFFIX??document?.currentScript?.getAttribute?.("src")?.replace(/^(.*(?=\?)|^.*$)/,""))||"",n=new WeakMap;function o(e,t){this.m=e,this.e=t}let l=o.prototype,i=Object.prototype.hasOwnProperty,s="u">typeof Symbol&&Symbol.toStringTag;function u(e,t,r){i.call(e,t)||Object.defineProperty(e,t,r)}function a(e,t){let r=e[t];return r||(r=c(t),e[t]=r),r}function c(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function f(e,t){u(e,"__esModule",{value:!0}),s&&u(e,s,{value:"Module"});let r=0;for(;rObject.getPrototypeOf(e):e=>e.__proto__,h=[null,p({}),p([]),p(p)];function d(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!h.includes(t);t=p(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),f(t,n),t}function m(e){let t=B(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=d(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function b(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}function y(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}l.i=m,l.A=function(e){return this.r(e)(m.bind(this))},l.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},l.r=function(e){return B(e,this.m).exports},l.f=function(e){function t(t){if(t=b(t),i.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(t=b(t),i.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let O=Symbol("turbopack queues"),g=Symbol("turbopack exports"),w=Symbol("turbopack error");function C(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}l.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:l,reject:i,promise:s}=y(),u=Object.assign(s,{[g]:r.exports,[O]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),a={get:()=>u,set(e){e!==u&&(u[g]=e)}};Object.defineProperty(r,"exports",a),Object.defineProperty(r,"namespaceObject",a),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(O in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[g]:{},[O]:e=>e(t)};return e.then(e=>{r[g]=e,C(t)},e=>{r[w]=e,C(t)}),r}}return{[g]:e,[O]:()=>{}}}),r=()=>t.map(e=>{if(e[w])throw e[w];return e[g]}),{promise:l,resolve:i}=y(),s=Object.assign(()=>i(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[O](u)),s.queueCount?l:r()},function(e){e?i(u[w]=e):l(u[g]),C(n)}),n&&-1===n.status&&(n.status=0)};let U=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function j(e,t){throw Error(`Invariant: ${t(e)}`)}U.prototype=URL.prototype,l.U=U,l.z=function(e){throw Error("dynamic usage of require is not supported")},l.g=globalThis;let R=o.prototype;var k,_=((k=_||{})[k.Runtime=0]="Runtime",k[k.Parent=1]="Parent",k[k.Update=2]="Update",k);let v=new Map;l.M=v;let $=new Map,P=new Map;async function S(e,t,r){let n;if("string"==typeof r)return E(e,t,K(r));let o=r.included||[],l=o.map(e=>!!v.has(e)||$.get(e));if(l.length>0&&l.every(e=>e))return void await Promise.all(l);let i=r.moduleChunks||[],s=i.map(e=>P.get(e)).filter(e=>e);if(s.length>0){if(s.length===i.length)return void await Promise.all(s);let r=new Set;for(let e of i)P.has(e)||r.add(e);for(let n of r){let r=E(e,t,K(n));P.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=E(e,t,K(r.path)),i))P.has(o)||P.set(o,n)}for(let e of o)$.has(e)||$.set(e,n);await n}R.l=function(e){return S(1,this.m.id,e)};let T=Promise.resolve(void 0),A=new WeakMap;function E(t,r,n){let o=e.loadChunkCached(t,n),l=A.get(o);if(void 0===l){let e=A.set.bind(A,o,T);l=o.then(e).catch(e=>{let o;switch(t){case 0:o=`as a runtime dependency of chunk ${r}`;break;case 1:o=`from module ${r}`;break;case 2:o="from an HMR update";break;default:j(t,e=>`Unknown source type: ${e}`)}let l=Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw l.name="ChunkLoadError",l}),A.set(o,l)}return l}function K(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}${r}`}R.L=function(e){return E(1,this.m.id,e)},R.R=function(e){let t=this.r(e);return t?.default??t},R.P=function(e){return`/ROOT/${e??""}`},R.b=function(e){let t=new Blob([`self.TURBOPACK_WORKER_LOCATION = ${JSON.stringify(location.origin)}; self.TURBOPACK_CHUNK_SUFFIX = ${JSON.stringify(r)}; self.TURBOPACK_NEXT_CHUNK_URLS = ${JSON.stringify(e.reverse().map(K),null,2)}; -importScripts(...self.TURBOPACK_NEXT_CHUNK_URLS.map(c => self.TURBOPACK_WORKER_LOCATION + c).reverse());`],{type:"text/javascript"});return URL.createObjectURL(t)};let x=/\.js(?:\?[^#]*)?(?:#.*)?$/,N=/\.css(?:\?[^#]*)?(?:#.*)?$/;function M(e){return N.test(e)}l.w=function(t,r,n){return e.loadWebAssembly(1,this.m.id,t,r,n)},l.u=function(t,r){return e.loadWebAssemblyModule(1,this.m.id,t,r)};let L={};l.c=L;let B=(e,t)=>{let r=L[e];if(r){if(r.error)throw r.error;return r}return q(e,_.Parent,t.id)};function q(e,t,r){let n=v.get(e);if("function"!=typeof n)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:j(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let l=a(e),i=l.exports;L[e]=l;let s=new o(l,i);try{n(s,l,i)}catch(e){throw l.error=e,e}return l.namespaceObject&&l.exports!==l.namespaceObject&&d(l.exports,l.namespaceObject),l}function I(r){let n,o=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(("u">typeof TURBOPACK_NEXT_CHUNK_URLS?TURBOPACK_NEXT_CHUNK_URLS.pop():e.getAttribute("src")).replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(r[0]);return 2===r.length?n=r[1]:(n=void 0,!function(e,t,r,n){let o=1;for(;o{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},W.set(e,t)}return t}e={async registerChunk(e,t){if(H(K(e)).resolve(),null!=t){for(let e of t.otherChunks)H(K("string"==typeof e?e:e.path));if(await Promise.all(t.otherChunks.map(t=>S(0,e,t))),t.runtimeModuleIds.length>0)for(let r of t.runtimeModuleIds)!function(e,t){let r=L[t];if(r){if(r.error)throw r.error;return}q(t,_.Runtime,e)}(e,r)}},loadChunkCached:(e,t)=>(function(e,t){let r=H(t);if(r.loadingStarted)return r.promise;if(e===_.Runtime)return r.loadingStarted=!0,M(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(M(t));else if(x.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(TURBOPACK_WORKER_LOCATION+t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(M(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(x.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let l=fetch(K(r)),{instance:i}=await WebAssembly.instantiateStreaming(l,o);return i.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(K(r));return await WebAssembly.compileStreaming(o)}};let F=globalThis.TURBOPACK;globalThis.TURBOPACK={push:I},F.forEach(I)})(); +importScripts(...self.TURBOPACK_NEXT_CHUNK_URLS.map(c => self.TURBOPACK_WORKER_LOCATION + c).reverse());`],{type:"text/javascript"});return URL.createObjectURL(t)};let x=/\.js(?:\?[^#]*)?(?:#.*)?$/,N=/\.css(?:\?[^#]*)?(?:#.*)?$/;function M(e){return N.test(e)}l.w=function(t,r,n){return e.loadWebAssembly(1,this.m.id,t,r,n)},l.u=function(t,r){return e.loadWebAssemblyModule(1,this.m.id,t,r)};let L={};l.c=L;let B=(e,t)=>{let r=L[e];if(r){if(r.error)throw r.error;return r}return q(e,_.Parent,t.id)};function q(e,t,r){let n=v.get(e);if("function"!=typeof n)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:j(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let l=c(e),i=l.exports;L[e]=l;let s=new o(l,i);try{n(s,l,i)}catch(e){throw l.error=e,e}return l.namespaceObject&&l.exports!==l.namespaceObject&&d(l.exports,l.namespaceObject),l}function I(r){let n,o=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(("u">typeof TURBOPACK_NEXT_CHUNK_URLS?TURBOPACK_NEXT_CHUNK_URLS.pop():e.getAttribute("src")).replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(r[0]);return 2===r.length?n=r[1]:(n=void 0,!function(e,t,r,n){let o=1;for(;o{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},W.set(e,t)}return t}e={async registerChunk(e,t){if(H(K(e)).resolve(),null!=t){for(let e of t.otherChunks)H(K("string"==typeof e?e:e.path));if(await Promise.all(t.otherChunks.map(t=>S(0,e,t))),t.runtimeModuleIds.length>0)for(let r of t.runtimeModuleIds)!function(e,t){let r=L[t];if(r){if(r.error)throw r.error;return}q(t,_.Runtime,e)}(e,r)}},loadChunkCached:(e,t)=>(function(e,t){let r=H(t);if(r.loadingStarted)return r.promise;if(e===_.Runtime)return r.loadingStarted=!0,M(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(M(t));else if(x.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(TURBOPACK_WORKER_LOCATION+t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(M(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(x.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let l=fetch(K(r)),{instance:i}=await WebAssembly.instantiateStreaming(l,o);return i.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(K(r));return await WebAssembly.compileStreaming(o)}};let F=globalThis.TURBOPACK;globalThis.TURBOPACK={push:I},F.forEach(I)})(); -//# debugId=662b758c-82f2-1130-3fdd-0f64e741a676 \ No newline at end of file +//# debugId=8f685a38-96aa-56cf-8d39-6e4e7fdd51bd \ No newline at end of file diff --git a/.next/trace b/.next/trace index 3121107b2..d614e2f3c 100644 --- a/.next/trace +++ b/.next/trace @@ -1 +1 @@ -[{"name":"generate-buildid","duration":135,"timestamp":1864083637653,"id":4,"parentId":1,"tags":{},"startTime":1778146050958,"traceId":"d409a29797d6b427"},{"name":"load-custom-routes","duration":5040,"timestamp":1864083637845,"id":5,"parentId":1,"tags":{},"startTime":1778146050958,"traceId":"d409a29797d6b427"},{"name":"create-dist-dir","duration":308,"timestamp":1864083642909,"id":6,"parentId":1,"tags":{},"startTime":1778146050963,"traceId":"d409a29797d6b427"},{"name":"clean","duration":25766,"timestamp":1864083644093,"id":7,"parentId":1,"tags":{},"startTime":1778146050965,"traceId":"d409a29797d6b427"},{"name":"create-pages-mapping","duration":108,"timestamp":1864083682739,"id":8,"parentId":1,"tags":{},"startTime":1778146051003,"traceId":"d409a29797d6b427"},{"name":"collect-app-files","duration":1633,"timestamp":1864083682868,"id":9,"parentId":1,"tags":{},"startTime":1778146051003,"traceId":"d409a29797d6b427"},{"name":"create-app-mapping","duration":28427,"timestamp":1864083684517,"id":10,"parentId":1,"tags":{},"startTime":1778146051005,"traceId":"d409a29797d6b427"},{"name":"create-app-layouts","duration":84,"timestamp":1864083712971,"id":11,"parentId":1,"tags":{},"startTime":1778146051034,"traceId":"d409a29797d6b427"},{"name":"collect-default-files","duration":965,"timestamp":1864083714835,"id":13,"parentId":1,"tags":{},"startTime":1778146051035,"traceId":"d409a29797d6b427"},{"name":"generate-route-types","duration":6628,"timestamp":1864083714400,"id":12,"parentId":1,"tags":{},"startTime":1778146051035,"traceId":"d409a29797d6b427"},{"name":"public-dir-conflict-check","duration":75,"timestamp":1864083721143,"id":14,"parentId":1,"tags":{},"startTime":1778146051042,"traceId":"d409a29797d6b427"},{"name":"generate-routes-manifest","duration":1553,"timestamp":1864083721340,"id":15,"parentId":1,"tags":{},"startTime":1778146051042,"traceId":"d409a29797d6b427"},{"name":"run-turbopack","duration":5691752,"timestamp":1864083726884,"id":17,"parentId":1,"tags":{},"startTime":1778146051047,"traceId":"d409a29797d6b427"},{"name":"after-production-compile","duration":227412,"timestamp":1864089419866,"id":19,"parentId":1,"tags":{},"startTime":1778146056740,"traceId":"d409a29797d6b427"},{"name":"run-typescript","duration":6778742,"timestamp":1864089648235,"id":20,"parentId":1,"tags":{},"startTime":1778146056969,"traceId":"d409a29797d6b427"},{"name":"generate-required-server-files","duration":433,"timestamp":1864096427491,"id":22,"parentId":1,"tags":{},"startTime":1778146063748,"traceId":"d409a29797d6b427"},{"name":"check-static-error-page","duration":1278,"timestamp":1864096432659,"id":24,"parentId":23,"tags":{},"startTime":1778146063753,"traceId":"d409a29797d6b427"},{"name":"is-page-static","duration":191081,"timestamp":1864096434568,"id":49,"parentId":27,"tags":{},"startTime":1778146063755,"traceId":"d409a29797d6b427"},{"name":"check-page","duration":192173,"timestamp":1864096433564,"id":27,"parentId":23,"tags":{"page":"/[locale]/[slug]/opengraph-image"},"startTime":1778146063754,"traceId":"d409a29797d6b427"},{"name":"is-page-static","duration":194369,"timestamp":1864096434856,"id":50,"parentId":29,"tags":{},"startTime":1778146063755,"traceId":"d409a29797d6b427"},{"name":"check-page","duration":195637,"timestamp":1864096433608,"id":29,"parentId":23,"tags":{"page":"/[locale]/blog/[slug]/opengraph-image"},"startTime":1778146063754,"traceId":"d409a29797d6b427"},{"name":"is-page-static","duration":220747,"timestamp":1864096435052,"id":52,"parentId":33,"tags":{},"startTime":1778146063756,"traceId":"d409a29797d6b427"},{"name":"check-page","duration":222155,"timestamp":1864096433671,"id":33,"parentId":23,"tags":{"page":"/[locale]/contact/opengraph-image"},"startTime":1778146063754,"traceId":"d409a29797d6b427"},{"name":"is-page-static","duration":221254,"timestamp":1864096434924,"id":51,"parentId":31,"tags":{},"startTime":1778146063756,"traceId":"d409a29797d6b427"},{"name":"check-page","duration":222547,"timestamp":1864096433638,"id":31,"parentId":23,"tags":{"page":"/[locale]/blog/opengraph-image"},"startTime":1778146063754,"traceId":"d409a29797d6b427"},{"name":"is-page-static","duration":222347,"timestamp":1864096435388,"id":56,"parentId":41,"tags":{},"startTime":1778146063756,"traceId":"d409a29797d6b427"},{"name":"check-page","duration":223951,"timestamp":1864096433819,"id":41,"parentId":23,"tags":{"page":"/api/save-session"},"startTime":1778146063754,"traceId":"d409a29797d6b427"},{"name":"is-page-static","duration":234177,"timestamp":1864096435193,"id":53,"parentId":35,"tags":{},"startTime":1778146063756,"traceId":"d409a29797d6b427"},{"name":"check-page","duration":235681,"timestamp":1864096433710,"id":35,"parentId":23,"tags":{"page":"/[locale]/opengraph-image"},"startTime":1778146063754,"traceId":"d409a29797d6b427"},{"name":"is-page-static","duration":235356,"timestamp":1864096435433,"id":58,"parentId":44,"tags":{},"startTime":1778146063756,"traceId":"d409a29797d6b427"},{"name":"check-page","duration":236938,"timestamp":1864096433863,"id":44,"parentId":23,"tags":{"page":"/manifest.webmanifest"},"startTime":1778146063754,"traceId":"d409a29797d6b427"},{"name":"is-page-static","duration":235736,"timestamp":1864096435370,"id":55,"parentId":40,"tags":{},"startTime":1778146063756,"traceId":"d409a29797d6b427"},{"name":"check-page","duration":237320,"timestamp":1864096433805,"id":40,"parentId":23,"tags":{"page":"/api/feedback"},"startTime":1778146063754,"traceId":"d409a29797d6b427"},{"name":"is-page-static","duration":235851,"timestamp":1864096435400,"id":57,"parentId":42,"tags":{},"startTime":1778146063756,"traceId":"d409a29797d6b427"},{"name":"check-page","duration":237429,"timestamp":1864096433834,"id":42,"parentId":23,"tags":{"page":"/api/whoami"},"startTime":1778146063754,"traceId":"d409a29797d6b427"},{"name":"is-page-static","duration":238012,"timestamp":1864096435257,"id":54,"parentId":37,"tags":{},"startTime":1778146063756,"traceId":"d409a29797d6b427"},{"name":"check-page","duration":239541,"timestamp":1864096433745,"id":37,"parentId":23,"tags":{"page":"/[locale]/team/opengraph-image"},"startTime":1778146063754,"traceId":"d409a29797d6b427"},{"name":"is-page-static","duration":241825,"timestamp":1864096435447,"id":59,"parentId":45,"tags":{},"startTime":1778146063756,"traceId":"d409a29797d6b427"},{"name":"check-page","duration":243413,"timestamp":1864096433878,"id":45,"parentId":23,"tags":{"page":"/robots.txt"},"startTime":1778146063754,"traceId":"d409a29797d6b427"},{"name":"is-page-static","duration":241392,"timestamp":1864096436003,"id":63,"parentId":26,"tags":{},"startTime":1778146063757,"traceId":"d409a29797d6b427"},{"name":"check-page","duration":243934,"timestamp":1864096433472,"id":26,"parentId":23,"tags":{"page":"/_global-error"},"startTime":1778146063754,"traceId":"d409a29797d6b427"},{"name":"is-page-static","duration":243927,"timestamp":1864096435507,"id":60,"parentId":46,"tags":{},"startTime":1778146063756,"traceId":"d409a29797d6b427"},{"name":"check-page","duration":245555,"timestamp":1864096433892,"id":46,"parentId":23,"tags":{"page":"/sitemap.xml"},"startTime":1778146063754,"traceId":"d409a29797d6b427"},{"name":"is-page-static","duration":246859,"timestamp":1864096435536,"id":61,"parentId":48,"tags":{},"startTime":1778146063756,"traceId":"d409a29797d6b427"},{"name":"check-page","duration":248486,"timestamp":1864096433919,"id":48,"parentId":23,"tags":{"page":"/test"},"startTime":1778146063755,"traceId":"d409a29797d6b427"},{"name":"is-page-static","duration":251593,"timestamp":1864096436022,"id":64,"parentId":25,"tags":{},"startTime":1778146063757,"traceId":"d409a29797d6b427"},{"name":"check-page","duration":254529,"timestamp":1864096433099,"id":25,"parentId":23,"tags":{"page":"/_not-found"},"startTime":1778146063754,"traceId":"d409a29797d6b427"},{"name":"is-page-static","duration":250768,"timestamp":1864096436897,"id":65,"parentId":47,"tags":{},"startTime":1778146063757,"traceId":"d409a29797d6b427"},{"name":"check-page","duration":253763,"timestamp":1864096433906,"id":47,"parentId":23,"tags":{"page":"/stats/api/send"},"startTime":1778146063755,"traceId":"d409a29797d6b427"},{"name":"is-page-static","duration":251995,"timestamp":1864096435699,"id":62,"parentId":43,"tags":{},"startTime":1778146063756,"traceId":"d409a29797d6b427"},{"name":"check-page","duration":253847,"timestamp":1864096433850,"id":43,"parentId":23,"tags":{"page":"/health"},"startTime":1778146063754,"traceId":"d409a29797d6b427"},{"name":"is-page-static","duration":310162,"timestamp":1864096437948,"id":69,"parentId":38,"tags":{},"startTime":1778146063759,"traceId":"d409a29797d6b427"},{"name":"check-page","duration":314373,"timestamp":1864096433762,"id":38,"parentId":23,"tags":{"page":"/[locale]/team"},"startTime":1778146063754,"traceId":"d409a29797d6b427"},{"name":"is-page-static","duration":312545,"timestamp":1864096437949,"id":70,"parentId":39,"tags":{},"startTime":1778146063759,"traceId":"d409a29797d6b427"},{"name":"check-page","duration":316717,"timestamp":1864096433789,"id":39,"parentId":23,"tags":{"page":"/[locale]/test"},"startTime":1778146063754,"traceId":"d409a29797d6b427"},{"name":"is-page-static","duration":315601,"timestamp":1864096437945,"id":68,"parentId":32,"tags":{},"startTime":1778146063759,"traceId":"d409a29797d6b427"},{"name":"check-page","duration":319907,"timestamp":1864096433652,"id":32,"parentId":23,"tags":{"page":"/[locale]/blog"},"startTime":1778146063754,"traceId":"d409a29797d6b427"},{"name":"is-page-static","duration":323509,"timestamp":1864096437952,"id":72,"parentId":34,"tags":{},"startTime":1778146063759,"traceId":"d409a29797d6b427"},{"name":"check-page","duration":327823,"timestamp":1864096433689,"id":34,"parentId":23,"tags":{"page":"/[locale]/contact"},"startTime":1778146063754,"traceId":"d409a29797d6b427"},{"name":"is-page-static","duration":487131,"timestamp":1864096437951,"id":71,"parentId":36,"tags":{},"startTime":1778146063759,"traceId":"d409a29797d6b427"},{"name":"check-page","duration":491371,"timestamp":1864096433731,"id":36,"parentId":23,"tags":{"page":"/[locale]"},"startTime":1778146063754,"traceId":"d409a29797d6b427"},{"name":"is-page-static","duration":487424,"timestamp":1864096437943,"id":67,"parentId":30,"tags":{},"startTime":1778146063759,"traceId":"d409a29797d6b427"},{"name":"check-page","duration":491751,"timestamp":1864096433625,"id":30,"parentId":23,"tags":{"page":"/[locale]/blog/[slug]"},"startTime":1778146063754,"traceId":"d409a29797d6b427"},{"name":"is-page-static","duration":487508,"timestamp":1864096437938,"id":66,"parentId":28,"tags":{},"startTime":1778146063759,"traceId":"d409a29797d6b427"},{"name":"check-page","duration":491867,"timestamp":1864096433588,"id":28,"parentId":23,"tags":{"page":"/[locale]/[slug]"},"startTime":1778146063754,"traceId":"d409a29797d6b427"},{"name":"static-check","duration":493057,"timestamp":1864096432420,"id":23,"parentId":1,"tags":{},"startTime":1778146063753,"traceId":"d409a29797d6b427"},{"name":"write-routes-manifest","duration":351,"timestamp":1864096927277,"id":74,"parentId":1,"tags":{},"startTime":1778146064248,"traceId":"d409a29797d6b427"},{"name":"load-dotenv","duration":10,"timestamp":1864096932266,"id":77,"parentId":76,"tags":{},"startTime":1778146064253,"traceId":"d409a29797d6b427"},{"name":"run-export-path-map","duration":184,"timestamp":1864096933372,"id":78,"parentId":76,"tags":{},"startTime":1778146064254,"traceId":"d409a29797d6b427"},{"name":"next-export","duration":183964,"timestamp":1864096931785,"id":76,"parentId":1,"tags":{},"startTime":1778146064252,"traceId":"d409a29797d6b427"},{"name":"move-exported-app-not-found-","duration":375,"timestamp":1864097116474,"id":79,"parentId":75,"tags":{},"startTime":1778146064437,"traceId":"d409a29797d6b427"},{"name":"move-exported-app-global-error-","duration":262,"timestamp":1864097116884,"id":80,"parentId":75,"tags":{},"startTime":1778146064437,"traceId":"d409a29797d6b427"},{"name":"static-generation","duration":189111,"timestamp":1864096928878,"id":75,"parentId":1,"tags":{},"startTime":1778146064249,"traceId":"d409a29797d6b427"},{"name":"write-routes-manifest","duration":253,"timestamp":1864097118080,"id":81,"parentId":1,"tags":{},"startTime":1778146064439,"traceId":"d409a29797d6b427"},{"name":"write-standalone-directory","duration":454419,"timestamp":1864097121206,"id":83,"parentId":1,"tags":{},"startTime":1778146064442,"traceId":"d409a29797d6b427"},{"name":"output-standalone","duration":454515,"timestamp":1864097121131,"id":82,"parentId":1,"tags":{},"startTime":1778146064442,"traceId":"d409a29797d6b427"},{"name":"print-tree-view","duration":1097,"timestamp":1864097575839,"id":84,"parentId":1,"tags":{},"startTime":1778146064896,"traceId":"d409a29797d6b427"},{"name":"telemetry-flush","duration":42075,"timestamp":1864097576942,"id":85,"parentId":1,"tags":{},"startTime":1778146064898,"traceId":"d409a29797d6b427"},{"name":"next-build","duration":14504054,"timestamp":1864083114979,"id":1,"tags":{"buildMode":"default","version":"16.1.6","bundler":"turbopack","has-custom-webpack-config":"true","use-build-worker":"false"},"startTime":1778146050436,"traceId":"d409a29797d6b427"}] +[{"name":"generate-buildid","duration":121,"timestamp":1864857302389,"id":4,"parentId":1,"tags":{},"startTime":1778146824627,"traceId":"2a4fc0233666475b"},{"name":"load-custom-routes","duration":4863,"timestamp":1864857302555,"id":5,"parentId":1,"tags":{},"startTime":1778146824627,"traceId":"2a4fc0233666475b"},{"name":"create-dist-dir","duration":283,"timestamp":1864857307440,"id":6,"parentId":1,"tags":{},"startTime":1778146824632,"traceId":"2a4fc0233666475b"},{"name":"clean","duration":202593,"timestamp":1864857308841,"id":7,"parentId":1,"tags":{},"startTime":1778146824633,"traceId":"2a4fc0233666475b"},{"name":"create-pages-mapping","duration":94,"timestamp":1864857523657,"id":8,"parentId":1,"tags":{},"startTime":1778146824848,"traceId":"2a4fc0233666475b"},{"name":"collect-app-files","duration":1524,"timestamp":1864857523768,"id":9,"parentId":1,"tags":{},"startTime":1778146824848,"traceId":"2a4fc0233666475b"},{"name":"create-app-mapping","duration":29889,"timestamp":1864857525305,"id":10,"parentId":1,"tags":{},"startTime":1778146824850,"traceId":"2a4fc0233666475b"},{"name":"create-app-layouts","duration":66,"timestamp":1864857555218,"id":11,"parentId":1,"tags":{},"startTime":1778146824880,"traceId":"2a4fc0233666475b"},{"name":"collect-default-files","duration":448,"timestamp":1864857556314,"id":13,"parentId":1,"tags":{},"startTime":1778146824881,"traceId":"2a4fc0233666475b"},{"name":"generate-route-types","duration":4729,"timestamp":1864857556018,"id":12,"parentId":1,"tags":{},"startTime":1778146824881,"traceId":"2a4fc0233666475b"},{"name":"public-dir-conflict-check","duration":39,"timestamp":1864857560772,"id":14,"parentId":1,"tags":{},"startTime":1778146824885,"traceId":"2a4fc0233666475b"},{"name":"generate-routes-manifest","duration":1360,"timestamp":1864857560839,"id":15,"parentId":1,"tags":{},"startTime":1778146824885,"traceId":"2a4fc0233666475b"},{"name":"run-turbopack","duration":5532000,"timestamp":1864857563725,"id":17,"parentId":1,"tags":{},"startTime":1778146824888,"traceId":"2a4fc0233666475b"},{"name":"after-production-compile","duration":225114,"timestamp":1864863097134,"id":19,"parentId":1,"tags":{},"startTime":1778146830422,"traceId":"2a4fc0233666475b"},{"name":"run-typescript","duration":6646443,"timestamp":1864863323211,"id":20,"parentId":1,"tags":{},"startTime":1778146830648,"traceId":"2a4fc0233666475b"},{"name":"generate-required-server-files","duration":636,"timestamp":1864869970542,"id":22,"parentId":1,"tags":{},"startTime":1778146837295,"traceId":"2a4fc0233666475b"},{"name":"check-static-error-page","duration":1585,"timestamp":1864869976335,"id":24,"parentId":23,"tags":{},"startTime":1778146837301,"traceId":"2a4fc0233666475b"},{"name":"is-page-static","duration":202360,"timestamp":1864869978692,"id":49,"parentId":27,"tags":{},"startTime":1778146837303,"traceId":"2a4fc0233666475b"},{"name":"check-page","duration":203598,"timestamp":1864869977515,"id":27,"parentId":23,"tags":{"page":"/[locale]/[slug]/opengraph-image"},"startTime":1778146837302,"traceId":"2a4fc0233666475b"},{"name":"is-page-static","duration":211324,"timestamp":1864869979634,"id":53,"parentId":29,"tags":{},"startTime":1778146837304,"traceId":"2a4fc0233666475b"},{"name":"check-page","duration":213418,"timestamp":1864869977565,"id":29,"parentId":23,"tags":{"page":"/[locale]/blog/[slug]/opengraph-image"},"startTime":1778146837302,"traceId":"2a4fc0233666475b"},{"name":"is-page-static","duration":212786,"timestamp":1864869979801,"id":54,"parentId":41,"tags":{},"startTime":1778146837304,"traceId":"2a4fc0233666475b"},{"name":"check-page","duration":214811,"timestamp":1864869977800,"id":41,"parentId":23,"tags":{"page":"/api/save-session"},"startTime":1778146837302,"traceId":"2a4fc0233666475b"},{"name":"is-page-static","duration":224930,"timestamp":1864869979894,"id":55,"parentId":40,"tags":{},"startTime":1778146837305,"traceId":"2a4fc0233666475b"},{"name":"check-page","duration":227061,"timestamp":1864869977783,"id":40,"parentId":23,"tags":{"page":"/api/feedback"},"startTime":1778146837302,"traceId":"2a4fc0233666475b"},{"name":"is-page-static","duration":227048,"timestamp":1864869979932,"id":56,"parentId":42,"tags":{},"startTime":1778146837305,"traceId":"2a4fc0233666475b"},{"name":"check-page","duration":229183,"timestamp":1864869977820,"id":42,"parentId":23,"tags":{"page":"/api/whoami"},"startTime":1778146837302,"traceId":"2a4fc0233666475b"},{"name":"is-page-static","duration":228613,"timestamp":1864869980077,"id":57,"parentId":45,"tags":{},"startTime":1778146837305,"traceId":"2a4fc0233666475b"},{"name":"check-page","duration":230844,"timestamp":1864869977861,"id":45,"parentId":23,"tags":{"page":"/robots.txt"},"startTime":1778146837303,"traceId":"2a4fc0233666475b"},{"name":"is-page-static","duration":229929,"timestamp":1864869980239,"id":58,"parentId":46,"tags":{},"startTime":1778146837305,"traceId":"2a4fc0233666475b"},{"name":"check-page","duration":232307,"timestamp":1864869977877,"id":46,"parentId":23,"tags":{"page":"/sitemap.xml"},"startTime":1778146837303,"traceId":"2a4fc0233666475b"},{"name":"is-page-static","duration":236471,"timestamp":1864869979380,"id":52,"parentId":37,"tags":{},"startTime":1778146837304,"traceId":"2a4fc0233666475b"},{"name":"check-page","duration":238152,"timestamp":1864869977715,"id":37,"parentId":23,"tags":{"page":"/[locale]/team/opengraph-image"},"startTime":1778146837302,"traceId":"2a4fc0233666475b"},{"name":"is-page-static","duration":237883,"timestamp":1864869979320,"id":51,"parentId":35,"tags":{},"startTime":1778146837304,"traceId":"2a4fc0233666475b"},{"name":"check-page","duration":239532,"timestamp":1864869977679,"id":35,"parentId":23,"tags":{"page":"/[locale]/opengraph-image"},"startTime":1778146837302,"traceId":"2a4fc0233666475b"},{"name":"is-page-static","duration":237232,"timestamp":1864869980433,"id":60,"parentId":44,"tags":{},"startTime":1778146837305,"traceId":"2a4fc0233666475b"},{"name":"check-page","duration":239825,"timestamp":1864869977850,"id":44,"parentId":23,"tags":{"page":"/manifest.webmanifest"},"startTime":1778146837303,"traceId":"2a4fc0233666475b"},{"name":"is-page-static","duration":238980,"timestamp":1864869979020,"id":50,"parentId":31,"tags":{},"startTime":1778146837304,"traceId":"2a4fc0233666475b"},{"name":"check-page","duration":240404,"timestamp":1864869977602,"id":31,"parentId":23,"tags":{"page":"/[locale]/blog/opengraph-image"},"startTime":1778146837302,"traceId":"2a4fc0233666475b"},{"name":"is-page-static","duration":236396,"timestamp":1864869981790,"id":63,"parentId":26,"tags":{},"startTime":1778146837306,"traceId":"2a4fc0233666475b"},{"name":"check-page","duration":240775,"timestamp":1864869977417,"id":26,"parentId":23,"tags":{"page":"/_global-error"},"startTime":1778146837302,"traceId":"2a4fc0233666475b"},{"name":"is-page-static","duration":238551,"timestamp":1864869980698,"id":61,"parentId":33,"tags":{},"startTime":1778146837305,"traceId":"2a4fc0233666475b"},{"name":"check-page","duration":241621,"timestamp":1864869977636,"id":33,"parentId":23,"tags":{"page":"/[locale]/contact/opengraph-image"},"startTime":1778146837302,"traceId":"2a4fc0233666475b"},{"name":"is-page-static","duration":240342,"timestamp":1864869980383,"id":59,"parentId":48,"tags":{},"startTime":1778146837305,"traceId":"2a4fc0233666475b"},{"name":"check-page","duration":242827,"timestamp":1864869977904,"id":48,"parentId":23,"tags":{"page":"/test"},"startTime":1778146837303,"traceId":"2a4fc0233666475b"},{"name":"is-page-static","duration":247349,"timestamp":1864869981800,"id":64,"parentId":25,"tags":{},"startTime":1778146837306,"traceId":"2a4fc0233666475b"},{"name":"check-page","duration":252221,"timestamp":1864869976942,"id":25,"parentId":23,"tags":{"page":"/_not-found"},"startTime":1778146837302,"traceId":"2a4fc0233666475b"},{"name":"is-page-static","duration":257133,"timestamp":1864869981151,"id":62,"parentId":43,"tags":{},"startTime":1778146837306,"traceId":"2a4fc0233666475b"},{"name":"check-page","duration":260465,"timestamp":1864869977836,"id":43,"parentId":23,"tags":{"page":"/health"},"startTime":1778146837302,"traceId":"2a4fc0233666475b"},{"name":"is-page-static","duration":256346,"timestamp":1864869982000,"id":65,"parentId":47,"tags":{},"startTime":1778146837307,"traceId":"2a4fc0233666475b"},{"name":"check-page","duration":260465,"timestamp":1864869977889,"id":47,"parentId":23,"tags":{"page":"/stats/api/send"},"startTime":1778146837303,"traceId":"2a4fc0233666475b"},{"name":"is-page-static","duration":311700,"timestamp":1864869987194,"id":69,"parentId":39,"tags":{},"startTime":1778146837312,"traceId":"2a4fc0233666475b"},{"name":"check-page","duration":321156,"timestamp":1864869977760,"id":39,"parentId":23,"tags":{"page":"/[locale]/test"},"startTime":1778146837302,"traceId":"2a4fc0233666475b"},{"name":"is-page-static","duration":316470,"timestamp":1864869987196,"id":70,"parentId":38,"tags":{},"startTime":1778146837312,"traceId":"2a4fc0233666475b"},{"name":"check-page","duration":325955,"timestamp":1864869977730,"id":38,"parentId":23,"tags":{"page":"/[locale]/team"},"startTime":1778146837302,"traceId":"2a4fc0233666475b"},{"name":"is-page-static","duration":318795,"timestamp":1864869987193,"id":68,"parentId":32,"tags":{},"startTime":1778146837312,"traceId":"2a4fc0233666475b"},{"name":"check-page","duration":328383,"timestamp":1864869977619,"id":32,"parentId":23,"tags":{"page":"/[locale]/blog"},"startTime":1778146837302,"traceId":"2a4fc0233666475b"},{"name":"is-page-static","duration":327978,"timestamp":1864869987201,"id":72,"parentId":34,"tags":{},"startTime":1778146837312,"traceId":"2a4fc0233666475b"},{"name":"check-page","duration":337567,"timestamp":1864869977656,"id":34,"parentId":23,"tags":{"page":"/[locale]/contact"},"startTime":1778146837302,"traceId":"2a4fc0233666475b"},{"name":"is-page-static","duration":494306,"timestamp":1864869987200,"id":71,"parentId":36,"tags":{},"startTime":1778146837312,"traceId":"2a4fc0233666475b"},{"name":"check-page","duration":503829,"timestamp":1864869977698,"id":36,"parentId":23,"tags":{"page":"/[locale]"},"startTime":1778146837302,"traceId":"2a4fc0233666475b"},{"name":"is-page-static","duration":494562,"timestamp":1864869987191,"id":67,"parentId":28,"tags":{},"startTime":1778146837312,"traceId":"2a4fc0233666475b"},{"name":"check-page","duration":504219,"timestamp":1864869977543,"id":28,"parentId":23,"tags":{"page":"/[locale]/[slug]"},"startTime":1778146837302,"traceId":"2a4fc0233666475b"},{"name":"is-page-static","duration":494603,"timestamp":1864869987178,"id":66,"parentId":30,"tags":{},"startTime":1778146837312,"traceId":"2a4fc0233666475b"},{"name":"check-page","duration":504212,"timestamp":1864869977582,"id":30,"parentId":23,"tags":{"page":"/[locale]/blog/[slug]"},"startTime":1778146837302,"traceId":"2a4fc0233666475b"},{"name":"static-check","duration":505766,"timestamp":1864869976042,"id":23,"parentId":1,"tags":{},"startTime":1778146837301,"traceId":"2a4fc0233666475b"},{"name":"write-routes-manifest","duration":827,"timestamp":1864870483611,"id":74,"parentId":1,"tags":{},"startTime":1778146837808,"traceId":"2a4fc0233666475b"},{"name":"load-dotenv","duration":15,"timestamp":1864870488720,"id":77,"parentId":76,"tags":{},"startTime":1778146837813,"traceId":"2a4fc0233666475b"},{"name":"run-export-path-map","duration":186,"timestamp":1864870489842,"id":78,"parentId":76,"tags":{},"startTime":1778146837814,"traceId":"2a4fc0233666475b"},{"name":"next-export","duration":163385,"timestamp":1864870488248,"id":76,"parentId":1,"tags":{},"startTime":1778146837813,"traceId":"2a4fc0233666475b"},{"name":"move-exported-app-not-found-","duration":253,"timestamp":1864870652294,"id":79,"parentId":75,"tags":{},"startTime":1778146837977,"traceId":"2a4fc0233666475b"},{"name":"move-exported-app-global-error-","duration":194,"timestamp":1864870652570,"id":80,"parentId":75,"tags":{},"startTime":1778146837977,"traceId":"2a4fc0233666475b"},{"name":"static-generation","duration":168113,"timestamp":1864870485326,"id":75,"parentId":1,"tags":{},"startTime":1778146837810,"traceId":"2a4fc0233666475b"},{"name":"write-routes-manifest","duration":731,"timestamp":1864870653536,"id":81,"parentId":1,"tags":{},"startTime":1778146837978,"traceId":"2a4fc0233666475b"},{"name":"write-standalone-directory","duration":502498,"timestamp":1864870657884,"id":83,"parentId":1,"tags":{},"startTime":1778146837983,"traceId":"2a4fc0233666475b"},{"name":"output-standalone","duration":502574,"timestamp":1864870657820,"id":82,"parentId":1,"tags":{},"startTime":1778146837982,"traceId":"2a4fc0233666475b"},{"name":"print-tree-view","duration":969,"timestamp":1864871160541,"id":84,"parentId":1,"tags":{},"startTime":1778146838485,"traceId":"2a4fc0233666475b"},{"name":"telemetry-flush","duration":19,"timestamp":1864871161516,"id":85,"parentId":1,"tags":{},"startTime":1778146838486,"traceId":"2a4fc0233666475b"},{"name":"next-build","duration":14484900,"timestamp":1864856676640,"id":1,"tags":{"buildMode":"default","version":"16.1.6","bundler":"turbopack","has-custom-webpack-config":"true","use-build-worker":"false"},"startTime":1778146824001,"traceId":"2a4fc0233666475b"}] diff --git a/.next/trace-build b/.next/trace-build index 7cb56db02..e681a7b7d 100644 --- a/.next/trace-build +++ b/.next/trace-build @@ -1 +1 @@ -[{"name":"run-turbopack","duration":5691752,"timestamp":1864083726884,"id":17,"parentId":1,"tags":{},"startTime":1778146051047,"traceId":"d409a29797d6b427"},{"name":"run-typescript","duration":6778742,"timestamp":1864089648235,"id":20,"parentId":1,"tags":{},"startTime":1778146056969,"traceId":"d409a29797d6b427"},{"name":"static-check","duration":493057,"timestamp":1864096432420,"id":23,"parentId":1,"tags":{},"startTime":1778146063753,"traceId":"d409a29797d6b427"},{"name":"static-generation","duration":189111,"timestamp":1864096928878,"id":75,"parentId":1,"tags":{},"startTime":1778146064249,"traceId":"d409a29797d6b427"},{"name":"output-standalone","duration":454515,"timestamp":1864097121131,"id":82,"parentId":1,"tags":{},"startTime":1778146064442,"traceId":"d409a29797d6b427"},{"name":"telemetry-flush","duration":42075,"timestamp":1864097576942,"id":85,"parentId":1,"tags":{},"startTime":1778146064898,"traceId":"d409a29797d6b427"},{"name":"next-build","duration":14504054,"timestamp":1864083114979,"id":1,"tags":{"buildMode":"default","version":"16.1.6","bundler":"turbopack","has-custom-webpack-config":"true","use-build-worker":"false"},"startTime":1778146050436,"traceId":"d409a29797d6b427"}] +[{"name":"run-turbopack","duration":5532000,"timestamp":1864857563725,"id":17,"parentId":1,"tags":{},"startTime":1778146824888,"traceId":"2a4fc0233666475b"},{"name":"run-typescript","duration":6646443,"timestamp":1864863323211,"id":20,"parentId":1,"tags":{},"startTime":1778146830648,"traceId":"2a4fc0233666475b"},{"name":"static-check","duration":505766,"timestamp":1864869976042,"id":23,"parentId":1,"tags":{},"startTime":1778146837301,"traceId":"2a4fc0233666475b"},{"name":"static-generation","duration":168113,"timestamp":1864870485326,"id":75,"parentId":1,"tags":{},"startTime":1778146837810,"traceId":"2a4fc0233666475b"},{"name":"output-standalone","duration":502574,"timestamp":1864870657820,"id":82,"parentId":1,"tags":{},"startTime":1778146837982,"traceId":"2a4fc0233666475b"},{"name":"telemetry-flush","duration":19,"timestamp":1864871161516,"id":85,"parentId":1,"tags":{},"startTime":1778146838486,"traceId":"2a4fc0233666475b"},{"name":"next-build","duration":14484900,"timestamp":1864856676640,"id":1,"tags":{"buildMode":"default","version":"16.1.6","bundler":"turbopack","has-custom-webpack-config":"true","use-build-worker":"false"},"startTime":1778146824001,"traceId":"2a4fc0233666475b"}] diff --git a/app/[locale]/[slug]/page.tsx b/app/[locale]/[slug]/page.tsx index 571673b68..822402bc6 100644 --- a/app/[locale]/[slug]/page.tsx +++ b/app/[locale]/[slug]/page.tsx @@ -17,6 +17,7 @@ import { ReferencesSlider as HomeReferencesSlider } from '@/components/blocks/Re import { CompanyTimeline } from '@/components/blocks/CompanyTimeline'; import { JobListingBlock } from '@/components/blocks/JobListingBlock'; import { CallToAction } from '@/components/blocks/CallToAction'; +import { Button } from '@/components/ui/Button'; const mdxComponents = { HomeHero, @@ -26,6 +27,7 @@ const mdxComponents = { CompanyTimeline, JobListingBlock, CallToAction, + Button, }; interface PageProps { diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx index 687773018..95e076583 100644 --- a/app/[locale]/page.tsx +++ b/app/[locale]/page.tsx @@ -12,11 +12,14 @@ import { SubCompanyTiles as HomeSubCompanyTiles } from '@/components/blocks/SubC import { CompetenceBentoGrid as HomeCompetenceBentoGrid } from '@/components/blocks/CompetenceBentoGrid'; import { ReferencesSlider as HomeReferencesSlider } from '@/components/blocks/ReferencesSlider'; +import { Button } from '@/components/ui/Button'; + const mdxComponents = { HomeHero, HomeSubCompanyTiles, HomeCompetenceBentoGrid, HomeReferencesSlider, + Button, }; export async function generateMetadata(props: any): Promise { diff --git a/components/blocks/CompetenceBentoGrid.tsx b/components/blocks/CompetenceBentoGrid.tsx index 6e3cebb39..ba715162a 100644 --- a/components/blocks/CompetenceBentoGrid.tsx +++ b/components/blocks/CompetenceBentoGrid.tsx @@ -4,6 +4,7 @@ import Link from 'next/link'; import Image from 'next/image'; import { motion } from 'framer-motion'; import { useState, useEffect } from 'react'; +import { Button } from '@/components/ui/Button'; interface CompetenceBentoGridProps { badge?: string; @@ -79,10 +80,10 @@ export function CompetenceBentoGrid(props: CompetenceBentoGridProps) {

{badge}

{title}

- +
diff --git a/components/blocks/JobListingBlock.tsx b/components/blocks/JobListingBlock.tsx index 06e9e0712..91c5a266d 100644 --- a/components/blocks/JobListingBlock.tsx +++ b/components/blocks/JobListingBlock.tsx @@ -1,5 +1,6 @@ import React from 'react'; import Link from 'next/link'; +import { Button } from '@/components/ui/Button'; export interface JobListingBlockProps { title?: string; @@ -89,7 +90,9 @@ export const JobListingBlock = async (props: JobListingBlockProps) => { ) : (

{emptyStateMessage}

- {emptyStateLinkText} +
)}
diff --git a/components/forms/ContactForm.tsx b/components/forms/ContactForm.tsx index 78f4d6d65..60ed11b11 100644 --- a/components/forms/ContactForm.tsx +++ b/components/forms/ContactForm.tsx @@ -2,6 +2,7 @@ import * as React from 'react'; import { motion } from 'framer-motion'; +import { Button } from '@/components/ui/Button'; export function ContactForm() { const [status, setStatus] = React.useState<'idle' | 'loading' | 'success' | 'error'>('idle'); @@ -99,10 +100,12 @@ export function ContactForm() { /> - +

Mit dem Absenden erkläre ich mich mit der Datenschutzerklärung einverstanden. diff --git a/components/layout/Header.tsx b/components/layout/Header.tsx index 9c21a42bd..5c740a0f9 100644 --- a/components/layout/Header.tsx +++ b/components/layout/Header.tsx @@ -6,6 +6,7 @@ import Image from 'next/image'; import { usePathname } from 'next/navigation'; import { motion, AnimatePresence } from 'framer-motion'; import { LanguageSwitcher } from './LanguageSwitcher'; +import { Button } from '@/components/ui/Button'; export interface NavLink { label: string; @@ -108,12 +109,13 @@ export function Header({ navLinks }: HeaderProps) { })}

- {currentLocale === 'de' ? 'Kontakt' : 'Contact'} - + {/* Mobile Nav Button */} diff --git a/content/de/home.mdx b/content/de/home.mdx index acd305f04..87574848b 100644 --- a/content/de/home.mdx +++ b/content/de/home.mdx @@ -55,26 +55,26 @@ description: Willkommen bei E-TIB GmbH
diff --git a/content/en/home.mdx b/content/en/home.mdx index c92d6749e..927c36628 100644 --- a/content/en/home.mdx +++ b/content/en/home.mdx @@ -55,26 +55,26 @@ description: Welcome to E-TIB GmbH

NOTE: this operation will continue even after it throws a {@link TimeoutError}.\n *\n * @param promise promise to use with timeout.\n * @param timeout the timeout in milliseconds until the returned promise is rejected.\n */\nexport function callWithTimeout(\n promise: Promise,\n timeout: number\n): Promise {\n let timeoutHandle: ReturnType;\n\n const timeoutPromise = new Promise(function timeoutFunction(\n _resolve,\n reject\n ) {\n timeoutHandle = setTimeout(function timeoutHandler() {\n reject(new TimeoutError('Operation timed out.'));\n }, timeout);\n });\n\n return Promise.race([promise, timeoutPromise]).then(\n result => {\n clearTimeout(timeoutHandle);\n return result;\n },\n reason => {\n clearTimeout(timeoutHandle);\n throw reason;\n }\n );\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * @deprecated please copy this code to your implementation instead, this function will be removed in the next major version of this package.\n * @param timer\n */\nexport function unrefTimer(timer: { unref(): unknown } | number): void {\n if (typeof timer !== 'number') {\n timer.unref();\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport interface Clock {\n /**\n * Return the current time in milliseconds from some epoch such as the Unix epoch or process start\n */\n now(): number;\n}\n\n/**\n * A utility for returning wall times anchored to a given point in time. Wall time measurements will\n * not be taken from the system, but instead are computed by adding a monotonic clock time\n * to the anchor point.\n *\n * This is needed because the system time can change and result in unexpected situations like\n * spans ending before they are started. Creating an anchored clock for each local root span\n * ensures that span timings and durations are accurate while preventing span times from drifting\n * too far from the system clock.\n *\n * Only creating an anchored clock once per local trace ensures span times are correct relative\n * to each other. For example, a child span will never have a start time before its parent even\n * if the system clock is corrected during the local trace.\n *\n * Heavily inspired by the OTel Java anchored clock\n * https://github.com/open-telemetry/opentelemetry-java/blob/main/sdk/trace/src/main/java/io/opentelemetry/sdk/trace/AnchoredClock.java\n */\nexport class AnchoredClock implements Clock {\n private _monotonicClock: Clock;\n private _epochMillis: number;\n private _performanceMillis: number;\n\n /**\n * Create a new AnchoredClock anchored to the current time returned by systemClock.\n *\n * @param systemClock should be a clock that returns the number of milliseconds since January 1 1970 such as Date\n * @param monotonicClock should be a clock that counts milliseconds monotonically such as window.performance or perf_hooks.performance\n */\n public constructor(systemClock: Clock, monotonicClock: Clock) {\n this._monotonicClock = monotonicClock;\n this._epochMillis = systemClock.now();\n this._performanceMillis = monotonicClock.now();\n }\n\n /**\n * Returns the current time by adding the number of milliseconds since the\n * AnchoredClock was created to the creation epoch time\n */\n public now(): number {\n const delta = this._monotonicClock.now() - this._performanceMillis;\n return this._epochMillis + delta;\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const VERSION = '0.214.0';\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport enum SemconvStability {\n /** Emit only stable semantic conventions. */\n STABLE = 0x1,\n /** Emit only old semantic conventions. */\n OLD = 0x2,\n /** Emit both stable and old semantic conventions. */\n DUPLICATE = 0x1 | 0x2,\n}\n\n// Common namespaces mentioned in semantic-conventions docs, but allow\n// other custom strings.\ntype SemConvStabilityNamespace =\n | 'http'\n | 'messaging'\n | 'database'\n | 'k8s'\n | (string & {});\n\n/**\n * Determine the appropriate semconv stability for the given namespace.\n *\n * This will parse the given string of comma-separated values (often\n * `process.env.OTEL_SEMCONV_STABILITY_OPT_IN`) looking for the `${namespace}`\n * or `${namespace}/dup` tokens. This is a pattern defined by a number of\n * non-normative semconv documents.\n *\n * For example:\n * - namespace 'http': https://opentelemetry.io/docs/specs/semconv/non-normative/http-migration/\n * - namespace 'database': https://opentelemetry.io/docs/specs/semconv/non-normative/database-migration/\n * - namespace 'k8s': https://opentelemetry.io/docs/specs/semconv/non-normative/k8s-migration/\n *\n * Usage:\n *\n * import {SemconvStability, semconvStabilityFromStr} from '@opentelemetry/instrumentation';\n *\n * export class FooInstrumentation extends InstrumentationBase {\n * private _semconvStability: SemconvStability;\n * constructor(config: FooInstrumentationConfig = {}) {\n * super('@opentelemetry/instrumentation-foo', VERSION, config);\n *\n * // When supporting the OTEL_SEMCONV_STABILITY_OPT_IN envvar\n * this._semconvStability = semconvStabilityFromStr(\n * 'http',\n * process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n * );\n *\n * // or when supporting a `semconvStabilityOptIn` config option (e.g. for\n * // the web where there are no envvars).\n * this._semconvStability = semconvStabilityFromStr(\n * 'http',\n * config?.semconvStabilityOptIn\n * );\n * }\n * }\n *\n * // Then, to apply semconv, use the following or similar:\n * if (this._semconvStability & SemconvStability.OLD) {\n * // ...\n * }\n * if (this._semconvStability & SemconvStability.STABLE) {\n * // ...\n * }\n *\n */\nexport function semconvStabilityFromStr(\n namespace: SemConvStabilityNamespace,\n str: string | undefined\n) {\n let semconvStability = SemconvStability.OLD;\n\n // The same parsing of `str` as `getStringListFromEnv` from the core pkg.\n const entries = str\n ?.split(',')\n .map(v => v.trim())\n .filter(s => s !== '');\n for (const entry of entries ?? []) {\n if (entry.toLowerCase() === namespace + '/dup') {\n // DUPLICATE takes highest precedence.\n semconvStability = SemconvStability.DUPLICATE;\n break;\n } else if (entry.toLowerCase() === namespace) {\n semconvStability = SemconvStability.STABLE;\n }\n }\n\n return semconvStability;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { LoggerProvider } from './types/LoggerProvider';\nimport type { Logger } from './types/Logger';\nimport type { LoggerOptions } from './types/LoggerOptions';\nimport { NOOP_LOGGER_PROVIDER } from './NoopLoggerProvider';\nimport { ProxyLogger } from './ProxyLogger';\n\nexport class ProxyLoggerProvider implements LoggerProvider {\n private _delegate?: LoggerProvider;\n\n getLogger(\n name: string,\n version?: string | undefined,\n options?: LoggerOptions | undefined\n ): Logger {\n return (\n this._getDelegateLogger(name, version, options) ??\n new ProxyLogger(this, name, version, options)\n );\n }\n\n /**\n * Get the delegate logger provider.\n * Used by tests only.\n * @internal\n */\n _getDelegate(): LoggerProvider {\n return this._delegate ?? NOOP_LOGGER_PROVIDER;\n }\n\n /**\n * Set the delegate logger provider\n * @internal\n */\n _setDelegate(delegate: LoggerProvider) {\n this._delegate = delegate;\n }\n\n /**\n * @internal\n */\n _getDelegateLogger(\n name: string,\n version?: string | undefined,\n options?: LoggerOptions | undefined\n ): Logger | undefined {\n return this._delegate?.getLogger(name, version, options);\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n API_BACKWARDS_COMPATIBILITY_VERSION,\n GLOBAL_LOGS_API_KEY,\n _global,\n makeGetter,\n} from '../internal/global-utils';\nimport type { LoggerProvider } from '../types/LoggerProvider';\nimport { NOOP_LOGGER_PROVIDER } from '../NoopLoggerProvider';\nimport type { Logger } from '../types/Logger';\nimport type { LoggerOptions } from '../types/LoggerOptions';\nimport { ProxyLoggerProvider } from '../ProxyLoggerProvider';\n\nexport class LogsAPI {\n private static _instance?: LogsAPI;\n\n private _proxyLoggerProvider = new ProxyLoggerProvider();\n\n private constructor() {}\n\n public static getInstance(): LogsAPI {\n if (!this._instance) {\n this._instance = new LogsAPI();\n }\n\n return this._instance;\n }\n\n public setGlobalLoggerProvider(provider: LoggerProvider): LoggerProvider {\n if (_global[GLOBAL_LOGS_API_KEY]) {\n return this.getLoggerProvider();\n }\n\n _global[GLOBAL_LOGS_API_KEY] = makeGetter(\n API_BACKWARDS_COMPATIBILITY_VERSION,\n provider,\n NOOP_LOGGER_PROVIDER\n );\n this._proxyLoggerProvider._setDelegate(provider);\n\n return provider;\n }\n\n /**\n * Returns the global logger provider.\n *\n * @returns LoggerProvider\n */\n public getLoggerProvider(): LoggerProvider {\n return (\n _global[GLOBAL_LOGS_API_KEY]?.(API_BACKWARDS_COMPATIBILITY_VERSION) ??\n this._proxyLoggerProvider\n );\n }\n\n /**\n * Returns a logger from the global logger provider.\n *\n * @returns Logger\n */\n public getLogger(\n name: string,\n version?: string,\n options?: LoggerOptions\n ): Logger {\n return this.getLoggerProvider().getLogger(name, version, options);\n }\n\n /** Remove the global logger provider */\n public disable(): void {\n delete _global[GLOBAL_LOGS_API_KEY];\n this._proxyLoggerProvider = new ProxyLoggerProvider();\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport type { Logger } from './types/Logger';\nexport type { LoggerProvider } from './types/LoggerProvider';\nexport { SeverityNumber } from './types/LogRecord';\nexport type { LogAttributes, LogBody, LogRecord } from './types/LogRecord';\nexport type { LoggerOptions } from './types/LoggerOptions';\nexport type { AnyValue, AnyValueMap } from './types/AnyValue';\nexport { NOOP_LOGGER, NoopLogger } from './NoopLogger';\n\nimport { LogsAPI } from './api/logs';\nexport const logs = LogsAPI.getInstance();\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { trace, metrics } from '@opentelemetry/api';\nimport { logs } from '@opentelemetry/api-logs';\nimport {\n disableInstrumentations,\n enableInstrumentations,\n} from './autoLoaderUtils';\nimport type { AutoLoaderOptions } from './types_internal';\n\n/**\n * It will register instrumentations and plugins\n * @param options\n * @return returns function to unload instrumentation and plugins that were\n * registered\n */\nexport function registerInstrumentations(\n options: AutoLoaderOptions\n): () => void {\n const tracerProvider = options.tracerProvider || trace.getTracerProvider();\n const meterProvider = options.meterProvider || metrics.getMeterProvider();\n const loggerProvider = options.loggerProvider || logs.getLoggerProvider();\n const instrumentations = options.instrumentations?.flat() ?? [];\n\n enableInstrumentations(\n instrumentations,\n tracerProvider,\n meterProvider,\n loggerProvider\n );\n\n return () => {\n disableInstrumentations(instrumentations);\n };\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport { registerInstrumentations } from './autoLoader';\nexport { InstrumentationBase } from './platform/index';\nexport { InstrumentationNodeModuleDefinition } from './instrumentationNodeModuleDefinition';\nexport { InstrumentationNodeModuleFile } from './instrumentationNodeModuleFile';\nexport type {\n Instrumentation,\n InstrumentationConfig,\n InstrumentationModuleDefinition,\n InstrumentationModuleFile,\n ShimWrapped,\n SpanCustomizationHook,\n} from './types';\nexport type { AutoLoaderOptions, AutoLoaderResult } from './types_internal';\nexport {\n isWrapped,\n safeExecuteInTheMiddle,\n safeExecuteInTheMiddleAsync,\n} from './utils';\nexport { SemconvStability, semconvStabilityFromStr } from './semconvStability';\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n DiagLogger,\n Meter,\n MeterProvider,\n Tracer,\n TracerProvider,\n Span,\n} from '@opentelemetry/api';\nimport { diag, metrics, trace } from '@opentelemetry/api';\nimport type { Logger, LoggerProvider } from '@opentelemetry/api-logs';\nimport { logs } from '@opentelemetry/api-logs';\nimport * as shimmer from './shimmer';\nimport type {\n InstrumentationModuleDefinition,\n Instrumentation,\n InstrumentationConfig,\n SpanCustomizationHook,\n} from './types';\n\n/**\n * Base abstract internal class for instrumenting node and web plugins\n */\nexport abstract class InstrumentationAbstract<\n ConfigType extends InstrumentationConfig = InstrumentationConfig,\n> implements Instrumentation\n{\n protected _config: ConfigType = {} as ConfigType;\n\n private _tracer: Tracer;\n private _meter: Meter;\n private _logger: Logger;\n protected _diag: DiagLogger;\n public readonly instrumentationName: string;\n public readonly instrumentationVersion: string;\n\n constructor(\n instrumentationName: string,\n instrumentationVersion: string,\n config: ConfigType\n ) {\n this.instrumentationName = instrumentationName;\n this.instrumentationVersion = instrumentationVersion;\n\n this.setConfig(config);\n\n this._diag = diag.createComponentLogger({\n namespace: instrumentationName,\n });\n\n this._tracer = trace.getTracer(instrumentationName, instrumentationVersion);\n this._meter = metrics.getMeter(instrumentationName, instrumentationVersion);\n this._logger = logs.getLogger(instrumentationName, instrumentationVersion);\n this._updateMetricInstruments();\n }\n\n /* Api to wrap instrumented method */\n protected _wrap = shimmer.wrap;\n /* Api to unwrap instrumented methods */\n protected _unwrap = shimmer.unwrap;\n /* Api to mass wrap instrumented method */\n protected _massWrap = shimmer.massWrap;\n /* Api to mass unwrap instrumented methods */\n protected _massUnwrap = shimmer.massUnwrap;\n\n /* Returns meter */\n protected get meter(): Meter {\n return this._meter;\n }\n\n /**\n * Sets MeterProvider to this plugin\n * @param meterProvider\n */\n public setMeterProvider(meterProvider: MeterProvider): void {\n this._meter = meterProvider.getMeter(\n this.instrumentationName,\n this.instrumentationVersion\n );\n\n this._updateMetricInstruments();\n }\n\n /* Returns logger */\n protected get logger(): Logger {\n return this._logger;\n }\n\n /**\n * Sets LoggerProvider to this plugin\n * @param loggerProvider\n */\n public setLoggerProvider(loggerProvider: LoggerProvider): void {\n this._logger = loggerProvider.getLogger(\n this.instrumentationName,\n this.instrumentationVersion\n );\n }\n\n /**\n * @experimental\n *\n * Get module definitions defined by {@link init}.\n * This can be used for experimental compile-time instrumentation.\n *\n * @returns an array of {@link InstrumentationModuleDefinition}\n */\n public getModuleDefinitions(): InstrumentationModuleDefinition[] {\n const initResult = this.init() ?? [];\n if (!Array.isArray(initResult)) {\n return [initResult];\n }\n\n return initResult;\n }\n\n /**\n * Sets the new metric instruments with the current Meter.\n */\n protected _updateMetricInstruments(): void {\n return;\n }\n\n /* Returns InstrumentationConfig */\n public getConfig(): ConfigType {\n return this._config;\n }\n\n /**\n * Sets InstrumentationConfig to this plugin\n * @param config\n */\n public setConfig(config: ConfigType): void {\n // copy config first level properties to ensure they are immutable.\n // nested properties are not copied, thus are mutable from the outside.\n this._config = {\n enabled: true,\n ...config,\n };\n }\n\n /**\n * Sets TraceProvider to this plugin\n * @param tracerProvider\n */\n public setTracerProvider(tracerProvider: TracerProvider): void {\n this._tracer = tracerProvider.getTracer(\n this.instrumentationName,\n this.instrumentationVersion\n );\n }\n\n /* Returns tracer */\n protected get tracer(): Tracer {\n return this._tracer;\n }\n\n /* Enable plugin */\n public abstract enable(): void;\n\n /* Disable plugin */\n public abstract disable(): void;\n\n /**\n * Init method in which plugin should define _modules and patches for\n * methods.\n */\n protected abstract init():\n | InstrumentationModuleDefinition\n | InstrumentationModuleDefinition[]\n | void;\n\n /**\n * Execute span customization hook, if configured, and log any errors.\n * Any semantics of the trigger and info are defined by the specific instrumentation.\n * @param hookHandler The optional hook handler which the user has configured via instrumentation config\n * @param triggerName The name of the trigger for executing the hook for logging purposes\n * @param span The span to which the hook should be applied\n * @param info The info object to be passed to the hook, with useful data the hook may use\n */\n protected _runSpanCustomizationHook(\n hookHandler: SpanCustomizationHook | undefined,\n triggerName: string,\n span: Span,\n info: SpanCustomizationInfoType\n ) {\n if (!hookHandler) {\n return;\n }\n\n try {\n hookHandler(span, info);\n } catch (e) {\n this._diag.error(\n `Error running span customization hook due to exception in handler`,\n { triggerName },\n e\n );\n }\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { OnRequireFn } from 'require-in-the-middle';\nimport { Hook } from 'require-in-the-middle';\nimport * as path from 'path';\nimport { ModuleNameTrie, ModuleNameSeparator } from './ModuleNameTrie';\n\nexport type Hooked = {\n moduleName: string;\n onRequire: OnRequireFn;\n};\n\n/**\n * Whether Mocha is running in this process\n * Inspired by https://github.com/AndreasPizsa/detect-mocha\n *\n * @type {boolean}\n */\nconst isMocha = [\n 'afterEach',\n 'after',\n 'beforeEach',\n 'before',\n 'describe',\n 'it',\n].every(fn => {\n // @ts-expect-error TS7053: Element implicitly has an 'any' type\n return typeof global[fn] === 'function';\n});\n\n/**\n * Singleton class for `require-in-the-middle`\n * Allows instrumentation plugins to patch modules with only a single `require` patch\n * WARNING: Because this class will create its own `require-in-the-middle` (RITM) instance,\n * we should minimize the number of new instances of this class.\n * Multiple instances of `@opentelemetry/instrumentation` (e.g. multiple versions) in a single process\n * will result in multiple instances of RITM, which will have an impact\n * on the performance of instrumentation hooks being applied.\n */\nexport class RequireInTheMiddleSingleton {\n private _moduleNameTrie: ModuleNameTrie = new ModuleNameTrie();\n private static _instance?: RequireInTheMiddleSingleton;\n\n private constructor() {\n this._initialize();\n }\n\n private _initialize() {\n new Hook(\n // Intercept all `require` calls; we will filter the matching ones below\n null,\n { internals: true },\n (exports, name, basedir) => {\n // For internal files on Windows, `name` will use backslash as the path separator\n const normalizedModuleName = normalizePathSeparators(name);\n\n const matches = this._moduleNameTrie.search(normalizedModuleName, {\n maintainInsertionOrder: true,\n // For core modules (e.g. `fs`), do not match on sub-paths (e.g. `fs/promises').\n // This matches the behavior of `require-in-the-middle`.\n // `basedir` is always `undefined` for core modules.\n fullOnly: basedir === undefined,\n });\n\n for (const { onRequire } of matches) {\n exports = onRequire(exports, name, basedir);\n }\n\n return exports;\n }\n );\n }\n\n /**\n * Register a hook with `require-in-the-middle`\n *\n * @param {string} moduleName Module name\n * @param {OnRequireFn} onRequire Hook function\n * @returns {Hooked} Registered hook\n */\n register(moduleName: string, onRequire: OnRequireFn): Hooked {\n const hooked = { moduleName, onRequire };\n this._moduleNameTrie.insert(hooked);\n return hooked;\n }\n\n /**\n * Get the `RequireInTheMiddleSingleton` singleton\n *\n * @returns {RequireInTheMiddleSingleton} Singleton of `RequireInTheMiddleSingleton`\n */\n static getInstance(): RequireInTheMiddleSingleton {\n // Mocha runs all test suites in the same process\n // This prevents test suites from sharing a singleton\n if (isMocha) return new RequireInTheMiddleSingleton();\n\n return (this._instance =\n this._instance ?? new RequireInTheMiddleSingleton());\n }\n}\n\n/**\n * Normalize the path separators to forward slash in a module name or path\n *\n * @param {string} moduleNameOrPath Module name or path\n * @returns {string} Normalized module name or path\n */\nfunction normalizePathSeparators(moduleNameOrPath: string): string {\n return path.sep !== ModuleNameSeparator\n ? moduleNameOrPath.split(path.sep).join(ModuleNameSeparator)\n : moduleNameOrPath;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { LoggerProvider } from './types/LoggerProvider';\nimport type { Logger } from './types/Logger';\nimport type { LoggerOptions } from './types/LoggerOptions';\nimport { NoopLogger } from './NoopLogger';\n\nexport class NoopLoggerProvider implements LoggerProvider {\n getLogger(\n _name: string,\n _version?: string | undefined,\n _options?: LoggerOptions | undefined\n ): Logger {\n return new NoopLogger();\n }\n}\n\nexport const NOOP_LOGGER_PROVIDER = new NoopLoggerProvider();\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { InstrumentationModuleFile } from './types';\nimport { normalize } from './platform/index';\n\nexport class InstrumentationNodeModuleFile\n implements InstrumentationModuleFile\n{\n public name: string;\n public supportedVersions: string[];\n public patch;\n public unpatch;\n\n constructor(\n name: string,\n supportedVersions: string[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n patch: (moduleExports: any, moduleVersion?: string) => any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n unpatch: (moduleExports?: any, moduleVersion?: string) => void\n ) {\n this.name = normalize(name);\n this.supportedVersions = supportedVersions;\n this.patch = patch;\n this.unpatch = unpatch;\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { NOOP_LOGGER } from './NoopLogger';\nimport type { Logger } from './types/Logger';\nimport type { LoggerOptions } from './types/LoggerOptions';\nimport type { LogRecord } from './types/LogRecord';\n\nexport class ProxyLogger implements Logger {\n // When a real implementation is provided, this will be it\n private _delegate?: Logger;\n private _provider: LoggerDelegator;\n public readonly name: string;\n public readonly version?: string | undefined;\n public readonly options?: LoggerOptions | undefined;\n\n constructor(\n provider: LoggerDelegator,\n name: string,\n version?: string | undefined,\n options?: LoggerOptions | undefined\n ) {\n this._provider = provider;\n this.name = name;\n this.version = version;\n this.options = options;\n }\n\n /**\n * Emit a log record. This method should only be used by log appenders.\n *\n * @param logRecord\n */\n emit(logRecord: LogRecord): void {\n this._getLogger().emit(logRecord);\n }\n\n /**\n * Try to get a logger from the proxy logger provider.\n * If the proxy logger provider has no delegate, return a noop logger.\n */\n private _getLogger() {\n if (this._delegate) {\n return this._delegate;\n }\n const logger = this._provider._getDelegateLogger(\n this.name,\n this.version,\n this.options\n );\n if (!logger) {\n return NOOP_LOGGER;\n }\n this._delegate = logger;\n return this._delegate;\n }\n}\n\nexport interface LoggerDelegator {\n _getDelegateLogger(\n name: string,\n version?: string,\n options?: LoggerOptions\n ): Logger | undefined;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type * as types from '../../types';\nimport * as path from 'path';\nimport { types as utilTypes } from 'util';\nimport { satisfies } from '../../semver';\nimport type { massWrap, massUnwrap } from '../../shimmer';\nimport { wrap, unwrap } from '../../shimmer';\nimport { InstrumentationAbstract } from '../../instrumentation';\nimport type { Hooked } from './RequireInTheMiddleSingleton';\nimport { RequireInTheMiddleSingleton } from './RequireInTheMiddleSingleton';\nimport type { HookFn } from 'import-in-the-middle';\nimport { Hook as HookImport } from 'import-in-the-middle';\nimport type {\n InstrumentationConfig,\n InstrumentationModuleDefinition,\n} from '../../types';\nimport { diag } from '@opentelemetry/api';\nimport type { OnRequireFn } from 'require-in-the-middle';\nimport { Hook as HookRequire } from 'require-in-the-middle';\nimport { readFileSync } from 'fs';\nimport { isWrapped } from '../../utils';\n\n/**\n * Base abstract class for instrumenting node plugins\n */\nexport abstract class InstrumentationBase<\n ConfigType extends InstrumentationConfig = InstrumentationConfig,\n >\n extends InstrumentationAbstract\n implements types.Instrumentation\n{\n private _modules: InstrumentationModuleDefinition[];\n private _hooks: (Hooked | HookRequire)[] = [];\n private _requireInTheMiddleSingleton: RequireInTheMiddleSingleton =\n RequireInTheMiddleSingleton.getInstance();\n private _enabled = false;\n\n constructor(\n instrumentationName: string,\n instrumentationVersion: string,\n config: ConfigType\n ) {\n super(instrumentationName, instrumentationVersion, config);\n\n let modules = this.init();\n\n if (modules && !Array.isArray(modules)) {\n modules = [modules];\n }\n\n this._modules = (modules as InstrumentationModuleDefinition[]) || [];\n\n if (this._config.enabled) {\n this.enable();\n }\n }\n\n protected override _wrap: typeof wrap = (moduleExports, name, wrapper) => {\n if (isWrapped(moduleExports[name])) {\n this._unwrap(moduleExports, name);\n }\n if (!utilTypes.isProxy(moduleExports)) {\n return wrap(moduleExports, name, wrapper);\n } else {\n const wrapped = wrap(Object.assign({}, moduleExports), name, wrapper);\n Object.defineProperty(moduleExports, name, {\n value: wrapped,\n });\n return wrapped;\n }\n };\n\n protected override _unwrap: typeof unwrap = (moduleExports, name) => {\n if (!utilTypes.isProxy(moduleExports)) {\n return unwrap(moduleExports, name);\n } else {\n return Object.defineProperty(moduleExports, name, {\n value: moduleExports[name],\n });\n }\n };\n\n protected override _massWrap: typeof massWrap = (\n moduleExportsArray,\n names,\n wrapper\n ) => {\n if (!moduleExportsArray) {\n diag.error('must provide one or more modules to patch');\n return;\n } else if (!Array.isArray(moduleExportsArray)) {\n moduleExportsArray = [moduleExportsArray];\n }\n\n if (!(names && Array.isArray(names))) {\n diag.error('must provide one or more functions to wrap on modules');\n return;\n }\n\n moduleExportsArray.forEach(moduleExports => {\n names.forEach(name => {\n this._wrap(moduleExports, name, wrapper);\n });\n });\n };\n\n protected override _massUnwrap: typeof massUnwrap = (\n moduleExportsArray,\n names\n ) => {\n if (!moduleExportsArray) {\n diag.error('must provide one or more modules to patch');\n return;\n } else if (!Array.isArray(moduleExportsArray)) {\n moduleExportsArray = [moduleExportsArray];\n }\n\n if (!(names && Array.isArray(names))) {\n diag.error('must provide one or more functions to wrap on modules');\n return;\n }\n\n moduleExportsArray.forEach(moduleExports => {\n names.forEach(name => {\n this._unwrap(moduleExports, name);\n });\n });\n };\n\n private _warnOnPreloadedModules(): void {\n // Access require via globalThis to prevent webpack from analyzing it as a dependency expression\n const nodeRequire = globalThis.require;\n if (!nodeRequire?.resolve || !nodeRequire?.cache) return;\n\n this._modules.forEach((module: InstrumentationModuleDefinition) => {\n const { name } = module;\n try {\n const resolvedModule = nodeRequire.resolve(name);\n if (nodeRequire.cache[resolvedModule]?.loaded) {\n // Module is already cached, which means the instrumentation hook might not work\n this._diag.warn(\n `Module ${name} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${name}`\n );\n }\n } catch {\n // Module isn't available, we can simply skip\n }\n });\n }\n\n private _extractPackageVersion(baseDir: string): string | undefined {\n try {\n const json = readFileSync(path.join(baseDir, 'package.json'), {\n encoding: 'utf8',\n });\n const version = JSON.parse(json).version;\n return typeof version === 'string' ? version : undefined;\n } catch {\n diag.warn('Failed extracting version', baseDir);\n }\n\n return undefined;\n }\n\n private _onRequire(\n module: InstrumentationModuleDefinition,\n exports: T,\n name: string,\n baseDir?: string | void\n ): T {\n if (!baseDir) {\n if (typeof module.patch === 'function') {\n module.moduleExports = exports;\n if (this._enabled) {\n this._diag.debug(\n 'Applying instrumentation patch for nodejs core module on require hook',\n {\n module: module.name,\n }\n );\n return module.patch(exports);\n }\n }\n return exports;\n }\n\n const version = this._extractPackageVersion(baseDir);\n module.moduleVersion = version;\n if (module.name === name) {\n // main module\n if (\n isSupported(module.supportedVersions, version, module.includePrerelease)\n ) {\n if (typeof module.patch === 'function') {\n module.moduleExports = exports;\n if (this._enabled) {\n this._diag.debug(\n 'Applying instrumentation patch for module on require hook',\n {\n module: module.name,\n version: module.moduleVersion,\n baseDir,\n }\n );\n return module.patch(exports, module.moduleVersion);\n }\n }\n }\n return exports;\n }\n // internal file\n const files = module.files ?? [];\n const normalizedName = path.normalize(name);\n const supportedFileInstrumentations = files.filter(\n f =>\n f.name === normalizedName &&\n isSupported(f.supportedVersions, version, module.includePrerelease)\n );\n return supportedFileInstrumentations.reduce((patchedExports, file) => {\n file.moduleExports = patchedExports;\n if (this._enabled) {\n this._diag.debug(\n 'Applying instrumentation patch for nodejs module file on require hook',\n {\n module: module.name,\n version: module.moduleVersion,\n fileName: file.name,\n baseDir,\n }\n );\n\n // patch signature is not typed, so we cast it assuming it's correct\n return file.patch(patchedExports, module.moduleVersion) as T;\n }\n return patchedExports;\n }, exports);\n }\n\n public enable(): void {\n if (this._enabled) {\n return;\n }\n this._enabled = true;\n\n // already hooked, just call patch again\n if (this._hooks.length > 0) {\n for (const module of this._modules) {\n if (typeof module.patch === 'function' && module.moduleExports) {\n this._diag.debug(\n 'Applying instrumentation patch for nodejs module on instrumentation enabled',\n {\n module: module.name,\n version: module.moduleVersion,\n }\n );\n module.patch(module.moduleExports, module.moduleVersion);\n }\n for (const file of module.files) {\n if (file.moduleExports) {\n this._diag.debug(\n 'Applying instrumentation patch for nodejs module file on instrumentation enabled',\n {\n module: module.name,\n version: module.moduleVersion,\n fileName: file.name,\n }\n );\n file.patch(file.moduleExports, module.moduleVersion);\n }\n }\n }\n return;\n }\n\n this._warnOnPreloadedModules();\n for (const module of this._modules) {\n const hookFn: HookFn = (exports, name, baseDir) => {\n if (!baseDir && path.isAbsolute(name)) {\n // Change IITM `name` and `baseDir` values to match what RITM returns.\n // See \"Comparing to RITM\" on https://github.com/nodejs/import-in-the-middle/pull/241\n // for an example of the differences.\n const parsedPath = path.parse(name);\n name = parsedPath.name;\n baseDir = parsedPath.dir;\n }\n return this._onRequire(module, exports, name, baseDir);\n };\n const onRequire: OnRequireFn = (exports, name, baseDir) => {\n return this._onRequire(module, exports, name, baseDir);\n };\n\n // `RequireInTheMiddleSingleton` does not support absolute paths.\n // For an absolute paths, we must create a separate instance of the\n // require-in-the-middle `Hook`.\n const hook = path.isAbsolute(module.name)\n ? new HookRequire([module.name], { internals: true }, onRequire)\n : this._requireInTheMiddleSingleton.register(module.name, onRequire);\n\n this._hooks.push(hook);\n const esmHook = new HookImport(\n [module.name],\n { internals: true },\n hookFn\n );\n this._hooks.push(esmHook);\n }\n }\n\n public disable(): void {\n if (!this._enabled) {\n return;\n }\n this._enabled = false;\n\n for (const module of this._modules) {\n if (typeof module.unpatch === 'function' && module.moduleExports) {\n this._diag.debug(\n 'Removing instrumentation patch for nodejs module on instrumentation disabled',\n {\n module: module.name,\n version: module.moduleVersion,\n }\n );\n module.unpatch(module.moduleExports, module.moduleVersion);\n }\n for (const file of module.files) {\n if (file.moduleExports) {\n this._diag.debug(\n 'Removing instrumentation patch for nodejs module file on instrumentation disabled',\n {\n module: module.name,\n version: module.moduleVersion,\n fileName: file.name,\n }\n );\n file.unpatch(file.moduleExports, module.moduleVersion);\n }\n }\n }\n }\n\n public isEnabled(): boolean {\n return this._enabled;\n }\n}\n\nfunction isSupported(\n supportedVersions: string[],\n version?: string,\n includePrerelease?: boolean\n): boolean {\n if (typeof version === 'undefined') {\n // If we don't have the version, accept the wildcard case only\n return supportedVersions.includes('*');\n }\n\n return supportedVersions.some(supportedVersion => {\n return satisfies(version, supportedVersion, { includePrerelease });\n });\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { LoggerProvider } from '../types/LoggerProvider';\n\nexport const GLOBAL_LOGS_API_KEY = Symbol.for('io.opentelemetry.js.api.logs');\n\ntype Get = (version: number) => T;\ntype OtelGlobal = Partial<{\n [GLOBAL_LOGS_API_KEY]: Get;\n}>;\n\nexport const _global = globalThis as OtelGlobal;\n\n/**\n * Make a function which accepts a version integer and returns the instance of an API if the version\n * is compatible, or a fallback version (usually NOOP) if it is not.\n *\n * @param requiredVersion Backwards compatibility version which is required to return the instance\n * @param instance Instance which should be returned if the required version is compatible\n * @param fallback Fallback instance, usually NOOP, which will be returned if the required version is not compatible\n */\nexport function makeGetter(\n requiredVersion: number,\n instance: T,\n fallback: T\n): Get {\n return (version: number): T =>\n version === requiredVersion ? instance : fallback;\n}\n\n/**\n * A number which should be incremented each time a backwards incompatible\n * change is made to the API. This number is used when an API package\n * attempts to access the global API to ensure it is getting a compatible\n * version. If the global API is not compatible with the API package\n * attempting to get it, a NOOP API implementation will be returned.\n */\nexport const API_BACKWARDS_COMPATIBILITY_VERSION = 1;\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n InstrumentationModuleDefinition,\n InstrumentationModuleFile,\n} from './types';\n\nexport class InstrumentationNodeModuleDefinition\n implements InstrumentationModuleDefinition\n{\n files: InstrumentationModuleFile[];\n public name: string;\n public supportedVersions: string[];\n public patch;\n public unpatch;\n constructor(\n name: string,\n supportedVersions: string[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n patch?: (exports: any, moduleVersion?: string) => any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n unpatch?: (exports: any, moduleVersion?: string) => void,\n files?: InstrumentationModuleFile[]\n ) {\n this.files = files || [];\n this.name = name;\n this.supportedVersions = supportedVersions;\n this.patch = patch;\n this.unpatch = unpatch;\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/*\n * BSD 2-Clause License\n *\n * Copyright (c) 2013-2019, Forrest L Norvell\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\n * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* Modified by OpenTelemetry Authors\n * - converted to TypeScript\n * - aligned with style-guide\n */\n\nimport type { ShimWrapped } from './types';\n\n// Default to complaining loudly when things don't go according to plan.\n// eslint-disable-next-line no-console\nlet logger: typeof console.error = console.error.bind(console);\n\n// Sets a property on an object, preserving its enumerability.\n// This function assumes that the property is already writable.\nfunction defineProperty(obj: object, name: PropertyKey, value: unknown): void {\n const enumerable =\n !!obj[name as keyof typeof obj] &&\n Object.prototype.propertyIsEnumerable.call(obj, name);\n\n Object.defineProperty(obj, name, {\n configurable: true,\n enumerable,\n writable: true,\n value,\n });\n}\n\nexport const wrap = (\n nodule: Nodule,\n name: FieldName,\n wrapper: (original: Nodule[FieldName], name: FieldName) => Nodule[FieldName]\n): ShimWrapped | undefined => {\n if (!nodule || !nodule[name]) {\n logger('no original function ' + String(name) + ' to wrap');\n return;\n }\n\n if (!wrapper) {\n logger('no wrapper function');\n logger(new Error().stack);\n return;\n }\n\n const original = nodule[name];\n\n if (typeof original !== 'function' || typeof wrapper !== 'function') {\n logger('original object and wrapper must be functions');\n return;\n }\n\n const wrapped = wrapper(original, name) as object;\n\n defineProperty(wrapped, '__original', original);\n defineProperty(wrapped, '__unwrap', () => {\n if (nodule[name] === wrapped) {\n defineProperty(nodule, name, original);\n }\n });\n defineProperty(wrapped, '__wrapped', true);\n defineProperty(nodule, name, wrapped);\n return wrapped as ShimWrapped;\n};\n\nexport const massWrap = (\n nodules: Nodule[],\n names: FieldName[],\n wrapper: (original: Nodule[FieldName]) => Nodule[FieldName]\n): void => {\n if (!nodules) {\n logger('must provide one or more modules to patch');\n logger(new Error().stack);\n return;\n } else if (!Array.isArray(nodules)) {\n nodules = [nodules];\n }\n\n if (!(names && Array.isArray(names))) {\n logger('must provide one or more functions to wrap on modules');\n return;\n }\n\n nodules.forEach(nodule => {\n names.forEach(name => {\n wrap(nodule, name, wrapper);\n });\n });\n};\n\nexport const unwrap = (\n nodule: Nodule,\n name: keyof Nodule\n): void => {\n if (!nodule || !nodule[name]) {\n logger('no function to unwrap.');\n logger(new Error().stack);\n return;\n }\n\n const wrapped = nodule[name] as unknown as ShimWrapped;\n\n if (!wrapped.__unwrap) {\n logger(\n 'no original to unwrap to -- has ' +\n String(name) +\n ' already been unwrapped?'\n );\n } else {\n wrapped.__unwrap();\n return;\n }\n};\n\nexport const massUnwrap = (\n nodules: Nodule[],\n names: Array\n): void => {\n if (!nodules) {\n logger('must provide one or more modules to patch');\n logger(new Error().stack);\n return;\n } else if (!Array.isArray(nodules)) {\n nodules = [nodules];\n }\n\n if (!(names && Array.isArray(names))) {\n logger('must provide one or more functions to unwrap on modules');\n return;\n }\n\n nodules.forEach(nodule => {\n names.forEach(name => {\n unwrap(nodule, name);\n });\n });\n};\n\nexport interface ShimmerOptions {\n logger?: typeof console.error;\n}\n\nexport default function shimmer(options: ShimmerOptions): void {\n if (options && options.logger) {\n if (typeof options.logger !== 'function') {\n logger(\"new logger isn't a function, not replacing\");\n } else {\n logger = options.logger;\n }\n }\n}\n\nshimmer.wrap = wrap;\nshimmer.massWrap = massWrap;\nshimmer.unwrap = unwrap;\nshimmer.massUnwrap = massUnwrap;\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Logger } from './types/Logger';\nimport type { LogRecord } from './types/LogRecord';\n\nexport class NoopLogger implements Logger {\n emit(_logRecord: LogRecord): void {}\n}\n\nexport const NOOP_LOGGER = new NoopLogger();\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// This is a custom semantic versioning implementation compatible with the\n// `satisfies(version, range, options?)` function from the `semver` npm package;\n// with the exception that the `loose` option is not supported.\n//\n// The motivation for the custom semver implementation is that\n// `semver` package has some initialization delay (lots of RegExp init and compile)\n// and this leads to coldstart overhead for the OTEL Lambda Node.js layer.\n// Hence, we have implemented lightweight version of it internally with required functionalities.\n\nimport { diag } from '@opentelemetry/api';\n\nconst VERSION_REGEXP =\n /^(?:v)?(?(?0|[1-9]\\d*)\\.(?0|[1-9]\\d*)\\.(?0|[1-9]\\d*))(?:-(?(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+(?[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\nconst RANGE_REGEXP =\n /^(?<|>|=|==|<=|>=|~|\\^|~>)?\\s*(?:v)?(?(?x|X|\\*|0|[1-9]\\d*)(?:\\.(?x|X|\\*|0|[1-9]\\d*))?(?:\\.(?x|X|\\*|0|[1-9]\\d*))?)(?:-(?(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+(?[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\nconst operatorResMap: { [op: string]: number[] } = {\n '>': [1],\n '>=': [0, 1],\n '=': [0],\n '<=': [-1, 0],\n '<': [-1],\n '!=': [-1, 1],\n};\n\n/** Interface for the options to configure semantic versioning satisfy check. */\nexport interface SatisfiesOptions {\n /**\n * If set to true, the pre-release checks will be included\n * as described [here](https://github.com/npm/node-semver#prerelease-tags).\n */\n includePrerelease?: boolean;\n}\n\ninterface ParsedVersion {\n op?: string;\n\n version?: string;\n versionSegments?: string[];\n versionSegmentCount?: number;\n\n prerelease?: string;\n prereleaseSegments?: string[];\n prereleaseSegmentCount?: number;\n\n build?: string;\n\n invalid?: boolean;\n}\n\n/**\n * Checks given version whether it satisfies given range expression.\n * @param version the [version](https://github.com/npm/node-semver#versions) to be checked\n * @param range the [range](https://github.com/npm/node-semver#ranges) expression for version check\n * @param options options to configure semver satisfy check\n */\nexport function satisfies(\n version: string,\n range: string,\n options?: SatisfiesOptions\n): boolean {\n // Strict semver format check\n if (!_validateVersion(version)) {\n diag.error(`Invalid version: ${version}`);\n return false;\n }\n\n // If range is empty, satisfy check succeeds regardless what version is\n if (!range) {\n return true;\n }\n\n // Cleanup range\n range = range.replace(/([<>=~^]+)\\s+/g, '$1');\n\n // Parse version\n const parsedVersion: ParsedVersion | undefined = _parseVersion(version);\n if (!parsedVersion) {\n return false;\n }\n\n const allParsedRanges: ParsedVersion[] = [];\n\n // Check given version whether it satisfies given range expression\n const checkResult: boolean = _doSatisfies(\n parsedVersion,\n range,\n allParsedRanges,\n options\n );\n\n // If check result is OK,\n // do another final check for pre-release, if pre-release check is included by option\n if (checkResult && !options?.includePrerelease) {\n return _doPreleaseCheck(parsedVersion, allParsedRanges);\n }\n return checkResult;\n}\n\nfunction _validateVersion(version: unknown): boolean {\n return typeof version === 'string' && VERSION_REGEXP.test(version);\n}\n\nfunction _doSatisfies(\n parsedVersion: ParsedVersion,\n range: string,\n allParsedRanges: ParsedVersion[],\n options?: SatisfiesOptions\n): boolean {\n if (range.includes('||')) {\n // A version matches a range if and only if\n // every comparator in at least one of the ||-separated comparator sets is satisfied by the version\n const ranges: string[] = range.trim().split('||');\n for (const r of ranges) {\n if (_checkRange(parsedVersion, r, allParsedRanges, options)) {\n return true;\n }\n }\n return false;\n } else if (range.includes(' - ')) {\n // Hyphen ranges: https://github.com/npm/node-semver#hyphen-ranges-xyz---abc\n range = replaceHyphen(range, options);\n } else if (range.includes(' ')) {\n // Multiple separated ranges and all needs to be satisfied for success\n const ranges: string[] = range\n .trim()\n .replace(/\\s{2,}/g, ' ')\n .split(' ');\n for (const r of ranges) {\n if (!_checkRange(parsedVersion, r, allParsedRanges, options)) {\n return false;\n }\n }\n return true;\n }\n\n // Check given parsed version with given range\n return _checkRange(parsedVersion, range, allParsedRanges, options);\n}\n\nfunction _checkRange(\n parsedVersion: ParsedVersion,\n range: string,\n allParsedRanges: ParsedVersion[],\n options?: SatisfiesOptions\n): boolean {\n range = _normalizeRange(range, options);\n if (range.includes(' ')) {\n // If there are multiple ranges separated, satisfy each of them\n return _doSatisfies(parsedVersion, range, allParsedRanges, options);\n } else {\n // Validate and parse range\n const parsedRange: ParsedVersion = _parseRange(range);\n allParsedRanges.push(parsedRange);\n // Check parsed version by parsed range\n return _satisfies(parsedVersion, parsedRange);\n }\n}\n\nfunction _satisfies(\n parsedVersion: ParsedVersion,\n parsedRange: ParsedVersion\n): boolean {\n // If range is invalid, satisfy check fails (no error throw)\n if (parsedRange.invalid) {\n return false;\n }\n\n // If range is empty or wildcard, satisfy check succeeds regardless what version is\n if (!parsedRange.version || _isWildcard(parsedRange.version)) {\n return true;\n }\n\n // Compare version segment first\n let comparisonResult: number = _compareVersionSegments(\n parsedVersion.versionSegments || [],\n parsedRange.versionSegments || []\n );\n\n // If versions segments are equal, compare by pre-release segments\n if (comparisonResult === 0) {\n const versionPrereleaseSegments: string[] =\n parsedVersion.prereleaseSegments || [];\n const rangePrereleaseSegments: string[] =\n parsedRange.prereleaseSegments || [];\n if (!versionPrereleaseSegments.length && !rangePrereleaseSegments.length) {\n comparisonResult = 0;\n } else if (\n !versionPrereleaseSegments.length &&\n rangePrereleaseSegments.length\n ) {\n comparisonResult = 1;\n } else if (\n versionPrereleaseSegments.length &&\n !rangePrereleaseSegments.length\n ) {\n comparisonResult = -1;\n } else {\n comparisonResult = _compareVersionSegments(\n versionPrereleaseSegments,\n rangePrereleaseSegments\n );\n }\n }\n\n // Resolve check result according to comparison operator\n return operatorResMap[parsedRange.op!]?.includes(comparisonResult);\n}\n\nfunction _doPreleaseCheck(\n parsedVersion: ParsedVersion,\n allParsedRanges: ParsedVersion[]\n): boolean {\n if (parsedVersion.prerelease) {\n return allParsedRanges.some(\n r => r.prerelease && r.version === parsedVersion.version\n );\n }\n return true;\n}\n\nfunction _normalizeRange(range: string, options?: SatisfiesOptions): string {\n range = range.trim();\n range = replaceCaret(range, options);\n range = replaceTilde(range);\n range = replaceXRange(range, options);\n range = range.trim();\n return range;\n}\n\nfunction isX(id?: string): boolean {\n return !id || id.toLowerCase() === 'x' || id === '*';\n}\n\nfunction _parseVersion(versionString: string): ParsedVersion | undefined {\n const match: RegExpMatchArray | null = versionString.match(VERSION_REGEXP);\n if (!match) {\n diag.error(`Invalid version: ${versionString}`);\n return undefined;\n }\n\n const version: string = match!.groups!.version;\n const prerelease: string = match!.groups!.prerelease;\n const build: string = match!.groups!.build;\n\n const versionSegments: string[] = version.split('.');\n const prereleaseSegments: string[] | undefined = prerelease?.split('.');\n\n return {\n op: undefined,\n\n version,\n versionSegments,\n versionSegmentCount: versionSegments.length,\n\n prerelease,\n prereleaseSegments,\n prereleaseSegmentCount: prereleaseSegments ? prereleaseSegments.length : 0,\n\n build,\n };\n}\n\nfunction _parseRange(rangeString: string): ParsedVersion {\n if (!rangeString) {\n return {};\n }\n\n const match: RegExpMatchArray | null = rangeString.match(RANGE_REGEXP);\n if (!match) {\n diag.error(`Invalid range: ${rangeString}`);\n return {\n invalid: true,\n };\n }\n\n let op: string = match!.groups!.op;\n const version: string = match!.groups!.version;\n const prerelease: string = match!.groups!.prerelease;\n const build: string = match!.groups!.build;\n\n const versionSegments: string[] = version.split('.');\n const prereleaseSegments: string[] | undefined = prerelease?.split('.');\n\n if (op === '==') {\n op = '=';\n }\n\n return {\n op: op || '=',\n\n version,\n versionSegments,\n versionSegmentCount: versionSegments.length,\n\n prerelease,\n prereleaseSegments,\n prereleaseSegmentCount: prereleaseSegments ? prereleaseSegments.length : 0,\n\n build,\n };\n}\n\nfunction _isWildcard(s: string | undefined): boolean {\n return s === '*' || s === 'x' || s === 'X';\n}\n\nfunction _parseVersionString(v: string): string | number {\n const n: number = parseInt(v, 10);\n return isNaN(n) ? v : n;\n}\n\nfunction _normalizeVersionType(\n a: string | number,\n b: string | number\n): [string, string] | [number, number] {\n if (typeof a === typeof b) {\n if (typeof a === 'number') {\n return [a as number, b as number];\n } else if (typeof a === 'string') {\n return [a as string, b as string];\n } else {\n throw new Error('Version segments can only be strings or numbers');\n }\n } else {\n return [String(a), String(b)];\n }\n}\n\nfunction _compareVersionStrings(v1: string, v2: string): number {\n if (_isWildcard(v1) || _isWildcard(v2)) {\n return 0;\n }\n const [parsedV1, parsedV2] = _normalizeVersionType(\n _parseVersionString(v1),\n _parseVersionString(v2)\n );\n if (parsedV1 > parsedV2) {\n return 1;\n } else if (parsedV1 < parsedV2) {\n return -1;\n }\n return 0;\n}\n\nfunction _compareVersionSegments(v1: string[], v2: string[]): number {\n for (let i = 0; i < Math.max(v1.length, v2.length); i++) {\n const res: number = _compareVersionStrings(v1[i] || '0', v2[i] || '0');\n if (res !== 0) {\n return res;\n }\n }\n return 0;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// The rest of this file is adapted from portions of https://github.com/npm/node-semver/tree/868d4bb\n// License:\n/*\n * The ISC License\n *\n * Copyright (c) Isaac Z. Schlueter and Contributors\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR\n * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]';\nconst NUMERICIDENTIFIER = '0|[1-9]\\\\d*';\nconst NONNUMERICIDENTIFIER = `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`;\nconst GTLT = '((?:<|>)?=?)';\n\nconst PRERELEASEIDENTIFIER = `(?:${NUMERICIDENTIFIER}|${NONNUMERICIDENTIFIER})`;\nconst PRERELEASE = `(?:-(${PRERELEASEIDENTIFIER}(?:\\\\.${PRERELEASEIDENTIFIER})*))`;\n\nconst BUILDIDENTIFIER = `${LETTERDASHNUMBER}+`;\nconst BUILD = `(?:\\\\+(${BUILDIDENTIFIER}(?:\\\\.${BUILDIDENTIFIER})*))`;\n\nconst XRANGEIDENTIFIER = `${NUMERICIDENTIFIER}|x|X|\\\\*`;\nconst XRANGEPLAIN =\n `[v=\\\\s]*(${XRANGEIDENTIFIER})` +\n `(?:\\\\.(${XRANGEIDENTIFIER})` +\n `(?:\\\\.(${XRANGEIDENTIFIER})` +\n `(?:${PRERELEASE})?${BUILD}?` +\n `)?)?`;\nconst XRANGE = `^${GTLT}\\\\s*${XRANGEPLAIN}$`;\nconst XRANGE_REGEXP = new RegExp(XRANGE);\n\nconst HYPHENRANGE =\n `^\\\\s*(${XRANGEPLAIN})` + `\\\\s+-\\\\s+` + `(${XRANGEPLAIN})` + `\\\\s*$`;\nconst HYPHENRANGE_REGEXP = new RegExp(HYPHENRANGE);\n\nconst LONETILDE = '(?:~>?)';\nconst TILDE = `^${LONETILDE}${XRANGEPLAIN}$`;\nconst TILDE_REGEXP = new RegExp(TILDE);\n\nconst LONECARET = '(?:\\\\^)';\nconst CARET = `^${LONECARET}${XRANGEPLAIN}$`;\nconst CARET_REGEXP = new RegExp(CARET);\n\n// Borrowed from https://github.com/npm/node-semver/blob/868d4bbe3d318c52544f38d5f9977a1103e924c2/classes/range.js#L285\n//\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nfunction replaceTilde(comp: string): string {\n const r = TILDE_REGEXP;\n return comp.replace(r, (_, M, m, p, pr) => {\n let ret;\n\n if (isX(M)) {\n ret = '';\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`;\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`;\n } else if (pr) {\n ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p} <${M}.${+m + 1}.0-0`;\n }\n return ret;\n });\n}\n\n// Borrowed from https://github.com/npm/node-semver/blob/868d4bbe3d318c52544f38d5f9977a1103e924c2/classes/range.js#L329\n//\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nfunction replaceCaret(comp: string, options?: SatisfiesOptions): string {\n const r = CARET_REGEXP;\n const z = options?.includePrerelease ? '-0' : '';\n return comp.replace(r, (_, M, m, p, pr) => {\n let ret;\n\n if (isX(M)) {\n ret = '';\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`;\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`;\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`;\n }\n } else if (pr) {\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr} <${M}.${m}.${+p + 1}-0`;\n } else {\n ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr} <${+M + 1}.0.0-0`;\n }\n } else {\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}${z} <${M}.${m}.${+p + 1}-0`;\n } else {\n ret = `>=${M}.${m}.${p}${z} <${M}.${+m + 1}.0-0`;\n }\n } else {\n ret = `>=${M}.${m}.${p} <${+M + 1}.0.0-0`;\n }\n }\n return ret;\n });\n}\n\n// Borrowed from https://github.com/npm/node-semver/blob/868d4bbe3d318c52544f38d5f9977a1103e924c2/classes/range.js#L390\nfunction replaceXRange(comp: string, options?: SatisfiesOptions): string {\n const r = XRANGE_REGEXP;\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n const xM = isX(M);\n const xm = xM || isX(m);\n const xp = xm || isX(p);\n const anyX = xp;\n\n if (gtlt === '=' && anyX) {\n gtlt = '';\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options?.includePrerelease ? '-0' : '';\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0';\n } else {\n // nothing is forbidden\n ret = '*';\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0;\n }\n p = 0;\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>=';\n if (xm) {\n M = +M + 1;\n m = 0;\n p = 0;\n } else {\n m = +m + 1;\n p = 0;\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<';\n if (xm) {\n M = +M + 1;\n } else {\n m = +m + 1;\n }\n }\n\n if (gtlt === '<') {\n pr = '-0';\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`;\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`;\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr} <${M}.${+m + 1}.0-0`;\n }\n\n return ret;\n });\n}\n\n// Borrowed from https://github.com/npm/node-semver/blob/868d4bbe3d318c52544f38d5f9977a1103e924c2/classes/range.js#L488\n//\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nfunction replaceHyphen(comp: string, options?: SatisfiesOptions): string {\n const r = HYPHENRANGE_REGEXP;\n return comp.replace(\n r,\n (_, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr) => {\n if (isX(fM)) {\n from = '';\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${options?.includePrerelease ? '-0' : ''}`;\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${options?.includePrerelease ? '-0' : ''}`;\n } else if (fpr) {\n from = `>=${from}`;\n } else {\n from = `>=${from}${options?.includePrerelease ? '-0' : ''}`;\n }\n\n if (isX(tM)) {\n to = '';\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`;\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`;\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`;\n } else if (options?.includePrerelease) {\n to = `<${tM}.${tm}.${+tp + 1}-0`;\n } else {\n to = `<=${to}`;\n }\n\n return `${from} ${to}`.trim();\n }\n );\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Hooked } from './RequireInTheMiddleSingleton';\n\nexport const ModuleNameSeparator = '/';\n\n/**\n * Node in a `ModuleNameTrie`\n */\nclass ModuleNameTrieNode {\n hooks: Array<{ hook: Hooked; insertedId: number }> = [];\n children: Map = new Map();\n}\n\ntype ModuleNameTrieSearchOptions = {\n /**\n * Whether to return the results in insertion order\n */\n maintainInsertionOrder?: boolean;\n /**\n * Whether to return only full matches\n */\n fullOnly?: boolean;\n};\n\n/**\n * Trie containing nodes that represent a part of a module name (i.e. the parts separated by forward slash)\n */\nexport class ModuleNameTrie {\n private _trie: ModuleNameTrieNode = new ModuleNameTrieNode();\n private _counter: number = 0;\n\n /**\n * Insert a module hook into the trie\n *\n * @param {Hooked} hook Hook\n */\n insert(hook: Hooked) {\n let trieNode = this._trie;\n\n for (const moduleNamePart of hook.moduleName.split(ModuleNameSeparator)) {\n let nextNode = trieNode.children.get(moduleNamePart);\n if (!nextNode) {\n nextNode = new ModuleNameTrieNode();\n trieNode.children.set(moduleNamePart, nextNode);\n }\n trieNode = nextNode;\n }\n trieNode.hooks.push({ hook, insertedId: this._counter++ });\n }\n\n /**\n * Search for matching hooks in the trie\n *\n * @param {string} moduleName Module name\n * @param {boolean} maintainInsertionOrder Whether to return the results in insertion order\n * @param {boolean} fullOnly Whether to return only full matches\n * @returns {Hooked[]} Matching hooks\n */\n search(\n moduleName: string,\n { maintainInsertionOrder, fullOnly }: ModuleNameTrieSearchOptions = {}\n ): Hooked[] {\n let trieNode = this._trie;\n const results: ModuleNameTrieNode['hooks'] = [];\n let foundFull = true;\n\n for (const moduleNamePart of moduleName.split(ModuleNameSeparator)) {\n const nextNode = trieNode.children.get(moduleNamePart);\n if (!nextNode) {\n foundFull = false;\n break;\n }\n if (!fullOnly) {\n results.push(...nextNode.hooks);\n }\n trieNode = nextNode;\n }\n\n if (fullOnly && foundFull) {\n results.push(...trieNode.hooks);\n }\n\n if (results.length === 0) {\n return [];\n }\n if (results.length === 1) {\n return [results[0].hook];\n }\n if (maintainInsertionOrder) {\n results.sort((a, b) => a.insertedId - b.insertedId);\n }\n return results.map(({ hook }) => hook);\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { ShimWrapped } from './types';\n\n/**\n * function to execute patched function and being able to catch errors\n * @param execute - function to be executed\n * @param onFinish - callback to run when execute finishes\n */\nexport function safeExecuteInTheMiddle(\n execute: () => T,\n onFinish: (e: Error | undefined, result: T | undefined) => void,\n preventThrowingError?: boolean\n): T {\n let error: Error | undefined;\n let result: T | undefined;\n try {\n result = execute();\n } catch (e) {\n error = e;\n } finally {\n onFinish(error, result);\n if (error && !preventThrowingError) {\n // eslint-disable-next-line no-unsafe-finally\n throw error;\n }\n // eslint-disable-next-line no-unsafe-finally\n return result as T;\n }\n}\n\n/**\n * Async function to execute patched function and being able to catch errors\n * @param execute - function to be executed\n * @param onFinish - callback to run when execute finishes\n */\nexport async function safeExecuteInTheMiddleAsync(\n execute: () => T,\n onFinish: (\n e: Error | undefined,\n result: T | undefined\n ) => Promise | void,\n preventThrowingError?: boolean\n): Promise {\n let error: Error | undefined;\n let result: T | undefined;\n try {\n result = await execute();\n } catch (e) {\n error = e;\n } finally {\n await onFinish(error, result);\n if (error && !preventThrowingError) {\n // eslint-disable-next-line no-unsafe-finally\n throw error;\n }\n // eslint-disable-next-line no-unsafe-finally\n return result as T;\n }\n}\n/**\n * Checks if certain function has been already wrapped\n * @param func\n */\nexport function isWrapped(func: unknown): func is ShimWrapped {\n return (\n typeof func === 'function' &&\n typeof (func as ShimWrapped).__original === 'function' &&\n typeof (func as ShimWrapped).__unwrap === 'function' &&\n (func as ShimWrapped).__wrapped === true\n );\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { TracerProvider, MeterProvider } from '@opentelemetry/api';\nimport type { Instrumentation } from './types';\nimport type { LoggerProvider } from '@opentelemetry/api-logs';\n\n/**\n * Enable instrumentations\n * @param instrumentations\n * @param tracerProvider\n * @param meterProvider\n */\nexport function enableInstrumentations(\n instrumentations: Instrumentation[],\n tracerProvider?: TracerProvider,\n meterProvider?: MeterProvider,\n loggerProvider?: LoggerProvider\n): void {\n for (let i = 0, j = instrumentations.length; i < j; i++) {\n const instrumentation = instrumentations[i];\n if (tracerProvider) {\n instrumentation.setTracerProvider(tracerProvider);\n }\n if (meterProvider) {\n instrumentation.setMeterProvider(meterProvider);\n }\n if (loggerProvider && instrumentation.setLoggerProvider) {\n instrumentation.setLoggerProvider(loggerProvider);\n }\n // instrumentations have been already enabled during creation\n // so enable only if user prevented that by setting enabled to false\n // this is to prevent double enabling but when calling register all\n // instrumentations should be now enabled\n if (!instrumentation.getConfig().enabled) {\n instrumentation.enable();\n }\n }\n}\n\n/**\n * Disable instrumentations\n * @param instrumentations\n */\nexport function disableInstrumentations(\n instrumentations: Instrumentation[]\n): void {\n instrumentations.forEach(instrumentation => instrumentation.disable());\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createConstMap } from '../internal/utils';\n\n//----------------------------------------------------------------------------------------------------------\n// DO NOT EDIT, this is an Auto-generated file from scripts/semconv/templates//templates/SemanticAttributes.ts.j2\n//----------------------------------------------------------------------------------------------------------\n\n//----------------------------------------------------------------------------------------------------------\n// Constant values for SemanticResourceAttributes\n//----------------------------------------------------------------------------------------------------------\n\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_CLOUD_PROVIDER = 'cloud.provider';\nconst TMP_CLOUD_ACCOUNT_ID = 'cloud.account.id';\nconst TMP_CLOUD_REGION = 'cloud.region';\nconst TMP_CLOUD_AVAILABILITY_ZONE = 'cloud.availability_zone';\nconst TMP_CLOUD_PLATFORM = 'cloud.platform';\nconst TMP_AWS_ECS_CONTAINER_ARN = 'aws.ecs.container.arn';\nconst TMP_AWS_ECS_CLUSTER_ARN = 'aws.ecs.cluster.arn';\nconst TMP_AWS_ECS_LAUNCHTYPE = 'aws.ecs.launchtype';\nconst TMP_AWS_ECS_TASK_ARN = 'aws.ecs.task.arn';\nconst TMP_AWS_ECS_TASK_FAMILY = 'aws.ecs.task.family';\nconst TMP_AWS_ECS_TASK_REVISION = 'aws.ecs.task.revision';\nconst TMP_AWS_EKS_CLUSTER_ARN = 'aws.eks.cluster.arn';\nconst TMP_AWS_LOG_GROUP_NAMES = 'aws.log.group.names';\nconst TMP_AWS_LOG_GROUP_ARNS = 'aws.log.group.arns';\nconst TMP_AWS_LOG_STREAM_NAMES = 'aws.log.stream.names';\nconst TMP_AWS_LOG_STREAM_ARNS = 'aws.log.stream.arns';\nconst TMP_CONTAINER_NAME = 'container.name';\nconst TMP_CONTAINER_ID = 'container.id';\nconst TMP_CONTAINER_RUNTIME = 'container.runtime';\nconst TMP_CONTAINER_IMAGE_NAME = 'container.image.name';\nconst TMP_CONTAINER_IMAGE_TAG = 'container.image.tag';\nconst TMP_DEPLOYMENT_ENVIRONMENT = 'deployment.environment';\nconst TMP_DEVICE_ID = 'device.id';\nconst TMP_DEVICE_MODEL_IDENTIFIER = 'device.model.identifier';\nconst TMP_DEVICE_MODEL_NAME = 'device.model.name';\nconst TMP_FAAS_NAME = 'faas.name';\nconst TMP_FAAS_ID = 'faas.id';\nconst TMP_FAAS_VERSION = 'faas.version';\nconst TMP_FAAS_INSTANCE = 'faas.instance';\nconst TMP_FAAS_MAX_MEMORY = 'faas.max_memory';\nconst TMP_HOST_ID = 'host.id';\nconst TMP_HOST_NAME = 'host.name';\nconst TMP_HOST_TYPE = 'host.type';\nconst TMP_HOST_ARCH = 'host.arch';\nconst TMP_HOST_IMAGE_NAME = 'host.image.name';\nconst TMP_HOST_IMAGE_ID = 'host.image.id';\nconst TMP_HOST_IMAGE_VERSION = 'host.image.version';\nconst TMP_K8S_CLUSTER_NAME = 'k8s.cluster.name';\nconst TMP_K8S_NODE_NAME = 'k8s.node.name';\nconst TMP_K8S_NODE_UID = 'k8s.node.uid';\nconst TMP_K8S_NAMESPACE_NAME = 'k8s.namespace.name';\nconst TMP_K8S_POD_UID = 'k8s.pod.uid';\nconst TMP_K8S_POD_NAME = 'k8s.pod.name';\nconst TMP_K8S_CONTAINER_NAME = 'k8s.container.name';\nconst TMP_K8S_REPLICASET_UID = 'k8s.replicaset.uid';\nconst TMP_K8S_REPLICASET_NAME = 'k8s.replicaset.name';\nconst TMP_K8S_DEPLOYMENT_UID = 'k8s.deployment.uid';\nconst TMP_K8S_DEPLOYMENT_NAME = 'k8s.deployment.name';\nconst TMP_K8S_STATEFULSET_UID = 'k8s.statefulset.uid';\nconst TMP_K8S_STATEFULSET_NAME = 'k8s.statefulset.name';\nconst TMP_K8S_DAEMONSET_UID = 'k8s.daemonset.uid';\nconst TMP_K8S_DAEMONSET_NAME = 'k8s.daemonset.name';\nconst TMP_K8S_JOB_UID = 'k8s.job.uid';\nconst TMP_K8S_JOB_NAME = 'k8s.job.name';\nconst TMP_K8S_CRONJOB_UID = 'k8s.cronjob.uid';\nconst TMP_K8S_CRONJOB_NAME = 'k8s.cronjob.name';\nconst TMP_OS_TYPE = 'os.type';\nconst TMP_OS_DESCRIPTION = 'os.description';\nconst TMP_OS_NAME = 'os.name';\nconst TMP_OS_VERSION = 'os.version';\nconst TMP_PROCESS_PID = 'process.pid';\nconst TMP_PROCESS_EXECUTABLE_NAME = 'process.executable.name';\nconst TMP_PROCESS_EXECUTABLE_PATH = 'process.executable.path';\nconst TMP_PROCESS_COMMAND = 'process.command';\nconst TMP_PROCESS_COMMAND_LINE = 'process.command_line';\nconst TMP_PROCESS_COMMAND_ARGS = 'process.command_args';\nconst TMP_PROCESS_OWNER = 'process.owner';\nconst TMP_PROCESS_RUNTIME_NAME = 'process.runtime.name';\nconst TMP_PROCESS_RUNTIME_VERSION = 'process.runtime.version';\nconst TMP_PROCESS_RUNTIME_DESCRIPTION = 'process.runtime.description';\nconst TMP_SERVICE_NAME = 'service.name';\nconst TMP_SERVICE_NAMESPACE = 'service.namespace';\nconst TMP_SERVICE_INSTANCE_ID = 'service.instance.id';\nconst TMP_SERVICE_VERSION = 'service.version';\nconst TMP_TELEMETRY_SDK_NAME = 'telemetry.sdk.name';\nconst TMP_TELEMETRY_SDK_LANGUAGE = 'telemetry.sdk.language';\nconst TMP_TELEMETRY_SDK_VERSION = 'telemetry.sdk.version';\nconst TMP_TELEMETRY_AUTO_VERSION = 'telemetry.auto.version';\nconst TMP_WEBENGINE_NAME = 'webengine.name';\nconst TMP_WEBENGINE_VERSION = 'webengine.version';\nconst TMP_WEBENGINE_DESCRIPTION = 'webengine.description';\n\n/**\n * Name of the cloud provider.\n *\n * @deprecated Use ATTR_CLOUD_PROVIDER in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_CLOUD_PROVIDER = TMP_CLOUD_PROVIDER;\n\n/**\n * The cloud account ID the resource is assigned to.\n *\n * @deprecated Use ATTR_CLOUD_ACCOUNT_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_CLOUD_ACCOUNT_ID = TMP_CLOUD_ACCOUNT_ID;\n\n/**\n * The geographical region the resource is running. Refer to your provider's docs to see the available regions, for example [Alibaba Cloud regions](https://www.alibabacloud.com/help/doc-detail/40654.htm), [AWS regions](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/), [Azure regions](https://azure.microsoft.com/en-us/global-infrastructure/geographies/), or [Google Cloud regions](https://cloud.google.com/about/locations).\n *\n * @deprecated Use ATTR_CLOUD_REGION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_CLOUD_REGION = TMP_CLOUD_REGION;\n\n/**\n * Cloud regions often have multiple, isolated locations known as zones to increase availability. Availability zone represents the zone where the resource is running.\n *\n * Note: Availability zones are called "zones" on Alibaba Cloud and Google Cloud.\n *\n * @deprecated Use ATTR_CLOUD_AVAILABILITY_ZONE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_CLOUD_AVAILABILITY_ZONE = TMP_CLOUD_AVAILABILITY_ZONE;\n\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use ATTR_CLOUD_PLATFORM in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_CLOUD_PLATFORM = TMP_CLOUD_PLATFORM;\n\n/**\n * The Amazon Resource Name (ARN) of an [ECS container instance](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html).\n *\n * @deprecated Use ATTR_AWS_ECS_CONTAINER_ARN in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_AWS_ECS_CONTAINER_ARN = TMP_AWS_ECS_CONTAINER_ARN;\n\n/**\n * The ARN of an [ECS cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/clusters.html).\n *\n * @deprecated Use ATTR_AWS_ECS_CLUSTER_ARN in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_AWS_ECS_CLUSTER_ARN = TMP_AWS_ECS_CLUSTER_ARN;\n\n/**\n * The [launch type](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) for an ECS task.\n *\n * @deprecated Use ATTR_AWS_ECS_LAUNCHTYPE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_AWS_ECS_LAUNCHTYPE = TMP_AWS_ECS_LAUNCHTYPE;\n\n/**\n * The ARN of an [ECS task definition](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html).\n *\n * @deprecated Use ATTR_AWS_ECS_TASK_ARN in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_AWS_ECS_TASK_ARN = TMP_AWS_ECS_TASK_ARN;\n\n/**\n * The task definition family this task definition is a member of.\n *\n * @deprecated Use ATTR_AWS_ECS_TASK_FAMILY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_AWS_ECS_TASK_FAMILY = TMP_AWS_ECS_TASK_FAMILY;\n\n/**\n * The revision for this task definition.\n *\n * @deprecated Use ATTR_AWS_ECS_TASK_REVISION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_AWS_ECS_TASK_REVISION = TMP_AWS_ECS_TASK_REVISION;\n\n/**\n * The ARN of an EKS cluster.\n *\n * @deprecated Use ATTR_AWS_EKS_CLUSTER_ARN in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_AWS_EKS_CLUSTER_ARN = TMP_AWS_EKS_CLUSTER_ARN;\n\n/**\n * The name(s) of the AWS log group(s) an application is writing to.\n *\n * Note: Multiple log groups must be supported for cases like multi-container applications, where a single application has sidecar containers, and each write to their own log group.\n *\n * @deprecated Use ATTR_AWS_LOG_GROUP_NAMES in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_AWS_LOG_GROUP_NAMES = TMP_AWS_LOG_GROUP_NAMES;\n\n/**\n * The Amazon Resource Name(s) (ARN) of the AWS log group(s).\n *\n * Note: See the [log group ARN format documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format).\n *\n * @deprecated Use ATTR_AWS_LOG_GROUP_ARNS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_AWS_LOG_GROUP_ARNS = TMP_AWS_LOG_GROUP_ARNS;\n\n/**\n * The name(s) of the AWS log stream(s) an application is writing to.\n *\n * @deprecated Use ATTR_AWS_LOG_STREAM_NAMES in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_AWS_LOG_STREAM_NAMES = TMP_AWS_LOG_STREAM_NAMES;\n\n/**\n * The ARN(s) of the AWS log stream(s).\n *\n * Note: See the [log stream ARN format documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format). One log group can contain several log streams, so these ARNs necessarily identify both a log group and a log stream.\n *\n * @deprecated Use ATTR_AWS_LOG_STREAM_ARNS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_AWS_LOG_STREAM_ARNS = TMP_AWS_LOG_STREAM_ARNS;\n\n/**\n * Container name.\n *\n * @deprecated Use ATTR_CONTAINER_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_CONTAINER_NAME = TMP_CONTAINER_NAME;\n\n/**\n * Container ID. Usually a UUID, as for example used to [identify Docker containers](https://docs.docker.com/engine/reference/run/#container-identification). The UUID might be abbreviated.\n *\n * @deprecated Use ATTR_CONTAINER_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_CONTAINER_ID = TMP_CONTAINER_ID;\n\n/**\n * The container runtime managing this container.\n *\n * @deprecated Use ATTR_CONTAINER_RUNTIME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_CONTAINER_RUNTIME = TMP_CONTAINER_RUNTIME;\n\n/**\n * Name of the image the container was built on.\n *\n * @deprecated Use ATTR_CONTAINER_IMAGE_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_CONTAINER_IMAGE_NAME = TMP_CONTAINER_IMAGE_NAME;\n\n/**\n * Container image tag.\n *\n * @deprecated Use ATTR_CONTAINER_IMAGE_TAGS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_CONTAINER_IMAGE_TAG = TMP_CONTAINER_IMAGE_TAG;\n\n/**\n * Name of the [deployment environment](https://en.wikipedia.org/wiki/Deployment_environment) (aka deployment tier).\n *\n * @deprecated Use ATTR_DEPLOYMENT_ENVIRONMENT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_DEPLOYMENT_ENVIRONMENT = TMP_DEPLOYMENT_ENVIRONMENT;\n\n/**\n * A unique identifier representing the device.\n *\n * Note: The device identifier MUST only be defined using the values outlined below. This value is not an advertising identifier and MUST NOT be used as such. On iOS (Swift or Objective-C), this value MUST be equal to the [vendor identifier](https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor). On Android (Java or Kotlin), this value MUST be equal to the Firebase Installation ID or a globally unique UUID which is persisted across sessions in your application. More information can be found [here](https://developer.android.com/training/articles/user-data-ids) on best practices and exact implementation details. Caution should be taken when storing personal data or anything which can identify a user. GDPR and data protection laws may apply, ensure you do your own due diligence.\n *\n * @deprecated Use ATTR_DEVICE_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_DEVICE_ID = TMP_DEVICE_ID;\n\n/**\n * The model identifier for the device.\n *\n * Note: It's recommended this value represents a machine readable version of the model identifier rather than the market or consumer-friendly name of the device.\n *\n * @deprecated Use ATTR_DEVICE_MODEL_IDENTIFIER in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_DEVICE_MODEL_IDENTIFIER = TMP_DEVICE_MODEL_IDENTIFIER;\n\n/**\n * The marketing name for the device model.\n *\n * Note: It's recommended this value represents a human readable version of the device model rather than a machine readable alternative.\n *\n * @deprecated Use ATTR_DEVICE_MODEL_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_DEVICE_MODEL_NAME = TMP_DEVICE_MODEL_NAME;\n\n/**\n * The name of the single function that this runtime instance executes.\n *\n * Note: This is the name of the function as configured/deployed on the FaaS platform and is usually different from the name of the callback function (which may be stored in the [`code.namespace`/`code.function`](../../trace/semantic_conventions/span-general.md#source-code-attributes) span attributes).\n *\n * @deprecated Use ATTR_FAAS_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_FAAS_NAME = TMP_FAAS_NAME;\n\n/**\n* The unique ID of the single function that this runtime instance executes.\n*\n* Note: Depending on the cloud provider, use:\n\n* **AWS Lambda:** The function [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).\nTake care not to use the "invoked ARN" directly but replace any\n[alias suffix](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html) with the resolved function version, as the same runtime instance may be invokable with multiple\ndifferent aliases.\n* **GCP:** The [URI of the resource](https://cloud.google.com/iam/docs/full-resource-names)\n* **Azure:** The [Fully Qualified Resource ID](https://docs.microsoft.com/en-us/rest/api/resources/resources/get-by-id).\n\nOn some providers, it may not be possible to determine the full ID at startup,\nwhich is why this field cannot be made required. For example, on AWS the account ID\npart of the ARN is not available without calling another AWS API\nwhich may be deemed too slow for a short-running lambda function.\nAs an alternative, consider setting `faas.id` as a span attribute instead.\n*\n* @deprecated Use ATTR_CLOUD_RESOURCE_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n*/\nexport const SEMRESATTRS_FAAS_ID = TMP_FAAS_ID;\n\n/**\n* The immutable version of the function being executed.\n*\n* Note: Depending on the cloud provider and platform, use:\n\n* **AWS Lambda:** The [function version](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html)\n (an integer represented as a decimal string).\n* **Google Cloud Run:** The [revision](https://cloud.google.com/run/docs/managing/revisions)\n (i.e., the function name plus the revision suffix).\n* **Google Cloud Functions:** The value of the\n [`K_REVISION` environment variable](https://cloud.google.com/functions/docs/env-var#runtime_environment_variables_set_automatically).\n* **Azure Functions:** Not applicable. Do not set this attribute.\n*\n* @deprecated Use ATTR_FAAS_VERSION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n*/\nexport const SEMRESATTRS_FAAS_VERSION = TMP_FAAS_VERSION;\n\n/**\n * The execution environment ID as a string, that will be potentially reused for other invocations to the same function/function version.\n *\n * Note: * **AWS Lambda:** Use the (full) log stream name.\n *\n * @deprecated Use ATTR_FAAS_INSTANCE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_FAAS_INSTANCE = TMP_FAAS_INSTANCE;\n\n/**\n * The amount of memory available to the serverless function in MiB.\n *\n * Note: It's recommended to set this attribute since e.g. too little memory can easily stop a Java AWS Lambda function from working correctly. On AWS Lambda, the environment variable `AWS_LAMBDA_FUNCTION_MEMORY_SIZE` provides this information.\n *\n * @deprecated Use ATTR_FAAS_MAX_MEMORY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_FAAS_MAX_MEMORY = TMP_FAAS_MAX_MEMORY;\n\n/**\n * Unique host ID. For Cloud, this must be the instance_id assigned by the cloud provider.\n *\n * @deprecated Use ATTR_HOST_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_HOST_ID = TMP_HOST_ID;\n\n/**\n * Name of the host. On Unix systems, it may contain what the hostname command returns, or the fully qualified hostname, or another name specified by the user.\n *\n * @deprecated Use ATTR_HOST_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_HOST_NAME = TMP_HOST_NAME;\n\n/**\n * Type of host. For Cloud, this must be the machine type.\n *\n * @deprecated Use ATTR_HOST_TYPE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_HOST_TYPE = TMP_HOST_TYPE;\n\n/**\n * The CPU architecture the host system is running on.\n *\n * @deprecated Use ATTR_HOST_ARCH in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_HOST_ARCH = TMP_HOST_ARCH;\n\n/**\n * Name of the VM image or OS install the host was instantiated from.\n *\n * @deprecated Use ATTR_HOST_IMAGE_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_HOST_IMAGE_NAME = TMP_HOST_IMAGE_NAME;\n\n/**\n * VM image ID. For Cloud, this value is from the provider.\n *\n * @deprecated Use ATTR_HOST_IMAGE_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_HOST_IMAGE_ID = TMP_HOST_IMAGE_ID;\n\n/**\n * The version string of the VM image as defined in [Version Attributes](README.md#version-attributes).\n *\n * @deprecated Use ATTR_HOST_IMAGE_VERSION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_HOST_IMAGE_VERSION = TMP_HOST_IMAGE_VERSION;\n\n/**\n * The name of the cluster.\n *\n * @deprecated Use ATTR_K8S_CLUSTER_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_CLUSTER_NAME = TMP_K8S_CLUSTER_NAME;\n\n/**\n * The name of the Node.\n *\n * @deprecated Use ATTR_K8S_NODE_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_NODE_NAME = TMP_K8S_NODE_NAME;\n\n/**\n * The UID of the Node.\n *\n * @deprecated Use ATTR_K8S_NODE_UID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_NODE_UID = TMP_K8S_NODE_UID;\n\n/**\n * The name of the namespace that the pod is running in.\n *\n * @deprecated Use ATTR_K8S_NAMESPACE_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_NAMESPACE_NAME = TMP_K8S_NAMESPACE_NAME;\n\n/**\n * The UID of the Pod.\n *\n * @deprecated Use ATTR_K8S_POD_UID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_POD_UID = TMP_K8S_POD_UID;\n\n/**\n * The name of the Pod.\n *\n * @deprecated Use ATTR_K8S_POD_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_POD_NAME = TMP_K8S_POD_NAME;\n\n/**\n * The name of the Container in a Pod template.\n *\n * @deprecated Use ATTR_K8S_CONTAINER_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_CONTAINER_NAME = TMP_K8S_CONTAINER_NAME;\n\n/**\n * The UID of the ReplicaSet.\n *\n * @deprecated Use ATTR_K8S_REPLICASET_UID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_REPLICASET_UID = TMP_K8S_REPLICASET_UID;\n\n/**\n * The name of the ReplicaSet.\n *\n * @deprecated Use ATTR_K8S_REPLICASET_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_REPLICASET_NAME = TMP_K8S_REPLICASET_NAME;\n\n/**\n * The UID of the Deployment.\n *\n * @deprecated Use ATTR_K8S_DEPLOYMENT_UID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_DEPLOYMENT_UID = TMP_K8S_DEPLOYMENT_UID;\n\n/**\n * The name of the Deployment.\n *\n * @deprecated Use ATTR_K8S_DEPLOYMENT_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_DEPLOYMENT_NAME = TMP_K8S_DEPLOYMENT_NAME;\n\n/**\n * The UID of the StatefulSet.\n *\n * @deprecated Use ATTR_K8S_STATEFULSET_UID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_STATEFULSET_UID = TMP_K8S_STATEFULSET_UID;\n\n/**\n * The name of the StatefulSet.\n *\n * @deprecated Use ATTR_K8S_STATEFULSET_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_STATEFULSET_NAME = TMP_K8S_STATEFULSET_NAME;\n\n/**\n * The UID of the DaemonSet.\n *\n * @deprecated Use ATTR_K8S_DAEMONSET_UID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_DAEMONSET_UID = TMP_K8S_DAEMONSET_UID;\n\n/**\n * The name of the DaemonSet.\n *\n * @deprecated Use ATTR_K8S_DAEMONSET_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_DAEMONSET_NAME = TMP_K8S_DAEMONSET_NAME;\n\n/**\n * The UID of the Job.\n *\n * @deprecated Use ATTR_K8S_JOB_UID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_JOB_UID = TMP_K8S_JOB_UID;\n\n/**\n * The name of the Job.\n *\n * @deprecated Use ATTR_K8S_JOB_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_JOB_NAME = TMP_K8S_JOB_NAME;\n\n/**\n * The UID of the CronJob.\n *\n * @deprecated Use ATTR_K8S_CRONJOB_UID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_CRONJOB_UID = TMP_K8S_CRONJOB_UID;\n\n/**\n * The name of the CronJob.\n *\n * @deprecated Use ATTR_K8S_CRONJOB_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_K8S_CRONJOB_NAME = TMP_K8S_CRONJOB_NAME;\n\n/**\n * The operating system type.\n *\n * @deprecated Use ATTR_OS_TYPE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_OS_TYPE = TMP_OS_TYPE;\n\n/**\n * Human readable (not intended to be parsed) OS version information, like e.g. reported by `ver` or `lsb_release -a` commands.\n *\n * @deprecated Use ATTR_OS_DESCRIPTION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_OS_DESCRIPTION = TMP_OS_DESCRIPTION;\n\n/**\n * Human readable operating system name.\n *\n * @deprecated Use ATTR_OS_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_OS_NAME = TMP_OS_NAME;\n\n/**\n * The version string of the operating system as defined in [Version Attributes](../../resource/semantic_conventions/README.md#version-attributes).\n *\n * @deprecated Use ATTR_OS_VERSION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_OS_VERSION = TMP_OS_VERSION;\n\n/**\n * Process identifier (PID).\n *\n * @deprecated Use ATTR_PROCESS_PID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_PROCESS_PID = TMP_PROCESS_PID;\n\n/**\n * The name of the process executable. On Linux based systems, can be set to the `Name` in `proc/[pid]/status`. On Windows, can be set to the base name of `GetProcessImageFileNameW`.\n *\n * @deprecated Use ATTR_PROCESS_EXECUTABLE_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_PROCESS_EXECUTABLE_NAME = TMP_PROCESS_EXECUTABLE_NAME;\n\n/**\n * The full path to the process executable. On Linux based systems, can be set to the target of `proc/[pid]/exe`. On Windows, can be set to the result of `GetProcessImageFileNameW`.\n *\n * @deprecated Use ATTR_PROCESS_EXECUTABLE_PATH in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_PROCESS_EXECUTABLE_PATH = TMP_PROCESS_EXECUTABLE_PATH;\n\n/**\n * The command used to launch the process (i.e. the command name). On Linux based systems, can be set to the zeroth string in `proc/[pid]/cmdline`. On Windows, can be set to the first parameter extracted from `GetCommandLineW`.\n *\n * @deprecated Use ATTR_PROCESS_COMMAND in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_PROCESS_COMMAND = TMP_PROCESS_COMMAND;\n\n/**\n * The full command used to launch the process as a single string representing the full command. On Windows, can be set to the result of `GetCommandLineW`. Do not set this if you have to assemble it just for monitoring; use `process.command_args` instead.\n *\n * @deprecated Use ATTR_PROCESS_COMMAND_LINE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_PROCESS_COMMAND_LINE = TMP_PROCESS_COMMAND_LINE;\n\n/**\n * All the command arguments (including the command/executable itself) as received by the process. On Linux-based systems (and some other Unixoid systems supporting procfs), can be set according to the list of null-delimited strings extracted from `proc/[pid]/cmdline`. For libc-based executables, this would be the full argv vector passed to `main`.\n *\n * @deprecated Use ATTR_PROCESS_COMMAND_ARGS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_PROCESS_COMMAND_ARGS = TMP_PROCESS_COMMAND_ARGS;\n\n/**\n * The username of the user that owns the process.\n *\n * @deprecated Use ATTR_PROCESS_OWNER in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_PROCESS_OWNER = TMP_PROCESS_OWNER;\n\n/**\n * The name of the runtime of this process. For compiled native binaries, this SHOULD be the name of the compiler.\n *\n * @deprecated Use ATTR_PROCESS_RUNTIME_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_PROCESS_RUNTIME_NAME = TMP_PROCESS_RUNTIME_NAME;\n\n/**\n * The version of the runtime of this process, as returned by the runtime without modification.\n *\n * @deprecated Use ATTR_PROCESS_RUNTIME_VERSION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_PROCESS_RUNTIME_VERSION = TMP_PROCESS_RUNTIME_VERSION;\n\n/**\n * An additional description about the runtime of the process, for example a specific vendor customization of the runtime environment.\n *\n * @deprecated Use ATTR_PROCESS_RUNTIME_DESCRIPTION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_PROCESS_RUNTIME_DESCRIPTION =\n TMP_PROCESS_RUNTIME_DESCRIPTION;\n\n/**\n * Logical name of the service.\n *\n * Note: MUST be the same for all instances of horizontally scaled services. If the value was not specified, SDKs MUST fallback to `unknown_service:` concatenated with [`process.executable.name`](process.md#process), e.g. `unknown_service:bash`. If `process.executable.name` is not available, the value MUST be set to `unknown_service`.\n *\n * @deprecated Use ATTR_SERVICE_NAME.\n */\nexport const SEMRESATTRS_SERVICE_NAME = TMP_SERVICE_NAME;\n\n/**\n * A namespace for `service.name`.\n *\n * Note: A string value having a meaning that helps to distinguish a group of services, for example the team name that owns a group of services. `service.name` is expected to be unique within the same namespace. If `service.namespace` is not specified in the Resource then `service.name` is expected to be unique for all services that have no explicit namespace defined (so the empty/unspecified namespace is simply one more valid namespace). Zero-length namespace string is assumed equal to unspecified namespace.\n *\n * @deprecated Use ATTR_SERVICE_NAMESPACE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_SERVICE_NAMESPACE = TMP_SERVICE_NAMESPACE;\n\n/**\n * The string ID of the service instance.\n *\n * Note: MUST be unique for each instance of the same `service.namespace,service.name` pair (in other words `service.namespace,service.name,service.instance.id` triplet MUST be globally unique). The ID helps to distinguish instances of the same service that exist at the same time (e.g. instances of a horizontally scaled service). It is preferable for the ID to be persistent and stay the same for the lifetime of the service instance, however it is acceptable that the ID is ephemeral and changes during important lifetime events for the service (e.g. service restarts). If the service has no inherent unique ID that can be used as the value of this attribute it is recommended to generate a random Version 1 or Version 4 RFC 4122 UUID (services aiming for reproducible UUIDs may also use Version 5, see RFC 4122 for more recommendations).\n *\n * @deprecated Use ATTR_SERVICE_INSTANCE_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_SERVICE_INSTANCE_ID = TMP_SERVICE_INSTANCE_ID;\n\n/**\n * The version string of the service API or implementation.\n *\n * @deprecated Use ATTR_SERVICE_VERSION.\n */\nexport const SEMRESATTRS_SERVICE_VERSION = TMP_SERVICE_VERSION;\n\n/**\n * The name of the telemetry SDK as defined above.\n *\n * @deprecated Use ATTR_TELEMETRY_SDK_NAME.\n */\nexport const SEMRESATTRS_TELEMETRY_SDK_NAME = TMP_TELEMETRY_SDK_NAME;\n\n/**\n * The language of the telemetry SDK.\n *\n * @deprecated Use ATTR_TELEMETRY_SDK_LANGUAGE.\n */\nexport const SEMRESATTRS_TELEMETRY_SDK_LANGUAGE = TMP_TELEMETRY_SDK_LANGUAGE;\n\n/**\n * The version string of the telemetry SDK.\n *\n * @deprecated Use ATTR_TELEMETRY_SDK_VERSION.\n */\nexport const SEMRESATTRS_TELEMETRY_SDK_VERSION = TMP_TELEMETRY_SDK_VERSION;\n\n/**\n * The version string of the auto instrumentation agent, if used.\n *\n * @deprecated Use ATTR_TELEMETRY_DISTRO_VERSION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_TELEMETRY_AUTO_VERSION = TMP_TELEMETRY_AUTO_VERSION;\n\n/**\n * The name of the web engine.\n *\n * @deprecated Use ATTR_WEBENGINE_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_WEBENGINE_NAME = TMP_WEBENGINE_NAME;\n\n/**\n * The version of the web engine.\n *\n * @deprecated Use ATTR_WEBENGINE_VERSION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_WEBENGINE_VERSION = TMP_WEBENGINE_VERSION;\n\n/**\n * Additional description of the web engine (e.g. detailed version and edition information).\n *\n * @deprecated Use ATTR_WEBENGINE_DESCRIPTION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMRESATTRS_WEBENGINE_DESCRIPTION = TMP_WEBENGINE_DESCRIPTION;\n\n/**\n * Definition of available values for SemanticResourceAttributes\n * This type is used for backward compatibility, you should use the individual exported\n * constants SemanticResourceAttributes_XXXXX rather than the exported constant map. As any single reference\n * to a constant map value will result in all strings being included into your bundle.\n * @deprecated Use the SEMRESATTRS_XXXXX constants rather than the SemanticResourceAttributes.XXXXX for bundle minification.\n */\nexport type SemanticResourceAttributes = {\n /**\n * Name of the cloud provider.\n */\n CLOUD_PROVIDER: 'cloud.provider';\n\n /**\n * The cloud account ID the resource is assigned to.\n */\n CLOUD_ACCOUNT_ID: 'cloud.account.id';\n\n /**\n * The geographical region the resource is running. Refer to your provider's docs to see the available regions, for example [Alibaba Cloud regions](https://www.alibabacloud.com/help/doc-detail/40654.htm), [AWS regions](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/), [Azure regions](https://azure.microsoft.com/en-us/global-infrastructure/geographies/), or [Google Cloud regions](https://cloud.google.com/about/locations).\n */\n CLOUD_REGION: 'cloud.region';\n\n /**\n * Cloud regions often have multiple, isolated locations known as zones to increase availability. Availability zone represents the zone where the resource is running.\n *\n * Note: Availability zones are called "zones" on Alibaba Cloud and Google Cloud.\n */\n CLOUD_AVAILABILITY_ZONE: 'cloud.availability_zone';\n\n /**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n */\n CLOUD_PLATFORM: 'cloud.platform';\n\n /**\n * The Amazon Resource Name (ARN) of an [ECS container instance](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_instances.html).\n */\n AWS_ECS_CONTAINER_ARN: 'aws.ecs.container.arn';\n\n /**\n * The ARN of an [ECS cluster](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/clusters.html).\n */\n AWS_ECS_CLUSTER_ARN: 'aws.ecs.cluster.arn';\n\n /**\n * The [launch type](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) for an ECS task.\n */\n AWS_ECS_LAUNCHTYPE: 'aws.ecs.launchtype';\n\n /**\n * The ARN of an [ECS task definition](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html).\n */\n AWS_ECS_TASK_ARN: 'aws.ecs.task.arn';\n\n /**\n * The task definition family this task definition is a member of.\n */\n AWS_ECS_TASK_FAMILY: 'aws.ecs.task.family';\n\n /**\n * The revision for this task definition.\n */\n AWS_ECS_TASK_REVISION: 'aws.ecs.task.revision';\n\n /**\n * The ARN of an EKS cluster.\n */\n AWS_EKS_CLUSTER_ARN: 'aws.eks.cluster.arn';\n\n /**\n * The name(s) of the AWS log group(s) an application is writing to.\n *\n * Note: Multiple log groups must be supported for cases like multi-container applications, where a single application has sidecar containers, and each write to their own log group.\n */\n AWS_LOG_GROUP_NAMES: 'aws.log.group.names';\n\n /**\n * The Amazon Resource Name(s) (ARN) of the AWS log group(s).\n *\n * Note: See the [log group ARN format documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format).\n */\n AWS_LOG_GROUP_ARNS: 'aws.log.group.arns';\n\n /**\n * The name(s) of the AWS log stream(s) an application is writing to.\n */\n AWS_LOG_STREAM_NAMES: 'aws.log.stream.names';\n\n /**\n * The ARN(s) of the AWS log stream(s).\n *\n * Note: See the [log stream ARN format documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html#CWL_ARN_Format). One log group can contain several log streams, so these ARNs necessarily identify both a log group and a log stream.\n */\n AWS_LOG_STREAM_ARNS: 'aws.log.stream.arns';\n\n /**\n * Container name.\n */\n CONTAINER_NAME: 'container.name';\n\n /**\n * Container ID. Usually a UUID, as for example used to [identify Docker containers](https://docs.docker.com/engine/reference/run/#container-identification). The UUID might be abbreviated.\n */\n CONTAINER_ID: 'container.id';\n\n /**\n * The container runtime managing this container.\n */\n CONTAINER_RUNTIME: 'container.runtime';\n\n /**\n * Name of the image the container was built on.\n */\n CONTAINER_IMAGE_NAME: 'container.image.name';\n\n /**\n * Container image tag.\n */\n CONTAINER_IMAGE_TAG: 'container.image.tag';\n\n /**\n * Name of the [deployment environment](https://en.wikipedia.org/wiki/Deployment_environment) (aka deployment tier).\n */\n DEPLOYMENT_ENVIRONMENT: 'deployment.environment';\n\n /**\n * A unique identifier representing the device.\n *\n * Note: The device identifier MUST only be defined using the values outlined below. This value is not an advertising identifier and MUST NOT be used as such. On iOS (Swift or Objective-C), this value MUST be equal to the [vendor identifier](https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor). On Android (Java or Kotlin), this value MUST be equal to the Firebase Installation ID or a globally unique UUID which is persisted across sessions in your application. More information can be found [here](https://developer.android.com/training/articles/user-data-ids) on best practices and exact implementation details. Caution should be taken when storing personal data or anything which can identify a user. GDPR and data protection laws may apply, ensure you do your own due diligence.\n */\n DEVICE_ID: 'device.id';\n\n /**\n * The model identifier for the device.\n *\n * Note: It's recommended this value represents a machine readable version of the model identifier rather than the market or consumer-friendly name of the device.\n */\n DEVICE_MODEL_IDENTIFIER: 'device.model.identifier';\n\n /**\n * The marketing name for the device model.\n *\n * Note: It's recommended this value represents a human readable version of the device model rather than a machine readable alternative.\n */\n DEVICE_MODEL_NAME: 'device.model.name';\n\n /**\n * The name of the single function that this runtime instance executes.\n *\n * Note: This is the name of the function as configured/deployed on the FaaS platform and is usually different from the name of the callback function (which may be stored in the [`code.namespace`/`code.function`](../../trace/semantic_conventions/span-general.md#source-code-attributes) span attributes).\n */\n FAAS_NAME: 'faas.name';\n\n /**\n * The unique ID of the single function that this runtime instance executes.\n *\n * Note: Depending on the cloud provider, use:\n\n* **AWS Lambda:** The function [ARN](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).\nTake care not to use the "invoked ARN" directly but replace any\n[alias suffix](https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html) with the resolved function version, as the same runtime instance may be invokable with multiple\ndifferent aliases.\n* **GCP:** The [URI of the resource](https://cloud.google.com/iam/docs/full-resource-names)\n* **Azure:** The [Fully Qualified Resource ID](https://docs.microsoft.com/en-us/rest/api/resources/resources/get-by-id).\n\nOn some providers, it may not be possible to determine the full ID at startup,\nwhich is why this field cannot be made required. For example, on AWS the account ID\npart of the ARN is not available without calling another AWS API\nwhich may be deemed too slow for a short-running lambda function.\nAs an alternative, consider setting `faas.id` as a span attribute instead.\n */\n FAAS_ID: 'faas.id';\n\n /**\n * The immutable version of the function being executed.\n *\n * Note: Depending on the cloud provider and platform, use:\n\n* **AWS Lambda:** The [function version](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html)\n (an integer represented as a decimal string).\n* **Google Cloud Run:** The [revision](https://cloud.google.com/run/docs/managing/revisions)\n (i.e., the function name plus the revision suffix).\n* **Google Cloud Functions:** The value of the\n [`K_REVISION` environment variable](https://cloud.google.com/functions/docs/env-var#runtime_environment_variables_set_automatically).\n* **Azure Functions:** Not applicable. Do not set this attribute.\n */\n FAAS_VERSION: 'faas.version';\n\n /**\n * The execution environment ID as a string, that will be potentially reused for other invocations to the same function/function version.\n *\n * Note: * **AWS Lambda:** Use the (full) log stream name.\n */\n FAAS_INSTANCE: 'faas.instance';\n\n /**\n * The amount of memory available to the serverless function in MiB.\n *\n * Note: It's recommended to set this attribute since e.g. too little memory can easily stop a Java AWS Lambda function from working correctly. On AWS Lambda, the environment variable `AWS_LAMBDA_FUNCTION_MEMORY_SIZE` provides this information.\n */\n FAAS_MAX_MEMORY: 'faas.max_memory';\n\n /**\n * Unique host ID. For Cloud, this must be the instance_id assigned by the cloud provider.\n */\n HOST_ID: 'host.id';\n\n /**\n * Name of the host. On Unix systems, it may contain what the hostname command returns, or the fully qualified hostname, or another name specified by the user.\n */\n HOST_NAME: 'host.name';\n\n /**\n * Type of host. For Cloud, this must be the machine type.\n */\n HOST_TYPE: 'host.type';\n\n /**\n * The CPU architecture the host system is running on.\n */\n HOST_ARCH: 'host.arch';\n\n /**\n * Name of the VM image or OS install the host was instantiated from.\n */\n HOST_IMAGE_NAME: 'host.image.name';\n\n /**\n * VM image ID. For Cloud, this value is from the provider.\n */\n HOST_IMAGE_ID: 'host.image.id';\n\n /**\n * The version string of the VM image as defined in [Version Attributes](README.md#version-attributes).\n */\n HOST_IMAGE_VERSION: 'host.image.version';\n\n /**\n * The name of the cluster.\n */\n K8S_CLUSTER_NAME: 'k8s.cluster.name';\n\n /**\n * The name of the Node.\n */\n K8S_NODE_NAME: 'k8s.node.name';\n\n /**\n * The UID of the Node.\n */\n K8S_NODE_UID: 'k8s.node.uid';\n\n /**\n * The name of the namespace that the pod is running in.\n */\n K8S_NAMESPACE_NAME: 'k8s.namespace.name';\n\n /**\n * The UID of the Pod.\n */\n K8S_POD_UID: 'k8s.pod.uid';\n\n /**\n * The name of the Pod.\n */\n K8S_POD_NAME: 'k8s.pod.name';\n\n /**\n * The name of the Container in a Pod template.\n */\n K8S_CONTAINER_NAME: 'k8s.container.name';\n\n /**\n * The UID of the ReplicaSet.\n */\n K8S_REPLICASET_UID: 'k8s.replicaset.uid';\n\n /**\n * The name of the ReplicaSet.\n */\n K8S_REPLICASET_NAME: 'k8s.replicaset.name';\n\n /**\n * The UID of the Deployment.\n */\n K8S_DEPLOYMENT_UID: 'k8s.deployment.uid';\n\n /**\n * The name of the Deployment.\n */\n K8S_DEPLOYMENT_NAME: 'k8s.deployment.name';\n\n /**\n * The UID of the StatefulSet.\n */\n K8S_STATEFULSET_UID: 'k8s.statefulset.uid';\n\n /**\n * The name of the StatefulSet.\n */\n K8S_STATEFULSET_NAME: 'k8s.statefulset.name';\n\n /**\n * The UID of the DaemonSet.\n */\n K8S_DAEMONSET_UID: 'k8s.daemonset.uid';\n\n /**\n * The name of the DaemonSet.\n */\n K8S_DAEMONSET_NAME: 'k8s.daemonset.name';\n\n /**\n * The UID of the Job.\n */\n K8S_JOB_UID: 'k8s.job.uid';\n\n /**\n * The name of the Job.\n */\n K8S_JOB_NAME: 'k8s.job.name';\n\n /**\n * The UID of the CronJob.\n */\n K8S_CRONJOB_UID: 'k8s.cronjob.uid';\n\n /**\n * The name of the CronJob.\n */\n K8S_CRONJOB_NAME: 'k8s.cronjob.name';\n\n /**\n * The operating system type.\n */\n OS_TYPE: 'os.type';\n\n /**\n * Human readable (not intended to be parsed) OS version information, like e.g. reported by `ver` or `lsb_release -a` commands.\n */\n OS_DESCRIPTION: 'os.description';\n\n /**\n * Human readable operating system name.\n */\n OS_NAME: 'os.name';\n\n /**\n * The version string of the operating system as defined in [Version Attributes](../../resource/semantic_conventions/README.md#version-attributes).\n */\n OS_VERSION: 'os.version';\n\n /**\n * Process identifier (PID).\n */\n PROCESS_PID: 'process.pid';\n\n /**\n * The name of the process executable. On Linux based systems, can be set to the `Name` in `proc/[pid]/status`. On Windows, can be set to the base name of `GetProcessImageFileNameW`.\n */\n PROCESS_EXECUTABLE_NAME: 'process.executable.name';\n\n /**\n * The full path to the process executable. On Linux based systems, can be set to the target of `proc/[pid]/exe`. On Windows, can be set to the result of `GetProcessImageFileNameW`.\n */\n PROCESS_EXECUTABLE_PATH: 'process.executable.path';\n\n /**\n * The command used to launch the process (i.e. the command name). On Linux based systems, can be set to the zeroth string in `proc/[pid]/cmdline`. On Windows, can be set to the first parameter extracted from `GetCommandLineW`.\n */\n PROCESS_COMMAND: 'process.command';\n\n /**\n * The full command used to launch the process as a single string representing the full command. On Windows, can be set to the result of `GetCommandLineW`. Do not set this if you have to assemble it just for monitoring; use `process.command_args` instead.\n */\n PROCESS_COMMAND_LINE: 'process.command_line';\n\n /**\n * All the command arguments (including the command/executable itself) as received by the process. On Linux-based systems (and some other Unixoid systems supporting procfs), can be set according to the list of null-delimited strings extracted from `proc/[pid]/cmdline`. For libc-based executables, this would be the full argv vector passed to `main`.\n */\n PROCESS_COMMAND_ARGS: 'process.command_args';\n\n /**\n * The username of the user that owns the process.\n */\n PROCESS_OWNER: 'process.owner';\n\n /**\n * The name of the runtime of this process. For compiled native binaries, this SHOULD be the name of the compiler.\n */\n PROCESS_RUNTIME_NAME: 'process.runtime.name';\n\n /**\n * The version of the runtime of this process, as returned by the runtime without modification.\n */\n PROCESS_RUNTIME_VERSION: 'process.runtime.version';\n\n /**\n * An additional description about the runtime of the process, for example a specific vendor customization of the runtime environment.\n */\n PROCESS_RUNTIME_DESCRIPTION: 'process.runtime.description';\n\n /**\n * Logical name of the service.\n *\n * Note: MUST be the same for all instances of horizontally scaled services. If the value was not specified, SDKs MUST fallback to `unknown_service:` concatenated with [`process.executable.name`](process.md#process), e.g. `unknown_service:bash`. If `process.executable.name` is not available, the value MUST be set to `unknown_service`.\n */\n SERVICE_NAME: 'service.name';\n\n /**\n * A namespace for `service.name`.\n *\n * Note: A string value having a meaning that helps to distinguish a group of services, for example the team name that owns a group of services. `service.name` is expected to be unique within the same namespace. If `service.namespace` is not specified in the Resource then `service.name` is expected to be unique for all services that have no explicit namespace defined (so the empty/unspecified namespace is simply one more valid namespace). Zero-length namespace string is assumed equal to unspecified namespace.\n */\n SERVICE_NAMESPACE: 'service.namespace';\n\n /**\n * The string ID of the service instance.\n *\n * Note: MUST be unique for each instance of the same `service.namespace,service.name` pair (in other words `service.namespace,service.name,service.instance.id` triplet MUST be globally unique). The ID helps to distinguish instances of the same service that exist at the same time (e.g. instances of a horizontally scaled service). It is preferable for the ID to be persistent and stay the same for the lifetime of the service instance, however it is acceptable that the ID is ephemeral and changes during important lifetime events for the service (e.g. service restarts). If the service has no inherent unique ID that can be used as the value of this attribute it is recommended to generate a random Version 1 or Version 4 RFC 4122 UUID (services aiming for reproducible UUIDs may also use Version 5, see RFC 4122 for more recommendations).\n */\n SERVICE_INSTANCE_ID: 'service.instance.id';\n\n /**\n * The version string of the service API or implementation.\n */\n SERVICE_VERSION: 'service.version';\n\n /**\n * The name of the telemetry SDK as defined above.\n */\n TELEMETRY_SDK_NAME: 'telemetry.sdk.name';\n\n /**\n * The language of the telemetry SDK.\n */\n TELEMETRY_SDK_LANGUAGE: 'telemetry.sdk.language';\n\n /**\n * The version string of the telemetry SDK.\n */\n TELEMETRY_SDK_VERSION: 'telemetry.sdk.version';\n\n /**\n * The version string of the auto instrumentation agent, if used.\n */\n TELEMETRY_AUTO_VERSION: 'telemetry.auto.version';\n\n /**\n * The name of the web engine.\n */\n WEBENGINE_NAME: 'webengine.name';\n\n /**\n * The version of the web engine.\n */\n WEBENGINE_VERSION: 'webengine.version';\n\n /**\n * Additional description of the web engine (e.g. detailed version and edition information).\n */\n WEBENGINE_DESCRIPTION: 'webengine.description';\n};\n\n/**\n * Create exported Value Map for SemanticResourceAttributes values\n * @deprecated Use the SEMRESATTRS_XXXXX constants rather than the SemanticResourceAttributes.XXXXX for bundle minification\n */\nexport const SemanticResourceAttributes: SemanticResourceAttributes =\n /*#__PURE__*/ createConstMap([\n TMP_CLOUD_PROVIDER,\n TMP_CLOUD_ACCOUNT_ID,\n TMP_CLOUD_REGION,\n TMP_CLOUD_AVAILABILITY_ZONE,\n TMP_CLOUD_PLATFORM,\n TMP_AWS_ECS_CONTAINER_ARN,\n TMP_AWS_ECS_CLUSTER_ARN,\n TMP_AWS_ECS_LAUNCHTYPE,\n TMP_AWS_ECS_TASK_ARN,\n TMP_AWS_ECS_TASK_FAMILY,\n TMP_AWS_ECS_TASK_REVISION,\n TMP_AWS_EKS_CLUSTER_ARN,\n TMP_AWS_LOG_GROUP_NAMES,\n TMP_AWS_LOG_GROUP_ARNS,\n TMP_AWS_LOG_STREAM_NAMES,\n TMP_AWS_LOG_STREAM_ARNS,\n TMP_CONTAINER_NAME,\n TMP_CONTAINER_ID,\n TMP_CONTAINER_RUNTIME,\n TMP_CONTAINER_IMAGE_NAME,\n TMP_CONTAINER_IMAGE_TAG,\n TMP_DEPLOYMENT_ENVIRONMENT,\n TMP_DEVICE_ID,\n TMP_DEVICE_MODEL_IDENTIFIER,\n TMP_DEVICE_MODEL_NAME,\n TMP_FAAS_NAME,\n TMP_FAAS_ID,\n TMP_FAAS_VERSION,\n TMP_FAAS_INSTANCE,\n TMP_FAAS_MAX_MEMORY,\n TMP_HOST_ID,\n TMP_HOST_NAME,\n TMP_HOST_TYPE,\n TMP_HOST_ARCH,\n TMP_HOST_IMAGE_NAME,\n TMP_HOST_IMAGE_ID,\n TMP_HOST_IMAGE_VERSION,\n TMP_K8S_CLUSTER_NAME,\n TMP_K8S_NODE_NAME,\n TMP_K8S_NODE_UID,\n TMP_K8S_NAMESPACE_NAME,\n TMP_K8S_POD_UID,\n TMP_K8S_POD_NAME,\n TMP_K8S_CONTAINER_NAME,\n TMP_K8S_REPLICASET_UID,\n TMP_K8S_REPLICASET_NAME,\n TMP_K8S_DEPLOYMENT_UID,\n TMP_K8S_DEPLOYMENT_NAME,\n TMP_K8S_STATEFULSET_UID,\n TMP_K8S_STATEFULSET_NAME,\n TMP_K8S_DAEMONSET_UID,\n TMP_K8S_DAEMONSET_NAME,\n TMP_K8S_JOB_UID,\n TMP_K8S_JOB_NAME,\n TMP_K8S_CRONJOB_UID,\n TMP_K8S_CRONJOB_NAME,\n TMP_OS_TYPE,\n TMP_OS_DESCRIPTION,\n TMP_OS_NAME,\n TMP_OS_VERSION,\n TMP_PROCESS_PID,\n TMP_PROCESS_EXECUTABLE_NAME,\n TMP_PROCESS_EXECUTABLE_PATH,\n TMP_PROCESS_COMMAND,\n TMP_PROCESS_COMMAND_LINE,\n TMP_PROCESS_COMMAND_ARGS,\n TMP_PROCESS_OWNER,\n TMP_PROCESS_RUNTIME_NAME,\n TMP_PROCESS_RUNTIME_VERSION,\n TMP_PROCESS_RUNTIME_DESCRIPTION,\n TMP_SERVICE_NAME,\n TMP_SERVICE_NAMESPACE,\n TMP_SERVICE_INSTANCE_ID,\n TMP_SERVICE_VERSION,\n TMP_TELEMETRY_SDK_NAME,\n TMP_TELEMETRY_SDK_LANGUAGE,\n TMP_TELEMETRY_SDK_VERSION,\n TMP_TELEMETRY_AUTO_VERSION,\n TMP_WEBENGINE_NAME,\n TMP_WEBENGINE_VERSION,\n TMP_WEBENGINE_DESCRIPTION,\n ]);\n\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for CloudProviderValues enum definition\n *\n * Name of the cloud provider.\n * ---------------------------------------------------------------------------------------------------------- */\n\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_CLOUDPROVIDERVALUES_ALIBABA_CLOUD = 'alibaba_cloud';\nconst TMP_CLOUDPROVIDERVALUES_AWS = 'aws';\nconst TMP_CLOUDPROVIDERVALUES_AZURE = 'azure';\nconst TMP_CLOUDPROVIDERVALUES_GCP = 'gcp';\n\n/**\n * Name of the cloud provider.\n *\n * @deprecated Use CLOUD_PROVIDER_VALUE_ALIBABA_CLOUD in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPROVIDERVALUES_ALIBABA_CLOUD =\n TMP_CLOUDPROVIDERVALUES_ALIBABA_CLOUD;\n\n/**\n * Name of the cloud provider.\n *\n * @deprecated Use CLOUD_PROVIDER_VALUE_AWS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPROVIDERVALUES_AWS = TMP_CLOUDPROVIDERVALUES_AWS;\n\n/**\n * Name of the cloud provider.\n *\n * @deprecated Use CLOUD_PROVIDER_VALUE_AZURE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPROVIDERVALUES_AZURE = TMP_CLOUDPROVIDERVALUES_AZURE;\n\n/**\n * Name of the cloud provider.\n *\n * @deprecated Use CLOUD_PROVIDER_VALUE_GCP in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPROVIDERVALUES_GCP = TMP_CLOUDPROVIDERVALUES_GCP;\n\n/**\n * Identifies the Values for CloudProviderValues enum definition\n *\n * Name of the cloud provider.\n * @deprecated Use the CLOUDPROVIDERVALUES_XXXXX constants rather than the CloudProviderValues.XXXXX for bundle minification.\n */\nexport type CloudProviderValues = {\n /** Alibaba Cloud. */\n ALIBABA_CLOUD: 'alibaba_cloud';\n\n /** Amazon Web Services. */\n AWS: 'aws';\n\n /** Microsoft Azure. */\n AZURE: 'azure';\n\n /** Google Cloud Platform. */\n GCP: 'gcp';\n};\n\n/**\n * The constant map of values for CloudProviderValues.\n * @deprecated Use the CLOUDPROVIDERVALUES_XXXXX constants rather than the CloudProviderValues.XXXXX for bundle minification.\n */\nexport const CloudProviderValues: CloudProviderValues =\n /*#__PURE__*/ createConstMap([\n TMP_CLOUDPROVIDERVALUES_ALIBABA_CLOUD,\n TMP_CLOUDPROVIDERVALUES_AWS,\n TMP_CLOUDPROVIDERVALUES_AZURE,\n TMP_CLOUDPROVIDERVALUES_GCP,\n ]);\n\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for CloudPlatformValues enum definition\n *\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n * ---------------------------------------------------------------------------------------------------------- */\n\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS = 'alibaba_cloud_ecs';\nconst TMP_CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC = 'alibaba_cloud_fc';\nconst TMP_CLOUDPLATFORMVALUES_AWS_EC2 = 'aws_ec2';\nconst TMP_CLOUDPLATFORMVALUES_AWS_ECS = 'aws_ecs';\nconst TMP_CLOUDPLATFORMVALUES_AWS_EKS = 'aws_eks';\nconst TMP_CLOUDPLATFORMVALUES_AWS_LAMBDA = 'aws_lambda';\nconst TMP_CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK = 'aws_elastic_beanstalk';\nconst TMP_CLOUDPLATFORMVALUES_AZURE_VM = 'azure_vm';\nconst TMP_CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES =\n 'azure_container_instances';\nconst TMP_CLOUDPLATFORMVALUES_AZURE_AKS = 'azure_aks';\nconst TMP_CLOUDPLATFORMVALUES_AZURE_FUNCTIONS = 'azure_functions';\nconst TMP_CLOUDPLATFORMVALUES_AZURE_APP_SERVICE = 'azure_app_service';\nconst TMP_CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE = 'gcp_compute_engine';\nconst TMP_CLOUDPLATFORMVALUES_GCP_CLOUD_RUN = 'gcp_cloud_run';\nconst TMP_CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE = 'gcp_kubernetes_engine';\nconst TMP_CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS = 'gcp_cloud_functions';\nconst TMP_CLOUDPLATFORMVALUES_GCP_APP_ENGINE = 'gcp_app_engine';\n\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_ALIBABA_CLOUD_ECS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS =\n TMP_CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS;\n\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_ALIBABA_CLOUD_FC in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC =\n TMP_CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC;\n\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_AWS_EC2 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_AWS_EC2 = TMP_CLOUDPLATFORMVALUES_AWS_EC2;\n\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_AWS_ECS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_AWS_ECS = TMP_CLOUDPLATFORMVALUES_AWS_ECS;\n\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_AWS_EKS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_AWS_EKS = TMP_CLOUDPLATFORMVALUES_AWS_EKS;\n\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_AWS_LAMBDA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_AWS_LAMBDA =\n TMP_CLOUDPLATFORMVALUES_AWS_LAMBDA;\n\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_AWS_ELASTIC_BEANSTALK in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK =\n TMP_CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK;\n\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_AZURE_VM in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_AZURE_VM = TMP_CLOUDPLATFORMVALUES_AZURE_VM;\n\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_AZURE_CONTAINER_INSTANCES in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES =\n TMP_CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES;\n\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_AZURE_AKS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_AZURE_AKS = TMP_CLOUDPLATFORMVALUES_AZURE_AKS;\n\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_AZURE_FUNCTIONS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_AZURE_FUNCTIONS =\n TMP_CLOUDPLATFORMVALUES_AZURE_FUNCTIONS;\n\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_AZURE_APP_SERVICE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_AZURE_APP_SERVICE =\n TMP_CLOUDPLATFORMVALUES_AZURE_APP_SERVICE;\n\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_GCP_COMPUTE_ENGINE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE =\n TMP_CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE;\n\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_GCP_CLOUD_RUN in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_GCP_CLOUD_RUN =\n TMP_CLOUDPLATFORMVALUES_GCP_CLOUD_RUN;\n\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_GCP_KUBERNETES_ENGINE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE =\n TMP_CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE;\n\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_GCP_CLOUD_FUNCTIONS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS =\n TMP_CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS;\n\n/**\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n *\n * @deprecated Use CLOUD_PLATFORM_VALUE_GCP_APP_ENGINE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const CLOUDPLATFORMVALUES_GCP_APP_ENGINE =\n TMP_CLOUDPLATFORMVALUES_GCP_APP_ENGINE;\n\n/**\n * Identifies the Values for CloudPlatformValues enum definition\n *\n * The cloud platform in use.\n *\n * Note: The prefix of the service SHOULD match the one specified in `cloud.provider`.\n * @deprecated Use the CLOUDPLATFORMVALUES_XXXXX constants rather than the CloudPlatformValues.XXXXX for bundle minification.\n */\nexport type CloudPlatformValues = {\n /** Alibaba Cloud Elastic Compute Service. */\n ALIBABA_CLOUD_ECS: 'alibaba_cloud_ecs';\n\n /** Alibaba Cloud Function Compute. */\n ALIBABA_CLOUD_FC: 'alibaba_cloud_fc';\n\n /** AWS Elastic Compute Cloud. */\n AWS_EC2: 'aws_ec2';\n\n /** AWS Elastic Container Service. */\n AWS_ECS: 'aws_ecs';\n\n /** AWS Elastic Kubernetes Service. */\n AWS_EKS: 'aws_eks';\n\n /** AWS Lambda. */\n AWS_LAMBDA: 'aws_lambda';\n\n /** AWS Elastic Beanstalk. */\n AWS_ELASTIC_BEANSTALK: 'aws_elastic_beanstalk';\n\n /** Azure Virtual Machines. */\n AZURE_VM: 'azure_vm';\n\n /** Azure Container Instances. */\n AZURE_CONTAINER_INSTANCES: 'azure_container_instances';\n\n /** Azure Kubernetes Service. */\n AZURE_AKS: 'azure_aks';\n\n /** Azure Functions. */\n AZURE_FUNCTIONS: 'azure_functions';\n\n /** Azure App Service. */\n AZURE_APP_SERVICE: 'azure_app_service';\n\n /** Google Cloud Compute Engine (GCE). */\n GCP_COMPUTE_ENGINE: 'gcp_compute_engine';\n\n /** Google Cloud Run. */\n GCP_CLOUD_RUN: 'gcp_cloud_run';\n\n /** Google Cloud Kubernetes Engine (GKE). */\n GCP_KUBERNETES_ENGINE: 'gcp_kubernetes_engine';\n\n /** Google Cloud Functions (GCF). */\n GCP_CLOUD_FUNCTIONS: 'gcp_cloud_functions';\n\n /** Google Cloud App Engine (GAE). */\n GCP_APP_ENGINE: 'gcp_app_engine';\n};\n\n/**\n * The constant map of values for CloudPlatformValues.\n * @deprecated Use the CLOUDPLATFORMVALUES_XXXXX constants rather than the CloudPlatformValues.XXXXX for bundle minification.\n */\nexport const CloudPlatformValues: CloudPlatformValues =\n /*#__PURE__*/ createConstMap([\n TMP_CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS,\n TMP_CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC,\n TMP_CLOUDPLATFORMVALUES_AWS_EC2,\n TMP_CLOUDPLATFORMVALUES_AWS_ECS,\n TMP_CLOUDPLATFORMVALUES_AWS_EKS,\n TMP_CLOUDPLATFORMVALUES_AWS_LAMBDA,\n TMP_CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK,\n TMP_CLOUDPLATFORMVALUES_AZURE_VM,\n TMP_CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES,\n TMP_CLOUDPLATFORMVALUES_AZURE_AKS,\n TMP_CLOUDPLATFORMVALUES_AZURE_FUNCTIONS,\n TMP_CLOUDPLATFORMVALUES_AZURE_APP_SERVICE,\n TMP_CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE,\n TMP_CLOUDPLATFORMVALUES_GCP_CLOUD_RUN,\n TMP_CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE,\n TMP_CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS,\n TMP_CLOUDPLATFORMVALUES_GCP_APP_ENGINE,\n ]);\n\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for AwsEcsLaunchtypeValues enum definition\n *\n * The [launch type](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) for an ECS task.\n * ---------------------------------------------------------------------------------------------------------- */\n\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_AWSECSLAUNCHTYPEVALUES_EC2 = 'ec2';\nconst TMP_AWSECSLAUNCHTYPEVALUES_FARGATE = 'fargate';\n\n/**\n * The [launch type](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) for an ECS task.\n *\n * @deprecated Use AWS_ECS_LAUNCHTYPE_VALUE_EC2 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const AWSECSLAUNCHTYPEVALUES_EC2 = TMP_AWSECSLAUNCHTYPEVALUES_EC2;\n\n/**\n * The [launch type](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) for an ECS task.\n *\n * @deprecated Use AWS_ECS_LAUNCHTYPE_VALUE_FARGATE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const AWSECSLAUNCHTYPEVALUES_FARGATE =\n TMP_AWSECSLAUNCHTYPEVALUES_FARGATE;\n\n/**\n * Identifies the Values for AwsEcsLaunchtypeValues enum definition\n *\n * The [launch type](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) for an ECS task.\n * @deprecated Use the AWSECSLAUNCHTYPEVALUES_XXXXX constants rather than the AwsEcsLaunchtypeValues.XXXXX for bundle minification.\n */\nexport type AwsEcsLaunchtypeValues = {\n /** ec2. */\n EC2: 'ec2';\n\n /** fargate. */\n FARGATE: 'fargate';\n};\n\n/**\n * The constant map of values for AwsEcsLaunchtypeValues.\n * @deprecated Use the AWSECSLAUNCHTYPEVALUES_XXXXX constants rather than the AwsEcsLaunchtypeValues.XXXXX for bundle minification.\n */\nexport const AwsEcsLaunchtypeValues: AwsEcsLaunchtypeValues =\n /*#__PURE__*/ createConstMap([\n TMP_AWSECSLAUNCHTYPEVALUES_EC2,\n TMP_AWSECSLAUNCHTYPEVALUES_FARGATE,\n ]);\n\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for HostArchValues enum definition\n *\n * The CPU architecture the host system is running on.\n * ---------------------------------------------------------------------------------------------------------- */\n\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_HOSTARCHVALUES_AMD64 = 'amd64';\nconst TMP_HOSTARCHVALUES_ARM32 = 'arm32';\nconst TMP_HOSTARCHVALUES_ARM64 = 'arm64';\nconst TMP_HOSTARCHVALUES_IA64 = 'ia64';\nconst TMP_HOSTARCHVALUES_PPC32 = 'ppc32';\nconst TMP_HOSTARCHVALUES_PPC64 = 'ppc64';\nconst TMP_HOSTARCHVALUES_X86 = 'x86';\n\n/**\n * The CPU architecture the host system is running on.\n *\n * @deprecated Use HOST_ARCH_VALUE_AMD64 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const HOSTARCHVALUES_AMD64 = TMP_HOSTARCHVALUES_AMD64;\n\n/**\n * The CPU architecture the host system is running on.\n *\n * @deprecated Use HOST_ARCH_VALUE_ARM32 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const HOSTARCHVALUES_ARM32 = TMP_HOSTARCHVALUES_ARM32;\n\n/**\n * The CPU architecture the host system is running on.\n *\n * @deprecated Use HOST_ARCH_VALUE_ARM64 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const HOSTARCHVALUES_ARM64 = TMP_HOSTARCHVALUES_ARM64;\n\n/**\n * The CPU architecture the host system is running on.\n *\n * @deprecated Use HOST_ARCH_VALUE_IA64 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const HOSTARCHVALUES_IA64 = TMP_HOSTARCHVALUES_IA64;\n\n/**\n * The CPU architecture the host system is running on.\n *\n * @deprecated Use HOST_ARCH_VALUE_PPC32 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const HOSTARCHVALUES_PPC32 = TMP_HOSTARCHVALUES_PPC32;\n\n/**\n * The CPU architecture the host system is running on.\n *\n * @deprecated Use HOST_ARCH_VALUE_PPC64 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const HOSTARCHVALUES_PPC64 = TMP_HOSTARCHVALUES_PPC64;\n\n/**\n * The CPU architecture the host system is running on.\n *\n * @deprecated Use HOST_ARCH_VALUE_X86 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const HOSTARCHVALUES_X86 = TMP_HOSTARCHVALUES_X86;\n\n/**\n * Identifies the Values for HostArchValues enum definition\n *\n * The CPU architecture the host system is running on.\n * @deprecated Use the HOSTARCHVALUES_XXXXX constants rather than the HostArchValues.XXXXX for bundle minification.\n */\nexport type HostArchValues = {\n /** AMD64. */\n AMD64: 'amd64';\n\n /** ARM32. */\n ARM32: 'arm32';\n\n /** ARM64. */\n ARM64: 'arm64';\n\n /** Itanium. */\n IA64: 'ia64';\n\n /** 32-bit PowerPC. */\n PPC32: 'ppc32';\n\n /** 64-bit PowerPC. */\n PPC64: 'ppc64';\n\n /** 32-bit x86. */\n X86: 'x86';\n};\n\n/**\n * The constant map of values for HostArchValues.\n * @deprecated Use the HOSTARCHVALUES_XXXXX constants rather than the HostArchValues.XXXXX for bundle minification.\n */\nexport const HostArchValues: HostArchValues =\n /*#__PURE__*/ createConstMap([\n TMP_HOSTARCHVALUES_AMD64,\n TMP_HOSTARCHVALUES_ARM32,\n TMP_HOSTARCHVALUES_ARM64,\n TMP_HOSTARCHVALUES_IA64,\n TMP_HOSTARCHVALUES_PPC32,\n TMP_HOSTARCHVALUES_PPC64,\n TMP_HOSTARCHVALUES_X86,\n ]);\n\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for OsTypeValues enum definition\n *\n * The operating system type.\n * ---------------------------------------------------------------------------------------------------------- */\n\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_OSTYPEVALUES_WINDOWS = 'windows';\nconst TMP_OSTYPEVALUES_LINUX = 'linux';\nconst TMP_OSTYPEVALUES_DARWIN = 'darwin';\nconst TMP_OSTYPEVALUES_FREEBSD = 'freebsd';\nconst TMP_OSTYPEVALUES_NETBSD = 'netbsd';\nconst TMP_OSTYPEVALUES_OPENBSD = 'openbsd';\nconst TMP_OSTYPEVALUES_DRAGONFLYBSD = 'dragonflybsd';\nconst TMP_OSTYPEVALUES_HPUX = 'hpux';\nconst TMP_OSTYPEVALUES_AIX = 'aix';\nconst TMP_OSTYPEVALUES_SOLARIS = 'solaris';\nconst TMP_OSTYPEVALUES_Z_OS = 'z_os';\n\n/**\n * The operating system type.\n *\n * @deprecated Use OS_TYPE_VALUE_WINDOWS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const OSTYPEVALUES_WINDOWS = TMP_OSTYPEVALUES_WINDOWS;\n\n/**\n * The operating system type.\n *\n * @deprecated Use OS_TYPE_VALUE_LINUX in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const OSTYPEVALUES_LINUX = TMP_OSTYPEVALUES_LINUX;\n\n/**\n * The operating system type.\n *\n * @deprecated Use OS_TYPE_VALUE_DARWIN in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const OSTYPEVALUES_DARWIN = TMP_OSTYPEVALUES_DARWIN;\n\n/**\n * The operating system type.\n *\n * @deprecated Use OS_TYPE_VALUE_FREEBSD in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const OSTYPEVALUES_FREEBSD = TMP_OSTYPEVALUES_FREEBSD;\n\n/**\n * The operating system type.\n *\n * @deprecated Use OS_TYPE_VALUE_NETBSD in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const OSTYPEVALUES_NETBSD = TMP_OSTYPEVALUES_NETBSD;\n\n/**\n * The operating system type.\n *\n * @deprecated Use OS_TYPE_VALUE_OPENBSD in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const OSTYPEVALUES_OPENBSD = TMP_OSTYPEVALUES_OPENBSD;\n\n/**\n * The operating system type.\n *\n * @deprecated Use OS_TYPE_VALUE_DRAGONFLYBSD in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const OSTYPEVALUES_DRAGONFLYBSD = TMP_OSTYPEVALUES_DRAGONFLYBSD;\n\n/**\n * The operating system type.\n *\n * @deprecated Use OS_TYPE_VALUE_HPUX in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const OSTYPEVALUES_HPUX = TMP_OSTYPEVALUES_HPUX;\n\n/**\n * The operating system type.\n *\n * @deprecated Use OS_TYPE_VALUE_AIX in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const OSTYPEVALUES_AIX = TMP_OSTYPEVALUES_AIX;\n\n/**\n * The operating system type.\n *\n * @deprecated Use OS_TYPE_VALUE_SOLARIS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const OSTYPEVALUES_SOLARIS = TMP_OSTYPEVALUES_SOLARIS;\n\n/**\n * The operating system type.\n *\n * @deprecated Use OS_TYPE_VALUE_Z_OS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const OSTYPEVALUES_Z_OS = TMP_OSTYPEVALUES_Z_OS;\n\n/**\n * Identifies the Values for OsTypeValues enum definition\n *\n * The operating system type.\n * @deprecated Use the OSTYPEVALUES_XXXXX constants rather than the OsTypeValues.XXXXX for bundle minification.\n */\nexport type OsTypeValues = {\n /** Microsoft Windows. */\n WINDOWS: 'windows';\n\n /** Linux. */\n LINUX: 'linux';\n\n /** Apple Darwin. */\n DARWIN: 'darwin';\n\n /** FreeBSD. */\n FREEBSD: 'freebsd';\n\n /** NetBSD. */\n NETBSD: 'netbsd';\n\n /** OpenBSD. */\n OPENBSD: 'openbsd';\n\n /** DragonFly BSD. */\n DRAGONFLYBSD: 'dragonflybsd';\n\n /** HP-UX (Hewlett Packard Unix). */\n HPUX: 'hpux';\n\n /** AIX (Advanced Interactive eXecutive). */\n AIX: 'aix';\n\n /** Oracle Solaris. */\n SOLARIS: 'solaris';\n\n /** IBM z/OS. */\n Z_OS: 'z_os';\n};\n\n/**\n * The constant map of values for OsTypeValues.\n * @deprecated Use the OSTYPEVALUES_XXXXX constants rather than the OsTypeValues.XXXXX for bundle minification.\n */\nexport const OsTypeValues: OsTypeValues =\n /*#__PURE__*/ createConstMap([\n TMP_OSTYPEVALUES_WINDOWS,\n TMP_OSTYPEVALUES_LINUX,\n TMP_OSTYPEVALUES_DARWIN,\n TMP_OSTYPEVALUES_FREEBSD,\n TMP_OSTYPEVALUES_NETBSD,\n TMP_OSTYPEVALUES_OPENBSD,\n TMP_OSTYPEVALUES_DRAGONFLYBSD,\n TMP_OSTYPEVALUES_HPUX,\n TMP_OSTYPEVALUES_AIX,\n TMP_OSTYPEVALUES_SOLARIS,\n TMP_OSTYPEVALUES_Z_OS,\n ]);\n\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for TelemetrySdkLanguageValues enum definition\n *\n * The language of the telemetry SDK.\n * ---------------------------------------------------------------------------------------------------------- */\n\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_TELEMETRYSDKLANGUAGEVALUES_CPP = 'cpp';\nconst TMP_TELEMETRYSDKLANGUAGEVALUES_DOTNET = 'dotnet';\nconst TMP_TELEMETRYSDKLANGUAGEVALUES_ERLANG = 'erlang';\nconst TMP_TELEMETRYSDKLANGUAGEVALUES_GO = 'go';\nconst TMP_TELEMETRYSDKLANGUAGEVALUES_JAVA = 'java';\nconst TMP_TELEMETRYSDKLANGUAGEVALUES_NODEJS = 'nodejs';\nconst TMP_TELEMETRYSDKLANGUAGEVALUES_PHP = 'php';\nconst TMP_TELEMETRYSDKLANGUAGEVALUES_PYTHON = 'python';\nconst TMP_TELEMETRYSDKLANGUAGEVALUES_RUBY = 'ruby';\nconst TMP_TELEMETRYSDKLANGUAGEVALUES_WEBJS = 'webjs';\n\n/**\n * The language of the telemetry SDK.\n *\n * @deprecated Use TELEMETRY_SDK_LANGUAGE_VALUE_CPP.\n */\nexport const TELEMETRYSDKLANGUAGEVALUES_CPP =\n TMP_TELEMETRYSDKLANGUAGEVALUES_CPP;\n\n/**\n * The language of the telemetry SDK.\n *\n * @deprecated Use TELEMETRY_SDK_LANGUAGE_VALUE_DOTNET.\n */\nexport const TELEMETRYSDKLANGUAGEVALUES_DOTNET =\n TMP_TELEMETRYSDKLANGUAGEVALUES_DOTNET;\n\n/**\n * The language of the telemetry SDK.\n *\n * @deprecated Use TELEMETRY_SDK_LANGUAGE_VALUE_ERLANG.\n */\nexport const TELEMETRYSDKLANGUAGEVALUES_ERLANG =\n TMP_TELEMETRYSDKLANGUAGEVALUES_ERLANG;\n\n/**\n * The language of the telemetry SDK.\n *\n * @deprecated Use TELEMETRY_SDK_LANGUAGE_VALUE_GO.\n */\nexport const TELEMETRYSDKLANGUAGEVALUES_GO = TMP_TELEMETRYSDKLANGUAGEVALUES_GO;\n\n/**\n * The language of the telemetry SDK.\n *\n * @deprecated Use TELEMETRY_SDK_LANGUAGE_VALUE_JAVA.\n */\nexport const TELEMETRYSDKLANGUAGEVALUES_JAVA =\n TMP_TELEMETRYSDKLANGUAGEVALUES_JAVA;\n\n/**\n * The language of the telemetry SDK.\n *\n * @deprecated Use TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS.\n */\nexport const TELEMETRYSDKLANGUAGEVALUES_NODEJS =\n TMP_TELEMETRYSDKLANGUAGEVALUES_NODEJS;\n\n/**\n * The language of the telemetry SDK.\n *\n * @deprecated Use TELEMETRY_SDK_LANGUAGE_VALUE_PHP.\n */\nexport const TELEMETRYSDKLANGUAGEVALUES_PHP =\n TMP_TELEMETRYSDKLANGUAGEVALUES_PHP;\n\n/**\n * The language of the telemetry SDK.\n *\n * @deprecated Use TELEMETRY_SDK_LANGUAGE_VALUE_PYTHON.\n */\nexport const TELEMETRYSDKLANGUAGEVALUES_PYTHON =\n TMP_TELEMETRYSDKLANGUAGEVALUES_PYTHON;\n\n/**\n * The language of the telemetry SDK.\n *\n * @deprecated Use TELEMETRY_SDK_LANGUAGE_VALUE_RUBY.\n */\nexport const TELEMETRYSDKLANGUAGEVALUES_RUBY =\n TMP_TELEMETRYSDKLANGUAGEVALUES_RUBY;\n\n/**\n * The language of the telemetry SDK.\n *\n * @deprecated Use TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS.\n */\nexport const TELEMETRYSDKLANGUAGEVALUES_WEBJS =\n TMP_TELEMETRYSDKLANGUAGEVALUES_WEBJS;\n\n/**\n * Identifies the Values for TelemetrySdkLanguageValues enum definition\n *\n * The language of the telemetry SDK.\n * @deprecated Use the TELEMETRYSDKLANGUAGEVALUES_XXXXX constants rather than the TelemetrySdkLanguageValues.XXXXX for bundle minification.\n */\nexport type TelemetrySdkLanguageValues = {\n /** cpp. */\n CPP: 'cpp';\n\n /** dotnet. */\n DOTNET: 'dotnet';\n\n /** erlang. */\n ERLANG: 'erlang';\n\n /** go. */\n GO: 'go';\n\n /** java. */\n JAVA: 'java';\n\n /** nodejs. */\n NODEJS: 'nodejs';\n\n /** php. */\n PHP: 'php';\n\n /** python. */\n PYTHON: 'python';\n\n /** ruby. */\n RUBY: 'ruby';\n\n /** webjs. */\n WEBJS: 'webjs';\n};\n\n/**\n * The constant map of values for TelemetrySdkLanguageValues.\n * @deprecated Use the TELEMETRYSDKLANGUAGEVALUES_XXXXX constants rather than the TelemetrySdkLanguageValues.XXXXX for bundle minification.\n */\nexport const TelemetrySdkLanguageValues: TelemetrySdkLanguageValues =\n /*#__PURE__*/ createConstMap([\n TMP_TELEMETRYSDKLANGUAGEVALUES_CPP,\n TMP_TELEMETRYSDKLANGUAGEVALUES_DOTNET,\n TMP_TELEMETRYSDKLANGUAGEVALUES_ERLANG,\n TMP_TELEMETRYSDKLANGUAGEVALUES_GO,\n TMP_TELEMETRYSDKLANGUAGEVALUES_JAVA,\n TMP_TELEMETRYSDKLANGUAGEVALUES_NODEJS,\n TMP_TELEMETRYSDKLANGUAGEVALUES_PHP,\n TMP_TELEMETRYSDKLANGUAGEVALUES_PYTHON,\n TMP_TELEMETRYSDKLANGUAGEVALUES_RUBY,\n TMP_TELEMETRYSDKLANGUAGEVALUES_WEBJS,\n ]);\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * Creates a const map from the given values\n * @param values - An array of values to be used as keys and values in the map.\n * @returns A populated version of the map with the values and keys derived from the values.\n */\n/*#__NO_SIDE_EFFECTS__*/\nexport function createConstMap(values: Array): T {\n // eslint-disable-next-line prefer-const, @typescript-eslint/no-explicit-any\n let res: any = {};\n const len = values.length;\n for (let lp = 0; lp < len; lp++) {\n const val = values[lp];\n if (val) {\n res[String(val).toUpperCase().replace(/[-.]/g, '_')] = val;\n }\n }\n\n return res as T;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* eslint-disable no-restricted-syntax --\n * These re-exports are only of constants, only one-level deep at this point,\n * and should not cause problems for tree-shakers.\n */\nexport * from './SemanticAttributes';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* eslint-disable no-restricted-syntax --\n * These re-exports are only of constants, only one-level deep at this point,\n * and should not cause problems for tree-shakers.\n */\nexport * from './SemanticResourceAttributes';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* eslint-disable no-restricted-syntax --\n * These re-exports are only of constants, only two-levels deep, and\n * should not cause problems for tree-shakers.\n */\n\n// Deprecated. These are kept around for compatibility purposes\nexport * from './trace';\nexport * from './resource';\n\n// Use these instead\nexport * from './stable_attributes';\nexport * from './stable_metrics';\nexport * from './stable_events';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createConstMap } from '../internal/utils';\n\n//----------------------------------------------------------------------------------------------------------\n// DO NOT EDIT, this is an Auto-generated file from scripts/semconv/templates//templates/SemanticAttributes.ts.j2\n//----------------------------------------------------------------------------------------------------------\n\n//----------------------------------------------------------------------------------------------------------\n// Constant values for SemanticAttributes\n//----------------------------------------------------------------------------------------------------------\n\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_AWS_LAMBDA_INVOKED_ARN = 'aws.lambda.invoked_arn';\nconst TMP_DB_SYSTEM = 'db.system';\nconst TMP_DB_CONNECTION_STRING = 'db.connection_string';\nconst TMP_DB_USER = 'db.user';\nconst TMP_DB_JDBC_DRIVER_CLASSNAME = 'db.jdbc.driver_classname';\nconst TMP_DB_NAME = 'db.name';\nconst TMP_DB_STATEMENT = 'db.statement';\nconst TMP_DB_OPERATION = 'db.operation';\nconst TMP_DB_MSSQL_INSTANCE_NAME = 'db.mssql.instance_name';\nconst TMP_DB_CASSANDRA_KEYSPACE = 'db.cassandra.keyspace';\nconst TMP_DB_CASSANDRA_PAGE_SIZE = 'db.cassandra.page_size';\nconst TMP_DB_CASSANDRA_CONSISTENCY_LEVEL = 'db.cassandra.consistency_level';\nconst TMP_DB_CASSANDRA_TABLE = 'db.cassandra.table';\nconst TMP_DB_CASSANDRA_IDEMPOTENCE = 'db.cassandra.idempotence';\nconst TMP_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT =\n 'db.cassandra.speculative_execution_count';\nconst TMP_DB_CASSANDRA_COORDINATOR_ID = 'db.cassandra.coordinator.id';\nconst TMP_DB_CASSANDRA_COORDINATOR_DC = 'db.cassandra.coordinator.dc';\nconst TMP_DB_HBASE_NAMESPACE = 'db.hbase.namespace';\nconst TMP_DB_REDIS_DATABASE_INDEX = 'db.redis.database_index';\nconst TMP_DB_MONGODB_COLLECTION = 'db.mongodb.collection';\nconst TMP_DB_SQL_TABLE = 'db.sql.table';\nconst TMP_EXCEPTION_TYPE = 'exception.type';\nconst TMP_EXCEPTION_MESSAGE = 'exception.message';\nconst TMP_EXCEPTION_STACKTRACE = 'exception.stacktrace';\nconst TMP_EXCEPTION_ESCAPED = 'exception.escaped';\nconst TMP_FAAS_TRIGGER = 'faas.trigger';\nconst TMP_FAAS_EXECUTION = 'faas.execution';\nconst TMP_FAAS_DOCUMENT_COLLECTION = 'faas.document.collection';\nconst TMP_FAAS_DOCUMENT_OPERATION = 'faas.document.operation';\nconst TMP_FAAS_DOCUMENT_TIME = 'faas.document.time';\nconst TMP_FAAS_DOCUMENT_NAME = 'faas.document.name';\nconst TMP_FAAS_TIME = 'faas.time';\nconst TMP_FAAS_CRON = 'faas.cron';\nconst TMP_FAAS_COLDSTART = 'faas.coldstart';\nconst TMP_FAAS_INVOKED_NAME = 'faas.invoked_name';\nconst TMP_FAAS_INVOKED_PROVIDER = 'faas.invoked_provider';\nconst TMP_FAAS_INVOKED_REGION = 'faas.invoked_region';\nconst TMP_NET_TRANSPORT = 'net.transport';\nconst TMP_NET_PEER_IP = 'net.peer.ip';\nconst TMP_NET_PEER_PORT = 'net.peer.port';\nconst TMP_NET_PEER_NAME = 'net.peer.name';\nconst TMP_NET_HOST_IP = 'net.host.ip';\nconst TMP_NET_HOST_PORT = 'net.host.port';\nconst TMP_NET_HOST_NAME = 'net.host.name';\nconst TMP_NET_HOST_CONNECTION_TYPE = 'net.host.connection.type';\nconst TMP_NET_HOST_CONNECTION_SUBTYPE = 'net.host.connection.subtype';\nconst TMP_NET_HOST_CARRIER_NAME = 'net.host.carrier.name';\nconst TMP_NET_HOST_CARRIER_MCC = 'net.host.carrier.mcc';\nconst TMP_NET_HOST_CARRIER_MNC = 'net.host.carrier.mnc';\nconst TMP_NET_HOST_CARRIER_ICC = 'net.host.carrier.icc';\nconst TMP_PEER_SERVICE = 'peer.service';\nconst TMP_ENDUSER_ID = 'enduser.id';\nconst TMP_ENDUSER_ROLE = 'enduser.role';\nconst TMP_ENDUSER_SCOPE = 'enduser.scope';\nconst TMP_THREAD_ID = 'thread.id';\nconst TMP_THREAD_NAME = 'thread.name';\nconst TMP_CODE_FUNCTION = 'code.function';\nconst TMP_CODE_NAMESPACE = 'code.namespace';\nconst TMP_CODE_FILEPATH = 'code.filepath';\nconst TMP_CODE_LINENO = 'code.lineno';\nconst TMP_HTTP_METHOD = 'http.method';\nconst TMP_HTTP_URL = 'http.url';\nconst TMP_HTTP_TARGET = 'http.target';\nconst TMP_HTTP_HOST = 'http.host';\nconst TMP_HTTP_SCHEME = 'http.scheme';\nconst TMP_HTTP_STATUS_CODE = 'http.status_code';\nconst TMP_HTTP_FLAVOR = 'http.flavor';\nconst TMP_HTTP_USER_AGENT = 'http.user_agent';\nconst TMP_HTTP_REQUEST_CONTENT_LENGTH = 'http.request_content_length';\nconst TMP_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED =\n 'http.request_content_length_uncompressed';\nconst TMP_HTTP_RESPONSE_CONTENT_LENGTH = 'http.response_content_length';\nconst TMP_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED =\n 'http.response_content_length_uncompressed';\nconst TMP_HTTP_SERVER_NAME = 'http.server_name';\nconst TMP_HTTP_ROUTE = 'http.route';\nconst TMP_HTTP_CLIENT_IP = 'http.client_ip';\nconst TMP_AWS_DYNAMODB_TABLE_NAMES = 'aws.dynamodb.table_names';\nconst TMP_AWS_DYNAMODB_CONSUMED_CAPACITY = 'aws.dynamodb.consumed_capacity';\nconst TMP_AWS_DYNAMODB_ITEM_COLLECTION_METRICS =\n 'aws.dynamodb.item_collection_metrics';\nconst TMP_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY =\n 'aws.dynamodb.provisioned_read_capacity';\nconst TMP_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY =\n 'aws.dynamodb.provisioned_write_capacity';\nconst TMP_AWS_DYNAMODB_CONSISTENT_READ = 'aws.dynamodb.consistent_read';\nconst TMP_AWS_DYNAMODB_PROJECTION = 'aws.dynamodb.projection';\nconst TMP_AWS_DYNAMODB_LIMIT = 'aws.dynamodb.limit';\nconst TMP_AWS_DYNAMODB_ATTRIBUTES_TO_GET = 'aws.dynamodb.attributes_to_get';\nconst TMP_AWS_DYNAMODB_INDEX_NAME = 'aws.dynamodb.index_name';\nconst TMP_AWS_DYNAMODB_SELECT = 'aws.dynamodb.select';\nconst TMP_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES =\n 'aws.dynamodb.global_secondary_indexes';\nconst TMP_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES =\n 'aws.dynamodb.local_secondary_indexes';\nconst TMP_AWS_DYNAMODB_EXCLUSIVE_START_TABLE =\n 'aws.dynamodb.exclusive_start_table';\nconst TMP_AWS_DYNAMODB_TABLE_COUNT = 'aws.dynamodb.table_count';\nconst TMP_AWS_DYNAMODB_SCAN_FORWARD = 'aws.dynamodb.scan_forward';\nconst TMP_AWS_DYNAMODB_SEGMENT = 'aws.dynamodb.segment';\nconst TMP_AWS_DYNAMODB_TOTAL_SEGMENTS = 'aws.dynamodb.total_segments';\nconst TMP_AWS_DYNAMODB_COUNT = 'aws.dynamodb.count';\nconst TMP_AWS_DYNAMODB_SCANNED_COUNT = 'aws.dynamodb.scanned_count';\nconst TMP_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS =\n 'aws.dynamodb.attribute_definitions';\nconst TMP_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES =\n 'aws.dynamodb.global_secondary_index_updates';\nconst TMP_MESSAGING_SYSTEM = 'messaging.system';\nconst TMP_MESSAGING_DESTINATION = 'messaging.destination';\nconst TMP_MESSAGING_DESTINATION_KIND = 'messaging.destination_kind';\nconst TMP_MESSAGING_TEMP_DESTINATION = 'messaging.temp_destination';\nconst TMP_MESSAGING_PROTOCOL = 'messaging.protocol';\nconst TMP_MESSAGING_PROTOCOL_VERSION = 'messaging.protocol_version';\nconst TMP_MESSAGING_URL = 'messaging.url';\nconst TMP_MESSAGING_MESSAGE_ID = 'messaging.message_id';\nconst TMP_MESSAGING_CONVERSATION_ID = 'messaging.conversation_id';\nconst TMP_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES =\n 'messaging.message_payload_size_bytes';\nconst TMP_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES =\n 'messaging.message_payload_compressed_size_bytes';\nconst TMP_MESSAGING_OPERATION = 'messaging.operation';\nconst TMP_MESSAGING_CONSUMER_ID = 'messaging.consumer_id';\nconst TMP_MESSAGING_RABBITMQ_ROUTING_KEY = 'messaging.rabbitmq.routing_key';\nconst TMP_MESSAGING_KAFKA_MESSAGE_KEY = 'messaging.kafka.message_key';\nconst TMP_MESSAGING_KAFKA_CONSUMER_GROUP = 'messaging.kafka.consumer_group';\nconst TMP_MESSAGING_KAFKA_CLIENT_ID = 'messaging.kafka.client_id';\nconst TMP_MESSAGING_KAFKA_PARTITION = 'messaging.kafka.partition';\nconst TMP_MESSAGING_KAFKA_TOMBSTONE = 'messaging.kafka.tombstone';\nconst TMP_RPC_SYSTEM = 'rpc.system';\nconst TMP_RPC_SERVICE = 'rpc.service';\nconst TMP_RPC_METHOD = 'rpc.method';\nconst TMP_RPC_GRPC_STATUS_CODE = 'rpc.grpc.status_code';\nconst TMP_RPC_JSONRPC_VERSION = 'rpc.jsonrpc.version';\nconst TMP_RPC_JSONRPC_REQUEST_ID = 'rpc.jsonrpc.request_id';\nconst TMP_RPC_JSONRPC_ERROR_CODE = 'rpc.jsonrpc.error_code';\nconst TMP_RPC_JSONRPC_ERROR_MESSAGE = 'rpc.jsonrpc.error_message';\nconst TMP_MESSAGE_TYPE = 'message.type';\nconst TMP_MESSAGE_ID = 'message.id';\nconst TMP_MESSAGE_COMPRESSED_SIZE = 'message.compressed_size';\nconst TMP_MESSAGE_UNCOMPRESSED_SIZE = 'message.uncompressed_size';\n\n/**\n * The full invoked ARN as provided on the `Context` passed to the function (`Lambda-Runtime-Invoked-Function-Arn` header on the `/runtime/invocation/next` applicable).\n *\n * Note: This may be different from `faas.id` if an alias is involved.\n *\n * @deprecated Use ATTR_AWS_LAMBDA_INVOKED_ARN in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_AWS_LAMBDA_INVOKED_ARN = TMP_AWS_LAMBDA_INVOKED_ARN;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use ATTR_DB_SYSTEM in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_DB_SYSTEM = TMP_DB_SYSTEM;\n\n/**\n * The connection string used to connect to the database. It is recommended to remove embedded credentials.\n *\n * @deprecated Use ATTR_DB_CONNECTION_STRING in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_DB_CONNECTION_STRING = TMP_DB_CONNECTION_STRING;\n\n/**\n * Username for accessing the database.\n *\n * @deprecated Use ATTR_DB_USER in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_DB_USER = TMP_DB_USER;\n\n/**\n * The fully-qualified class name of the [Java Database Connectivity (JDBC)](https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/) driver used to connect.\n *\n * @deprecated Use ATTR_DB_JDBC_DRIVER_CLASSNAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_DB_JDBC_DRIVER_CLASSNAME = TMP_DB_JDBC_DRIVER_CLASSNAME;\n\n/**\n * If no [tech-specific attribute](#call-level-attributes-for-specific-technologies) is defined, this attribute is used to report the name of the database being accessed. For commands that switch the database, this should be set to the target database (even if the command fails).\n *\n * Note: In some SQL databases, the database name to be used is called "schema name".\n *\n * @deprecated Use ATTR_DB_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_DB_NAME = TMP_DB_NAME;\n\n/**\n * The database statement being executed.\n *\n * Note: The value may be sanitized to exclude sensitive information.\n *\n * @deprecated Use ATTR_DB_STATEMENT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_DB_STATEMENT = TMP_DB_STATEMENT;\n\n/**\n * The name of the operation being executed, e.g. the [MongoDB command name](https://docs.mongodb.com/manual/reference/command/#database-operations) such as `findAndModify`, or the SQL keyword.\n *\n * Note: When setting this to an SQL keyword, it is not recommended to attempt any client-side parsing of `db.statement` just to get this property, but it should be set if the operation name is provided by the library being instrumented. If the SQL statement has an ambiguous operation, or performs more than one operation, this value may be omitted.\n *\n * @deprecated Use ATTR_DB_OPERATION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_DB_OPERATION = TMP_DB_OPERATION;\n\n/**\n * The Microsoft SQL Server [instance name](https://docs.microsoft.com/en-us/sql/connect/jdbc/building-the-connection-url?view=sql-server-ver15) connecting to. This name is used to determine the port of a named instance.\n *\n * Note: If setting a `db.mssql.instance_name`, `net.peer.port` is no longer required (but still recommended if non-standard).\n *\n * @deprecated Use ATTR_DB_MSSQL_INSTANCE_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_DB_MSSQL_INSTANCE_NAME = TMP_DB_MSSQL_INSTANCE_NAME;\n\n/**\n * The name of the keyspace being accessed. To be used instead of the generic `db.name` attribute.\n *\n * @deprecated Use ATTR_DB_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_DB_CASSANDRA_KEYSPACE = TMP_DB_CASSANDRA_KEYSPACE;\n\n/**\n * The fetch size used for paging, i.e. how many rows will be returned at once.\n *\n * @deprecated Use ATTR_DB_CASSANDRA_PAGE_SIZE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_DB_CASSANDRA_PAGE_SIZE = TMP_DB_CASSANDRA_PAGE_SIZE;\n\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use ATTR_DB_CASSANDRA_CONSISTENCY_LEVEL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_DB_CASSANDRA_CONSISTENCY_LEVEL =\n TMP_DB_CASSANDRA_CONSISTENCY_LEVEL;\n\n/**\n * The name of the primary table that the operation is acting upon, including the schema name (if applicable).\n *\n * Note: This mirrors the db.sql.table attribute but references cassandra rather than sql. It is not recommended to attempt any client-side parsing of `db.statement` just to get this property, but it should be set if it is provided by the library being instrumented. If the operation is acting upon an anonymous table, or more than one table, this value MUST NOT be set.\n *\n * @deprecated Use ATTR_DB_CASSANDRA_TABLE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_DB_CASSANDRA_TABLE = TMP_DB_CASSANDRA_TABLE;\n\n/**\n * Whether or not the query is idempotent.\n *\n * @deprecated Use ATTR_DB_CASSANDRA_IDEMPOTENCE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_DB_CASSANDRA_IDEMPOTENCE = TMP_DB_CASSANDRA_IDEMPOTENCE;\n\n/**\n * The number of times a query was speculatively executed. Not set or `0` if the query was not executed speculatively.\n *\n * @deprecated Use ATTR_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT =\n TMP_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT;\n\n/**\n * The ID of the coordinating node for a query.\n *\n * @deprecated Use ATTR_DB_CASSANDRA_COORDINATOR_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_DB_CASSANDRA_COORDINATOR_ID =\n TMP_DB_CASSANDRA_COORDINATOR_ID;\n\n/**\n * The data center of the coordinating node for a query.\n *\n * @deprecated Use ATTR_DB_CASSANDRA_COORDINATOR_DC in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_DB_CASSANDRA_COORDINATOR_DC =\n TMP_DB_CASSANDRA_COORDINATOR_DC;\n\n/**\n * The [HBase namespace](https://hbase.apache.org/book.html#_namespace) being accessed. To be used instead of the generic `db.name` attribute.\n *\n * @deprecated Use ATTR_DB_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_DB_HBASE_NAMESPACE = TMP_DB_HBASE_NAMESPACE;\n\n/**\n * The index of the database being accessed as used in the [`SELECT` command](https://redis.io/commands/select), provided as an integer. To be used instead of the generic `db.name` attribute.\n *\n * @deprecated Use ATTR_DB_REDIS_DATABASE_INDEX in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_DB_REDIS_DATABASE_INDEX = TMP_DB_REDIS_DATABASE_INDEX;\n\n/**\n * The collection being accessed within the database stated in `db.name`.\n *\n * @deprecated Use ATTR_DB_MONGODB_COLLECTION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_DB_MONGODB_COLLECTION = TMP_DB_MONGODB_COLLECTION;\n\n/**\n * The name of the primary table that the operation is acting upon, including the schema name (if applicable).\n *\n * Note: It is not recommended to attempt any client-side parsing of `db.statement` just to get this property, but it should be set if it is provided by the library being instrumented. If the operation is acting upon an anonymous table, or more than one table, this value MUST NOT be set.\n *\n * @deprecated Use ATTR_DB_SQL_TABLE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_DB_SQL_TABLE = TMP_DB_SQL_TABLE;\n\n/**\n * The type of the exception (its fully-qualified class name, if applicable). The dynamic type of the exception should be preferred over the static type in languages that support it.\n *\n * @deprecated Use ATTR_EXCEPTION_TYPE.\n */\nexport const SEMATTRS_EXCEPTION_TYPE = TMP_EXCEPTION_TYPE;\n\n/**\n * The exception message.\n *\n * @deprecated Use ATTR_EXCEPTION_MESSAGE.\n */\nexport const SEMATTRS_EXCEPTION_MESSAGE = TMP_EXCEPTION_MESSAGE;\n\n/**\n * A stacktrace as a string in the natural representation for the language runtime. The representation is to be determined and documented by each language SIG.\n *\n * @deprecated Use ATTR_EXCEPTION_STACKTRACE.\n */\nexport const SEMATTRS_EXCEPTION_STACKTRACE = TMP_EXCEPTION_STACKTRACE;\n\n/**\n* SHOULD be set to true if the exception event is recorded at a point where it is known that the exception is escaping the scope of the span.\n*\n* Note: An exception is considered to have escaped (or left) the scope of a span,\nif that span is ended while the exception is still logically "in flight".\nThis may be actually "in flight" in some languages (e.g. if the exception\nis passed to a Context manager's `__exit__` method in Python) but will\nusually be caught at the point of recording the exception in most languages.\n\nIt is usually not possible to determine at the point where an exception is thrown\nwhether it will escape the scope of a span.\nHowever, it is trivial to know that an exception\nwill escape, if one checks for an active exception just before ending the span,\nas done in the [example above](#exception-end-example).\n\nIt follows that an exception may still escape the scope of the span\neven if the `exception.escaped` attribute was not set or set to false,\nsince the event might have been recorded at a time where it was not\nclear whether the exception will escape.\n*\n* @deprecated Use ATTR_EXCEPTION_ESCAPED.\n*/\nexport const SEMATTRS_EXCEPTION_ESCAPED = TMP_EXCEPTION_ESCAPED;\n\n/**\n * Type of the trigger on which the function is executed.\n *\n * @deprecated Use ATTR_FAAS_TRIGGER in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_FAAS_TRIGGER = TMP_FAAS_TRIGGER;\n\n/**\n * The execution ID of the current function execution.\n *\n * @deprecated Use ATTR_FAAS_INVOCATION_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_FAAS_EXECUTION = TMP_FAAS_EXECUTION;\n\n/**\n * The name of the source on which the triggering operation was performed. For example, in Cloud Storage or S3 corresponds to the bucket name, and in Cosmos DB to the database name.\n *\n * @deprecated Use ATTR_FAAS_DOCUMENT_COLLECTION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_FAAS_DOCUMENT_COLLECTION = TMP_FAAS_DOCUMENT_COLLECTION;\n\n/**\n * Describes the type of the operation that was performed on the data.\n *\n * @deprecated Use ATTR_FAAS_DOCUMENT_OPERATION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_FAAS_DOCUMENT_OPERATION = TMP_FAAS_DOCUMENT_OPERATION;\n\n/**\n * A string containing the time when the data was accessed in the [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).\n *\n * @deprecated Use ATTR_FAAS_DOCUMENT_TIME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_FAAS_DOCUMENT_TIME = TMP_FAAS_DOCUMENT_TIME;\n\n/**\n * The document name/table subjected to the operation. For example, in Cloud Storage or S3 is the name of the file, and in Cosmos DB the table name.\n *\n * @deprecated Use ATTR_FAAS_DOCUMENT_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_FAAS_DOCUMENT_NAME = TMP_FAAS_DOCUMENT_NAME;\n\n/**\n * A string containing the function invocation time in the [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).\n *\n * @deprecated Use ATTR_FAAS_TIME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_FAAS_TIME = TMP_FAAS_TIME;\n\n/**\n * A string containing the schedule period as [Cron Expression](https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm).\n *\n * @deprecated Use ATTR_FAAS_CRON in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_FAAS_CRON = TMP_FAAS_CRON;\n\n/**\n * A boolean that is true if the serverless function is executed for the first time (aka cold-start).\n *\n * @deprecated Use ATTR_FAAS_COLDSTART in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_FAAS_COLDSTART = TMP_FAAS_COLDSTART;\n\n/**\n * The name of the invoked function.\n *\n * Note: SHOULD be equal to the `faas.name` resource attribute of the invoked function.\n *\n * @deprecated Use ATTR_FAAS_INVOKED_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_FAAS_INVOKED_NAME = TMP_FAAS_INVOKED_NAME;\n\n/**\n * The cloud provider of the invoked function.\n *\n * Note: SHOULD be equal to the `cloud.provider` resource attribute of the invoked function.\n *\n * @deprecated Use ATTR_FAAS_INVOKED_PROVIDER in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_FAAS_INVOKED_PROVIDER = TMP_FAAS_INVOKED_PROVIDER;\n\n/**\n * The cloud region of the invoked function.\n *\n * Note: SHOULD be equal to the `cloud.region` resource attribute of the invoked function.\n *\n * @deprecated Use ATTR_FAAS_INVOKED_REGION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_FAAS_INVOKED_REGION = TMP_FAAS_INVOKED_REGION;\n\n/**\n * Transport protocol used. See note below.\n *\n * @deprecated Use ATTR_NET_TRANSPORT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_NET_TRANSPORT = TMP_NET_TRANSPORT;\n\n/**\n * Remote address of the peer (dotted decimal for IPv4 or [RFC5952](https://tools.ietf.org/html/rfc5952) for IPv6).\n *\n * @deprecated Use ATTR_NET_PEER_IP in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_NET_PEER_IP = TMP_NET_PEER_IP;\n\n/**\n * Remote port number.\n *\n * @deprecated Use ATTR_NET_PEER_PORT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_NET_PEER_PORT = TMP_NET_PEER_PORT;\n\n/**\n * Remote hostname or similar, see note below.\n *\n * @deprecated Use ATTR_NET_PEER_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_NET_PEER_NAME = TMP_NET_PEER_NAME;\n\n/**\n * Like `net.peer.ip` but for the host IP. Useful in case of a multi-IP host.\n *\n * @deprecated Use ATTR_NET_HOST_IP in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_NET_HOST_IP = TMP_NET_HOST_IP;\n\n/**\n * Like `net.peer.port` but for the host port.\n *\n * @deprecated Use ATTR_NET_HOST_PORT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_NET_HOST_PORT = TMP_NET_HOST_PORT;\n\n/**\n * Local hostname or similar, see note below.\n *\n * @deprecated Use ATTR_NET_HOST_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_NET_HOST_NAME = TMP_NET_HOST_NAME;\n\n/**\n * The internet connection type currently being used by the host.\n *\n * @deprecated Use ATTR_NETWORK_CONNECTION_TYPE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_NET_HOST_CONNECTION_TYPE = TMP_NET_HOST_CONNECTION_TYPE;\n\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use ATTR_NETWORK_CONNECTION_SUBTYPE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_NET_HOST_CONNECTION_SUBTYPE =\n TMP_NET_HOST_CONNECTION_SUBTYPE;\n\n/**\n * The name of the mobile carrier.\n *\n * @deprecated Use ATTR_NETWORK_CARRIER_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_NET_HOST_CARRIER_NAME = TMP_NET_HOST_CARRIER_NAME;\n\n/**\n * The mobile carrier country code.\n *\n * @deprecated Use ATTR_NETWORK_CARRIER_MCC in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_NET_HOST_CARRIER_MCC = TMP_NET_HOST_CARRIER_MCC;\n\n/**\n * The mobile carrier network code.\n *\n * @deprecated Use ATTR_NETWORK_CARRIER_MNC in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_NET_HOST_CARRIER_MNC = TMP_NET_HOST_CARRIER_MNC;\n\n/**\n * The ISO 3166-1 alpha-2 2-character country code associated with the mobile carrier network.\n *\n * @deprecated Use ATTR_NETWORK_CARRIER_ICC in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_NET_HOST_CARRIER_ICC = TMP_NET_HOST_CARRIER_ICC;\n\n/**\n * The [`service.name`](../../resource/semantic_conventions/README.md#service) of the remote service. SHOULD be equal to the actual `service.name` resource attribute of the remote service if any.\n *\n * @deprecated Use ATTR_PEER_SERVICE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_PEER_SERVICE = TMP_PEER_SERVICE;\n\n/**\n * Username or client_id extracted from the access token or [Authorization](https://tools.ietf.org/html/rfc7235#section-4.2) header in the inbound request from outside the system.\n *\n * @deprecated Use ATTR_ENDUSER_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_ENDUSER_ID = TMP_ENDUSER_ID;\n\n/**\n * Actual/assumed role the client is making the request under extracted from token or application security context.\n *\n * @deprecated Use ATTR_ENDUSER_ROLE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_ENDUSER_ROLE = TMP_ENDUSER_ROLE;\n\n/**\n * Scopes or granted authorities the client currently possesses extracted from token or application security context. The value would come from the scope associated with an [OAuth 2.0 Access Token](https://tools.ietf.org/html/rfc6749#section-3.3) or an attribute value in a [SAML 2.0 Assertion](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html).\n *\n * @deprecated Use ATTR_ENDUSER_SCOPE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_ENDUSER_SCOPE = TMP_ENDUSER_SCOPE;\n\n/**\n * Current "managed" thread ID (as opposed to OS thread ID).\n *\n * @deprecated Use ATTR_THREAD_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_THREAD_ID = TMP_THREAD_ID;\n\n/**\n * Current thread name.\n *\n * @deprecated Use ATTR_THREAD_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_THREAD_NAME = TMP_THREAD_NAME;\n\n/**\n * The method or function name, or equivalent (usually rightmost part of the code unit's name).\n *\n * @deprecated Use ATTR_CODE_FUNCTION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_CODE_FUNCTION = TMP_CODE_FUNCTION;\n\n/**\n * The "namespace" within which `code.function` is defined. Usually the qualified class or module name, such that `code.namespace` + some separator + `code.function` form a unique identifier for the code unit.\n *\n * @deprecated Use ATTR_CODE_NAMESPACE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_CODE_NAMESPACE = TMP_CODE_NAMESPACE;\n\n/**\n * The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path).\n *\n * @deprecated Use ATTR_CODE_FILEPATH in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_CODE_FILEPATH = TMP_CODE_FILEPATH;\n\n/**\n * The line number in `code.filepath` best representing the operation. It SHOULD point within the code unit named in `code.function`.\n *\n * @deprecated Use ATTR_CODE_LINENO in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_CODE_LINENO = TMP_CODE_LINENO;\n\n/**\n * HTTP request method.\n *\n * @deprecated Use ATTR_HTTP_METHOD in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_HTTP_METHOD = TMP_HTTP_METHOD;\n\n/**\n * Full HTTP request URL in the form `scheme://host[:port]/path?query[#fragment]`. Usually the fragment is not transmitted over HTTP, but if it is known, it should be included nevertheless.\n *\n * Note: `http.url` MUST NOT contain credentials passed via URL in form of `https://username:password@www.example.com/`. In such case the attribute's value should be `https://www.example.com/`.\n *\n * @deprecated Use ATTR_HTTP_URL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_HTTP_URL = TMP_HTTP_URL;\n\n/**\n * The full request target as passed in a HTTP request line or equivalent.\n *\n * @deprecated Use ATTR_HTTP_TARGET in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_HTTP_TARGET = TMP_HTTP_TARGET;\n\n/**\n * The value of the [HTTP host header](https://tools.ietf.org/html/rfc7230#section-5.4). An empty Host header should also be reported, see note.\n *\n * Note: When the header is present but empty the attribute SHOULD be set to the empty string. Note that this is a valid situation that is expected in certain cases, according the aforementioned [section of RFC 7230](https://tools.ietf.org/html/rfc7230#section-5.4). When the header is not set the attribute MUST NOT be set.\n *\n * @deprecated Use ATTR_HTTP_HOST in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_HTTP_HOST = TMP_HTTP_HOST;\n\n/**\n * The URI scheme identifying the used protocol.\n *\n * @deprecated Use ATTR_HTTP_SCHEME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_HTTP_SCHEME = TMP_HTTP_SCHEME;\n\n/**\n * [HTTP response status code](https://tools.ietf.org/html/rfc7231#section-6).\n *\n * @deprecated Use ATTR_HTTP_STATUS_CODE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_HTTP_STATUS_CODE = TMP_HTTP_STATUS_CODE;\n\n/**\n * Kind of HTTP protocol used.\n *\n * Note: If `net.transport` is not specified, it can be assumed to be `IP.TCP` except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed.\n *\n * @deprecated Use ATTR_HTTP_FLAVOR in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_HTTP_FLAVOR = TMP_HTTP_FLAVOR;\n\n/**\n * Value of the [HTTP User-Agent](https://tools.ietf.org/html/rfc7231#section-5.5.3) header sent by the client.\n *\n * @deprecated Use ATTR_HTTP_USER_AGENT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_HTTP_USER_AGENT = TMP_HTTP_USER_AGENT;\n\n/**\n * The size of the request payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the [Content-Length](https://tools.ietf.org/html/rfc7230#section-3.3.2) header. For requests using transport encoding, this should be the compressed size.\n *\n * @deprecated Use ATTR_HTTP_REQUEST_CONTENT_LENGTH in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH =\n TMP_HTTP_REQUEST_CONTENT_LENGTH;\n\n/**\n * The size of the uncompressed request payload body after transport decoding. Not set if transport encoding not used.\n *\n * @deprecated Use ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED =\n TMP_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED;\n\n/**\n * The size of the response payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the [Content-Length](https://tools.ietf.org/html/rfc7230#section-3.3.2) header. For requests using transport encoding, this should be the compressed size.\n *\n * @deprecated Use ATTR_HTTP_RESPONSE_CONTENT_LENGTH in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH =\n TMP_HTTP_RESPONSE_CONTENT_LENGTH;\n\n/**\n * The size of the uncompressed response payload body after transport decoding. Not set if transport encoding not used.\n *\n * @deprecated Use ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED =\n TMP_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED;\n\n/**\n * The primary server name of the matched virtual host. This should be obtained via configuration. If no such configuration can be obtained, this attribute MUST NOT be set ( `net.host.name` should be used instead).\n *\n * Note: `http.url` is usually not readily available on the server side but would have to be assembled in a cumbersome and sometimes lossy process from other information (see e.g. open-telemetry/opentelemetry-python/pull/148). It is thus preferred to supply the raw data that is available.\n *\n * @deprecated Use ATTR_HTTP_SERVER_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_HTTP_SERVER_NAME = TMP_HTTP_SERVER_NAME;\n\n/**\n * The matched route (path template).\n *\n * @deprecated Use ATTR_HTTP_ROUTE.\n */\nexport const SEMATTRS_HTTP_ROUTE = TMP_HTTP_ROUTE;\n\n/**\n* The IP address of the original client behind all proxies, if known (e.g. from [X-Forwarded-For](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For)).\n*\n* Note: This is not necessarily the same as `net.peer.ip`, which would\nidentify the network-level peer, which may be a proxy.\n\nThis attribute should be set when a source of information different\nfrom the one used for `net.peer.ip`, is available even if that other\nsource just confirms the same value as `net.peer.ip`.\nRationale: For `net.peer.ip`, one typically does not know if it\ncomes from a proxy, reverse proxy, or the actual client. Setting\n`http.client_ip` when it's the same as `net.peer.ip` means that\none is at least somewhat confident that the address is not that of\nthe closest proxy.\n*\n* @deprecated Use ATTR_HTTP_CLIENT_IP in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n*/\nexport const SEMATTRS_HTTP_CLIENT_IP = TMP_HTTP_CLIENT_IP;\n\n/**\n * The keys in the `RequestItems` object field.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_TABLE_NAMES in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_AWS_DYNAMODB_TABLE_NAMES = TMP_AWS_DYNAMODB_TABLE_NAMES;\n\n/**\n * The JSON-serialized value of each item in the `ConsumedCapacity` response field.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_CONSUMED_CAPACITY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_AWS_DYNAMODB_CONSUMED_CAPACITY =\n TMP_AWS_DYNAMODB_CONSUMED_CAPACITY;\n\n/**\n * The JSON-serialized value of the `ItemCollectionMetrics` response field.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_ITEM_COLLECTION_METRICS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_AWS_DYNAMODB_ITEM_COLLECTION_METRICS =\n TMP_AWS_DYNAMODB_ITEM_COLLECTION_METRICS;\n\n/**\n * The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY =\n TMP_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY;\n\n/**\n * The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY =\n TMP_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY;\n\n/**\n * The value of the `ConsistentRead` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_CONSISTENT_READ in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_AWS_DYNAMODB_CONSISTENT_READ =\n TMP_AWS_DYNAMODB_CONSISTENT_READ;\n\n/**\n * The value of the `ProjectionExpression` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_PROJECTION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_AWS_DYNAMODB_PROJECTION = TMP_AWS_DYNAMODB_PROJECTION;\n\n/**\n * The value of the `Limit` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_LIMIT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_AWS_DYNAMODB_LIMIT = TMP_AWS_DYNAMODB_LIMIT;\n\n/**\n * The value of the `AttributesToGet` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_ATTRIBUTES_TO_GET in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_AWS_DYNAMODB_ATTRIBUTES_TO_GET =\n TMP_AWS_DYNAMODB_ATTRIBUTES_TO_GET;\n\n/**\n * The value of the `IndexName` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_INDEX_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_AWS_DYNAMODB_INDEX_NAME = TMP_AWS_DYNAMODB_INDEX_NAME;\n\n/**\n * The value of the `Select` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_SELECT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_AWS_DYNAMODB_SELECT = TMP_AWS_DYNAMODB_SELECT;\n\n/**\n * The JSON-serialized value of each item of the `GlobalSecondaryIndexes` request field.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES =\n TMP_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES;\n\n/**\n * The JSON-serialized value of each item of the `LocalSecondaryIndexes` request field.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES =\n TMP_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES;\n\n/**\n * The value of the `ExclusiveStartTableName` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_EXCLUSIVE_START_TABLE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_AWS_DYNAMODB_EXCLUSIVE_START_TABLE =\n TMP_AWS_DYNAMODB_EXCLUSIVE_START_TABLE;\n\n/**\n * The the number of items in the `TableNames` response parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_TABLE_COUNT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_AWS_DYNAMODB_TABLE_COUNT = TMP_AWS_DYNAMODB_TABLE_COUNT;\n\n/**\n * The value of the `ScanIndexForward` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_SCAN_FORWARD in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_AWS_DYNAMODB_SCAN_FORWARD = TMP_AWS_DYNAMODB_SCAN_FORWARD;\n\n/**\n * The value of the `Segment` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_SEGMENT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_AWS_DYNAMODB_SEGMENT = TMP_AWS_DYNAMODB_SEGMENT;\n\n/**\n * The value of the `TotalSegments` request parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_TOTAL_SEGMENTS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_AWS_DYNAMODB_TOTAL_SEGMENTS =\n TMP_AWS_DYNAMODB_TOTAL_SEGMENTS;\n\n/**\n * The value of the `Count` response parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_COUNT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_AWS_DYNAMODB_COUNT = TMP_AWS_DYNAMODB_COUNT;\n\n/**\n * The value of the `ScannedCount` response parameter.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_SCANNED_COUNT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_AWS_DYNAMODB_SCANNED_COUNT =\n TMP_AWS_DYNAMODB_SCANNED_COUNT;\n\n/**\n * The JSON-serialized value of each item in the `AttributeDefinitions` request field.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS =\n TMP_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS;\n\n/**\n * The JSON-serialized value of each item in the the `GlobalSecondaryIndexUpdates` request field.\n *\n * @deprecated Use ATTR_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES =\n TMP_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES;\n\n/**\n * A string identifying the messaging system.\n *\n * @deprecated Use ATTR_MESSAGING_SYSTEM in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_MESSAGING_SYSTEM = TMP_MESSAGING_SYSTEM;\n\n/**\n * The message destination name. This might be equal to the span name but is required nevertheless.\n *\n * @deprecated Use ATTR_MESSAGING_DESTINATION_NAME in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_MESSAGING_DESTINATION = TMP_MESSAGING_DESTINATION;\n\n/**\n * The kind of message destination.\n *\n * @deprecated Removed in semconv v1.20.0.\n */\nexport const SEMATTRS_MESSAGING_DESTINATION_KIND =\n TMP_MESSAGING_DESTINATION_KIND;\n\n/**\n * A boolean that is true if the message destination is temporary.\n *\n * @deprecated Use ATTR_MESSAGING_DESTINATION_TEMPORARY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_MESSAGING_TEMP_DESTINATION =\n TMP_MESSAGING_TEMP_DESTINATION;\n\n/**\n * The name of the transport protocol.\n *\n * @deprecated Use ATTR_NETWORK_PROTOCOL_NAME.\n */\nexport const SEMATTRS_MESSAGING_PROTOCOL = TMP_MESSAGING_PROTOCOL;\n\n/**\n * The version of the transport protocol.\n *\n * @deprecated Use ATTR_NETWORK_PROTOCOL_VERSION.\n */\nexport const SEMATTRS_MESSAGING_PROTOCOL_VERSION =\n TMP_MESSAGING_PROTOCOL_VERSION;\n\n/**\n * Connection string.\n *\n * @deprecated Removed in semconv v1.17.0.\n */\nexport const SEMATTRS_MESSAGING_URL = TMP_MESSAGING_URL;\n\n/**\n * A value used by the messaging system as an identifier for the message, represented as a string.\n *\n * @deprecated Use ATTR_MESSAGING_MESSAGE_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_MESSAGING_MESSAGE_ID = TMP_MESSAGING_MESSAGE_ID;\n\n/**\n * The [conversation ID](#conversations) identifying the conversation to which the message belongs, represented as a string. Sometimes called "Correlation ID".\n *\n * @deprecated Use ATTR_MESSAGING_MESSAGE_CONVERSATION_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_MESSAGING_CONVERSATION_ID = TMP_MESSAGING_CONVERSATION_ID;\n\n/**\n * The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported.\n *\n * @deprecated Use ATTR_MESSAGING_MESSAGE_BODY_SIZE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES =\n TMP_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES;\n\n/**\n * The compressed size of the message payload in bytes.\n *\n * @deprecated Removed in semconv v1.22.0.\n */\nexport const SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES =\n TMP_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES;\n\n/**\n * A string identifying the kind of message consumption as defined in the [Operation names](#operation-names) section above. If the operation is "send", this attribute MUST NOT be set, since the operation can be inferred from the span kind in that case.\n *\n * @deprecated Use ATTR_MESSAGING_OPERATION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_MESSAGING_OPERATION = TMP_MESSAGING_OPERATION;\n\n/**\n * The identifier for the consumer receiving a message. For Kafka, set it to `{messaging.kafka.consumer_group} - {messaging.kafka.client_id}`, if both are present, or only `messaging.kafka.consumer_group`. For brokers, such as RabbitMQ and Artemis, set it to the `client_id` of the client consuming the message.\n *\n * @deprecated Removed in semconv v1.21.0.\n */\nexport const SEMATTRS_MESSAGING_CONSUMER_ID = TMP_MESSAGING_CONSUMER_ID;\n\n/**\n * RabbitMQ message routing key.\n *\n * @deprecated Use ATTR_MESSAGING_RABBITMQ_DESTINATION_ROUTING_KEY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY =\n TMP_MESSAGING_RABBITMQ_ROUTING_KEY;\n\n/**\n * Message keys in Kafka are used for grouping alike messages to ensure they're processed on the same partition. They differ from `messaging.message_id` in that they're not unique. If the key is `null`, the attribute MUST NOT be set.\n *\n * Note: If the key type is not string, it's string representation has to be supplied for the attribute. If the key has no unambiguous, canonical string form, don't include its value.\n *\n * @deprecated Use ATTR_MESSAGING_KAFKA_MESSAGE_KEY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_MESSAGING_KAFKA_MESSAGE_KEY =\n TMP_MESSAGING_KAFKA_MESSAGE_KEY;\n\n/**\n * Name of the Kafka Consumer Group that is handling the message. Only applies to consumers, not producers.\n *\n * @deprecated Use ATTR_MESSAGING_KAFKA_CONSUMER_GROUP in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_MESSAGING_KAFKA_CONSUMER_GROUP =\n TMP_MESSAGING_KAFKA_CONSUMER_GROUP;\n\n/**\n * Client Id for the Consumer or Producer that is handling the message.\n *\n * @deprecated Use ATTR_MESSAGING_CLIENT_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_MESSAGING_KAFKA_CLIENT_ID = TMP_MESSAGING_KAFKA_CLIENT_ID;\n\n/**\n * Partition the message is sent to.\n *\n * @deprecated Use ATTR_MESSAGING_KAFKA_DESTINATION_PARTITION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_MESSAGING_KAFKA_PARTITION = TMP_MESSAGING_KAFKA_PARTITION;\n\n/**\n * A boolean that is true if the message is a tombstone.\n *\n * @deprecated Use ATTR_MESSAGING_KAFKA_MESSAGE_TOMBSTONE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_MESSAGING_KAFKA_TOMBSTONE = TMP_MESSAGING_KAFKA_TOMBSTONE;\n\n/**\n * A string identifying the remoting system.\n *\n * @deprecated Use ATTR_RPC_SYSTEM in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_RPC_SYSTEM = TMP_RPC_SYSTEM;\n\n/**\n * The full (logical) name of the service being called, including its package name, if applicable.\n *\n * Note: This is the logical name of the service from the RPC interface perspective, which can be different from the name of any implementing class. The `code.namespace` attribute may be used to store the latter (despite the attribute name, it may include a class name; e.g., class with method actually executing the call on the server side, RPC client stub class on the client side).\n *\n * @deprecated Use ATTR_RPC_SERVICE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_RPC_SERVICE = TMP_RPC_SERVICE;\n\n/**\n * The name of the (logical) method being called, must be equal to the $method part in the span name.\n *\n * Note: This is the logical name of the method from the RPC interface perspective, which can be different from the name of any implementing method/function. The `code.function` attribute may be used to store the latter (e.g., method actually executing the call on the server side, RPC client stub method on the client side).\n *\n * @deprecated Use ATTR_RPC_METHOD in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_RPC_METHOD = TMP_RPC_METHOD;\n\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use ATTR_RPC_GRPC_STATUS_CODE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_RPC_GRPC_STATUS_CODE = TMP_RPC_GRPC_STATUS_CODE;\n\n/**\n * Protocol version as in `jsonrpc` property of request/response. Since JSON-RPC 1.0 does not specify this, the value can be omitted.\n *\n * @deprecated Use ATTR_RPC_JSONRPC_VERSION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_RPC_JSONRPC_VERSION = TMP_RPC_JSONRPC_VERSION;\n\n/**\n * `id` property of request or response. Since protocol allows id to be int, string, `null` or missing (for notifications), value is expected to be cast to string for simplicity. Use empty string in case of `null` value. Omit entirely if this is a notification.\n *\n * @deprecated Use ATTR_RPC_JSONRPC_REQUEST_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_RPC_JSONRPC_REQUEST_ID = TMP_RPC_JSONRPC_REQUEST_ID;\n\n/**\n * `error.code` property of response if it is an error response.\n *\n * @deprecated Use ATTR_RPC_JSONRPC_ERROR_CODE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_RPC_JSONRPC_ERROR_CODE = TMP_RPC_JSONRPC_ERROR_CODE;\n\n/**\n * `error.message` property of response if it is an error response.\n *\n * @deprecated Use ATTR_RPC_JSONRPC_ERROR_MESSAGE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_RPC_JSONRPC_ERROR_MESSAGE = TMP_RPC_JSONRPC_ERROR_MESSAGE;\n\n/**\n * Whether this is a received or sent message.\n *\n * @deprecated Use ATTR_MESSAGE_TYPE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_MESSAGE_TYPE = TMP_MESSAGE_TYPE;\n\n/**\n * MUST be calculated as two different counters starting from `1` one for sent messages and one for received message.\n *\n * Note: This way we guarantee that the values will be consistent between different implementations.\n *\n * @deprecated Use ATTR_MESSAGE_ID in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_MESSAGE_ID = TMP_MESSAGE_ID;\n\n/**\n * Compressed size of the message in bytes.\n *\n * @deprecated Use ATTR_MESSAGE_COMPRESSED_SIZE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_MESSAGE_COMPRESSED_SIZE = TMP_MESSAGE_COMPRESSED_SIZE;\n\n/**\n * Uncompressed size of the message in bytes.\n *\n * @deprecated Use ATTR_MESSAGE_UNCOMPRESSED_SIZE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const SEMATTRS_MESSAGE_UNCOMPRESSED_SIZE = TMP_MESSAGE_UNCOMPRESSED_SIZE;\n\n/**\n * Definition of available values for SemanticAttributes\n * This type is used for backward compatibility, you should use the individual exported\n * constants SemanticAttributes_XXXXX rather than the exported constant map. As any single reference\n * to a constant map value will result in all strings being included into your bundle.\n * @deprecated Use the SEMATTRS_XXXXX constants rather than the SemanticAttributes.XXXXX for bundle minification.\n */\nexport type SemanticAttributes = {\n /**\n * The full invoked ARN as provided on the `Context` passed to the function (`Lambda-Runtime-Invoked-Function-Arn` header on the `/runtime/invocation/next` applicable).\n *\n * Note: This may be different from `faas.id` if an alias is involved.\n */\n AWS_LAMBDA_INVOKED_ARN: 'aws.lambda.invoked_arn';\n\n /**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n */\n DB_SYSTEM: 'db.system';\n\n /**\n * The connection string used to connect to the database. It is recommended to remove embedded credentials.\n */\n DB_CONNECTION_STRING: 'db.connection_string';\n\n /**\n * Username for accessing the database.\n */\n DB_USER: 'db.user';\n\n /**\n * The fully-qualified class name of the [Java Database Connectivity (JDBC)](https://docs.oracle.com/javase/8/docs/technotes/guides/jdbc/) driver used to connect.\n */\n DB_JDBC_DRIVER_CLASSNAME: 'db.jdbc.driver_classname';\n\n /**\n * If no [tech-specific attribute](#call-level-attributes-for-specific-technologies) is defined, this attribute is used to report the name of the database being accessed. For commands that switch the database, this should be set to the target database (even if the command fails).\n *\n * Note: In some SQL databases, the database name to be used is called "schema name".\n */\n DB_NAME: 'db.name';\n\n /**\n * The database statement being executed.\n *\n * Note: The value may be sanitized to exclude sensitive information.\n */\n DB_STATEMENT: 'db.statement';\n\n /**\n * The name of the operation being executed, e.g. the [MongoDB command name](https://docs.mongodb.com/manual/reference/command/#database-operations) such as `findAndModify`, or the SQL keyword.\n *\n * Note: When setting this to an SQL keyword, it is not recommended to attempt any client-side parsing of `db.statement` just to get this property, but it should be set if the operation name is provided by the library being instrumented. If the SQL statement has an ambiguous operation, or performs more than one operation, this value may be omitted.\n */\n DB_OPERATION: 'db.operation';\n\n /**\n * The Microsoft SQL Server [instance name](https://docs.microsoft.com/en-us/sql/connect/jdbc/building-the-connection-url?view=sql-server-ver15) connecting to. This name is used to determine the port of a named instance.\n *\n * Note: If setting a `db.mssql.instance_name`, `net.peer.port` is no longer required (but still recommended if non-standard).\n */\n DB_MSSQL_INSTANCE_NAME: 'db.mssql.instance_name';\n\n /**\n * The name of the keyspace being accessed. To be used instead of the generic `db.name` attribute.\n */\n DB_CASSANDRA_KEYSPACE: 'db.cassandra.keyspace';\n\n /**\n * The fetch size used for paging, i.e. how many rows will be returned at once.\n */\n DB_CASSANDRA_PAGE_SIZE: 'db.cassandra.page_size';\n\n /**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n */\n DB_CASSANDRA_CONSISTENCY_LEVEL: 'db.cassandra.consistency_level';\n\n /**\n * The name of the primary table that the operation is acting upon, including the schema name (if applicable).\n *\n * Note: This mirrors the db.sql.table attribute but references cassandra rather than sql. It is not recommended to attempt any client-side parsing of `db.statement` just to get this property, but it should be set if it is provided by the library being instrumented. If the operation is acting upon an anonymous table, or more than one table, this value MUST NOT be set.\n */\n DB_CASSANDRA_TABLE: 'db.cassandra.table';\n\n /**\n * Whether or not the query is idempotent.\n */\n DB_CASSANDRA_IDEMPOTENCE: 'db.cassandra.idempotence';\n\n /**\n * The number of times a query was speculatively executed. Not set or `0` if the query was not executed speculatively.\n */\n DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT: 'db.cassandra.speculative_execution_count';\n\n /**\n * The ID of the coordinating node for a query.\n */\n DB_CASSANDRA_COORDINATOR_ID: 'db.cassandra.coordinator.id';\n\n /**\n * The data center of the coordinating node for a query.\n */\n DB_CASSANDRA_COORDINATOR_DC: 'db.cassandra.coordinator.dc';\n\n /**\n * The [HBase namespace](https://hbase.apache.org/book.html#_namespace) being accessed. To be used instead of the generic `db.name` attribute.\n */\n DB_HBASE_NAMESPACE: 'db.hbase.namespace';\n\n /**\n * The index of the database being accessed as used in the [`SELECT` command](https://redis.io/commands/select), provided as an integer. To be used instead of the generic `db.name` attribute.\n */\n DB_REDIS_DATABASE_INDEX: 'db.redis.database_index';\n\n /**\n * The collection being accessed within the database stated in `db.name`.\n */\n DB_MONGODB_COLLECTION: 'db.mongodb.collection';\n\n /**\n * The name of the primary table that the operation is acting upon, including the schema name (if applicable).\n *\n * Note: It is not recommended to attempt any client-side parsing of `db.statement` just to get this property, but it should be set if it is provided by the library being instrumented. If the operation is acting upon an anonymous table, or more than one table, this value MUST NOT be set.\n */\n DB_SQL_TABLE: 'db.sql.table';\n\n /**\n * The type of the exception (its fully-qualified class name, if applicable). The dynamic type of the exception should be preferred over the static type in languages that support it.\n */\n EXCEPTION_TYPE: 'exception.type';\n\n /**\n * The exception message.\n */\n EXCEPTION_MESSAGE: 'exception.message';\n\n /**\n * A stacktrace as a string in the natural representation for the language runtime. The representation is to be determined and documented by each language SIG.\n */\n EXCEPTION_STACKTRACE: 'exception.stacktrace';\n\n /**\n * SHOULD be set to true if the exception event is recorded at a point where it is known that the exception is escaping the scope of the span.\n *\n * Note: An exception is considered to have escaped (or left) the scope of a span,\nif that span is ended while the exception is still logically "in flight".\nThis may be actually "in flight" in some languages (e.g. if the exception\nis passed to a Context manager's `__exit__` method in Python) but will\nusually be caught at the point of recording the exception in most languages.\n\nIt is usually not possible to determine at the point where an exception is thrown\nwhether it will escape the scope of a span.\nHowever, it is trivial to know that an exception\nwill escape, if one checks for an active exception just before ending the span,\nas done in the [example above](#exception-end-example).\n\nIt follows that an exception may still escape the scope of the span\neven if the `exception.escaped` attribute was not set or set to false,\nsince the event might have been recorded at a time where it was not\nclear whether the exception will escape.\n */\n EXCEPTION_ESCAPED: 'exception.escaped';\n\n /**\n * Type of the trigger on which the function is executed.\n */\n FAAS_TRIGGER: 'faas.trigger';\n\n /**\n * The execution ID of the current function execution.\n */\n FAAS_EXECUTION: 'faas.execution';\n\n /**\n * The name of the source on which the triggering operation was performed. For example, in Cloud Storage or S3 corresponds to the bucket name, and in Cosmos DB to the database name.\n */\n FAAS_DOCUMENT_COLLECTION: 'faas.document.collection';\n\n /**\n * Describes the type of the operation that was performed on the data.\n */\n FAAS_DOCUMENT_OPERATION: 'faas.document.operation';\n\n /**\n * A string containing the time when the data was accessed in the [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).\n */\n FAAS_DOCUMENT_TIME: 'faas.document.time';\n\n /**\n * The document name/table subjected to the operation. For example, in Cloud Storage or S3 is the name of the file, and in Cosmos DB the table name.\n */\n FAAS_DOCUMENT_NAME: 'faas.document.name';\n\n /**\n * A string containing the function invocation time in the [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) format expressed in [UTC](https://www.w3.org/TR/NOTE-datetime).\n */\n FAAS_TIME: 'faas.time';\n\n /**\n * A string containing the schedule period as [Cron Expression](https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm).\n */\n FAAS_CRON: 'faas.cron';\n\n /**\n * A boolean that is true if the serverless function is executed for the first time (aka cold-start).\n */\n FAAS_COLDSTART: 'faas.coldstart';\n\n /**\n * The name of the invoked function.\n *\n * Note: SHOULD be equal to the `faas.name` resource attribute of the invoked function.\n */\n FAAS_INVOKED_NAME: 'faas.invoked_name';\n\n /**\n * The cloud provider of the invoked function.\n *\n * Note: SHOULD be equal to the `cloud.provider` resource attribute of the invoked function.\n */\n FAAS_INVOKED_PROVIDER: 'faas.invoked_provider';\n\n /**\n * The cloud region of the invoked function.\n *\n * Note: SHOULD be equal to the `cloud.region` resource attribute of the invoked function.\n */\n FAAS_INVOKED_REGION: 'faas.invoked_region';\n\n /**\n * Transport protocol used. See note below.\n */\n NET_TRANSPORT: 'net.transport';\n\n /**\n * Remote address of the peer (dotted decimal for IPv4 or [RFC5952](https://tools.ietf.org/html/rfc5952) for IPv6).\n */\n NET_PEER_IP: 'net.peer.ip';\n\n /**\n * Remote port number.\n */\n NET_PEER_PORT: 'net.peer.port';\n\n /**\n * Remote hostname or similar, see note below.\n */\n NET_PEER_NAME: 'net.peer.name';\n\n /**\n * Like `net.peer.ip` but for the host IP. Useful in case of a multi-IP host.\n */\n NET_HOST_IP: 'net.host.ip';\n\n /**\n * Like `net.peer.port` but for the host port.\n */\n NET_HOST_PORT: 'net.host.port';\n\n /**\n * Local hostname or similar, see note below.\n */\n NET_HOST_NAME: 'net.host.name';\n\n /**\n * The internet connection type currently being used by the host.\n */\n NET_HOST_CONNECTION_TYPE: 'net.host.connection.type';\n\n /**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n */\n NET_HOST_CONNECTION_SUBTYPE: 'net.host.connection.subtype';\n\n /**\n * The name of the mobile carrier.\n */\n NET_HOST_CARRIER_NAME: 'net.host.carrier.name';\n\n /**\n * The mobile carrier country code.\n */\n NET_HOST_CARRIER_MCC: 'net.host.carrier.mcc';\n\n /**\n * The mobile carrier network code.\n */\n NET_HOST_CARRIER_MNC: 'net.host.carrier.mnc';\n\n /**\n * The ISO 3166-1 alpha-2 2-character country code associated with the mobile carrier network.\n */\n NET_HOST_CARRIER_ICC: 'net.host.carrier.icc';\n\n /**\n * The [`service.name`](../../resource/semantic_conventions/README.md#service) of the remote service. SHOULD be equal to the actual `service.name` resource attribute of the remote service if any.\n */\n PEER_SERVICE: 'peer.service';\n\n /**\n * Username or client_id extracted from the access token or [Authorization](https://tools.ietf.org/html/rfc7235#section-4.2) header in the inbound request from outside the system.\n */\n ENDUSER_ID: 'enduser.id';\n\n /**\n * Actual/assumed role the client is making the request under extracted from token or application security context.\n */\n ENDUSER_ROLE: 'enduser.role';\n\n /**\n * Scopes or granted authorities the client currently possesses extracted from token or application security context. The value would come from the scope associated with an [OAuth 2.0 Access Token](https://tools.ietf.org/html/rfc6749#section-3.3) or an attribute value in a [SAML 2.0 Assertion](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html).\n */\n ENDUSER_SCOPE: 'enduser.scope';\n\n /**\n * Current "managed" thread ID (as opposed to OS thread ID).\n */\n THREAD_ID: 'thread.id';\n\n /**\n * Current thread name.\n */\n THREAD_NAME: 'thread.name';\n\n /**\n * The method or function name, or equivalent (usually rightmost part of the code unit's name).\n */\n CODE_FUNCTION: 'code.function';\n\n /**\n * The "namespace" within which `code.function` is defined. Usually the qualified class or module name, such that `code.namespace` + some separator + `code.function` form a unique identifier for the code unit.\n */\n CODE_NAMESPACE: 'code.namespace';\n\n /**\n * The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path).\n */\n CODE_FILEPATH: 'code.filepath';\n\n /**\n * The line number in `code.filepath` best representing the operation. It SHOULD point within the code unit named in `code.function`.\n */\n CODE_LINENO: 'code.lineno';\n\n /**\n * HTTP request method.\n */\n HTTP_METHOD: 'http.method';\n\n /**\n * Full HTTP request URL in the form `scheme://host[:port]/path?query[#fragment]`. Usually the fragment is not transmitted over HTTP, but if it is known, it should be included nevertheless.\n *\n * Note: `http.url` MUST NOT contain credentials passed via URL in form of `https://username:password@www.example.com/`. In such case the attribute's value should be `https://www.example.com/`.\n */\n HTTP_URL: 'http.url';\n\n /**\n * The full request target as passed in a HTTP request line or equivalent.\n */\n HTTP_TARGET: 'http.target';\n\n /**\n * The value of the [HTTP host header](https://tools.ietf.org/html/rfc7230#section-5.4). An empty Host header should also be reported, see note.\n *\n * Note: When the header is present but empty the attribute SHOULD be set to the empty string. Note that this is a valid situation that is expected in certain cases, according the aforementioned [section of RFC 7230](https://tools.ietf.org/html/rfc7230#section-5.4). When the header is not set the attribute MUST NOT be set.\n */\n HTTP_HOST: 'http.host';\n\n /**\n * The URI scheme identifying the used protocol.\n */\n HTTP_SCHEME: 'http.scheme';\n\n /**\n * [HTTP response status code](https://tools.ietf.org/html/rfc7231#section-6).\n */\n HTTP_STATUS_CODE: 'http.status_code';\n\n /**\n * Kind of HTTP protocol used.\n *\n * Note: If `net.transport` is not specified, it can be assumed to be `IP.TCP` except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed.\n */\n HTTP_FLAVOR: 'http.flavor';\n\n /**\n * Value of the [HTTP User-Agent](https://tools.ietf.org/html/rfc7231#section-5.5.3) header sent by the client.\n */\n HTTP_USER_AGENT: 'http.user_agent';\n\n /**\n * The size of the request payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the [Content-Length](https://tools.ietf.org/html/rfc7230#section-3.3.2) header. For requests using transport encoding, this should be the compressed size.\n */\n HTTP_REQUEST_CONTENT_LENGTH: 'http.request_content_length';\n\n /**\n * The size of the uncompressed request payload body after transport decoding. Not set if transport encoding not used.\n */\n HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED: 'http.request_content_length_uncompressed';\n\n /**\n * The size of the response payload body in bytes. This is the number of bytes transferred excluding headers and is often, but not always, present as the [Content-Length](https://tools.ietf.org/html/rfc7230#section-3.3.2) header. For requests using transport encoding, this should be the compressed size.\n */\n HTTP_RESPONSE_CONTENT_LENGTH: 'http.response_content_length';\n\n /**\n * The size of the uncompressed response payload body after transport decoding. Not set if transport encoding not used.\n */\n HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED: 'http.response_content_length_uncompressed';\n\n /**\n * The primary server name of the matched virtual host. This should be obtained via configuration. If no such configuration can be obtained, this attribute MUST NOT be set ( `net.host.name` should be used instead).\n *\n * Note: `http.url` is usually not readily available on the server side but would have to be assembled in a cumbersome and sometimes lossy process from other information (see e.g. open-telemetry/opentelemetry-python/pull/148). It is thus preferred to supply the raw data that is available.\n */\n HTTP_SERVER_NAME: 'http.server_name';\n\n /**\n * The matched route (path template).\n */\n HTTP_ROUTE: 'http.route';\n\n /**\n * The IP address of the original client behind all proxies, if known (e.g. from [X-Forwarded-For](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For)).\n *\n * Note: This is not necessarily the same as `net.peer.ip`, which would\nidentify the network-level peer, which may be a proxy.\n\nThis attribute should be set when a source of information different\nfrom the one used for `net.peer.ip`, is available even if that other\nsource just confirms the same value as `net.peer.ip`.\nRationale: For `net.peer.ip`, one typically does not know if it\ncomes from a proxy, reverse proxy, or the actual client. Setting\n`http.client_ip` when it's the same as `net.peer.ip` means that\none is at least somewhat confident that the address is not that of\nthe closest proxy.\n */\n HTTP_CLIENT_IP: 'http.client_ip';\n\n /**\n * The keys in the `RequestItems` object field.\n */\n AWS_DYNAMODB_TABLE_NAMES: 'aws.dynamodb.table_names';\n\n /**\n * The JSON-serialized value of each item in the `ConsumedCapacity` response field.\n */\n AWS_DYNAMODB_CONSUMED_CAPACITY: 'aws.dynamodb.consumed_capacity';\n\n /**\n * The JSON-serialized value of the `ItemCollectionMetrics` response field.\n */\n AWS_DYNAMODB_ITEM_COLLECTION_METRICS: 'aws.dynamodb.item_collection_metrics';\n\n /**\n * The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter.\n */\n AWS_DYNAMODB_PROVISIONED_READ_CAPACITY: 'aws.dynamodb.provisioned_read_capacity';\n\n /**\n * The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter.\n */\n AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY: 'aws.dynamodb.provisioned_write_capacity';\n\n /**\n * The value of the `ConsistentRead` request parameter.\n */\n AWS_DYNAMODB_CONSISTENT_READ: 'aws.dynamodb.consistent_read';\n\n /**\n * The value of the `ProjectionExpression` request parameter.\n */\n AWS_DYNAMODB_PROJECTION: 'aws.dynamodb.projection';\n\n /**\n * The value of the `Limit` request parameter.\n */\n AWS_DYNAMODB_LIMIT: 'aws.dynamodb.limit';\n\n /**\n * The value of the `AttributesToGet` request parameter.\n */\n AWS_DYNAMODB_ATTRIBUTES_TO_GET: 'aws.dynamodb.attributes_to_get';\n\n /**\n * The value of the `IndexName` request parameter.\n */\n AWS_DYNAMODB_INDEX_NAME: 'aws.dynamodb.index_name';\n\n /**\n * The value of the `Select` request parameter.\n */\n AWS_DYNAMODB_SELECT: 'aws.dynamodb.select';\n\n /**\n * The JSON-serialized value of each item of the `GlobalSecondaryIndexes` request field.\n */\n AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES: 'aws.dynamodb.global_secondary_indexes';\n\n /**\n * The JSON-serialized value of each item of the `LocalSecondaryIndexes` request field.\n */\n AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES: 'aws.dynamodb.local_secondary_indexes';\n\n /**\n * The value of the `ExclusiveStartTableName` request parameter.\n */\n AWS_DYNAMODB_EXCLUSIVE_START_TABLE: 'aws.dynamodb.exclusive_start_table';\n\n /**\n * The the number of items in the `TableNames` response parameter.\n */\n AWS_DYNAMODB_TABLE_COUNT: 'aws.dynamodb.table_count';\n\n /**\n * The value of the `ScanIndexForward` request parameter.\n */\n AWS_DYNAMODB_SCAN_FORWARD: 'aws.dynamodb.scan_forward';\n\n /**\n * The value of the `Segment` request parameter.\n */\n AWS_DYNAMODB_SEGMENT: 'aws.dynamodb.segment';\n\n /**\n * The value of the `TotalSegments` request parameter.\n */\n AWS_DYNAMODB_TOTAL_SEGMENTS: 'aws.dynamodb.total_segments';\n\n /**\n * The value of the `Count` response parameter.\n */\n AWS_DYNAMODB_COUNT: 'aws.dynamodb.count';\n\n /**\n * The value of the `ScannedCount` response parameter.\n */\n AWS_DYNAMODB_SCANNED_COUNT: 'aws.dynamodb.scanned_count';\n\n /**\n * The JSON-serialized value of each item in the `AttributeDefinitions` request field.\n */\n AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS: 'aws.dynamodb.attribute_definitions';\n\n /**\n * The JSON-serialized value of each item in the the `GlobalSecondaryIndexUpdates` request field.\n */\n AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES: 'aws.dynamodb.global_secondary_index_updates';\n\n /**\n * A string identifying the messaging system.\n */\n MESSAGING_SYSTEM: 'messaging.system';\n\n /**\n * The message destination name. This might be equal to the span name but is required nevertheless.\n */\n MESSAGING_DESTINATION: 'messaging.destination';\n\n /**\n * The kind of message destination.\n */\n MESSAGING_DESTINATION_KIND: 'messaging.destination_kind';\n\n /**\n * A boolean that is true if the message destination is temporary.\n */\n MESSAGING_TEMP_DESTINATION: 'messaging.temp_destination';\n\n /**\n * The name of the transport protocol.\n */\n MESSAGING_PROTOCOL: 'messaging.protocol';\n\n /**\n * The version of the transport protocol.\n */\n MESSAGING_PROTOCOL_VERSION: 'messaging.protocol_version';\n\n /**\n * Connection string.\n */\n MESSAGING_URL: 'messaging.url';\n\n /**\n * A value used by the messaging system as an identifier for the message, represented as a string.\n */\n MESSAGING_MESSAGE_ID: 'messaging.message_id';\n\n /**\n * The [conversation ID](#conversations) identifying the conversation to which the message belongs, represented as a string. Sometimes called "Correlation ID".\n */\n MESSAGING_CONVERSATION_ID: 'messaging.conversation_id';\n\n /**\n * The (uncompressed) size of the message payload in bytes. Also use this attribute if it is unknown whether the compressed or uncompressed payload size is reported.\n */\n MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES: 'messaging.message_payload_size_bytes';\n\n /**\n * The compressed size of the message payload in bytes.\n */\n MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES: 'messaging.message_payload_compressed_size_bytes';\n\n /**\n * A string identifying the kind of message consumption as defined in the [Operation names](#operation-names) section above. If the operation is "send", this attribute MUST NOT be set, since the operation can be inferred from the span kind in that case.\n */\n MESSAGING_OPERATION: 'messaging.operation';\n\n /**\n * The identifier for the consumer receiving a message. For Kafka, set it to `{messaging.kafka.consumer_group} - {messaging.kafka.client_id}`, if both are present, or only `messaging.kafka.consumer_group`. For brokers, such as RabbitMQ and Artemis, set it to the `client_id` of the client consuming the message.\n */\n MESSAGING_CONSUMER_ID: 'messaging.consumer_id';\n\n /**\n * RabbitMQ message routing key.\n */\n MESSAGING_RABBITMQ_ROUTING_KEY: 'messaging.rabbitmq.routing_key';\n\n /**\n * Message keys in Kafka are used for grouping alike messages to ensure they're processed on the same partition. They differ from `messaging.message_id` in that they're not unique. If the key is `null`, the attribute MUST NOT be set.\n *\n * Note: If the key type is not string, it's string representation has to be supplied for the attribute. If the key has no unambiguous, canonical string form, don't include its value.\n */\n MESSAGING_KAFKA_MESSAGE_KEY: 'messaging.kafka.message_key';\n\n /**\n * Name of the Kafka Consumer Group that is handling the message. Only applies to consumers, not producers.\n */\n MESSAGING_KAFKA_CONSUMER_GROUP: 'messaging.kafka.consumer_group';\n\n /**\n * Client Id for the Consumer or Producer that is handling the message.\n */\n MESSAGING_KAFKA_CLIENT_ID: 'messaging.kafka.client_id';\n\n /**\n * Partition the message is sent to.\n */\n MESSAGING_KAFKA_PARTITION: 'messaging.kafka.partition';\n\n /**\n * A boolean that is true if the message is a tombstone.\n */\n MESSAGING_KAFKA_TOMBSTONE: 'messaging.kafka.tombstone';\n\n /**\n * A string identifying the remoting system.\n */\n RPC_SYSTEM: 'rpc.system';\n\n /**\n * The full (logical) name of the service being called, including its package name, if applicable.\n *\n * Note: This is the logical name of the service from the RPC interface perspective, which can be different from the name of any implementing class. The `code.namespace` attribute may be used to store the latter (despite the attribute name, it may include a class name; e.g., class with method actually executing the call on the server side, RPC client stub class on the client side).\n */\n RPC_SERVICE: 'rpc.service';\n\n /**\n * The name of the (logical) method being called, must be equal to the $method part in the span name.\n *\n * Note: This is the logical name of the method from the RPC interface perspective, which can be different from the name of any implementing method/function. The `code.function` attribute may be used to store the latter (e.g., method actually executing the call on the server side, RPC client stub method on the client side).\n */\n RPC_METHOD: 'rpc.method';\n\n /**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n */\n RPC_GRPC_STATUS_CODE: 'rpc.grpc.status_code';\n\n /**\n * Protocol version as in `jsonrpc` property of request/response. Since JSON-RPC 1.0 does not specify this, the value can be omitted.\n */\n RPC_JSONRPC_VERSION: 'rpc.jsonrpc.version';\n\n /**\n * `id` property of request or response. Since protocol allows id to be int, string, `null` or missing (for notifications), value is expected to be cast to string for simplicity. Use empty string in case of `null` value. Omit entirely if this is a notification.\n */\n RPC_JSONRPC_REQUEST_ID: 'rpc.jsonrpc.request_id';\n\n /**\n * `error.code` property of response if it is an error response.\n */\n RPC_JSONRPC_ERROR_CODE: 'rpc.jsonrpc.error_code';\n\n /**\n * `error.message` property of response if it is an error response.\n */\n RPC_JSONRPC_ERROR_MESSAGE: 'rpc.jsonrpc.error_message';\n\n /**\n * Whether this is a received or sent message.\n */\n MESSAGE_TYPE: 'message.type';\n\n /**\n * MUST be calculated as two different counters starting from `1` one for sent messages and one for received message.\n *\n * Note: This way we guarantee that the values will be consistent between different implementations.\n */\n MESSAGE_ID: 'message.id';\n\n /**\n * Compressed size of the message in bytes.\n */\n MESSAGE_COMPRESSED_SIZE: 'message.compressed_size';\n\n /**\n * Uncompressed size of the message in bytes.\n */\n MESSAGE_UNCOMPRESSED_SIZE: 'message.uncompressed_size';\n};\n\n/**\n * Create exported Value Map for SemanticAttributes values\n * @deprecated Use the SEMATTRS_XXXXX constants rather than the SemanticAttributes.XXXXX for bundle minification\n */\nexport const SemanticAttributes: SemanticAttributes =\n /*#__PURE__*/ createConstMap([\n TMP_AWS_LAMBDA_INVOKED_ARN,\n TMP_DB_SYSTEM,\n TMP_DB_CONNECTION_STRING,\n TMP_DB_USER,\n TMP_DB_JDBC_DRIVER_CLASSNAME,\n TMP_DB_NAME,\n TMP_DB_STATEMENT,\n TMP_DB_OPERATION,\n TMP_DB_MSSQL_INSTANCE_NAME,\n TMP_DB_CASSANDRA_KEYSPACE,\n TMP_DB_CASSANDRA_PAGE_SIZE,\n TMP_DB_CASSANDRA_CONSISTENCY_LEVEL,\n TMP_DB_CASSANDRA_TABLE,\n TMP_DB_CASSANDRA_IDEMPOTENCE,\n TMP_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT,\n TMP_DB_CASSANDRA_COORDINATOR_ID,\n TMP_DB_CASSANDRA_COORDINATOR_DC,\n TMP_DB_HBASE_NAMESPACE,\n TMP_DB_REDIS_DATABASE_INDEX,\n TMP_DB_MONGODB_COLLECTION,\n TMP_DB_SQL_TABLE,\n TMP_EXCEPTION_TYPE,\n TMP_EXCEPTION_MESSAGE,\n TMP_EXCEPTION_STACKTRACE,\n TMP_EXCEPTION_ESCAPED,\n TMP_FAAS_TRIGGER,\n TMP_FAAS_EXECUTION,\n TMP_FAAS_DOCUMENT_COLLECTION,\n TMP_FAAS_DOCUMENT_OPERATION,\n TMP_FAAS_DOCUMENT_TIME,\n TMP_FAAS_DOCUMENT_NAME,\n TMP_FAAS_TIME,\n TMP_FAAS_CRON,\n TMP_FAAS_COLDSTART,\n TMP_FAAS_INVOKED_NAME,\n TMP_FAAS_INVOKED_PROVIDER,\n TMP_FAAS_INVOKED_REGION,\n TMP_NET_TRANSPORT,\n TMP_NET_PEER_IP,\n TMP_NET_PEER_PORT,\n TMP_NET_PEER_NAME,\n TMP_NET_HOST_IP,\n TMP_NET_HOST_PORT,\n TMP_NET_HOST_NAME,\n TMP_NET_HOST_CONNECTION_TYPE,\n TMP_NET_HOST_CONNECTION_SUBTYPE,\n TMP_NET_HOST_CARRIER_NAME,\n TMP_NET_HOST_CARRIER_MCC,\n TMP_NET_HOST_CARRIER_MNC,\n TMP_NET_HOST_CARRIER_ICC,\n TMP_PEER_SERVICE,\n TMP_ENDUSER_ID,\n TMP_ENDUSER_ROLE,\n TMP_ENDUSER_SCOPE,\n TMP_THREAD_ID,\n TMP_THREAD_NAME,\n TMP_CODE_FUNCTION,\n TMP_CODE_NAMESPACE,\n TMP_CODE_FILEPATH,\n TMP_CODE_LINENO,\n TMP_HTTP_METHOD,\n TMP_HTTP_URL,\n TMP_HTTP_TARGET,\n TMP_HTTP_HOST,\n TMP_HTTP_SCHEME,\n TMP_HTTP_STATUS_CODE,\n TMP_HTTP_FLAVOR,\n TMP_HTTP_USER_AGENT,\n TMP_HTTP_REQUEST_CONTENT_LENGTH,\n TMP_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED,\n TMP_HTTP_RESPONSE_CONTENT_LENGTH,\n TMP_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED,\n TMP_HTTP_SERVER_NAME,\n TMP_HTTP_ROUTE,\n TMP_HTTP_CLIENT_IP,\n TMP_AWS_DYNAMODB_TABLE_NAMES,\n TMP_AWS_DYNAMODB_CONSUMED_CAPACITY,\n TMP_AWS_DYNAMODB_ITEM_COLLECTION_METRICS,\n TMP_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY,\n TMP_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY,\n TMP_AWS_DYNAMODB_CONSISTENT_READ,\n TMP_AWS_DYNAMODB_PROJECTION,\n TMP_AWS_DYNAMODB_LIMIT,\n TMP_AWS_DYNAMODB_ATTRIBUTES_TO_GET,\n TMP_AWS_DYNAMODB_INDEX_NAME,\n TMP_AWS_DYNAMODB_SELECT,\n TMP_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES,\n TMP_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES,\n TMP_AWS_DYNAMODB_EXCLUSIVE_START_TABLE,\n TMP_AWS_DYNAMODB_TABLE_COUNT,\n TMP_AWS_DYNAMODB_SCAN_FORWARD,\n TMP_AWS_DYNAMODB_SEGMENT,\n TMP_AWS_DYNAMODB_TOTAL_SEGMENTS,\n TMP_AWS_DYNAMODB_COUNT,\n TMP_AWS_DYNAMODB_SCANNED_COUNT,\n TMP_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS,\n TMP_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES,\n TMP_MESSAGING_SYSTEM,\n TMP_MESSAGING_DESTINATION,\n TMP_MESSAGING_DESTINATION_KIND,\n TMP_MESSAGING_TEMP_DESTINATION,\n TMP_MESSAGING_PROTOCOL,\n TMP_MESSAGING_PROTOCOL_VERSION,\n TMP_MESSAGING_URL,\n TMP_MESSAGING_MESSAGE_ID,\n TMP_MESSAGING_CONVERSATION_ID,\n TMP_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES,\n TMP_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES,\n TMP_MESSAGING_OPERATION,\n TMP_MESSAGING_CONSUMER_ID,\n TMP_MESSAGING_RABBITMQ_ROUTING_KEY,\n TMP_MESSAGING_KAFKA_MESSAGE_KEY,\n TMP_MESSAGING_KAFKA_CONSUMER_GROUP,\n TMP_MESSAGING_KAFKA_CLIENT_ID,\n TMP_MESSAGING_KAFKA_PARTITION,\n TMP_MESSAGING_KAFKA_TOMBSTONE,\n TMP_RPC_SYSTEM,\n TMP_RPC_SERVICE,\n TMP_RPC_METHOD,\n TMP_RPC_GRPC_STATUS_CODE,\n TMP_RPC_JSONRPC_VERSION,\n TMP_RPC_JSONRPC_REQUEST_ID,\n TMP_RPC_JSONRPC_ERROR_CODE,\n TMP_RPC_JSONRPC_ERROR_MESSAGE,\n TMP_MESSAGE_TYPE,\n TMP_MESSAGE_ID,\n TMP_MESSAGE_COMPRESSED_SIZE,\n TMP_MESSAGE_UNCOMPRESSED_SIZE,\n ]);\n\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for DbSystemValues enum definition\n *\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n * ---------------------------------------------------------------------------------------------------------- */\n\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_DBSYSTEMVALUES_OTHER_SQL = 'other_sql';\nconst TMP_DBSYSTEMVALUES_MSSQL = 'mssql';\nconst TMP_DBSYSTEMVALUES_MYSQL = 'mysql';\nconst TMP_DBSYSTEMVALUES_ORACLE = 'oracle';\nconst TMP_DBSYSTEMVALUES_DB2 = 'db2';\nconst TMP_DBSYSTEMVALUES_POSTGRESQL = 'postgresql';\nconst TMP_DBSYSTEMVALUES_REDSHIFT = 'redshift';\nconst TMP_DBSYSTEMVALUES_HIVE = 'hive';\nconst TMP_DBSYSTEMVALUES_CLOUDSCAPE = 'cloudscape';\nconst TMP_DBSYSTEMVALUES_HSQLDB = 'hsqldb';\nconst TMP_DBSYSTEMVALUES_PROGRESS = 'progress';\nconst TMP_DBSYSTEMVALUES_MAXDB = 'maxdb';\nconst TMP_DBSYSTEMVALUES_HANADB = 'hanadb';\nconst TMP_DBSYSTEMVALUES_INGRES = 'ingres';\nconst TMP_DBSYSTEMVALUES_FIRSTSQL = 'firstsql';\nconst TMP_DBSYSTEMVALUES_EDB = 'edb';\nconst TMP_DBSYSTEMVALUES_CACHE = 'cache';\nconst TMP_DBSYSTEMVALUES_ADABAS = 'adabas';\nconst TMP_DBSYSTEMVALUES_FIREBIRD = 'firebird';\nconst TMP_DBSYSTEMVALUES_DERBY = 'derby';\nconst TMP_DBSYSTEMVALUES_FILEMAKER = 'filemaker';\nconst TMP_DBSYSTEMVALUES_INFORMIX = 'informix';\nconst TMP_DBSYSTEMVALUES_INSTANTDB = 'instantdb';\nconst TMP_DBSYSTEMVALUES_INTERBASE = 'interbase';\nconst TMP_DBSYSTEMVALUES_MARIADB = 'mariadb';\nconst TMP_DBSYSTEMVALUES_NETEZZA = 'netezza';\nconst TMP_DBSYSTEMVALUES_PERVASIVE = 'pervasive';\nconst TMP_DBSYSTEMVALUES_POINTBASE = 'pointbase';\nconst TMP_DBSYSTEMVALUES_SQLITE = 'sqlite';\nconst TMP_DBSYSTEMVALUES_SYBASE = 'sybase';\nconst TMP_DBSYSTEMVALUES_TERADATA = 'teradata';\nconst TMP_DBSYSTEMVALUES_VERTICA = 'vertica';\nconst TMP_DBSYSTEMVALUES_H2 = 'h2';\nconst TMP_DBSYSTEMVALUES_COLDFUSION = 'coldfusion';\nconst TMP_DBSYSTEMVALUES_CASSANDRA = 'cassandra';\nconst TMP_DBSYSTEMVALUES_HBASE = 'hbase';\nconst TMP_DBSYSTEMVALUES_MONGODB = 'mongodb';\nconst TMP_DBSYSTEMVALUES_REDIS = 'redis';\nconst TMP_DBSYSTEMVALUES_COUCHBASE = 'couchbase';\nconst TMP_DBSYSTEMVALUES_COUCHDB = 'couchdb';\nconst TMP_DBSYSTEMVALUES_COSMOSDB = 'cosmosdb';\nconst TMP_DBSYSTEMVALUES_DYNAMODB = 'dynamodb';\nconst TMP_DBSYSTEMVALUES_NEO4J = 'neo4j';\nconst TMP_DBSYSTEMVALUES_GEODE = 'geode';\nconst TMP_DBSYSTEMVALUES_ELASTICSEARCH = 'elasticsearch';\nconst TMP_DBSYSTEMVALUES_MEMCACHED = 'memcached';\nconst TMP_DBSYSTEMVALUES_COCKROACHDB = 'cockroachdb';\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_OTHER_SQL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_OTHER_SQL = TMP_DBSYSTEMVALUES_OTHER_SQL;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_MSSQL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_MSSQL = TMP_DBSYSTEMVALUES_MSSQL;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_MYSQL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_MYSQL = TMP_DBSYSTEMVALUES_MYSQL;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_ORACLE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_ORACLE = TMP_DBSYSTEMVALUES_ORACLE;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_DB2 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_DB2 = TMP_DBSYSTEMVALUES_DB2;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_POSTGRESQL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_POSTGRESQL = TMP_DBSYSTEMVALUES_POSTGRESQL;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_REDSHIFT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_REDSHIFT = TMP_DBSYSTEMVALUES_REDSHIFT;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_HIVE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_HIVE = TMP_DBSYSTEMVALUES_HIVE;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_CLOUDSCAPE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_CLOUDSCAPE = TMP_DBSYSTEMVALUES_CLOUDSCAPE;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_HSQLDB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_HSQLDB = TMP_DBSYSTEMVALUES_HSQLDB;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_PROGRESS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_PROGRESS = TMP_DBSYSTEMVALUES_PROGRESS;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_MAXDB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_MAXDB = TMP_DBSYSTEMVALUES_MAXDB;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_HANADB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_HANADB = TMP_DBSYSTEMVALUES_HANADB;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_INGRES in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_INGRES = TMP_DBSYSTEMVALUES_INGRES;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_FIRSTSQL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_FIRSTSQL = TMP_DBSYSTEMVALUES_FIRSTSQL;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_EDB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_EDB = TMP_DBSYSTEMVALUES_EDB;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_CACHE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_CACHE = TMP_DBSYSTEMVALUES_CACHE;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_ADABAS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_ADABAS = TMP_DBSYSTEMVALUES_ADABAS;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_FIREBIRD in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_FIREBIRD = TMP_DBSYSTEMVALUES_FIREBIRD;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_DERBY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_DERBY = TMP_DBSYSTEMVALUES_DERBY;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_FILEMAKER in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_FILEMAKER = TMP_DBSYSTEMVALUES_FILEMAKER;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_INFORMIX in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_INFORMIX = TMP_DBSYSTEMVALUES_INFORMIX;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_INSTANTDB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_INSTANTDB = TMP_DBSYSTEMVALUES_INSTANTDB;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_INTERBASE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_INTERBASE = TMP_DBSYSTEMVALUES_INTERBASE;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_MARIADB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_MARIADB = TMP_DBSYSTEMVALUES_MARIADB;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_NETEZZA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_NETEZZA = TMP_DBSYSTEMVALUES_NETEZZA;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_PERVASIVE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_PERVASIVE = TMP_DBSYSTEMVALUES_PERVASIVE;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_POINTBASE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_POINTBASE = TMP_DBSYSTEMVALUES_POINTBASE;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_SQLITE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_SQLITE = TMP_DBSYSTEMVALUES_SQLITE;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_SYBASE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_SYBASE = TMP_DBSYSTEMVALUES_SYBASE;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_TERADATA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_TERADATA = TMP_DBSYSTEMVALUES_TERADATA;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_VERTICA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_VERTICA = TMP_DBSYSTEMVALUES_VERTICA;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_H2 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_H2 = TMP_DBSYSTEMVALUES_H2;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_COLDFUSION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_COLDFUSION = TMP_DBSYSTEMVALUES_COLDFUSION;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_CASSANDRA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_CASSANDRA = TMP_DBSYSTEMVALUES_CASSANDRA;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_HBASE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_HBASE = TMP_DBSYSTEMVALUES_HBASE;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_MONGODB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_MONGODB = TMP_DBSYSTEMVALUES_MONGODB;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_REDIS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_REDIS = TMP_DBSYSTEMVALUES_REDIS;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_COUCHBASE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_COUCHBASE = TMP_DBSYSTEMVALUES_COUCHBASE;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_COUCHDB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_COUCHDB = TMP_DBSYSTEMVALUES_COUCHDB;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_COSMOSDB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_COSMOSDB = TMP_DBSYSTEMVALUES_COSMOSDB;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_DYNAMODB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_DYNAMODB = TMP_DBSYSTEMVALUES_DYNAMODB;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_NEO4J in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_NEO4J = TMP_DBSYSTEMVALUES_NEO4J;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_GEODE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_GEODE = TMP_DBSYSTEMVALUES_GEODE;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_ELASTICSEARCH in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_ELASTICSEARCH = TMP_DBSYSTEMVALUES_ELASTICSEARCH;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_MEMCACHED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_MEMCACHED = TMP_DBSYSTEMVALUES_MEMCACHED;\n\n/**\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n *\n * @deprecated Use DB_SYSTEM_VALUE_COCKROACHDB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBSYSTEMVALUES_COCKROACHDB = TMP_DBSYSTEMVALUES_COCKROACHDB;\n\n/**\n * Identifies the Values for DbSystemValues enum definition\n *\n * An identifier for the database management system (DBMS) product being used. See below for a list of well-known identifiers.\n * @deprecated Use the DBSYSTEMVALUES_XXXXX constants rather than the DbSystemValues.XXXXX for bundle minification.\n */\nexport type DbSystemValues = {\n /** Some other SQL database. Fallback only. See notes. */\n OTHER_SQL: 'other_sql';\n\n /** Microsoft SQL Server. */\n MSSQL: 'mssql';\n\n /** MySQL. */\n MYSQL: 'mysql';\n\n /** Oracle Database. */\n ORACLE: 'oracle';\n\n /** IBM Db2. */\n DB2: 'db2';\n\n /** PostgreSQL. */\n POSTGRESQL: 'postgresql';\n\n /** Amazon Redshift. */\n REDSHIFT: 'redshift';\n\n /** Apache Hive. */\n HIVE: 'hive';\n\n /** Cloudscape. */\n CLOUDSCAPE: 'cloudscape';\n\n /** HyperSQL DataBase. */\n HSQLDB: 'hsqldb';\n\n /** Progress Database. */\n PROGRESS: 'progress';\n\n /** SAP MaxDB. */\n MAXDB: 'maxdb';\n\n /** SAP HANA. */\n HANADB: 'hanadb';\n\n /** Ingres. */\n INGRES: 'ingres';\n\n /** FirstSQL. */\n FIRSTSQL: 'firstsql';\n\n /** EnterpriseDB. */\n EDB: 'edb';\n\n /** InterSystems Caché. */\n CACHE: 'cache';\n\n /** Adabas (Adaptable Database System). */\n ADABAS: 'adabas';\n\n /** Firebird. */\n FIREBIRD: 'firebird';\n\n /** Apache Derby. */\n DERBY: 'derby';\n\n /** FileMaker. */\n FILEMAKER: 'filemaker';\n\n /** Informix. */\n INFORMIX: 'informix';\n\n /** InstantDB. */\n INSTANTDB: 'instantdb';\n\n /** InterBase. */\n INTERBASE: 'interbase';\n\n /** MariaDB. */\n MARIADB: 'mariadb';\n\n /** Netezza. */\n NETEZZA: 'netezza';\n\n /** Pervasive PSQL. */\n PERVASIVE: 'pervasive';\n\n /** PointBase. */\n POINTBASE: 'pointbase';\n\n /** SQLite. */\n SQLITE: 'sqlite';\n\n /** Sybase. */\n SYBASE: 'sybase';\n\n /** Teradata. */\n TERADATA: 'teradata';\n\n /** Vertica. */\n VERTICA: 'vertica';\n\n /** H2. */\n H2: 'h2';\n\n /** ColdFusion IMQ. */\n COLDFUSION: 'coldfusion';\n\n /** Apache Cassandra. */\n CASSANDRA: 'cassandra';\n\n /** Apache HBase. */\n HBASE: 'hbase';\n\n /** MongoDB. */\n MONGODB: 'mongodb';\n\n /** Redis. */\n REDIS: 'redis';\n\n /** Couchbase. */\n COUCHBASE: 'couchbase';\n\n /** CouchDB. */\n COUCHDB: 'couchdb';\n\n /** Microsoft Azure Cosmos DB. */\n COSMOSDB: 'cosmosdb';\n\n /** Amazon DynamoDB. */\n DYNAMODB: 'dynamodb';\n\n /** Neo4j. */\n NEO4J: 'neo4j';\n\n /** Apache Geode. */\n GEODE: 'geode';\n\n /** Elasticsearch. */\n ELASTICSEARCH: 'elasticsearch';\n\n /** Memcached. */\n MEMCACHED: 'memcached';\n\n /** CockroachDB. */\n COCKROACHDB: 'cockroachdb';\n};\n\n/**\n * The constant map of values for DbSystemValues.\n * @deprecated Use the DBSYSTEMVALUES_XXXXX constants rather than the DbSystemValues.XXXXX for bundle minification.\n */\nexport const DbSystemValues: DbSystemValues =\n /*#__PURE__*/ createConstMap([\n TMP_DBSYSTEMVALUES_OTHER_SQL,\n TMP_DBSYSTEMVALUES_MSSQL,\n TMP_DBSYSTEMVALUES_MYSQL,\n TMP_DBSYSTEMVALUES_ORACLE,\n TMP_DBSYSTEMVALUES_DB2,\n TMP_DBSYSTEMVALUES_POSTGRESQL,\n TMP_DBSYSTEMVALUES_REDSHIFT,\n TMP_DBSYSTEMVALUES_HIVE,\n TMP_DBSYSTEMVALUES_CLOUDSCAPE,\n TMP_DBSYSTEMVALUES_HSQLDB,\n TMP_DBSYSTEMVALUES_PROGRESS,\n TMP_DBSYSTEMVALUES_MAXDB,\n TMP_DBSYSTEMVALUES_HANADB,\n TMP_DBSYSTEMVALUES_INGRES,\n TMP_DBSYSTEMVALUES_FIRSTSQL,\n TMP_DBSYSTEMVALUES_EDB,\n TMP_DBSYSTEMVALUES_CACHE,\n TMP_DBSYSTEMVALUES_ADABAS,\n TMP_DBSYSTEMVALUES_FIREBIRD,\n TMP_DBSYSTEMVALUES_DERBY,\n TMP_DBSYSTEMVALUES_FILEMAKER,\n TMP_DBSYSTEMVALUES_INFORMIX,\n TMP_DBSYSTEMVALUES_INSTANTDB,\n TMP_DBSYSTEMVALUES_INTERBASE,\n TMP_DBSYSTEMVALUES_MARIADB,\n TMP_DBSYSTEMVALUES_NETEZZA,\n TMP_DBSYSTEMVALUES_PERVASIVE,\n TMP_DBSYSTEMVALUES_POINTBASE,\n TMP_DBSYSTEMVALUES_SQLITE,\n TMP_DBSYSTEMVALUES_SYBASE,\n TMP_DBSYSTEMVALUES_TERADATA,\n TMP_DBSYSTEMVALUES_VERTICA,\n TMP_DBSYSTEMVALUES_H2,\n TMP_DBSYSTEMVALUES_COLDFUSION,\n TMP_DBSYSTEMVALUES_CASSANDRA,\n TMP_DBSYSTEMVALUES_HBASE,\n TMP_DBSYSTEMVALUES_MONGODB,\n TMP_DBSYSTEMVALUES_REDIS,\n TMP_DBSYSTEMVALUES_COUCHBASE,\n TMP_DBSYSTEMVALUES_COUCHDB,\n TMP_DBSYSTEMVALUES_COSMOSDB,\n TMP_DBSYSTEMVALUES_DYNAMODB,\n TMP_DBSYSTEMVALUES_NEO4J,\n TMP_DBSYSTEMVALUES_GEODE,\n TMP_DBSYSTEMVALUES_ELASTICSEARCH,\n TMP_DBSYSTEMVALUES_MEMCACHED,\n TMP_DBSYSTEMVALUES_COCKROACHDB,\n ]);\n\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for DbCassandraConsistencyLevelValues enum definition\n *\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n * ---------------------------------------------------------------------------------------------------------- */\n\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ALL = 'all';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM = 'each_quorum';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM = 'quorum';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM = 'local_quorum';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ONE = 'one';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_TWO = 'two';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_THREE = 'three';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE = 'local_one';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ANY = 'any';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL = 'serial';\nconst TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL = 'local_serial';\n\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_ALL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBCASSANDRACONSISTENCYLEVELVALUES_ALL =\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ALL;\n\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_EACH_QUORUM in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM =\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM;\n\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_QUORUM in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM =\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM;\n\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_LOCAL_QUORUM in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM =\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM;\n\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_ONE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBCASSANDRACONSISTENCYLEVELVALUES_ONE =\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ONE;\n\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_TWO in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBCASSANDRACONSISTENCYLEVELVALUES_TWO =\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_TWO;\n\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_THREE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBCASSANDRACONSISTENCYLEVELVALUES_THREE =\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_THREE;\n\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_LOCAL_ONE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE =\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE;\n\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_ANY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBCASSANDRACONSISTENCYLEVELVALUES_ANY =\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ANY;\n\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_SERIAL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL =\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL;\n\n/**\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n *\n * @deprecated Use DB_CASSANDRA_CONSISTENCY_LEVEL_VALUE_LOCAL_SERIAL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL =\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL;\n\n/**\n * Identifies the Values for DbCassandraConsistencyLevelValues enum definition\n *\n * The consistency level of the query. Based on consistency values from [CQL](https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/dml/dmlConfigConsistency.html).\n * @deprecated Use the DBCASSANDRACONSISTENCYLEVELVALUES_XXXXX constants rather than the DbCassandraConsistencyLevelValues.XXXXX for bundle minification.\n */\nexport type DbCassandraConsistencyLevelValues = {\n /** all. */\n ALL: 'all';\n\n /** each_quorum. */\n EACH_QUORUM: 'each_quorum';\n\n /** quorum. */\n QUORUM: 'quorum';\n\n /** local_quorum. */\n LOCAL_QUORUM: 'local_quorum';\n\n /** one. */\n ONE: 'one';\n\n /** two. */\n TWO: 'two';\n\n /** three. */\n THREE: 'three';\n\n /** local_one. */\n LOCAL_ONE: 'local_one';\n\n /** any. */\n ANY: 'any';\n\n /** serial. */\n SERIAL: 'serial';\n\n /** local_serial. */\n LOCAL_SERIAL: 'local_serial';\n};\n\n/**\n * The constant map of values for DbCassandraConsistencyLevelValues.\n * @deprecated Use the DBCASSANDRACONSISTENCYLEVELVALUES_XXXXX constants rather than the DbCassandraConsistencyLevelValues.XXXXX for bundle minification.\n */\nexport const DbCassandraConsistencyLevelValues: DbCassandraConsistencyLevelValues =\n /*#__PURE__*/ createConstMap([\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ALL,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ONE,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_TWO,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_THREE,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_ANY,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL,\n TMP_DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL,\n ]);\n\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for FaasTriggerValues enum definition\n *\n * Type of the trigger on which the function is executed.\n * ---------------------------------------------------------------------------------------------------------- */\n\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_FAASTRIGGERVALUES_DATASOURCE = 'datasource';\nconst TMP_FAASTRIGGERVALUES_HTTP = 'http';\nconst TMP_FAASTRIGGERVALUES_PUBSUB = 'pubsub';\nconst TMP_FAASTRIGGERVALUES_TIMER = 'timer';\nconst TMP_FAASTRIGGERVALUES_OTHER = 'other';\n\n/**\n * Type of the trigger on which the function is executed.\n *\n * @deprecated Use FAAS_TRIGGER_VALUE_DATASOURCE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const FAASTRIGGERVALUES_DATASOURCE = TMP_FAASTRIGGERVALUES_DATASOURCE;\n\n/**\n * Type of the trigger on which the function is executed.\n *\n * @deprecated Use FAAS_TRIGGER_VALUE_HTTP in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const FAASTRIGGERVALUES_HTTP = TMP_FAASTRIGGERVALUES_HTTP;\n\n/**\n * Type of the trigger on which the function is executed.\n *\n * @deprecated Use FAAS_TRIGGER_VALUE_PUBSUB in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const FAASTRIGGERVALUES_PUBSUB = TMP_FAASTRIGGERVALUES_PUBSUB;\n\n/**\n * Type of the trigger on which the function is executed.\n *\n * @deprecated Use FAAS_TRIGGER_VALUE_TIMER in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const FAASTRIGGERVALUES_TIMER = TMP_FAASTRIGGERVALUES_TIMER;\n\n/**\n * Type of the trigger on which the function is executed.\n *\n * @deprecated Use FAAS_TRIGGER_VALUE_OTHER in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const FAASTRIGGERVALUES_OTHER = TMP_FAASTRIGGERVALUES_OTHER;\n\n/**\n * Identifies the Values for FaasTriggerValues enum definition\n *\n * Type of the trigger on which the function is executed.\n * @deprecated Use the FAASTRIGGERVALUES_XXXXX constants rather than the FaasTriggerValues.XXXXX for bundle minification.\n */\nexport type FaasTriggerValues = {\n /** A response to some data source operation such as a database or filesystem read/write. */\n DATASOURCE: 'datasource';\n\n /** To provide an answer to an inbound HTTP request. */\n HTTP: 'http';\n\n /** A function is set to be executed when messages are sent to a messaging system. */\n PUBSUB: 'pubsub';\n\n /** A function is scheduled to be executed regularly. */\n TIMER: 'timer';\n\n /** If none of the others apply. */\n OTHER: 'other';\n};\n\n/**\n * The constant map of values for FaasTriggerValues.\n * @deprecated Use the FAASTRIGGERVALUES_XXXXX constants rather than the FaasTriggerValues.XXXXX for bundle minification.\n */\nexport const FaasTriggerValues: FaasTriggerValues =\n /*#__PURE__*/ createConstMap([\n TMP_FAASTRIGGERVALUES_DATASOURCE,\n TMP_FAASTRIGGERVALUES_HTTP,\n TMP_FAASTRIGGERVALUES_PUBSUB,\n TMP_FAASTRIGGERVALUES_TIMER,\n TMP_FAASTRIGGERVALUES_OTHER,\n ]);\n\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for FaasDocumentOperationValues enum definition\n *\n * Describes the type of the operation that was performed on the data.\n * ---------------------------------------------------------------------------------------------------------- */\n\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_FAASDOCUMENTOPERATIONVALUES_INSERT = 'insert';\nconst TMP_FAASDOCUMENTOPERATIONVALUES_EDIT = 'edit';\nconst TMP_FAASDOCUMENTOPERATIONVALUES_DELETE = 'delete';\n\n/**\n * Describes the type of the operation that was performed on the data.\n *\n * @deprecated Use FAAS_DOCUMENT_OPERATION_VALUE_INSERT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const FAASDOCUMENTOPERATIONVALUES_INSERT =\n TMP_FAASDOCUMENTOPERATIONVALUES_INSERT;\n\n/**\n * Describes the type of the operation that was performed on the data.\n *\n * @deprecated Use FAAS_DOCUMENT_OPERATION_VALUE_EDIT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const FAASDOCUMENTOPERATIONVALUES_EDIT =\n TMP_FAASDOCUMENTOPERATIONVALUES_EDIT;\n\n/**\n * Describes the type of the operation that was performed on the data.\n *\n * @deprecated Use FAAS_DOCUMENT_OPERATION_VALUE_DELETE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const FAASDOCUMENTOPERATIONVALUES_DELETE =\n TMP_FAASDOCUMENTOPERATIONVALUES_DELETE;\n\n/**\n * Identifies the Values for FaasDocumentOperationValues enum definition\n *\n * Describes the type of the operation that was performed on the data.\n * @deprecated Use the FAASDOCUMENTOPERATIONVALUES_XXXXX constants rather than the FaasDocumentOperationValues.XXXXX for bundle minification.\n */\nexport type FaasDocumentOperationValues = {\n /** When a new object is created. */\n INSERT: 'insert';\n\n /** When an object is modified. */\n EDIT: 'edit';\n\n /** When an object is deleted. */\n DELETE: 'delete';\n};\n\n/**\n * The constant map of values for FaasDocumentOperationValues.\n * @deprecated Use the FAASDOCUMENTOPERATIONVALUES_XXXXX constants rather than the FaasDocumentOperationValues.XXXXX for bundle minification.\n */\nexport const FaasDocumentOperationValues: FaasDocumentOperationValues =\n /*#__PURE__*/ createConstMap([\n TMP_FAASDOCUMENTOPERATIONVALUES_INSERT,\n TMP_FAASDOCUMENTOPERATIONVALUES_EDIT,\n TMP_FAASDOCUMENTOPERATIONVALUES_DELETE,\n ]);\n\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for FaasInvokedProviderValues enum definition\n *\n * The cloud provider of the invoked function.\n *\n * Note: SHOULD be equal to the `cloud.provider` resource attribute of the invoked function.\n * ---------------------------------------------------------------------------------------------------------- */\n\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD = 'alibaba_cloud';\nconst TMP_FAASINVOKEDPROVIDERVALUES_AWS = 'aws';\nconst TMP_FAASINVOKEDPROVIDERVALUES_AZURE = 'azure';\nconst TMP_FAASINVOKEDPROVIDERVALUES_GCP = 'gcp';\n\n/**\n * The cloud provider of the invoked function.\n *\n * Note: SHOULD be equal to the `cloud.provider` resource attribute of the invoked function.\n *\n * @deprecated Use FAAS_INVOKED_PROVIDER_VALUE_ALIBABA_CLOUD in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD =\n TMP_FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD;\n\n/**\n * The cloud provider of the invoked function.\n *\n * Note: SHOULD be equal to the `cloud.provider` resource attribute of the invoked function.\n *\n * @deprecated Use FAAS_INVOKED_PROVIDER_VALUE_AWS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const FAASINVOKEDPROVIDERVALUES_AWS = TMP_FAASINVOKEDPROVIDERVALUES_AWS;\n\n/**\n * The cloud provider of the invoked function.\n *\n * Note: SHOULD be equal to the `cloud.provider` resource attribute of the invoked function.\n *\n * @deprecated Use FAAS_INVOKED_PROVIDER_VALUE_AZURE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const FAASINVOKEDPROVIDERVALUES_AZURE =\n TMP_FAASINVOKEDPROVIDERVALUES_AZURE;\n\n/**\n * The cloud provider of the invoked function.\n *\n * Note: SHOULD be equal to the `cloud.provider` resource attribute of the invoked function.\n *\n * @deprecated Use FAAS_INVOKED_PROVIDER_VALUE_GCP in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const FAASINVOKEDPROVIDERVALUES_GCP = TMP_FAASINVOKEDPROVIDERVALUES_GCP;\n\n/**\n * Identifies the Values for FaasInvokedProviderValues enum definition\n *\n * The cloud provider of the invoked function.\n *\n * Note: SHOULD be equal to the `cloud.provider` resource attribute of the invoked function.\n * @deprecated Use the FAASINVOKEDPROVIDERVALUES_XXXXX constants rather than the FaasInvokedProviderValues.XXXXX for bundle minification.\n */\nexport type FaasInvokedProviderValues = {\n /** Alibaba Cloud. */\n ALIBABA_CLOUD: 'alibaba_cloud';\n\n /** Amazon Web Services. */\n AWS: 'aws';\n\n /** Microsoft Azure. */\n AZURE: 'azure';\n\n /** Google Cloud Platform. */\n GCP: 'gcp';\n};\n\n/**\n * The constant map of values for FaasInvokedProviderValues.\n * @deprecated Use the FAASINVOKEDPROVIDERVALUES_XXXXX constants rather than the FaasInvokedProviderValues.XXXXX for bundle minification.\n */\nexport const FaasInvokedProviderValues: FaasInvokedProviderValues =\n /*#__PURE__*/ createConstMap([\n TMP_FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD,\n TMP_FAASINVOKEDPROVIDERVALUES_AWS,\n TMP_FAASINVOKEDPROVIDERVALUES_AZURE,\n TMP_FAASINVOKEDPROVIDERVALUES_GCP,\n ]);\n\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for NetTransportValues enum definition\n *\n * Transport protocol used. See note below.\n * ---------------------------------------------------------------------------------------------------------- */\n\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_NETTRANSPORTVALUES_IP_TCP = 'ip_tcp';\nconst TMP_NETTRANSPORTVALUES_IP_UDP = 'ip_udp';\nconst TMP_NETTRANSPORTVALUES_IP = 'ip';\nconst TMP_NETTRANSPORTVALUES_UNIX = 'unix';\nconst TMP_NETTRANSPORTVALUES_PIPE = 'pipe';\nconst TMP_NETTRANSPORTVALUES_INPROC = 'inproc';\nconst TMP_NETTRANSPORTVALUES_OTHER = 'other';\n\n/**\n * Transport protocol used. See note below.\n *\n * @deprecated Use NET_TRANSPORT_VALUE_IP_TCP in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETTRANSPORTVALUES_IP_TCP = TMP_NETTRANSPORTVALUES_IP_TCP;\n\n/**\n * Transport protocol used. See note below.\n *\n * @deprecated Use NET_TRANSPORT_VALUE_IP_UDP in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETTRANSPORTVALUES_IP_UDP = TMP_NETTRANSPORTVALUES_IP_UDP;\n\n/**\n * Transport protocol used. See note below.\n *\n * @deprecated Removed in v1.21.0.\n */\nexport const NETTRANSPORTVALUES_IP = TMP_NETTRANSPORTVALUES_IP;\n\n/**\n * Transport protocol used. See note below.\n *\n * @deprecated Removed in v1.21.0.\n */\nexport const NETTRANSPORTVALUES_UNIX = TMP_NETTRANSPORTVALUES_UNIX;\n\n/**\n * Transport protocol used. See note below.\n *\n * @deprecated Use NET_TRANSPORT_VALUE_PIPE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETTRANSPORTVALUES_PIPE = TMP_NETTRANSPORTVALUES_PIPE;\n\n/**\n * Transport protocol used. See note below.\n *\n * @deprecated Use NET_TRANSPORT_VALUE_INPROC in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETTRANSPORTVALUES_INPROC = TMP_NETTRANSPORTVALUES_INPROC;\n\n/**\n * Transport protocol used. See note below.\n *\n * @deprecated Use NET_TRANSPORT_VALUE_OTHER in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETTRANSPORTVALUES_OTHER = TMP_NETTRANSPORTVALUES_OTHER;\n\n/**\n * Identifies the Values for NetTransportValues enum definition\n *\n * Transport protocol used. See note below.\n * @deprecated Use the NETTRANSPORTVALUES_XXXXX constants rather than the NetTransportValues.XXXXX for bundle minification.\n */\nexport type NetTransportValues = {\n /** ip_tcp. */\n IP_TCP: 'ip_tcp';\n\n /** ip_udp. */\n IP_UDP: 'ip_udp';\n\n /** Another IP-based protocol. */\n IP: 'ip';\n\n /** Unix Domain socket. See below. */\n UNIX: 'unix';\n\n /** Named or anonymous pipe. See note below. */\n PIPE: 'pipe';\n\n /** In-process communication. */\n INPROC: 'inproc';\n\n /** Something else (non IP-based). */\n OTHER: 'other';\n};\n\n/**\n * The constant map of values for NetTransportValues.\n * @deprecated Use the NETTRANSPORTVALUES_XXXXX constants rather than the NetTransportValues.XXXXX for bundle minification.\n */\nexport const NetTransportValues: NetTransportValues =\n /*#__PURE__*/ createConstMap([\n TMP_NETTRANSPORTVALUES_IP_TCP,\n TMP_NETTRANSPORTVALUES_IP_UDP,\n TMP_NETTRANSPORTVALUES_IP,\n TMP_NETTRANSPORTVALUES_UNIX,\n TMP_NETTRANSPORTVALUES_PIPE,\n TMP_NETTRANSPORTVALUES_INPROC,\n TMP_NETTRANSPORTVALUES_OTHER,\n ]);\n\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for NetHostConnectionTypeValues enum definition\n *\n * The internet connection type currently being used by the host.\n * ---------------------------------------------------------------------------------------------------------- */\n\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_NETHOSTCONNECTIONTYPEVALUES_WIFI = 'wifi';\nconst TMP_NETHOSTCONNECTIONTYPEVALUES_WIRED = 'wired';\nconst TMP_NETHOSTCONNECTIONTYPEVALUES_CELL = 'cell';\nconst TMP_NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE = 'unavailable';\nconst TMP_NETHOSTCONNECTIONTYPEVALUES_UNKNOWN = 'unknown';\n\n/**\n * The internet connection type currently being used by the host.\n *\n * @deprecated Use NETWORK_CONNECTION_TYPE_VALUE_WIFI in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETHOSTCONNECTIONTYPEVALUES_WIFI =\n TMP_NETHOSTCONNECTIONTYPEVALUES_WIFI;\n\n/**\n * The internet connection type currently being used by the host.\n *\n * @deprecated Use NETWORK_CONNECTION_TYPE_VALUE_WIRED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETHOSTCONNECTIONTYPEVALUES_WIRED =\n TMP_NETHOSTCONNECTIONTYPEVALUES_WIRED;\n\n/**\n * The internet connection type currently being used by the host.\n *\n * @deprecated Use NETWORK_CONNECTION_TYPE_VALUE_CELL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETHOSTCONNECTIONTYPEVALUES_CELL =\n TMP_NETHOSTCONNECTIONTYPEVALUES_CELL;\n\n/**\n * The internet connection type currently being used by the host.\n *\n * @deprecated Use NETWORK_CONNECTION_TYPE_VALUE_UNAVAILABLE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE =\n TMP_NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE;\n\n/**\n * The internet connection type currently being used by the host.\n *\n * @deprecated Use NETWORK_CONNECTION_TYPE_VALUE_UNKNOWN in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETHOSTCONNECTIONTYPEVALUES_UNKNOWN =\n TMP_NETHOSTCONNECTIONTYPEVALUES_UNKNOWN;\n\n/**\n * Identifies the Values for NetHostConnectionTypeValues enum definition\n *\n * The internet connection type currently being used by the host.\n * @deprecated Use the NETHOSTCONNECTIONTYPEVALUES_XXXXX constants rather than the NetHostConnectionTypeValues.XXXXX for bundle minification.\n */\nexport type NetHostConnectionTypeValues = {\n /** wifi. */\n WIFI: 'wifi';\n\n /** wired. */\n WIRED: 'wired';\n\n /** cell. */\n CELL: 'cell';\n\n /** unavailable. */\n UNAVAILABLE: 'unavailable';\n\n /** unknown. */\n UNKNOWN: 'unknown';\n};\n\n/**\n * The constant map of values for NetHostConnectionTypeValues.\n * @deprecated Use the NETHOSTCONNECTIONTYPEVALUES_XXXXX constants rather than the NetHostConnectionTypeValues.XXXXX for bundle minification.\n */\nexport const NetHostConnectionTypeValues: NetHostConnectionTypeValues =\n /*#__PURE__*/ createConstMap([\n TMP_NETHOSTCONNECTIONTYPEVALUES_WIFI,\n TMP_NETHOSTCONNECTIONTYPEVALUES_WIRED,\n TMP_NETHOSTCONNECTIONTYPEVALUES_CELL,\n TMP_NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE,\n TMP_NETHOSTCONNECTIONTYPEVALUES_UNKNOWN,\n ]);\n\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for NetHostConnectionSubtypeValues enum definition\n *\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n * ---------------------------------------------------------------------------------------------------------- */\n\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_GPRS = 'gprs';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EDGE = 'edge';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_UMTS = 'umts';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_CDMA = 'cdma';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0 = 'evdo_0';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A = 'evdo_a';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT = 'cdma2000_1xrtt';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA = 'hsdpa';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA = 'hsupa';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSPA = 'hspa';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_IDEN = 'iden';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B = 'evdo_b';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_LTE = 'lte';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD = 'ehrpd';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP = 'hspap';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_GSM = 'gsm';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA = 'td_scdma';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN = 'iwlan';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_NR = 'nr';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA = 'nrnsa';\nconst TMP_NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA = 'lte_ca';\n\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_GPRS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETHOSTCONNECTIONSUBTYPEVALUES_GPRS =\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_GPRS;\n\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_EDGE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETHOSTCONNECTIONSUBTYPEVALUES_EDGE =\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EDGE;\n\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_UMTS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETHOSTCONNECTIONSUBTYPEVALUES_UMTS =\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_UMTS;\n\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_CDMA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETHOSTCONNECTIONSUBTYPEVALUES_CDMA =\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_CDMA;\n\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_EVDO_0 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0 =\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0;\n\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_EVDO_A in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A =\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A;\n\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_CDMA2000_1XRTT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT =\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT;\n\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_HSDPA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA =\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA;\n\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_HSUPA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA =\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA;\n\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_HSPA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETHOSTCONNECTIONSUBTYPEVALUES_HSPA =\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSPA;\n\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_IDEN in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETHOSTCONNECTIONSUBTYPEVALUES_IDEN =\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_IDEN;\n\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_EVDO_B in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B =\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B;\n\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_LTE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETHOSTCONNECTIONSUBTYPEVALUES_LTE =\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_LTE;\n\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_EHRPD in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD =\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD;\n\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_HSPAP in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP =\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP;\n\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_GSM in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETHOSTCONNECTIONSUBTYPEVALUES_GSM =\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_GSM;\n\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_TD_SCDMA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA =\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA;\n\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_IWLAN in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN =\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN;\n\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_NR in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETHOSTCONNECTIONSUBTYPEVALUES_NR =\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_NR;\n\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_NRNSA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA =\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA;\n\n/**\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n *\n * @deprecated Use NETWORK_CONNECTION_SUBTYPE_VALUE_LTE_CA in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA =\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA;\n\n/**\n * Identifies the Values for NetHostConnectionSubtypeValues enum definition\n *\n * This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.\n * @deprecated Use the NETHOSTCONNECTIONSUBTYPEVALUES_XXXXX constants rather than the NetHostConnectionSubtypeValues.XXXXX for bundle minification.\n */\nexport type NetHostConnectionSubtypeValues = {\n /** GPRS. */\n GPRS: 'gprs';\n\n /** EDGE. */\n EDGE: 'edge';\n\n /** UMTS. */\n UMTS: 'umts';\n\n /** CDMA. */\n CDMA: 'cdma';\n\n /** EVDO Rel. 0. */\n EVDO_0: 'evdo_0';\n\n /** EVDO Rev. A. */\n EVDO_A: 'evdo_a';\n\n /** CDMA2000 1XRTT. */\n CDMA2000_1XRTT: 'cdma2000_1xrtt';\n\n /** HSDPA. */\n HSDPA: 'hsdpa';\n\n /** HSUPA. */\n HSUPA: 'hsupa';\n\n /** HSPA. */\n HSPA: 'hspa';\n\n /** IDEN. */\n IDEN: 'iden';\n\n /** EVDO Rev. B. */\n EVDO_B: 'evdo_b';\n\n /** LTE. */\n LTE: 'lte';\n\n /** EHRPD. */\n EHRPD: 'ehrpd';\n\n /** HSPAP. */\n HSPAP: 'hspap';\n\n /** GSM. */\n GSM: 'gsm';\n\n /** TD-SCDMA. */\n TD_SCDMA: 'td_scdma';\n\n /** IWLAN. */\n IWLAN: 'iwlan';\n\n /** 5G NR (New Radio). */\n NR: 'nr';\n\n /** 5G NRNSA (New Radio Non-Standalone). */\n NRNSA: 'nrnsa';\n\n /** LTE CA. */\n LTE_CA: 'lte_ca';\n};\n\n/**\n * The constant map of values for NetHostConnectionSubtypeValues.\n * @deprecated Use the NETHOSTCONNECTIONSUBTYPEVALUES_XXXXX constants rather than the NetHostConnectionSubtypeValues.XXXXX for bundle minification.\n */\nexport const NetHostConnectionSubtypeValues: NetHostConnectionSubtypeValues =\n /*#__PURE__*/ createConstMap([\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_GPRS,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EDGE,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_UMTS,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_CDMA,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSPA,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_IDEN,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_LTE,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_GSM,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_NR,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA,\n TMP_NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA,\n ]);\n\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for HttpFlavorValues enum definition\n *\n * Kind of HTTP protocol used.\n *\n * Note: If `net.transport` is not specified, it can be assumed to be `IP.TCP` except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed.\n * ---------------------------------------------------------------------------------------------------------- */\n\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_HTTPFLAVORVALUES_HTTP_1_0 = '1.0';\nconst TMP_HTTPFLAVORVALUES_HTTP_1_1 = '1.1';\nconst TMP_HTTPFLAVORVALUES_HTTP_2_0 = '2.0';\nconst TMP_HTTPFLAVORVALUES_SPDY = 'SPDY';\nconst TMP_HTTPFLAVORVALUES_QUIC = 'QUIC';\n\n/**\n * Kind of HTTP protocol used.\n *\n * Note: If `net.transport` is not specified, it can be assumed to be `IP.TCP` except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed.\n *\n * @deprecated Use HTTP_FLAVOR_VALUE_HTTP_1_0 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const HTTPFLAVORVALUES_HTTP_1_0 = TMP_HTTPFLAVORVALUES_HTTP_1_0;\n\n/**\n * Kind of HTTP protocol used.\n *\n * Note: If `net.transport` is not specified, it can be assumed to be `IP.TCP` except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed.\n *\n * @deprecated Use HTTP_FLAVOR_VALUE_HTTP_1_1 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const HTTPFLAVORVALUES_HTTP_1_1 = TMP_HTTPFLAVORVALUES_HTTP_1_1;\n\n/**\n * Kind of HTTP protocol used.\n *\n * Note: If `net.transport` is not specified, it can be assumed to be `IP.TCP` except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed.\n *\n * @deprecated Use HTTP_FLAVOR_VALUE_HTTP_2_0 in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const HTTPFLAVORVALUES_HTTP_2_0 = TMP_HTTPFLAVORVALUES_HTTP_2_0;\n\n/**\n * Kind of HTTP protocol used.\n *\n * Note: If `net.transport` is not specified, it can be assumed to be `IP.TCP` except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed.\n *\n * @deprecated Use HTTP_FLAVOR_VALUE_SPDY in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const HTTPFLAVORVALUES_SPDY = TMP_HTTPFLAVORVALUES_SPDY;\n\n/**\n * Kind of HTTP protocol used.\n *\n * Note: If `net.transport` is not specified, it can be assumed to be `IP.TCP` except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed.\n *\n * @deprecated Use HTTP_FLAVOR_VALUE_QUIC in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const HTTPFLAVORVALUES_QUIC = TMP_HTTPFLAVORVALUES_QUIC;\n\n/**\n * Identifies the Values for HttpFlavorValues enum definition\n *\n * Kind of HTTP protocol used.\n *\n * Note: If `net.transport` is not specified, it can be assumed to be `IP.TCP` except if `http.flavor` is `QUIC`, in which case `IP.UDP` is assumed.\n * @deprecated Use the HTTPFLAVORVALUES_XXXXX constants rather than the HttpFlavorValues.XXXXX for bundle minification.\n */\nexport type HttpFlavorValues = {\n /** HTTP 1.0. */\n HTTP_1_0: '1.0';\n\n /** HTTP 1.1. */\n HTTP_1_1: '1.1';\n\n /** HTTP 2. */\n HTTP_2_0: '2.0';\n\n /** SPDY protocol. */\n SPDY: 'SPDY';\n\n /** QUIC protocol. */\n QUIC: 'QUIC';\n};\n\n/**\n * The constant map of values for HttpFlavorValues.\n * @deprecated Use the HTTPFLAVORVALUES_XXXXX constants rather than the HttpFlavorValues.XXXXX for bundle minification.\n */\nexport const HttpFlavorValues: HttpFlavorValues = {\n HTTP_1_0: TMP_HTTPFLAVORVALUES_HTTP_1_0,\n HTTP_1_1: TMP_HTTPFLAVORVALUES_HTTP_1_1,\n HTTP_2_0: TMP_HTTPFLAVORVALUES_HTTP_2_0,\n SPDY: TMP_HTTPFLAVORVALUES_SPDY,\n QUIC: TMP_HTTPFLAVORVALUES_QUIC,\n};\n\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for MessagingDestinationKindValues enum definition\n *\n * The kind of message destination.\n * ---------------------------------------------------------------------------------------------------------- */\n\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_MESSAGINGDESTINATIONKINDVALUES_QUEUE = 'queue';\nconst TMP_MESSAGINGDESTINATIONKINDVALUES_TOPIC = 'topic';\n\n/**\n * The kind of message destination.\n *\n * @deprecated Removed in semconv v1.20.0.\n */\nexport const MESSAGINGDESTINATIONKINDVALUES_QUEUE =\n TMP_MESSAGINGDESTINATIONKINDVALUES_QUEUE;\n\n/**\n * The kind of message destination.\n *\n * @deprecated Removed in semconv v1.20.0.\n */\nexport const MESSAGINGDESTINATIONKINDVALUES_TOPIC =\n TMP_MESSAGINGDESTINATIONKINDVALUES_TOPIC;\n\n/**\n * Identifies the Values for MessagingDestinationKindValues enum definition\n *\n * The kind of message destination.\n * @deprecated Use the MESSAGINGDESTINATIONKINDVALUES_XXXXX constants rather than the MessagingDestinationKindValues.XXXXX for bundle minification.\n */\nexport type MessagingDestinationKindValues = {\n /** A message sent to a queue. */\n QUEUE: 'queue';\n\n /** A message sent to a topic. */\n TOPIC: 'topic';\n};\n\n/**\n * The constant map of values for MessagingDestinationKindValues.\n * @deprecated Use the MESSAGINGDESTINATIONKINDVALUES_XXXXX constants rather than the MessagingDestinationKindValues.XXXXX for bundle minification.\n */\nexport const MessagingDestinationKindValues: MessagingDestinationKindValues =\n /*#__PURE__*/ createConstMap([\n TMP_MESSAGINGDESTINATIONKINDVALUES_QUEUE,\n TMP_MESSAGINGDESTINATIONKINDVALUES_TOPIC,\n ]);\n\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for MessagingOperationValues enum definition\n *\n * A string identifying the kind of message consumption as defined in the [Operation names](#operation-names) section above. If the operation is "send", this attribute MUST NOT be set, since the operation can be inferred from the span kind in that case.\n * ---------------------------------------------------------------------------------------------------------- */\n\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_MESSAGINGOPERATIONVALUES_RECEIVE = 'receive';\nconst TMP_MESSAGINGOPERATIONVALUES_PROCESS = 'process';\n\n/**\n * A string identifying the kind of message consumption as defined in the [Operation names](#operation-names) section above. If the operation is "send", this attribute MUST NOT be set, since the operation can be inferred from the span kind in that case.\n *\n * @deprecated Use MESSAGING_OPERATION_TYPE_VALUE_RECEIVE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const MESSAGINGOPERATIONVALUES_RECEIVE =\n TMP_MESSAGINGOPERATIONVALUES_RECEIVE;\n\n/**\n * A string identifying the kind of message consumption as defined in the [Operation names](#operation-names) section above. If the operation is "send", this attribute MUST NOT be set, since the operation can be inferred from the span kind in that case.\n *\n * @deprecated Use MESSAGING_OPERATION_TYPE_VALUE_PROCESS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const MESSAGINGOPERATIONVALUES_PROCESS =\n TMP_MESSAGINGOPERATIONVALUES_PROCESS;\n\n/**\n * Identifies the Values for MessagingOperationValues enum definition\n *\n * A string identifying the kind of message consumption as defined in the [Operation names](#operation-names) section above. If the operation is "send", this attribute MUST NOT be set, since the operation can be inferred from the span kind in that case.\n * @deprecated Use the MESSAGINGOPERATIONVALUES_XXXXX constants rather than the MessagingOperationValues.XXXXX for bundle minification.\n */\nexport type MessagingOperationValues = {\n /** receive. */\n RECEIVE: 'receive';\n\n /** process. */\n PROCESS: 'process';\n};\n\n/**\n * The constant map of values for MessagingOperationValues.\n * @deprecated Use the MESSAGINGOPERATIONVALUES_XXXXX constants rather than the MessagingOperationValues.XXXXX for bundle minification.\n */\nexport const MessagingOperationValues: MessagingOperationValues =\n /*#__PURE__*/ createConstMap([\n TMP_MESSAGINGOPERATIONVALUES_RECEIVE,\n TMP_MESSAGINGOPERATIONVALUES_PROCESS,\n ]);\n\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for RpcGrpcStatusCodeValues enum definition\n *\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n * ---------------------------------------------------------------------------------------------------------- */\n\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_RPCGRPCSTATUSCODEVALUES_OK = 0;\nconst TMP_RPCGRPCSTATUSCODEVALUES_CANCELLED = 1;\nconst TMP_RPCGRPCSTATUSCODEVALUES_UNKNOWN = 2;\nconst TMP_RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT = 3;\nconst TMP_RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED = 4;\nconst TMP_RPCGRPCSTATUSCODEVALUES_NOT_FOUND = 5;\nconst TMP_RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS = 6;\nconst TMP_RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED = 7;\nconst TMP_RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED = 8;\nconst TMP_RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION = 9;\nconst TMP_RPCGRPCSTATUSCODEVALUES_ABORTED = 10;\nconst TMP_RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE = 11;\nconst TMP_RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED = 12;\nconst TMP_RPCGRPCSTATUSCODEVALUES_INTERNAL = 13;\nconst TMP_RPCGRPCSTATUSCODEVALUES_UNAVAILABLE = 14;\nconst TMP_RPCGRPCSTATUSCODEVALUES_DATA_LOSS = 15;\nconst TMP_RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED = 16;\n\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_OK in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const RPCGRPCSTATUSCODEVALUES_OK = TMP_RPCGRPCSTATUSCODEVALUES_OK;\n\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_CANCELLED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const RPCGRPCSTATUSCODEVALUES_CANCELLED =\n TMP_RPCGRPCSTATUSCODEVALUES_CANCELLED;\n\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_UNKNOWN in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const RPCGRPCSTATUSCODEVALUES_UNKNOWN =\n TMP_RPCGRPCSTATUSCODEVALUES_UNKNOWN;\n\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_INVALID_ARGUMENT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT =\n TMP_RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT;\n\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_DEADLINE_EXCEEDED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED =\n TMP_RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED;\n\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_NOT_FOUND in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const RPCGRPCSTATUSCODEVALUES_NOT_FOUND =\n TMP_RPCGRPCSTATUSCODEVALUES_NOT_FOUND;\n\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_ALREADY_EXISTS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS =\n TMP_RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS;\n\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_PERMISSION_DENIED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED =\n TMP_RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED;\n\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_RESOURCE_EXHAUSTED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED =\n TMP_RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED;\n\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_FAILED_PRECONDITION in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION =\n TMP_RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION;\n\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_ABORTED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const RPCGRPCSTATUSCODEVALUES_ABORTED =\n TMP_RPCGRPCSTATUSCODEVALUES_ABORTED;\n\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_OUT_OF_RANGE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE =\n TMP_RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE;\n\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_UNIMPLEMENTED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED =\n TMP_RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED;\n\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_INTERNAL in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const RPCGRPCSTATUSCODEVALUES_INTERNAL =\n TMP_RPCGRPCSTATUSCODEVALUES_INTERNAL;\n\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_UNAVAILABLE in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const RPCGRPCSTATUSCODEVALUES_UNAVAILABLE =\n TMP_RPCGRPCSTATUSCODEVALUES_UNAVAILABLE;\n\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_DATA_LOSS in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const RPCGRPCSTATUSCODEVALUES_DATA_LOSS =\n TMP_RPCGRPCSTATUSCODEVALUES_DATA_LOSS;\n\n/**\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n *\n * @deprecated Use RPC_GRPC_STATUS_CODE_VALUE_UNAUTHENTICATED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED =\n TMP_RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED;\n\n/**\n * Identifies the Values for RpcGrpcStatusCodeValues enum definition\n *\n * The [numeric status code](https://github.com/grpc/grpc/blob/v1.33.2/doc/statuscodes.md) of the gRPC request.\n * @deprecated Use the RPCGRPCSTATUSCODEVALUES_XXXXX constants rather than the RpcGrpcStatusCodeValues.XXXXX for bundle minification.\n */\nexport type RpcGrpcStatusCodeValues = {\n /** OK. */\n OK: 0;\n\n /** CANCELLED. */\n CANCELLED: 1;\n\n /** UNKNOWN. */\n UNKNOWN: 2;\n\n /** INVALID_ARGUMENT. */\n INVALID_ARGUMENT: 3;\n\n /** DEADLINE_EXCEEDED. */\n DEADLINE_EXCEEDED: 4;\n\n /** NOT_FOUND. */\n NOT_FOUND: 5;\n\n /** ALREADY_EXISTS. */\n ALREADY_EXISTS: 6;\n\n /** PERMISSION_DENIED. */\n PERMISSION_DENIED: 7;\n\n /** RESOURCE_EXHAUSTED. */\n RESOURCE_EXHAUSTED: 8;\n\n /** FAILED_PRECONDITION. */\n FAILED_PRECONDITION: 9;\n\n /** ABORTED. */\n ABORTED: 10;\n\n /** OUT_OF_RANGE. */\n OUT_OF_RANGE: 11;\n\n /** UNIMPLEMENTED. */\n UNIMPLEMENTED: 12;\n\n /** INTERNAL. */\n INTERNAL: 13;\n\n /** UNAVAILABLE. */\n UNAVAILABLE: 14;\n\n /** DATA_LOSS. */\n DATA_LOSS: 15;\n\n /** UNAUTHENTICATED. */\n UNAUTHENTICATED: 16;\n};\n\n/**\n * The constant map of values for RpcGrpcStatusCodeValues.\n * @deprecated Use the RPCGRPCSTATUSCODEVALUES_XXXXX constants rather than the RpcGrpcStatusCodeValues.XXXXX for bundle minification.\n */\nexport const RpcGrpcStatusCodeValues: RpcGrpcStatusCodeValues = {\n OK: TMP_RPCGRPCSTATUSCODEVALUES_OK,\n CANCELLED: TMP_RPCGRPCSTATUSCODEVALUES_CANCELLED,\n UNKNOWN: TMP_RPCGRPCSTATUSCODEVALUES_UNKNOWN,\n INVALID_ARGUMENT: TMP_RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT,\n DEADLINE_EXCEEDED: TMP_RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED,\n NOT_FOUND: TMP_RPCGRPCSTATUSCODEVALUES_NOT_FOUND,\n ALREADY_EXISTS: TMP_RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS,\n PERMISSION_DENIED: TMP_RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED,\n RESOURCE_EXHAUSTED: TMP_RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED,\n FAILED_PRECONDITION: TMP_RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION,\n ABORTED: TMP_RPCGRPCSTATUSCODEVALUES_ABORTED,\n OUT_OF_RANGE: TMP_RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE,\n UNIMPLEMENTED: TMP_RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED,\n INTERNAL: TMP_RPCGRPCSTATUSCODEVALUES_INTERNAL,\n UNAVAILABLE: TMP_RPCGRPCSTATUSCODEVALUES_UNAVAILABLE,\n DATA_LOSS: TMP_RPCGRPCSTATUSCODEVALUES_DATA_LOSS,\n UNAUTHENTICATED: TMP_RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED,\n};\n\n/* ----------------------------------------------------------------------------------------------------------\n * Constant values for MessageTypeValues enum definition\n *\n * Whether this is a received or sent message.\n * ---------------------------------------------------------------------------------------------------------- */\n\n// Temporary local constants to assign to the individual exports and the namespaced version\n// Required to avoid the namespace exports using the unminifiable export names for some package types\nconst TMP_MESSAGETYPEVALUES_SENT = 'SENT';\nconst TMP_MESSAGETYPEVALUES_RECEIVED = 'RECEIVED';\n\n/**\n * Whether this is a received or sent message.\n *\n * @deprecated Use MESSAGE_TYPE_VALUE_SENT in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const MESSAGETYPEVALUES_SENT = TMP_MESSAGETYPEVALUES_SENT;\n\n/**\n * Whether this is a received or sent message.\n *\n * @deprecated Use MESSAGE_TYPE_VALUE_RECEIVED in [incubating entry-point]({@link https://github.com/open-telemetry/opentelemetry-js/blob/main/semantic-conventions/README.md#unstable-semconv}).\n */\nexport const MESSAGETYPEVALUES_RECEIVED = TMP_MESSAGETYPEVALUES_RECEIVED;\n\n/**\n * Identifies the Values for MessageTypeValues enum definition\n *\n * Whether this is a received or sent message.\n * @deprecated Use the MESSAGETYPEVALUES_XXXXX constants rather than the MessageTypeValues.XXXXX for bundle minification.\n */\nexport type MessageTypeValues = {\n /** sent. */\n SENT: 'SENT';\n\n /** received. */\n RECEIVED: 'RECEIVED';\n};\n\n/**\n * The constant map of values for MessageTypeValues.\n * @deprecated Use the MESSAGETYPEVALUES_XXXXX constants rather than the MessageTypeValues.XXXXX for bundle minification.\n */\nexport const MessageTypeValues: MessageTypeValues =\n /*#__PURE__*/ createConstMap([\n TMP_MESSAGETYPEVALUES_SENT,\n TMP_MESSAGETYPEVALUES_RECEIVED,\n ]);\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n//-----------------------------------------------------------------------------------------------------------\n// DO NOT EDIT, this is an Auto-generated file from scripts/semconv/templates/registry/ts-stable/events.ts.j2\n//-----------------------------------------------------------------------------------------------------------\n\n/**\n * This event describes a single exception.\n */\nexport const EVENT_EXCEPTION = 'exception' as const;\n\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n//----------------------------------------------------------------------------------------------------------\n// DO NOT EDIT, this is an Auto-generated file from scripts/semconv/templates/register/stable/metrics.ts.j2\n//----------------------------------------------------------------------------------------------------------\n\n/**\n * Number of exceptions caught by exception handling middleware.\n *\n * @note Meter name: `Microsoft.AspNetCore.Diagnostics`; Added in: ASP.NET Core 8.0\n */\nexport const METRIC_ASPNETCORE_DIAGNOSTICS_EXCEPTIONS = 'aspnetcore.diagnostics.exceptions' as const;\n\n/**\n * Number of requests that are currently active on the server that hold a rate limiting lease.\n *\n * @note Meter name: `Microsoft.AspNetCore.RateLimiting`; Added in: ASP.NET Core 8.0\n */\nexport const METRIC_ASPNETCORE_RATE_LIMITING_ACTIVE_REQUEST_LEASES = 'aspnetcore.rate_limiting.active_request_leases' as const;\n\n/**\n * Number of requests that are currently queued, waiting to acquire a rate limiting lease.\n *\n * @note Meter name: `Microsoft.AspNetCore.RateLimiting`; Added in: ASP.NET Core 8.0\n */\nexport const METRIC_ASPNETCORE_RATE_LIMITING_QUEUED_REQUESTS = 'aspnetcore.rate_limiting.queued_requests' as const;\n\n/**\n * The time the request spent in a queue waiting to acquire a rate limiting lease.\n *\n * @note Meter name: `Microsoft.AspNetCore.RateLimiting`; Added in: ASP.NET Core 8.0\n */\nexport const METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_TIME_IN_QUEUE = 'aspnetcore.rate_limiting.request.time_in_queue' as const;\n\n/**\n * The duration of rate limiting lease held by requests on the server.\n *\n * @note Meter name: `Microsoft.AspNetCore.RateLimiting`; Added in: ASP.NET Core 8.0\n */\nexport const METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_LEASE_DURATION = 'aspnetcore.rate_limiting.request_lease.duration' as const;\n\n/**\n * Number of requests that tried to acquire a rate limiting lease.\n *\n * @note Requests could be:\n *\n * - Rejected by global or endpoint rate limiting policies\n * - Canceled while waiting for the lease.\n *\n * Meter name: `Microsoft.AspNetCore.RateLimiting`; Added in: ASP.NET Core 8.0\n */\nexport const METRIC_ASPNETCORE_RATE_LIMITING_REQUESTS = 'aspnetcore.rate_limiting.requests' as const;\n\n/**\n * Number of requests that were attempted to be matched to an endpoint.\n *\n * @note Meter name: `Microsoft.AspNetCore.Routing`; Added in: ASP.NET Core 8.0\n */\nexport const METRIC_ASPNETCORE_ROUTING_MATCH_ATTEMPTS = 'aspnetcore.routing.match_attempts' as const;\n\n/**\n * Duration of database client operations.\n *\n * @note Batch operations **SHOULD** be recorded as a single operation.\n */\nexport const METRIC_DB_CLIENT_OPERATION_DURATION = 'db.client.operation.duration' as const;\n\n/**\n * The number of .NET assemblies that are currently loaded.\n *\n * @note Meter name: `System.Runtime`; Added in: .NET 9.0.\n * This metric reports the same values as calling [`AppDomain.CurrentDomain.GetAssemblies().Length`](https://learn.microsoft.com/dotnet/api/system.appdomain.getassemblies).\n */\nexport const METRIC_DOTNET_ASSEMBLY_COUNT = 'dotnet.assembly.count' as const;\n\n/**\n * The number of exceptions that have been thrown in managed code.\n *\n * @note Meter name: `System.Runtime`; Added in: .NET 9.0.\n * This metric reports the same values as counting calls to [`AppDomain.CurrentDomain.FirstChanceException`](https://learn.microsoft.com/dotnet/api/system.appdomain.firstchanceexception).\n */\nexport const METRIC_DOTNET_EXCEPTIONS = 'dotnet.exceptions' as const;\n\n/**\n * The number of garbage collections that have occurred since the process has started.\n *\n * @note Meter name: `System.Runtime`; Added in: .NET 9.0.\n * This metric uses the [`GC.CollectionCount(int generation)`](https://learn.microsoft.com/dotnet/api/system.gc.collectioncount) API to calculate exclusive collections per generation.\n */\nexport const METRIC_DOTNET_GC_COLLECTIONS = 'dotnet.gc.collections' as const;\n\n/**\n * The *approximate* number of bytes allocated on the managed GC heap since the process has started. The returned value does not include any native allocations.\n *\n * @note Meter name: `System.Runtime`; Added in: .NET 9.0.\n * This metric reports the same values as calling [`GC.GetTotalAllocatedBytes()`](https://learn.microsoft.com/dotnet/api/system.gc.gettotalallocatedbytes).\n */\nexport const METRIC_DOTNET_GC_HEAP_TOTAL_ALLOCATED = 'dotnet.gc.heap.total_allocated' as const;\n\n/**\n * The heap fragmentation, as observed during the latest garbage collection.\n *\n * @note Meter name: `System.Runtime`; Added in: .NET 9.0.\n * This metric reports the same values as calling [`GC.GetGCMemoryInfo().GenerationInfo.FragmentationAfterBytes`](https://learn.microsoft.com/dotnet/api/system.gcgenerationinfo.fragmentationafterbytes).\n */\nexport const METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_FRAGMENTATION_SIZE = 'dotnet.gc.last_collection.heap.fragmentation.size' as const;\n\n/**\n * The managed GC heap size (including fragmentation), as observed during the latest garbage collection.\n *\n * @note Meter name: `System.Runtime`; Added in: .NET 9.0.\n * This metric reports the same values as calling [`GC.GetGCMemoryInfo().GenerationInfo.SizeAfterBytes`](https://learn.microsoft.com/dotnet/api/system.gcgenerationinfo.sizeafterbytes).\n */\nexport const METRIC_DOTNET_GC_LAST_COLLECTION_HEAP_SIZE = 'dotnet.gc.last_collection.heap.size' as const;\n\n/**\n * The amount of committed virtual memory in use by the .NET GC, as observed during the latest garbage collection.\n *\n * @note Meter name: `System.Runtime`; Added in: .NET 9.0.\n * This metric reports the same values as calling [`GC.GetGCMemoryInfo().TotalCommittedBytes`](https://learn.microsoft.com/dotnet/api/system.gcmemoryinfo.totalcommittedbytes). Committed virtual memory may be larger than the heap size because it includes both memory for storing existing objects (the heap size) and some extra memory that is ready to handle newly allocated objects in the future.\n */\nexport const METRIC_DOTNET_GC_LAST_COLLECTION_MEMORY_COMMITTED_SIZE = 'dotnet.gc.last_collection.memory.committed_size' as const;\n\n/**\n * The total amount of time paused in GC since the process has started.\n *\n * @note Meter name: `System.Runtime`; Added in: .NET 9.0.\n * This metric reports the same values as calling [`GC.GetTotalPauseDuration()`](https://learn.microsoft.com/dotnet/api/system.gc.gettotalpauseduration).\n */\nexport const METRIC_DOTNET_GC_PAUSE_TIME = 'dotnet.gc.pause.time' as const;\n\n/**\n * The amount of time the JIT compiler has spent compiling methods since the process has started.\n *\n * @note Meter name: `System.Runtime`; Added in: .NET 9.0.\n * This metric reports the same values as calling [`JitInfo.GetCompilationTime()`](https://learn.microsoft.com/dotnet/api/system.runtime.jitinfo.getcompilationtime).\n */\nexport const METRIC_DOTNET_JIT_COMPILATION_TIME = 'dotnet.jit.compilation.time' as const;\n\n/**\n * Count of bytes of intermediate language that have been compiled since the process has started.\n *\n * @note Meter name: `System.Runtime`; Added in: .NET 9.0.\n * This metric reports the same values as calling [`JitInfo.GetCompiledILBytes()`](https://learn.microsoft.com/dotnet/api/system.runtime.jitinfo.getcompiledilbytes).\n */\nexport const METRIC_DOTNET_JIT_COMPILED_IL_SIZE = 'dotnet.jit.compiled_il.size' as const;\n\n/**\n * The number of times the JIT compiler (re)compiled methods since the process has started.\n *\n * @note Meter name: `System.Runtime`; Added in: .NET 9.0.\n * This metric reports the same values as calling [`JitInfo.GetCompiledMethodCount()`](https://learn.microsoft.com/dotnet/api/system.runtime.jitinfo.getcompiledmethodcount).\n */\nexport const METRIC_DOTNET_JIT_COMPILED_METHODS = 'dotnet.jit.compiled_methods' as const;\n\n/**\n * The number of times there was contention when trying to acquire a monitor lock since the process has started.\n *\n * @note Meter name: `System.Runtime`; Added in: .NET 9.0.\n * This metric reports the same values as calling [`Monitor.LockContentionCount`](https://learn.microsoft.com/dotnet/api/system.threading.monitor.lockcontentioncount).\n */\nexport const METRIC_DOTNET_MONITOR_LOCK_CONTENTIONS = 'dotnet.monitor.lock_contentions' as const;\n\n/**\n * The number of processors available to the process.\n *\n * @note Meter name: `System.Runtime`; Added in: .NET 9.0.\n * This metric reports the same values as accessing [`Environment.ProcessorCount`](https://learn.microsoft.com/dotnet/api/system.environment.processorcount).\n */\nexport const METRIC_DOTNET_PROCESS_CPU_COUNT = 'dotnet.process.cpu.count' as const;\n\n/**\n * CPU time used by the process.\n *\n * @note Meter name: `System.Runtime`; Added in: .NET 9.0.\n * This metric reports the same values as accessing the corresponding processor time properties on [`System.Diagnostics.Process`](https://learn.microsoft.com/dotnet/api/system.diagnostics.process).\n */\nexport const METRIC_DOTNET_PROCESS_CPU_TIME = 'dotnet.process.cpu.time' as const;\n\n/**\n * The number of bytes of physical memory mapped to the process context.\n *\n * @note Meter name: `System.Runtime`; Added in: .NET 9.0.\n * This metric reports the same values as calling [`Environment.WorkingSet`](https://learn.microsoft.com/dotnet/api/system.environment.workingset).\n */\nexport const METRIC_DOTNET_PROCESS_MEMORY_WORKING_SET = 'dotnet.process.memory.working_set' as const;\n\n/**\n * The number of work items that are currently queued to be processed by the thread pool.\n *\n * @note Meter name: `System.Runtime`; Added in: .NET 9.0.\n * This metric reports the same values as calling [`ThreadPool.PendingWorkItemCount`](https://learn.microsoft.com/dotnet/api/system.threading.threadpool.pendingworkitemcount).\n */\nexport const METRIC_DOTNET_THREAD_POOL_QUEUE_LENGTH = 'dotnet.thread_pool.queue.length' as const;\n\n/**\n * The number of thread pool threads that currently exist.\n *\n * @note Meter name: `System.Runtime`; Added in: .NET 9.0.\n * This metric reports the same values as calling [`ThreadPool.ThreadCount`](https://learn.microsoft.com/dotnet/api/system.threading.threadpool.threadcount).\n */\nexport const METRIC_DOTNET_THREAD_POOL_THREAD_COUNT = 'dotnet.thread_pool.thread.count' as const;\n\n/**\n * The number of work items that the thread pool has completed since the process has started.\n *\n * @note Meter name: `System.Runtime`; Added in: .NET 9.0.\n * This metric reports the same values as calling [`ThreadPool.CompletedWorkItemCount`](https://learn.microsoft.com/dotnet/api/system.threading.threadpool.completedworkitemcount).\n */\nexport const METRIC_DOTNET_THREAD_POOL_WORK_ITEM_COUNT = 'dotnet.thread_pool.work_item.count' as const;\n\n/**\n * The number of timer instances that are currently active.\n *\n * @note Meter name: `System.Runtime`; Added in: .NET 9.0.\n * This metric reports the same values as calling [`Timer.ActiveCount`](https://learn.microsoft.com/dotnet/api/system.threading.timer.activecount).\n */\nexport const METRIC_DOTNET_TIMER_COUNT = 'dotnet.timer.count' as const;\n\n/**\n * Duration of HTTP client requests.\n */\nexport const METRIC_HTTP_CLIENT_REQUEST_DURATION = 'http.client.request.duration' as const;\n\n/**\n * Duration of HTTP server requests.\n */\nexport const METRIC_HTTP_SERVER_REQUEST_DURATION = 'http.server.request.duration' as const;\n\n/**\n * Number of classes currently loaded.\n */\nexport const METRIC_JVM_CLASS_COUNT = 'jvm.class.count' as const;\n\n/**\n * Number of classes loaded since JVM start.\n */\nexport const METRIC_JVM_CLASS_LOADED = 'jvm.class.loaded' as const;\n\n/**\n * Number of classes unloaded since JVM start.\n */\nexport const METRIC_JVM_CLASS_UNLOADED = 'jvm.class.unloaded' as const;\n\n/**\n * Number of processors available to the Java virtual machine.\n */\nexport const METRIC_JVM_CPU_COUNT = 'jvm.cpu.count' as const;\n\n/**\n * Recent CPU utilization for the process as reported by the JVM.\n *\n * @note The value range is [0.0,1.0]. This utilization is not defined as being for the specific interval since last measurement (unlike `system.cpu.utilization`). [Reference](https://docs.oracle.com/en/java/javase/17/docs/api/jdk.management/com/sun/management/OperatingSystemMXBean.html#getProcessCpuLoad()).\n */\nexport const METRIC_JVM_CPU_RECENT_UTILIZATION = 'jvm.cpu.recent_utilization' as const;\n\n/**\n * CPU time used by the process as reported by the JVM.\n */\nexport const METRIC_JVM_CPU_TIME = 'jvm.cpu.time' as const;\n\n/**\n * Duration of JVM garbage collection actions.\n */\nexport const METRIC_JVM_GC_DURATION = 'jvm.gc.duration' as const;\n\n/**\n * Measure of memory committed.\n */\nexport const METRIC_JVM_MEMORY_COMMITTED = 'jvm.memory.committed' as const;\n\n/**\n * Measure of max obtainable memory.\n */\nexport const METRIC_JVM_MEMORY_LIMIT = 'jvm.memory.limit' as const;\n\n/**\n * Measure of memory used.\n */\nexport const METRIC_JVM_MEMORY_USED = 'jvm.memory.used' as const;\n\n/**\n * Measure of memory used, as measured after the most recent garbage collection event on this pool.\n */\nexport const METRIC_JVM_MEMORY_USED_AFTER_LAST_GC = 'jvm.memory.used_after_last_gc' as const;\n\n/**\n * Number of executing platform threads.\n */\nexport const METRIC_JVM_THREAD_COUNT = 'jvm.thread.count' as const;\n\n/**\n * Number of connections that are currently active on the server.\n *\n * @note Meter name: `Microsoft.AspNetCore.Server.Kestrel`; Added in: ASP.NET Core 8.0\n */\nexport const METRIC_KESTREL_ACTIVE_CONNECTIONS = 'kestrel.active_connections' as const;\n\n/**\n * Number of TLS handshakes that are currently in progress on the server.\n *\n * @note Meter name: `Microsoft.AspNetCore.Server.Kestrel`; Added in: ASP.NET Core 8.0\n */\nexport const METRIC_KESTREL_ACTIVE_TLS_HANDSHAKES = 'kestrel.active_tls_handshakes' as const;\n\n/**\n * The duration of connections on the server.\n *\n * @note Meter name: `Microsoft.AspNetCore.Server.Kestrel`; Added in: ASP.NET Core 8.0\n */\nexport const METRIC_KESTREL_CONNECTION_DURATION = 'kestrel.connection.duration' as const;\n\n/**\n * Number of connections that are currently queued and are waiting to start.\n *\n * @note Meter name: `Microsoft.AspNetCore.Server.Kestrel`; Added in: ASP.NET Core 8.0\n */\nexport const METRIC_KESTREL_QUEUED_CONNECTIONS = 'kestrel.queued_connections' as const;\n\n/**\n * Number of HTTP requests on multiplexed connections (HTTP/2 and HTTP/3) that are currently queued and are waiting to start.\n *\n * @note Meter name: `Microsoft.AspNetCore.Server.Kestrel`; Added in: ASP.NET Core 8.0\n */\nexport const METRIC_KESTREL_QUEUED_REQUESTS = 'kestrel.queued_requests' as const;\n\n/**\n * Number of connections rejected by the server.\n *\n * @note Connections are rejected when the currently active count exceeds the value configured with `MaxConcurrentConnections`.\n * Meter name: `Microsoft.AspNetCore.Server.Kestrel`; Added in: ASP.NET Core 8.0\n */\nexport const METRIC_KESTREL_REJECTED_CONNECTIONS = 'kestrel.rejected_connections' as const;\n\n/**\n * The duration of TLS handshakes on the server.\n *\n * @note Meter name: `Microsoft.AspNetCore.Server.Kestrel`; Added in: ASP.NET Core 8.0\n */\nexport const METRIC_KESTREL_TLS_HANDSHAKE_DURATION = 'kestrel.tls_handshake.duration' as const;\n\n/**\n * Number of connections that are currently upgraded (WebSockets). .\n *\n * @note The counter only tracks HTTP/1.1 connections.\n *\n * Meter name: `Microsoft.AspNetCore.Server.Kestrel`; Added in: ASP.NET Core 8.0\n */\nexport const METRIC_KESTREL_UPGRADED_CONNECTIONS = 'kestrel.upgraded_connections' as const;\n\n/**\n * Number of connections that are currently active on the server.\n *\n * @note Meter name: `Microsoft.AspNetCore.Http.Connections`; Added in: ASP.NET Core 8.0\n */\nexport const METRIC_SIGNALR_SERVER_ACTIVE_CONNECTIONS = 'signalr.server.active_connections' as const;\n\n/**\n * The duration of connections on the server.\n *\n * @note Meter name: `Microsoft.AspNetCore.Http.Connections`; Added in: ASP.NET Core 8.0\n */\nexport const METRIC_SIGNALR_SERVER_CONNECTION_DURATION = 'signalr.server.connection.duration' as const;\n\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n\n/**\n * Specifies the category of synthetic traffic, such as tests or bots.\n *\n * @note This attribute **MAY** be derived from the contents of the `user_agent.original` attribute. Components that populate the attribute are responsible for determining what they consider to be synthetic bot or test traffic. This attribute can either be set for self-identification purposes, or on telemetry detected to be generated as a result of a synthetic request. This attribute is useful for distinguishing between genuine client traffic and synthetic traffic generated by bots or tests.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_USER_AGENT_SYNTHETIC_TYPE =\n 'user_agent.synthetic.type' as const;\n\n/**\n * Enum value \"bot\" for attribute {@link ATTR_USER_AGENT_SYNTHETIC_TYPE}.\n */\nexport const USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT = 'bot' as const;\n\n/**\n * Enum value \"test\" for attribute {@link ATTR_USER_AGENT_SYNTHETIC_TYPE}.\n */\nexport const USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST = 'test' as const;\n\n/**\n * Deprecated, use `client.address` instead.\n *\n * @example \"83.164.160.102\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `client.address`.\n */\nexport const ATTR_HTTP_CLIENT_IP = 'http.client_ip' as const;\n\n/**\n * Deprecated, use `network.protocol.name` instead.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `network.protocol.name`.\n */\nexport const ATTR_HTTP_FLAVOR = 'http.flavor' as const;\n\n/**\n * Deprecated, use one of `server.address`, `client.address` or `http.request.header.host` instead, depending on the usage.\n *\n * @example www.example.org\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by one of `server.address`, `client.address` or `http.request.header.host`, depending on the usage.\n */\nexport const ATTR_HTTP_HOST = 'http.host' as const;\n\n/**\n * Deprecated, use `http.request.method` instead.\n *\n * @example GET\n * @example POST\n * @example HEAD\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `http.request.method`.\n */\nexport const ATTR_HTTP_METHOD = 'http.method' as const;\n\n/**\n * Deprecated, use `http.request.header.` instead.\n *\n * @example 3495\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `http.request.header.`.\n */\nexport const ATTR_HTTP_REQUEST_CONTENT_LENGTH =\n 'http.request_content_length' as const;\n\n/**\n * Deprecated, use `http.request.body.size` instead.\n *\n * @example 5493\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `http.request.body.size`.\n */\nexport const ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED =\n 'http.request_content_length_uncompressed' as const;\n\n/**\n * Deprecated, use `http.response.header.` instead.\n *\n * @example 3495\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `http.response.header.`.\n */\nexport const ATTR_HTTP_RESPONSE_CONTENT_LENGTH =\n 'http.response_content_length' as const;\n\n/**\n * Deprecated, use `http.response.body.size` instead.\n *\n * @example 5493\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replace by `http.response.body.size`.\n */\nexport const ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED =\n 'http.response_content_length_uncompressed' as const;\n\n/**\n * Deprecated, use `url.scheme` instead.\n *\n * @example http\n * @example https\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `url.scheme` instead.\n */\nexport const ATTR_HTTP_SCHEME = 'http.scheme' as const;\n\n/**\n * Deprecated, use `server.address` instead.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address`.\n */\nexport const ATTR_HTTP_SERVER_NAME = 'http.server_name' as const;\n\n/**\n * Deprecated, use `http.response.status_code` instead.\n *\n * @example 200\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `http.response.status_code`.\n */\nexport const ATTR_HTTP_STATUS_CODE = 'http.status_code' as const;\n\n/**\n * Deprecated, use `url.path` and `url.query` instead.\n *\n * @example /search?q=OpenTelemetry#SemConv\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Split to `url.path` and `url.query.\n */\nexport const ATTR_HTTP_TARGET = 'http.target' as const;\n\n/**\n * Deprecated, use `url.full` instead.\n *\n * @example https://www.foo.bar/search?q=OpenTelemetry#SemConv\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `url.full`.\n */\nexport const ATTR_HTTP_URL = 'http.url' as const;\n\n/**\n * Deprecated, use `user_agent.original` instead.\n *\n * @example CERN-LineMode/2.15 libwww/2.17b3\n * @example Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `user_agent.original`.\n */\nexport const ATTR_HTTP_USER_AGENT = 'http.user_agent' as const;\n\n/**\n * Deprecated, use `network.local.address`.\n *\n * @example \"192.168.0.1\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `network.local.address`.\n */\nexport const ATTR_NET_HOST_IP = 'net.host.ip' as const;\n\n/**\n * Deprecated, use `server.address`.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address`.\n */\nexport const ATTR_NET_HOST_NAME = 'net.host.name' as const;\n\n/**\n * Deprecated, use `server.port`.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port`.\n */\nexport const ATTR_NET_HOST_PORT = 'net.host.port' as const;\n\n/**\n * Deprecated, use `network.peer.address`.\n *\n * @example \"127.0.0.1\"\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `network.peer.address`.\n */\nexport const ATTR_NET_PEER_IP = 'net.peer.ip' as const;\n\n/**\n * Deprecated, use `server.address` on client spans and `client.address` on server spans.\n *\n * @example example.com\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.address` on client spans and `client.address` on server spans.\n */\nexport const ATTR_NET_PEER_NAME = 'net.peer.name' as const;\n\n/**\n * Deprecated, use `server.port` on client spans and `client.port` on server spans.\n *\n * @example 8080\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `server.port` on client spans and `client.port` on server spans.\n */\nexport const ATTR_NET_PEER_PORT = 'net.peer.port' as const;\n\n/**\n * Deprecated, use `network.transport`.\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n *\n * @deprecated Replaced by `network.transport`.\n */\nexport const ATTR_NET_TRANSPORT = 'net.transport' as const;\n\n/**\n * Enum value \"ip_tcp\" for attribute {@link ATTR_NET_TRANSPORT}.\n */\nexport const NET_TRANSPORT_VALUE_IP_TCP = 'ip_tcp' as const;\n\n/**\n * Enum value \"ip_udp\" for attribute {@link ATTR_NET_TRANSPORT}.\n */\nexport const NET_TRANSPORT_VALUE_IP_UDP = 'ip_udp' as const;\n\n/**\n * Enum value \"1.1\" for attribute {@link ATTR_HTTP_FLAVOR}.\n */\nexport const HTTP_FLAVOR_VALUE_HTTP_1_1 = '1.1' as const;\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/semantic_conventions/http.md\n */\nexport enum AttributeNames {\n HTTP_ERROR_NAME = 'http.error_name',\n HTTP_ERROR_MESSAGE = 'http.error_message',\n HTTP_STATUS_TEXT = 'http.status_text',\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type * as http from 'http';\nimport type * as https from 'https';\nimport type { get, IncomingMessage, request } from 'http';\nimport type * as url from 'url';\n\nexport type IgnoreMatcher = string | RegExp | ((url: string) => boolean);\nexport type HttpCallback = (res: IncomingMessage) => void;\nexport type RequestFunction = typeof request;\nexport type GetFunction = typeof get;\n\nexport type HttpCallbackOptional = HttpCallback | undefined;\n\n// from node 10+\nexport type RequestSignature = [http.RequestOptions, HttpCallbackOptional] &\n HttpCallback;\n\nexport type HttpRequestArgs = Array;\n\nexport type ParsedRequestOptions =\n | (http.RequestOptions & Partial)\n | http.RequestOptions;\nexport type Http = typeof http;\nexport type Https = typeof https;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type Func = (...args: any[]) => T;\n\nexport interface Err extends Error {\n errno?: number;\n code?: string;\n path?: string;\n syscall?: string;\n stack?: string;\n}\n\n/**\n * Names of possible synthetic test sources.\n */\nexport const SYNTHETIC_TEST_NAMES = ['alwayson'];\n\n/**\n * Names of possible synthetic bot sources.\n */\nexport const SYNTHETIC_BOT_NAMES = ['googlebot', 'bingbot'];\n\n/**\n * REDACTED string used to replace sensitive information in URLs.\n */\nexport const STR_REDACTED = 'REDACTED';\n\n/**\n * List of URL query keys that are considered sensitive and whose value should be redacted.\n */\nexport const DEFAULT_QUERY_STRINGS_TO_REDACT = [\n 'sig',\n 'Signature',\n 'AWSAccessKeyId',\n 'X-Goog-Signature',\n] as const;\n","'use strict';\n\nvar util = require('util');\n\n/**\n * An error thrown by the parser on unexpected input.\n *\n * @constructor\n * @param {string} message The error message.\n * @param {string} input The unexpected input.\n * @public\n */\nfunction ParseError(message, input) {\n Error.captureStackTrace(this, ParseError);\n\n this.name = this.constructor.name;\n this.message = message;\n this.input = input;\n}\n\nutil.inherits(ParseError, Error);\n\nmodule.exports = ParseError;\n","'use strict';\n\n/**\n * Check if a character is a delimiter as defined in section 3.2.6 of RFC 7230.\n *\n *\n * @param {number} code The code of the character to check.\n * @returns {boolean} `true` if the character is a delimiter, else `false`.\n * @public\n */\nfunction isDelimiter(code) {\n return code === 0x22 // '\"'\n || code === 0x28 // '('\n || code === 0x29 // ')'\n || code === 0x2C // ','\n || code === 0x2F // '/'\n || code >= 0x3A && code <= 0x40 // ':', ';', '<', '=', '>', '?' '@'\n || code >= 0x5B && code <= 0x5D // '[', '\\', ']'\n || code === 0x7B // '{'\n || code === 0x7D; // '}'\n}\n\n/**\n * Check if a character is allowed in a token as defined in section 3.2.6\n * of RFC 7230.\n *\n * @param {number} code The code of the character to check.\n * @returns {boolean} `true` if the character is allowed, else `false`.\n * @public\n */\nfunction isTokenChar(code) {\n return code === 0x21 // '!'\n || code >= 0x23 && code <= 0x27 // '#', '$', '%', '&', '''\n || code === 0x2A // '*'\n || code === 0x2B // '+'\n || code === 0x2D // '-'\n || code === 0x2E // '.'\n || code >= 0x30 && code <= 0x39 // 0-9\n || code >= 0x41 && code <= 0x5A // A-Z\n || code >= 0x5E && code <= 0x7A // '^', '_', '`', a-z\n || code === 0x7C // '|'\n || code === 0x7E; // '~'\n}\n\n/**\n * Check if a character is a printable ASCII character.\n *\n * @param {number} code The code of the character to check.\n * @returns {boolean} `true` if `code` is in the %x20-7E range, else `false`.\n * @public\n */\nfunction isPrint(code) {\n return code >= 0x20 && code <= 0x7E;\n}\n\n/**\n * Check if a character is an extended ASCII character.\n *\n * @param {number} code The code of the character to check.\n * @returns {boolean} `true` if `code` is in the %x80-FF range, else `false`.\n * @public\n */\nfunction isExtended(code) {\n return code >= 0x80 && code <= 0xFF;\n}\n\nmodule.exports = {\n isDelimiter: isDelimiter,\n isTokenChar: isTokenChar,\n isExtended: isExtended,\n isPrint: isPrint\n};\n","'use strict';\n\nvar util = require('util');\n\nvar ParseError = require('./lib/error');\nvar ascii = require('./lib/ascii');\n\nvar isDelimiter = ascii.isDelimiter;\nvar isTokenChar = ascii.isTokenChar;\nvar isExtended = ascii.isExtended;\nvar isPrint = ascii.isPrint;\n\n/**\n * Unescape a string.\n *\n * @param {string} str The string to unescape.\n * @returns {string} A new unescaped string.\n * @private\n */\nfunction decode(str) {\n return str.replace(/\\\\(.)/g, '$1');\n}\n\n/**\n * Build an error message when an unexpected character is found.\n *\n * @param {string} header The header field value.\n * @param {number} position The position of the unexpected character.\n * @returns {string} The error message.\n * @private\n */\nfunction unexpectedCharacterMessage(header, position) {\n return util.format(\n \"Unexpected character '%s' at index %d\",\n header.charAt(position),\n position\n );\n}\n\n/**\n * Parse the `Forwarded` header field value into an array of objects.\n *\n * @param {string} header The header field value.\n * @returns {Object[]}\n * @public\n */\nfunction parse(header) {\n var mustUnescape = false;\n var isEscaping = false;\n var inQuotes = false;\n var forwarded = {};\n var output = [];\n var start = -1;\n var end = -1;\n var parameter;\n var code;\n\n for (var i = 0; i < header.length; i++) {\n code = header.charCodeAt(i);\n\n if (parameter === undefined) {\n if (\n i !== 0 &&\n start === -1 &&\n (code === 0x20/*' '*/ || code === 0x09/*'\\t'*/)\n ) {\n continue;\n }\n\n if (isTokenChar(code)) {\n if (start === -1) start = i;\n } else if (code === 0x3D/*'='*/ && start !== -1) {\n parameter = header.slice(start, i).toLowerCase();\n start = -1;\n } else {\n throw new ParseError(unexpectedCharacterMessage(header, i), header);\n }\n } else {\n if (isEscaping && (code === 0x09 || isPrint(code) || isExtended(code))) {\n isEscaping = false;\n } else if (isTokenChar(code)) {\n if (end !== -1) {\n throw new ParseError(unexpectedCharacterMessage(header, i), header);\n }\n\n if (start === -1) start = i;\n } else if (isDelimiter(code) || isExtended(code)) {\n if (inQuotes) {\n if (code === 0x22/*'\"'*/) {\n inQuotes = false;\n end = i;\n } else if (code === 0x5C/*'\\'*/) {\n if (start === -1) start = i;\n isEscaping = mustUnescape = true;\n } else if (start === -1) {\n start = i;\n }\n } else if (code === 0x22 && header.charCodeAt(i - 1) === 0x3D) {\n inQuotes = true;\n } else if (\n (code === 0x2C/*','*/|| code === 0x3B/*';'*/) &&\n (start !== -1 || end !== -1)\n ) {\n if (start !== -1) {\n if (end === -1) end = i;\n forwarded[parameter] = mustUnescape\n ? decode(header.slice(start, end))\n : header.slice(start, end);\n } else {\n forwarded[parameter] = '';\n }\n\n if (code === 0x2C) {\n output.push(forwarded);\n forwarded = {};\n }\n\n parameter = undefined;\n start = end = -1;\n } else {\n throw new ParseError(unexpectedCharacterMessage(header, i), header);\n }\n } else if (code === 0x20 || code === 0x09) {\n if (end !== -1) continue;\n\n if (inQuotes) {\n if (start === -1) start = i;\n } else if (start !== -1) {\n end = i;\n } else {\n throw new ParseError(unexpectedCharacterMessage(header, i), header);\n }\n } else {\n throw new ParseError(unexpectedCharacterMessage(header, i), header);\n }\n }\n }\n\n if (\n parameter === undefined ||\n inQuotes ||\n (start === -1 && end === -1) ||\n code === 0x20 ||\n code === 0x09\n ) {\n throw new ParseError('Unexpected end of input', header);\n }\n\n if (start !== -1) {\n if (end === -1) end = i;\n forwarded[parameter] = mustUnescape\n ? decode(header.slice(start, end))\n : header.slice(start, end);\n } else {\n forwarded[parameter] = '';\n }\n\n output.push(forwarded);\n return output;\n}\n\nmodule.exports = parse;\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nimport type {\n Attributes,\n Span,\n DiagLogger,\n AttributeValue,\n} from '@opentelemetry/api';\nimport { SpanStatusCode, context, SpanKind } from '@opentelemetry/api';\nimport {\n ATTR_CLIENT_ADDRESS,\n ATTR_ERROR_TYPE,\n ATTR_HTTP_REQUEST_METHOD,\n ATTR_HTTP_REQUEST_METHOD_ORIGINAL,\n ATTR_HTTP_RESPONSE_STATUS_CODE,\n ATTR_HTTP_ROUTE,\n ATTR_NETWORK_PEER_ADDRESS,\n ATTR_NETWORK_PEER_PORT,\n ATTR_NETWORK_PROTOCOL_VERSION,\n ATTR_SERVER_ADDRESS,\n ATTR_SERVER_PORT,\n ATTR_URL_FULL,\n ATTR_URL_PATH,\n ATTR_URL_QUERY,\n ATTR_URL_SCHEME,\n ATTR_USER_AGENT_ORIGINAL,\n} from '@opentelemetry/semantic-conventions';\nimport {\n ATTR_HTTP_CLIENT_IP,\n ATTR_HTTP_FLAVOR,\n ATTR_HTTP_HOST,\n ATTR_HTTP_METHOD,\n ATTR_HTTP_REQUEST_CONTENT_LENGTH,\n ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED,\n ATTR_HTTP_RESPONSE_CONTENT_LENGTH,\n ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED,\n ATTR_HTTP_SCHEME,\n ATTR_HTTP_SERVER_NAME,\n ATTR_HTTP_STATUS_CODE,\n ATTR_HTTP_TARGET,\n ATTR_HTTP_URL,\n ATTR_HTTP_USER_AGENT,\n ATTR_NET_HOST_IP,\n ATTR_NET_HOST_NAME,\n ATTR_NET_HOST_PORT,\n ATTR_NET_PEER_IP,\n ATTR_NET_PEER_NAME,\n ATTR_NET_PEER_PORT,\n ATTR_NET_TRANSPORT,\n NET_TRANSPORT_VALUE_IP_TCP,\n NET_TRANSPORT_VALUE_IP_UDP,\n ATTR_USER_AGENT_SYNTHETIC_TYPE,\n USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT,\n USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST,\n} from './semconv';\nimport type {\n IncomingHttpHeaders,\n IncomingMessage,\n OutgoingHttpHeader,\n OutgoingHttpHeaders,\n RequestOptions,\n ServerResponse,\n} from 'http';\nimport { getRPCMetadata, RPCType } from '@opentelemetry/core';\nimport { SemconvStability } from '@opentelemetry/instrumentation';\nimport * as url from 'url';\nimport { AttributeNames } from './enums/AttributeNames';\nimport type {\n Err,\n IgnoreMatcher,\n ParsedRequestOptions,\n} from './internal-types';\nimport { SYNTHETIC_BOT_NAMES, SYNTHETIC_TEST_NAMES } from './internal-types';\nimport {\n DEFAULT_QUERY_STRINGS_TO_REDACT,\n STR_REDACTED,\n} from './internal-types';\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nimport forwardedParse = require('forwarded-parse');\n\n/**\n * Get an absolute url\n */\nexport const getAbsoluteUrl = (\n requestUrl: ParsedRequestOptions | null,\n headers: IncomingHttpHeaders | OutgoingHttpHeaders,\n fallbackProtocol = 'http:',\n redactedQueryParams: string[] = Array.from(DEFAULT_QUERY_STRINGS_TO_REDACT)\n): string => {\n const reqUrlObject = requestUrl || {};\n const protocol = reqUrlObject.protocol || fallbackProtocol;\n const port = (reqUrlObject.port || '').toString();\n let path = reqUrlObject.path || '/';\n let host =\n reqUrlObject.host || reqUrlObject.hostname || headers.host || 'localhost';\n // if there is no port in host and there is a port\n // it should be displayed if it's not 80 and 443 (default ports)\n if (\n (host as string).indexOf(':') === -1 &&\n port &&\n port !== '80' &&\n port !== '443'\n ) {\n host += `:${port}`;\n }\n // Redact sensitive query parameters\n if (path.includes('?')) {\n try {\n const parsedUrl = new URL(path, 'http://localhost');\n const sensitiveParamsToRedact: string[] = redactedQueryParams || [];\n\n for (const sensitiveParam of sensitiveParamsToRedact) {\n if (parsedUrl.searchParams.get(sensitiveParam)) {\n parsedUrl.searchParams.set(sensitiveParam, STR_REDACTED);\n }\n }\n\n path = `${parsedUrl.pathname}${parsedUrl.search}`;\n } catch {\n // Ignore error, as the path was not a valid URL.\n }\n }\n const authPart = reqUrlObject.auth ? `${STR_REDACTED}:${STR_REDACTED}@` : '';\n return `${protocol}//${authPart}${host}${path}`;\n};\n\n/**\n * Parse status code from HTTP response. [More details](https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/data-http.md#status)\n */\nexport const parseResponseStatus = (\n kind: SpanKind,\n statusCode?: number\n): SpanStatusCode => {\n const upperBound = kind === SpanKind.CLIENT ? 400 : 500;\n // 1xx, 2xx, 3xx are OK on client and server\n // 4xx is OK on server\n if (statusCode && statusCode >= 100 && statusCode < upperBound) {\n return SpanStatusCode.UNSET;\n }\n\n // All other codes are error\n return SpanStatusCode.ERROR;\n};\n\n/**\n * Check whether the given obj match pattern\n * @param constant e.g URL of request\n * @param pattern Match pattern\n */\nexport const satisfiesPattern = (\n constant: string,\n pattern: IgnoreMatcher\n): boolean => {\n if (typeof pattern === 'string') {\n return pattern === constant;\n } else if (pattern instanceof RegExp) {\n return pattern.test(constant);\n } else if (typeof pattern === 'function') {\n return pattern(constant);\n } else {\n throw new TypeError('Pattern is in unsupported datatype');\n }\n};\n\n/**\n * Sets the span with the error passed in params\n * @param {Span} span the span that need to be set\n * @param {Error} error error that will be set to span\n * @param {SemconvStability} semconvStability determines which semconv version to use\n */\nexport const setSpanWithError = (\n span: Span,\n error: Err,\n semconvStability: SemconvStability\n): void => {\n const message = error.message;\n\n if (semconvStability & SemconvStability.OLD) {\n span.setAttribute(AttributeNames.HTTP_ERROR_NAME, error.name);\n span.setAttribute(AttributeNames.HTTP_ERROR_MESSAGE, message);\n }\n\n if (semconvStability & SemconvStability.STABLE) {\n span.setAttribute(ATTR_ERROR_TYPE, error.name);\n }\n\n span.setStatus({ code: SpanStatusCode.ERROR, message });\n span.recordException(error);\n};\n/**\n * Adds attributes for request content-length and content-encoding HTTP headers\n * @param { IncomingMessage } Request object whose headers will be analyzed\n * @param { Attributes } Attributes object to be modified\n */\nexport const setRequestContentLengthAttribute = (\n request: IncomingMessage,\n attributes: Attributes\n): void => {\n const length = getContentLength(request.headers);\n if (length === null) return;\n\n if (isCompressed(request.headers)) {\n attributes[ATTR_HTTP_REQUEST_CONTENT_LENGTH] = length;\n } else {\n attributes[ATTR_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED] = length;\n }\n};\n\n/**\n * Adds attributes for response content-length and content-encoding HTTP headers\n * @param { IncomingMessage } Response object whose headers will be analyzed\n * @param { Attributes } Attributes object to be modified\n *\n * @deprecated this is for an older version of semconv. It is retained for compatibility using OTEL_SEMCONV_STABILITY_OPT_IN\n */\nexport const setResponseContentLengthAttribute = (\n response: IncomingMessage,\n attributes: Attributes\n): void => {\n const length = getContentLength(response.headers);\n if (length === null) return;\n\n if (isCompressed(response.headers)) {\n attributes[ATTR_HTTP_RESPONSE_CONTENT_LENGTH] = length;\n } else {\n attributes[ATTR_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED] = length;\n }\n};\n\nfunction getContentLength(\n headers: OutgoingHttpHeaders | IncomingHttpHeaders\n): number | null {\n const contentLengthHeader = headers['content-length'];\n if (contentLengthHeader === undefined) return null;\n\n const contentLength = parseInt(contentLengthHeader as string, 10);\n if (isNaN(contentLength)) return null;\n\n return contentLength;\n}\n\nexport const isCompressed = (\n headers: OutgoingHttpHeaders | IncomingHttpHeaders\n): boolean => {\n const encoding = headers['content-encoding'];\n\n return !!encoding && encoding !== 'identity';\n};\n\n/**\n * Mimics Node.js conversion of URL strings to RequestOptions expected by\n * `http.request` and `https.request` APIs.\n *\n * See https://github.com/nodejs/node/blob/2505e217bba05fc581b572c685c5cf280a16c5a3/lib/internal/url.js#L1415-L1437\n *\n * @param stringUrl\n * @throws TypeError if the URL is not valid.\n */\nfunction stringUrlToHttpOptions(\n stringUrl: string\n): RequestOptions & { pathname: string } {\n // This is heavily inspired by Node.js handling of the same situation, trying\n // to follow it as closely as possible while keeping in mind that we only\n // deal with string URLs, not URL objects.\n const {\n hostname,\n pathname,\n port,\n username,\n password,\n search,\n protocol,\n hash,\n href,\n origin,\n host,\n } = new URL(stringUrl);\n\n const options: RequestOptions & {\n pathname: string;\n hash: string;\n search: string;\n href: string;\n origin: string;\n } = {\n protocol: protocol,\n hostname:\n hostname && hostname[0] === '[' ? hostname.slice(1, -1) : hostname,\n hash: hash,\n search: search,\n pathname: pathname,\n path: `${pathname || ''}${search || ''}`,\n href: href,\n origin: origin,\n host: host,\n };\n if (port !== '') {\n options.port = Number(port);\n }\n if (username || password) {\n options.auth = `${decodeURIComponent(username)}:${decodeURIComponent(\n password\n )}`;\n }\n return options;\n}\n\n/**\n * Makes sure options is an url object\n * return an object with default value and parsed options\n * @param logger component logger\n * @param options original options for the request\n * @param [extraOptions] additional options for the request\n */\nexport const getRequestInfo = (\n logger: DiagLogger,\n options: url.URL | RequestOptions | string,\n extraOptions?: RequestOptions\n): {\n origin: string;\n pathname: string;\n method: string;\n invalidUrl: boolean;\n optionsParsed: RequestOptions;\n} => {\n let pathname: string;\n let origin: string;\n let optionsParsed: RequestOptions;\n let invalidUrl = false;\n if (typeof options === 'string') {\n try {\n const convertedOptions = stringUrlToHttpOptions(options);\n optionsParsed = convertedOptions;\n pathname = convertedOptions.pathname || '/';\n } catch (e) {\n invalidUrl = true;\n logger.verbose(\n 'Unable to parse URL provided to HTTP request, using fallback to determine path. Original error:',\n e\n );\n // for backward compatibility with how url.parse() behaved.\n optionsParsed = {\n path: options,\n };\n pathname = optionsParsed.path || '/';\n }\n\n origin = `${optionsParsed.protocol || 'http:'}//${optionsParsed.host}`;\n if (extraOptions !== undefined) {\n Object.assign(optionsParsed, extraOptions);\n }\n } else if (options instanceof url.URL) {\n optionsParsed = {\n protocol: options.protocol,\n hostname:\n typeof options.hostname === 'string' && options.hostname.startsWith('[')\n ? options.hostname.slice(1, -1)\n : options.hostname,\n path: `${options.pathname || ''}${options.search || ''}`,\n };\n if (options.port !== '') {\n optionsParsed.port = Number(options.port);\n }\n if (options.username || options.password) {\n optionsParsed.auth = `${options.username}:${options.password}`;\n }\n pathname = options.pathname;\n origin = options.origin;\n if (extraOptions !== undefined) {\n Object.assign(optionsParsed, extraOptions);\n }\n } else {\n optionsParsed = Object.assign(\n { protocol: options.host ? 'http:' : undefined },\n options\n );\n\n const hostname =\n optionsParsed.host ||\n (optionsParsed.port != null\n ? `${optionsParsed.hostname}${optionsParsed.port}`\n : optionsParsed.hostname);\n origin = `${optionsParsed.protocol || 'http:'}//${hostname}`;\n\n pathname = (options as url.URL).pathname;\n if (!pathname && optionsParsed.path) {\n try {\n const parsedUrl = new URL(optionsParsed.path, origin);\n pathname = parsedUrl.pathname || '/';\n } catch {\n pathname = '/';\n }\n }\n }\n\n // some packages return method in lowercase..\n // ensure upperCase for consistency\n const method = optionsParsed.method\n ? optionsParsed.method.toUpperCase()\n : 'GET';\n\n return { origin, pathname, method, optionsParsed, invalidUrl };\n};\n\n/**\n * Makes sure options is of type string or object\n * @param options for the request\n */\nexport const isValidOptionsType = (options: unknown): boolean => {\n if (!options) {\n return false;\n }\n\n const type = typeof options;\n return type === 'string' || (type === 'object' && !Array.isArray(options));\n};\n\nexport const extractHostnameAndPort = (\n requestOptions: Pick<\n ParsedRequestOptions,\n 'hostname' | 'host' | 'port' | 'protocol'\n >\n): { hostname: string; port: number | string } => {\n if (requestOptions.hostname && requestOptions.port) {\n return { hostname: requestOptions.hostname, port: requestOptions.port };\n }\n const matches = requestOptions.host?.match(/^([^:/ ]+)(:\\d{1,5})?/) || null;\n const hostname =\n requestOptions.hostname || (matches === null ? 'localhost' : matches[1]);\n let port = requestOptions.port;\n if (!port) {\n if (matches && matches[2]) {\n // remove the leading \":\". The extracted port would be something like \":8080\"\n port = matches[2].substring(1);\n } else {\n port = requestOptions.protocol === 'https:' ? '443' : '80';\n }\n }\n return { hostname, port };\n};\n\n/**\n * Returns outgoing request attributes scoped to the options passed to the request\n * @param {ParsedRequestOptions} requestOptions the same options used to make the request\n * @param {{ component: string, hostname: string, hookAttributes?: Attributes }} options used to pass data needed to create attributes\n * @param {SemconvStability} semconvStability determines which semconv version to use\n */\nexport const getOutgoingRequestAttributes = (\n requestOptions: ParsedRequestOptions,\n options: {\n component: string;\n hostname: string;\n port: string | number;\n hookAttributes?: Attributes;\n redactedQueryParams?: string[];\n },\n semconvStability: SemconvStability,\n enableSyntheticSourceDetection: boolean\n): Attributes => {\n const hostname = options.hostname;\n const port = options.port;\n const method = requestOptions.method ?? 'GET';\n const normalizedMethod = normalizeMethod(method);\n const headers = (requestOptions.headers || {}) as OutgoingHttpHeaders;\n const userAgent = headers['user-agent'];\n const urlFull = getAbsoluteUrl(\n requestOptions,\n headers,\n `${options.component}:`,\n options.redactedQueryParams\n );\n\n const oldAttributes: Attributes = {\n [ATTR_HTTP_URL]: urlFull,\n [ATTR_HTTP_METHOD]: method,\n [ATTR_HTTP_TARGET]: requestOptions.path || '/',\n [ATTR_NET_PEER_NAME]: hostname,\n [ATTR_HTTP_HOST]: headers.host ?? `${hostname}:${port}`,\n };\n\n const newAttributes: Attributes = {\n // Required attributes\n [ATTR_HTTP_REQUEST_METHOD]: normalizedMethod,\n [ATTR_SERVER_ADDRESS]: hostname,\n [ATTR_SERVER_PORT]: Number(port),\n [ATTR_URL_FULL]: urlFull,\n [ATTR_USER_AGENT_ORIGINAL]: userAgent,\n // leaving out protocol version, it is not yet negotiated\n // leaving out protocol name, it is only required when protocol version is set\n // retries and redirects not supported\n\n // Opt-in attributes left off for now\n };\n\n // conditionally required if request method required case normalization\n if (method !== normalizedMethod) {\n newAttributes[ATTR_HTTP_REQUEST_METHOD_ORIGINAL] = method;\n }\n\n if (enableSyntheticSourceDetection && userAgent) {\n newAttributes[ATTR_USER_AGENT_SYNTHETIC_TYPE] = getSyntheticType(userAgent);\n }\n if (userAgent !== undefined) {\n oldAttributes[ATTR_HTTP_USER_AGENT] = userAgent;\n }\n\n switch (semconvStability) {\n case SemconvStability.STABLE:\n return Object.assign(newAttributes, options.hookAttributes);\n case SemconvStability.OLD:\n return Object.assign(oldAttributes, options.hookAttributes);\n }\n\n return Object.assign(oldAttributes, newAttributes, options.hookAttributes);\n};\n\n/**\n * Returns outgoing request Metric attributes scoped to the request data\n * @param {Attributes} spanAttributes the span attributes\n */\nexport const getOutgoingRequestMetricAttributes = (\n spanAttributes: Attributes\n): Attributes => {\n const metricAttributes: Attributes = {};\n metricAttributes[ATTR_HTTP_METHOD] = spanAttributes[ATTR_HTTP_METHOD];\n metricAttributes[ATTR_NET_PEER_NAME] = spanAttributes[ATTR_NET_PEER_NAME];\n //TODO: http.url attribute, it should substitute any parameters to avoid high cardinality.\n return metricAttributes;\n};\n\n/**\n * Returns attributes related to the kind of HTTP protocol used\n * @param {string} [kind] Kind of HTTP protocol used: \"1.0\", \"1.1\", \"2\", \"SPDY\" or \"QUIC\".\n */\nexport const setAttributesFromHttpKind = (\n kind: string | undefined,\n attributes: Attributes\n): void => {\n if (kind) {\n attributes[ATTR_HTTP_FLAVOR] = kind;\n if (kind.toUpperCase() !== 'QUIC') {\n attributes[ATTR_NET_TRANSPORT] = NET_TRANSPORT_VALUE_IP_TCP;\n } else {\n attributes[ATTR_NET_TRANSPORT] = NET_TRANSPORT_VALUE_IP_UDP;\n }\n }\n};\n\n/**\n * Returns the type of synthetic source based on the user agent\n * @param {OutgoingHttpHeader} userAgent the user agent string\n */\nconst getSyntheticType = (\n userAgent: OutgoingHttpHeader\n): AttributeValue | undefined => {\n const userAgentString: string = String(userAgent).toLowerCase();\n for (const name of SYNTHETIC_TEST_NAMES) {\n if (userAgentString.includes(name)) {\n return USER_AGENT_SYNTHETIC_TYPE_VALUE_TEST;\n }\n }\n for (const name of SYNTHETIC_BOT_NAMES) {\n if (userAgentString.includes(name)) {\n return USER_AGENT_SYNTHETIC_TYPE_VALUE_BOT;\n }\n }\n return;\n};\n\n/**\n * Returns outgoing request attributes scoped to the response data\n * @param {IncomingMessage} response the response object\n * @param {SemconvStability} semconvStability determines which semconv version to use\n */\nexport const getOutgoingRequestAttributesOnResponse = (\n response: IncomingMessage,\n semconvStability: SemconvStability\n): Attributes => {\n const { statusCode, statusMessage, httpVersion, socket } = response;\n const oldAttributes: Attributes = {};\n const stableAttributes: Attributes = {};\n\n if (statusCode != null) {\n stableAttributes[ATTR_HTTP_RESPONSE_STATUS_CODE] = statusCode;\n }\n\n if (socket) {\n const { remoteAddress, remotePort } = socket;\n oldAttributes[ATTR_NET_PEER_IP] = remoteAddress;\n oldAttributes[ATTR_NET_PEER_PORT] = remotePort;\n\n // Recommended\n stableAttributes[ATTR_NETWORK_PEER_ADDRESS] = remoteAddress;\n stableAttributes[ATTR_NETWORK_PEER_PORT] = remotePort;\n stableAttributes[ATTR_NETWORK_PROTOCOL_VERSION] = response.httpVersion;\n }\n setResponseContentLengthAttribute(response, oldAttributes);\n\n if (statusCode) {\n oldAttributes[ATTR_HTTP_STATUS_CODE] = statusCode;\n oldAttributes[AttributeNames.HTTP_STATUS_TEXT] = (\n statusMessage || ''\n ).toUpperCase();\n }\n\n setAttributesFromHttpKind(httpVersion, oldAttributes);\n\n switch (semconvStability) {\n case SemconvStability.STABLE:\n return stableAttributes;\n case SemconvStability.OLD:\n return oldAttributes;\n }\n\n return Object.assign(oldAttributes, stableAttributes);\n};\n\n/**\n * Returns outgoing request Metric attributes scoped to the response data\n * @param {Attributes} spanAttributes the span attributes\n */\nexport const getOutgoingRequestMetricAttributesOnResponse = (\n spanAttributes: Attributes\n): Attributes => {\n const metricAttributes: Attributes = {};\n metricAttributes[ATTR_NET_PEER_PORT] = spanAttributes[ATTR_NET_PEER_PORT];\n metricAttributes[ATTR_HTTP_STATUS_CODE] =\n spanAttributes[ATTR_HTTP_STATUS_CODE];\n metricAttributes[ATTR_HTTP_FLAVOR] = spanAttributes[ATTR_HTTP_FLAVOR];\n\n return metricAttributes;\n};\n\nexport const getOutgoingStableRequestMetricAttributesOnResponse = (\n spanAttributes: Attributes\n): Attributes => {\n const metricAttributes: Attributes = {};\n\n if (spanAttributes[ATTR_NETWORK_PROTOCOL_VERSION]) {\n metricAttributes[ATTR_NETWORK_PROTOCOL_VERSION] =\n spanAttributes[ATTR_NETWORK_PROTOCOL_VERSION];\n }\n\n if (spanAttributes[ATTR_HTTP_RESPONSE_STATUS_CODE]) {\n metricAttributes[ATTR_HTTP_RESPONSE_STATUS_CODE] =\n spanAttributes[ATTR_HTTP_RESPONSE_STATUS_CODE];\n }\n return metricAttributes;\n};\n\nfunction parseHostHeader(\n hostHeader: string,\n proto?: string\n): { host: string; port?: string } {\n const parts = hostHeader.split(':');\n\n // no semicolon implies ipv4 dotted syntax or host name without port\n // x.x.x.x\n // example.com\n if (parts.length === 1) {\n if (proto === 'http') {\n return { host: parts[0], port: '80' };\n }\n\n if (proto === 'https') {\n return { host: parts[0], port: '443' };\n }\n\n return { host: parts[0] };\n }\n\n // single semicolon implies ipv4 dotted syntax or host name with port\n // x.x.x.x:yyyy\n // example.com:yyyy\n if (parts.length === 2) {\n return {\n host: parts[0],\n port: parts[1],\n };\n }\n\n // more than 2 parts implies ipv6 syntax with multiple colons\n // [x:x:x:x:x:x:x:x]\n // [x:x:x:x:x:x:x:x]:yyyy\n if (parts[0].startsWith('[')) {\n if (parts[parts.length - 1].endsWith(']')) {\n if (proto === 'http') {\n return { host: hostHeader, port: '80' };\n }\n\n if (proto === 'https') {\n return { host: hostHeader, port: '443' };\n }\n } else if (parts[parts.length - 2].endsWith(']')) {\n return {\n host: parts.slice(0, -1).join(':'),\n port: parts[parts.length - 1],\n };\n }\n }\n\n // if nothing above matches just return the host header\n return { host: hostHeader };\n}\n\n/**\n * Get server.address and port according to http semconv 1.27\n * https://github.com/open-telemetry/semantic-conventions/blob/bf0a2c1134f206f034408b201dbec37960ed60ec/docs/http/http-spans.md#setting-serveraddress-and-serverport-attributes\n */\nfunction getServerAddress(\n request: IncomingMessage,\n component: 'http' | 'https'\n): { host: string; port?: string } | null {\n const forwardedHeader = request.headers['forwarded'];\n if (forwardedHeader) {\n for (const entry of parseForwardedHeader(forwardedHeader)) {\n if (entry.host) {\n return parseHostHeader(entry.host, entry.proto);\n }\n }\n }\n\n const xForwardedHost = request.headers['x-forwarded-host'];\n if (typeof xForwardedHost === 'string') {\n if (typeof request.headers['x-forwarded-proto'] === 'string') {\n return parseHostHeader(\n xForwardedHost,\n request.headers['x-forwarded-proto']\n );\n }\n\n if (Array.isArray(request.headers['x-forwarded-proto'])) {\n return parseHostHeader(\n xForwardedHost,\n request.headers['x-forwarded-proto'][0]\n );\n }\n\n return parseHostHeader(xForwardedHost);\n } else if (\n Array.isArray(xForwardedHost) &&\n typeof xForwardedHost[0] === 'string' &&\n xForwardedHost[0].length > 0\n ) {\n if (typeof request.headers['x-forwarded-proto'] === 'string') {\n return parseHostHeader(\n xForwardedHost[0],\n request.headers['x-forwarded-proto']\n );\n }\n\n if (Array.isArray(request.headers['x-forwarded-proto'])) {\n return parseHostHeader(\n xForwardedHost[0],\n request.headers['x-forwarded-proto'][0]\n );\n }\n\n return parseHostHeader(xForwardedHost[0]);\n }\n\n const host = request.headers['host'];\n if (typeof host === 'string' && host.length > 0) {\n return parseHostHeader(host, component);\n }\n\n return null;\n}\n\n/**\n * Get server.address and port according to http semconv 1.27\n * https://github.com/open-telemetry/semantic-conventions/blob/bf0a2c1134f206f034408b201dbec37960ed60ec/docs/http/http-spans.md#setting-serveraddress-and-serverport-attributes\n */\nexport function getRemoteClientAddress(\n request: IncomingMessage\n): string | null {\n const forwardedHeader = request.headers['forwarded'];\n if (forwardedHeader) {\n for (const entry of parseForwardedHeader(forwardedHeader)) {\n if (entry.for) {\n return removePortFromAddress(entry.for);\n }\n }\n }\n\n const xForwardedFor = request.headers['x-forwarded-for'];\n if (xForwardedFor) {\n let xForwardedForVal;\n if (typeof xForwardedFor === 'string') {\n xForwardedForVal = xForwardedFor;\n } else if (Array.isArray(xForwardedFor)) {\n xForwardedForVal = xForwardedFor[0];\n }\n\n if (typeof xForwardedForVal === 'string') {\n xForwardedForVal = xForwardedForVal.split(',')[0].trim();\n return removePortFromAddress(xForwardedForVal);\n }\n }\n\n const remote = request.socket.remoteAddress;\n if (remote) {\n return remote;\n }\n\n return null;\n}\n\nfunction removePortFromAddress(input: string): string {\n // This function can be replaced with SocketAddress.parse() once the minimum\n // supported Node.js version allows it.\n try {\n const { hostname: address } = new URL(`http://${input}`);\n\n if (address.startsWith('[') && address.endsWith(']')) {\n return address.slice(1, -1);\n }\n\n return address;\n } catch {\n return input;\n }\n}\n\nfunction getInfoFromIncomingMessage(\n component: 'http' | 'https',\n request: IncomingMessage,\n logger: DiagLogger\n): { pathname?: string; search?: string; toString: () => string } {\n try {\n if (request.headers.host) {\n return new URL(\n request.url ?? '/',\n `${component}://${request.headers.host}`\n );\n } else {\n const unsafeParsedUrl = new URL(\n request.url ?? '/',\n // using localhost as a workaround to still use the URL constructor for parsing\n `${component}://localhost`\n );\n // since we use localhost as a workaround, ensure we hide the rest of the properties to avoid\n // our workaround leaking though.\n return {\n pathname: unsafeParsedUrl.pathname,\n search: unsafeParsedUrl.search,\n toString: function () {\n // we cannot use the result of unsafeParsedUrl.toString as it's potentially wrong.\n return unsafeParsedUrl.pathname + unsafeParsedUrl.search;\n },\n };\n }\n } catch (e) {\n // something is wrong, use undefined - this *should* never happen, logging\n // for troubleshooting in case it does happen.\n logger.verbose('Unable to get URL from request', e);\n return {};\n }\n}\n\n/**\n * Returns incoming request attributes scoped to the request data\n * @param {IncomingMessage} request the request object\n * @param {{ component: string, serverName?: string, hookAttributes?: Attributes }} options used to pass data needed to create attributes\n * @param {SemconvStability} semconvStability determines which semconv version to use\n */\nexport const getIncomingRequestAttributes = (\n request: IncomingMessage,\n options: {\n component: 'http' | 'https';\n serverName?: string;\n hookAttributes?: Attributes;\n semconvStability: SemconvStability;\n enableSyntheticSourceDetection: boolean;\n },\n logger: DiagLogger\n): Attributes => {\n const {\n component,\n enableSyntheticSourceDetection,\n hookAttributes,\n semconvStability,\n serverName,\n } = options;\n const { headers, httpVersion, method } = request;\n const { host, 'user-agent': userAgent, 'x-forwarded-for': ips } = headers;\n const parsedUrl = getInfoFromIncomingMessage(component, request, logger);\n let newAttributes: Attributes;\n let oldAttributes: Attributes;\n\n if (semconvStability !== SemconvStability.OLD) {\n // Stable attributes are used.\n const normalizedMethod = normalizeMethod(method);\n const serverAddress = getServerAddress(request, component);\n const remoteClientAddress = getRemoteClientAddress(request);\n\n newAttributes = {\n [ATTR_HTTP_REQUEST_METHOD]: normalizedMethod,\n [ATTR_URL_SCHEME]: component,\n [ATTR_SERVER_ADDRESS]: serverAddress?.host,\n [ATTR_NETWORK_PEER_ADDRESS]: request.socket.remoteAddress,\n [ATTR_NETWORK_PEER_PORT]: request.socket.remotePort,\n [ATTR_NETWORK_PROTOCOL_VERSION]: request.httpVersion,\n [ATTR_USER_AGENT_ORIGINAL]: userAgent,\n };\n\n if (parsedUrl.pathname != null) {\n newAttributes[ATTR_URL_PATH] = parsedUrl.pathname;\n }\n\n if (parsedUrl.search) {\n // Remove leading '?' from URL search (https://developer.mozilla.org/en-US/docs/Web/API/URL/search).\n newAttributes[ATTR_URL_QUERY] = parsedUrl.search.slice(1);\n }\n\n if (remoteClientAddress != null) {\n newAttributes[ATTR_CLIENT_ADDRESS] = remoteClientAddress;\n }\n\n if (serverAddress?.port != null) {\n newAttributes[ATTR_SERVER_PORT] = Number(serverAddress.port);\n }\n\n // Conditionally required if request method required case normalization.\n if (method !== normalizedMethod) {\n newAttributes[ATTR_HTTP_REQUEST_METHOD_ORIGINAL] = method;\n }\n\n if (enableSyntheticSourceDetection && userAgent) {\n newAttributes[ATTR_USER_AGENT_SYNTHETIC_TYPE] =\n getSyntheticType(userAgent);\n }\n }\n\n if (semconvStability !== SemconvStability.STABLE) {\n // Old attributes are used.\n const hostname = host?.replace(/^(.*)(:[0-9]{1,5})/, '$1') || 'localhost';\n\n oldAttributes = {\n [ATTR_HTTP_URL]: parsedUrl.toString(),\n [ATTR_HTTP_HOST]: host,\n [ATTR_NET_HOST_NAME]: hostname,\n [ATTR_HTTP_METHOD]: method,\n [ATTR_HTTP_SCHEME]: component,\n };\n\n if (typeof ips === 'string') {\n oldAttributes[ATTR_HTTP_CLIENT_IP] = ips.split(',')[0];\n }\n\n if (typeof serverName === 'string') {\n oldAttributes[ATTR_HTTP_SERVER_NAME] = serverName;\n }\n\n if (parsedUrl.pathname) {\n oldAttributes[ATTR_HTTP_TARGET] =\n parsedUrl.pathname + parsedUrl.search || '/';\n }\n\n if (userAgent !== undefined) {\n oldAttributes[ATTR_HTTP_USER_AGENT] = userAgent;\n }\n\n setRequestContentLengthAttribute(request, oldAttributes);\n setAttributesFromHttpKind(httpVersion, oldAttributes);\n }\n\n switch (semconvStability) {\n case SemconvStability.STABLE:\n return Object.assign(newAttributes!, hookAttributes);\n case SemconvStability.OLD:\n return Object.assign(oldAttributes!, hookAttributes);\n default:\n return Object.assign(oldAttributes!, newAttributes!, hookAttributes);\n }\n};\n\n/**\n * Returns incoming request Metric attributes scoped to the request data\n * @param {Attributes} spanAttributes the span attributes\n * @param {{ component: string }} options used to pass data needed to create attributes\n */\nexport const getIncomingRequestMetricAttributes = (\n spanAttributes: Attributes\n): Attributes => {\n const metricAttributes: Attributes = {};\n metricAttributes[ATTR_HTTP_SCHEME] = spanAttributes[ATTR_HTTP_SCHEME];\n metricAttributes[ATTR_HTTP_METHOD] = spanAttributes[ATTR_HTTP_METHOD];\n metricAttributes[ATTR_NET_HOST_NAME] = spanAttributes[ATTR_NET_HOST_NAME];\n metricAttributes[ATTR_HTTP_FLAVOR] = spanAttributes[ATTR_HTTP_FLAVOR];\n //TODO: http.target attribute, it should substitute any parameters to avoid high cardinality.\n return metricAttributes;\n};\n\n/**\n * Returns incoming request attributes scoped to the response data\n * @param {(ServerResponse & { socket: Socket; })} response the response object\n */\nexport const getIncomingRequestAttributesOnResponse = (\n request: IncomingMessage,\n response: ServerResponse,\n semconvStability: SemconvStability\n): Attributes => {\n // take socket from the request,\n // since it may be detached from the response object in keep-alive mode\n const { socket } = request;\n const { statusCode, statusMessage } = response;\n\n const newAttributes: Attributes = {\n [ATTR_HTTP_RESPONSE_STATUS_CODE]: statusCode,\n };\n\n const rpcMetadata = getRPCMetadata(context.active());\n const oldAttributes: Attributes = {};\n if (socket) {\n const { localAddress, localPort, remoteAddress, remotePort } = socket;\n oldAttributes[ATTR_NET_HOST_IP] = localAddress;\n oldAttributes[ATTR_NET_HOST_PORT] = localPort;\n oldAttributes[ATTR_NET_PEER_IP] = remoteAddress;\n oldAttributes[ATTR_NET_PEER_PORT] = remotePort;\n }\n oldAttributes[ATTR_HTTP_STATUS_CODE] = statusCode;\n oldAttributes[AttributeNames.HTTP_STATUS_TEXT] = (\n statusMessage || ''\n ).toUpperCase();\n\n if (rpcMetadata?.type === RPCType.HTTP && rpcMetadata.route !== undefined) {\n oldAttributes[ATTR_HTTP_ROUTE] = rpcMetadata.route;\n newAttributes[ATTR_HTTP_ROUTE] = rpcMetadata.route;\n }\n\n switch (semconvStability) {\n case SemconvStability.STABLE:\n return newAttributes;\n case SemconvStability.OLD:\n return oldAttributes;\n }\n\n return Object.assign(oldAttributes, newAttributes);\n};\n\n/**\n * Returns incoming request Metric attributes scoped to the request data\n * @param {Attributes} spanAttributes the span attributes\n */\nexport const getIncomingRequestMetricAttributesOnResponse = (\n spanAttributes: Attributes\n): Attributes => {\n const metricAttributes: Attributes = {};\n metricAttributes[ATTR_HTTP_STATUS_CODE] =\n spanAttributes[ATTR_HTTP_STATUS_CODE];\n metricAttributes[ATTR_NET_HOST_PORT] = spanAttributes[ATTR_NET_HOST_PORT];\n if (spanAttributes[ATTR_HTTP_ROUTE] !== undefined) {\n metricAttributes[ATTR_HTTP_ROUTE] = spanAttributes[ATTR_HTTP_ROUTE];\n }\n return metricAttributes;\n};\n\n/**\n * Returns incoming stable request Metric attributes scoped to the request data\n * @param {Attributes} spanAttributes the span attributes\n */\nexport const getIncomingStableRequestMetricAttributesOnResponse = (\n spanAttributes: Attributes\n): Attributes => {\n const metricAttributes: Attributes = {};\n if (spanAttributes[ATTR_HTTP_ROUTE] !== undefined) {\n metricAttributes[ATTR_HTTP_ROUTE] = spanAttributes[ATTR_HTTP_ROUTE];\n }\n\n // required if and only if one was sent, same as span requirement\n if (spanAttributes[ATTR_HTTP_RESPONSE_STATUS_CODE]) {\n metricAttributes[ATTR_HTTP_RESPONSE_STATUS_CODE] =\n spanAttributes[ATTR_HTTP_RESPONSE_STATUS_CODE];\n }\n return metricAttributes;\n};\n\nexport function headerCapture(\n type: 'request' | 'response',\n headers: string[],\n semconvStability: SemconvStability\n) {\n const normalizedHeaders = new Map();\n for (let i = 0, len = headers.length; i < len; i++) {\n const capturedHeader = headers[i].toLowerCase();\n if (semconvStability & SemconvStability.STABLE) {\n normalizedHeaders.set(capturedHeader, capturedHeader);\n } else {\n // In old semconv, the header name converted hypen to underscore, e.g.:\n // `http.request.header.content_length`.\n normalizedHeaders.set(\n capturedHeader,\n capturedHeader.replaceAll('-', '_')\n );\n }\n }\n\n return (\n getHeader: (key: string) => undefined | string | string[] | number\n ): Attributes => {\n const attributes: Attributes = {};\n for (const capturedHeader of normalizedHeaders.keys()) {\n const value = getHeader(capturedHeader);\n\n if (value === undefined) {\n continue;\n }\n\n const normalizedHeader = normalizedHeaders.get(capturedHeader);\n const key = `http.${type}.header.${normalizedHeader}`;\n\n if (typeof value === 'string') {\n attributes[key] = [value];\n } else if (Array.isArray(value)) {\n attributes[key] = value;\n } else {\n attributes[key] = [value];\n }\n }\n return attributes;\n };\n}\n\nconst KNOWN_METHODS = new Set([\n // methods from https://www.rfc-editor.org/rfc/rfc9110.html#name-methods\n 'GET',\n 'HEAD',\n 'POST',\n 'PUT',\n 'DELETE',\n 'CONNECT',\n 'OPTIONS',\n 'TRACE',\n\n // PATCH from https://www.rfc-editor.org/rfc/rfc5789.html\n 'PATCH',\n\n // QUERY from https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/\n 'QUERY',\n]);\n\nfunction normalizeMethod(method?: string | null) {\n if (method == null) {\n return 'GET';\n }\n\n const upper = method.toUpperCase();\n if (KNOWN_METHODS.has(upper)) {\n return upper;\n }\n\n return '_OTHER';\n}\n\nfunction parseForwardedHeader(header: string): Record[] {\n try {\n return forwardedParse(header);\n } catch {\n return [];\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n HrTime,\n Span,\n SpanOptions,\n SpanStatus,\n Histogram,\n Attributes,\n} from '@opentelemetry/api';\nimport {\n context,\n INVALID_SPAN_CONTEXT,\n propagation,\n ROOT_CONTEXT,\n SpanKind,\n SpanStatusCode,\n trace,\n ValueType,\n} from '@opentelemetry/api';\nimport type { RPCMetadata } from '@opentelemetry/core';\nimport {\n hrTime,\n hrTimeDuration,\n hrTimeToMilliseconds,\n suppressTracing,\n RPCType,\n setRPCMetadata,\n} from '@opentelemetry/core';\nimport type * as http from 'http';\nimport type * as https from 'https';\nimport type { Socket } from 'net';\nimport * as url from 'url';\nimport type { HttpInstrumentationConfig } from './types';\nimport { VERSION } from './version';\nimport {\n InstrumentationBase,\n InstrumentationNodeModuleDefinition,\n SemconvStability,\n semconvStabilityFromStr,\n safeExecuteInTheMiddle,\n} from '@opentelemetry/instrumentation';\nimport { errorMonitor } from 'events';\nimport {\n ATTR_ERROR_TYPE,\n ATTR_HTTP_REQUEST_METHOD,\n ATTR_HTTP_RESPONSE_STATUS_CODE,\n ATTR_NETWORK_PROTOCOL_VERSION,\n ATTR_HTTP_ROUTE,\n ATTR_SERVER_ADDRESS,\n ATTR_SERVER_PORT,\n ATTR_URL_SCHEME,\n METRIC_HTTP_CLIENT_REQUEST_DURATION,\n METRIC_HTTP_SERVER_REQUEST_DURATION,\n} from '@opentelemetry/semantic-conventions';\nimport {\n extractHostnameAndPort,\n getIncomingRequestAttributes,\n getIncomingRequestAttributesOnResponse,\n getIncomingRequestMetricAttributes,\n getIncomingRequestMetricAttributesOnResponse,\n getIncomingStableRequestMetricAttributesOnResponse,\n getOutgoingRequestAttributes,\n getOutgoingRequestAttributesOnResponse,\n getOutgoingRequestMetricAttributes,\n getOutgoingRequestMetricAttributesOnResponse,\n getOutgoingStableRequestMetricAttributesOnResponse,\n getRequestInfo,\n headerCapture,\n isValidOptionsType,\n parseResponseStatus,\n setSpanWithError,\n} from './utils';\nimport type { Err, Func, Http, HttpRequestArgs, Https } from './internal-types';\n\n/**\n * `node:http` and `node:https` instrumentation for OpenTelemetry\n */\nexport class HttpInstrumentation extends InstrumentationBase {\n /** keep track on spans not ended */\n private readonly _spanNotEnded: WeakSet = new WeakSet();\n private _headerCapture;\n private _httpPatched: boolean = false;\n private _httpsPatched: boolean = false;\n declare private _oldHttpServerDurationHistogram: Histogram;\n declare private _stableHttpServerDurationHistogram: Histogram;\n declare private _oldHttpClientDurationHistogram: Histogram;\n declare private _stableHttpClientDurationHistogram: Histogram;\n\n private _semconvStability: SemconvStability = SemconvStability.OLD;\n\n constructor(config: HttpInstrumentationConfig = {}) {\n super('@opentelemetry/instrumentation-http', VERSION, config);\n this._semconvStability = semconvStabilityFromStr(\n 'http',\n process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n );\n this._headerCapture = this._createHeaderCapture(this._semconvStability);\n }\n\n protected override _updateMetricInstruments() {\n this._oldHttpServerDurationHistogram = this.meter.createHistogram(\n 'http.server.duration',\n {\n description: 'Measures the duration of inbound HTTP requests.',\n unit: 'ms',\n valueType: ValueType.DOUBLE,\n }\n );\n this._oldHttpClientDurationHistogram = this.meter.createHistogram(\n 'http.client.duration',\n {\n description: 'Measures the duration of outbound HTTP requests.',\n unit: 'ms',\n valueType: ValueType.DOUBLE,\n }\n );\n this._stableHttpServerDurationHistogram = this.meter.createHistogram(\n METRIC_HTTP_SERVER_REQUEST_DURATION,\n {\n description: 'Duration of HTTP server requests.',\n unit: 's',\n valueType: ValueType.DOUBLE,\n advice: {\n explicitBucketBoundaries: [\n 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5,\n 7.5, 10,\n ],\n },\n }\n );\n this._stableHttpClientDurationHistogram = this.meter.createHistogram(\n METRIC_HTTP_CLIENT_REQUEST_DURATION,\n {\n description: 'Duration of HTTP client requests.',\n unit: 's',\n valueType: ValueType.DOUBLE,\n advice: {\n explicitBucketBoundaries: [\n 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5,\n 7.5, 10,\n ],\n },\n }\n );\n }\n\n private _recordServerDuration(\n durationMs: number,\n oldAttributes: Attributes,\n stableAttributes: Attributes\n ) {\n if (this._semconvStability & SemconvStability.OLD) {\n // old histogram is counted in MS\n this._oldHttpServerDurationHistogram.record(durationMs, oldAttributes);\n }\n\n if (this._semconvStability & SemconvStability.STABLE) {\n // stable histogram is counted in S\n this._stableHttpServerDurationHistogram.record(\n durationMs / 1000,\n stableAttributes\n );\n }\n }\n\n private _recordClientDuration(\n durationMs: number,\n oldAttributes: Attributes,\n stableAttributes: Attributes\n ) {\n if (this._semconvStability & SemconvStability.OLD) {\n // old histogram is counted in MS\n this._oldHttpClientDurationHistogram.record(durationMs, oldAttributes);\n }\n\n if (this._semconvStability & SemconvStability.STABLE) {\n // stable histogram is counted in S\n this._stableHttpClientDurationHistogram.record(\n durationMs / 1000,\n stableAttributes\n );\n }\n }\n\n override setConfig(config: HttpInstrumentationConfig = {}): void {\n super.setConfig(config);\n this._headerCapture = this._createHeaderCapture(this._semconvStability);\n }\n\n init(): [\n InstrumentationNodeModuleDefinition,\n InstrumentationNodeModuleDefinition,\n ] {\n return [this._getHttpsInstrumentation(), this._getHttpInstrumentation()];\n }\n\n private _getHttpInstrumentation() {\n return new InstrumentationNodeModuleDefinition(\n 'http',\n ['*'],\n (moduleExports: Http): Http => {\n // Guard against double-instrumentation, if loaded by both `require`\n // and `import`.\n if (this._httpPatched) {\n return moduleExports;\n }\n this._httpPatched = true;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const isESM = (moduleExports as any)[Symbol.toStringTag] === 'Module';\n\n if (!this.getConfig().disableOutgoingRequestInstrumentation) {\n const patchedRequest = this._wrap(\n moduleExports,\n 'request',\n this._getPatchOutgoingRequestFunction('http')\n ) as unknown as Func;\n const patchedGet = this._wrap(\n moduleExports,\n 'get',\n this._getPatchOutgoingGetFunction(patchedRequest)\n );\n if (isESM) {\n // To handle `import http from 'http'`, which returns the default\n // export, we need to set `module.default.*`.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (moduleExports as any).default.request = patchedRequest;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (moduleExports as any).default.get = patchedGet;\n }\n }\n if (!this.getConfig().disableIncomingRequestInstrumentation) {\n this._wrap(\n moduleExports.Server.prototype,\n 'emit',\n this._getPatchIncomingRequestFunction('http')\n );\n }\n return moduleExports;\n },\n (moduleExports: Http) => {\n this._httpPatched = false;\n if (moduleExports === undefined) return;\n\n if (!this.getConfig().disableOutgoingRequestInstrumentation) {\n this._unwrap(moduleExports, 'request');\n this._unwrap(moduleExports, 'get');\n }\n if (!this.getConfig().disableIncomingRequestInstrumentation) {\n this._unwrap(moduleExports.Server.prototype, 'emit');\n }\n }\n );\n }\n\n private _getHttpsInstrumentation() {\n return new InstrumentationNodeModuleDefinition(\n 'https',\n ['*'],\n (moduleExports: Https): Https => {\n // Guard against double-instrumentation, if loaded by both `require`\n // and `import`.\n if (this._httpsPatched) {\n return moduleExports;\n }\n this._httpsPatched = true;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const isESM = (moduleExports as any)[Symbol.toStringTag] === 'Module';\n\n if (!this.getConfig().disableOutgoingRequestInstrumentation) {\n const patchedRequest = this._wrap(\n moduleExports,\n 'request',\n this._getPatchHttpsOutgoingRequestFunction('https')\n ) as unknown as Func;\n const patchedGet = this._wrap(\n moduleExports,\n 'get',\n this._getPatchHttpsOutgoingGetFunction(patchedRequest)\n );\n if (isESM) {\n // To handle `import https from 'https'`, which returns the default\n // export, we need to set `module.default.*`.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (moduleExports as any).default.request = patchedRequest;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (moduleExports as any).default.get = patchedGet;\n }\n }\n if (!this.getConfig().disableIncomingRequestInstrumentation) {\n this._wrap(\n moduleExports.Server.prototype,\n 'emit',\n this._getPatchIncomingRequestFunction('https')\n );\n }\n return moduleExports;\n },\n (moduleExports: Https) => {\n this._httpsPatched = false;\n if (moduleExports === undefined) return;\n\n if (!this.getConfig().disableOutgoingRequestInstrumentation) {\n this._unwrap(moduleExports, 'request');\n this._unwrap(moduleExports, 'get');\n }\n if (!this.getConfig().disableIncomingRequestInstrumentation) {\n this._unwrap(moduleExports.Server.prototype, 'emit');\n }\n }\n );\n }\n\n /**\n * Creates spans for incoming requests, restoring spans' context if applied.\n */\n private _getPatchIncomingRequestFunction(component: 'http' | 'https') {\n return (\n original: (event: string, ...args: unknown[]) => boolean\n ): ((this: unknown, event: string, ...args: unknown[]) => boolean) => {\n return this._incomingRequestFunction(component, original);\n };\n }\n\n /**\n * Creates spans for outgoing requests, sending spans' context for distributed\n * tracing.\n */\n private _getPatchOutgoingRequestFunction(component: 'http' | 'https') {\n return (original: Func): Func => {\n return this._outgoingRequestFunction(component, original);\n };\n }\n\n private _getPatchOutgoingGetFunction(\n clientRequest: (\n options: http.RequestOptions | string | url.URL,\n ...args: HttpRequestArgs\n ) => http.ClientRequest\n ) {\n return (_original: Func): Func => {\n // Re-implement http.get. This needs to be done (instead of using\n // getPatchOutgoingRequestFunction to patch it) because we need to\n // set the trace context header before the returned http.ClientRequest is\n // ended. The Node.js docs state that the only differences between\n // request and get are that (1) get defaults to the HTTP GET method and\n // (2) the returned request object is ended immediately. The former is\n // already true (at least in supported Node versions up to v10), so we\n // simply follow the latter. Ref:\n // https://nodejs.org/dist/latest/docs/api/http.html#http_http_get_options_callback\n // https://github.com/googleapis/cloud-trace-nodejs/blob/master/src/instrumentations/instrumentation-http.ts#L198\n return function outgoingGetRequest<\n T extends http.RequestOptions | string | url.URL,\n >(options: T, ...args: HttpRequestArgs): http.ClientRequest {\n const req = clientRequest(options, ...args);\n req.end();\n return req;\n };\n };\n }\n\n /** Patches HTTPS outgoing requests */\n private _getPatchHttpsOutgoingRequestFunction(component: 'http' | 'https') {\n return (original: Func): Func => {\n const instrumentation = this;\n return function httpsOutgoingRequest(\n // eslint-disable-next-line n/no-unsupported-features/node-builtins\n options: https.RequestOptions | string | URL,\n ...args: HttpRequestArgs\n ): http.ClientRequest {\n // Makes sure options will have default HTTPS parameters\n if (\n component === 'https' &&\n typeof options === 'object' &&\n options?.constructor?.name !== 'URL'\n ) {\n options = Object.assign({}, options);\n instrumentation._setDefaultOptions(options);\n }\n return instrumentation._getPatchOutgoingRequestFunction(component)(\n original\n )(options, ...args);\n };\n };\n }\n\n private _setDefaultOptions(options: https.RequestOptions) {\n options.protocol = options.protocol || 'https:';\n options.port = options.port || 443;\n }\n\n /** Patches HTTPS outgoing get requests */\n private _getPatchHttpsOutgoingGetFunction(\n clientRequest: (\n // eslint-disable-next-line n/no-unsupported-features/node-builtins\n options: http.RequestOptions | string | URL,\n ...args: HttpRequestArgs\n ) => http.ClientRequest\n ) {\n return (original: Func): Func => {\n const instrumentation = this;\n return function httpsOutgoingRequest(\n // eslint-disable-next-line n/no-unsupported-features/node-builtins\n options: https.RequestOptions | string | URL,\n ...args: HttpRequestArgs\n ): http.ClientRequest {\n return instrumentation._getPatchOutgoingGetFunction(clientRequest)(\n original\n )(options, ...args);\n };\n };\n }\n\n /**\n * Attach event listeners to a client request to end span and add span attributes.\n *\n * @param request The original request object.\n * @param span representing the current operation\n * @param startTime representing the start time of the request to calculate duration in Metric\n * @param oldMetricAttributes metric attributes for old semantic conventions\n * @param stableMetricAttributes metric attributes for new semantic conventions\n */\n private _traceClientRequest(\n request: http.ClientRequest,\n span: Span,\n startTime: HrTime,\n oldMetricAttributes: Attributes,\n stableMetricAttributes: Attributes\n ): http.ClientRequest {\n if (this.getConfig().requestHook) {\n this._callRequestHook(span, request);\n }\n\n /**\n * Determines if the request has errored or the response has ended/errored.\n */\n let responseFinished = false;\n\n /*\n * User 'response' event listeners can be added before our listener,\n * force our listener to be the first, so response emitter is bound\n * before any user listeners are added to it.\n */\n request.prependListener(\n 'response',\n (response: http.IncomingMessage & { aborted?: boolean }) => {\n this._diag.debug('outgoingRequest on response()');\n if (request.listenerCount('response') <= 1) {\n response.resume();\n }\n const responseAttributes = getOutgoingRequestAttributesOnResponse(\n response,\n this._semconvStability\n );\n span.setAttributes(responseAttributes);\n oldMetricAttributes = Object.assign(\n oldMetricAttributes,\n getOutgoingRequestMetricAttributesOnResponse(responseAttributes)\n );\n stableMetricAttributes = Object.assign(\n stableMetricAttributes,\n getOutgoingStableRequestMetricAttributesOnResponse(responseAttributes)\n );\n\n if (this.getConfig().responseHook) {\n this._callResponseHook(span, response);\n }\n\n span.setAttributes(\n this._headerCapture.client.captureRequestHeaders(header =>\n request.getHeader(header)\n )\n );\n span.setAttributes(\n this._headerCapture.client.captureResponseHeaders(\n header => response.headers[header]\n )\n );\n\n context.bind(context.active(), response);\n\n const endHandler = () => {\n this._diag.debug('outgoingRequest on end()');\n if (responseFinished) {\n return;\n }\n responseFinished = true;\n let status: SpanStatus;\n\n if (response.aborted && !response.complete) {\n status = { code: SpanStatusCode.ERROR };\n } else {\n // behaves same for new and old semconv\n status = {\n code: parseResponseStatus(SpanKind.CLIENT, response.statusCode),\n };\n }\n\n span.setStatus(status);\n\n if (this.getConfig().applyCustomAttributesOnSpan) {\n safeExecuteInTheMiddle(\n () =>\n this.getConfig().applyCustomAttributesOnSpan!(\n span,\n request,\n response\n ),\n () => {},\n true\n );\n }\n\n this._closeHttpSpan(\n span,\n SpanKind.CLIENT,\n startTime,\n oldMetricAttributes,\n stableMetricAttributes\n );\n };\n\n response.on('end', endHandler);\n response.on(errorMonitor, (error: Err) => {\n this._diag.debug('outgoingRequest on error()', error);\n if (responseFinished) {\n return;\n }\n responseFinished = true;\n this._onOutgoingRequestError(\n span,\n oldMetricAttributes,\n stableMetricAttributes,\n startTime,\n error\n );\n });\n }\n );\n request.on('close', () => {\n this._diag.debug('outgoingRequest on request close()');\n if (request.aborted || responseFinished) {\n return;\n }\n responseFinished = true;\n this._closeHttpSpan(\n span,\n SpanKind.CLIENT,\n startTime,\n oldMetricAttributes,\n stableMetricAttributes\n );\n });\n request.on(errorMonitor, (error: Err) => {\n this._diag.debug('outgoingRequest on request error()', error);\n if (responseFinished) {\n return;\n }\n responseFinished = true;\n this._onOutgoingRequestError(\n span,\n oldMetricAttributes,\n stableMetricAttributes,\n startTime,\n error\n );\n });\n\n this._diag.debug('http.ClientRequest return request');\n return request;\n }\n\n private _incomingRequestFunction(\n component: 'http' | 'https',\n original: (event: string, ...args: unknown[]) => boolean\n ) {\n const instrumentation = this;\n return function incomingRequest(\n this: unknown,\n event: string,\n ...args: unknown[]\n ): boolean {\n // Only traces request events\n if (event !== 'request') {\n return original.apply(this, [event, ...args]);\n }\n\n const request = args[0] as http.IncomingMessage;\n const response = args[1] as http.ServerResponse & { socket: Socket };\n const method = request.method || 'GET';\n\n instrumentation._diag.debug(\n `${component} instrumentation incomingRequest`\n );\n\n if (\n safeExecuteInTheMiddle(\n () =>\n instrumentation.getConfig().ignoreIncomingRequestHook?.(request),\n (e: unknown) => {\n if (e != null) {\n instrumentation._diag.error(\n 'caught ignoreIncomingRequestHook error: ',\n e\n );\n }\n },\n true\n )\n ) {\n return context.with(suppressTracing(context.active()), () => {\n context.bind(context.active(), request);\n context.bind(context.active(), response);\n return original.apply(this, [event, ...args]);\n });\n }\n\n const headers = request.headers;\n\n const spanAttributes = getIncomingRequestAttributes(\n request,\n {\n component: component,\n serverName: instrumentation.getConfig().serverName,\n hookAttributes: instrumentation._callStartSpanHook(\n request,\n instrumentation.getConfig().startIncomingSpanHook\n ),\n semconvStability: instrumentation._semconvStability,\n enableSyntheticSourceDetection:\n instrumentation.getConfig().enableSyntheticSourceDetection || false,\n },\n instrumentation._diag\n );\n\n Object.assign(\n spanAttributes,\n instrumentation._headerCapture.server.captureRequestHeaders(\n header => request.headers[header]\n )\n );\n\n const spanOptions: SpanOptions = {\n kind: SpanKind.SERVER,\n attributes: spanAttributes,\n };\n\n const startTime = hrTime();\n const oldMetricAttributes =\n getIncomingRequestMetricAttributes(spanAttributes);\n\n // request method and url.scheme are both required span attributes\n const stableMetricAttributes: Attributes = {\n [ATTR_HTTP_REQUEST_METHOD]: spanAttributes[ATTR_HTTP_REQUEST_METHOD],\n [ATTR_URL_SCHEME]: spanAttributes[ATTR_URL_SCHEME],\n };\n\n // recommended if and only if one was sent, same as span recommendation\n if (spanAttributes[ATTR_NETWORK_PROTOCOL_VERSION]) {\n stableMetricAttributes[ATTR_NETWORK_PROTOCOL_VERSION] =\n spanAttributes[ATTR_NETWORK_PROTOCOL_VERSION];\n }\n\n const ctx = propagation.extract(ROOT_CONTEXT, headers);\n const span = instrumentation._startHttpSpan(method, spanOptions, ctx);\n const rpcMetadata: RPCMetadata = {\n type: RPCType.HTTP,\n span,\n };\n\n return context.with(\n setRPCMetadata(trace.setSpan(ctx, span), rpcMetadata),\n () => {\n context.bind(context.active(), request);\n context.bind(context.active(), response);\n\n if (instrumentation.getConfig().requestHook) {\n instrumentation._callRequestHook(span, request);\n }\n if (instrumentation.getConfig().responseHook) {\n instrumentation._callResponseHook(span, response);\n }\n\n // After 'error', no further events other than 'close' should be emitted.\n let hasError = false;\n response.on('close', () => {\n if (hasError) {\n return;\n }\n instrumentation._onServerResponseFinish(\n request,\n response,\n span,\n oldMetricAttributes,\n stableMetricAttributes,\n startTime\n );\n });\n response.on(errorMonitor, (err: Err) => {\n hasError = true;\n instrumentation._onServerResponseError(\n span,\n oldMetricAttributes,\n stableMetricAttributes,\n startTime,\n err\n );\n });\n\n return safeExecuteInTheMiddle(\n () => original.apply(this, [event, ...args]),\n error => {\n if (error) {\n instrumentation._onServerResponseError(\n span,\n oldMetricAttributes,\n stableMetricAttributes,\n startTime,\n error\n );\n throw error;\n }\n }\n );\n }\n );\n };\n }\n\n private _outgoingRequestFunction(\n component: 'http' | 'https',\n original: Func\n ): Func {\n const instrumentation = this;\n return function outgoingRequest(\n this: unknown,\n options: url.URL | http.RequestOptions | string,\n ...args: unknown[]\n ): http.ClientRequest {\n if (!isValidOptionsType(options)) {\n return original.apply(this, [options, ...args]);\n }\n const extraOptions =\n typeof args[0] === 'object' &&\n (typeof options === 'string' || options instanceof url.URL)\n ? (args.shift() as http.RequestOptions)\n : undefined;\n const { method, invalidUrl, optionsParsed } = getRequestInfo(\n instrumentation._diag,\n options,\n extraOptions\n );\n\n if (\n safeExecuteInTheMiddle(\n () =>\n instrumentation\n .getConfig()\n .ignoreOutgoingRequestHook?.(optionsParsed),\n (e: unknown) => {\n if (e != null) {\n instrumentation._diag.error(\n 'caught ignoreOutgoingRequestHook error: ',\n e\n );\n }\n },\n true\n )\n ) {\n return original.apply(this, [optionsParsed, ...args]);\n }\n\n const { hostname, port } = extractHostnameAndPort(optionsParsed);\n const attributes = getOutgoingRequestAttributes(\n optionsParsed,\n {\n component,\n port,\n hostname,\n hookAttributes: instrumentation._callStartSpanHook(\n optionsParsed,\n instrumentation.getConfig().startOutgoingSpanHook\n ),\n redactedQueryParams: instrumentation.getConfig().redactedQueryParams, // Added config for adding custom query strings\n },\n instrumentation._semconvStability,\n instrumentation.getConfig().enableSyntheticSourceDetection || false\n );\n\n const startTime = hrTime();\n const oldMetricAttributes: Attributes =\n getOutgoingRequestMetricAttributes(attributes);\n\n // request method, server address, and server port are both required span attributes\n const stableMetricAttributes: Attributes = {\n [ATTR_HTTP_REQUEST_METHOD]: attributes[ATTR_HTTP_REQUEST_METHOD],\n [ATTR_SERVER_ADDRESS]: attributes[ATTR_SERVER_ADDRESS],\n [ATTR_SERVER_PORT]: attributes[ATTR_SERVER_PORT],\n };\n\n // required if and only if one was sent, same as span requirement\n if (attributes[ATTR_HTTP_RESPONSE_STATUS_CODE]) {\n stableMetricAttributes[ATTR_HTTP_RESPONSE_STATUS_CODE] =\n attributes[ATTR_HTTP_RESPONSE_STATUS_CODE];\n }\n\n // recommended if and only if one was sent, same as span recommendation\n if (attributes[ATTR_NETWORK_PROTOCOL_VERSION]) {\n stableMetricAttributes[ATTR_NETWORK_PROTOCOL_VERSION] =\n attributes[ATTR_NETWORK_PROTOCOL_VERSION];\n }\n\n const spanOptions: SpanOptions = {\n kind: SpanKind.CLIENT,\n attributes,\n };\n const span = instrumentation._startHttpSpan(method, spanOptions);\n\n const parentContext = context.active();\n const requestContext = trace.setSpan(parentContext, span);\n\n if (!optionsParsed.headers) {\n optionsParsed.headers = {};\n } else {\n // Make a copy of the headers object to avoid mutating an object the\n // caller might have a reference to.\n optionsParsed.headers = Object.assign({}, optionsParsed.headers);\n }\n propagation.inject(requestContext, optionsParsed.headers);\n\n return context.with(requestContext, () => {\n /*\n * The response callback is registered before ClientRequest is bound,\n * thus it is needed to bind it before the function call.\n */\n const cb = args[args.length - 1];\n if (typeof cb === 'function') {\n args[args.length - 1] = context.bind(parentContext, cb);\n }\n\n const request: http.ClientRequest = safeExecuteInTheMiddle(\n () => {\n if (invalidUrl) {\n // we know that the url is invalid, there's no point in injecting context as it will fail validation.\n // Passing in what the user provided will give the user an error that matches what they'd see without\n // the instrumentation.\n return original.apply(this, [options, ...args]);\n } else {\n return original.apply(this, [optionsParsed, ...args]);\n }\n },\n error => {\n if (error) {\n instrumentation._onOutgoingRequestError(\n span,\n oldMetricAttributes,\n stableMetricAttributes,\n startTime,\n error\n );\n throw error;\n }\n }\n );\n\n instrumentation._diag.debug(\n `${component} instrumentation outgoingRequest`\n );\n context.bind(parentContext, request);\n return instrumentation._traceClientRequest(\n request,\n span,\n startTime,\n oldMetricAttributes,\n stableMetricAttributes\n );\n });\n };\n }\n\n private _onServerResponseFinish(\n request: http.IncomingMessage,\n response: http.ServerResponse,\n span: Span,\n oldMetricAttributes: Attributes,\n stableMetricAttributes: Attributes,\n startTime: HrTime\n ) {\n const attributes = getIncomingRequestAttributesOnResponse(\n request,\n response,\n this._semconvStability\n );\n oldMetricAttributes = Object.assign(\n oldMetricAttributes,\n getIncomingRequestMetricAttributesOnResponse(attributes)\n );\n stableMetricAttributes = Object.assign(\n stableMetricAttributes,\n getIncomingStableRequestMetricAttributesOnResponse(attributes)\n );\n\n span.setAttributes(\n this._headerCapture.server.captureResponseHeaders(header =>\n response.getHeader(header)\n )\n );\n\n span.setAttributes(attributes).setStatus({\n code: parseResponseStatus(SpanKind.SERVER, response.statusCode),\n });\n\n const route = attributes[ATTR_HTTP_ROUTE];\n if (route) {\n span.updateName(`${request.method || 'GET'} ${route}`);\n }\n\n if (this.getConfig().applyCustomAttributesOnSpan) {\n safeExecuteInTheMiddle(\n () =>\n this.getConfig().applyCustomAttributesOnSpan!(\n span,\n request,\n response\n ),\n () => {},\n true\n );\n }\n\n this._closeHttpSpan(\n span,\n SpanKind.SERVER,\n startTime,\n oldMetricAttributes,\n stableMetricAttributes\n );\n }\n\n private _onOutgoingRequestError(\n span: Span,\n oldMetricAttributes: Attributes,\n stableMetricAttributes: Attributes,\n startTime: HrTime,\n error: Err\n ) {\n setSpanWithError(span, error, this._semconvStability);\n stableMetricAttributes[ATTR_ERROR_TYPE] = error.name;\n\n this._closeHttpSpan(\n span,\n SpanKind.CLIENT,\n startTime,\n oldMetricAttributes,\n stableMetricAttributes\n );\n }\n\n private _onServerResponseError(\n span: Span,\n oldMetricAttributes: Attributes,\n stableMetricAttributes: Attributes,\n startTime: HrTime,\n error: Err\n ) {\n setSpanWithError(span, error, this._semconvStability);\n stableMetricAttributes[ATTR_ERROR_TYPE] = error.name;\n\n this._closeHttpSpan(\n span,\n SpanKind.SERVER,\n startTime,\n oldMetricAttributes,\n stableMetricAttributes\n );\n }\n\n private _startHttpSpan(\n name: string,\n options: SpanOptions,\n ctx = context.active()\n ) {\n /*\n * If a parent is required but not present, we use a `NoopSpan` to still\n * propagate context without recording it.\n */\n const requireParent =\n options.kind === SpanKind.CLIENT\n ? this.getConfig().requireParentforOutgoingSpans\n : this.getConfig().requireParentforIncomingSpans;\n\n let span: Span;\n const currentSpan = trace.getSpan(ctx);\n\n if (\n requireParent === true &&\n (!currentSpan || !trace.isSpanContextValid(currentSpan.spanContext()))\n ) {\n span = trace.wrapSpanContext(INVALID_SPAN_CONTEXT);\n } else if (requireParent === true && currentSpan?.spanContext().isRemote) {\n span = currentSpan;\n } else {\n span = this.tracer.startSpan(name, options, ctx);\n }\n this._spanNotEnded.add(span);\n return span;\n }\n\n private _closeHttpSpan(\n span: Span,\n spanKind: SpanKind,\n startTime: HrTime,\n oldMetricAttributes: Attributes,\n stableMetricAttributes: Attributes\n ) {\n if (!this._spanNotEnded.has(span)) {\n return;\n }\n\n span.end();\n this._spanNotEnded.delete(span);\n\n // Record metrics\n const duration = hrTimeToMilliseconds(hrTimeDuration(startTime, hrTime()));\n if (spanKind === SpanKind.SERVER) {\n this._recordServerDuration(\n duration,\n oldMetricAttributes,\n stableMetricAttributes\n );\n } else if (spanKind === SpanKind.CLIENT) {\n this._recordClientDuration(\n duration,\n oldMetricAttributes,\n stableMetricAttributes\n );\n }\n }\n\n private _callResponseHook(\n span: Span,\n response: http.IncomingMessage | http.ServerResponse\n ) {\n safeExecuteInTheMiddle(\n () => this.getConfig().responseHook!(span, response),\n () => {},\n true\n );\n }\n\n private _callRequestHook(\n span: Span,\n request: http.ClientRequest | http.IncomingMessage\n ) {\n safeExecuteInTheMiddle(\n () => this.getConfig().requestHook!(span, request),\n () => {},\n true\n );\n }\n\n private _callStartSpanHook(\n request: http.IncomingMessage | http.RequestOptions,\n hookFunc: Function | undefined\n ) {\n if (typeof hookFunc === 'function') {\n return safeExecuteInTheMiddle(\n () => hookFunc(request),\n () => {},\n true\n );\n }\n }\n\n private _createHeaderCapture(semconvStability: SemconvStability) {\n const config = this.getConfig();\n\n return {\n client: {\n captureRequestHeaders: headerCapture(\n 'request',\n config.headersToSpanAttributes?.client?.requestHeaders ?? [],\n semconvStability\n ),\n captureResponseHeaders: headerCapture(\n 'response',\n config.headersToSpanAttributes?.client?.responseHeaders ?? [],\n semconvStability\n ),\n },\n server: {\n captureRequestHeaders: headerCapture(\n 'request',\n config.headersToSpanAttributes?.server?.requestHeaders ?? [],\n semconvStability\n ),\n captureResponseHeaders: headerCapture(\n 'response',\n config.headersToSpanAttributes?.server?.responseHeaders ?? [],\n semconvStability\n ),\n },\n };\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport { HttpInstrumentation } from './http';\nexport type {\n HttpCustomAttributeFunction,\n HttpInstrumentationConfig,\n HttpRequestCustomAttributeFunction,\n HttpResponseCustomAttributeFunction,\n IgnoreIncomingRequestFunction,\n IgnoreOutgoingRequestFunction,\n StartIncomingSpanCustomAttributeFunction,\n StartOutgoingSpanCustomAttributeFunction,\n} from './types';\n","import { type Instrumentation, registerInstrumentations } from '@opentelemetry/instrumentation';\n\n/** Exported only for tests. */\nexport const INSTRUMENTED: Record = {};\n\nexport function generateInstrumentOnce<\n Options,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n InstrumentationClass extends new (...args: any[]) => Instrumentation,\n>(\n name: string,\n instrumentationClass: InstrumentationClass,\n optionsCallback: (options: Options) => ConstructorParameters[0],\n): ((options: Options) => InstanceType) & { id: string };\nexport function generateInstrumentOnce<\n Options = unknown,\n InstrumentationInstance extends Instrumentation = Instrumentation,\n>(\n name: string,\n creator: (options?: Options) => InstrumentationInstance,\n): ((options?: Options) => InstrumentationInstance) & { id: string };\n/**\n * Instrument an OpenTelemetry instrumentation once.\n * This will skip running instrumentation again if it was already instrumented.\n */\nexport function generateInstrumentOnce(\n name: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n creatorOrClass: (new (...args: any[]) => Instrumentation) | ((options?: Options) => Instrumentation),\n optionsCallback?: (options: Options) => unknown,\n): ((options: Options) => Instrumentation) & { id: string } {\n if (optionsCallback) {\n return _generateInstrumentOnceWithOptions(\n name,\n creatorOrClass as new (...args: unknown[]) => Instrumentation,\n optionsCallback,\n );\n }\n\n return _generateInstrumentOnce(name, creatorOrClass as (options?: Options) => Instrumentation);\n}\n\n// The plain version without handling of options\n// Should not be used with custom options that are mutated in the creator!\nfunction _generateInstrumentOnce(\n name: string,\n creator: (options?: Options) => InstrumentationInstance,\n): ((options?: Options) => InstrumentationInstance) & { id: string } {\n return Object.assign(\n (options?: Options) => {\n const instrumented = INSTRUMENTED[name] as InstrumentationInstance | undefined;\n if (instrumented) {\n // If options are provided, ensure we update them\n if (options) {\n instrumented.setConfig(options);\n }\n return instrumented;\n }\n\n const instrumentation = creator(options);\n INSTRUMENTED[name] = instrumentation;\n\n registerInstrumentations({\n instrumentations: [instrumentation],\n });\n\n return instrumentation;\n },\n { id: name },\n );\n}\n\n// This version handles options properly\nfunction _generateInstrumentOnceWithOptions<\n Options,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n InstrumentationClass extends new (...args: any[]) => Instrumentation,\n>(\n name: string,\n instrumentationClass: InstrumentationClass,\n optionsCallback: (options: Options) => ConstructorParameters[0],\n): ((options: Options) => InstanceType) & { id: string } {\n return Object.assign(\n (_options: Options) => {\n const options = optionsCallback(_options);\n\n const instrumented = INSTRUMENTED[name] as InstanceType | undefined;\n if (instrumented) {\n // Ensure we update options\n instrumented.setConfig(options);\n return instrumented;\n }\n\n const instrumentation = new instrumentationClass(options) as InstanceType;\n INSTRUMENTED[name] = instrumentation;\n\n registerInstrumentations({\n instrumentations: [instrumentation],\n });\n\n return instrumentation;\n },\n { id: name },\n );\n}\n\n/**\n * Ensure a given callback is called when the instrumentation is actually wrapping something.\n * This can be used to ensure some logic is only called when the instrumentation is actually active.\n *\n * This function returns a function that can be invoked with a callback.\n * This callback will either be invoked immediately\n * (e.g. if the instrumentation was already wrapped, or if _wrap could not be patched),\n * or once the instrumentation is actually wrapping something.\n *\n * Make sure to call this function right after adding the instrumentation, otherwise it may be too late!\n * The returned callback can be used any time, and also multiple times.\n */\nexport function instrumentWhenWrapped(instrumentation: T): (callback: () => void) => void {\n let isWrapped = false;\n let callbacks: (() => void)[] = [];\n\n if (!hasWrap(instrumentation)) {\n isWrapped = true;\n } else {\n const originalWrap = instrumentation['_wrap'];\n\n instrumentation['_wrap'] = (...args: Parameters) => {\n isWrapped = true;\n callbacks.forEach(callback => callback());\n callbacks = [];\n return originalWrap(...args);\n };\n }\n\n const registerCallback = (callback: () => void): void => {\n if (isWrapped) {\n callback();\n } else {\n callbacks.push(callback);\n }\n };\n\n return registerCallback;\n}\n\nfunction hasWrap(\n instrumentation: T,\n): instrumentation is T & { _wrap: (...args: unknown[]) => unknown } {\n return typeof (instrumentation as T & { _wrap?: (...args: unknown[]) => unknown })['_wrap'] === 'function';\n}\n","declare const __DEBUG_BUILD__: boolean;\n\n/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nexport const DEBUG_BUILD = __DEBUG_BUILD__;\n","export const INSTRUMENTATION_NAME = '@sentry/instrumentation-http';\n\n/** We only want to capture request bodies up to 1mb. */\nexport const MAX_BODY_BYTE_LENGTH = 1024 * 1024;\n","import type { IncomingMessage } from 'node:http';\nimport type { Scope } from '@sentry/core';\nimport { debug } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { MAX_BODY_BYTE_LENGTH } from '../integrations/http/constants';\n\n/**\n * This method patches the request object to capture the body.\n * Instead of actually consuming the streamed body ourselves, which has potential side effects,\n * we monkey patch `req.on('data')` to intercept the body chunks.\n * This way, we only read the body if the user also consumes the body, ensuring we do not change any behavior in unexpected ways.\n */\nexport function patchRequestToCaptureBody(\n req: IncomingMessage,\n isolationScope: Scope,\n maxIncomingRequestBodySize: 'small' | 'medium' | 'always',\n integrationName: string,\n): void {\n let bodyByteLength = 0;\n const chunks: Buffer[] = [];\n\n DEBUG_BUILD && debug.log(integrationName, 'Patching request.on');\n\n /**\n * We need to keep track of the original callbacks, in order to be able to remove listeners again.\n * Since `off` depends on having the exact same function reference passed in, we need to be able to map\n * original listeners to our wrapped ones.\n */\n const callbackMap = new WeakMap();\n\n const maxBodySize =\n maxIncomingRequestBodySize === 'small'\n ? 1_000\n : maxIncomingRequestBodySize === 'medium'\n ? 10_000\n : MAX_BODY_BYTE_LENGTH;\n\n try {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n req.on = new Proxy(req.on, {\n apply: (target, thisArg, args: Parameters) => {\n const [event, listener, ...restArgs] = args;\n\n if (event === 'data') {\n DEBUG_BUILD &&\n debug.log(integrationName, `Handling request.on(\"data\") with maximum body size of ${maxBodySize}b`);\n\n const callback = new Proxy(listener, {\n apply: (target, thisArg, args: Parameters) => {\n try {\n const chunk = args[0] as Buffer | string;\n const bufferifiedChunk = Buffer.from(chunk);\n\n if (bodyByteLength < maxBodySize) {\n chunks.push(bufferifiedChunk);\n bodyByteLength += bufferifiedChunk.byteLength;\n } else if (DEBUG_BUILD) {\n debug.log(\n integrationName,\n `Dropping request body chunk because maximum body length of ${maxBodySize}b is exceeded.`,\n );\n }\n } catch (_err) {\n DEBUG_BUILD && debug.error(integrationName, 'Encountered error while storing body chunk.');\n }\n\n return Reflect.apply(target, thisArg, args);\n },\n });\n\n callbackMap.set(listener, callback);\n\n return Reflect.apply(target, thisArg, [event, callback, ...restArgs]);\n }\n\n return Reflect.apply(target, thisArg, args);\n },\n });\n\n // Ensure we also remove callbacks correctly\n // eslint-disable-next-line @typescript-eslint/unbound-method\n req.off = new Proxy(req.off, {\n apply: (target, thisArg, args: Parameters) => {\n const [, listener] = args;\n\n const callback = callbackMap.get(listener);\n if (callback) {\n callbackMap.delete(listener);\n\n const modifiedArgs = args.slice();\n modifiedArgs[1] = callback;\n return Reflect.apply(target, thisArg, modifiedArgs);\n }\n\n return Reflect.apply(target, thisArg, args);\n },\n });\n\n req.on('end', () => {\n try {\n const body = Buffer.concat(chunks).toString('utf-8');\n if (body) {\n // Using Buffer.byteLength here, because the body may contain characters that are not 1 byte long\n const bodyByteLength = Buffer.byteLength(body, 'utf-8');\n const truncatedBody =\n bodyByteLength > maxBodySize\n ? `${Buffer.from(body)\n .subarray(0, maxBodySize - 3)\n .toString('utf-8')}...`\n : body;\n\n isolationScope.setSDKProcessingMetadata({ normalizedRequest: { data: truncatedBody } });\n }\n } catch (error) {\n if (DEBUG_BUILD) {\n debug.error(integrationName, 'Error building captured request body', error);\n }\n }\n });\n } catch (error) {\n if (DEBUG_BUILD) {\n debug.error(integrationName, 'Error patching request to capture body', error);\n }\n }\n}\n","import type { ChannelListener } from 'node:diagnostics_channel';\nimport { subscribe } from 'node:diagnostics_channel';\nimport type { EventEmitter } from 'node:events';\nimport type { IncomingMessage, RequestOptions, Server, ServerResponse } from 'node:http';\nimport type { Socket } from 'node:net';\nimport { context, createContextKey, propagation } from '@opentelemetry/api';\nimport type { AggregationCounts, Client, Integration, IntegrationFn, Scope } from '@sentry/core';\nimport {\n _INTERNAL_safeMathRandom,\n addNonEnumerableProperty,\n debug,\n generateSpanId,\n generateTraceId,\n getClient,\n getCurrentScope,\n getIsolationScope,\n httpRequestToRequestData,\n stripUrlQueryAndFragment,\n withIsolationScope,\n} from '@sentry/core';\nimport { DEBUG_BUILD } from '../../debug-build';\nimport type { NodeClient } from '../../sdk/client';\nimport { patchRequestToCaptureBody } from '../../utils/captureRequestBody';\n\ntype ServerEmit = typeof Server.prototype.emit;\n\n// Inlining this type to not depend on newer TS types\ninterface WeakRefImpl {\n deref(): T | undefined;\n}\n\ntype StartSpanCallback = (next: () => boolean) => boolean;\ntype RequestWithOptionalStartSpanCallback = IncomingMessage & {\n _startSpanCallback?: WeakRefImpl;\n};\n\nconst HTTP_SERVER_INSTRUMENTED_KEY = createContextKey('sentry_http_server_instrumented');\nconst INTEGRATION_NAME = 'Http.Server';\n\nconst clientToRequestSessionAggregatesMap = new Map<\n Client,\n { [timestampRoundedToSeconds: string]: { exited: number; crashed: number; errored: number } }\n>();\n\n// We keep track of emit functions we wrapped, to avoid double wrapping\n// We do this instead of putting a non-enumerable property on the function, because\n// sometimes the property seems to be migrated to forks of the emit function, which we do not want to happen\n// This was the case in the nestjs-distributed-tracing E2E test\nconst wrappedEmitFns = new WeakSet();\n\nexport interface HttpServerIntegrationOptions {\n /**\n * Whether the integration should create [Sessions](https://docs.sentry.io/product/releases/health/#sessions) for incoming requests to track the health and crash-free rate of your releases in Sentry.\n * Read more about Release Health: https://docs.sentry.io/product/releases/health/\n *\n * Defaults to `true`.\n */\n sessions?: boolean;\n\n /**\n * Number of milliseconds until sessions tracked with `trackIncomingRequestsAsSessions` will be flushed as a session aggregate.\n *\n * Defaults to `60000` (60s).\n */\n sessionFlushingDelayMS?: number;\n\n /**\n * Do not capture the request body for incoming HTTP requests to URLs where the given callback returns `true`.\n * This can be useful for long running requests where the body is not needed and we want to avoid capturing it.\n *\n * @param url Contains the entire URL, including query string (if any), protocol, host, etc. of the incoming request.\n * @param request Contains the {@type RequestOptions} object used to make the incoming request.\n */\n ignoreRequestBody?: (url: string, request: RequestOptions) => boolean;\n\n /**\n * Controls the maximum size of incoming HTTP request bodies attached to events.\n *\n * Available options:\n * - 'none': No request bodies will be attached\n * - 'small': Request bodies up to 1,000 bytes will be attached\n * - 'medium': Request bodies up to 10,000 bytes will be attached (default)\n * - 'always': Request bodies will always be attached\n *\n * Note that even with 'always' setting, bodies exceeding 1MB will never be attached\n * for performance and security reasons.\n *\n * @default 'medium'\n */\n maxRequestBodySize?: 'none' | 'small' | 'medium' | 'always';\n}\n\n/**\n * Add a callback to the request object that will be called when the request is started.\n * The callback will receive the next function to continue processing the request.\n */\nexport function addStartSpanCallback(request: RequestWithOptionalStartSpanCallback, callback: StartSpanCallback): void {\n addNonEnumerableProperty(request, '_startSpanCallback', new WeakRef(callback));\n}\n\nconst _httpServerIntegration = ((options: HttpServerIntegrationOptions = {}) => {\n const _options = {\n sessions: options.sessions ?? true,\n sessionFlushingDelayMS: options.sessionFlushingDelayMS ?? 60_000,\n maxRequestBodySize: options.maxRequestBodySize ?? 'medium',\n ignoreRequestBody: options.ignoreRequestBody,\n };\n\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n const onHttpServerRequestStart = ((_data: unknown) => {\n const data = _data as { server: Server };\n\n instrumentServer(data.server, _options);\n }) satisfies ChannelListener;\n\n subscribe('http.server.request.start', onHttpServerRequestStart);\n },\n afterAllSetup(client) {\n if (DEBUG_BUILD && client.getIntegrationByName('Http')) {\n debug.warn(\n 'It seems that you have manually added `httpServerIntegration` while `httpIntegration` is also present. Make sure to remove `httpServerIntegration` when adding `httpIntegration`.',\n );\n }\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * This integration handles request isolation, trace continuation and other core Sentry functionality around incoming http requests\n * handled via the node `http` module.\n *\n * This version uses OpenTelemetry for context propagation and span management.\n *\n * @see {@link ../../light/integrations/httpServerIntegration.ts} for the lightweight version without OpenTelemetry\n */\nexport const httpServerIntegration = _httpServerIntegration as (\n options?: HttpServerIntegrationOptions,\n) => Integration & {\n name: 'HttpServer';\n setupOnce: () => void;\n};\n\n/**\n * Instrument a server to capture incoming requests.\n *\n */\nfunction instrumentServer(\n server: Server,\n {\n ignoreRequestBody,\n maxRequestBodySize,\n sessions,\n sessionFlushingDelayMS,\n }: {\n ignoreRequestBody?: (url: string, request: IncomingMessage) => boolean;\n maxRequestBodySize: 'small' | 'medium' | 'always' | 'none';\n sessions: boolean;\n sessionFlushingDelayMS: number;\n },\n): void {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const originalEmit: ServerEmit = server.emit;\n\n if (wrappedEmitFns.has(originalEmit)) {\n return;\n }\n\n const newEmit = new Proxy(originalEmit, {\n apply(target, thisArg, args: [event: string, ...args: unknown[]]) {\n // Only traces request events\n if (args[0] !== 'request') {\n return target.apply(thisArg, args);\n }\n\n const client = getClient();\n\n // Make sure we do not double execute our wrapper code, for edge cases...\n // Without this check, if we double-wrap emit, for whatever reason, you'd get two http.server spans (one the children of the other)\n if (context.active().getValue(HTTP_SERVER_INSTRUMENTED_KEY) || !client) {\n return target.apply(thisArg, args);\n }\n\n DEBUG_BUILD && debug.log(INTEGRATION_NAME, 'Handling incoming request');\n\n const isolationScope = getIsolationScope().clone();\n const request = args[1] as IncomingMessage;\n const response = args[2] as ServerResponse & { socket: Socket };\n\n const normalizedRequest = httpRequestToRequestData(request);\n\n // request.ip is non-standard but some frameworks set this\n const ipAddress = (request as { ip?: string }).ip || request.socket?.remoteAddress;\n\n const url = request.url || '/';\n if (maxRequestBodySize !== 'none' && !ignoreRequestBody?.(url, request)) {\n patchRequestToCaptureBody(request, isolationScope, maxRequestBodySize, INTEGRATION_NAME);\n }\n\n // Update the isolation scope, isolate this request\n isolationScope.setSDKProcessingMetadata({ normalizedRequest, ipAddress });\n\n // attempt to update the scope's `transactionName` based on the request URL\n // Ideally, framework instrumentations coming after the HttpInstrumentation\n // update the transactionName once we get a parameterized route.\n const httpMethod = (request.method || 'GET').toUpperCase();\n const httpTargetWithoutQueryFragment = stripUrlQueryAndFragment(url);\n\n const bestEffortTransactionName = `${httpMethod} ${httpTargetWithoutQueryFragment}`;\n\n isolationScope.setTransactionName(bestEffortTransactionName);\n\n if (sessions && client) {\n recordRequestSession(client, {\n requestIsolationScope: isolationScope,\n response,\n sessionFlushingDelayMS: sessionFlushingDelayMS ?? 60_000,\n });\n }\n\n return withIsolationScope(isolationScope, () => {\n const newPropagationContext = {\n traceId: generateTraceId(),\n sampleRand: _INTERNAL_safeMathRandom(),\n propagationSpanId: generateSpanId(),\n };\n // - Set a fresh propagation context so each request gets a unique traceId.\n // When there are incoming trace headers, propagation.extract() below sets a remote\n // span on the OTel context which takes precedence in getTraceContextForScope().\n // - We can write directly to the current scope here because it is forked implicitly via\n // `context.with` in `withIsolationScope` (See `SentryContextManager`).\n // - explicitly making a deep copy to avoid mutation of original PC on the other scope\n getCurrentScope().setPropagationContext({ ...newPropagationContext });\n isolationScope.setPropagationContext({ ...newPropagationContext });\n\n const ctx = propagation\n .extract(context.active(), normalizedRequest.headers)\n .setValue(HTTP_SERVER_INSTRUMENTED_KEY, true);\n\n return context.with(ctx, () => {\n // This is used (optionally) by the httpServerSpansIntegration to attach _startSpanCallback to the request object\n client.emit('httpServerRequest', request, response, normalizedRequest);\n\n const callback = (request as RequestWithOptionalStartSpanCallback)._startSpanCallback?.deref();\n if (callback) {\n return callback(() => target.apply(thisArg, args));\n }\n return target.apply(thisArg, args);\n });\n });\n },\n });\n\n wrappedEmitFns.add(newEmit);\n server.emit = newEmit;\n}\n\n/**\n * Starts a session and tracks it in the context of a given isolation scope.\n * When the passed response is finished, the session is put into a task and is\n * aggregated with other sessions that may happen in a certain time window\n * (sessionFlushingDelayMs).\n *\n * The sessions are always aggregated by the client that is on the current scope\n * at the time of ending the response (if there is one).\n */\n// Exported for unit tests\nexport function recordRequestSession(\n client: Client,\n {\n requestIsolationScope,\n response,\n sessionFlushingDelayMS,\n }: {\n requestIsolationScope: Scope;\n response: EventEmitter;\n sessionFlushingDelayMS?: number;\n },\n): void {\n requestIsolationScope.setSDKProcessingMetadata({\n requestSession: { status: 'ok' },\n });\n response.once('close', () => {\n const requestSession = requestIsolationScope.getScopeData().sdkProcessingMetadata.requestSession;\n\n if (client && requestSession) {\n DEBUG_BUILD && debug.log(`Recorded request session with status: ${requestSession.status}`);\n\n const roundedDate = new Date();\n roundedDate.setSeconds(0, 0);\n const dateBucketKey = roundedDate.toISOString();\n\n const existingClientAggregate = clientToRequestSessionAggregatesMap.get(client);\n const bucket = existingClientAggregate?.[dateBucketKey] || { exited: 0, crashed: 0, errored: 0 };\n bucket[({ ok: 'exited', crashed: 'crashed', errored: 'errored' } as const)[requestSession.status]]++;\n\n if (existingClientAggregate) {\n existingClientAggregate[dateBucketKey] = bucket;\n } else {\n DEBUG_BUILD && debug.log('Opened new request session aggregate.');\n const newClientAggregate = { [dateBucketKey]: bucket };\n clientToRequestSessionAggregatesMap.set(client, newClientAggregate);\n\n const flushPendingClientAggregates = (): void => {\n clearTimeout(timeout);\n unregisterClientFlushHook();\n clientToRequestSessionAggregatesMap.delete(client);\n\n const aggregatePayload: AggregationCounts[] = Object.entries(newClientAggregate).map(\n ([timestamp, value]) => ({\n started: timestamp,\n exited: value.exited,\n errored: value.errored,\n crashed: value.crashed,\n }),\n );\n client.sendSession({ aggregates: aggregatePayload });\n };\n\n const unregisterClientFlushHook = client.on('flush', () => {\n DEBUG_BUILD && debug.log('Sending request session aggregate due to client flush');\n flushPendingClientAggregates();\n });\n const timeout = setTimeout(() => {\n DEBUG_BUILD && debug.log('Sending request session aggregate due to flushing schedule');\n flushPendingClientAggregates();\n }, sessionFlushingDelayMS).unref();\n }\n }\n });\n}\n","import { errorMonitor } from 'node:events';\nimport type { ClientRequest, IncomingHttpHeaders, IncomingMessage, ServerResponse } from 'node:http';\nimport { context, SpanKind, trace } from '@opentelemetry/api';\nimport type { RPCMetadata } from '@opentelemetry/core';\nimport { getRPCMetadata, isTracingSuppressed, RPCType, setRPCMetadata } from '@opentelemetry/core';\nimport {\n ATTR_HTTP_RESPONSE_STATUS_CODE,\n ATTR_HTTP_ROUTE,\n SEMATTRS_HTTP_STATUS_CODE,\n SEMATTRS_NET_HOST_IP,\n SEMATTRS_NET_HOST_PORT,\n SEMATTRS_NET_PEER_IP,\n} from '@opentelemetry/semantic-conventions';\nimport type { Event, Integration, IntegrationFn, Span, SpanAttributes, SpanStatus } from '@sentry/core';\nimport {\n debug,\n getIsolationScope,\n getSpanStatusFromHttpCode,\n httpHeadersToSpanAttributes,\n parseStringToURLObject,\n SEMANTIC_ATTRIBUTE_SENTRY_OP,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SPAN_STATUS_ERROR,\n stripUrlQueryAndFragment,\n} from '@sentry/core';\nimport { DEBUG_BUILD } from '../../debug-build';\nimport type { NodeClient } from '../../sdk/client';\nimport { addStartSpanCallback } from './httpServerIntegration';\n\nconst INTEGRATION_NAME = 'Http.ServerSpans';\n\n// Tree-shakable guard to remove all code related to tracing\ndeclare const __SENTRY_TRACING__: boolean;\n\nexport interface HttpServerSpansIntegrationOptions {\n /**\n * Do not capture spans for incoming HTTP requests to URLs where the given callback returns `true`.\n * Spans will be non recording if tracing is disabled.\n *\n * The `urlPath` param consists of the URL path and query string (if any) of the incoming request.\n * For example: `'/users/details?id=123'`\n *\n * The `request` param contains the original {@type IncomingMessage} object of the incoming request.\n * You can use it to filter on additional properties like method, headers, etc.\n */\n ignoreIncomingRequests?: (urlPath: string, request: IncomingMessage) => boolean;\n\n /**\n * Whether to automatically ignore common static asset requests like favicon.ico, robots.txt, etc.\n * This helps reduce noise in your transactions.\n *\n * @default `true`\n */\n ignoreStaticAssets?: boolean;\n\n /**\n * Do not capture spans for incoming HTTP requests with the given status codes.\n * By default, spans with some 3xx and 4xx status codes are ignored (see @default).\n * Expects an array of status codes or a range of status codes, e.g. [[300,399], 404] would ignore 3xx and 404 status codes.\n *\n * @default `[[401, 404], [301, 303], [305, 399]]`\n */\n ignoreStatusCodes?: (number | [number, number])[];\n\n /**\n * @deprecated This is deprecated in favor of `incomingRequestSpanHook`.\n */\n instrumentation?: {\n requestHook?: (span: Span, req: ClientRequest | IncomingMessage) => void;\n responseHook?: (span: Span, response: IncomingMessage | ServerResponse) => void;\n applyCustomAttributesOnSpan?: (\n span: Span,\n request: ClientRequest | IncomingMessage,\n response: IncomingMessage | ServerResponse,\n ) => void;\n };\n\n /**\n * A hook that can be used to mutate the span for incoming requests.\n * This is triggered after the span is created, but before it is recorded.\n */\n onSpanCreated?: (span: Span, request: IncomingMessage, response: ServerResponse) => void;\n}\n\nconst _httpServerSpansIntegration = ((options: HttpServerSpansIntegrationOptions = {}) => {\n const ignoreStaticAssets = options.ignoreStaticAssets ?? true;\n const ignoreIncomingRequests = options.ignoreIncomingRequests;\n const ignoreStatusCodes = options.ignoreStatusCodes ?? [\n [401, 404],\n // 300 and 304 are possibly valid status codes we do not want to filter\n [301, 303],\n [305, 399],\n ];\n\n const { onSpanCreated } = options;\n // eslint-disable-next-line deprecation/deprecation\n const { requestHook, responseHook, applyCustomAttributesOnSpan } = options.instrumentation ?? {};\n\n return {\n name: INTEGRATION_NAME,\n setup(client: NodeClient) {\n // If no tracing, we can just skip everything here\n if (typeof __SENTRY_TRACING__ !== 'undefined' && !__SENTRY_TRACING__) {\n return;\n }\n\n client.on('httpServerRequest', (_request, _response, normalizedRequest) => {\n // Type-casting this here because we do not want to put the node types into core\n const request = _request as IncomingMessage;\n const response = _response as ServerResponse;\n\n const startSpan = (next: () => boolean): boolean => {\n if (\n shouldIgnoreSpansForIncomingRequest(request, {\n ignoreStaticAssets,\n ignoreIncomingRequests,\n })\n ) {\n DEBUG_BUILD && debug.log(INTEGRATION_NAME, 'Skipping span creation for incoming request', request.url);\n return next();\n }\n\n const fullUrl = normalizedRequest.url || request.url || '/';\n const urlObj = parseStringToURLObject(fullUrl);\n\n const headers = request.headers;\n const userAgent = headers['user-agent'];\n const ips = headers['x-forwarded-for'];\n const httpVersion = request.httpVersion;\n const host = headers.host;\n const hostname = host?.replace(/^(.*)(:[0-9]{1,5})/, '$1') || 'localhost';\n\n const tracer = client.tracer;\n const scheme = fullUrl.startsWith('https') ? 'https' : 'http';\n\n const method = normalizedRequest.method || request.method?.toUpperCase() || 'GET';\n const httpTargetWithoutQueryFragment = urlObj ? urlObj.pathname : stripUrlQueryAndFragment(fullUrl);\n const bestEffortTransactionName = `${method} ${httpTargetWithoutQueryFragment}`;\n\n // We use the plain tracer.startSpan here so we can pass the span kind\n const span = tracer.startSpan(bestEffortTransactionName, {\n kind: SpanKind.SERVER,\n attributes: {\n // Sentry specific attributes\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'http.server',\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.http',\n 'sentry.http.prefetch': isKnownPrefetchRequest(request) || undefined,\n // Old Semantic Conventions attributes - added for compatibility with what `@opentelemetry/instrumentation-http` output before\n 'http.url': fullUrl,\n 'http.method': normalizedRequest.method,\n 'http.target': urlObj ? `${urlObj.pathname}${urlObj.search}` : httpTargetWithoutQueryFragment,\n 'http.host': host,\n 'net.host.name': hostname,\n 'http.client_ip': typeof ips === 'string' ? ips.split(',')[0] : undefined,\n 'http.user_agent': userAgent,\n 'http.scheme': scheme,\n 'http.flavor': httpVersion,\n 'net.transport': httpVersion?.toUpperCase() === 'QUIC' ? 'ip_udp' : 'ip_tcp',\n ...getRequestContentLengthAttribute(request),\n ...httpHeadersToSpanAttributes(\n normalizedRequest.headers || {},\n client.getOptions().sendDefaultPii ?? false,\n ),\n },\n });\n\n // TODO v11: Remove the following three hooks, only onSpanCreated should remain\n requestHook?.(span, request);\n responseHook?.(span, response);\n applyCustomAttributesOnSpan?.(span, request, response);\n onSpanCreated?.(span, request, response);\n\n const rpcMetadata: RPCMetadata = {\n type: RPCType.HTTP,\n span,\n };\n\n return context.with(setRPCMetadata(trace.setSpan(context.active(), span), rpcMetadata), () => {\n context.bind(context.active(), request);\n context.bind(context.active(), response);\n\n // Ensure we only end the span once\n // E.g. error can be emitted before close is emitted\n let isEnded = false;\n function endSpan(status: SpanStatus): void {\n if (isEnded) {\n return;\n }\n\n isEnded = true;\n\n const newAttributes = getIncomingRequestAttributesOnResponse(request, response);\n span.setAttributes(newAttributes);\n span.setStatus(status);\n span.end();\n\n // Update the transaction name if the route has changed\n const route = newAttributes['http.route'];\n if (route) {\n getIsolationScope().setTransactionName(`${request.method?.toUpperCase() || 'GET'} ${route}`);\n }\n }\n\n response.on('close', () => {\n endSpan(getSpanStatusFromHttpCode(response.statusCode));\n });\n response.on(errorMonitor, () => {\n const httpStatus = getSpanStatusFromHttpCode(response.statusCode);\n // Ensure we def. have an error status here\n endSpan(httpStatus.code === SPAN_STATUS_ERROR ? httpStatus : { code: SPAN_STATUS_ERROR });\n });\n\n return next();\n });\n };\n\n addStartSpanCallback(request, startSpan);\n });\n },\n processEvent(event) {\n // Drop transaction if it has a status code that should be ignored\n if (event.type === 'transaction') {\n const statusCode = event.contexts?.trace?.data?.['http.response.status_code'];\n if (typeof statusCode === 'number') {\n const shouldDrop = shouldFilterStatusCode(statusCode, ignoreStatusCodes);\n if (shouldDrop) {\n DEBUG_BUILD && debug.log('Dropping transaction due to status code', statusCode);\n return null;\n }\n }\n }\n\n return event;\n },\n afterAllSetup(client) {\n if (!DEBUG_BUILD) {\n return;\n }\n\n if (client.getIntegrationByName('Http')) {\n debug.warn(\n 'It seems that you have manually added `httpServerSpansIntergation` while `httpIntegration` is also present. Make sure to remove `httpIntegration` when adding `httpServerSpansIntegration`.',\n );\n }\n\n if (!client.getIntegrationByName('Http.Server')) {\n debug.error(\n 'It seems that you have manually added `httpServerSpansIntergation` without adding `httpServerIntegration`. This is a requiement for spans to be created - please add the `httpServerIntegration` integration.',\n );\n }\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * This integration emits spans for incoming requests handled via the node `http` module.\n * It requires the `httpServerIntegration` to be present.\n */\nexport const httpServerSpansIntegration = _httpServerSpansIntegration as (\n options?: HttpServerSpansIntegrationOptions,\n) => Integration & {\n name: 'HttpServerSpans';\n setup: (client: NodeClient) => void;\n processEvent: (event: Event) => Event | null;\n};\n\nfunction isKnownPrefetchRequest(req: IncomingMessage): boolean {\n // Currently only handles Next.js prefetch requests but may check other frameworks in the future.\n return req.headers['next-router-prefetch'] === '1';\n}\n\n/**\n * Check if a request is for a common static asset that should be ignored by default.\n *\n * Only exported for tests.\n */\nexport function isStaticAssetRequest(urlPath: string): boolean {\n const path = stripUrlQueryAndFragment(urlPath);\n // Common static file extensions\n if (path.match(/\\.(ico|png|jpg|jpeg|gif|svg|css|js|woff|woff2|ttf|eot|webp|avif)$/)) {\n return true;\n }\n\n // Common metadata files\n if (path.match(/^\\/(robots\\.txt|sitemap\\.xml|manifest\\.json|browserconfig\\.xml)$/)) {\n return true;\n }\n\n return false;\n}\n\nfunction shouldIgnoreSpansForIncomingRequest(\n request: IncomingMessage,\n {\n ignoreStaticAssets,\n ignoreIncomingRequests,\n }: {\n ignoreStaticAssets?: boolean;\n ignoreIncomingRequests?: (urlPath: string, request: IncomingMessage) => boolean;\n },\n): boolean {\n if (isTracingSuppressed(context.active())) {\n return true;\n }\n\n // request.url is the only property that holds any information about the url\n // it only consists of the URL path and query string (if any)\n const urlPath = request.url;\n\n const method = request.method?.toUpperCase();\n // We do not capture OPTIONS/HEAD requests as spans\n if (method === 'OPTIONS' || method === 'HEAD' || !urlPath) {\n return true;\n }\n\n // Default static asset filtering\n if (ignoreStaticAssets && method === 'GET' && isStaticAssetRequest(urlPath)) {\n return true;\n }\n\n if (ignoreIncomingRequests?.(urlPath, request)) {\n return true;\n }\n\n return false;\n}\n\nfunction getRequestContentLengthAttribute(request: IncomingMessage): SpanAttributes {\n const length = getContentLength(request.headers);\n if (length == null) {\n return {};\n }\n\n if (isCompressed(request.headers)) {\n return {\n ['http.request_content_length']: length,\n };\n } else {\n return {\n ['http.request_content_length_uncompressed']: length,\n };\n }\n}\n\nfunction getContentLength(headers: IncomingHttpHeaders): number | null {\n const contentLengthHeader = headers['content-length'];\n if (contentLengthHeader === undefined) return null;\n\n const contentLength = parseInt(contentLengthHeader, 10);\n if (isNaN(contentLength)) return null;\n\n return contentLength;\n}\n\nfunction isCompressed(headers: IncomingHttpHeaders): boolean {\n const encoding = headers['content-encoding'];\n\n return !!encoding && encoding !== 'identity';\n}\n\nfunction getIncomingRequestAttributesOnResponse(request: IncomingMessage, response: ServerResponse): SpanAttributes {\n // take socket from the request,\n // since it may be detached from the response object in keep-alive mode\n const { socket } = request;\n const { statusCode, statusMessage } = response;\n\n const newAttributes: SpanAttributes = {\n [ATTR_HTTP_RESPONSE_STATUS_CODE]: statusCode,\n // eslint-disable-next-line deprecation/deprecation\n [SEMATTRS_HTTP_STATUS_CODE]: statusCode,\n 'http.status_text': statusMessage?.toUpperCase(),\n };\n\n const rpcMetadata = getRPCMetadata(context.active());\n if (socket) {\n const { localAddress, localPort, remoteAddress, remotePort } = socket;\n // eslint-disable-next-line deprecation/deprecation\n newAttributes[SEMATTRS_NET_HOST_IP] = localAddress;\n // eslint-disable-next-line deprecation/deprecation\n newAttributes[SEMATTRS_NET_HOST_PORT] = localPort;\n // eslint-disable-next-line deprecation/deprecation\n newAttributes[SEMATTRS_NET_PEER_IP] = remoteAddress;\n newAttributes['net.peer.port'] = remotePort;\n }\n // eslint-disable-next-line deprecation/deprecation\n newAttributes[SEMATTRS_HTTP_STATUS_CODE] = statusCode;\n newAttributes['http.status_text'] = (statusMessage || '').toUpperCase();\n\n if (rpcMetadata?.type === RPCType.HTTP && rpcMetadata.route !== undefined) {\n const routeName = rpcMetadata.route;\n newAttributes[ATTR_HTTP_ROUTE] = routeName;\n }\n\n return newAttributes;\n}\n\n/**\n * If the given status code should be filtered for the given list of status codes/ranges.\n */\nfunction shouldFilterStatusCode(statusCode: number, dropForStatusCodes: (number | [number, number])[]): boolean {\n return dropForStatusCodes.some(code => {\n if (typeof code === 'number') {\n return code === statusCode;\n }\n\n const [min, max] = code;\n return statusCode >= min && statusCode <= max;\n });\n}\n","import { objectToBaggageHeader, parseBaggageHeader, SENTRY_BAGGAGE_KEY_PREFIX } from '@sentry/core';\n\n/**\n * Merge two baggage headers into one.\n * - Sentry-specific entries (keys starting with \"sentry-\") from the new baggage take precedence\n * - Non-Sentry entries from existing baggage take precedence\n * The order of the existing baggage will be preserved, and new entries will be added to the end.\n *\n * This matches the behavior of OTEL's propagation.inject() which uses baggage.setEntry()\n * to overwrite existing entries with the same key.\n */\nexport function mergeBaggageHeaders(\n existing: Existing,\n baggage: string,\n): string | undefined | Existing {\n if (!existing) {\n return baggage;\n }\n\n const existingBaggageEntries = parseBaggageHeader(existing);\n const newBaggageEntries = parseBaggageHeader(baggage);\n\n if (!newBaggageEntries) {\n return existing;\n }\n\n // Single pass over new entries to partition sentry vs non-sentry\n const newSentryEntries: Record = {};\n const newNonSentryEntries: Record = {};\n for (const [key, value] of Object.entries(newBaggageEntries)) {\n if (key.startsWith(SENTRY_BAGGAGE_KEY_PREFIX)) {\n newSentryEntries[key] = value;\n } else {\n newNonSentryEntries[key] = value;\n }\n }\n\n const hasNewSentryEntries = Object.keys(newSentryEntries).length > 0;\n\n // If new baggage contains at least one sentry- value, we remove all old sentry- values\n // otherwise, we keep old sentry- values. If we don't remove old sentry- values, we end\n // up with an inconsistent dynamic sampling context propagation.\n const mergedBaggageEntries: Record = {};\n if (existingBaggageEntries) {\n for (const [key, value] of Object.entries(existingBaggageEntries)) {\n if (hasNewSentryEntries && key.startsWith(SENTRY_BAGGAGE_KEY_PREFIX)) {\n continue;\n }\n mergedBaggageEntries[key] = value;\n }\n }\n\n // Sentry entries from new baggage always overwrite; non-sentry only if not already present\n Object.assign(mergedBaggageEntries, newSentryEntries);\n for (const [key, value] of Object.entries(newNonSentryEntries)) {\n if (!mergedBaggageEntries[key]) {\n mergedBaggageEntries[key] = value;\n }\n }\n\n return objectToBaggageHeader(mergedBaggageEntries);\n}\n","import type { LRUMap, SanitizedRequestData } from '@sentry/core';\nimport {\n addBreadcrumb,\n debug,\n getBreadcrumbLogLevelFromHttpStatusCode,\n getClient,\n getSanitizedUrlString,\n getTraceData,\n isError,\n parseUrl,\n shouldPropagateTraceForUrl,\n} from '@sentry/core';\nimport type { ClientRequest, IncomingMessage, RequestOptions } from 'http';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { mergeBaggageHeaders } from './baggage';\n\nconst LOG_PREFIX = '@sentry/instrumentation-http';\n\n/** Add a breadcrumb for outgoing requests. */\nexport function addRequestBreadcrumb(request: ClientRequest, response: IncomingMessage | undefined): void {\n const data = getBreadcrumbData(request);\n\n const statusCode = response?.statusCode;\n const level = getBreadcrumbLogLevelFromHttpStatusCode(statusCode);\n\n addBreadcrumb(\n {\n category: 'http',\n data: {\n status_code: statusCode,\n ...data,\n },\n type: 'http',\n level,\n },\n {\n event: 'response',\n request,\n response,\n },\n );\n}\n\n/**\n * Add trace propagation headers to an outgoing request.\n * This must be called _before_ the request is sent!\n */\n// eslint-disable-next-line complexity\nexport function addTracePropagationHeadersToOutgoingRequest(\n request: ClientRequest,\n propagationDecisionMap: LRUMap,\n): void {\n const url = getClientRequestUrl(request);\n\n const { tracePropagationTargets, propagateTraceparent } = getClient()?.getOptions() || {};\n const headersToAdd = shouldPropagateTraceForUrl(url, tracePropagationTargets, propagationDecisionMap)\n ? getTraceData({ propagateTraceparent })\n : undefined;\n\n if (!headersToAdd) {\n return;\n }\n\n const { 'sentry-trace': sentryTrace, baggage, traceparent } = headersToAdd;\n\n const hasExistingSentryTraceHeader = !!request.getHeader('sentry-trace');\n\n if (hasExistingSentryTraceHeader) {\n return;\n }\n\n if (sentryTrace) {\n try {\n request.setHeader('sentry-trace', sentryTrace);\n DEBUG_BUILD && debug.log(LOG_PREFIX, 'Added sentry-trace header to outgoing request');\n } catch (error) {\n DEBUG_BUILD &&\n debug.error(\n LOG_PREFIX,\n 'Failed to add sentry-trace header to outgoing request:',\n isError(error) ? error.message : 'Unknown error',\n );\n }\n }\n\n if (traceparent && !request.getHeader('traceparent')) {\n try {\n request.setHeader('traceparent', traceparent);\n DEBUG_BUILD && debug.log(LOG_PREFIX, 'Added traceparent header to outgoing request');\n } catch (error) {\n DEBUG_BUILD &&\n debug.error(\n LOG_PREFIX,\n 'Failed to add traceparent header to outgoing request:',\n isError(error) ? error.message : 'Unknown error',\n );\n }\n }\n\n if (baggage) {\n const existingBaggage = request.getHeader('baggage');\n const newBaggage = mergeBaggageHeaders(existingBaggage, baggage);\n if (newBaggage) {\n try {\n request.setHeader('baggage', newBaggage);\n DEBUG_BUILD && debug.log(LOG_PREFIX, 'Added baggage header to outgoing request');\n } catch (error) {\n DEBUG_BUILD &&\n debug.error(\n LOG_PREFIX,\n 'Failed to add baggage header to outgoing request:',\n isError(error) ? error.message : 'Unknown error',\n );\n }\n }\n }\n}\n\nfunction getBreadcrumbData(request: ClientRequest): Partial {\n try {\n // `request.host` does not contain the port, but the host header does\n const host = request.getHeader('host') || request.host;\n const url = new URL(request.path, `${request.protocol}//${host}`);\n const parsedUrl = parseUrl(url.toString());\n\n const data: Partial = {\n url: getSanitizedUrlString(parsedUrl),\n 'http.method': request.method || 'GET',\n };\n\n if (parsedUrl.search) {\n data['http.query'] = parsedUrl.search;\n }\n if (parsedUrl.hash) {\n data['http.fragment'] = parsedUrl.hash;\n }\n\n return data;\n } catch {\n return {};\n }\n}\n\n/** Convert an outgoing request to request options. */\nexport function getRequestOptions(request: ClientRequest): RequestOptions {\n return {\n method: request.method,\n protocol: request.protocol,\n host: request.host,\n hostname: request.host,\n path: request.path,\n headers: request.getHeaders(),\n };\n}\n\n/**\n *\n */\nexport function getClientRequestUrl(request: ClientRequest): string {\n const hostname = request.getHeader('host') || request.host;\n const protocol = request.protocol;\n const path = request.path;\n\n return `${protocol}//${hostname}${path}`;\n}\n","/* eslint-disable max-lines */\nimport type { ChannelListener } from 'node:diagnostics_channel';\nimport { subscribe, unsubscribe } from 'node:diagnostics_channel';\nimport { errorMonitor } from 'node:events';\nimport type * as http from 'node:http';\nimport type * as https from 'node:https';\nimport { context, SpanStatusCode, trace } from '@opentelemetry/api';\nimport { isTracingSuppressed } from '@opentelemetry/core';\nimport type { InstrumentationConfig } from '@opentelemetry/instrumentation';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';\nimport {\n ATTR_HTTP_RESPONSE_STATUS_CODE,\n ATTR_NETWORK_PEER_ADDRESS,\n ATTR_NETWORK_PEER_PORT,\n ATTR_NETWORK_PROTOCOL_VERSION,\n ATTR_NETWORK_TRANSPORT,\n ATTR_URL_FULL,\n ATTR_USER_AGENT_ORIGINAL,\n SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH,\n SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED,\n} from '@opentelemetry/semantic-conventions';\nimport type { Span, SpanAttributes, SpanStatus } from '@sentry/core';\nimport {\n debug,\n getHttpSpanDetailsFromUrlObject,\n getSpanStatusFromHttpCode,\n LRUMap,\n parseStringToURLObject,\n SDK_VERSION,\n SEMANTIC_ATTRIBUTE_SENTRY_OP,\n startInactiveSpan,\n} from '@sentry/core';\nimport { DEBUG_BUILD } from '../../debug-build';\nimport { INSTRUMENTATION_NAME } from './constants';\nimport {\n addRequestBreadcrumb,\n addTracePropagationHeadersToOutgoingRequest,\n getClientRequestUrl,\n getRequestOptions,\n} from './outgoing-requests';\n\ntype Http = typeof http;\ntype Https = typeof https;\ntype IncomingHttpHeaders = http.IncomingHttpHeaders;\ntype OutgoingHttpHeaders = http.OutgoingHttpHeaders;\n\nexport type SentryHttpInstrumentationOptions = InstrumentationConfig & {\n /**\n * Whether breadcrumbs should be recorded for outgoing requests.\n *\n * @default `true`\n */\n breadcrumbs?: boolean;\n\n /**\n * Whether to propagate Sentry trace headers in outgoing requests.\n * By default this is done by the HttpInstrumentation, but if that is not added (e.g. because tracing is disabled)\n * then this instrumentation can take over.\n *\n * @default `false`\n */\n propagateTraceInOutgoingRequests?: boolean;\n\n /**\n * Whether to enable the capability to create spans for outgoing requests via diagnostic channels.\n * If enabled, spans will only be created if the `spans` option is also enabled (default: true).\n *\n * This is a feature flag that should be enabled by SDKs when the runtime supports it (Node 22.12+).\n * Individual users should not need to configure this directly.\n *\n * @default `false`\n */\n createSpansForOutgoingRequests?: boolean;\n\n /**\n * Whether to create spans for outgoing requests (user preference).\n * This only takes effect if `createSpansForOutgoingRequests` is also enabled.\n * If `createSpansForOutgoingRequests` is not enabled, this option is ignored.\n *\n * @default `true`\n */\n spans?: boolean;\n\n /**\n * Do not capture breadcrumbs for outgoing HTTP requests to URLs where the given callback returns `true`.\n * For the scope of this instrumentation, this callback only controls breadcrumb creation.\n * The same option can be passed to the top-level httpIntegration where it controls both, breadcrumb and\n * span creation.\n *\n * @param url Contains the entire URL, including query string (if any), protocol, host, etc. of the outgoing request.\n * @param request Contains the {@type RequestOptions} object used to make the outgoing request.\n */\n ignoreOutgoingRequests?: (url: string, request: http.RequestOptions) => boolean;\n\n /**\n * Hooks for outgoing request spans, called when `createSpansForOutgoingRequests` is enabled.\n * These mirror the OTEL HttpInstrumentation hooks for backwards compatibility.\n */\n outgoingRequestHook?: (span: Span, request: http.ClientRequest) => void;\n outgoingResponseHook?: (span: Span, response: http.IncomingMessage) => void;\n outgoingRequestApplyCustomAttributes?: (\n span: Span,\n request: http.ClientRequest,\n response: http.IncomingMessage,\n ) => void;\n\n // All options below do not do anything anymore in this instrumentation, and will be removed in the future.\n // They are only kept here for backwards compatibility - the respective functionality is now handled by the httpServerIntegration/httpServerSpansIntegration.\n\n /**\n * @depreacted This no longer does anything.\n */\n extractIncomingTraceFromHeader?: boolean;\n\n /**\n * @deprecated This no longer does anything.\n */\n ignoreStaticAssets?: boolean;\n\n /**\n * @deprecated This no longer does anything.\n */\n disableIncomingRequestSpans?: boolean;\n\n /**\n * @deprecated This no longer does anything.\n */\n ignoreSpansForIncomingRequests?: (urlPath: string, request: http.IncomingMessage) => boolean;\n\n /**\n * @deprecated This no longer does anything.\n */\n ignoreIncomingRequestBody?: (url: string, request: http.RequestOptions) => boolean;\n\n /**\n * @deprecated This no longer does anything.\n */\n maxIncomingRequestBodySize?: 'none' | 'small' | 'medium' | 'always';\n\n /**\n * @deprecated This no longer does anything.\n */\n trackIncomingRequestsAsSessions?: boolean;\n\n /**\n * @deprecated This no longer does anything.\n */\n instrumentation?: {\n requestHook?: (span: Span, req: http.ClientRequest | http.IncomingMessage) => void;\n responseHook?: (span: Span, response: http.IncomingMessage | http.ServerResponse) => void;\n applyCustomAttributesOnSpan?: (\n span: Span,\n request: http.ClientRequest | http.IncomingMessage,\n response: http.IncomingMessage | http.ServerResponse,\n ) => void;\n };\n\n /**\n * @deprecated This no longer does anything.\n */\n sessionFlushingDelayMS?: number;\n};\n\n/**\n * This custom HTTP instrumentation handles outgoing HTTP requests.\n *\n * It provides:\n * - Breadcrumbs for all outgoing requests\n * - Trace propagation headers (when enabled)\n * - Span creation for outgoing requests (when createSpansForOutgoingRequests is enabled)\n *\n * Span creation requires Node 22+ and uses diagnostic channels to avoid monkey-patching.\n * By default, this is only enabled in the node SDK, not in node-core or other runtime SDKs.\n *\n * Important note: Contrary to other OTEL instrumentation, this one cannot be unwrapped.\n *\n * This is heavily inspired & adapted from:\n * https://github.com/open-telemetry/opentelemetry-js/blob/f8ab5592ddea5cba0a3b33bf8d74f27872c0367f/experimental/packages/opentelemetry-instrumentation-http/src/http.ts\n */\nexport class SentryHttpInstrumentation extends InstrumentationBase {\n private _propagationDecisionMap: LRUMap;\n private _ignoreOutgoingRequestsMap: WeakMap;\n\n public constructor(config: SentryHttpInstrumentationOptions = {}) {\n super(INSTRUMENTATION_NAME, SDK_VERSION, config);\n\n this._propagationDecisionMap = new LRUMap(100);\n this._ignoreOutgoingRequestsMap = new WeakMap();\n }\n\n /** @inheritdoc */\n public init(): [InstrumentationNodeModuleDefinition, InstrumentationNodeModuleDefinition] {\n // We register handlers when either http or https is instrumented\n // but we only want to register them once, whichever is loaded first\n let hasRegisteredHandlers = false;\n\n const onHttpClientResponseFinish = ((_data: unknown) => {\n const data = _data as { request: http.ClientRequest; response: http.IncomingMessage };\n this._onOutgoingRequestFinish(data.request, data.response);\n }) satisfies ChannelListener;\n\n const onHttpClientRequestError = ((_data: unknown) => {\n const data = _data as { request: http.ClientRequest };\n this._onOutgoingRequestFinish(data.request, undefined);\n }) satisfies ChannelListener;\n\n const onHttpClientRequestCreated = ((_data: unknown) => {\n const data = _data as { request: http.ClientRequest };\n this._onOutgoingRequestCreated(data.request);\n }) satisfies ChannelListener;\n\n const wrap = (moduleExports: T): T => {\n if (hasRegisteredHandlers) {\n return moduleExports;\n }\n\n hasRegisteredHandlers = true;\n\n subscribe('http.client.response.finish', onHttpClientResponseFinish);\n\n // When an error happens, we still want to have a breadcrumb\n // In this case, `http.client.response.finish` is not triggered\n subscribe('http.client.request.error', onHttpClientRequestError);\n\n // NOTE: This channel only exists since Node 22.12+\n // Before that, outgoing requests are not patched\n // and trace headers are not propagated, sadly.\n if (this.getConfig().propagateTraceInOutgoingRequests || this.getConfig().createSpansForOutgoingRequests) {\n subscribe('http.client.request.created', onHttpClientRequestCreated);\n }\n return moduleExports;\n };\n\n const unwrap = (): void => {\n unsubscribe('http.client.response.finish', onHttpClientResponseFinish);\n unsubscribe('http.client.request.error', onHttpClientRequestError);\n unsubscribe('http.client.request.created', onHttpClientRequestCreated);\n };\n\n /**\n * You may be wondering why we register these diagnostics-channel listeners\n * in such a convoluted way (as InstrumentationNodeModuleDefinition...)˝,\n * instead of simply subscribing to the events once in here.\n * The reason for this is timing semantics: These functions are called once the http or https module is loaded.\n * If we'd subscribe before that, there seem to be conflicts with the OTEL native instrumentation in some scenarios,\n * especially the \"import-on-top\" pattern of setting up ESM applications.\n */\n return [\n new InstrumentationNodeModuleDefinition('http', ['*'], wrap, unwrap),\n new InstrumentationNodeModuleDefinition('https', ['*'], wrap, unwrap),\n ];\n }\n\n /**\n * Start a span for an outgoing request.\n * The span wraps the callback of the request, and ends when the response is finished.\n */\n private _startSpanForOutgoingRequest(request: http.ClientRequest): Span {\n // We monkey-patch `req.once('response'), which is used to trigger the callback of the request\n // eslint-disable-next-line @typescript-eslint/unbound-method, deprecation/deprecation\n const originalOnce = request.once;\n\n const [name, attributes] = _getOutgoingRequestSpanData(request);\n\n const span = startInactiveSpan({\n name,\n attributes,\n onlyIfParent: true,\n });\n\n this.getConfig().outgoingRequestHook?.(span, request);\n\n const newOnce = new Proxy(originalOnce, {\n apply(target, thisArg, args: Parameters) {\n const [event] = args;\n if (event !== 'response') {\n return target.apply(thisArg, args);\n }\n\n const parentContext = context.active();\n const requestContext = trace.setSpan(parentContext, span);\n\n return context.with(requestContext, () => {\n return target.apply(thisArg, args);\n });\n },\n });\n\n // eslint-disable-next-line deprecation/deprecation\n request.once = newOnce;\n\n /**\n * Determines if the request has errored or the response has ended/errored.\n */\n let responseFinished = false;\n\n const endSpan = (status: SpanStatus): void => {\n if (responseFinished) {\n return;\n }\n responseFinished = true;\n\n span.setStatus(status);\n span.end();\n };\n\n request.prependListener('response', response => {\n if (request.listenerCount('response') <= 1) {\n response.resume();\n }\n\n context.bind(context.active(), response);\n\n const additionalAttributes = _getOutgoingRequestEndedSpanData(response);\n span.setAttributes(additionalAttributes);\n\n this.getConfig().outgoingResponseHook?.(span, response);\n this.getConfig().outgoingRequestApplyCustomAttributes?.(span, request, response);\n\n const endHandler = (forceError: boolean = false): void => {\n this._diag.debug('outgoingRequest on end()');\n\n const status =\n // eslint-disable-next-line deprecation/deprecation\n forceError || typeof response.statusCode !== 'number' || (response.aborted && !response.complete)\n ? { code: SpanStatusCode.ERROR }\n : getSpanStatusFromHttpCode(response.statusCode);\n\n endSpan(status);\n };\n\n response.on('end', () => {\n endHandler();\n });\n response.on(errorMonitor, error => {\n this._diag.debug('outgoingRequest on response error()', error);\n endHandler(true);\n });\n });\n\n // Fallback if proper response end handling above fails\n request.on('close', () => {\n endSpan({ code: SpanStatusCode.UNSET });\n });\n request.on(errorMonitor, error => {\n this._diag.debug('outgoingRequest on request error()', error);\n endSpan({ code: SpanStatusCode.ERROR });\n });\n\n return span;\n }\n\n /**\n * This is triggered when an outgoing request finishes.\n * It has access to the final request and response objects.\n */\n private _onOutgoingRequestFinish(request: http.ClientRequest, response?: http.IncomingMessage): void {\n DEBUG_BUILD && debug.log(INSTRUMENTATION_NAME, 'Handling finished outgoing request');\n\n const _breadcrumbs = this.getConfig().breadcrumbs;\n const breadCrumbsEnabled = typeof _breadcrumbs === 'undefined' ? true : _breadcrumbs;\n\n // Note: We cannot rely on the map being set by `_onOutgoingRequestCreated`, because that is not run in Node <22\n const shouldIgnore = this._ignoreOutgoingRequestsMap.get(request) ?? this._shouldIgnoreOutgoingRequest(request);\n this._ignoreOutgoingRequestsMap.set(request, shouldIgnore);\n\n if (breadCrumbsEnabled && !shouldIgnore) {\n addRequestBreadcrumb(request, response);\n }\n }\n\n /**\n * This is triggered when an outgoing request is created.\n * It creates a span (if enabled) and propagates trace headers within the span's context,\n * so downstream services link to the outgoing HTTP span rather than its parent.\n */\n private _onOutgoingRequestCreated(request: http.ClientRequest): void {\n DEBUG_BUILD && debug.log(INSTRUMENTATION_NAME, 'Handling outgoing request created');\n\n const shouldIgnore = this._ignoreOutgoingRequestsMap.get(request) ?? this._shouldIgnoreOutgoingRequest(request);\n this._ignoreOutgoingRequestsMap.set(request, shouldIgnore);\n\n if (shouldIgnore) {\n return;\n }\n\n const shouldCreateSpan = this.getConfig().createSpansForOutgoingRequests && (this.getConfig().spans ?? true);\n const shouldPropagate = this.getConfig().propagateTraceInOutgoingRequests;\n\n if (shouldCreateSpan) {\n const span = this._startSpanForOutgoingRequest(request);\n\n // Propagate headers within the span's context so the sentry-trace header\n // contains the outgoing span's ID, not the parent span's ID.\n // Only do this if the span is recording (has a parent) - otherwise the non-recording\n // span would produce all-zero trace IDs instead of using the scope's propagation context.\n if (shouldPropagate && span.isRecording()) {\n const requestContext = trace.setSpan(context.active(), span);\n context.with(requestContext, () => {\n addTracePropagationHeadersToOutgoingRequest(request, this._propagationDecisionMap);\n });\n } else if (shouldPropagate) {\n addTracePropagationHeadersToOutgoingRequest(request, this._propagationDecisionMap);\n }\n } else if (shouldPropagate) {\n addTracePropagationHeadersToOutgoingRequest(request, this._propagationDecisionMap);\n }\n }\n\n /**\n * Check if the given outgoing request should be ignored.\n */\n private _shouldIgnoreOutgoingRequest(request: http.ClientRequest): boolean {\n if (isTracingSuppressed(context.active())) {\n return true;\n }\n\n const ignoreOutgoingRequests = this.getConfig().ignoreOutgoingRequests;\n\n if (!ignoreOutgoingRequests) {\n return false;\n }\n\n const options = getRequestOptions(request);\n const url = getClientRequestUrl(request);\n return ignoreOutgoingRequests(url, options);\n }\n}\n\nfunction _getOutgoingRequestSpanData(request: http.ClientRequest): [string, SpanAttributes] {\n const url = getClientRequestUrl(request);\n\n const [name, attributes] = getHttpSpanDetailsFromUrlObject(\n parseStringToURLObject(url),\n 'client',\n 'auto.http.otel.http',\n request,\n );\n\n const userAgent = request.getHeader('user-agent');\n\n return [\n name,\n {\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'http.client',\n 'otel.kind': 'CLIENT',\n [ATTR_USER_AGENT_ORIGINAL]: userAgent,\n [ATTR_URL_FULL]: url,\n 'http.url': url,\n 'http.method': request.method,\n 'http.target': request.path || '/',\n 'net.peer.name': request.host,\n 'http.host': request.getHeader('host'),\n ...attributes,\n },\n ];\n}\n\nfunction _getOutgoingRequestEndedSpanData(response: http.IncomingMessage): SpanAttributes {\n const { statusCode, statusMessage, httpVersion, socket } = response;\n\n const transport = httpVersion.toUpperCase() !== 'QUIC' ? 'ip_tcp' : 'ip_udp';\n\n const additionalAttributes: SpanAttributes = {\n [ATTR_HTTP_RESPONSE_STATUS_CODE]: statusCode,\n [ATTR_NETWORK_PROTOCOL_VERSION]: httpVersion,\n 'http.flavor': httpVersion,\n [ATTR_NETWORK_TRANSPORT]: transport,\n 'net.transport': transport,\n ['http.status_text']: statusMessage?.toUpperCase(),\n 'http.status_code': statusCode,\n ...getResponseContentLengthAttributes(response),\n };\n\n if (socket) {\n const { remoteAddress, remotePort } = socket;\n\n additionalAttributes[ATTR_NETWORK_PEER_ADDRESS] = remoteAddress;\n additionalAttributes[ATTR_NETWORK_PEER_PORT] = remotePort;\n additionalAttributes['net.peer.ip'] = remoteAddress;\n additionalAttributes['net.peer.port'] = remotePort;\n }\n\n return additionalAttributes;\n}\n\nfunction getResponseContentLengthAttributes(response: http.IncomingMessage): SpanAttributes {\n const length = getContentLength(response.headers);\n if (length == null) {\n return {};\n }\n\n if (isCompressed(response.headers)) {\n // eslint-disable-next-line deprecation/deprecation\n return { [SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH]: length };\n } else {\n // eslint-disable-next-line deprecation/deprecation\n return { [SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED]: length };\n }\n}\n\nfunction getContentLength(headers: http.OutgoingHttpHeaders | http.IncomingHttpHeaders): number | undefined {\n const contentLengthHeader = headers['content-length'];\n if (typeof contentLengthHeader === 'number') {\n return contentLengthHeader;\n }\n if (typeof contentLengthHeader !== 'string') {\n return undefined;\n }\n\n const contentLength = parseInt(contentLengthHeader, 10);\n if (isNaN(contentLength)) {\n return undefined;\n }\n\n return contentLength;\n}\n\nfunction isCompressed(headers: OutgoingHttpHeaders | IncomingHttpHeaders): boolean {\n const encoding = headers['content-encoding'];\n\n return !!encoding && encoding !== 'identity';\n}\n","import type { IncomingMessage, RequestOptions } from 'node:http';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '../../otel/instrument';\nimport type { NodeClient } from '../../sdk/client';\nimport type { HttpServerIntegrationOptions } from './httpServerIntegration';\nimport { httpServerIntegration } from './httpServerIntegration';\nimport type { HttpServerSpansIntegrationOptions } from './httpServerSpansIntegration';\nimport { httpServerSpansIntegration } from './httpServerSpansIntegration';\nimport type { SentryHttpInstrumentationOptions } from './SentryHttpInstrumentation';\nimport { SentryHttpInstrumentation } from './SentryHttpInstrumentation';\n\nconst INTEGRATION_NAME = 'Http';\n\ninterface HttpOptions {\n /**\n * Whether breadcrumbs should be recorded for outgoing requests.\n * Defaults to true\n */\n breadcrumbs?: boolean;\n\n /**\n * Whether to create spans for requests or not.\n * As of now, creates spans for incoming requests, but not outgoing requests.\n *\n * @default `true`\n */\n spans?: boolean;\n\n /**\n * Whether the integration should create [Sessions](https://docs.sentry.io/product/releases/health/#sessions) for incoming requests to track the health and crash-free rate of your releases in Sentry.\n * Read more about Release Health: https://docs.sentry.io/product/releases/health/\n *\n * Defaults to `true`.\n */\n trackIncomingRequestsAsSessions?: boolean;\n\n /**\n * Number of milliseconds until sessions tracked with `trackIncomingRequestsAsSessions` will be flushed as a session aggregate.\n *\n * Defaults to `60000` (60s).\n */\n sessionFlushingDelayMS?: number;\n\n /**\n * Whether to inject trace propagation headers (sentry-trace, baggage, traceparent) into outgoing HTTP requests.\n *\n * When set to `false`, Sentry will not inject any trace propagation headers, but will still create breadcrumbs\n * (if `breadcrumbs` is enabled).\n *\n * @default `true`\n */\n tracePropagation?: boolean;\n\n /**\n * Do not capture spans or breadcrumbs for outgoing HTTP requests to URLs where the given callback returns `true`.\n * This controls both span & breadcrumb creation - spans will be non recording if tracing is disabled.\n *\n * The `url` param contains the entire URL, including query string (if any), protocol, host, etc. of the outgoing request.\n * For example: `'https://someService.com/users/details?id=123'`\n *\n * The `request` param contains the original {@type RequestOptions} object used to make the outgoing request.\n * You can use it to filter on additional properties like method, headers, etc.\n */\n ignoreOutgoingRequests?: (url: string, request: RequestOptions) => boolean;\n\n /**\n * Do not capture spans for incoming HTTP requests to URLs where the given callback returns `true`.\n * Spans will be non recording if tracing is disabled.\n *\n * The `urlPath` param consists of the URL path and query string (if any) of the incoming request.\n * For example: `'/users/details?id=123'`\n *\n * The `request` param contains the original {@type IncomingMessage} object of the incoming request.\n * You can use it to filter on additional properties like method, headers, etc.\n */\n ignoreIncomingRequests?: (urlPath: string, request: IncomingMessage) => boolean;\n\n /**\n * Do not capture spans for incoming HTTP requests with the given status codes.\n * By default, spans with some 3xx and 4xx status codes are ignored (see @default).\n * Expects an array of status codes or a range of status codes, e.g. [[300,399], 404] would ignore 3xx and 404 status codes.\n *\n * @default `[[401, 404], [301, 303], [305, 399]]`\n */\n dropSpansForIncomingRequestStatusCodes?: (number | [number, number])[];\n\n /**\n * Do not capture the request body for incoming HTTP requests to URLs where the given callback returns `true`.\n * This can be useful for long running requests where the body is not needed and we want to avoid capturing it.\n *\n * @param url Contains the entire URL, including query string (if any), protocol, host, etc. of the incoming request.\n * @param request Contains the {@type RequestOptions} object used to make the incoming request.\n */\n ignoreIncomingRequestBody?: (url: string, request: RequestOptions) => boolean;\n\n /**\n * Whether to automatically ignore common static asset requests like favicon.ico, robots.txt, etc.\n * This helps reduce noise in your transactions.\n *\n * @default `true`\n */\n ignoreStaticAssets?: boolean;\n\n /**\n * Controls the maximum size of incoming HTTP request bodies attached to events.\n *\n * Available options:\n * - 'none': No request bodies will be attached\n * - 'small': Request bodies up to 1,000 bytes will be attached\n * - 'medium': Request bodies up to 10,000 bytes will be attached (default)\n * - 'always': Request bodies will always be attached\n *\n * Note that even with 'always' setting, bodies exceeding 1MB will never be attached\n * for performance and security reasons.\n *\n * @default 'medium'\n */\n maxIncomingRequestBodySize?: 'none' | 'small' | 'medium' | 'always';\n\n /**\n * If true, do not generate spans for incoming requests at all.\n * This is used by Remix to avoid generating spans for incoming requests, as it generates its own spans.\n */\n disableIncomingRequestSpans?: boolean;\n}\n\nexport const instrumentSentryHttp = generateInstrumentOnce(\n `${INTEGRATION_NAME}.sentry`,\n options => {\n return new SentryHttpInstrumentation(options);\n },\n);\n\n/**\n * The http integration instruments Node's internal http and https modules.\n * It creates breadcrumbs for outgoing HTTP requests which will be attached to the currently active span.\n */\nexport const httpIntegration = defineIntegration((options: HttpOptions = {}) => {\n const serverOptions: HttpServerIntegrationOptions = {\n sessions: options.trackIncomingRequestsAsSessions,\n sessionFlushingDelayMS: options.sessionFlushingDelayMS,\n ignoreRequestBody: options.ignoreIncomingRequestBody,\n maxRequestBodySize: options.maxIncomingRequestBodySize,\n };\n\n const serverSpansOptions: HttpServerSpansIntegrationOptions = {\n ignoreIncomingRequests: options.ignoreIncomingRequests,\n ignoreStaticAssets: options.ignoreStaticAssets,\n ignoreStatusCodes: options.dropSpansForIncomingRequestStatusCodes,\n };\n\n const httpInstrumentationOptions: SentryHttpInstrumentationOptions = {\n breadcrumbs: options.breadcrumbs,\n propagateTraceInOutgoingRequests: options.tracePropagation ?? true,\n ignoreOutgoingRequests: options.ignoreOutgoingRequests,\n };\n\n const server = httpServerIntegration(serverOptions);\n const serverSpans = httpServerSpansIntegration(serverSpansOptions);\n\n // In node-core, for now we disable incoming requests spans by default\n // we may revisit this in a future release\n const spans = options.spans ?? false;\n const disableIncomingRequestSpans = options.disableIncomingRequestSpans ?? false;\n const enabledServerSpans = spans && !disableIncomingRequestSpans;\n\n return {\n name: INTEGRATION_NAME,\n setup(client: NodeClient) {\n if (enabledServerSpans) {\n serverSpans.setup(client);\n }\n },\n setupOnce() {\n server.setupOnce();\n\n instrumentSentryHttp(httpInstrumentationOptions);\n },\n\n processEvent(event) {\n // Note: We always run this, even if spans are disabled\n // The reason being that e.g. the remix integration disables span creation here but still wants to use the ignore status codes option\n return serverSpans.processEvent(event);\n },\n };\n});\n","import { parseSemver } from '@sentry/core';\n\nexport const NODE_VERSION = parseSemver(process.versions.node) as { major: number; minor: number; patch: number };\nexport const NODE_MAJOR = NODE_VERSION.major;\nexport const NODE_MINOR = NODE_VERSION.minor;\n","import type { LRUMap, SanitizedRequestData } from '@sentry/core';\nimport {\n addBreadcrumb,\n getBreadcrumbLogLevelFromHttpStatusCode,\n getClient,\n getSanitizedUrlString,\n getTraceData,\n parseUrl,\n shouldPropagateTraceForUrl,\n} from '@sentry/core';\nimport type { UndiciRequest, UndiciResponse } from '../integrations/node-fetch/types';\nimport { mergeBaggageHeaders } from './baggage';\nimport { debug } from '@sentry/core';\nconst SENTRY_TRACE_HEADER = 'sentry-trace';\nconst SENTRY_BAGGAGE_HEADER = 'baggage';\nconst W3C_TRACEPARENT_HEADER = 'traceparent';\n/**\n * Add trace propagation headers to an outgoing fetch/undici request.\n *\n * Checks if the request URL matches trace propagation targets,\n * then injects sentry-trace, traceparent, and baggage headers.\n */\n// eslint-disable-next-line complexity\nexport function addTracePropagationHeadersToFetchRequest(\n request: UndiciRequest,\n propagationDecisionMap: LRUMap,\n): void {\n const url = getAbsoluteUrl(request.origin, request.path);\n\n // Manually add the trace headers, if it applies\n // Note: We do not use `propagation.inject()` here, because our propagator relies on an active span\n // Which we do not have in this case\n // The propagator _may_ overwrite this, but this should be fine as it is the same data\n const { tracePropagationTargets, propagateTraceparent } = getClient()?.getOptions() || {};\n const addedHeaders = shouldPropagateTraceForUrl(url, tracePropagationTargets, propagationDecisionMap)\n ? getTraceData({ propagateTraceparent })\n : undefined;\n\n if (!addedHeaders) {\n return;\n }\n\n const { 'sentry-trace': sentryTrace, baggage, traceparent } = addedHeaders;\n\n const requestHeaders = Array.isArray(request.headers) ? request.headers : stringToArrayHeaders(request.headers);\n\n // OTel's UndiciInstrumentation calls propagation.inject() which unconditionally\n // appends headers to the request. When the user also sets headers via getTraceData(),\n // this results in duplicate sentry-trace and baggage (and optionally traceparent) entries.\n // We clean these up before applying our own logic.\n _deduplicateArrayHeader(requestHeaders, SENTRY_TRACE_HEADER);\n _deduplicateArrayHeader(requestHeaders, SENTRY_BAGGAGE_HEADER);\n if (propagateTraceparent) {\n _deduplicateArrayHeader(requestHeaders, W3C_TRACEPARENT_HEADER);\n }\n\n // We do not want to overwrite existing headers here\n // If the core UndiciInstrumentation is registered, it will already have set the headers\n // We do not want to add any then\n const hasExistingSentryTraceHeader = _findExistingHeaderIndex(requestHeaders, SENTRY_TRACE_HEADER) !== -1;\n\n // We do not want to set any headers if we already have an existing sentry-trace header.\n // sentry-trace is still the source of truth, otherwise we risk mixing up baggage and sentry-trace values.\n if (!hasExistingSentryTraceHeader) {\n if (sentryTrace) {\n requestHeaders.push(SENTRY_TRACE_HEADER, sentryTrace);\n }\n\n if (traceparent && _findExistingHeaderIndex(requestHeaders, 'traceparent') === -1) {\n requestHeaders.push('traceparent', traceparent);\n }\n\n // For baggage, we make sure to merge this into a possibly existing header\n const existingBaggageIndex = _findExistingHeaderIndex(requestHeaders, SENTRY_BAGGAGE_HEADER);\n if (baggage && existingBaggageIndex === -1) {\n requestHeaders.push(SENTRY_BAGGAGE_HEADER, baggage);\n } else if (baggage) {\n // headers in format [key_0, value_0, key_1, value_1, ...], hence the +1 here\n const existingBaggageValue = requestHeaders[existingBaggageIndex + 1];\n const merged = mergeBaggageHeaders(existingBaggageValue, baggage);\n if (merged) {\n requestHeaders[existingBaggageIndex + 1] = merged;\n }\n }\n }\n\n if (!Array.isArray(request.headers)) {\n // For original string request headers, we need to write them back to the request\n request.headers = arrayToStringHeaders(requestHeaders);\n }\n}\n\nfunction stringToArrayHeaders(requestHeaders: string): string[] {\n const headersArray = requestHeaders.split('\\r\\n');\n const headers: string[] = [];\n for (const header of headersArray) {\n try {\n const colonIndex = header.indexOf(':');\n if (colonIndex === -1) {\n continue;\n }\n const key = header.slice(0, colonIndex).trim();\n const value = header.slice(colonIndex + 1).trim();\n if (key) {\n headers.push(key, value);\n }\n } catch {\n debug.warn(`Failed to convert string request header to array header: ${header}`);\n }\n }\n return headers;\n}\n\nfunction arrayToStringHeaders(headers: string[]): string {\n const headerPairs: string[] = [];\n\n for (let i = 0; i < headers.length; i += 2) {\n const key = headers[i];\n const value = headers[i + 1];\n if (!key || value == null) {\n // skip falsy keys but only null/undefined values\n continue;\n }\n headerPairs.push(`${key}: ${value}`);\n }\n\n if (!headerPairs.length) {\n return '';\n }\n\n return headerPairs.join('\\r\\n').concat('\\r\\n');\n}\n\n/**\n * For a given header name, if there are multiple entries in the [key, value, key, value, ...] array,\n * keep the first entry and remove the rest.\n * For baggage, values are merged to preserve all entries but to dedupe sentry- values, and always\n * keep the first occurrence of them\n */\nfunction _deduplicateArrayHeader(headers: string[], headerName: string): void {\n let firstIndex = -1;\n for (let i = 0; i < headers.length; i += 2) {\n if (headers[i] !== headerName) {\n continue;\n }\n\n if (firstIndex === -1) {\n firstIndex = i;\n continue;\n }\n\n const firstHeaderValue = headers[firstIndex + 1];\n if (headerName === SENTRY_BAGGAGE_HEADER && firstHeaderValue) {\n // mergeBaggageHeaders always takes sentry- values from the new baggage (2nd param) and merges\n // it with the existing one (1st param). Here, we want to keep the first header's existing\n // sentry- values in favor of the new ones. Hence we swap the parameters.\n const merged = mergeBaggageHeaders(headers[i + 1], firstHeaderValue);\n if (merged) {\n headers[firstIndex + 1] = merged;\n }\n }\n headers.splice(i, 2);\n i -= 2;\n }\n}\n\n/**\n * Find the index of an existing header in an array of headers.\n * Only take even indices, because headers are in format [key_0, value_0, key_1, value_1, ...]\n * otherwise we could match a header _value_ with @param name\n */\nfunction _findExistingHeaderIndex(headers: string[], name: string): number {\n return headers.findIndex((header, i) => i % 2 === 0 && header === name);\n}\n\n/** Add a breadcrumb for an outgoing fetch/undici request. */\nexport function addFetchRequestBreadcrumb(request: UndiciRequest, response: UndiciResponse): void {\n const data = getBreadcrumbData(request);\n\n const statusCode = response.statusCode;\n const level = getBreadcrumbLogLevelFromHttpStatusCode(statusCode);\n\n addBreadcrumb(\n {\n category: 'http',\n data: {\n status_code: statusCode,\n ...data,\n },\n type: 'http',\n level,\n },\n {\n event: 'response',\n request,\n response,\n },\n );\n}\n\nfunction getBreadcrumbData(request: UndiciRequest): Partial {\n try {\n const url = getAbsoluteUrl(request.origin, request.path);\n const parsedUrl = parseUrl(url);\n\n const data: Partial = {\n url: getSanitizedUrlString(parsedUrl),\n 'http.method': request.method || 'GET',\n };\n\n if (parsedUrl.search) {\n data['http.query'] = parsedUrl.search;\n }\n if (parsedUrl.hash) {\n data['http.fragment'] = parsedUrl.hash;\n }\n\n return data;\n } catch {\n return {};\n }\n}\n\n/** Get the absolute URL from an origin and path. */\nexport function getAbsoluteUrl(origin: string, path: string = '/'): string {\n try {\n const url = new URL(path, origin);\n return url.toString();\n } catch {\n // fallback: Construct it on our own\n const url = `${origin}`;\n\n if (url.endsWith('/') && path.startsWith('/')) {\n return `${url}${path.slice(1)}`;\n }\n\n if (!url.endsWith('/') && !path.startsWith('/')) {\n return `${url}/${path}`;\n }\n\n return `${url}${path}`;\n }\n}\n","import { context } from '@opentelemetry/api';\nimport { isTracingSuppressed } from '@opentelemetry/core';\nimport type { InstrumentationConfig } from '@opentelemetry/instrumentation';\nimport { InstrumentationBase } from '@opentelemetry/instrumentation';\nimport { LRUMap, SDK_VERSION } from '@sentry/core';\nimport * as diagch from 'diagnostics_channel';\nimport { NODE_MAJOR, NODE_MINOR } from '../../nodeVersion';\nimport {\n addFetchRequestBreadcrumb,\n addTracePropagationHeadersToFetchRequest,\n getAbsoluteUrl,\n} from '../../utils/outgoingFetchRequest';\nimport type { UndiciRequest, UndiciResponse } from './types';\n\nexport type SentryNodeFetchInstrumentationOptions = InstrumentationConfig & {\n /**\n * Whether breadcrumbs should be recorded for requests.\n *\n * @default `true`\n */\n breadcrumbs?: boolean;\n\n /**\n * Whether to inject trace propagation headers (sentry-trace, baggage, traceparent) into outgoing fetch requests.\n *\n * When set to `false`, Sentry will not inject any trace propagation headers, but will still create breadcrumbs\n * (if `breadcrumbs` is enabled). This is useful when `skipOpenTelemetrySetup: true` is configured and you want\n * to avoid duplicate trace headers being injected by both Sentry and OpenTelemetry's UndiciInstrumentation.\n *\n * @default `true`\n */\n tracePropagation?: boolean;\n\n /**\n * Do not capture breadcrumbs or inject headers for outgoing fetch requests to URLs where the given callback returns `true`.\n * The same option can be passed to the top-level httpIntegration where it controls both, breadcrumb and\n * span creation.\n *\n * @param url Contains the entire URL, including query string (if any), protocol, host, etc. of the outgoing request.\n */\n ignoreOutgoingRequests?: (url: string) => boolean;\n};\n\ninterface ListenerRecord {\n name: string;\n unsubscribe: () => void;\n}\n\n/**\n * This custom node-fetch instrumentation is used to instrument outgoing fetch requests.\n * It does not emit any spans.\n *\n * The reason this is isolated from the OpenTelemetry instrumentation is that users may overwrite this,\n * which would lead to Sentry not working as expected.\n *\n * This is heavily inspired & adapted from:\n * https://github.com/open-telemetry/opentelemetry-js-contrib/blob/28e209a9da36bc4e1f8c2b0db7360170ed46cb80/plugins/node/instrumentation-undici/src/undici.ts\n */\nexport class SentryNodeFetchInstrumentation extends InstrumentationBase {\n // Keep ref to avoid https://github.com/nodejs/node/issues/42170 bug and for\n // unsubscribing.\n private _channelSubs: Array;\n private _propagationDecisionMap: LRUMap;\n private _ignoreOutgoingRequestsMap: WeakMap;\n\n public constructor(config: SentryNodeFetchInstrumentationOptions = {}) {\n super('@sentry/instrumentation-node-fetch', SDK_VERSION, config);\n this._channelSubs = [];\n this._propagationDecisionMap = new LRUMap(100);\n this._ignoreOutgoingRequestsMap = new WeakMap();\n }\n\n /** No need to instrument files/modules. */\n public init(): void {\n return undefined;\n }\n\n /** Disable the instrumentation. */\n public disable(): void {\n super.disable();\n this._channelSubs.forEach(sub => sub.unsubscribe());\n this._channelSubs = [];\n }\n\n /** Enable the instrumentation. */\n public enable(): void {\n // \"enabled\" handling is currently a bit messy with InstrumentationBase.\n // If constructed with `{enabled: false}`, this `.enable()` is still called,\n // and `this.getConfig().enabled !== this.isEnabled()`, creating confusion.\n //\n // For now, this class will setup for instrumenting if `.enable()` is\n // called, but use `this.getConfig().enabled` to determine if\n // instrumentation should be generated. This covers the more likely common\n // case of config being given a construction time, rather than later via\n // `instance.enable()`, `.disable()`, or `.setConfig()` calls.\n super.enable();\n\n // This method is called by the super-class constructor before ours is\n // called. So we need to ensure the property is initalized.\n this._channelSubs = this._channelSubs || [];\n\n // Avoid to duplicate subscriptions\n if (this._channelSubs.length > 0) {\n return;\n }\n\n this._subscribeToChannel('undici:request:create', this._onRequestCreated.bind(this));\n this._subscribeToChannel('undici:request:headers', this._onResponseHeaders.bind(this));\n }\n\n /**\n * This method is called when a request is created.\n * You can still mutate the request here before it is sent.\n */\n private _onRequestCreated({ request }: { request: UndiciRequest }): void {\n const config = this.getConfig();\n const enabled = config.enabled !== false;\n\n if (!enabled) {\n return;\n }\n\n const shouldIgnore = this._shouldIgnoreOutgoingRequest(request);\n // We store this decisision for later so we do not need to re-evaluate it\n // Additionally, the active context is not correct in _onResponseHeaders, so we need to make sure it is evaluated here\n this._ignoreOutgoingRequestsMap.set(request, shouldIgnore);\n\n if (shouldIgnore) {\n return;\n }\n\n if (config.tracePropagation !== false) {\n addTracePropagationHeadersToFetchRequest(request, this._propagationDecisionMap);\n }\n }\n\n /**\n * This method is called when a response is received.\n */\n private _onResponseHeaders({ request, response }: { request: UndiciRequest; response: UndiciResponse }): void {\n const config = this.getConfig();\n const enabled = config.enabled !== false;\n\n if (!enabled) {\n return;\n }\n\n const _breadcrumbs = config.breadcrumbs;\n const breadCrumbsEnabled = typeof _breadcrumbs === 'undefined' ? true : _breadcrumbs;\n\n const shouldIgnore = this._ignoreOutgoingRequestsMap.get(request);\n\n if (breadCrumbsEnabled && !shouldIgnore) {\n addFetchRequestBreadcrumb(request, response);\n }\n }\n\n /** Subscribe to a diagnostics channel. */\n private _subscribeToChannel(\n diagnosticChannel: string,\n onMessage: (message: unknown, name: string | symbol) => void,\n ): void {\n // `diagnostics_channel` had a ref counting bug until v18.19.0.\n // https://github.com/nodejs/node/pull/47520\n const useNewSubscribe = NODE_MAJOR > 18 || (NODE_MAJOR === 18 && NODE_MINOR >= 19);\n\n let unsubscribe: () => void;\n if (useNewSubscribe) {\n diagch.subscribe?.(diagnosticChannel, onMessage);\n unsubscribe = () => diagch.unsubscribe?.(diagnosticChannel, onMessage);\n } else {\n const channel = diagch.channel(diagnosticChannel);\n channel.subscribe(onMessage);\n unsubscribe = () => channel.unsubscribe(onMessage);\n }\n\n this._channelSubs.push({\n name: diagnosticChannel,\n unsubscribe,\n });\n }\n\n /**\n * Check if the given outgoing request should be ignored.\n */\n private _shouldIgnoreOutgoingRequest(request: UndiciRequest): boolean {\n if (isTracingSuppressed(context.active())) {\n return true;\n }\n\n // Add trace propagation headers\n const url = getAbsoluteUrl(request.origin, request.path);\n const ignoreOutgoingRequests = this.getConfig().ignoreOutgoingRequests;\n\n if (typeof ignoreOutgoingRequests !== 'function' || !url) {\n return false;\n }\n\n return ignoreOutgoingRequests(url);\n }\n}\n","import type { IntegrationFn } from '@sentry/core';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '../../otel/instrument';\nimport { SentryNodeFetchInstrumentation } from './SentryNodeFetchInstrumentation';\n\nconst INTEGRATION_NAME = 'NodeFetch';\n\ninterface NodeFetchOptions {\n /**\n * Whether breadcrumbs should be recorded for requests.\n * Defaults to true\n */\n breadcrumbs?: boolean;\n\n /**\n * Whether to inject trace propagation headers (sentry-trace, baggage, traceparent) into outgoing fetch requests.\n *\n * @default `true`\n */\n tracePropagation?: boolean;\n\n /**\n * Do not capture spans or breadcrumbs for outgoing fetch requests to URLs where the given callback returns `true`.\n * This controls both span & breadcrumb creation - spans will be non recording if tracing is disabled.\n */\n ignoreOutgoingRequests?: (url: string) => boolean;\n}\n\nconst instrumentSentryNodeFetch = generateInstrumentOnce(\n `${INTEGRATION_NAME}.sentry`,\n SentryNodeFetchInstrumentation,\n (options: NodeFetchOptions) => {\n return options;\n },\n);\n\nconst _nativeNodeFetchIntegration = ((options: NodeFetchOptions = {}) => {\n return {\n name: 'NodeFetch',\n setupOnce() {\n instrumentSentryNodeFetch(options);\n },\n };\n}) satisfies IntegrationFn;\n\nexport const nativeNodeFetchIntegration = defineIntegration(_nativeNodeFetchIntegration);\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { ContextManager, Context } from '@opentelemetry/api';\nimport { EventEmitter } from 'events';\n\ntype Func = (...args: unknown[]) => T;\n\n/**\n * Store a map for each event of all original listeners and their \"patched\"\n * version. So when a listener is removed by the user, the corresponding\n * patched function will be also removed.\n */\ninterface PatchMap {\n [name: string]: WeakMap, Func>;\n}\n\nconst ADD_LISTENER_METHODS = [\n 'addListener' as const,\n 'on' as const,\n 'once' as const,\n 'prependListener' as const,\n 'prependOnceListener' as const,\n];\n\nexport abstract class AbstractAsyncHooksContextManager\n implements ContextManager\n{\n abstract active(): Context;\n\n abstract with ReturnType>(\n context: Context,\n fn: F,\n thisArg?: ThisParameterType,\n ...args: A\n ): ReturnType;\n\n abstract enable(): this;\n\n abstract disable(): this;\n\n /**\n * Binds a the certain context or the active one to the target function and then returns the target\n * @param context A context (span) to be bind to target\n * @param target a function or event emitter. When target or one of its callbacks is called,\n * the provided context will be used as the active context for the duration of the call.\n */\n bind(context: Context, target: T): T {\n if (target instanceof EventEmitter) {\n return this._bindEventEmitter(context, target);\n }\n\n if (typeof target === 'function') {\n return this._bindFunction(context, target);\n }\n return target;\n }\n\n private _bindFunction(context: Context, target: T): T {\n const manager = this;\n const contextWrapper = function (this: never, ...args: unknown[]) {\n return manager.with(context, () => target.apply(this, args));\n };\n Object.defineProperty(contextWrapper, 'length', {\n enumerable: false,\n configurable: true,\n writable: false,\n value: target.length,\n });\n /**\n * It isn't possible to tell Typescript that contextWrapper is the same as T\n * so we forced to cast as any here.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return contextWrapper as any;\n }\n\n /**\n * By default, EventEmitter call their callback with their context, which we do\n * not want, instead we will bind a specific context to all callbacks that\n * go through it.\n * @param context the context we want to bind\n * @param ee EventEmitter an instance of EventEmitter to patch\n */\n private _bindEventEmitter(\n context: Context,\n ee: T\n ): T {\n const map = this._getPatchMap(ee);\n if (map !== undefined) return ee;\n this._createPatchMap(ee);\n\n // patch methods that add a listener to propagate context\n ADD_LISTENER_METHODS.forEach(methodName => {\n if (ee[methodName] === undefined) return;\n ee[methodName] = this._patchAddListener(ee, ee[methodName], context);\n });\n // patch methods that remove a listener\n if (typeof ee.removeListener === 'function') {\n ee.removeListener = this._patchRemoveListener(ee, ee.removeListener);\n }\n if (typeof ee.off === 'function') {\n ee.off = this._patchRemoveListener(ee, ee.off);\n }\n // patch method that remove all listeners\n if (typeof ee.removeAllListeners === 'function') {\n ee.removeAllListeners = this._patchRemoveAllListeners(\n ee,\n ee.removeAllListeners\n );\n }\n return ee;\n }\n\n /**\n * Patch methods that remove a given listener so that we match the \"patched\"\n * version of that listener (the one that propagate context).\n * @param ee EventEmitter instance\n * @param original reference to the patched method\n */\n private _patchRemoveListener(ee: EventEmitter, original: Function) {\n const contextManager = this;\n return function (this: never, event: string, listener: Func) {\n const events = contextManager._getPatchMap(ee)?.[event];\n if (events === undefined) {\n return original.call(this, event, listener);\n }\n const patchedListener = events.get(listener);\n return original.call(this, event, patchedListener || listener);\n };\n }\n\n /**\n * Patch methods that remove all listeners so we remove our\n * internal references for a given event.\n * @param ee EventEmitter instance\n * @param original reference to the patched method\n */\n private _patchRemoveAllListeners(ee: EventEmitter, original: Function) {\n const contextManager = this;\n return function (this: never, event: string) {\n const map = contextManager._getPatchMap(ee);\n if (map !== undefined) {\n if (arguments.length === 0) {\n contextManager._createPatchMap(ee);\n } else if (map[event] !== undefined) {\n delete map[event];\n }\n }\n return original.apply(this, arguments);\n };\n }\n\n /**\n * Patch methods on an event emitter instance that can add listeners so we\n * can force them to propagate a given context.\n * @param ee EventEmitter instance\n * @param original reference to the patched method\n * @param [context] context to propagate when calling listeners\n */\n private _patchAddListener(\n ee: EventEmitter,\n original: Function,\n context: Context\n ) {\n const contextManager = this;\n return function (this: never, event: string, listener: Func) {\n /**\n * This check is required to prevent double-wrapping the listener.\n * The implementation for ee.once wraps the listener and calls ee.on.\n * Without this check, we would wrap that wrapped listener.\n * This causes an issue because ee.removeListener depends on the onceWrapper\n * to properly remove the listener. If we wrap their wrapper, we break\n * that detection.\n */\n if (contextManager._wrapped) {\n return original.call(this, event, listener);\n }\n let map = contextManager._getPatchMap(ee);\n if (map === undefined) {\n map = contextManager._createPatchMap(ee);\n }\n let listeners = map[event];\n if (listeners === undefined) {\n listeners = new WeakMap();\n map[event] = listeners;\n }\n const patchedListener = contextManager.bind(context, listener);\n // store a weak reference of the user listener to ours\n listeners.set(listener, patchedListener);\n\n /**\n * See comment at the start of this function for the explanation of this property.\n */\n contextManager._wrapped = true;\n try {\n return original.call(this, event, patchedListener);\n } finally {\n contextManager._wrapped = false;\n }\n };\n }\n\n private _createPatchMap(ee: EventEmitter): PatchMap {\n const map = Object.create(null);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (ee as any)[this._kOtListeners] = map;\n return map;\n }\n private _getPatchMap(ee: EventEmitter): PatchMap | undefined {\n return (ee as never)[this._kOtListeners];\n }\n\n private readonly _kOtListeners = Symbol('OtListeners');\n private _wrapped = false;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Context } from '@opentelemetry/api';\nimport { ROOT_CONTEXT } from '@opentelemetry/api';\nimport * as asyncHooks from 'async_hooks';\nimport { AbstractAsyncHooksContextManager } from './AbstractAsyncHooksContextManager';\n\n/**\n * @deprecated Use AsyncLocalStorageContextManager instead.\n */\nexport class AsyncHooksContextManager extends AbstractAsyncHooksContextManager {\n private _asyncHook: asyncHooks.AsyncHook;\n private _contexts: Map = new Map();\n private _stack: Array = [];\n\n constructor() {\n super();\n this._asyncHook = asyncHooks.createHook({\n init: this._init.bind(this),\n before: this._before.bind(this),\n after: this._after.bind(this),\n destroy: this._destroy.bind(this),\n promiseResolve: this._destroy.bind(this),\n });\n }\n\n active(): Context {\n return this._stack[this._stack.length - 1] ?? ROOT_CONTEXT;\n }\n\n with ReturnType>(\n context: Context,\n fn: F,\n thisArg?: ThisParameterType,\n ...args: A\n ): ReturnType {\n this._enterContext(context);\n try {\n return fn.call(thisArg!, ...args);\n } finally {\n this._exitContext();\n }\n }\n\n enable(): this {\n this._asyncHook.enable();\n return this;\n }\n\n disable(): this {\n this._asyncHook.disable();\n this._contexts.clear();\n this._stack = [];\n return this;\n }\n\n /**\n * Init hook will be called when userland create a async context, setting the\n * context as the current one if it exist.\n * @param uid id of the async context\n * @param type the resource type\n */\n private _init(uid: number, type: string) {\n // ignore TIMERWRAP as they combine timers with same timeout which can lead to\n // false context propagation. TIMERWRAP has been removed in node 11\n // every timer has it's own `Timeout` resource anyway which is used to propagate\n // context.\n if (type === 'TIMERWRAP') return;\n\n const context = this._stack[this._stack.length - 1];\n if (context !== undefined) {\n this._contexts.set(uid, context);\n }\n }\n\n /**\n * Destroy hook will be called when a given context is no longer used so we can\n * remove its attached context.\n * @param uid uid of the async context\n */\n private _destroy(uid: number) {\n this._contexts.delete(uid);\n }\n\n /**\n * Before hook is called just before executing a async context.\n * @param uid uid of the async context\n */\n private _before(uid: number) {\n const context = this._contexts.get(uid);\n if (context !== undefined) {\n this._enterContext(context);\n }\n }\n\n /**\n * After hook is called just after completing the execution of a async context.\n */\n private _after() {\n this._exitContext();\n }\n\n /**\n * Set the given context as active\n */\n private _enterContext(context: Context) {\n this._stack.push(context);\n }\n\n /**\n * Remove the context at the root of the stack\n */\n private _exitContext() {\n this._stack.pop();\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Context } from '@opentelemetry/api';\nimport { ROOT_CONTEXT } from '@opentelemetry/api';\nimport { AsyncLocalStorage } from 'async_hooks';\nimport { AbstractAsyncHooksContextManager } from './AbstractAsyncHooksContextManager';\n\nexport class AsyncLocalStorageContextManager extends AbstractAsyncHooksContextManager {\n private _asyncLocalStorage: AsyncLocalStorage;\n\n constructor() {\n super();\n this._asyncLocalStorage = new AsyncLocalStorage();\n }\n\n active(): Context {\n return this._asyncLocalStorage.getStore() ?? ROOT_CONTEXT;\n }\n\n with ReturnType>(\n context: Context,\n fn: F,\n thisArg?: ThisParameterType,\n ...args: A\n ): ReturnType {\n const cb = thisArg == null ? fn : fn.bind(thisArg);\n return this._asyncLocalStorage.run(context, cb as never, ...args);\n }\n\n enable(): this {\n return this;\n }\n\n disable(): this {\n this._asyncLocalStorage.disable();\n return this;\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport { AsyncHooksContextManager } from './AsyncHooksContextManager';\nexport { AsyncLocalStorageContextManager } from './AsyncLocalStorageContextManager';\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Attributes, AttributeValue } from '@opentelemetry/api';\nimport { diag } from '@opentelemetry/api';\nimport { SDK_INFO } from '@opentelemetry/core';\nimport {\n ATTR_SERVICE_NAME,\n ATTR_TELEMETRY_SDK_LANGUAGE,\n ATTR_TELEMETRY_SDK_NAME,\n ATTR_TELEMETRY_SDK_VERSION,\n} from '@opentelemetry/semantic-conventions';\nimport type { Resource } from './Resource';\nimport { defaultServiceName } from './default-service-name';\nimport type {\n DetectedResource,\n DetectedResourceAttributes,\n MaybePromise,\n RawResourceAttribute,\n ResourceOptions,\n} from './types';\nimport { isPromiseLike } from './utils';\n\nclass ResourceImpl implements Resource {\n private _rawAttributes: RawResourceAttribute[];\n private _asyncAttributesPending = false;\n private _schemaUrl?: string;\n\n private _memoizedAttributes?: Attributes;\n\n static FromAttributeList(\n attributes: [string, MaybePromise][],\n options?: ResourceOptions\n ): Resource {\n const res = new ResourceImpl({}, options);\n res._rawAttributes = guardedRawAttributes(attributes);\n res._asyncAttributesPending =\n attributes.filter(([_, val]) => isPromiseLike(val)).length > 0;\n return res;\n }\n\n constructor(\n /**\n * A dictionary of attributes with string keys and values that provide\n * information about the entity as numbers, strings or booleans\n * TODO: Consider to add check/validation on attributes.\n */\n resource: DetectedResource,\n options?: ResourceOptions\n ) {\n const attributes = resource.attributes ?? {};\n this._rawAttributes = Object.entries(attributes).map(([k, v]) => {\n if (isPromiseLike(v)) {\n // side-effect\n this._asyncAttributesPending = true;\n }\n\n return [k, v];\n });\n\n this._rawAttributes = guardedRawAttributes(this._rawAttributes);\n this._schemaUrl = validateSchemaUrl(options?.schemaUrl);\n }\n\n public get asyncAttributesPending(): boolean {\n return this._asyncAttributesPending;\n }\n\n public async waitForAsyncAttributes(): Promise {\n if (!this.asyncAttributesPending) {\n return;\n }\n\n for (let i = 0; i < this._rawAttributes.length; i++) {\n const [k, v] = this._rawAttributes[i];\n this._rawAttributes[i] = [k, isPromiseLike(v) ? await v : v];\n }\n\n this._asyncAttributesPending = false;\n }\n\n public get attributes(): Attributes {\n if (this.asyncAttributesPending) {\n diag.error(\n 'Accessing resource attributes before async attributes settled'\n );\n }\n\n if (this._memoizedAttributes) {\n return this._memoizedAttributes;\n }\n\n const attrs: Attributes = {};\n for (const [k, v] of this._rawAttributes) {\n if (isPromiseLike(v)) {\n diag.debug(`Unsettled resource attribute ${k} skipped`);\n continue;\n }\n if (v != null) {\n attrs[k] ??= v;\n }\n }\n\n // only memoize output if all attributes are settled\n if (!this._asyncAttributesPending) {\n this._memoizedAttributes = attrs;\n }\n\n return attrs;\n }\n\n public getRawAttributes(): RawResourceAttribute[] {\n return this._rawAttributes;\n }\n\n public get schemaUrl(): string | undefined {\n return this._schemaUrl;\n }\n\n public merge(resource: Resource | null): Resource {\n if (resource == null) return this;\n\n // Order is important\n // Spec states incoming attributes override existing attributes\n const mergedSchemaUrl = mergeSchemaUrl(this, resource);\n const mergedOptions: ResourceOptions | undefined = mergedSchemaUrl\n ? { schemaUrl: mergedSchemaUrl }\n : undefined;\n\n return ResourceImpl.FromAttributeList(\n [...resource.getRawAttributes(), ...this.getRawAttributes()],\n mergedOptions\n );\n }\n}\n\nexport function resourceFromAttributes(\n attributes: DetectedResourceAttributes,\n options?: ResourceOptions\n): Resource {\n return ResourceImpl.FromAttributeList(Object.entries(attributes), options);\n}\n\nexport function resourceFromDetectedResource(\n detectedResource: DetectedResource,\n options?: ResourceOptions\n): Resource {\n return new ResourceImpl(detectedResource, options);\n}\n\nexport function emptyResource(): Resource {\n return resourceFromAttributes({});\n}\n\nexport function defaultResource(): Resource {\n return resourceFromAttributes({\n [ATTR_SERVICE_NAME]: defaultServiceName(),\n [ATTR_TELEMETRY_SDK_LANGUAGE]: SDK_INFO[ATTR_TELEMETRY_SDK_LANGUAGE],\n [ATTR_TELEMETRY_SDK_NAME]: SDK_INFO[ATTR_TELEMETRY_SDK_NAME],\n [ATTR_TELEMETRY_SDK_VERSION]: SDK_INFO[ATTR_TELEMETRY_SDK_VERSION],\n });\n}\n\nfunction guardedRawAttributes(\n attributes: RawResourceAttribute[]\n): RawResourceAttribute[] {\n return attributes.map(([k, v]) => {\n if (isPromiseLike(v)) {\n return [\n k,\n v.catch(err => {\n diag.debug(\n 'promise rejection for resource attribute: %s - %s',\n k,\n err\n );\n return undefined;\n }),\n ];\n }\n return [k, v];\n });\n}\n\nfunction validateSchemaUrl(schemaUrl?: string): string | undefined {\n if (typeof schemaUrl === 'string' || schemaUrl === undefined) {\n return schemaUrl;\n }\n\n diag.warn(\n 'Schema URL must be string or undefined, got %s. Schema URL will be ignored.',\n schemaUrl\n );\n\n return undefined;\n}\n\nfunction mergeSchemaUrl(\n old: Resource,\n updating: Resource | null\n): string | undefined {\n const oldSchemaUrl = old?.schemaUrl;\n const updatingSchemaUrl = updating?.schemaUrl;\n\n const isOldEmpty = oldSchemaUrl === undefined || oldSchemaUrl === '';\n const isUpdatingEmpty =\n updatingSchemaUrl === undefined || updatingSchemaUrl === '';\n\n if (isOldEmpty) {\n return updatingSchemaUrl;\n }\n\n if (isUpdatingEmpty) {\n return oldSchemaUrl;\n }\n\n if (oldSchemaUrl === updatingSchemaUrl) {\n return oldSchemaUrl;\n }\n\n diag.warn(\n 'Schema URL merge conflict: old resource has \"%s\", updating resource has \"%s\". Resulting resource will have undefined Schema URL.',\n oldSchemaUrl,\n updatingSchemaUrl\n );\n\n return undefined;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nlet serviceName: string | undefined;\n\n/**\n * Returns the default service name for OpenTelemetry resources.\n * In Node.js environments, returns \"unknown_service:\".\n * In browser/edge environments, returns \"unknown_service\".\n */\nexport function defaultServiceName(): string {\n if (serviceName === undefined) {\n try {\n const argv0 = globalThis.process.argv0;\n serviceName = argv0 ? `unknown_service:${argv0}` : 'unknown_service';\n } catch {\n serviceName = 'unknown_service';\n }\n }\n return serviceName;\n}\n\n/** @internal For testing purposes only */\nexport function _clearDefaultServiceNameCache(): void {\n serviceName = undefined;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport const isPromiseLike = (val: unknown): val is PromiseLike => {\n return (\n val !== null &&\n typeof val === 'object' &&\n typeof (val as Partial>).then === 'function'\n );\n};\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { IdGenerator } from '../../IdGenerator';\n\nconst SPAN_ID_BYTES = 8;\nconst TRACE_ID_BYTES = 16;\n\nexport class RandomIdGenerator implements IdGenerator {\n /**\n * Returns a random 16-byte trace ID formatted/encoded as a 32 lowercase hex\n * characters corresponding to 128 bits.\n */\n generateTraceId = getIdGenerator(TRACE_ID_BYTES);\n\n /**\n * Returns a random 8-byte span ID formatted/encoded as a 16 lowercase hex\n * characters corresponding to 64 bits.\n */\n generateSpanId = getIdGenerator(SPAN_ID_BYTES);\n}\n\nconst SHARED_BUFFER = Buffer.allocUnsafe(TRACE_ID_BYTES);\nfunction getIdGenerator(bytes: number): () => string {\n return function generateId() {\n for (let i = 0; i < bytes / 4; i++) {\n // unsigned right shift drops decimal part of the number\n // it is required because if a number between 2**32 and 2**32 - 1 is generated, an out of range error is thrown by writeUInt32BE\n SHARED_BUFFER.writeUInt32BE((Math.random() * 2 ** 32) >>> 0, i * 4);\n }\n\n // If buffer is all 0, set the last byte to 1 to guarantee a valid w3c id is generated\n for (let i = 0; i < bytes; i++) {\n if (SHARED_BUFFER[i] > 0) {\n break;\n } else if (i === bytes - 1) {\n SHARED_BUFFER[bytes - 1] = 1;\n }\n }\n\n return SHARED_BUFFER.toString('hex', 0, bytes);\n };\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { SpanExporter } from './SpanExporter';\nimport type { ReadableSpan } from './ReadableSpan';\nimport type { ExportResult } from '@opentelemetry/core';\nimport { ExportResultCode, hrTimeToMicroseconds } from '@opentelemetry/core';\n\n/**\n * This is implementation of {@link SpanExporter} that prints spans to the\n * console. This class can be used for diagnostic purposes.\n *\n * NOTE: This {@link SpanExporter} is intended for diagnostics use only, output rendered to the console may change at any time.\n */\n\n/* eslint-disable no-console */\nexport class ConsoleSpanExporter implements SpanExporter {\n /**\n * Export spans.\n * @param spans\n * @param resultCallback\n */\n export(\n spans: ReadableSpan[],\n resultCallback: (result: ExportResult) => void\n ): void {\n return this._sendSpans(spans, resultCallback);\n }\n\n /**\n * Shutdown the exporter.\n */\n shutdown(): Promise {\n this._sendSpans([]);\n return this.forceFlush();\n }\n\n /**\n * Exports any pending spans in exporter\n */\n forceFlush(): Promise {\n return Promise.resolve();\n }\n\n /**\n * converts span info into more readable format\n * @param span\n */\n private _exportInfo(span: ReadableSpan) {\n return {\n resource: {\n attributes: span.resource.attributes,\n },\n instrumentationScope: span.instrumentationScope,\n traceId: span.spanContext().traceId,\n parentSpanContext: span.parentSpanContext,\n traceState: span.spanContext().traceState?.serialize(),\n name: span.name,\n id: span.spanContext().spanId,\n kind: span.kind,\n timestamp: hrTimeToMicroseconds(span.startTime),\n duration: hrTimeToMicroseconds(span.duration),\n attributes: span.attributes,\n status: span.status,\n events: span.events,\n links: span.links,\n };\n }\n\n /**\n * Showing spans in console\n * @param spans\n * @param done\n */\n private _sendSpans(\n spans: ReadableSpan[],\n done?: (result: ExportResult) => void\n ): void {\n for (const span of spans) {\n console.dir(this._exportInfo(span), { depth: 3 });\n }\n if (done) {\n return done({ code: ExportResultCode.SUCCESS });\n }\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { diag } from '@opentelemetry/api';\nimport { getNumberFromEnv, getStringFromEnv } from '@opentelemetry/core';\nimport type { Sampler } from './Sampler';\nimport { AlwaysOffSampler } from './sampler/AlwaysOffSampler';\nimport { AlwaysOnSampler } from './sampler/AlwaysOnSampler';\nimport { ParentBasedSampler } from './sampler/ParentBasedSampler';\nimport { TraceIdRatioBasedSampler } from './sampler/TraceIdRatioBasedSampler';\n\nconst enum TracesSamplerValues {\n AlwaysOff = 'always_off',\n AlwaysOn = 'always_on',\n ParentBasedAlwaysOff = 'parentbased_always_off',\n ParentBasedAlwaysOn = 'parentbased_always_on',\n ParentBasedTraceIdRatio = 'parentbased_traceidratio',\n TraceIdRatio = 'traceidratio',\n}\n\nconst DEFAULT_RATIO = 1;\n\n/**\n * Load default configuration. For fields with primitive values, any user-provided\n * value will override the corresponding default value. For fields with\n * non-primitive values (like `spanLimits`), the user-provided value will be\n * used to extend the default value.\n */\n\n// object needs to be wrapped in this function and called when needed otherwise\n// envs are parsed before tests are ran - causes tests using these envs to fail\nexport function loadDefaultConfig() {\n return {\n sampler: buildSamplerFromEnv(),\n forceFlushTimeoutMillis: 30000,\n generalLimits: {\n attributeValueLengthLimit:\n getNumberFromEnv('OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT') ?? Infinity,\n attributeCountLimit:\n getNumberFromEnv('OTEL_ATTRIBUTE_COUNT_LIMIT') ?? 128,\n },\n spanLimits: {\n attributeValueLengthLimit:\n getNumberFromEnv('OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT') ?? Infinity,\n attributeCountLimit:\n getNumberFromEnv('OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT') ?? 128,\n linkCountLimit: getNumberFromEnv('OTEL_SPAN_LINK_COUNT_LIMIT') ?? 128,\n eventCountLimit: getNumberFromEnv('OTEL_SPAN_EVENT_COUNT_LIMIT') ?? 128,\n attributePerEventCountLimit:\n getNumberFromEnv('OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT') ?? 128,\n attributePerLinkCountLimit:\n getNumberFromEnv('OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT') ?? 128,\n },\n };\n}\n\n/**\n * Based on environment, builds a sampler, complies with specification.\n */\nexport function buildSamplerFromEnv(): Sampler {\n const sampler =\n getStringFromEnv('OTEL_TRACES_SAMPLER') ??\n TracesSamplerValues.ParentBasedAlwaysOn;\n switch (sampler) {\n case TracesSamplerValues.AlwaysOn:\n return new AlwaysOnSampler();\n case TracesSamplerValues.AlwaysOff:\n return new AlwaysOffSampler();\n case TracesSamplerValues.ParentBasedAlwaysOn:\n return new ParentBasedSampler({\n root: new AlwaysOnSampler(),\n });\n case TracesSamplerValues.ParentBasedAlwaysOff:\n return new ParentBasedSampler({\n root: new AlwaysOffSampler(),\n });\n case TracesSamplerValues.TraceIdRatio:\n return new TraceIdRatioBasedSampler(getSamplerProbabilityFromEnv());\n case TracesSamplerValues.ParentBasedTraceIdRatio:\n return new ParentBasedSampler({\n root: new TraceIdRatioBasedSampler(getSamplerProbabilityFromEnv()),\n });\n default:\n diag.error(\n `OTEL_TRACES_SAMPLER value \"${sampler}\" invalid, defaulting to \"${TracesSamplerValues.ParentBasedAlwaysOn}\".`\n );\n return new ParentBasedSampler({\n root: new AlwaysOnSampler(),\n });\n }\n}\n\nfunction getSamplerProbabilityFromEnv(): number | undefined {\n const probability = getNumberFromEnv('OTEL_TRACES_SAMPLER_ARG');\n if (probability == null) {\n diag.error(\n `OTEL_TRACES_SAMPLER_ARG is blank, defaulting to ${DEFAULT_RATIO}.`\n );\n return DEFAULT_RATIO;\n }\n\n if (probability < 0 || probability > 1) {\n diag.error(\n `OTEL_TRACES_SAMPLER_ARG=${probability} was given, but it is out of range ([0..1]), defaulting to ${DEFAULT_RATIO}.`\n );\n return DEFAULT_RATIO;\n }\n\n return probability;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { TracerProvider, Tracer as ApiTracer } from '@opentelemetry/api';\nimport { merge } from '@opentelemetry/core';\nimport type { Resource } from '@opentelemetry/resources';\nimport { defaultResource } from '@opentelemetry/resources';\nimport type { SpanProcessor } from './SpanProcessor';\nimport { Tracer } from './Tracer';\nimport { loadDefaultConfig } from './config';\nimport { MultiSpanProcessor } from './MultiSpanProcessor';\nimport type { TracerConfig } from './types';\nimport { reconfigureLimits } from './utility';\n\nexport enum ForceFlushState {\n 'resolved',\n 'timeout',\n 'error',\n 'unresolved',\n}\n\n/**\n * This class represents a basic tracer provider which platform libraries can extend\n */\nexport class BasicTracerProvider implements TracerProvider {\n private readonly _config: TracerConfig;\n private readonly _tracers: Map = new Map();\n private readonly _resource: Resource;\n private readonly _activeSpanProcessor: MultiSpanProcessor;\n\n constructor(config: TracerConfig = {}) {\n const mergedConfig = merge(\n {},\n loadDefaultConfig(),\n reconfigureLimits(config)\n );\n this._resource = mergedConfig.resource ?? defaultResource();\n\n this._config = Object.assign({}, mergedConfig, {\n resource: this._resource,\n });\n\n const spanProcessors: SpanProcessor[] = [];\n\n if (config.spanProcessors?.length) {\n spanProcessors.push(...config.spanProcessors);\n }\n\n this._activeSpanProcessor = new MultiSpanProcessor(spanProcessors);\n }\n\n getTracer(\n name: string,\n version?: string,\n options?: { schemaUrl?: string }\n ): ApiTracer {\n const key = `${name}@${version || ''}:${options?.schemaUrl || ''}`;\n if (!this._tracers.has(key)) {\n this._tracers.set(\n key,\n new Tracer(\n { name, version, schemaUrl: options?.schemaUrl },\n this._config,\n this._resource,\n this._activeSpanProcessor\n )\n );\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this._tracers.get(key)!;\n }\n\n forceFlush(): Promise {\n const timeout = this._config.forceFlushTimeoutMillis;\n const promises = this._activeSpanProcessor['_spanProcessors'].map(\n (spanProcessor: SpanProcessor) => {\n return new Promise(resolve => {\n let state: ForceFlushState;\n const timeoutInterval = setTimeout(() => {\n resolve(\n new Error(\n `Span processor did not completed within timeout period of ${timeout} ms`\n )\n );\n state = ForceFlushState.timeout;\n }, timeout);\n\n spanProcessor\n .forceFlush()\n .then(() => {\n clearTimeout(timeoutInterval);\n if (state !== ForceFlushState.timeout) {\n state = ForceFlushState.resolved;\n resolve(state);\n }\n })\n .catch(error => {\n clearTimeout(timeoutInterval);\n state = ForceFlushState.error;\n resolve(error);\n });\n });\n }\n );\n\n return new Promise((resolve, reject) => {\n Promise.all(promises)\n .then(results => {\n const errors = results.filter(\n result => result !== ForceFlushState.resolved\n );\n if (errors.length > 0) {\n reject(errors);\n } else {\n resolve();\n }\n })\n .catch(error => reject([error]));\n });\n }\n\n shutdown(): Promise {\n return this._activeSpanProcessor.shutdown();\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Sampler, SamplingResult } from '../Sampler';\nimport { SamplingDecision } from '../Sampler';\n\n/** Sampler that samples no traces. */\nexport class AlwaysOffSampler implements Sampler {\n shouldSample(): SamplingResult {\n return {\n decision: SamplingDecision.NOT_RECORD,\n };\n }\n\n toString(): string {\n return 'AlwaysOffSampler';\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Context } from '@opentelemetry/api';\nimport { context, diag, TraceFlags } from '@opentelemetry/api';\nimport {\n BindOnceFuture,\n ExportResultCode,\n getNumberFromEnv,\n globalErrorHandler,\n suppressTracing,\n} from '@opentelemetry/core';\nimport type { Span } from '../Span';\nimport type { SpanProcessor } from '../SpanProcessor';\nimport type { BufferConfig } from '../types';\nimport type { ReadableSpan } from './ReadableSpan';\nimport type { SpanExporter } from './SpanExporter';\n\n/**\n * Implementation of the {@link SpanProcessor} that batches spans exported by\n * the SDK then pushes them to the exporter pipeline.\n */\nexport abstract class BatchSpanProcessorBase\n implements SpanProcessor\n{\n private readonly _maxExportBatchSize: number;\n private readonly _maxQueueSize: number;\n private readonly _scheduledDelayMillis: number;\n private readonly _exportTimeoutMillis: number;\n private readonly _exporter: SpanExporter;\n\n private _isExporting = false;\n private _finishedSpans: ReadableSpan[] = [];\n private _timer: NodeJS.Timeout | number | undefined;\n private _shutdownOnce: BindOnceFuture;\n private _droppedSpansCount: number = 0;\n\n constructor(exporter: SpanExporter, config?: T) {\n this._exporter = exporter;\n this._maxExportBatchSize =\n typeof config?.maxExportBatchSize === 'number'\n ? config.maxExportBatchSize\n : (getNumberFromEnv('OTEL_BSP_MAX_EXPORT_BATCH_SIZE') ?? 512);\n this._maxQueueSize =\n typeof config?.maxQueueSize === 'number'\n ? config.maxQueueSize\n : (getNumberFromEnv('OTEL_BSP_MAX_QUEUE_SIZE') ?? 2048);\n this._scheduledDelayMillis =\n typeof config?.scheduledDelayMillis === 'number'\n ? config.scheduledDelayMillis\n : (getNumberFromEnv('OTEL_BSP_SCHEDULE_DELAY') ?? 5000);\n this._exportTimeoutMillis =\n typeof config?.exportTimeoutMillis === 'number'\n ? config.exportTimeoutMillis\n : (getNumberFromEnv('OTEL_BSP_EXPORT_TIMEOUT') ?? 30000);\n\n this._shutdownOnce = new BindOnceFuture(this._shutdown, this);\n\n if (this._maxExportBatchSize > this._maxQueueSize) {\n diag.warn(\n 'BatchSpanProcessor: maxExportBatchSize must be smaller or equal to maxQueueSize, setting maxExportBatchSize to match maxQueueSize'\n );\n this._maxExportBatchSize = this._maxQueueSize;\n }\n }\n\n forceFlush(): Promise {\n if (this._shutdownOnce.isCalled) {\n return this._shutdownOnce.promise;\n }\n return this._flushAll();\n }\n\n // does nothing.\n onStart(_span: Span, _parentContext: Context): void {}\n\n onEnd(span: ReadableSpan): void {\n if (this._shutdownOnce.isCalled) {\n return;\n }\n\n if ((span.spanContext().traceFlags & TraceFlags.SAMPLED) === 0) {\n return;\n }\n\n this._addToBuffer(span);\n }\n\n shutdown(): Promise {\n return this._shutdownOnce.call();\n }\n\n private _shutdown() {\n return Promise.resolve()\n .then(() => {\n return this.onShutdown();\n })\n .then(() => {\n return this._flushAll();\n })\n .then(() => {\n return this._exporter.shutdown();\n });\n }\n\n /** Add a span in the buffer. */\n private _addToBuffer(span: ReadableSpan) {\n if (this._finishedSpans.length >= this._maxQueueSize) {\n // limit reached, drop span\n\n if (this._droppedSpansCount === 0) {\n diag.debug('maxQueueSize reached, dropping spans');\n }\n this._droppedSpansCount++;\n\n return;\n }\n\n if (this._droppedSpansCount > 0) {\n // some spans were dropped, log once with count of spans dropped\n diag.warn(\n `Dropped ${this._droppedSpansCount} spans because maxQueueSize reached`\n );\n this._droppedSpansCount = 0;\n }\n\n this._finishedSpans.push(span);\n this._maybeStartTimer();\n }\n\n /**\n * Send all spans to the exporter respecting the batch size limit\n * This function is used only on forceFlush or shutdown,\n * for all other cases _flush should be used\n * */\n private _flushAll(): Promise {\n return new Promise((resolve, reject) => {\n const promises = [];\n // calculate number of batches\n const count = Math.ceil(\n this._finishedSpans.length / this._maxExportBatchSize\n );\n for (let i = 0, j = count; i < j; i++) {\n promises.push(this._flushOneBatch());\n }\n Promise.all(promises)\n .then(() => {\n resolve();\n })\n .catch(reject);\n });\n }\n\n private _flushOneBatch(): Promise {\n this._clearTimer();\n if (this._finishedSpans.length === 0) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const timer = setTimeout(() => {\n // don't wait anymore for export, this way the next batch can start\n reject(new Error('Timeout'));\n }, this._exportTimeoutMillis);\n // prevent downstream exporter calls from generating spans\n context.with(suppressTracing(context.active()), () => {\n // Reset the finished spans buffer here because the next invocations of the _flush method\n // could pass the same finished spans to the exporter if the buffer is cleared\n // outside the execution of this callback.\n let spans: ReadableSpan[];\n if (this._finishedSpans.length <= this._maxExportBatchSize) {\n spans = this._finishedSpans;\n this._finishedSpans = [];\n } else {\n spans = this._finishedSpans.splice(0, this._maxExportBatchSize);\n }\n\n const doExport = () =>\n this._exporter.export(spans, result => {\n clearTimeout(timer);\n if (result.code === ExportResultCode.SUCCESS) {\n resolve();\n } else {\n reject(\n result.error ??\n new Error('BatchSpanProcessor: span export failed')\n );\n }\n });\n\n let pendingResources: Array> | null = null;\n for (let i = 0, len = spans.length; i < len; i++) {\n const span = spans[i];\n if (\n span.resource.asyncAttributesPending &&\n span.resource.waitForAsyncAttributes\n ) {\n pendingResources ??= [];\n pendingResources.push(span.resource.waitForAsyncAttributes());\n }\n }\n\n // Avoid scheduling a promise to make the behavior more predictable and easier to test\n if (pendingResources === null) {\n doExport();\n } else {\n Promise.all(pendingResources).then(doExport, err => {\n globalErrorHandler(err);\n reject(err);\n });\n }\n });\n });\n }\n\n private _maybeStartTimer() {\n if (this._isExporting) return;\n const flush = () => {\n this._isExporting = true;\n this._flushOneBatch()\n .finally(() => {\n this._isExporting = false;\n if (this._finishedSpans.length > 0) {\n this._clearTimer();\n this._maybeStartTimer();\n }\n })\n .catch(e => {\n this._isExporting = false;\n globalErrorHandler(e);\n });\n };\n // we only wait if the queue doesn't have enough elements yet\n if (this._finishedSpans.length >= this._maxExportBatchSize) {\n return flush();\n }\n if (this._timer !== undefined) return;\n this._timer = setTimeout(() => flush(), this._scheduledDelayMillis);\n\n // depending on runtime, this may be a 'number' or NodeJS.Timeout\n if (typeof this._timer !== 'number') {\n this._timer.unref();\n }\n }\n\n private _clearTimer() {\n if (this._timer !== undefined) {\n clearTimeout(this._timer);\n this._timer = undefined;\n }\n }\n\n protected abstract onShutdown(): void;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Context, Link, Attributes, SpanKind } from '@opentelemetry/api';\nimport { isSpanContextValid, TraceFlags, trace } from '@opentelemetry/api';\nimport { globalErrorHandler } from '@opentelemetry/core';\nimport { AlwaysOffSampler } from './AlwaysOffSampler';\nimport { AlwaysOnSampler } from './AlwaysOnSampler';\nimport type { Sampler, SamplingResult } from '../Sampler';\n\n/**\n * A composite sampler that either respects the parent span's sampling decision\n * or delegates to `delegateSampler` for root spans.\n */\nexport class ParentBasedSampler implements Sampler {\n private _root: Sampler;\n private _remoteParentSampled: Sampler;\n private _remoteParentNotSampled: Sampler;\n private _localParentSampled: Sampler;\n private _localParentNotSampled: Sampler;\n\n constructor(config: ParentBasedSamplerConfig) {\n this._root = config.root;\n\n if (!this._root) {\n globalErrorHandler(\n new Error('ParentBasedSampler must have a root sampler configured')\n );\n this._root = new AlwaysOnSampler();\n }\n\n this._remoteParentSampled =\n config.remoteParentSampled ?? new AlwaysOnSampler();\n this._remoteParentNotSampled =\n config.remoteParentNotSampled ?? new AlwaysOffSampler();\n this._localParentSampled =\n config.localParentSampled ?? new AlwaysOnSampler();\n this._localParentNotSampled =\n config.localParentNotSampled ?? new AlwaysOffSampler();\n }\n\n shouldSample(\n context: Context,\n traceId: string,\n spanName: string,\n spanKind: SpanKind,\n attributes: Attributes,\n links: Link[]\n ): SamplingResult {\n const parentContext = trace.getSpanContext(context);\n\n if (!parentContext || !isSpanContextValid(parentContext)) {\n return this._root.shouldSample(\n context,\n traceId,\n spanName,\n spanKind,\n attributes,\n links\n );\n }\n\n if (parentContext.isRemote) {\n if (parentContext.traceFlags & TraceFlags.SAMPLED) {\n return this._remoteParentSampled.shouldSample(\n context,\n traceId,\n spanName,\n spanKind,\n attributes,\n links\n );\n }\n return this._remoteParentNotSampled.shouldSample(\n context,\n traceId,\n spanName,\n spanKind,\n attributes,\n links\n );\n }\n\n if (parentContext.traceFlags & TraceFlags.SAMPLED) {\n return this._localParentSampled.shouldSample(\n context,\n traceId,\n spanName,\n spanKind,\n attributes,\n links\n );\n }\n\n return this._localParentNotSampled.shouldSample(\n context,\n traceId,\n spanName,\n spanKind,\n attributes,\n links\n );\n }\n\n toString(): string {\n return `ParentBased{root=${this._root.toString()}, remoteParentSampled=${this._remoteParentSampled.toString()}, remoteParentNotSampled=${this._remoteParentNotSampled.toString()}, localParentSampled=${this._localParentSampled.toString()}, localParentNotSampled=${this._localParentNotSampled.toString()}}`;\n }\n}\n\ninterface ParentBasedSamplerConfig {\n /** Sampler called for spans with no parent */\n root: Sampler;\n /** Sampler called for spans with a remote parent which was sampled. Default AlwaysOn */\n remoteParentSampled?: Sampler;\n /** Sampler called for spans with a remote parent which was not sampled. Default AlwaysOff */\n remoteParentNotSampled?: Sampler;\n /** Sampler called for spans with a local parent which was sampled. Default AlwaysOn */\n localParentSampled?: Sampler;\n /** Sampler called for spans with a local parent which was not sampled. Default AlwaysOff */\n localParentNotSampled?: Sampler;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { buildSamplerFromEnv, loadDefaultConfig } from './config';\nimport type { Sampler } from './Sampler';\nimport type { SpanLimits, TracerConfig, GeneralLimits } from './types';\nimport { getNumberFromEnv } from '@opentelemetry/core';\n\nexport const DEFAULT_ATTRIBUTE_COUNT_LIMIT = 128;\nexport const DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT = Infinity;\n\n/**\n * Function to merge Default configuration (as specified in './config') with\n * user provided configurations.\n */\nexport function mergeConfig(userConfig: TracerConfig): TracerConfig & {\n sampler: Sampler;\n spanLimits: SpanLimits;\n generalLimits: GeneralLimits;\n} {\n const perInstanceDefaults: Partial = {\n sampler: buildSamplerFromEnv(),\n };\n\n const DEFAULT_CONFIG = loadDefaultConfig();\n\n const target = Object.assign(\n {},\n DEFAULT_CONFIG,\n perInstanceDefaults,\n userConfig\n );\n\n target.generalLimits = Object.assign(\n {},\n DEFAULT_CONFIG.generalLimits,\n userConfig.generalLimits || {}\n );\n\n target.spanLimits = Object.assign(\n {},\n DEFAULT_CONFIG.spanLimits,\n userConfig.spanLimits || {}\n );\n\n return target;\n}\n\n/**\n * When general limits are provided and model specific limits are not,\n * configures the model specific limits by using the values from the general ones.\n * @param userConfig User provided tracer configuration\n */\nexport function reconfigureLimits(userConfig: TracerConfig): TracerConfig {\n const spanLimits = Object.assign({}, userConfig.spanLimits);\n\n /**\n * Reassign span attribute count limit to use first non null value defined by user or use default value\n */\n spanLimits.attributeCountLimit =\n userConfig.spanLimits?.attributeCountLimit ??\n userConfig.generalLimits?.attributeCountLimit ??\n getNumberFromEnv('OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT') ??\n getNumberFromEnv('OTEL_ATTRIBUTE_COUNT_LIMIT') ??\n DEFAULT_ATTRIBUTE_COUNT_LIMIT;\n\n /**\n * Reassign span attribute value length limit to use first non null value defined by user or use default value\n */\n spanLimits.attributeValueLengthLimit =\n userConfig.spanLimits?.attributeValueLengthLimit ??\n userConfig.generalLimits?.attributeValueLengthLimit ??\n getNumberFromEnv('OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT') ??\n getNumberFromEnv('OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT') ??\n DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT;\n\n return Object.assign({}, userConfig, { spanLimits });\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { BatchSpanProcessorBase } from '../../../export/BatchSpanProcessorBase';\nimport type { BufferConfig } from '../../../types';\n\nexport class BatchSpanProcessor extends BatchSpanProcessorBase {\n protected onShutdown(): void {}\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport { BasicTracerProvider } from './BasicTracerProvider';\nexport { BatchSpanProcessor, RandomIdGenerator } from './platform';\nexport { ConsoleSpanExporter } from './export/ConsoleSpanExporter';\nexport { InMemorySpanExporter } from './export/InMemorySpanExporter';\nexport type { ReadableSpan } from './export/ReadableSpan';\nexport { SimpleSpanProcessor } from './export/SimpleSpanProcessor';\nexport type { SpanExporter } from './export/SpanExporter';\nexport { NoopSpanProcessor } from './export/NoopSpanProcessor';\nexport { AlwaysOffSampler } from './sampler/AlwaysOffSampler';\nexport { AlwaysOnSampler } from './sampler/AlwaysOnSampler';\nexport { ParentBasedSampler } from './sampler/ParentBasedSampler';\nexport { TraceIdRatioBasedSampler } from './sampler/TraceIdRatioBasedSampler';\nexport { SamplingDecision } from './Sampler';\nexport type { Sampler, SamplingResult } from './Sampler';\nexport type { Span } from './Span';\nexport type { SpanProcessor } from './SpanProcessor';\nexport type { TimedEvent } from './TimedEvent';\nexport type {\n BatchSpanProcessorBrowserConfig,\n BufferConfig,\n GeneralLimits,\n SDKRegistrationConfig,\n SpanLimits,\n TracerConfig,\n} from './types';\nexport type { IdGenerator } from './IdGenerator';\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport * as api from '@opentelemetry/api';\nimport type { InstrumentationScope } from '@opentelemetry/core';\nimport { sanitizeAttributes, isTracingSuppressed } from '@opentelemetry/core';\nimport { SpanImpl } from './Span';\nimport type { GeneralLimits, SpanLimits, TracerConfig } from './types';\nimport { mergeConfig } from './utility';\nimport type { SpanProcessor } from './SpanProcessor';\nimport type { Sampler } from './Sampler';\nimport type { IdGenerator } from './IdGenerator';\nimport { RandomIdGenerator } from './platform';\nimport type { Resource } from '@opentelemetry/resources';\nimport { TracerMetrics } from './TracerMetrics';\nimport { VERSION } from './version';\n\n/**\n * This class represents a basic tracer.\n */\nexport class Tracer implements api.Tracer {\n private readonly _sampler: Sampler;\n private readonly _generalLimits: GeneralLimits;\n private readonly _spanLimits: SpanLimits;\n private readonly _idGenerator: IdGenerator;\n readonly instrumentationScope: InstrumentationScope;\n\n private readonly _resource: Resource;\n private readonly _spanProcessor: SpanProcessor;\n private readonly _tracerMetrics: TracerMetrics;\n\n /**\n * Constructs a new Tracer instance.\n */\n constructor(\n instrumentationScope: InstrumentationScope,\n config: TracerConfig,\n resource: Resource,\n spanProcessor: SpanProcessor\n ) {\n const localConfig = mergeConfig(config);\n this._sampler = localConfig.sampler;\n this._generalLimits = localConfig.generalLimits;\n this._spanLimits = localConfig.spanLimits;\n this._idGenerator = config.idGenerator || new RandomIdGenerator();\n this._resource = resource;\n this._spanProcessor = spanProcessor;\n this.instrumentationScope = instrumentationScope;\n\n const meter = localConfig.meterProvider\n ? localConfig.meterProvider.getMeter('@opentelemetry/sdk-trace', VERSION)\n : api.createNoopMeter();\n this._tracerMetrics = new TracerMetrics(meter);\n }\n\n /**\n * Starts a new Span or returns the default NoopSpan based on the sampling\n * decision.\n */\n startSpan(\n name: string,\n options: api.SpanOptions = {},\n context = api.context.active()\n ): api.Span {\n // remove span from context in case a root span is requested via options\n if (options.root) {\n context = api.trace.deleteSpan(context);\n }\n const parentSpan = api.trace.getSpan(context);\n\n if (isTracingSuppressed(context)) {\n api.diag.debug('Instrumentation suppressed, returning Noop Span');\n const nonRecordingSpan = api.trace.wrapSpanContext(\n api.INVALID_SPAN_CONTEXT\n );\n return nonRecordingSpan;\n }\n\n const parentSpanContext = parentSpan?.spanContext();\n const spanId = this._idGenerator.generateSpanId();\n let validParentSpanContext;\n let traceId;\n let traceState;\n if (\n !parentSpanContext ||\n !api.trace.isSpanContextValid(parentSpanContext)\n ) {\n // New root span.\n traceId = this._idGenerator.generateTraceId();\n } else {\n // New child span.\n traceId = parentSpanContext.traceId;\n traceState = parentSpanContext.traceState;\n validParentSpanContext = parentSpanContext;\n }\n\n const spanKind = options.kind ?? api.SpanKind.INTERNAL;\n const links = (options.links ?? []).map(link => {\n return {\n context: link.context,\n attributes: sanitizeAttributes(link.attributes),\n };\n });\n const attributes = sanitizeAttributes(options.attributes);\n // make sampling decision\n const samplingResult = this._sampler.shouldSample(\n context,\n traceId,\n name,\n spanKind,\n attributes,\n links\n );\n\n const recordEndMetrics = this._tracerMetrics.startSpan(\n parentSpanContext,\n samplingResult.decision\n );\n\n traceState = samplingResult.traceState ?? traceState;\n\n const traceFlags =\n samplingResult.decision === api.SamplingDecision.RECORD_AND_SAMPLED\n ? api.TraceFlags.SAMPLED\n : api.TraceFlags.NONE;\n const spanContext = { traceId, spanId, traceFlags, traceState };\n if (samplingResult.decision === api.SamplingDecision.NOT_RECORD) {\n api.diag.debug(\n 'Recording is off, propagating context in a non-recording span'\n );\n const nonRecordingSpan = api.trace.wrapSpanContext(spanContext);\n return nonRecordingSpan;\n }\n\n // Set initial span attributes. The attributes object may have been mutated\n // by the sampler, so we sanitize the merged attributes before setting them.\n const initAttributes = sanitizeAttributes(\n Object.assign(attributes, samplingResult.attributes)\n );\n\n const span = new SpanImpl({\n resource: this._resource,\n scope: this.instrumentationScope,\n context,\n spanContext,\n name,\n kind: spanKind,\n links,\n parentSpanContext: validParentSpanContext,\n attributes: initAttributes,\n startTime: options.startTime,\n spanProcessor: this._spanProcessor,\n spanLimits: this._spanLimits,\n recordEndMetrics,\n });\n return span;\n }\n\n /**\n * Starts a new {@link Span} and calls the given function passing it the\n * created span as first argument.\n * Additionally the new span gets set in context and this context is activated\n * for the duration of the function call.\n *\n * @param name The name of the span\n * @param [options] SpanOptions used for span creation\n * @param [context] Context to use to extract parent\n * @param fn function called in the context of the span and receives the newly created span as an argument\n * @returns return value of fn\n * @example\n * const something = tracer.startActiveSpan('op', span => {\n * try {\n * do some work\n * span.setStatus({code: SpanStatusCode.OK});\n * return something;\n * } catch (err) {\n * span.setStatus({\n * code: SpanStatusCode.ERROR,\n * message: err.message,\n * });\n * throw err;\n * } finally {\n * span.end();\n * }\n * });\n * @example\n * const span = tracer.startActiveSpan('op', span => {\n * try {\n * do some work\n * return span;\n * } catch (err) {\n * span.setStatus({\n * code: SpanStatusCode.ERROR,\n * message: err.message,\n * });\n * throw err;\n * }\n * });\n * do some more work\n * span.end();\n */\n startActiveSpan ReturnType>(\n name: string,\n fn: F\n ): ReturnType;\n startActiveSpan ReturnType>(\n name: string,\n opts: api.SpanOptions,\n fn: F\n ): ReturnType;\n startActiveSpan ReturnType>(\n name: string,\n opts: api.SpanOptions,\n ctx: api.Context,\n fn: F\n ): ReturnType;\n startActiveSpan ReturnType>(\n name: string,\n arg2?: F | api.SpanOptions,\n arg3?: F | api.Context,\n arg4?: F\n ): ReturnType | undefined {\n let opts: api.SpanOptions | undefined;\n let ctx: api.Context | undefined;\n let fn: F;\n\n if (arguments.length < 2) {\n return;\n } else if (arguments.length === 2) {\n fn = arg2 as F;\n } else if (arguments.length === 3) {\n opts = arg2 as api.SpanOptions | undefined;\n fn = arg3 as F;\n } else {\n opts = arg2 as api.SpanOptions | undefined;\n ctx = arg3 as api.Context | undefined;\n fn = arg4 as F;\n }\n\n const parentContext = ctx ?? api.context.active();\n const span = this.startSpan(name, opts, parentContext);\n const contextWithSpanSet = api.trace.setSpan(parentContext, span);\n\n return api.context.with(contextWithSpanSet, fn, undefined, span);\n }\n\n /** Returns the active {@link GeneralLimits}. */\n getGeneralLimits(): GeneralLimits {\n return this._generalLimits;\n }\n\n /** Returns the active {@link SpanLimits}. */\n getSpanLimits(): SpanLimits {\n return this._spanLimits;\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { SpanExporter } from './SpanExporter';\nimport type { ReadableSpan } from './ReadableSpan';\nimport type { ExportResult } from '@opentelemetry/core';\nimport { ExportResultCode } from '@opentelemetry/core';\n\n/**\n * This class can be used for testing purposes. It stores the exported spans\n * in a list in memory that can be retrieved using the `getFinishedSpans()`\n * method.\n */\nexport class InMemorySpanExporter implements SpanExporter {\n private _finishedSpans: ReadableSpan[] = [];\n /**\n * Indicates if the exporter has been \"shutdown.\"\n * When false, exported spans will not be stored in-memory.\n */\n protected _stopped = false;\n\n export(\n spans: ReadableSpan[],\n resultCallback: (result: ExportResult) => void\n ): void {\n if (this._stopped)\n return resultCallback({\n code: ExportResultCode.FAILED,\n error: new Error('Exporter has been stopped'),\n });\n this._finishedSpans.push(...spans);\n\n setTimeout(() => resultCallback({ code: ExportResultCode.SUCCESS }), 0);\n }\n\n shutdown(): Promise {\n this._stopped = true;\n this._finishedSpans = [];\n return this.forceFlush();\n }\n\n /**\n * Exports any pending spans in the exporter\n */\n forceFlush(): Promise {\n return Promise.resolve();\n }\n\n reset(): void {\n this._finishedSpans = [];\n }\n\n getFinishedSpans(): ReadableSpan[] {\n return this._finishedSpans;\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n Context,\n Exception,\n HrTime,\n Link,\n Span as APISpan,\n SpanOptions as APISpanOptions,\n Attributes,\n AttributeValue,\n SpanContext,\n SpanKind,\n SpanStatus,\n TimeInput,\n} from '@opentelemetry/api';\nimport { diag, SpanStatusCode } from '@opentelemetry/api';\nimport type { InstrumentationScope } from '@opentelemetry/core';\nimport {\n addHrTimes,\n millisToHrTime,\n hrTime,\n hrTimeDuration,\n isAttributeValue,\n isTimeInput,\n isTimeInputHrTime,\n otperformance,\n sanitizeAttributes,\n} from '@opentelemetry/core';\nimport type { Resource } from '@opentelemetry/resources';\nimport {\n ATTR_EXCEPTION_MESSAGE,\n ATTR_EXCEPTION_STACKTRACE,\n ATTR_EXCEPTION_TYPE,\n} from '@opentelemetry/semantic-conventions';\nimport type { ReadableSpan } from './export/ReadableSpan';\nimport { ExceptionEventName } from './enums';\nimport type { SpanProcessor } from './SpanProcessor';\nimport type { TimedEvent } from './TimedEvent';\nimport type { SpanLimits } from './types';\n\n/**\n * This type provides the properties of @link{ReadableSpan} at the same time\n * of the Span API\n */\nexport type Span = APISpan & ReadableSpan;\n\n// `root` is omitted because it is consumed by Tracer.startSpan() to strip\n// parent context but it has no meaning when constructing a Span directly.\ntype SpanOptions = Omit & {\n resource: Resource;\n scope: InstrumentationScope;\n context: Context;\n spanContext: SpanContext;\n name: string;\n // Required here to override optional `kind` from the API's SpanOptions\n // SpanImpl assigns it unconditionally and ReadableSpan expects it to be set.\n kind: SpanKind;\n parentSpanContext?: SpanContext;\n spanLimits: SpanLimits;\n spanProcessor: SpanProcessor;\n recordEndMetrics?: () => void;\n};\n\n/**\n * This class represents a span.\n */\nexport class SpanImpl implements Span {\n // Below properties are included to implement ReadableSpan for export\n // purposes but are not intended to be written-to directly.\n private readonly _spanContext: SpanContext;\n readonly kind: SpanKind;\n readonly parentSpanContext?: SpanContext;\n readonly attributes: Attributes = {};\n readonly links: Link[] = [];\n readonly events: TimedEvent[] = [];\n readonly startTime: HrTime;\n readonly resource: Resource;\n readonly instrumentationScope: InstrumentationScope;\n\n private _droppedAttributesCount = 0;\n private _droppedEventsCount: number = 0;\n private _droppedLinksCount: number = 0;\n private _attributesCount: number = 0;\n\n name: string;\n status: SpanStatus = {\n code: SpanStatusCode.UNSET,\n };\n endTime: HrTime = [0, 0];\n private _ended = false;\n private _duration: HrTime = [-1, -1];\n private readonly _spanProcessor: SpanProcessor;\n private readonly _spanLimits: SpanLimits;\n private readonly _attributeValueLengthLimit: number;\n private readonly _recordEndMetrics?: () => void;\n\n private readonly _performanceStartTime: number;\n private readonly _performanceOffset: number;\n private readonly _startTimeProvided: boolean;\n\n /**\n * Constructs a new SpanImpl instance.\n */\n constructor(opts: SpanOptions) {\n const now = Date.now();\n\n this._spanContext = opts.spanContext;\n this._performanceStartTime = otperformance.now();\n this._performanceOffset =\n now - (this._performanceStartTime + otperformance.timeOrigin);\n this._startTimeProvided = opts.startTime != null;\n this._spanLimits = opts.spanLimits;\n this._attributeValueLengthLimit =\n this._spanLimits.attributeValueLengthLimit ?? 0;\n this._spanProcessor = opts.spanProcessor;\n\n this.name = opts.name;\n this.parentSpanContext = opts.parentSpanContext;\n this.kind = opts.kind;\n if (opts.links) {\n for (const link of opts.links) {\n this.addLink(link);\n }\n }\n this.startTime = this._getTime(opts.startTime ?? now);\n this.resource = opts.resource;\n this.instrumentationScope = opts.scope;\n this._recordEndMetrics = opts.recordEndMetrics;\n\n if (opts.attributes != null) {\n this.setAttributes(opts.attributes);\n }\n\n this._spanProcessor.onStart(this, opts.context);\n }\n\n spanContext(): SpanContext {\n return this._spanContext;\n }\n\n setAttribute(key: string, value?: AttributeValue): this;\n setAttribute(key: string, value: unknown): this {\n if (value == null || this._isSpanEnded()) return this;\n if (key.length === 0) {\n diag.warn(`Invalid attribute key: ${key}`);\n return this;\n }\n if (!isAttributeValue(value)) {\n diag.warn(`Invalid attribute value set for key: ${key}`);\n return this;\n }\n\n const { attributeCountLimit } = this._spanLimits;\n const isNewKey = !Object.prototype.hasOwnProperty.call(\n this.attributes,\n key\n );\n\n if (\n attributeCountLimit !== undefined &&\n this._attributesCount >= attributeCountLimit &&\n isNewKey\n ) {\n this._droppedAttributesCount++;\n return this;\n }\n\n this.attributes[key] = this._truncateToSize(value);\n if (isNewKey) {\n this._attributesCount++;\n }\n return this;\n }\n\n setAttributes(attributes: Attributes): this {\n for (const key in attributes) {\n if (Object.prototype.hasOwnProperty.call(attributes, key)) {\n this.setAttribute(key, attributes[key]);\n }\n }\n return this;\n }\n\n /**\n *\n * @param name Span Name\n * @param [attributesOrStartTime] Span attributes or start time\n * if type is {@type TimeInput} and 3rd param is undefined\n * @param [timeStamp] Specified time stamp for the event\n */\n addEvent(\n name: string,\n attributesOrStartTime?: Attributes | TimeInput,\n timeStamp?: TimeInput\n ): this {\n if (this._isSpanEnded()) return this;\n\n const { eventCountLimit } = this._spanLimits;\n\n if (eventCountLimit === 0) {\n diag.warn('No events allowed.');\n this._droppedEventsCount++;\n return this;\n }\n\n if (\n eventCountLimit !== undefined &&\n this.events.length >= eventCountLimit\n ) {\n if (this._droppedEventsCount === 0) {\n diag.debug('Dropping extra events.');\n }\n this.events.shift();\n this._droppedEventsCount++;\n }\n\n if (isTimeInput(attributesOrStartTime)) {\n if (!isTimeInput(timeStamp)) {\n timeStamp = attributesOrStartTime;\n }\n attributesOrStartTime = undefined;\n }\n\n const sanitized = sanitizeAttributes(attributesOrStartTime);\n const { attributePerEventCountLimit } = this._spanLimits;\n const attributes: Attributes = {};\n let droppedAttributesCount = 0;\n let eventAttributesCount = 0;\n\n for (const attr in sanitized) {\n if (!Object.prototype.hasOwnProperty.call(sanitized, attr)) {\n continue;\n }\n const attrVal = sanitized[attr];\n if (\n attributePerEventCountLimit !== undefined &&\n eventAttributesCount >= attributePerEventCountLimit\n ) {\n droppedAttributesCount++;\n continue;\n }\n attributes[attr] = this._truncateToSize(attrVal!);\n eventAttributesCount++;\n }\n\n this.events.push({\n name,\n attributes,\n time: this._getTime(timeStamp),\n droppedAttributesCount,\n });\n return this;\n }\n\n addLink(link: Link): this {\n if (this._isSpanEnded()) return this;\n\n const { linkCountLimit } = this._spanLimits;\n\n if (linkCountLimit === 0) {\n this._droppedLinksCount++;\n return this;\n }\n\n if (linkCountLimit !== undefined && this.links.length >= linkCountLimit) {\n if (this._droppedLinksCount === 0) {\n diag.debug('Dropping extra links.');\n }\n this.links.shift();\n this._droppedLinksCount++;\n }\n\n const { attributePerLinkCountLimit } = this._spanLimits;\n const sanitized = sanitizeAttributes(link.attributes);\n const attributes: Attributes = {};\n let droppedAttributesCount = 0;\n let linkAttributesCount = 0;\n\n for (const attr in sanitized) {\n if (!Object.prototype.hasOwnProperty.call(sanitized, attr)) {\n continue;\n }\n const attrVal = sanitized[attr];\n if (\n attributePerLinkCountLimit !== undefined &&\n linkAttributesCount >= attributePerLinkCountLimit\n ) {\n droppedAttributesCount++;\n continue;\n }\n attributes[attr] = this._truncateToSize(attrVal!);\n linkAttributesCount++;\n }\n\n const processedLink: Link = { context: link.context };\n if (linkAttributesCount > 0) {\n processedLink.attributes = attributes;\n }\n if (droppedAttributesCount > 0) {\n processedLink.droppedAttributesCount = droppedAttributesCount;\n }\n\n this.links.push(processedLink);\n return this;\n }\n\n addLinks(links: Link[]): this {\n for (const link of links) {\n this.addLink(link);\n }\n return this;\n }\n\n setStatus(status: SpanStatus): this {\n if (this._isSpanEnded()) return this;\n if (status.code === SpanStatusCode.UNSET) return this;\n if (this.status.code === SpanStatusCode.OK) return this;\n\n const newStatus: SpanStatus = { code: status.code };\n\n // When using try-catch, the caught \"error\" is of type `any`. When then assigning `any` to `status.message`,\n // TypeScript will not error. While this can happen during use of any API, it is more common on Span#setStatus()\n // as it's likely used in a catch-block. Therefore, we validate if `status.message` is actually a string, null, or\n // undefined to avoid an incorrect type causing issues downstream.\n if (status.code === SpanStatusCode.ERROR) {\n if (typeof status.message === 'string') {\n newStatus.message = status.message;\n } else if (status.message != null) {\n diag.warn(\n `Dropping invalid status.message of type '${typeof status.message}', expected 'string'`\n );\n }\n }\n\n this.status = newStatus;\n return this;\n }\n\n updateName(name: string): this {\n if (this._isSpanEnded()) return this;\n this.name = name;\n return this;\n }\n\n end(endTime?: TimeInput): void {\n if (this._isSpanEnded()) {\n diag.error(\n `${this.name} ${this._spanContext.traceId}-${this._spanContext.spanId} - You can only call end() on a span once.`\n );\n return;\n }\n this.endTime = this._getTime(endTime);\n this._duration = hrTimeDuration(this.startTime, this.endTime);\n\n if (this._duration[0] < 0) {\n diag.warn(\n 'Inconsistent start and end time, startTime > endTime. Setting span duration to 0ms.',\n this.startTime,\n this.endTime\n );\n this.endTime = this.startTime.slice() as HrTime;\n this._duration = [0, 0];\n }\n\n if (this._droppedEventsCount > 0) {\n diag.warn(\n `Dropped ${this._droppedEventsCount} events because eventCountLimit reached`\n );\n }\n if (this._droppedLinksCount > 0) {\n diag.warn(\n `Dropped ${this._droppedLinksCount} links because linkCountLimit reached`\n );\n }\n if (this._spanProcessor.onEnding) {\n this._spanProcessor.onEnding(this);\n }\n\n this._recordEndMetrics?.();\n this._ended = true;\n this._spanProcessor.onEnd(this);\n }\n\n private _getTime(inp?: TimeInput): HrTime {\n if (typeof inp === 'number' && inp <= otperformance.now()) {\n // must be a performance timestamp\n // apply correction and convert to hrtime\n return hrTime(inp + this._performanceOffset);\n }\n\n if (typeof inp === 'number') {\n return millisToHrTime(inp);\n }\n\n if (inp instanceof Date) {\n return millisToHrTime(inp.getTime());\n }\n\n if (isTimeInputHrTime(inp)) {\n return inp;\n }\n\n if (this._startTimeProvided) {\n // if user provided a time for the start manually\n // we can't use duration to calculate event/end times\n return millisToHrTime(Date.now());\n }\n\n const msDuration = otperformance.now() - this._performanceStartTime;\n return addHrTimes(this.startTime, millisToHrTime(msDuration));\n }\n\n isRecording(): boolean {\n return this._ended === false;\n }\n\n recordException(exception: Exception, time?: TimeInput): void {\n const attributes: Attributes = {};\n if (typeof exception === 'string') {\n attributes[ATTR_EXCEPTION_MESSAGE] = exception;\n } else if (exception) {\n if (exception.code) {\n attributes[ATTR_EXCEPTION_TYPE] = exception.code.toString();\n } else if (exception.name) {\n attributes[ATTR_EXCEPTION_TYPE] = exception.name;\n }\n if (exception.message) {\n attributes[ATTR_EXCEPTION_MESSAGE] = exception.message;\n }\n if (exception.stack) {\n attributes[ATTR_EXCEPTION_STACKTRACE] = exception.stack;\n }\n }\n\n // these are minimum requirements from spec\n if (attributes[ATTR_EXCEPTION_TYPE] || attributes[ATTR_EXCEPTION_MESSAGE]) {\n this.addEvent(ExceptionEventName, attributes, time);\n } else {\n diag.warn(`Failed to record an exception ${exception}`);\n }\n }\n\n get duration(): HrTime {\n return this._duration;\n }\n\n get ended(): boolean {\n return this._ended;\n }\n\n get droppedAttributesCount(): number {\n return this._droppedAttributesCount;\n }\n\n get droppedEventsCount(): number {\n return this._droppedEventsCount;\n }\n\n get droppedLinksCount(): number {\n return this._droppedLinksCount;\n }\n\n private _isSpanEnded(): boolean {\n if (this._ended) {\n const error = new Error(\n `Operation attempted on ended Span {traceId: ${this._spanContext.traceId}, spanId: ${this._spanContext.spanId}}`\n );\n\n diag.warn(\n `Cannot execute the operation on ended Span {traceId: ${this._spanContext.traceId}, spanId: ${this._spanContext.spanId}}`,\n error\n );\n }\n return this._ended;\n }\n\n // Utility function to truncate given value within size\n // for value type of string, will truncate to given limit\n // for type of non-string, will return same value\n private _truncateToLimitUtil(value: string, limit: number): string {\n if (value.length <= limit) {\n return value;\n }\n return value.substring(0, limit);\n }\n\n /**\n * If the given attribute value is of type string and has more characters than given {@code attributeValueLengthLimit} then\n * return string with truncated to {@code attributeValueLengthLimit} characters\n *\n * If the given attribute value is array of strings then\n * return new array of strings with each element truncated to {@code attributeValueLengthLimit} characters\n *\n * Otherwise return same Attribute {@code value}\n *\n * @param value Attribute value\n * @returns truncated attribute value if required, otherwise same value\n */\n private _truncateToSize(value: AttributeValue): AttributeValue {\n const limit = this._attributeValueLengthLimit;\n // Check limit\n if (limit <= 0) {\n // Negative values are invalid, so do not truncate\n diag.warn(`Attribute value limit must be positive, got ${limit}`);\n return value;\n }\n\n // String\n if (typeof value === 'string') {\n return this._truncateToLimitUtil(value, limit);\n }\n\n // Array of strings\n if (Array.isArray(value)) {\n return (value as []).map(val =>\n typeof val === 'string' ? this._truncateToLimitUtil(val, limit) : val\n );\n }\n\n // Other types, no need to apply value length limit\n return value;\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { isValidTraceId } from '@opentelemetry/api';\nimport type { Sampler, SamplingResult } from '../Sampler';\nimport { SamplingDecision } from '../Sampler';\n\n/** Sampler that samples a given fraction of traces based of trace id deterministically. */\nexport class TraceIdRatioBasedSampler implements Sampler {\n private readonly _ratio;\n private _upperBound: number;\n\n constructor(ratio = 0) {\n this._ratio = this._normalize(ratio);\n this._upperBound = Math.floor(this._ratio * 0xffffffff);\n }\n\n shouldSample(context: unknown, traceId: string): SamplingResult {\n return {\n decision:\n isValidTraceId(traceId) && this._accumulate(traceId) < this._upperBound\n ? SamplingDecision.RECORD_AND_SAMPLED\n : SamplingDecision.NOT_RECORD,\n };\n }\n\n toString(): string {\n return `TraceIdRatioBased{${this._ratio}}`;\n }\n\n private _normalize(ratio: number): number {\n if (typeof ratio !== 'number' || isNaN(ratio)) return 0;\n return ratio >= 1 ? 1 : ratio <= 0 ? 0 : ratio;\n }\n\n private _accumulate(traceId: string): number {\n let accumulation = 0;\n for (let i = 0; i < traceId.length / 8; i++) {\n const pos = i * 8;\n const part = parseInt(traceId.slice(pos, pos + 8), 16);\n accumulation = (accumulation ^ part) >>> 0;\n }\n return accumulation;\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Sampler, SamplingResult } from '../Sampler';\nimport { SamplingDecision } from '../Sampler';\n\n/** Sampler that samples all traces. */\nexport class AlwaysOnSampler implements Sampler {\n shouldSample(): SamplingResult {\n return {\n decision: SamplingDecision.RECORD_AND_SAMPLED,\n };\n }\n\n toString(): string {\n return 'AlwaysOnSampler';\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Context } from '@opentelemetry/api';\nimport { TraceFlags } from '@opentelemetry/api';\nimport {\n internal,\n ExportResultCode,\n globalErrorHandler,\n BindOnceFuture,\n} from '@opentelemetry/core';\nimport type { Span } from '../Span';\nimport type { SpanProcessor } from '../SpanProcessor';\nimport type { ReadableSpan } from './ReadableSpan';\nimport type { SpanExporter } from './SpanExporter';\n\n/**\n * An implementation of the {@link SpanProcessor} that converts the {@link Span}\n * to {@link ReadableSpan} and passes it to the configured exporter.\n *\n * Only spans that are sampled are converted.\n *\n * NOTE: This {@link SpanProcessor} exports every ended span individually instead of batching spans together, which causes significant performance overhead with most exporters. For production use, please consider using the {@link BatchSpanProcessor} instead.\n */\nexport class SimpleSpanProcessor implements SpanProcessor {\n private readonly _exporter: SpanExporter;\n private _shutdownOnce: BindOnceFuture;\n private _pendingExports: Set>;\n\n constructor(exporter: SpanExporter) {\n this._exporter = exporter;\n this._shutdownOnce = new BindOnceFuture(this._shutdown, this);\n this._pendingExports = new Set>();\n }\n\n async forceFlush(): Promise {\n await Promise.all(Array.from(this._pendingExports));\n if (this._exporter.forceFlush) {\n await this._exporter.forceFlush();\n }\n }\n\n onStart(_span: Span, _parentContext: Context): void {}\n\n onEnd(span: ReadableSpan): void {\n if (this._shutdownOnce.isCalled) {\n return;\n }\n\n if ((span.spanContext().traceFlags & TraceFlags.SAMPLED) === 0) {\n return;\n }\n\n const pendingExport = this._doExport(span).catch(err =>\n globalErrorHandler(err)\n );\n // Enqueue this export to the pending list so it can be flushed by the user.\n this._pendingExports.add(pendingExport);\n void pendingExport.finally(() =>\n this._pendingExports.delete(pendingExport)\n );\n }\n\n private async _doExport(span: ReadableSpan): Promise {\n if (span.resource.asyncAttributesPending) {\n // Ensure resource is fully resolved before exporting.\n await span.resource.waitForAsyncAttributes?.();\n }\n\n const result = await internal._export(this._exporter, [span]);\n if (result.code !== ExportResultCode.SUCCESS) {\n throw (\n result.error ??\n new Error(`SimpleSpanProcessor: span export failed (status ${result})`)\n );\n }\n }\n\n shutdown(): Promise {\n return this._shutdownOnce.call();\n }\n\n private _shutdown(): Promise {\n return this._exporter.shutdown();\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Context } from '@opentelemetry/api';\nimport { globalErrorHandler } from '@opentelemetry/core';\nimport type { ReadableSpan } from './export/ReadableSpan';\nimport type { Span } from './Span';\nimport type { SpanProcessor } from './SpanProcessor';\n\n/**\n * Implementation of the {@link SpanProcessor} that simply forwards all\n * received events to a list of {@link SpanProcessor}s.\n */\nexport class MultiSpanProcessor implements SpanProcessor {\n private readonly _spanProcessors: SpanProcessor[];\n constructor(spanProcessors: SpanProcessor[]) {\n this._spanProcessors = spanProcessors;\n }\n\n forceFlush(): Promise {\n const promises: Promise[] = [];\n\n for (const spanProcessor of this._spanProcessors) {\n promises.push(spanProcessor.forceFlush());\n }\n return new Promise(resolve => {\n Promise.all(promises)\n .then(() => {\n resolve();\n })\n .catch(error => {\n globalErrorHandler(\n error || new Error('MultiSpanProcessor: forceFlush failed')\n );\n resolve();\n });\n });\n }\n\n onStart(span: Span, context: Context): void {\n for (const spanProcessor of this._spanProcessors) {\n spanProcessor.onStart(span, context);\n }\n }\n\n onEnding(span: Span): void {\n for (const spanProcessor of this._spanProcessors) {\n if (spanProcessor.onEnding) {\n spanProcessor.onEnding(span);\n }\n }\n }\n\n onEnd(span: ReadableSpan): void {\n for (const spanProcessor of this._spanProcessors) {\n spanProcessor.onEnd(span);\n }\n }\n\n shutdown(): Promise {\n const promises: Promise[] = [];\n\n for (const spanProcessor of this._spanProcessors) {\n promises.push(spanProcessor.shutdown());\n }\n return new Promise((resolve, reject) => {\n Promise.all(promises).then(() => {\n resolve();\n }, reject);\n });\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// Event name definitions\nexport const ExceptionEventName = 'exception';\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { Context } from '@opentelemetry/api';\nimport type { ReadableSpan } from './ReadableSpan';\nimport type { Span } from '../Span';\nimport type { SpanProcessor } from '../SpanProcessor';\n\n/** No-op implementation of SpanProcessor */\nexport class NoopSpanProcessor implements SpanProcessor {\n onStart(_span: Span, _context: Context): void {}\n onEnd(_span: ReadableSpan): void {}\n shutdown(): Promise {\n return Promise.resolve();\n }\n forceFlush(): Promise {\n return Promise.resolve();\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\nimport type {\n Counter,\n Meter,\n SpanContext,\n UpDownCounter,\n} from '@opentelemetry/api';\nimport { SamplingDecision } from './Sampler';\nimport {\n ATTR_OTEL_SPAN_PARENT_ORIGIN,\n ATTR_OTEL_SPAN_SAMPLING_RESULT,\n METRIC_OTEL_SDK_SPAN_LIVE,\n METRIC_OTEL_SDK_SPAN_STARTED,\n} from './semconv';\n\n/**\n * Generates `otel.sdk.span.*` metrics.\n * https://opentelemetry.io/docs/specs/semconv/otel/sdk-metrics/#span-metrics\n */\nexport class TracerMetrics {\n private readonly startedSpans: Counter;\n private readonly liveSpans: UpDownCounter;\n\n constructor(meter: Meter) {\n this.startedSpans = meter.createCounter(METRIC_OTEL_SDK_SPAN_STARTED, {\n unit: '{span}',\n description: 'The number of created spans.',\n });\n\n this.liveSpans = meter.createUpDownCounter(METRIC_OTEL_SDK_SPAN_LIVE, {\n unit: '{span}',\n description: 'The number of currently live spans.',\n });\n }\n\n startSpan(\n parentSpanCtx: SpanContext | undefined,\n samplingDecision: SamplingDecision\n ): () => void {\n const samplingDecisionStr = samplingDecisionToString(samplingDecision);\n this.startedSpans.add(1, {\n [ATTR_OTEL_SPAN_PARENT_ORIGIN]: parentOrigin(parentSpanCtx),\n [ATTR_OTEL_SPAN_SAMPLING_RESULT]: samplingDecisionStr,\n });\n\n if (samplingDecision === SamplingDecision.NOT_RECORD) {\n return () => {};\n }\n\n const liveSpanAttributes = {\n [ATTR_OTEL_SPAN_SAMPLING_RESULT]: samplingDecisionStr,\n };\n this.liveSpans.add(1, liveSpanAttributes);\n return () => {\n this.liveSpans.add(-1, liveSpanAttributes);\n };\n }\n}\n\nfunction parentOrigin(parentSpanContext: SpanContext | undefined): string {\n if (!parentSpanContext) {\n return 'none';\n }\n if (parentSpanContext.isRemote) {\n return 'remote';\n }\n return 'local';\n}\n\nfunction samplingDecisionToString(decision: SamplingDecision): string {\n switch (decision) {\n case SamplingDecision.RECORD_AND_SAMPLED:\n return 'RECORD_AND_SAMPLE';\n case SamplingDecision.RECORD:\n return 'RECORD_ONLY';\n case SamplingDecision.NOT_RECORD:\n return 'DROP';\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n Context,\n Link,\n Attributes,\n SpanKind,\n TraceState,\n} from '@opentelemetry/api';\n\n/**\n * A sampling decision that determines how a {@link Span} will be recorded\n * and collected.\n */\nexport enum SamplingDecision {\n /**\n * `Span.isRecording() === false`, span will not be recorded and all events\n * and attributes will be dropped.\n */\n NOT_RECORD,\n /**\n * `Span.isRecording() === true`, but `Sampled` flag in {@link TraceFlags}\n * MUST NOT be set.\n */\n RECORD,\n /**\n * `Span.isRecording() === true` AND `Sampled` flag in {@link TraceFlags}\n * MUST be set.\n */\n RECORD_AND_SAMPLED,\n}\n\n/**\n * A sampling result contains a decision for a {@link Span} and additional\n * attributes the sampler would like to added to the Span.\n */\nexport interface SamplingResult {\n /**\n * A sampling decision, refer to {@link SamplingDecision} for details.\n */\n decision: SamplingDecision;\n /**\n * The list of attributes returned by SamplingResult MUST be immutable.\n * Caller may call {@link Sampler}.shouldSample any number of times and\n * can safely cache the returned value.\n */\n attributes?: Readonly;\n /**\n * A {@link TraceState} that will be associated with the {@link Span} through\n * the new {@link SpanContext}. Samplers SHOULD return the TraceState from\n * the passed-in {@link Context} if they do not intend to change it. Leaving\n * the value undefined will also leave the TraceState unchanged.\n */\n traceState?: TraceState;\n}\n\n/**\n * This interface represent a sampler. Sampling is a mechanism to control the\n * noise and overhead introduced by OpenTelemetry by reducing the number of\n * samples of traces collected and sent to the backend.\n */\nexport interface Sampler {\n /**\n * Checks whether span needs to be created and tracked.\n *\n * @param context Parent Context which may contain a span.\n * @param traceId of the span to be created. It can be different from the\n * traceId in the {@link SpanContext}. Typically in situations when the\n * span to be created starts a new trace.\n * @param spanName of the span to be created.\n * @param spanKind of the span to be created.\n * @param attributes Initial set of Attributes for the Span being constructed.\n * @param links Collection of links that will be associated with the Span to\n * be created. Typically useful for batch operations.\n * @returns a {@link SamplingResult}.\n */\n shouldSample(\n context: Context,\n traceId: string,\n spanName: string,\n spanKind: SpanKind,\n attributes: Attributes,\n links: Link[]\n ): SamplingResult;\n\n /** Returns the sampler name or short description with the configuration. */\n toString(): string;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/*\n * This file contains a copy of unstable semantic convention definitions\n * used by this package.\n * @see https://github.com/open-telemetry/opentelemetry-js/tree/main/semantic-conventions#unstable-semconv\n */\n\n/**\n * Determines whether the span has a parent span, and if so, [whether it is a remote parent](https://opentelemetry.io/docs/specs/otel/trace/api/#isremote)\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_OTEL_SPAN_PARENT_ORIGIN = 'otel.span.parent.origin' as const;\n\n/**\n * The result value of the sampler for this span\n *\n * @experimental This attribute is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const ATTR_OTEL_SPAN_SAMPLING_RESULT =\n 'otel.span.sampling_result' as const;\n\n/**\n * The number of created spans with `recording=true` for which the end operation has not been called yet.\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const METRIC_OTEL_SDK_SPAN_LIVE = 'otel.sdk.span.live' as const;\n\n/**\n * The number of created spans.\n *\n * @note Implementations **MUST** record this metric for all spans, even for non-recording ones.\n *\n * @experimental This metric is experimental and is subject to breaking changes in minor releases of `@opentelemetry/semantic-conventions`.\n */\nexport const METRIC_OTEL_SDK_SPAN_STARTED = 'otel.sdk.span.started' as const;\n","/** If this attribute is true, it means that the parent is a remote span. */\nexport const SEMANTIC_ATTRIBUTE_SENTRY_PARENT_IS_REMOTE = 'sentry.parentIsRemote';\n\n// These are not standardized yet, but used by the graphql instrumentation\nexport const SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION = 'sentry.graphql.operation';\n","import type { ReadableSpan } from '@opentelemetry/sdk-trace-base';\n\n/**\n * Get the parent span id from a span.\n * In OTel v1, the parent span id is accessed as `parentSpanId`\n * In OTel v2, the parent span id is accessed as `spanId` on the `parentSpanContext`\n */\nexport function getParentSpanId(span: ReadableSpan): string | undefined {\n if ('parentSpanId' in span) {\n return span.parentSpanId as string | undefined;\n } else if ('parentSpanContext' in span) {\n return (span.parentSpanContext as { spanId?: string } | undefined)?.spanId;\n }\n\n return undefined;\n}\n","import type { SpanKind, SpanStatus } from '@opentelemetry/api';\nimport type { ReadableSpan, TimedEvent } from '@opentelemetry/sdk-trace-base';\nimport type { AbstractSpan } from '../types';\nimport { getParentSpanId } from './getParentSpanId';\n\n/**\n * Check if a given span has attributes.\n * This is necessary because the base `Span` type does not have attributes,\n * so in places where we are passed a generic span, we need to check if we want to access them.\n */\nexport function spanHasAttributes(\n span: SpanType,\n): span is SpanType & { attributes: ReadableSpan['attributes'] } {\n const castSpan = span as ReadableSpan;\n return !!castSpan.attributes && typeof castSpan.attributes === 'object';\n}\n\n/**\n * Check if a given span has a kind.\n * This is necessary because the base `Span` type does not have a kind,\n * so in places where we are passed a generic span, we need to check if we want to access it.\n */\nexport function spanHasKind(span: SpanType): span is SpanType & { kind: SpanKind } {\n const castSpan = span as ReadableSpan;\n return typeof castSpan.kind === 'number';\n}\n\n/**\n * Check if a given span has a status.\n * This is necessary because the base `Span` type does not have a status,\n * so in places where we are passed a generic span, we need to check if we want to access it.\n */\nexport function spanHasStatus(\n span: SpanType,\n): span is SpanType & { status: SpanStatus } {\n const castSpan = span as ReadableSpan;\n return !!castSpan.status;\n}\n\n/**\n * Check if a given span has a name.\n * This is necessary because the base `Span` type does not have a name,\n * so in places where we are passed a generic span, we need to check if we want to access it.\n */\nexport function spanHasName(span: SpanType): span is SpanType & { name: string } {\n const castSpan = span as ReadableSpan;\n return !!castSpan.name;\n}\n\n/**\n * Check if a given span has a kind.\n * This is necessary because the base `Span` type does not have a kind,\n * so in places where we are passed a generic span, we need to check if we want to access it.\n */\nexport function spanHasParentId(\n span: SpanType,\n): span is SpanType & { parentSpanId: string } {\n const castSpan = span as ReadableSpan;\n return !!getParentSpanId(castSpan);\n}\n\n/**\n * Check if a given span has events.\n * This is necessary because the base `Span` type does not have events,\n * so in places where we are passed a generic span, we need to check if we want to access it.\n */\nexport function spanHasEvents(\n span: SpanType,\n): span is SpanType & { events: TimedEvent[] } {\n const castSpan = span as ReadableSpan;\n return Array.isArray(castSpan.events);\n}\n","import type { Span } from '@opentelemetry/api';\nimport type { ReadableSpan } from '@opentelemetry/sdk-trace-base';\nimport {\n ATTR_HTTP_REQUEST_METHOD,\n ATTR_URL_FULL,\n SEMATTRS_HTTP_METHOD,\n SEMATTRS_HTTP_URL,\n} from '@opentelemetry/semantic-conventions';\nimport type { SanitizedRequestData } from '@sentry/core';\nimport { getSanitizedUrlString, parseUrl } from '@sentry/core';\nimport { spanHasAttributes } from './spanTypes';\n\n/**\n * Get sanitizied request data from an OTEL span.\n */\nexport function getRequestSpanData(span: Span | ReadableSpan): Partial {\n // The base `Span` type has no `attributes`, so we need to guard here against that\n if (!spanHasAttributes(span)) {\n return {};\n }\n\n // eslint-disable-next-line deprecation/deprecation\n const maybeUrlAttribute = (span.attributes[ATTR_URL_FULL] || span.attributes[SEMATTRS_HTTP_URL]) as\n | string\n | undefined;\n\n const data: Partial = {\n url: maybeUrlAttribute,\n // eslint-disable-next-line deprecation/deprecation\n 'http.method': (span.attributes[ATTR_HTTP_REQUEST_METHOD] || span.attributes[SEMATTRS_HTTP_METHOD]) as\n | string\n | undefined,\n };\n\n // Default to GET if URL is set but method is not\n if (!data['http.method'] && data.url) {\n data['http.method'] = 'GET';\n }\n\n try {\n if (typeof maybeUrlAttribute === 'string') {\n const url = parseUrl(maybeUrlAttribute);\n\n data.url = getSanitizedUrlString(url);\n\n if (url.search) {\n data['http.query'] = url.search;\n }\n if (url.hash) {\n data['http.fragment'] = url.hash;\n }\n }\n } catch {\n // ignore\n }\n\n return data;\n}\n","import type { Tracer } from '@opentelemetry/api';\nimport { trace } from '@opentelemetry/api';\nimport type { BasicTracerProvider } from '@opentelemetry/sdk-trace-base';\nimport type { Client } from '@sentry/core';\nimport { SDK_VERSION } from '@sentry/core';\nimport type { OpenTelemetryClient as OpenTelemetryClientInterface } from '../types';\n\n// Typescript complains if we do not use `...args: any[]` for the mixin, with:\n// A mixin class must have a constructor with a single rest parameter of type 'any[]'.ts(2545)\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * Wrap an Client class with things we need for OpenTelemetry support.\n * Make sure that the Client class passed in is non-abstract!\n *\n * Usage:\n * const OpenTelemetryClient = getWrappedClientClass(NodeClient);\n * const client = new OpenTelemetryClient(options);\n */\nexport function wrapClientClass<\n ClassConstructor extends new (...args: any[]) => Client,\n WrappedClassConstructor extends new (...args: any[]) => Client & OpenTelemetryClientInterface,\n>(ClientClass: ClassConstructor): WrappedClassConstructor {\n // @ts-expect-error We just assume that this is non-abstract, if you pass in an abstract class this would make it non-abstract\n class OpenTelemetryClient extends ClientClass implements OpenTelemetryClientInterface {\n public traceProvider: BasicTracerProvider | undefined;\n private _tracer: Tracer | undefined;\n\n public constructor(...args: any[]) {\n super(...args);\n }\n\n /** Get the OTEL tracer. */\n public get tracer(): Tracer {\n if (this._tracer) {\n return this._tracer;\n }\n\n const name = '@sentry/opentelemetry';\n const version = SDK_VERSION;\n const tracer = trace.getTracer(name, version);\n this._tracer = tracer;\n\n return tracer;\n }\n\n /**\n * @inheritDoc\n */\n public async flush(timeout?: number): Promise {\n const provider = this.traceProvider;\n await provider?.forceFlush();\n return super.flush(timeout);\n }\n }\n\n return OpenTelemetryClient as unknown as WrappedClassConstructor;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n","import { SpanKind } from '@opentelemetry/api';\nimport type { AbstractSpan } from '../types';\nimport { spanHasKind } from './spanTypes';\n\n/**\n * Get the span kind from a span.\n * For whatever reason, this is not public API on the generic \"Span\" type,\n * so we need to check if we actually have a `SDKTraceBaseSpan` where we can fetch this from.\n * Otherwise, we fall back to `SpanKind.INTERNAL`.\n */\nexport function getSpanKind(span: AbstractSpan): SpanKind {\n if (spanHasKind(span)) {\n return span.kind;\n }\n\n return SpanKind.INTERNAL;\n}\n","import { createContextKey } from '@opentelemetry/api';\n\nexport const SENTRY_TRACE_HEADER = 'sentry-trace';\nexport const SENTRY_BAGGAGE_HEADER = 'baggage';\n\nexport const SENTRY_TRACE_STATE_DSC = 'sentry.dsc';\nexport const SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING = 'sentry.sampled_not_recording';\nexport const SENTRY_TRACE_STATE_URL = 'sentry.url';\nexport const SENTRY_TRACE_STATE_SAMPLE_RAND = 'sentry.sample_rand';\nexport const SENTRY_TRACE_STATE_SAMPLE_RATE = 'sentry.sample_rate';\n\nexport const SENTRY_SCOPES_CONTEXT_KEY = createContextKey('sentry_scopes');\n\nexport const SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY = createContextKey('sentry_fork_isolation_scope');\n\nexport const SENTRY_FORK_SET_SCOPE_CONTEXT_KEY = createContextKey('sentry_fork_set_scope');\n\nexport const SENTRY_FORK_SET_ISOLATION_SCOPE_CONTEXT_KEY = createContextKey('sentry_fork_set_isolation_scope');\n","import type { Context } from '@opentelemetry/api';\nimport type { Scope } from '@sentry/core';\nimport { addNonEnumerableProperty } from '@sentry/core';\nimport { SENTRY_SCOPES_CONTEXT_KEY } from '../constants';\nimport type { CurrentScopes } from '../types';\n\nconst SCOPE_CONTEXT_FIELD = '_scopeContext';\n\n/**\n * Try to get the current scopes from the given OTEL context.\n * This requires a Context Manager that was wrapped with getWrappedContextManager.\n */\nexport function getScopesFromContext(context: Context): CurrentScopes | undefined {\n return context.getValue(SENTRY_SCOPES_CONTEXT_KEY) as CurrentScopes | undefined;\n}\n\n/**\n * Set the current scopes on an OTEL context.\n * This will return a forked context with the Propagation Context set.\n */\nexport function setScopesOnContext(context: Context, scopes: CurrentScopes): Context {\n return context.setValue(SENTRY_SCOPES_CONTEXT_KEY, scopes);\n}\n\n/**\n * Set the context on the scope so we can later look it up.\n * We need this to get the context from the scope in the `trace` functions.\n */\nexport function setContextOnScope(scope: Scope, context: Context): void {\n addNonEnumerableProperty(scope, SCOPE_CONTEXT_FIELD, context);\n}\n\n/**\n * Get the context related to a scope.\n */\nexport function getContextFromScope(scope: Scope): Context | undefined {\n return (scope as { [SCOPE_CONTEXT_FIELD]?: Context })[SCOPE_CONTEXT_FIELD];\n}\n","import { ATTR_URL_FULL, SEMATTRS_HTTP_URL } from '@opentelemetry/semantic-conventions';\nimport { getClient, isSentryRequestUrl } from '@sentry/core';\nimport type { AbstractSpan } from '../types';\nimport { spanHasAttributes } from './spanTypes';\n\n/**\n *\n * @param otelSpan Checks whether a given OTEL Span is an http request to sentry.\n * @returns boolean\n */\nexport function isSentryRequestSpan(span: AbstractSpan): boolean {\n if (!spanHasAttributes(span)) {\n return false;\n }\n\n const { attributes } = span;\n\n // `ATTR_URL_FULL` is the new attribute, but we still support the old one, `ATTR_HTTP_URL`, for now.\n // eslint-disable-next-line deprecation/deprecation\n const httpUrl = attributes[SEMATTRS_HTTP_URL] || attributes[ATTR_URL_FULL];\n\n if (!httpUrl) {\n return false;\n }\n\n return isSentryRequestUrl(httpUrl.toString(), getClient());\n}\n","import type { SpanContext } from '@opentelemetry/api';\nimport { TraceFlags } from '@opentelemetry/api';\nimport { baggageHeaderToDynamicSamplingContext } from '@sentry/core';\nimport { SENTRY_TRACE_STATE_DSC, SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING } from '../constants';\n\n/**\n * OpenTelemetry only knows about SAMPLED or NONE decision,\n * but for us it is important to differentiate between unset and unsampled.\n *\n * Both of these are identified as `traceFlags === TracegFlags.NONE`,\n * but we additionally look at a special trace state to differentiate between them.\n */\nexport function getSamplingDecision(spanContext: SpanContext): boolean | undefined {\n const { traceFlags, traceState } = spanContext;\n\n const sampledNotRecording = traceState ? traceState.get(SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING) === '1' : false;\n\n // If trace flag is `SAMPLED`, we interpret this as sampled\n // If it is `NONE`, it could mean either it was sampled to be not recorder, or that it was not sampled at all\n // For us this is an important difference, sow e look at the SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING\n // to identify which it is\n if (traceFlags === TraceFlags.SAMPLED) {\n return true;\n }\n\n if (sampledNotRecording) {\n return false;\n }\n\n // Fall back to DSC as a last resort, that may also contain `sampled`...\n const dscString = traceState ? traceState.get(SENTRY_TRACE_STATE_DSC) : undefined;\n const dsc = dscString ? baggageHeaderToDynamicSamplingContext(dscString) : undefined;\n\n if (dsc?.sampled === 'true') {\n return true;\n }\n if (dsc?.sampled === 'false') {\n return false;\n }\n\n return undefined;\n}\n","import type { Attributes, AttributeValue } from '@opentelemetry/api';\nimport { SpanKind } from '@opentelemetry/api';\nimport {\n ATTR_DB_SYSTEM_NAME,\n ATTR_HTTP_REQUEST_METHOD,\n ATTR_HTTP_ROUTE,\n ATTR_URL_FULL,\n SEMATTRS_DB_STATEMENT,\n SEMATTRS_DB_SYSTEM,\n SEMATTRS_FAAS_TRIGGER,\n SEMATTRS_HTTP_METHOD,\n SEMATTRS_HTTP_TARGET,\n SEMATTRS_HTTP_URL,\n SEMATTRS_MESSAGING_SYSTEM,\n SEMATTRS_RPC_SERVICE,\n} from '@opentelemetry/semantic-conventions';\nimport type { SpanAttributes, TransactionSource } from '@sentry/core';\nimport {\n getSanitizedUrlString,\n parseUrl,\n SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME,\n SEMANTIC_ATTRIBUTE_SENTRY_OP,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n stripUrlQueryAndFragment,\n} from '@sentry/core';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION } from '../semanticAttributes';\nimport type { AbstractSpan } from '../types';\nimport { getSpanKind } from './getSpanKind';\nimport { spanHasAttributes, spanHasName } from './spanTypes';\n\ninterface SpanDescription {\n op: string | undefined;\n description: string;\n source: TransactionSource;\n data?: Record;\n}\n\n/**\n * Infer the op & description for a set of name, attributes and kind of a span.\n */\nexport function inferSpanData(spanName: string, attributes: SpanAttributes, kind: SpanKind): SpanDescription {\n // if http.method exists, this is an http request span\n // eslint-disable-next-line deprecation/deprecation\n const httpMethod = attributes[ATTR_HTTP_REQUEST_METHOD] || attributes[SEMATTRS_HTTP_METHOD];\n if (httpMethod) {\n return descriptionForHttpMethod({ attributes, name: spanName, kind }, httpMethod);\n }\n\n // eslint-disable-next-line deprecation/deprecation\n const dbSystem = attributes[ATTR_DB_SYSTEM_NAME] || attributes[SEMATTRS_DB_SYSTEM];\n const opIsCache =\n typeof attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] === 'string' &&\n attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP].startsWith('cache.');\n\n // If db.type exists then this is a database call span\n // If the Redis DB is used as a cache, the span description should not be changed\n if (dbSystem && !opIsCache) {\n return descriptionForDbSystem({ attributes, name: spanName });\n }\n\n const customSourceOrRoute = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] === 'custom' ? 'custom' : 'route';\n\n // If rpc.service exists then this is a rpc call span.\n // eslint-disable-next-line deprecation/deprecation\n const rpcService = attributes[SEMATTRS_RPC_SERVICE];\n if (rpcService) {\n return {\n ...getUserUpdatedNameAndSource(spanName, attributes, 'route'),\n op: 'rpc',\n };\n }\n\n // If messaging.system exists then this is a messaging system span.\n // eslint-disable-next-line deprecation/deprecation\n const messagingSystem = attributes[SEMATTRS_MESSAGING_SYSTEM];\n if (messagingSystem) {\n return {\n ...getUserUpdatedNameAndSource(spanName, attributes, customSourceOrRoute),\n op: 'message',\n };\n }\n\n // If faas.trigger exists then this is a function as a service span.\n // eslint-disable-next-line deprecation/deprecation\n const faasTrigger = attributes[SEMATTRS_FAAS_TRIGGER];\n if (faasTrigger) {\n return {\n ...getUserUpdatedNameAndSource(spanName, attributes, customSourceOrRoute),\n op: faasTrigger.toString(),\n };\n }\n\n return { op: undefined, description: spanName, source: 'custom' };\n}\n\n/**\n * Extract better op/description from an otel span.\n *\n * Does not overwrite the span name if the source is already set to custom to ensure\n * that user-updated span names are preserved. In this case, we only adjust the op but\n * leave span description and source unchanged.\n *\n * Based on https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/7422ce2a06337f68a59b552b8c5a2ac125d6bae5/exporter/sentryexporter/sentry_exporter.go#L306\n */\nexport function parseSpanDescription(span: AbstractSpan): SpanDescription {\n const attributes = spanHasAttributes(span) ? span.attributes : {};\n const name = spanHasName(span) ? span.name : '';\n const kind = getSpanKind(span);\n\n return inferSpanData(name, attributes, kind);\n}\n\nfunction descriptionForDbSystem({ attributes, name }: { attributes: Attributes; name: string }): SpanDescription {\n // if we already have a custom name, we don't overwrite it but only set the op\n const userDefinedName = attributes[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n if (typeof userDefinedName === 'string') {\n return {\n op: 'db',\n description: userDefinedName,\n source: (attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] as TransactionSource) || 'custom',\n };\n }\n\n // if we already have the source set to custom, we don't overwrite the span description but only set the op\n if (attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] === 'custom') {\n return { op: 'db', description: name, source: 'custom' };\n }\n\n // Use DB statement (Ex \"SELECT * FROM table\") if possible as description.\n // eslint-disable-next-line deprecation/deprecation\n const statement = attributes[SEMATTRS_DB_STATEMENT];\n\n const description = statement ? statement.toString() : name;\n\n return { op: 'db', description, source: 'task' };\n}\n\n/** Only exported for tests. */\nexport function descriptionForHttpMethod(\n { name, kind, attributes }: { name: string; attributes: Attributes; kind: SpanKind },\n httpMethod: AttributeValue,\n): SpanDescription {\n const opParts = ['http'];\n\n switch (kind) {\n case SpanKind.CLIENT:\n opParts.push('client');\n break;\n case SpanKind.SERVER:\n opParts.push('server');\n break;\n }\n\n // Spans for HTTP requests we have determined to be prefetch requests will have a `.prefetch` postfix in the op\n if (attributes['sentry.http.prefetch']) {\n opParts.push('prefetch');\n }\n\n const { urlPath, url, query, fragment, hasRoute } = getSanitizedUrl(attributes, kind);\n\n if (!urlPath) {\n return { ...getUserUpdatedNameAndSource(name, attributes), op: opParts.join('.') };\n }\n\n const graphqlOperationsAttribute = attributes[SEMANTIC_ATTRIBUTE_SENTRY_GRAPHQL_OPERATION];\n\n // Ex. GET /api/users\n const baseDescription = `${httpMethod} ${urlPath}`;\n\n // When the http span has a graphql operation, append it to the description\n // We add these in the graphqlIntegration\n const inferredDescription = graphqlOperationsAttribute\n ? `${baseDescription} (${getGraphqlOperationNamesFromAttribute(graphqlOperationsAttribute)})`\n : baseDescription;\n\n // If `httpPath` is a root path, then we can categorize the transaction source as route.\n const inferredSource: TransactionSource = hasRoute || urlPath === '/' ? 'route' : 'url';\n\n const data: Record = {};\n\n if (url) {\n data.url = url;\n }\n if (query) {\n data['http.query'] = query;\n }\n if (fragment) {\n data['http.fragment'] = fragment;\n }\n\n // If the span kind is neither client nor server, we use the original name\n // this infers that somebody manually started this span, in which case we don't want to overwrite the name\n const isClientOrServerKind = kind === SpanKind.CLIENT || kind === SpanKind.SERVER;\n\n // If the span is an auto-span (=it comes from one of our instrumentations),\n // we always want to infer the name\n // this is necessary because some of the auto-instrumentation we use uses kind=INTERNAL\n const origin = attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] || 'manual';\n const isManualSpan = !`${origin}`.startsWith('auto');\n\n // If users (or in very rare occasions we) set the source to custom, we don't overwrite the name\n const alreadyHasCustomSource = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] === 'custom';\n const customSpanName = attributes[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n\n const useInferredDescription =\n !alreadyHasCustomSource && customSpanName == null && (isClientOrServerKind || !isManualSpan);\n\n const { description, source } = useInferredDescription\n ? { description: inferredDescription, source: inferredSource }\n : getUserUpdatedNameAndSource(name, attributes);\n\n return {\n op: opParts.join('.'),\n description,\n source,\n data,\n };\n}\n\nfunction getGraphqlOperationNamesFromAttribute(attr: AttributeValue): string {\n if (Array.isArray(attr)) {\n // oxlint-disable-next-line typescript/require-array-sort-compare\n const sorted = attr.slice().sort();\n\n // Up to 5 items, we just add all of them\n if (sorted.length <= 5) {\n return sorted.join(', ');\n } else {\n // Else, we add the first 5 and the diff of other operations\n return `${sorted.slice(0, 5).join(', ')}, +${sorted.length - 5}`;\n }\n }\n\n return `${attr}`;\n}\n\n/** Exported for tests only */\nexport function getSanitizedUrl(\n attributes: Attributes,\n kind: SpanKind,\n): {\n url: string | undefined;\n urlPath: string | undefined;\n query: string | undefined;\n fragment: string | undefined;\n hasRoute: boolean;\n} {\n // This is the relative path of the URL, e.g. /sub\n // eslint-disable-next-line deprecation/deprecation\n const httpTarget = attributes[SEMATTRS_HTTP_TARGET];\n // This is the full URL, including host & query params etc., e.g. https://example.com/sub?foo=bar\n // eslint-disable-next-line deprecation/deprecation\n const httpUrl = attributes[SEMATTRS_HTTP_URL] || attributes[ATTR_URL_FULL];\n // This is the normalized route name - may not always be available!\n const httpRoute = attributes[ATTR_HTTP_ROUTE];\n\n const parsedUrl = typeof httpUrl === 'string' ? parseUrl(httpUrl) : undefined;\n const url = parsedUrl ? getSanitizedUrlString(parsedUrl) : undefined;\n const query = parsedUrl?.search || undefined;\n const fragment = parsedUrl?.hash || undefined;\n\n if (typeof httpRoute === 'string') {\n return { urlPath: httpRoute, url, query, fragment, hasRoute: true };\n }\n\n if (kind === SpanKind.SERVER && typeof httpTarget === 'string') {\n return { urlPath: stripUrlQueryAndFragment(httpTarget), url, query, fragment, hasRoute: false };\n }\n\n if (parsedUrl) {\n return { urlPath: url, url, query, fragment, hasRoute: false };\n }\n\n // fall back to target even for client spans, if no URL is present\n if (typeof httpTarget === 'string') {\n return { urlPath: stripUrlQueryAndFragment(httpTarget), url, query, fragment, hasRoute: false };\n }\n\n return { urlPath: undefined, url, query, fragment, hasRoute: false };\n}\n\n/**\n * Because Otel instrumentation sometimes mutates span names via `span.updateName`, the only way\n * to ensure that a user-set span name is preserved is to store it as a tmp attribute on the span.\n * We delete this attribute once we're done with it when preparing the event envelope.\n *\n * This temp attribute always takes precedence over the original name.\n *\n * We also need to take care of setting the correct source. Users can always update the source\n * after updating the name, so we need to respect that.\n *\n * @internal exported only for testing\n */\nexport function getUserUpdatedNameAndSource(\n originalName: string,\n attributes: Attributes,\n fallbackSource: TransactionSource = 'custom',\n): {\n description: string;\n source: TransactionSource;\n} {\n const source = (attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] as TransactionSource) || fallbackSource;\n const description = attributes[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n\n if (description && typeof description === 'string') {\n return {\n description,\n source,\n };\n }\n\n return { description: originalName, source };\n}\n","import type { Client } from '@sentry/core';\nimport { hasSpansEnabled, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, spanToJSON } from '@sentry/core';\nimport { getSamplingDecision } from './getSamplingDecision';\nimport { parseSpanDescription } from './parseSpanDescription';\nimport { spanHasName } from './spanTypes';\n\n/**\n * Setup a DSC handler on the passed client,\n * ensuring that the transaction name is inferred from the span correctly.\n */\nexport function enhanceDscWithOpenTelemetryRootSpanName(client: Client): void {\n client.on('createDsc', (dsc, rootSpan) => {\n if (!rootSpan) {\n return;\n }\n\n // We want to overwrite the transaction on the DSC that is created by default in core\n // The reason for this is that we want to infer the span name, not use the initial one\n // Otherwise, we'll get names like \"GET\" instead of e.g. \"GET /foo\"\n // `parseSpanDescription` takes the attributes of the span into account for the name\n // This mutates the passed-in DSC\n\n const jsonSpan = spanToJSON(rootSpan);\n const attributes = jsonSpan.data;\n const source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE];\n\n const { description } = spanHasName(rootSpan) ? parseSpanDescription(rootSpan) : { description: undefined };\n if (source !== 'url' && description) {\n dsc.transaction = description;\n }\n\n // Also ensure sampling decision is correctly inferred\n // In core, we use `spanIsSampled`, which just looks at the trace flags\n // but in OTEL, we use a slightly more complex logic to be able to differntiate between unsampled and deferred sampling\n if (hasSpansEnabled()) {\n const sampled = getSamplingDecision(rootSpan.spanContext());\n dsc.sampled = sampled == undefined ? undefined : String(sampled);\n }\n });\n}\n","import type { Span } from '@opentelemetry/api';\nimport { trace } from '@opentelemetry/api';\n\n/**\n * Returns the currently active span.\n */\nexport function getActiveSpan(): Span | undefined {\n return trace.getActiveSpan();\n}\n","declare const __DEBUG_BUILD__: boolean;\n\n/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nexport const DEBUG_BUILD = __DEBUG_BUILD__;\n","import { TraceState } from '@opentelemetry/core';\nimport type { DynamicSamplingContext } from '@sentry/core';\nimport { dynamicSamplingContextToSentryBaggageHeader } from '@sentry/core';\nimport { SENTRY_TRACE_STATE_DSC, SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING } from '../constants';\n\n/**\n * Generate a TraceState for the given data.\n */\nexport function makeTraceState({\n dsc,\n sampled,\n}: {\n dsc?: Partial;\n sampled?: boolean;\n}): TraceState {\n // We store the DSC as OTEL trace state on the span context\n const dscString = dsc ? dynamicSamplingContextToSentryBaggageHeader(dsc) : undefined;\n\n const traceStateBase = new TraceState();\n\n const traceStateWithDsc = dscString ? traceStateBase.set(SENTRY_TRACE_STATE_DSC, dscString) : traceStateBase;\n\n // We also specifically want to store if this is sampled to be not recording,\n // or unsampled (=could be either sampled or not)\n return sampled === false ? traceStateWithDsc.set(SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING, '1') : traceStateWithDsc;\n}\n","type OpenTelemetryElement = 'SentrySpanProcessor' | 'SentryContextManager' | 'SentryPropagator' | 'SentrySampler';\n\nconst setupElements = new Set();\n\n/** Get all the OpenTelemetry elements that have been set up. */\nexport function openTelemetrySetupCheck(): OpenTelemetryElement[] {\n return Array.from(setupElements);\n}\n\n/** Mark an OpenTelemetry element as setup. */\nexport function setIsSetup(element: OpenTelemetryElement): void {\n setupElements.add(element);\n}\n\n/** Only exported for tests. */\nexport function clearOpenTelemetrySetupCheck(): void {\n setupElements.clear();\n}\n","import type { Baggage, Context, Span, SpanContext, TextMapGetter, TextMapSetter } from '@opentelemetry/api';\nimport { context, INVALID_TRACEID, propagation, trace, TraceFlags } from '@opentelemetry/api';\nimport { isTracingSuppressed, W3CBaggagePropagator } from '@opentelemetry/core';\nimport { ATTR_URL_FULL, SEMATTRS_HTTP_URL } from '@opentelemetry/semantic-conventions';\nimport type { Client, continueTrace, DynamicSamplingContext, Scope } from '@sentry/core';\nimport {\n baggageHeaderToDynamicSamplingContext,\n debug,\n generateSentryTraceHeader,\n generateTraceparentHeader,\n getClient,\n getCurrentScope,\n getDynamicSamplingContextFromScope,\n getDynamicSamplingContextFromSpan,\n getIsolationScope,\n LRUMap,\n parseBaggageHeader,\n propagationContextFromHeaders,\n SENTRY_BAGGAGE_KEY_PREFIX,\n shouldContinueTrace,\n shouldPropagateTraceForUrl,\n spanToJSON,\n} from '@sentry/core';\nimport { SENTRY_BAGGAGE_HEADER, SENTRY_TRACE_HEADER, SENTRY_TRACE_STATE_URL } from './constants';\nimport { DEBUG_BUILD } from './debug-build';\nimport { getScopesFromContext, setScopesOnContext } from './utils/contextData';\nimport { getSamplingDecision } from './utils/getSamplingDecision';\nimport { makeTraceState } from './utils/makeTraceState';\nimport { setIsSetup } from './utils/setupCheck';\n\n/**\n * Injects and extracts `sentry-trace` and `baggage` headers from carriers.\n */\nexport class SentryPropagator extends W3CBaggagePropagator {\n /** A map of URLs that have already been checked for if they match tracePropagationTargets. */\n private _urlMatchesTargetsMap: LRUMap;\n\n public constructor() {\n super();\n setIsSetup('SentryPropagator');\n\n // We're caching results so we don't have to recompute regexp every time we create a request.\n this._urlMatchesTargetsMap = new LRUMap(100);\n }\n\n /**\n * @inheritDoc\n */\n public inject(context: Context, carrier: unknown, setter: TextMapSetter): void {\n if (isTracingSuppressed(context)) {\n DEBUG_BUILD && debug.log('[Tracing] Not injecting trace data for url because tracing is suppressed.');\n return;\n }\n\n const activeSpan = trace.getSpan(context);\n const url = activeSpan && getCurrentURL(activeSpan);\n\n const { tracePropagationTargets, propagateTraceparent } = getClient()?.getOptions() || {};\n if (!shouldPropagateTraceForUrl(url, tracePropagationTargets, this._urlMatchesTargetsMap)) {\n DEBUG_BUILD &&\n debug.log('[Tracing] Not injecting trace data for url because it does not match tracePropagationTargets:', url);\n return;\n }\n\n const existingBaggageHeader = getExistingBaggage(carrier);\n const existingSentryTraceHeader = getExistingSentryTrace(carrier);\n\n let baggage = propagation.getBaggage(context) || propagation.createBaggage({});\n\n const { dynamicSamplingContext, traceId, spanId, sampled } = getInjectionData(context);\n\n if (existingBaggageHeader) {\n const baggageEntries = parseBaggageHeader(existingBaggageHeader);\n\n if (baggageEntries) {\n Object.entries(baggageEntries).forEach(([key, value]) => {\n if (!existingSentryTraceHeader && key.startsWith(SENTRY_BAGGAGE_KEY_PREFIX)) {\n // Edge case: A baggage header with sentry- keys was added previously but no\n // sentry-trace header. In this case we remove the old sentry-keys and add new\n // ones below.\n return;\n }\n baggage = baggage.setEntry(key, { value });\n });\n }\n }\n\n if (!existingSentryTraceHeader && dynamicSamplingContext) {\n baggage = Object.entries(dynamicSamplingContext).reduce((b, [dscKey, dscValue]) => {\n if (dscValue) {\n return b.setEntry(`${SENTRY_BAGGAGE_KEY_PREFIX}${dscKey}`, { value: dscValue });\n }\n return b;\n }, baggage);\n }\n\n // We also want to avoid setting the default OTEL trace ID, if we get that for whatever reason\n if (!existingSentryTraceHeader && traceId && traceId !== INVALID_TRACEID) {\n setter.set(carrier, SENTRY_TRACE_HEADER, generateSentryTraceHeader(traceId, spanId, sampled));\n\n if (propagateTraceparent) {\n setter.set(carrier, 'traceparent', generateTraceparentHeader(traceId, spanId, sampled));\n }\n }\n\n super.inject(propagation.setBaggage(context, baggage), carrier, setter);\n }\n\n /**\n * @inheritDoc\n */\n public extract(context: Context, carrier: unknown, getter: TextMapGetter): Context {\n const maybeSentryTraceHeader: string | string[] | undefined = getter.get(carrier, SENTRY_TRACE_HEADER);\n const baggage = getter.get(carrier, SENTRY_BAGGAGE_HEADER);\n\n const sentryTrace = maybeSentryTraceHeader\n ? Array.isArray(maybeSentryTraceHeader)\n ? maybeSentryTraceHeader[0]\n : maybeSentryTraceHeader\n : undefined;\n\n // Add remote parent span context\n // If there is no incoming trace, this will return the context as-is\n return ensureScopesOnContext(getContextWithRemoteActiveSpan(context, { sentryTrace, baggage }));\n }\n\n /**\n * @inheritDoc\n */\n public fields(): string[] {\n return [SENTRY_TRACE_HEADER, SENTRY_BAGGAGE_HEADER, 'traceparent'];\n }\n}\n\n// Re-exported from @sentry/core for backwards compatibility\nexport { shouldPropagateTraceForUrl } from '@sentry/core';\n\n/**\n * Get propagation injection data for the given context.\n * The additional options can be passed to override the scope and client that is otherwise derived from the context.\n */\nexport function getInjectionData(\n context: Context,\n options: { scope?: Scope; client?: Client } = {},\n): {\n dynamicSamplingContext: Partial | undefined;\n traceId: string | undefined;\n spanId: string | undefined;\n sampled: boolean | undefined;\n} {\n const span = trace.getSpan(context);\n\n // If we have a remote span, the spanId should be considered as the parentSpanId, not spanId itself\n // Instead, we use a virtual (generated) spanId for propagation\n if (span?.spanContext().isRemote) {\n const spanContext = span.spanContext();\n const dynamicSamplingContext = getDynamicSamplingContextFromSpan(span);\n\n return {\n dynamicSamplingContext,\n traceId: spanContext.traceId,\n spanId: undefined,\n sampled: getSamplingDecision(spanContext), // TODO: Do we need to change something here?\n };\n }\n\n // If we have a local span, we just use this\n if (span) {\n const spanContext = span.spanContext();\n const dynamicSamplingContext = getDynamicSamplingContextFromSpan(span);\n\n return {\n dynamicSamplingContext,\n traceId: spanContext.traceId,\n spanId: spanContext.spanId,\n sampled: getSamplingDecision(spanContext), // TODO: Do we need to change something here?\n };\n }\n\n // Else we try to use the propagation context from the scope\n // The only scenario where this should happen is when we neither have a span, nor an incoming trace\n const scope = options.scope || getScopesFromContext(context)?.scope || getCurrentScope();\n const client = options.client || getClient();\n\n const propagationContext = scope.getPropagationContext();\n const dynamicSamplingContext = client ? getDynamicSamplingContextFromScope(client, scope) : undefined;\n return {\n dynamicSamplingContext,\n traceId: propagationContext.traceId,\n spanId: propagationContext.propagationSpanId,\n sampled: propagationContext.sampled,\n };\n}\n\nfunction getContextWithRemoteActiveSpan(\n ctx: Context,\n { sentryTrace, baggage }: Parameters[0],\n): Context {\n const propagationContext = propagationContextFromHeaders(sentryTrace, baggage);\n\n const { traceId, parentSpanId, sampled, dsc } = propagationContext;\n\n const client = getClient();\n const incomingDsc = baggageHeaderToDynamicSamplingContext(baggage);\n\n // We only want to set the virtual span if we are continuing a concrete trace\n // Otherwise, we ignore the incoming trace here, e.g. if we have no trace headers\n if (!parentSpanId || (client && !shouldContinueTrace(client, incomingDsc?.org_id))) {\n return ctx;\n }\n\n const spanContext = generateRemoteSpanContext({\n traceId,\n spanId: parentSpanId,\n sampled,\n dsc,\n });\n\n return trace.setSpanContext(ctx, spanContext);\n}\n\n/**\n * Takes trace strings and propagates them as a remote active span.\n * This should be used in addition to `continueTrace` in OTEL-powered environments.\n */\nexport function continueTraceAsRemoteSpan(\n ctx: Context,\n options: Parameters[0],\n callback: () => T,\n): T {\n const ctxWithSpanContext = ensureScopesOnContext(getContextWithRemoteActiveSpan(ctx, options));\n\n return context.with(ctxWithSpanContext, callback);\n}\n\nfunction ensureScopesOnContext(ctx: Context): Context {\n // If there are no scopes yet on the context, ensure we have them\n const scopes = getScopesFromContext(ctx);\n const newScopes = {\n // If we have no scope here, this is most likely either the root context or a context manually derived from it\n // In this case, we want to fork the current scope, to ensure we do not pollute the root scope\n scope: scopes ? scopes.scope : getCurrentScope().clone(),\n isolationScope: scopes ? scopes.isolationScope : getIsolationScope(),\n };\n\n return setScopesOnContext(ctx, newScopes);\n}\n\n/** Try to get the existing baggage header so we can merge this in. */\nfunction getExistingBaggage(carrier: unknown): string | undefined {\n try {\n const baggage = (carrier as Record)[SENTRY_BAGGAGE_HEADER];\n return Array.isArray(baggage) ? baggage.join(',') : baggage;\n } catch {\n return undefined;\n }\n}\n\nfunction getExistingSentryTrace(carrier: unknown): string | string[] | undefined {\n try {\n return (carrier as Record)[SENTRY_TRACE_HEADER];\n } catch {\n return undefined;\n }\n}\n\n/**\n * It is pretty tricky to get access to the outgoing request URL of a request in the propagator.\n * As we only have access to the context of the span to be sent and the carrier (=headers),\n * but the span may be unsampled and thus have no attributes.\n *\n * So we use the following logic:\n * 1. If we have an active span, we check if it has a URL attribute.\n * 2. Else, if the active span has no URL attribute (e.g. it is unsampled), we check a special trace state (which we set in our sampler).\n */\nfunction getCurrentURL(span: Span): string | undefined {\n const spanData = spanToJSON(span).data;\n // `ATTR_URL_FULL` is the new attribute, but we still support the old one, `SEMATTRS_HTTP_URL`, for now.\n // eslint-disable-next-line deprecation/deprecation\n const urlAttribute = spanData[SEMATTRS_HTTP_URL] || spanData[ATTR_URL_FULL];\n if (typeof urlAttribute === 'string') {\n return urlAttribute;\n }\n\n // Also look at the traceState, which we may set in the sampler even for unsampled spans\n const urlTraceState = span.spanContext().traceState?.get(SENTRY_TRACE_STATE_URL);\n if (urlTraceState) {\n return urlTraceState;\n }\n\n return undefined;\n}\n\nfunction generateRemoteSpanContext({\n spanId,\n traceId,\n sampled,\n dsc,\n}: {\n spanId: string;\n traceId: string;\n sampled: boolean | undefined;\n dsc?: Partial;\n}): SpanContext {\n // We store the DSC as OTEL trace state on the span context\n const traceState = makeTraceState({\n dsc,\n sampled,\n });\n\n const spanContext: SpanContext = {\n traceId,\n spanId,\n isRemote: true,\n traceFlags: sampled ? TraceFlags.SAMPLED : TraceFlags.NONE,\n traceState,\n };\n\n return spanContext;\n}\n","import type { Context, Span, SpanContext, SpanOptions, TimeInput, Tracer } from '@opentelemetry/api';\nimport { context, SpanStatusCode, trace, TraceFlags } from '@opentelemetry/api';\nimport { isTracingSuppressed, suppressTracing } from '@opentelemetry/core';\nimport type {\n Client,\n continueTrace as baseContinueTrace,\n DynamicSamplingContext,\n Scope,\n Span as SentrySpan,\n TraceContext,\n} from '@sentry/core';\nimport {\n _INTERNAL_safeMathRandom,\n generateSpanId,\n generateTraceId,\n getClient,\n getCurrentScope,\n getDynamicSamplingContextFromScope,\n getDynamicSamplingContextFromSpan,\n getRootSpan,\n getTraceContextFromScope,\n handleCallbackErrors,\n hasSpansEnabled,\n SDK_VERSION,\n SEMANTIC_ATTRIBUTE_SENTRY_OP,\n spanToJSON,\n spanToTraceContext,\n} from '@sentry/core';\nimport { continueTraceAsRemoteSpan } from './propagator';\nimport type { OpenTelemetryClient, OpenTelemetrySpanContext } from './types';\nimport { getContextFromScope } from './utils/contextData';\nimport { getSamplingDecision } from './utils/getSamplingDecision';\nimport { makeTraceState } from './utils/makeTraceState';\n\n/**\n * Internal helper for starting spans and manual spans. See {@link startSpan} and {@link startSpanManual} for the public APIs.\n * @param options - The span context options\n * @param callback - The callback to execute with the span\n * @param autoEnd - Whether to automatically end the span after the callback completes\n */\nfunction _startSpan(options: OpenTelemetrySpanContext, callback: (span: Span) => T, autoEnd: boolean): T {\n const tracer = getTracer();\n\n const { name, parentSpan: customParentSpan } = options;\n\n // If `options.parentSpan` is defined, we want to wrap the callback in `withActiveSpan`\n const wrapper = getActiveSpanWrapper(customParentSpan);\n\n return wrapper(() => {\n const activeCtx = getContext(options.scope, options.forceTransaction);\n const shouldSkipSpan = options.onlyIfParent && !trace.getSpan(activeCtx);\n const ctx = shouldSkipSpan ? suppressTracing(activeCtx) : activeCtx;\n\n const spanOptions = getSpanOptions(options);\n\n // If spans are not enabled, ensure we suppress tracing for the span creation\n // but preserve the original context for the callback execution\n // This ensures that we don't create spans when tracing is disabled which\n // would otherwise be a problem for users that don't enable tracing but use\n // custom OpenTelemetry setups.\n if (!hasSpansEnabled()) {\n const suppressedCtx = isTracingSuppressed(ctx) ? ctx : suppressTracing(ctx);\n\n return context.with(suppressedCtx, () => {\n return tracer.startActiveSpan(name, spanOptions, suppressedCtx, span => {\n patchSpanEnd(span);\n // Restore the original unsuppressed context for the callback execution\n // so that custom OpenTelemetry spans maintain the correct context.\n // We use activeCtx (not ctx) because ctx may be suppressed when onlyIfParent is true\n // and no parent span exists. Using activeCtx ensures custom OTel spans are never\n // inadvertently suppressed.\n return context.with(activeCtx, () => {\n return handleCallbackErrors(\n () => callback(span),\n () => {\n // Only set the span status to ERROR when there wasn't any status set before, in order to avoid stomping useful span statuses\n if (spanToJSON(span).status === undefined) {\n span.setStatus({ code: SpanStatusCode.ERROR });\n }\n },\n autoEnd ? () => span.end() : undefined,\n );\n });\n });\n });\n }\n\n return tracer.startActiveSpan(name, spanOptions, ctx, span => {\n patchSpanEnd(span);\n return handleCallbackErrors(\n () => callback(span),\n () => {\n // Only set the span status to ERROR when there wasn't any status set before, in order to avoid stomping useful span statuses\n if (spanToJSON(span).status === undefined) {\n span.setStatus({ code: SpanStatusCode.ERROR });\n }\n },\n autoEnd ? () => span.end() : undefined,\n );\n });\n });\n}\n\n/**\n * Wraps a function with a transaction/span and finishes the span after the function is done.\n * The created span is the active span and will be used as parent by other spans created inside the function\n * and can be accessed via `Sentry.getActiveSpan()`, as long as the function is executed while the scope is active.\n *\n * If you want to create a span that is not set as active, use {@link startInactiveSpan}.\n *\n * You'll always get a span passed to the callback,\n * it may just be a non-recording span if the span is not sampled or if tracing is disabled.\n */\nexport function startSpan(options: OpenTelemetrySpanContext, callback: (span: Span) => T): T {\n return _startSpan(options, callback, true);\n}\n\n/**\n * Similar to `Sentry.startSpan`. Wraps a function with a span, but does not finish the span\n * after the function is done automatically. You'll have to call `span.end()` or the `finish` function passed to the callback manually.\n *\n * The created span is the active span and will be used as parent by other spans created inside the function\n * and can be accessed via `Sentry.getActiveSpan()`, as long as the function is executed while the scope is active.\n *\n * You'll always get a span passed to the callback,\n * it may just be a non-recording span if the span is not sampled or if tracing is disabled.\n */\nexport function startSpanManual(\n options: OpenTelemetrySpanContext,\n callback: (span: Span, finish: () => void) => T,\n): T {\n return _startSpan(options, span => callback(span, () => span.end()), false);\n}\n\n/**\n * Creates a span. This span is not set as active, so will not get automatic instrumentation spans\n * as children or be able to be accessed via `Sentry.getActiveSpan()`.\n *\n * If you want to create a span that is set as active, use {@link startSpan}.\n *\n * This function will always return a span,\n * it may just be a non-recording span if the span is not sampled or if tracing is disabled.\n */\nexport function startInactiveSpan(options: OpenTelemetrySpanContext): Span {\n const tracer = getTracer();\n\n const { name, parentSpan: customParentSpan } = options;\n\n // If `options.parentSpan` is defined, we want to wrap the callback in `withActiveSpan`\n const wrapper = getActiveSpanWrapper(customParentSpan);\n\n return wrapper(() => {\n const activeCtx = getContext(options.scope, options.forceTransaction);\n const shouldSkipSpan = options.onlyIfParent && !trace.getSpan(activeCtx);\n let ctx = shouldSkipSpan ? suppressTracing(activeCtx) : activeCtx;\n\n const spanOptions = getSpanOptions(options);\n\n if (!hasSpansEnabled()) {\n ctx = isTracingSuppressed(ctx) ? ctx : suppressTracing(ctx);\n }\n\n const span = tracer.startSpan(name, spanOptions, ctx);\n patchSpanEnd(span);\n return span;\n });\n}\n\n/**\n * Forks the current scope and sets the provided span as active span in the context of the provided callback. Can be\n * passed `null` to start an entirely new span tree.\n *\n * @param span Spans started in the context of the provided callback will be children of this span. If `null` is passed,\n * spans started within the callback will be root spans.\n * @param callback Execution context in which the provided span will be active. Is passed the newly forked scope.\n * @returns the value returned from the provided callback function.\n */\nexport function withActiveSpan(span: Span | null, callback: (scope: Scope) => T): T {\n const newContextWithActiveSpan = span ? trace.setSpan(context.active(), span) : trace.deleteSpan(context.active());\n return context.with(newContextWithActiveSpan, () => callback(getCurrentScope()));\n}\n\nfunction getTracer(): Tracer {\n const client = getClient();\n return client?.tracer || trace.getTracer('@sentry/opentelemetry', SDK_VERSION);\n}\n\nfunction getSpanOptions(options: OpenTelemetrySpanContext): SpanOptions {\n const { startTime, attributes, kind, op, links } = options;\n\n // OTEL expects timestamps in ms, not seconds\n const fixedStartTime = typeof startTime === 'number' ? ensureTimestampInMilliseconds(startTime) : startTime;\n\n return {\n attributes: op\n ? {\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: op,\n ...attributes,\n }\n : attributes,\n kind,\n links,\n startTime: fixedStartTime,\n };\n}\n\nfunction ensureTimestampInMilliseconds(timestamp: number): number {\n const isMs = timestamp < 9999999999;\n return isMs ? timestamp * 1000 : timestamp;\n}\n\n/**\n * Wraps the span's `end()` method so that numeric timestamps passed in seconds\n * are converted to milliseconds before reaching OTel's native `Span.end()`.\n */\nfunction patchSpanEnd(span: Span): void {\n const originalEnd = span.end.bind(span);\n span.end = (endTime?: TimeInput) => {\n return originalEnd(typeof endTime === 'number' ? ensureTimestampInMilliseconds(endTime) : endTime);\n };\n}\n\nfunction getContext(scope: Scope | undefined, forceTransaction: boolean | undefined): Context {\n const ctx = getContextForScope(scope);\n const parentSpan = trace.getSpan(ctx);\n\n // In the case that we have no parent span, we start a new trace\n // Note that if we continue a trace, we'll always have a remote parent span here anyhow\n if (!parentSpan) {\n return ctx;\n }\n\n // If we don't want to force a transaction, and we have a parent span, all good, we just return as-is!\n if (!forceTransaction) {\n return ctx;\n }\n\n // Else, if we do have a parent span but want to force a transaction, we have to simulate a \"root\" context\n\n // Else, we need to do two things:\n // 1. Unset the parent span from the context, so we'll create a new root span\n // 2. Ensure the propagation context is correct, so we'll continue from the parent span\n const ctxWithoutSpan = trace.deleteSpan(ctx);\n\n const { spanId, traceId } = parentSpan.spanContext();\n const sampled = getSamplingDecision(parentSpan.spanContext());\n\n // In this case, when we are forcing a transaction, we want to treat this like continuing an incoming trace\n // so we set the traceState according to the root span\n const rootSpan = getRootSpan(parentSpan);\n const dsc = getDynamicSamplingContextFromSpan(rootSpan);\n\n const traceState = makeTraceState({\n dsc,\n sampled,\n });\n\n const spanOptions: SpanContext = {\n traceId,\n spanId,\n isRemote: true,\n traceFlags: sampled ? TraceFlags.SAMPLED : TraceFlags.NONE,\n traceState,\n };\n\n const ctxWithSpanContext = trace.setSpanContext(ctxWithoutSpan, spanOptions);\n\n return ctxWithSpanContext;\n}\n\nfunction getContextForScope(scope?: Scope): Context {\n if (scope) {\n const ctx = getContextFromScope(scope);\n if (ctx) {\n return ctx;\n }\n }\n\n return context.active();\n}\n\n/**\n * Continue a trace from `sentry-trace` and `baggage` values.\n * These values can be obtained from incoming request headers, or in the browser from ``\n * and `` HTML tags.\n *\n * Spans started with `startSpan`, `startSpanManual` and `startInactiveSpan`, within the callback will automatically\n * be attached to the incoming trace.\n *\n * This is a custom version of `continueTrace` that is used in OTEL-powered environments.\n * It propagates the trace as a remote span, in addition to setting it on the propagation context.\n */\nexport function continueTrace(options: Parameters[0], callback: () => T): T {\n return continueTraceAsRemoteSpan(context.active(), options, callback);\n}\n\n/**\n * Start a new trace with a unique traceId, ensuring all spans created within the callback\n * share the same traceId.\n *\n * This is a custom version of `startNewTrace` for OTEL-powered environments.\n * It injects the new traceId as a remote span context into the OTEL context, so that\n * `startInactiveSpan` and `startSpan` pick it up correctly.\n */\nexport function startNewTrace(callback: () => T): T {\n const traceId = generateTraceId();\n const spanId = generateSpanId();\n\n const spanContext: SpanContext = {\n traceId,\n spanId,\n isRemote: true,\n traceFlags: TraceFlags.NONE,\n };\n\n const ctxWithTrace = trace.setSpanContext(context.active(), spanContext);\n\n return context.with(ctxWithTrace, () => {\n getCurrentScope().setPropagationContext({\n traceId,\n sampleRand: _INTERNAL_safeMathRandom(),\n });\n return callback();\n });\n}\n\n/**\n * Get the trace context for a given scope.\n * We have a custom implementation here because we need an OTEL-specific way to get the span from a scope.\n */\nexport function getTraceContextForScope(\n client: Client,\n scope: Scope,\n): [dynamicSamplingContext: Partial, traceContext: TraceContext] {\n const ctx = getContextFromScope(scope);\n const span = ctx && trace.getSpan(ctx);\n\n const traceContext = span ? spanToTraceContext(span) : getTraceContextFromScope(scope);\n\n const dynamicSamplingContext = span\n ? getDynamicSamplingContextFromSpan(span)\n : getDynamicSamplingContextFromScope(client, scope);\n return [dynamicSamplingContext, traceContext];\n}\n\nfunction getActiveSpanWrapper(parentSpan: Span | SentrySpan | undefined | null): (callback: () => T) => T {\n return parentSpan !== undefined\n ? (callback: () => T) => {\n return withActiveSpan(parentSpan, callback);\n }\n : (callback: () => T) => callback();\n}\n","import { context } from '@opentelemetry/api';\nimport { suppressTracing as suppressTracingImpl } from '@opentelemetry/core';\n\n/** Suppress tracing in the given callback, ensuring no spans are generated inside of it. */\nexport function suppressTracing(callback: () => T): T {\n const ctx = suppressTracingImpl(context.active());\n return context.with(ctx, callback);\n}\n","import type { Client } from '@sentry/core';\nimport { getDynamicSamplingContextFromSpan, getRootSpan, spanToTraceContext } from '@sentry/core';\nimport { getActiveSpan } from './utils/getActiveSpan';\n\n/** Ensure the `trace` context is set on all events. */\nexport function setupEventContextTrace(client: Client): void {\n client.on('preprocessEvent', event => {\n const span = getActiveSpan();\n // For transaction events, this is handled separately\n // Because the active span may not be the span that is actually the transaction event\n if (!span || event.type === 'transaction') {\n return;\n }\n\n // If event has already set `trace` context, use that one.\n event.contexts = {\n trace: spanToTraceContext(span),\n ...event.contexts,\n };\n\n const rootSpan = getRootSpan(span);\n\n event.sdkProcessingMetadata = {\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(rootSpan),\n ...event.sdkProcessingMetadata,\n };\n\n return event;\n });\n}\n","import * as api from '@opentelemetry/api';\nimport type { Client, Scope, SerializedTraceData, Span } from '@sentry/core';\nimport {\n dynamicSamplingContextToSentryBaggageHeader,\n generateSentryTraceHeader,\n generateTraceparentHeader,\n getCapturedScopesOnSpan,\n} from '@sentry/core';\nimport { getInjectionData } from '../propagator';\nimport { getContextFromScope } from './contextData';\n\n/**\n * Otel-specific implementation of `getTraceData`.\n * @see `@sentry/core` version of `getTraceData` for more information\n */\nexport function getTraceData({\n span,\n scope,\n client,\n propagateTraceparent,\n}: { span?: Span; scope?: Scope; client?: Client; propagateTraceparent?: boolean } = {}): SerializedTraceData {\n let ctx = (scope && getContextFromScope(scope)) ?? api.context.active();\n\n if (span) {\n const { scope } = getCapturedScopesOnSpan(span);\n // fall back to current context if for whatever reason we can't find the one of the span\n ctx = (scope && getContextFromScope(scope)) || api.trace.setSpan(api.context.active(), span);\n }\n\n const { traceId, spanId, sampled, dynamicSamplingContext } = getInjectionData(ctx, { scope, client });\n\n const traceData: SerializedTraceData = {\n 'sentry-trace': generateSentryTraceHeader(traceId, spanId, sampled),\n baggage: dynamicSamplingContextToSentryBaggageHeader(dynamicSamplingContext),\n };\n\n if (propagateTraceparent) {\n traceData.traceparent = generateTraceparentHeader(traceId, spanId, sampled);\n }\n\n return traceData;\n}\n","import * as api from '@opentelemetry/api';\nimport type { Scope, withActiveSpan as defaultWithActiveSpan } from '@sentry/core';\nimport { getDefaultCurrentScope, getDefaultIsolationScope, setAsyncContextStrategy } from '@sentry/core';\nimport {\n SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY,\n SENTRY_FORK_SET_ISOLATION_SCOPE_CONTEXT_KEY,\n SENTRY_FORK_SET_SCOPE_CONTEXT_KEY,\n} from './constants';\nimport { continueTrace, startInactiveSpan, startNewTrace, startSpan, startSpanManual, withActiveSpan } from './trace';\nimport type { CurrentScopes } from './types';\nimport { getContextFromScope, getScopesFromContext } from './utils/contextData';\nimport { getActiveSpan } from './utils/getActiveSpan';\nimport { getTraceData } from './utils/getTraceData';\nimport { suppressTracing } from './utils/suppressTracing';\n\n/**\n * Sets the async context strategy to use follow the OTEL context under the hood.\n * We handle forking a hub inside of our custom OTEL Context Manager (./otelContextManager.ts)\n */\nexport function setOpenTelemetryContextAsyncContextStrategy(): void {\n function getScopes(): CurrentScopes {\n const ctx = api.context.active();\n const scopes = getScopesFromContext(ctx);\n\n if (scopes) {\n return scopes;\n }\n\n // fallback behavior:\n // if, for whatever reason, we can't find scopes on the context here, we have to fix this somehow\n return {\n scope: getDefaultCurrentScope(),\n isolationScope: getDefaultIsolationScope(),\n };\n }\n\n function withScope(callback: (scope: Scope) => T): T {\n const ctx = api.context.active();\n\n // We depend on the otelContextManager to handle the context/hub\n // We set the `SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY` context value, which is picked up by\n // the OTEL context manager, which uses the presence of this key to determine if it should\n // fork the isolation scope, or not\n // as by default, we don't want to fork this, unless triggered explicitly by `withScope`\n return api.context.with(ctx, () => {\n return callback(getCurrentScope());\n });\n }\n\n function withSetScope(scope: Scope, callback: (scope: Scope) => T): T {\n const ctx = getContextFromScope(scope) || api.context.active();\n\n // We depend on the otelContextManager to handle the context/hub\n // We set the `SENTRY_FORK_SET_SCOPE_CONTEXT_KEY` context value, which is picked up by\n // the OTEL context manager, which picks up this scope as the current scope\n return api.context.with(ctx.setValue(SENTRY_FORK_SET_SCOPE_CONTEXT_KEY, scope), () => {\n return callback(scope);\n });\n }\n\n function withIsolationScope(callback: (isolationScope: Scope) => T): T {\n const ctx = api.context.active();\n\n // We depend on the otelContextManager to handle the context/hub\n // We set the `SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY` context value, which is picked up by\n // the OTEL context manager, which uses the presence of this key to determine if it should\n // fork the isolation scope, or not\n return api.context.with(ctx.setValue(SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY, true), () => {\n return callback(getIsolationScope());\n });\n }\n\n function withSetIsolationScope(isolationScope: Scope, callback: (isolationScope: Scope) => T): T {\n const ctx = api.context.active();\n\n // We depend on the otelContextManager to handle the context/hub\n // We set the `SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY` context value, which is picked up by\n // the OTEL context manager, which uses the presence of this key to determine if it should\n // fork the isolation scope, or not\n return api.context.with(ctx.setValue(SENTRY_FORK_SET_ISOLATION_SCOPE_CONTEXT_KEY, isolationScope), () => {\n return callback(getIsolationScope());\n });\n }\n\n function getCurrentScope(): Scope {\n return getScopes().scope;\n }\n\n function getIsolationScope(): Scope {\n return getScopes().isolationScope;\n }\n\n setAsyncContextStrategy({\n withScope,\n withSetScope,\n withSetIsolationScope,\n withIsolationScope,\n getCurrentScope,\n getIsolationScope,\n startSpan,\n startSpanManual,\n startInactiveSpan,\n getActiveSpan,\n suppressTracing,\n getTraceData,\n continueTrace,\n startNewTrace,\n // The types here don't fully align, because our own `Span` type is narrower\n // than the OTEL one - but this is OK for here, as we now we'll only have OTEL spans passed around\n withActiveSpan: withActiveSpan as typeof defaultWithActiveSpan,\n });\n}\n","import type { AsyncLocalStorage } from 'node:async_hooks';\nimport type { Context, ContextManager } from '@opentelemetry/api';\nimport type { Scope } from '@sentry/core';\nimport { getCurrentScope, getIsolationScope } from '@sentry/core';\nimport {\n SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY,\n SENTRY_FORK_SET_ISOLATION_SCOPE_CONTEXT_KEY,\n SENTRY_FORK_SET_SCOPE_CONTEXT_KEY,\n SENTRY_SCOPES_CONTEXT_KEY,\n} from './constants';\nimport { getScopesFromContext, setContextOnScope, setScopesOnContext } from './utils/contextData';\nimport { setIsSetup } from './utils/setupCheck';\n\nexport type AsyncLocalStorageLookup = {\n asyncLocalStorage: AsyncLocalStorage;\n contextSymbol: symbol;\n};\n\ntype ExtendedContextManagerInstance = new (\n ...args: unknown[]\n) => ContextManagerInstance & {\n getAsyncLocalStorageLookup(): AsyncLocalStorageLookup;\n};\n\n/**\n * Wrap an OpenTelemetry ContextManager in a way that ensures the context is kept in sync with the Sentry Scope.\n *\n * Usage:\n * import { AsyncLocalStorageContextManager } from '@opentelemetry/context-async-hooks';\n * const SentryContextManager = wrapContextManagerClass(AsyncLocalStorageContextManager);\n * const contextManager = new SentryContextManager();\n */\nexport function wrapContextManagerClass(\n ContextManagerClass: new (...args: unknown[]) => ContextManagerInstance,\n): ExtendedContextManagerInstance {\n /**\n * This is a custom ContextManager for OpenTelemetry, which extends the default AsyncLocalStorageContextManager.\n * It ensures that we create new scopes per context, so that the OTEL Context & the Sentry Scope are always in sync.\n *\n * Note that we currently only support AsyncHooks with this,\n * but since this should work for Node 14+ anyhow that should be good enough.\n */\n\n // @ts-expect-error TS does not like this, but we know this is fine\n class SentryContextManager extends ContextManagerClass {\n public constructor(...args: unknown[]) {\n super(...args);\n setIsSetup('SentryContextManager');\n }\n /**\n * Overwrite with() of the original AsyncLocalStorageContextManager\n * to ensure we also create new scopes per context.\n */\n public with ReturnType>(\n context: Context,\n fn: F,\n thisArg?: ThisParameterType,\n ...args: A\n ): ReturnType {\n const currentScopes = getScopesFromContext(context);\n const currentScope = currentScopes?.scope || getCurrentScope();\n const currentIsolationScope = currentScopes?.isolationScope || getIsolationScope();\n\n const shouldForkIsolationScope = context.getValue(SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY) === true;\n const scope = context.getValue(SENTRY_FORK_SET_SCOPE_CONTEXT_KEY) as Scope | undefined;\n const isolationScope = context.getValue(SENTRY_FORK_SET_ISOLATION_SCOPE_CONTEXT_KEY) as Scope | undefined;\n\n const newCurrentScope = scope || currentScope.clone();\n const newIsolationScope =\n isolationScope || (shouldForkIsolationScope ? currentIsolationScope.clone() : currentIsolationScope);\n const scopes = { scope: newCurrentScope, isolationScope: newIsolationScope };\n\n const ctx1 = setScopesOnContext(context, scopes);\n\n // Remove the unneeded values again\n const ctx2 = ctx1\n .deleteValue(SENTRY_FORK_ISOLATION_SCOPE_CONTEXT_KEY)\n .deleteValue(SENTRY_FORK_SET_SCOPE_CONTEXT_KEY)\n .deleteValue(SENTRY_FORK_SET_ISOLATION_SCOPE_CONTEXT_KEY);\n\n setContextOnScope(newCurrentScope, ctx2);\n\n return super.with(ctx2, fn, thisArg, ...args);\n }\n\n /**\n * Gets underlying AsyncLocalStorage and symbol to allow lookup of scope.\n */\n public getAsyncLocalStorageLookup(): AsyncLocalStorageLookup {\n return {\n // @ts-expect-error This is on the base class, but not part of the interface\n asyncLocalStorage: this._asyncLocalStorage,\n contextSymbol: SENTRY_SCOPES_CONTEXT_KEY,\n };\n }\n }\n\n return SentryContextManager as unknown as ExtendedContextManagerInstance;\n}\n","import type { ReadableSpan } from '@opentelemetry/sdk-trace-base';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_PARENT_IS_REMOTE } from '../semanticAttributes';\nimport { getParentSpanId } from './getParentSpanId';\n\nexport interface SpanNode {\n id: string;\n span?: ReadableSpan;\n parentNode?: SpanNode | undefined;\n children: SpanNode[];\n}\n\ntype SpanMap = Map;\n\n/**\n * This function runs through a list of OTEL Spans, and wraps them in an `SpanNode`\n * where each node holds a reference to their parent node.\n */\nexport function groupSpansWithParents(spans: ReadableSpan[]): SpanNode[] {\n const nodeMap: SpanMap = new Map();\n\n for (const span of spans) {\n createOrUpdateSpanNodeAndRefs(nodeMap, span);\n }\n\n return Array.from(nodeMap, function ([_id, spanNode]) {\n return spanNode;\n });\n}\n\n/**\n * This returns the _local_ parent ID - `parentId` on the span may point to a remote span.\n */\nexport function getLocalParentId(span: ReadableSpan): string | undefined {\n const parentIsRemote = span.attributes[SEMANTIC_ATTRIBUTE_SENTRY_PARENT_IS_REMOTE] === true;\n // If the parentId is the trace parent ID, we pretend it's undefined\n // As this means the parent exists somewhere else\n return !parentIsRemote ? getParentSpanId(span) : undefined;\n}\n\nfunction createOrUpdateSpanNodeAndRefs(nodeMap: SpanMap, span: ReadableSpan): void {\n const id = span.spanContext().spanId;\n const parentId = getLocalParentId(span);\n\n if (!parentId) {\n createOrUpdateNode(nodeMap, { id, span, children: [] });\n return;\n }\n\n // Else make sure to create parent node as well\n // Note that the parent may not know it's parent _yet_, this may be updated in a later pass\n const parentNode = createOrGetParentNode(nodeMap, parentId);\n const node = createOrUpdateNode(nodeMap, { id, span, parentNode, children: [] });\n parentNode.children.push(node);\n}\n\nfunction createOrGetParentNode(nodeMap: SpanMap, id: string): SpanNode {\n const existing = nodeMap.get(id);\n\n if (existing) {\n return existing;\n }\n\n return createOrUpdateNode(nodeMap, { id, children: [] });\n}\n\nfunction createOrUpdateNode(nodeMap: SpanMap, spanNode: SpanNode): SpanNode {\n const existing = nodeMap.get(spanNode.id);\n\n // If span is already set, nothing to do here\n if (existing?.span) {\n return existing;\n }\n\n // If it exists but span is not set yet, we update it\n if (existing && !existing.span) {\n existing.span = spanNode.span;\n existing.parentNode = spanNode.parentNode;\n return existing;\n }\n\n // Else, we create a new one...\n nodeMap.set(spanNode.id, spanNode);\n return spanNode;\n}\n","import { SpanStatusCode } from '@opentelemetry/api';\nimport {\n ATTR_HTTP_RESPONSE_STATUS_CODE,\n SEMATTRS_HTTP_STATUS_CODE,\n SEMATTRS_RPC_GRPC_STATUS_CODE,\n} from '@opentelemetry/semantic-conventions';\nimport type { SpanAttributes, SpanStatus } from '@sentry/core';\nimport { getSpanStatusFromHttpCode, SPAN_STATUS_ERROR, SPAN_STATUS_OK } from '@sentry/core';\nimport type { AbstractSpan } from '../types';\nimport { spanHasAttributes, spanHasStatus } from './spanTypes';\n\n// canonicalCodesGrpcMap maps some GRPC codes to Sentry's span statuses. See description in grpc documentation.\nconst canonicalGrpcErrorCodesMap: Record = {\n '1': 'cancelled',\n '2': 'unknown_error',\n '3': 'invalid_argument',\n '4': 'deadline_exceeded',\n '5': 'not_found',\n '6': 'already_exists',\n '7': 'permission_denied',\n '8': 'resource_exhausted',\n '9': 'failed_precondition',\n '10': 'aborted',\n '11': 'out_of_range',\n '12': 'unimplemented',\n '13': 'internal_error',\n '14': 'unavailable',\n '15': 'data_loss',\n '16': 'unauthenticated',\n} as const;\n\nconst isStatusErrorMessageValid = (message: string): boolean => {\n return Object.values(canonicalGrpcErrorCodesMap).includes(message as SpanStatus['message']);\n};\n\n/**\n * Get a Sentry span status from an otel span.\n */\nexport function mapStatus(span: AbstractSpan): SpanStatus {\n const attributes = spanHasAttributes(span) ? span.attributes : {};\n const status = spanHasStatus(span) ? span.status : undefined;\n\n if (status) {\n // Since span status OK is not set by default, we give it priority: https://opentelemetry.io/docs/concepts/signals/traces/#span-status\n if (status.code === SpanStatusCode.OK) {\n return { code: SPAN_STATUS_OK };\n // If the span is already marked as erroneous we return that exact status\n } else if (status.code === SpanStatusCode.ERROR) {\n if (typeof status.message === 'undefined') {\n const inferredStatus = inferStatusFromAttributes(attributes);\n if (inferredStatus) {\n return inferredStatus;\n }\n }\n\n if (status.message && isStatusErrorMessageValid(status.message)) {\n return { code: SPAN_STATUS_ERROR, message: status.message };\n } else {\n return { code: SPAN_STATUS_ERROR, message: 'internal_error' };\n }\n }\n }\n\n // If the span status is UNSET, we try to infer it from HTTP or GRPC status codes.\n const inferredStatus = inferStatusFromAttributes(attributes);\n\n if (inferredStatus) {\n return inferredStatus;\n }\n\n // We default to setting the spans status to ok.\n if (status?.code === SpanStatusCode.UNSET) {\n return { code: SPAN_STATUS_OK };\n } else {\n return { code: SPAN_STATUS_ERROR, message: 'unknown_error' };\n }\n}\n\nfunction inferStatusFromAttributes(attributes: SpanAttributes): SpanStatus | undefined {\n // If the span status is UNSET, we try to infer it from HTTP or GRPC status codes.\n\n // eslint-disable-next-line deprecation/deprecation\n const httpCodeAttribute = attributes[ATTR_HTTP_RESPONSE_STATUS_CODE] || attributes[SEMATTRS_HTTP_STATUS_CODE];\n // eslint-disable-next-line deprecation/deprecation\n const grpcCodeAttribute = attributes[SEMATTRS_RPC_GRPC_STATUS_CODE];\n\n const numberHttpCode =\n typeof httpCodeAttribute === 'number'\n ? httpCodeAttribute\n : typeof httpCodeAttribute === 'string'\n ? parseInt(httpCodeAttribute)\n : undefined;\n\n if (typeof numberHttpCode === 'number') {\n return getSpanStatusFromHttpCode(numberHttpCode);\n }\n\n if (typeof grpcCodeAttribute === 'string') {\n return { code: SPAN_STATUS_ERROR, message: canonicalGrpcErrorCodesMap[grpcCodeAttribute] || 'unknown_error' };\n }\n\n return undefined;\n}\n","/* eslint-disable max-lines */\nimport type { Span } from '@opentelemetry/api';\nimport { SpanKind } from '@opentelemetry/api';\nimport type { ReadableSpan } from '@opentelemetry/sdk-trace-base';\nimport { ATTR_HTTP_RESPONSE_STATUS_CODE, SEMATTRS_HTTP_STATUS_CODE } from '@opentelemetry/semantic-conventions';\nimport type {\n SpanAttributes,\n SpanJSON,\n SpanOrigin,\n TraceContext,\n TransactionEvent,\n TransactionSource,\n} from '@sentry/core';\nimport {\n _INTERNAL_safeDateNow,\n captureEvent,\n convertSpanLinksForEnvelope,\n debounce,\n debug,\n getCapturedScopesOnSpan,\n getDynamicSamplingContextFromSpan,\n getStatusMessage,\n SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME,\n SEMANTIC_ATTRIBUTE_SENTRY_OP,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE,\n SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n spanTimeInputToSeconds,\n timedEventsToMeasurements,\n} from '@sentry/core';\nimport { DEBUG_BUILD } from './debug-build';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_PARENT_IS_REMOTE } from './semanticAttributes';\nimport { getParentSpanId } from './utils/getParentSpanId';\nimport { getRequestSpanData } from './utils/getRequestSpanData';\nimport type { SpanNode } from './utils/groupSpansWithParents';\nimport { getLocalParentId, groupSpansWithParents } from './utils/groupSpansWithParents';\nimport { mapStatus } from './utils/mapStatus';\nimport { parseSpanDescription } from './utils/parseSpanDescription';\n\ntype SpanNodeCompleted = SpanNode & { span: ReadableSpan };\n\nconst MAX_SPAN_COUNT = 1000;\nconst DEFAULT_TIMEOUT = 300; // 5 min\n\ninterface FinishedSpanBucket {\n timestampInS: number;\n spans: Set;\n}\n\n/**\n * A Sentry-specific exporter that converts OpenTelemetry Spans to Sentry Spans & Transactions.\n */\nexport class SentrySpanExporter {\n /*\n * A quick explanation on the buckets: We do bucketing of finished spans for efficiency. This span exporter is\n * accumulating spans until a root span is encountered and then it flushes all the spans that are descendants of that\n * root span. Because it is totally in the realm of possibilities that root spans are never finished, and we don't\n * want to accumulate spans indefinitely in memory, we need to periodically evacuate spans. Naively we could simply\n * store the spans in an array and each time a new span comes in we could iterate through the entire array and\n * evacuate all spans that have an end-timestamp that is older than our limit. This could get quite expensive because\n * we would have to iterate a potentially large number of spans every time we evacuate. We want to avoid these large\n * bursts of computation.\n *\n * Instead we go for a bucketing approach and put spans into buckets, based on what second\n * (modulo the time limit) the span was put into the exporter. With buckets, when we decide to evacuate, we can\n * iterate through the bucket entries instead, which have an upper bound of items, making the evacuation much more\n * efficient. Cleaning up also becomes much more efficient since it simply involves de-referencing a bucket within the\n * bucket array, and letting garbage collection take care of the rest.\n */\n private _finishedSpanBuckets: (FinishedSpanBucket | undefined)[];\n private _finishedSpanBucketSize: number;\n private _spansToBucketEntry: WeakMap;\n private _lastCleanupTimestampInS: number;\n // Essentially a a set of span ids that are already sent. The values are expiration\n // times in this cache so we don't hold onto them indefinitely.\n private _sentSpans: Map;\n /* Internally, we use a debounced flush to give some wiggle room to the span processor to accumulate more spans. */\n private _debouncedFlush: ReturnType;\n\n public constructor(options?: {\n /** Lower bound of time in seconds until spans that are buffered but have not been sent as part of a transaction get cleared from memory. */\n timeout?: number;\n }) {\n this._finishedSpanBucketSize = options?.timeout || DEFAULT_TIMEOUT;\n this._finishedSpanBuckets = new Array(this._finishedSpanBucketSize).fill(undefined);\n this._lastCleanupTimestampInS = Math.floor(_INTERNAL_safeDateNow() / 1000);\n this._spansToBucketEntry = new WeakMap();\n this._sentSpans = new Map();\n this._debouncedFlush = debounce(this.flush.bind(this), 1, { maxWait: 100 });\n }\n\n /**\n * Export a single span.\n * This is called by the span processor whenever a span is ended.\n */\n public export(span: ReadableSpan): void {\n const currentTimestampInS = Math.floor(_INTERNAL_safeDateNow() / 1000);\n\n if (this._lastCleanupTimestampInS !== currentTimestampInS) {\n let droppedSpanCount = 0;\n this._finishedSpanBuckets.forEach((bucket, i) => {\n if (bucket && bucket.timestampInS <= currentTimestampInS - this._finishedSpanBucketSize) {\n droppedSpanCount += bucket.spans.size;\n this._finishedSpanBuckets[i] = undefined;\n }\n });\n if (droppedSpanCount > 0) {\n DEBUG_BUILD &&\n debug.log(\n `SpanExporter dropped ${droppedSpanCount} spans because they were pending for more than ${this._finishedSpanBucketSize} seconds.`,\n );\n }\n this._lastCleanupTimestampInS = currentTimestampInS;\n }\n\n const currentBucketIndex = currentTimestampInS % this._finishedSpanBucketSize;\n const currentBucket = this._finishedSpanBuckets[currentBucketIndex] || {\n timestampInS: currentTimestampInS,\n spans: new Set(),\n };\n this._finishedSpanBuckets[currentBucketIndex] = currentBucket;\n currentBucket.spans.add(span);\n this._spansToBucketEntry.set(span, currentBucket);\n\n // If the span doesn't have a local parent ID (it's a root span), we're gonna flush all the ended spans\n const localParentId = getLocalParentId(span);\n if (!localParentId || this._sentSpans.has(localParentId)) {\n this._debouncedFlush();\n }\n }\n\n /**\n * Try to flush any pending spans immediately.\n * This is called internally by the exporter (via _debouncedFlush),\n * but can also be triggered externally if we force-flush.\n */\n public flush(): void {\n const finishedSpans = this._finishedSpanBuckets.flatMap(bucket => (bucket ? Array.from(bucket.spans) : []));\n\n this._flushSentSpanCache();\n const sentSpans = this._maybeSend(finishedSpans);\n\n const sentSpanCount = sentSpans.size;\n const remainingOpenSpanCount = finishedSpans.length - sentSpanCount;\n DEBUG_BUILD &&\n debug.log(\n `SpanExporter exported ${sentSpanCount} spans, ${remainingOpenSpanCount} spans are waiting for their parent spans to finish`,\n );\n\n const expirationDate = _INTERNAL_safeDateNow() + DEFAULT_TIMEOUT * 1000;\n\n for (const span of sentSpans) {\n this._sentSpans.set(span.spanContext().spanId, expirationDate);\n const bucketEntry = this._spansToBucketEntry.get(span);\n if (bucketEntry) {\n bucketEntry.spans.delete(span);\n }\n }\n // Cancel a pending debounced flush, if there is one\n // This can be relevant if we directly flush, circumventing the debounce\n // in that case, we want to cancel any pending debounced flush\n this._debouncedFlush.cancel();\n }\n\n /**\n * Clear the exporter.\n * This is called when the span processor is shut down.\n */\n public clear(): void {\n this._finishedSpanBuckets = this._finishedSpanBuckets.fill(undefined);\n this._sentSpans.clear();\n this._debouncedFlush.cancel();\n }\n\n /**\n * Send the given spans, but only if they are part of a finished transaction.\n *\n * Returns the sent spans.\n * Spans remain unsent when their parent span is not yet finished.\n * This will happen regularly, as child spans are generally finished before their parents.\n * But it _could_ also happen because, for whatever reason, a parent span was lost.\n * In this case, we'll eventually need to clean this up.\n */\n private _maybeSend(spans: ReadableSpan[]): Set {\n const grouped = groupSpansWithParents(spans);\n const sentSpans = new Set();\n\n const rootNodes = this._getCompletedRootNodes(grouped);\n\n for (const root of rootNodes) {\n const span = root.span;\n sentSpans.add(span);\n const transactionEvent = createTransactionForOtelSpan(span);\n\n // Add an attribute to the transaction event to indicate that this transaction is an orphaned transaction\n if (root.parentNode && this._sentSpans.has(root.parentNode.id)) {\n const traceData = transactionEvent.contexts?.trace?.data;\n if (traceData) {\n traceData['sentry.parent_span_already_sent'] = true;\n }\n }\n\n // We'll recursively add all the child spans to this array\n const spans = transactionEvent.spans || [];\n\n for (const child of root.children) {\n createAndFinishSpanForOtelSpan(child, spans, sentSpans);\n }\n\n // spans.sort() mutates the array, but we do not use this anymore after this point\n // so we can safely mutate it here\n transactionEvent.spans =\n spans.length > MAX_SPAN_COUNT\n ? spans.sort((a, b) => a.start_timestamp - b.start_timestamp).slice(0, MAX_SPAN_COUNT)\n : spans;\n\n const measurements = timedEventsToMeasurements(span.events);\n if (measurements) {\n transactionEvent.measurements = measurements;\n }\n\n captureEvent(transactionEvent);\n }\n\n return sentSpans;\n }\n\n /** Remove \"expired\" span id entries from the _sentSpans cache. */\n private _flushSentSpanCache(): void {\n const currentTimestamp = _INTERNAL_safeDateNow();\n // Note, it is safe to delete items from the map as we go: https://stackoverflow.com/a/35943995/90297\n for (const [spanId, expirationTime] of this._sentSpans.entries()) {\n if (expirationTime <= currentTimestamp) {\n this._sentSpans.delete(spanId);\n }\n }\n }\n\n /** Check if a node is a completed root node or a node whose parent has already been sent */\n private _nodeIsCompletedRootNodeOrHasSentParent(node: SpanNode): node is SpanNodeCompleted {\n return !!node.span && (!node.parentNode || this._sentSpans.has(node.parentNode.id));\n }\n\n /** Get all completed root nodes from a list of nodes */\n private _getCompletedRootNodes(nodes: SpanNode[]): SpanNodeCompleted[] {\n // TODO: We should be able to remove the explicit `node is SpanNodeCompleted` type guard\n // once we stop supporting TS < 5.5\n return nodes.filter((node): node is SpanNodeCompleted => this._nodeIsCompletedRootNodeOrHasSentParent(node));\n }\n}\n\nfunction parseSpan(span: ReadableSpan): { op?: string; origin?: SpanOrigin; source?: TransactionSource } {\n const attributes = span.attributes;\n\n const origin = attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] as SpanOrigin | undefined;\n const op = attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] as string | undefined;\n const source = attributes[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE] as TransactionSource | undefined;\n\n return { origin, op, source };\n}\n\n/** Exported only for tests. */\nexport function createTransactionForOtelSpan(span: ReadableSpan): TransactionEvent {\n const { op, description, data, origin = 'manual', source } = getSpanData(span);\n const capturedSpanScopes = getCapturedScopesOnSpan(span as unknown as Span);\n\n const sampleRate = span.attributes[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE] as number | undefined;\n\n const attributes: SpanAttributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: source,\n [SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE]: sampleRate,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: op,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: origin,\n ...data,\n ...removeSentryAttributes(span.attributes),\n };\n\n const { links } = span;\n const { traceId: trace_id, spanId: span_id } = span.spanContext();\n\n // If parentSpanIdFromTraceState is defined at all, we want it to take precedence\n // In that case, an empty string should be interpreted as \"no parent span id\",\n // even if `span.parentSpanId` is set\n // this is the case when we are starting a new trace, where we have a virtual span based on the propagationContext\n // We only want to continue the traceId in this case, but ignore the parent span\n const parent_span_id = getParentSpanId(span);\n\n const status = mapStatus(span);\n\n const traceContext: TraceContext = {\n parent_span_id,\n span_id,\n trace_id,\n data: attributes,\n origin,\n op,\n status: getStatusMessage(status), // As per protocol, span status is allowed to be undefined\n links: convertSpanLinksForEnvelope(links),\n };\n\n const statusCode = attributes[ATTR_HTTP_RESPONSE_STATUS_CODE];\n const responseContext = typeof statusCode === 'number' ? { response: { status_code: statusCode } } : undefined;\n\n const transactionEvent: TransactionEvent = {\n contexts: {\n trace: traceContext,\n otel: {\n resource: span.resource.attributes,\n },\n ...responseContext,\n },\n spans: [],\n start_timestamp: spanTimeInputToSeconds(span.startTime),\n timestamp: spanTimeInputToSeconds(span.endTime),\n transaction: description,\n type: 'transaction',\n sdkProcessingMetadata: {\n capturedSpanScope: capturedSpanScopes.scope,\n capturedSpanIsolationScope: capturedSpanScopes.isolationScope,\n sampleRate,\n dynamicSamplingContext: getDynamicSamplingContextFromSpan(span as unknown as Span),\n },\n ...(source && {\n transaction_info: {\n source,\n },\n }),\n };\n\n return transactionEvent;\n}\n\nfunction createAndFinishSpanForOtelSpan(node: SpanNode, spans: SpanJSON[], sentSpans: Set): void {\n const span = node.span;\n\n if (span) {\n sentSpans.add(span);\n }\n\n const shouldDrop = !span;\n\n // If this span should be dropped, we still want to create spans for the children of this\n if (shouldDrop) {\n node.children.forEach(child => {\n createAndFinishSpanForOtelSpan(child, spans, sentSpans);\n });\n return;\n }\n\n const span_id = span.spanContext().spanId;\n const trace_id = span.spanContext().traceId;\n const parentSpanId = getParentSpanId(span);\n\n const { attributes, startTime, endTime, links } = span;\n\n const { op, description, data, origin = 'manual' } = getSpanData(span);\n const allData = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: origin,\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: op,\n ...removeSentryAttributes(attributes),\n ...data,\n };\n\n const status = mapStatus(span);\n\n const spanJSON: SpanJSON = {\n span_id,\n trace_id,\n data: allData,\n description,\n parent_span_id: parentSpanId,\n start_timestamp: spanTimeInputToSeconds(startTime),\n // This is [0,0] by default in OTEL, in which case we want to interpret this as no end time\n timestamp: spanTimeInputToSeconds(endTime) || undefined,\n status: getStatusMessage(status), // As per protocol, span status is allowed to be undefined\n op,\n origin,\n measurements: timedEventsToMeasurements(span.events),\n links: convertSpanLinksForEnvelope(links),\n };\n\n spans.push(spanJSON);\n\n node.children.forEach(child => {\n createAndFinishSpanForOtelSpan(child, spans, sentSpans);\n });\n}\n\nfunction getSpanData(span: ReadableSpan): {\n data: Record;\n op?: string;\n description: string;\n source?: TransactionSource;\n origin?: SpanOrigin;\n} {\n const { op: definedOp, source: definedSource, origin } = parseSpan(span);\n const { op: inferredOp, description, source: inferredSource, data: inferredData } = parseSpanDescription(span);\n\n const op = definedOp || inferredOp;\n const source = definedSource || inferredSource;\n\n const data = { ...inferredData, ...getData(span) };\n\n return {\n op,\n description,\n source,\n origin,\n data,\n };\n}\n\n/**\n * Remove custom `sentry.` attributes we do not need to send.\n * These are more carrier attributes we use inside of the SDK, we do not need to send them to the API.\n */\nfunction removeSentryAttributes(data: Record): Record {\n const cleanedData = { ...data };\n\n /* eslint-disable @typescript-eslint/no-dynamic-delete */\n delete cleanedData[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE];\n delete cleanedData[SEMANTIC_ATTRIBUTE_SENTRY_PARENT_IS_REMOTE];\n delete cleanedData[SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME];\n /* eslint-enable @typescript-eslint/no-dynamic-delete */\n\n return cleanedData;\n}\n\nfunction getData(span: ReadableSpan): Record {\n const attributes = span.attributes;\n const data: Record = {};\n\n if (span.kind !== SpanKind.INTERNAL) {\n data['otel.kind'] = SpanKind[span.kind];\n }\n\n // eslint-disable-next-line deprecation/deprecation\n const maybeHttpStatusCodeAttribute = attributes[SEMATTRS_HTTP_STATUS_CODE];\n if (maybeHttpStatusCodeAttribute) {\n data[ATTR_HTTP_RESPONSE_STATUS_CODE] = maybeHttpStatusCodeAttribute as string;\n }\n\n const requestData = getRequestSpanData(span);\n\n if (requestData.url) {\n data.url = requestData.url;\n }\n\n if (requestData['http.query']) {\n data['http.query'] = requestData['http.query'].slice(1);\n }\n if (requestData['http.fragment']) {\n data['http.fragment'] = requestData['http.fragment'].slice(1);\n }\n\n return data;\n}\n","import type { Context } from '@opentelemetry/api';\nimport { ROOT_CONTEXT, trace } from '@opentelemetry/api';\nimport type { ReadableSpan, Span, SpanProcessor as SpanProcessorInterface } from '@opentelemetry/sdk-trace-base';\nimport {\n addChildSpanToSpan,\n getClient,\n getDefaultCurrentScope,\n getDefaultIsolationScope,\n logSpanEnd,\n logSpanStart,\n setCapturedScopesOnSpan,\n} from '@sentry/core';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_PARENT_IS_REMOTE } from './semanticAttributes';\nimport { SentrySpanExporter } from './spanExporter';\nimport { getScopesFromContext } from './utils/contextData';\nimport { setIsSetup } from './utils/setupCheck';\n\nfunction onSpanStart(span: Span, parentContext: Context): void {\n // This is a reliable way to get the parent span - because this is exactly how the parent is identified in the OTEL SDK\n const parentSpan = trace.getSpan(parentContext);\n\n let scopes = getScopesFromContext(parentContext);\n\n // We need access to the parent span in order to be able to move up the span tree for breadcrumbs\n if (parentSpan && !parentSpan.spanContext().isRemote) {\n addChildSpanToSpan(parentSpan, span);\n }\n\n // We need this in the span exporter\n if (parentSpan?.spanContext().isRemote) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_PARENT_IS_REMOTE, true);\n }\n\n // The root context does not have scopes stored, so we check for this specifically\n // As fallback we attach the global scopes\n if (parentContext === ROOT_CONTEXT) {\n scopes = {\n scope: getDefaultCurrentScope(),\n isolationScope: getDefaultIsolationScope(),\n };\n }\n\n // We need the scope at time of span creation in order to apply it to the event when the span is finished\n if (scopes) {\n setCapturedScopesOnSpan(span, scopes.scope, scopes.isolationScope);\n }\n\n logSpanStart(span);\n\n const client = getClient();\n client?.emit('spanStart', span);\n}\n\nfunction onSpanEnd(span: Span): void {\n logSpanEnd(span);\n\n const client = getClient();\n client?.emit('spanEnd', span);\n}\n\n/**\n * Converts OpenTelemetry Spans to Sentry Spans and sends them to Sentry via\n * the Sentry SDK.\n */\nexport class SentrySpanProcessor implements SpanProcessorInterface {\n private _exporter: SentrySpanExporter;\n\n public constructor(options?: { timeout?: number }) {\n setIsSetup('SentrySpanProcessor');\n this._exporter = new SentrySpanExporter(options);\n }\n\n /**\n * @inheritDoc\n */\n public async forceFlush(): Promise {\n this._exporter.flush();\n }\n\n /**\n * @inheritDoc\n */\n public async shutdown(): Promise {\n this._exporter.clear();\n }\n\n /**\n * @inheritDoc\n */\n public onStart(span: Span, parentContext: Context): void {\n onSpanStart(span, parentContext);\n }\n\n /** @inheritDoc */\n public onEnd(span: Span & ReadableSpan): void {\n onSpanEnd(span);\n\n this._exporter.export(span);\n }\n}\n","/* eslint-disable complexity */\nimport type { Context, Span, TraceState as TraceStateInterface } from '@opentelemetry/api';\nimport { isSpanContextValid, SpanKind, trace } from '@opentelemetry/api';\nimport { TraceState } from '@opentelemetry/core';\nimport type { Sampler, SamplingResult } from '@opentelemetry/sdk-trace-base';\nimport { SamplingDecision } from '@opentelemetry/sdk-trace-base';\nimport {\n ATTR_HTTP_REQUEST_METHOD,\n ATTR_URL_FULL,\n SEMATTRS_HTTP_METHOD,\n SEMATTRS_HTTP_URL,\n} from '@opentelemetry/semantic-conventions';\nimport type { Client, SpanAttributes } from '@sentry/core';\nimport {\n _INTERNAL_safeMathRandom,\n baggageHeaderToDynamicSamplingContext,\n debug,\n hasSpansEnabled,\n parseSampleRate,\n sampleSpan,\n SEMANTIC_ATTRIBUTE_SENTRY_OP,\n SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE,\n} from '@sentry/core';\nimport {\n SENTRY_TRACE_STATE_DSC,\n SENTRY_TRACE_STATE_SAMPLE_RAND,\n SENTRY_TRACE_STATE_SAMPLE_RATE,\n SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING,\n SENTRY_TRACE_STATE_URL,\n} from './constants';\nimport { DEBUG_BUILD } from './debug-build';\nimport { getScopesFromContext } from './utils/contextData';\nimport { getSamplingDecision } from './utils/getSamplingDecision';\nimport { inferSpanData } from './utils/parseSpanDescription';\nimport { setIsSetup } from './utils/setupCheck';\n\n/**\n * A custom OTEL sampler that uses Sentry sampling rates to make its decision\n */\nexport class SentrySampler implements Sampler {\n private _client: Client;\n\n public constructor(client: Client) {\n this._client = client;\n setIsSetup('SentrySampler');\n }\n\n /** @inheritDoc */\n public shouldSample(\n context: Context,\n traceId: string,\n spanName: string,\n spanKind: SpanKind,\n spanAttributes: SpanAttributes,\n _links: unknown,\n ): SamplingResult {\n const options = this._client.getOptions();\n\n const parentSpan = getValidSpan(context);\n const parentContext = parentSpan?.spanContext();\n\n if (!hasSpansEnabled(options)) {\n return wrapSamplingDecision({ decision: undefined, context, spanAttributes });\n }\n\n // `ATTR_HTTP_REQUEST_METHOD` is the new attribute, but we still support the old one, `SEMATTRS_HTTP_METHOD`, for now.\n // eslint-disable-next-line deprecation/deprecation\n const maybeSpanHttpMethod = spanAttributes[SEMATTRS_HTTP_METHOD] || spanAttributes[ATTR_HTTP_REQUEST_METHOD];\n\n // If we have a http.client span that has no local parent, we never want to sample it\n // but we want to leave downstream sampling decisions up to the server\n if (spanKind === SpanKind.CLIENT && maybeSpanHttpMethod && (!parentSpan || parentContext?.isRemote)) {\n return wrapSamplingDecision({ decision: undefined, context, spanAttributes });\n }\n\n const parentSampled = parentSpan ? getParentSampled(parentSpan, traceId, spanName) : undefined;\n const isRootSpan = !parentSpan || parentContext?.isRemote;\n\n // We only sample based on parameters (like tracesSampleRate or tracesSampler) for root spans (which is done in sampleSpan).\n // Non-root-spans simply inherit the sampling decision from their parent.\n if (!isRootSpan) {\n return wrapSamplingDecision({\n decision: parentSampled ? SamplingDecision.RECORD_AND_SAMPLED : SamplingDecision.NOT_RECORD,\n context,\n spanAttributes,\n });\n }\n\n // We want to pass the inferred name & attributes to the sampler method\n const {\n description: inferredSpanName,\n data: inferredAttributes,\n op,\n } = inferSpanData(spanName, spanAttributes, spanKind);\n\n const mergedAttributes = {\n ...inferredAttributes,\n ...spanAttributes,\n };\n\n if (op) {\n mergedAttributes[SEMANTIC_ATTRIBUTE_SENTRY_OP] = op;\n }\n\n const mutableSamplingDecision = { decision: true };\n this._client.emit(\n 'beforeSampling',\n {\n spanAttributes: mergedAttributes,\n spanName: inferredSpanName,\n parentSampled: parentSampled,\n parentContext: parentContext,\n },\n mutableSamplingDecision,\n );\n if (!mutableSamplingDecision.decision) {\n return wrapSamplingDecision({ decision: undefined, context, spanAttributes });\n }\n\n const { isolationScope } = getScopesFromContext(context) ?? {};\n\n const dscString = parentContext?.traceState ? parentContext.traceState.get(SENTRY_TRACE_STATE_DSC) : undefined;\n const dsc = dscString ? baggageHeaderToDynamicSamplingContext(dscString) : undefined;\n\n const sampleRand = parseSampleRate(dsc?.sample_rand) ?? _INTERNAL_safeMathRandom();\n\n const [sampled, sampleRate, localSampleRateWasApplied] = sampleSpan(\n options,\n {\n name: inferredSpanName,\n attributes: mergedAttributes,\n normalizedRequest: isolationScope?.getScopeData().sdkProcessingMetadata.normalizedRequest,\n parentSampled,\n parentSampleRate: parseSampleRate(dsc?.sample_rate),\n },\n sampleRand,\n );\n\n const method = `${maybeSpanHttpMethod}`.toUpperCase();\n if (method === 'OPTIONS' || method === 'HEAD') {\n DEBUG_BUILD && debug.log(`[Tracing] Not sampling span because HTTP method is '${method}' for ${spanName}`);\n\n return wrapSamplingDecision({\n decision: SamplingDecision.NOT_RECORD,\n context,\n spanAttributes,\n sampleRand,\n downstreamTraceSampleRate: 0, // we don't want to sample anything in the downstream trace either\n });\n }\n\n if (\n !sampled &&\n // We check for `parentSampled === undefined` because we only want to record client reports for spans that are trace roots (ie. when there was incoming trace)\n parentSampled === undefined\n ) {\n DEBUG_BUILD && debug.log('[Tracing] Discarding root span because its trace was not chosen to be sampled.');\n this._client.recordDroppedEvent('sample_rate', 'transaction');\n }\n\n return {\n ...wrapSamplingDecision({\n decision: sampled ? SamplingDecision.RECORD_AND_SAMPLED : SamplingDecision.NOT_RECORD,\n context,\n spanAttributes,\n sampleRand,\n downstreamTraceSampleRate: localSampleRateWasApplied ? sampleRate : undefined,\n }),\n attributes: {\n // We set the sample rate on the span when a local sample rate was applied to better understand how traces were sampled in Sentry\n [SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE]: localSampleRateWasApplied ? sampleRate : undefined,\n },\n };\n }\n\n /** Returns the sampler name or short description with the configuration. */\n public toString(): string {\n return 'SentrySampler';\n }\n}\n\nfunction getParentSampled(parentSpan: Span, traceId: string, spanName: string): boolean | undefined {\n const parentContext = parentSpan.spanContext();\n\n // Only inherit sample rate if `traceId` is the same\n // Note for testing: `isSpanContextValid()` checks the format of the traceId/spanId, so we need to pass valid ones\n if (isSpanContextValid(parentContext) && parentContext.traceId === traceId) {\n if (parentContext.isRemote) {\n const parentSampled = getSamplingDecision(parentSpan.spanContext());\n DEBUG_BUILD &&\n debug.log(`[Tracing] Inheriting remote parent's sampled decision for ${spanName}: ${parentSampled}`);\n return parentSampled;\n }\n\n const parentSampled = getSamplingDecision(parentContext);\n DEBUG_BUILD && debug.log(`[Tracing] Inheriting parent's sampled decision for ${spanName}: ${parentSampled}`);\n return parentSampled;\n }\n\n return undefined;\n}\n\n/**\n * Wrap a sampling decision with data that Sentry needs to work properly with it.\n * If you pass `decision: undefined`, it will be treated as `NOT_RECORDING`, but in contrast to passing `NOT_RECORDING`\n * it will not propagate this decision to downstream Sentry SDKs.\n */\nexport function wrapSamplingDecision({\n decision,\n context,\n spanAttributes,\n sampleRand,\n downstreamTraceSampleRate,\n}: {\n decision: SamplingDecision | undefined;\n context: Context;\n spanAttributes: SpanAttributes;\n sampleRand?: number;\n downstreamTraceSampleRate?: number;\n}): SamplingResult {\n let traceState = getBaseTraceState(context, spanAttributes);\n\n // We will override the propagated sample rate downstream when\n // - the tracesSampleRate is applied\n // - the tracesSampler is invoked\n // Since unsampled OTEL spans (NonRecordingSpans) cannot hold attributes we need to store this on the (trace)context.\n if (downstreamTraceSampleRate !== undefined) {\n traceState = traceState.set(SENTRY_TRACE_STATE_SAMPLE_RATE, `${downstreamTraceSampleRate}`);\n }\n\n if (sampleRand !== undefined) {\n traceState = traceState.set(SENTRY_TRACE_STATE_SAMPLE_RAND, `${sampleRand}`);\n }\n\n // If the decision is undefined, we treat it as NOT_RECORDING, but we don't propagate this decision to downstream SDKs\n // Which is done by not setting `SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING` traceState\n if (decision == undefined) {\n return { decision: SamplingDecision.NOT_RECORD, traceState };\n }\n\n if (decision === SamplingDecision.NOT_RECORD) {\n return { decision, traceState: traceState.set(SENTRY_TRACE_STATE_SAMPLED_NOT_RECORDING, '1') };\n }\n\n return { decision, traceState };\n}\n\nfunction getBaseTraceState(context: Context, spanAttributes: SpanAttributes): TraceStateInterface {\n const parentSpan = trace.getSpan(context);\n const parentContext = parentSpan?.spanContext();\n\n let traceState = parentContext?.traceState || new TraceState();\n\n // We always keep the URL on the trace state, so we can access it in the propagator\n // `ATTR_URL_FULL` is the new attribute, but we still support the old one, `ATTR_HTTP_URL`, for now.\n // eslint-disable-next-line deprecation/deprecation\n const url = spanAttributes[SEMATTRS_HTTP_URL] || spanAttributes[ATTR_URL_FULL];\n if (url && typeof url === 'string') {\n traceState = traceState.set(SENTRY_TRACE_STATE_URL, url);\n }\n\n return traceState;\n}\n\n/**\n * If the active span is invalid, we want to ignore it as parent.\n * This aligns with how otel tracers and default samplers handle these cases.\n */\nfunction getValidSpan(context: Context): Span | undefined {\n const span = trace.getSpan(context);\n return span && isSpanContextValid(span.spanContext()) ? span : undefined;\n}\n","import { AsyncLocalStorageContextManager } from '@opentelemetry/context-async-hooks';\nimport { wrapContextManagerClass } from '@sentry/opentelemetry';\n\n/**\n * This is a custom ContextManager for OpenTelemetry, which extends the default AsyncLocalStorageContextManager.\n * It ensures that we create a new hub per context, so that the OTEL Context & the Sentry Scopes are always in sync.\n *\n * Note that we currently only support AsyncHooks with this,\n * but since this should work for Node 14+ anyhow that should be good enough.\n */\nexport const SentryContextManager = wrapContextManagerClass(AsyncLocalStorageContextManager);\n","import { diag, DiagLogLevel } from '@opentelemetry/api';\nimport { debug } from '@sentry/core';\n\n/**\n * Setup the OTEL logger to use our own debug logger.\n */\nexport function setupOpenTelemetryLogger(): void {\n // Disable diag, to ensure this works even if called multiple times\n diag.disable();\n diag.setLogger(\n {\n error: debug.error,\n warn: debug.warn,\n info: debug.log,\n debug: debug.log,\n verbose: debug.log,\n },\n DiagLogLevel.DEBUG,\n );\n}\n","import type { ChildProcess } from 'node:child_process';\nimport * as diagnosticsChannel from 'node:diagnostics_channel';\nimport type { Worker } from 'node:worker_threads';\nimport { addBreadcrumb, captureException, defineIntegration } from '@sentry/core';\n\ninterface Options {\n /**\n * Whether to include child process arguments in breadcrumbs data.\n *\n * @default false\n */\n includeChildProcessArgs?: boolean;\n\n /**\n * Whether to capture errors from worker threads.\n *\n * @default true\n */\n captureWorkerErrors?: boolean;\n}\n\nconst INTEGRATION_NAME = 'ChildProcess';\n\n/**\n * Capture breadcrumbs and events for child processes and worker threads.\n */\nexport const childProcessIntegration = defineIntegration((options: Options = {}) => {\n return {\n name: INTEGRATION_NAME,\n setup() {\n diagnosticsChannel.channel('child_process').subscribe((event: unknown) => {\n if (event && typeof event === 'object' && 'process' in event) {\n captureChildProcessEvents(event.process as ChildProcess, options);\n }\n });\n\n diagnosticsChannel.channel('worker_threads').subscribe((event: unknown) => {\n if (event && typeof event === 'object' && 'worker' in event) {\n captureWorkerThreadEvents(event.worker as Worker, options);\n }\n });\n },\n };\n});\n\nfunction captureChildProcessEvents(child: ChildProcess, options: Options): void {\n let hasExited = false;\n let data: Record | undefined;\n\n child\n .on('spawn', () => {\n // This is Sentry getting macOS OS context\n if (child.spawnfile === '/usr/bin/sw_vers') {\n hasExited = true;\n return;\n }\n\n data = { spawnfile: child.spawnfile };\n if (options.includeChildProcessArgs) {\n data.spawnargs = child.spawnargs;\n }\n })\n .on('exit', code => {\n if (!hasExited) {\n hasExited = true;\n\n // Only log for non-zero exit codes\n if (code !== null && code !== 0) {\n addBreadcrumb({\n category: 'child_process',\n message: `Child process exited with code '${code}'`,\n level: code === 0 ? 'info' : 'warning',\n data,\n });\n }\n }\n })\n .on('error', error => {\n if (!hasExited) {\n hasExited = true;\n\n addBreadcrumb({\n category: 'child_process',\n message: `Child process errored with '${error.message}'`,\n level: 'error',\n data,\n });\n }\n });\n}\n\nfunction captureWorkerThreadEvents(worker: Worker, options: Options): void {\n let threadId: number | undefined;\n\n worker\n .on('online', () => {\n threadId = worker.threadId;\n })\n .on('error', error => {\n if (options.captureWorkerErrors !== false) {\n captureException(error, {\n mechanism: { type: 'auto.child_process.worker_thread', handled: false, data: { threadId: String(threadId) } },\n });\n } else {\n addBreadcrumb({\n category: 'worker_thread',\n message: `Worker thread errored with '${error.message}'`,\n level: 'error',\n data: { threadId },\n });\n }\n });\n}\n","/* eslint-disable max-lines */\n\nimport { execFile } from 'node:child_process';\nimport { readdir, readFile } from 'node:fs';\nimport * as os from 'node:os';\nimport { join } from 'node:path';\nimport { promisify } from 'node:util';\nimport type {\n AppContext,\n CloudResourceContext,\n Contexts,\n CultureContext,\n DeviceContext,\n Event,\n IntegrationFn,\n OsContext,\n} from '@sentry/core';\nimport { defineIntegration } from '@sentry/core';\n\nexport const readFileAsync = promisify(readFile);\nexport const readDirAsync = promisify(readdir);\n\n// Process enhanced with methods from Node 18, 20, 22 as @types/node\n// is on `14.18.0` to match minimum version requirements of the SDK\ninterface ProcessWithCurrentValues extends NodeJS.Process {\n availableMemory?(): number;\n}\n\nconst INTEGRATION_NAME = 'Context';\n\ninterface DeviceContextOptions {\n cpu?: boolean;\n memory?: boolean;\n}\n\ninterface ContextOptions {\n app?: boolean;\n os?: boolean;\n device?: DeviceContextOptions | boolean;\n culture?: boolean;\n cloudResource?: boolean;\n}\n\nconst _nodeContextIntegration = ((options: ContextOptions = {}) => {\n let cachedContext: Promise | undefined;\n\n const _options = {\n app: true,\n os: true,\n device: true,\n culture: true,\n cloudResource: true,\n ...options,\n };\n\n /** Add contexts to the event. Caches the context so we only look it up once. */\n async function addContext(event: Event): Promise {\n if (cachedContext === undefined) {\n cachedContext = _getContexts();\n }\n\n const updatedContext = _updateContext(await cachedContext);\n\n // TODO(v11): conditional with `sendDefaultPii` here?\n event.contexts = {\n ...event.contexts,\n app: { ...updatedContext.app, ...event.contexts?.app },\n os: { ...updatedContext.os, ...event.contexts?.os },\n device: { ...updatedContext.device, ...event.contexts?.device },\n culture: { ...updatedContext.culture, ...event.contexts?.culture },\n cloud_resource: { ...updatedContext.cloud_resource, ...event.contexts?.cloud_resource },\n };\n\n return event;\n }\n\n /** Get the contexts from node. */\n async function _getContexts(): Promise {\n const contexts: Contexts = {};\n\n if (_options.os) {\n contexts.os = await getOsContext();\n }\n\n if (_options.app) {\n contexts.app = getAppContext();\n }\n\n if (_options.device) {\n contexts.device = getDeviceContext(_options.device);\n }\n\n if (_options.culture) {\n const culture = getCultureContext();\n\n if (culture) {\n contexts.culture = culture;\n }\n }\n\n if (_options.cloudResource) {\n contexts.cloud_resource = getCloudResourceContext();\n }\n\n return contexts;\n }\n\n return {\n name: INTEGRATION_NAME,\n processEvent(event) {\n return addContext(event);\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Capture context about the environment and the device that the client is running on, to events.\n */\nexport const nodeContextIntegration = defineIntegration(_nodeContextIntegration);\n\n/**\n * Updates the context with dynamic values that can change\n */\nfunction _updateContext(contexts: Contexts): Contexts {\n // Only update properties if they exist\n\n if (contexts.app?.app_memory) {\n contexts.app.app_memory = process.memoryUsage().rss;\n }\n\n if (contexts.app?.free_memory && typeof (process as ProcessWithCurrentValues).availableMemory === 'function') {\n const freeMemory = (process as ProcessWithCurrentValues).availableMemory?.();\n if (freeMemory != null) {\n contexts.app.free_memory = freeMemory;\n }\n }\n\n if (contexts.device?.free_memory) {\n contexts.device.free_memory = os.freemem();\n }\n\n return contexts;\n}\n\n/**\n * Returns the operating system context.\n *\n * Based on the current platform, this uses a different strategy to provide the\n * most accurate OS information. Since this might involve spawning subprocesses\n * or accessing the file system, this should only be executed lazily and cached.\n *\n * - On macOS (Darwin), this will execute the `sw_vers` utility. The context\n * has a `name`, `version`, `build` and `kernel_version` set.\n * - On Linux, this will try to load a distribution release from `/etc` and set\n * the `name`, `version` and `kernel_version` fields.\n * - On all other platforms, only a `name` and `version` will be returned. Note\n * that `version` might actually be the kernel version.\n */\nasync function getOsContext(): Promise {\n const platformId = os.platform();\n switch (platformId) {\n case 'darwin':\n return getDarwinInfo();\n case 'linux':\n return getLinuxInfo();\n default:\n return {\n name: PLATFORM_NAMES[platformId] || platformId,\n version: os.release(),\n };\n }\n}\n\nfunction getCultureContext(): CultureContext | undefined {\n try {\n if (typeof process.versions.icu !== 'string') {\n // Node was built without ICU support\n return;\n }\n\n // Check that node was built with full Intl support. Its possible it was built without support for non-English\n // locales which will make resolvedOptions inaccurate\n //\n // https://nodejs.org/api/intl.html#detecting-internationalization-support\n const january = new Date(9e8);\n const spanish = new Intl.DateTimeFormat('es', { month: 'long' });\n if (spanish.format(january) === 'enero') {\n const options = Intl.DateTimeFormat().resolvedOptions();\n\n return {\n locale: options.locale,\n timezone: options.timeZone,\n };\n }\n } catch {\n //\n }\n\n return;\n}\n\n/**\n * Get app context information from process\n */\nexport function getAppContext(): AppContext {\n const app_memory = process.memoryUsage().rss;\n // oxlint-disable-next-line sdk/no-unsafe-random-apis\n const app_start_time = new Date(Date.now() - process.uptime() * 1000).toISOString();\n // https://nodejs.org/api/process.html#processavailablememory\n const appContext: AppContext = { app_start_time, app_memory };\n\n if (typeof (process as ProcessWithCurrentValues).availableMemory === 'function') {\n const freeMemory = (process as ProcessWithCurrentValues).availableMemory?.();\n if (freeMemory != null) {\n appContext.free_memory = freeMemory;\n }\n }\n\n return appContext;\n}\n\n/**\n * Gets device information from os\n */\nexport function getDeviceContext(deviceOpt: DeviceContextOptions | true): DeviceContext {\n const device: DeviceContext = {};\n\n // Sometimes os.uptime() throws due to lacking permissions: https://github.com/getsentry/sentry-javascript/issues/8202\n let uptime;\n try {\n uptime = os.uptime();\n } catch {\n // noop\n }\n\n // os.uptime or its return value seem to be undefined in certain environments (e.g. Azure functions).\n // Hence, we only set boot time, if we get a valid uptime value.\n // @see https://github.com/getsentry/sentry-javascript/issues/5856\n if (typeof uptime === 'number') {\n // oxlint-disable-next-line sdk/no-unsafe-random-apis\n device.boot_time = new Date(Date.now() - uptime * 1000).toISOString();\n }\n\n device.arch = os.arch();\n\n if (deviceOpt === true || deviceOpt.memory) {\n device.memory_size = os.totalmem();\n device.free_memory = os.freemem();\n }\n\n if (deviceOpt === true || deviceOpt.cpu) {\n const cpuInfo = os.cpus() as os.CpuInfo[] | undefined;\n const firstCpu = cpuInfo?.[0];\n if (firstCpu) {\n device.processor_count = cpuInfo.length;\n device.cpu_description = firstCpu.model;\n device.processor_frequency = firstCpu.speed;\n }\n }\n\n return device;\n}\n\n/** Mapping of Node's platform names to actual OS names. */\nconst PLATFORM_NAMES: { [platform: string]: string } = {\n aix: 'IBM AIX',\n freebsd: 'FreeBSD',\n openbsd: 'OpenBSD',\n sunos: 'SunOS',\n win32: 'Windows',\n ohos: 'OpenHarmony',\n android: 'Android',\n};\n\n/** Linux version file to check for a distribution. */\ninterface DistroFile {\n /** The file name, located in `/etc`. */\n name: string;\n /** Potential distributions to check. */\n distros: [string, ...string[]];\n}\n\n/** Mapping of linux release files located in /etc to distributions. */\nconst LINUX_DISTROS: DistroFile[] = [\n { name: 'fedora-release', distros: ['Fedora'] },\n { name: 'redhat-release', distros: ['Red Hat Linux', 'Centos'] },\n { name: 'redhat_version', distros: ['Red Hat Linux'] },\n { name: 'SuSE-release', distros: ['SUSE Linux'] },\n { name: 'lsb-release', distros: ['Ubuntu Linux', 'Arch Linux'] },\n { name: 'debian_version', distros: ['Debian'] },\n { name: 'debian_release', distros: ['Debian'] },\n { name: 'arch-release', distros: ['Arch Linux'] },\n { name: 'gentoo-release', distros: ['Gentoo Linux'] },\n { name: 'novell-release', distros: ['SUSE Linux'] },\n { name: 'alpine-release', distros: ['Alpine Linux'] },\n];\n\n/** Functions to extract the OS version from Linux release files. */\nconst LINUX_VERSIONS: {\n [identifier: string]: (content: string) => string | undefined;\n} = {\n alpine: content => content,\n arch: content => matchFirst(/distrib_release=(.*)/, content),\n centos: content => matchFirst(/release ([^ ]+)/, content),\n debian: content => content,\n fedora: content => matchFirst(/release (..)/, content),\n mint: content => matchFirst(/distrib_release=(.*)/, content),\n red: content => matchFirst(/release ([^ ]+)/, content),\n suse: content => matchFirst(/VERSION = (.*)\\n/, content),\n ubuntu: content => matchFirst(/distrib_release=(.*)/, content),\n};\n\n/**\n * Executes a regular expression with one capture group.\n *\n * @param regex A regular expression to execute.\n * @param text Content to execute the RegEx on.\n * @returns The captured string if matched; otherwise undefined.\n */\nfunction matchFirst(regex: RegExp, text: string): string | undefined {\n const match = regex.exec(text);\n return match ? match[1] : undefined;\n}\n\n/** Loads the macOS operating system context. */\nasync function getDarwinInfo(): Promise {\n // Default values that will be used in case no operating system information\n // can be loaded. The default version is computed via heuristics from the\n // kernel version, but the build ID is missing.\n const darwinInfo: OsContext = {\n kernel_version: os.release(),\n name: 'Mac OS X',\n version: `10.${Number(os.release().split('.')[0]) - 4}`,\n };\n\n try {\n // We try to load the actual macOS version by executing the `sw_vers` tool.\n // This tool should be available on every standard macOS installation. In\n // case this fails, we stick with the values computed above.\n\n const output = await new Promise((resolve, reject) => {\n execFile('/usr/bin/sw_vers', (error: Error | null, stdout: string) => {\n if (error) {\n reject(error);\n return;\n }\n resolve(stdout);\n });\n });\n\n darwinInfo.name = matchFirst(/^ProductName:\\s+(.*)$/m, output);\n darwinInfo.version = matchFirst(/^ProductVersion:\\s+(.*)$/m, output);\n darwinInfo.build = matchFirst(/^BuildVersion:\\s+(.*)$/m, output);\n } catch {\n // ignore\n }\n\n return darwinInfo;\n}\n\n/** Returns a distribution identifier to look up version callbacks. */\nfunction getLinuxDistroId(name: string): string {\n return (name.split(' ') as [string])[0].toLowerCase();\n}\n\n/** Loads the Linux operating system context. */\nasync function getLinuxInfo(): Promise {\n // By default, we cannot assume anything about the distribution or Linux\n // version. `os.release()` returns the kernel version and we assume a generic\n // \"Linux\" name, which will be replaced down below.\n const linuxInfo: OsContext = {\n kernel_version: os.release(),\n name: 'Linux',\n };\n\n try {\n // We start guessing the distribution by listing files in the /etc\n // directory. This is were most Linux distributions (except Knoppix) store\n // release files with certain distribution-dependent meta data. We search\n // for exactly one known file defined in `LINUX_DISTROS` and exit if none\n // are found. In case there are more than one file, we just stick with the\n // first one.\n const etcFiles = await readDirAsync('/etc');\n const distroFile = LINUX_DISTROS.find(file => etcFiles.includes(file.name));\n if (!distroFile) {\n return linuxInfo;\n }\n\n // Once that file is known, load its contents. To make searching in those\n // files easier, we lowercase the file contents. Since these files are\n // usually quite small, this should not allocate too much memory and we only\n // hold on to it for a very short amount of time.\n const distroPath = join('/etc', distroFile.name);\n const contents = (await readFileAsync(distroPath, { encoding: 'utf-8' })).toLowerCase();\n\n // Some Linux distributions store their release information in the same file\n // (e.g. RHEL and Centos). In those cases, we scan the file for an\n // identifier, that basically consists of the first word of the linux\n // distribution name (e.g. \"red\" for Red Hat). In case there is no match, we\n // just assume the first distribution in our list.\n const { distros } = distroFile;\n linuxInfo.name = distros.find(d => contents.indexOf(getLinuxDistroId(d)) >= 0) || distros[0];\n\n // Based on the found distribution, we can now compute the actual version\n // number. This is different for every distribution, so several strategies\n // are computed in `LINUX_VERSIONS`.\n const id = getLinuxDistroId(linuxInfo.name);\n linuxInfo.version = LINUX_VERSIONS[id]?.(contents);\n } catch {\n // ignore\n }\n\n return linuxInfo;\n}\n\n/**\n * Grabs some information about hosting provider based on best effort.\n */\nfunction getCloudResourceContext(): CloudResourceContext | undefined {\n if (process.env.VERCEL) {\n // https://vercel.com/docs/concepts/projects/environment-variables/system-environment-variables#system-environment-variables\n return {\n 'cloud.provider': 'vercel',\n 'cloud.region': process.env.VERCEL_REGION,\n };\n } else if (process.env.AWS_REGION) {\n // https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html\n return {\n 'cloud.provider': 'aws',\n 'cloud.region': process.env.AWS_REGION,\n 'cloud.platform': process.env.AWS_EXECUTION_ENV,\n };\n } else if (process.env.GCP_PROJECT) {\n // https://cloud.google.com/composer/docs/how-to/managing/environment-variables#reserved_variables\n return {\n 'cloud.provider': 'gcp',\n };\n } else if (process.env.ALIYUN_REGION_ID) {\n // TODO: find where I found these environment variables - at least gc.github.com returns something\n return {\n 'cloud.provider': 'alibaba_cloud',\n 'cloud.region': process.env.ALIYUN_REGION_ID,\n };\n } else if (process.env.WEBSITE_SITE_NAME && process.env.REGION_NAME) {\n // https://learn.microsoft.com/en-us/azure/app-service/reference-app-settings?tabs=kudu%2Cdotnet#app-environment\n return {\n 'cloud.provider': 'azure',\n 'cloud.region': process.env.REGION_NAME,\n };\n } else if (process.env.IBM_CLOUD_REGION) {\n // TODO: find where I found these environment variables - at least gc.github.com returns something\n return {\n 'cloud.provider': 'ibm_cloud',\n 'cloud.region': process.env.IBM_CLOUD_REGION,\n };\n } else if (process.env.TENCENTCLOUD_REGION) {\n // https://www.tencentcloud.com/document/product/583/32748\n return {\n 'cloud.provider': 'tencent_cloud',\n 'cloud.region': process.env.TENCENTCLOUD_REGION,\n 'cloud.account.id': process.env.TENCENTCLOUD_APPID,\n 'cloud.availability_zone': process.env.TENCENTCLOUD_ZONE,\n };\n } else if (process.env.NETLIFY) {\n // https://docs.netlify.com/configure-builds/environment-variables/#read-only-variables\n return {\n 'cloud.provider': 'netlify',\n };\n } else if (process.env.FLY_REGION) {\n // https://fly.io/docs/reference/runtime-environment/\n return {\n 'cloud.provider': 'fly.io',\n 'cloud.region': process.env.FLY_REGION,\n };\n } else if (process.env.DYNO) {\n // https://devcenter.heroku.com/articles/dynos#local-environment-variables\n return {\n 'cloud.provider': 'heroku',\n };\n } else {\n return undefined;\n }\n}\n","import { createReadStream } from 'node:fs';\nimport { createInterface } from 'node:readline';\nimport type { Event, IntegrationFn, StackFrame } from '@sentry/core';\nimport { debug, defineIntegration, LRUMap, snipLine } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build';\n\nconst LRU_FILE_CONTENTS_CACHE = new LRUMap>(10);\nconst LRU_FILE_CONTENTS_FS_READ_FAILED = new LRUMap(20);\nconst DEFAULT_LINES_OF_CONTEXT = 7;\nconst INTEGRATION_NAME = 'ContextLines';\n// Determines the upper bound of lineno/colno that we will attempt to read. Large colno values are likely to be\n// minified code while large lineno values are likely to be bundled code.\n// Exported for testing purposes.\nexport const MAX_CONTEXTLINES_COLNO: number = 1000;\nexport const MAX_CONTEXTLINES_LINENO: number = 10000;\n\ninterface ContextLinesOptions {\n /**\n * Sets the number of context lines for each frame when loading a file.\n * Defaults to 7.\n *\n * Set to 0 to disable loading and inclusion of source files.\n **/\n frameContextLines?: number;\n}\n\n/**\n * Exported for testing purposes.\n */\nexport function resetFileContentCache(): void {\n LRU_FILE_CONTENTS_CACHE.clear();\n}\n\n/**\n * Get or init map value\n */\nfunction emplace, K extends string, V>(map: T, key: K, contents: V): V {\n const value = map.get(key);\n\n if (value === undefined) {\n map.set(key, contents);\n return contents;\n }\n\n return value;\n}\n\n/**\n * Determines if context lines should be skipped for a file.\n * - .min.(mjs|cjs|js) files are and not useful since they dont point to the original source\n * - node: prefixed modules are part of the runtime and cannot be resolved to a file\n * - data: skip json, wasm and inline js https://nodejs.org/api/esm.html#data-imports\n */\nfunction shouldSkipContextLinesForFile(path: string): boolean {\n // Test the most common prefix and extension first. These are the ones we\n // are most likely to see in user applications and are the ones we can break out of first.\n if (path.startsWith('node:')) return true;\n if (path.endsWith('.min.js')) return true;\n if (path.endsWith('.min.cjs')) return true;\n if (path.endsWith('.min.mjs')) return true;\n if (path.startsWith('data:')) return true;\n return false;\n}\n\n/**\n * Determines if we should skip contextlines based off the max lineno and colno values.\n */\nfunction shouldSkipContextLinesForFrame(frame: StackFrame): boolean {\n if (frame.lineno !== undefined && frame.lineno > MAX_CONTEXTLINES_LINENO) return true;\n if (frame.colno !== undefined && frame.colno > MAX_CONTEXTLINES_COLNO) return true;\n return false;\n}\n/**\n * Checks if we have all the contents that we need in the cache.\n */\nfunction rangeExistsInContentCache(file: string, range: ReadlineRange): boolean {\n const contents = LRU_FILE_CONTENTS_CACHE.get(file);\n if (contents === undefined) return false;\n\n for (let i = range[0]; i <= range[1]; i++) {\n if (contents[i] === undefined) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Creates contiguous ranges of lines to read from a file. In the case where context lines overlap,\n * the ranges are merged to create a single range.\n */\nfunction makeLineReaderRanges(lines: number[], linecontext: number): ReadlineRange[] {\n if (!lines.length) {\n return [];\n }\n\n let i = 0;\n const line = lines[0];\n\n if (typeof line !== 'number') {\n return [];\n }\n\n let current = makeContextRange(line, linecontext);\n const out: ReadlineRange[] = [];\n // eslint-disable-next-line no-constant-condition\n while (true) {\n if (i === lines.length - 1) {\n out.push(current);\n break;\n }\n\n // If the next line falls into the current range, extend the current range to lineno + linecontext.\n const next = lines[i + 1];\n if (typeof next !== 'number') {\n break;\n }\n if (next <= current[1]) {\n current[1] = next + linecontext;\n } else {\n out.push(current);\n current = makeContextRange(next, linecontext);\n }\n\n i++;\n }\n\n return out;\n}\n\n/**\n * Extracts lines from a file and stores them in a cache.\n */\nfunction getContextLinesFromFile(path: string, ranges: ReadlineRange[], output: Record): Promise {\n return new Promise((resolve, _reject) => {\n // It is important *not* to have any async code between createInterface and the 'line' event listener\n // as it will cause the 'line' event to\n // be emitted before the listener is attached.\n const stream = createReadStream(path);\n const lineReaded = createInterface({\n input: stream,\n });\n\n // We need to explicitly destroy the stream to prevent memory leaks,\n // removing the listeners on the readline interface is not enough.\n // See: https://github.com/nodejs/node/issues/9002 and https://github.com/getsentry/sentry-javascript/issues/14892\n function destroyStreamAndResolve(): void {\n stream.destroy();\n resolve();\n }\n\n // Init at zero and increment at the start of the loop because lines are 1 indexed.\n let lineNumber = 0;\n let currentRangeIndex = 0;\n const range = ranges[currentRangeIndex];\n if (range === undefined) {\n // We should never reach this point, but if we do, we should resolve the promise to prevent it from hanging.\n destroyStreamAndResolve();\n return;\n }\n let rangeStart = range[0];\n let rangeEnd = range[1];\n\n // We use this inside Promise.all, so we need to resolve the promise even if there is an error\n // to prevent Promise.all from short circuiting the rest.\n function onStreamError(e: Error): void {\n // Mark file path as failed to read and prevent multiple read attempts.\n LRU_FILE_CONTENTS_FS_READ_FAILED.set(path, 1);\n DEBUG_BUILD && debug.error(`Failed to read file: ${path}. Error: ${e}`);\n lineReaded.close();\n lineReaded.removeAllListeners();\n destroyStreamAndResolve();\n }\n\n // We need to handle the error event to prevent the process from crashing in < Node 16\n // https://github.com/nodejs/node/pull/31603\n stream.on('error', onStreamError);\n lineReaded.on('error', onStreamError);\n lineReaded.on('close', destroyStreamAndResolve);\n\n lineReaded.on('line', line => {\n lineNumber++;\n if (lineNumber < rangeStart) return;\n\n // !Warning: This mutates the cache by storing the snipped line into the cache.\n output[lineNumber] = snipLine(line, 0);\n\n if (lineNumber >= rangeEnd) {\n if (currentRangeIndex === ranges.length - 1) {\n // We need to close the file stream and remove listeners, else the reader will continue to run our listener;\n lineReaded.close();\n lineReaded.removeAllListeners();\n return;\n }\n currentRangeIndex++;\n const range = ranges[currentRangeIndex];\n if (range === undefined) {\n // This should never happen as it means we have a bug in the context.\n lineReaded.close();\n lineReaded.removeAllListeners();\n return;\n }\n rangeStart = range[0];\n rangeEnd = range[1];\n }\n });\n });\n}\n\n/**\n * Adds surrounding (context) lines of the line that an exception occurred on to the event.\n * This is done by reading the file line by line and extracting the lines. The extracted lines are stored in\n * a cache to prevent multiple reads of the same file. Failures to read a file are similarly cached to prevent multiple\n * failing reads from happening.\n */\n/* eslint-disable complexity */\nasync function addSourceContext(event: Event, contextLines: number): Promise {\n // keep a lookup map of which files we've already enqueued to read,\n // so we don't enqueue the same file multiple times which would cause multiple i/o reads\n const filesToLines: Record = {};\n\n if (contextLines > 0 && event.exception?.values) {\n for (const exception of event.exception.values) {\n if (!exception.stacktrace?.frames?.length) {\n continue;\n }\n\n // Maps preserve insertion order, so we iterate in reverse, starting at the\n // outermost frame and closer to where the exception has occurred (poor mans priority)\n for (let i = exception.stacktrace.frames.length - 1; i >= 0; i--) {\n const frame: StackFrame | undefined = exception.stacktrace.frames[i];\n const filename = frame?.filename;\n\n if (\n !frame ||\n typeof filename !== 'string' ||\n typeof frame.lineno !== 'number' ||\n shouldSkipContextLinesForFile(filename) ||\n shouldSkipContextLinesForFrame(frame)\n ) {\n continue;\n }\n\n const filesToLinesOutput = filesToLines[filename];\n if (!filesToLinesOutput) filesToLines[filename] = [];\n // @ts-expect-error this is defined above\n filesToLines[filename].push(frame.lineno);\n }\n }\n }\n\n const files = Object.keys(filesToLines);\n if (files.length == 0) {\n return event;\n }\n\n const readlinePromises: Promise[] = [];\n for (const file of files) {\n // If we failed to read this before, dont try reading it again.\n if (LRU_FILE_CONTENTS_FS_READ_FAILED.get(file)) {\n continue;\n }\n\n const filesToLineRanges = filesToLines[file];\n if (!filesToLineRanges) {\n continue;\n }\n\n // Sort ranges so that they are sorted by line increasing order and match how the file is read.\n filesToLineRanges.sort((a, b) => a - b);\n // Check if the contents are already in the cache and if we can avoid reading the file again.\n const ranges = makeLineReaderRanges(filesToLineRanges, contextLines);\n if (ranges.every(r => rangeExistsInContentCache(file, r))) {\n continue;\n }\n\n const cache = emplace(LRU_FILE_CONTENTS_CACHE, file, {});\n readlinePromises.push(getContextLinesFromFile(file, ranges, cache));\n }\n\n // The promise rejections are caught in order to prevent them from short circuiting Promise.all\n await Promise.all(readlinePromises).catch(() => {\n DEBUG_BUILD && debug.log('Failed to read one or more source files and resolve context lines');\n });\n\n // Perform the same loop as above, but this time we can assume all files are in the cache\n // and attempt to add source context to frames.\n if (contextLines > 0 && event.exception?.values) {\n for (const exception of event.exception.values) {\n if (exception.stacktrace?.frames && exception.stacktrace.frames.length > 0) {\n addSourceContextToFrames(exception.stacktrace.frames, contextLines, LRU_FILE_CONTENTS_CACHE);\n }\n }\n }\n\n return event;\n}\n/* eslint-enable complexity */\n\n/** Adds context lines to frames */\nfunction addSourceContextToFrames(\n frames: StackFrame[],\n contextLines: number,\n cache: LRUMap>,\n): void {\n for (const frame of frames) {\n // Only add context if we have a filename and it hasn't already been added\n if (frame.filename && frame.context_line === undefined && typeof frame.lineno === 'number') {\n const contents = cache.get(frame.filename);\n if (contents === undefined) {\n continue;\n }\n\n addContextToFrame(frame.lineno, frame, contextLines, contents);\n }\n }\n}\n\n/**\n * Clears the context lines from a frame, used to reset a frame to its original state\n * if we fail to resolve all context lines for it.\n */\nfunction clearLineContext(frame: StackFrame): void {\n delete frame.pre_context;\n delete frame.context_line;\n delete frame.post_context;\n}\n\n/**\n * Resolves context lines before and after the given line number and appends them to the frame;\n */\nexport function addContextToFrame(\n lineno: number,\n frame: StackFrame,\n contextLines: number,\n contents: Record | undefined,\n): void {\n // When there is no line number in the frame, attaching context is nonsensical and will even break grouping.\n // We already check for lineno before calling this, but since StackFrame lineno ism optional, we check it again.\n if (frame.lineno === undefined || contents === undefined) {\n DEBUG_BUILD && debug.error('Cannot resolve context for frame with no lineno or file contents');\n return;\n }\n\n frame.pre_context = [];\n for (let i = makeRangeStart(lineno, contextLines); i < lineno; i++) {\n // We always expect the start context as line numbers cannot be negative. If we dont find a line, then\n // something went wrong somewhere. Clear the context and return without adding any linecontext.\n const line = contents[i];\n if (line === undefined) {\n clearLineContext(frame);\n DEBUG_BUILD && debug.error(`Could not find line ${i} in file ${frame.filename}`);\n return;\n }\n\n frame.pre_context.push(line);\n }\n\n // We should always have the context line. If we dont, something went wrong, so we clear the context and return\n // without adding any linecontext.\n if (contents[lineno] === undefined) {\n clearLineContext(frame);\n DEBUG_BUILD && debug.error(`Could not find line ${lineno} in file ${frame.filename}`);\n return;\n }\n\n frame.context_line = contents[lineno];\n\n const end = makeRangeEnd(lineno, contextLines);\n frame.post_context = [];\n for (let i = lineno + 1; i <= end; i++) {\n // Since we dont track when the file ends, we cant clear the context if we dont find a line as it could\n // just be that we reached the end of the file.\n const line = contents[i];\n if (line === undefined) {\n break;\n }\n frame.post_context.push(line);\n }\n}\n\n// Helper functions for generating line context ranges. They take a line number and the number of lines of context to\n// include before and after the line and generate an inclusive range of indices.\ntype ReadlineRange = [start: number, end: number];\n// Compute inclusive end context range\nfunction makeRangeStart(line: number, linecontext: number): number {\n return Math.max(1, line - linecontext);\n}\n// Compute inclusive start context range\nfunction makeRangeEnd(line: number, linecontext: number): number {\n return line + linecontext;\n}\n// Determine start and end indices for context range (inclusive);\nfunction makeContextRange(line: number, linecontext: number): [start: number, end: number] {\n return [makeRangeStart(line, linecontext), makeRangeEnd(line, linecontext)];\n}\n\n/** Exported only for tests, as a type-safe variant. */\nexport const _contextLinesIntegration = ((options: ContextLinesOptions = {}) => {\n const contextLines = options.frameContextLines !== undefined ? options.frameContextLines : DEFAULT_LINES_OF_CONTEXT;\n\n return {\n name: INTEGRATION_NAME,\n processEvent(event) {\n return addSourceContext(event, contextLines);\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Capture the lines before and after the frame's context.\n */\nexport const contextLinesIntegration = defineIntegration(_contextLinesIntegration);\n","let cachedDebuggerEnabled: boolean | undefined;\n\n/**\n * Was the debugger enabled when this function was first called?\n */\nexport async function isDebuggerEnabled(): Promise {\n if (cachedDebuggerEnabled === undefined) {\n try {\n // Node can be built without inspector support\n const inspector = await import('node:inspector');\n cachedDebuggerEnabled = !!inspector.url();\n } catch {\n cachedDebuggerEnabled = false;\n }\n }\n\n return cachedDebuggerEnabled;\n}\n","import type { Debugger } from 'node:inspector';\n\nexport type Variables = Record;\n\nexport type RateLimitIncrement = () => void;\n\n/**\n * The key used to store the local variables on the error object.\n */\nexport const LOCAL_VARIABLES_KEY = '__SENTRY_ERROR_LOCAL_VARIABLES__';\n\n/**\n * Creates a rate limiter that will call the disable callback when the rate limit is reached and the enable callback\n * when a timeout has occurred.\n * @param maxPerSecond Maximum number of calls per second\n * @param enable Callback to enable capture\n * @param disable Callback to disable capture\n * @returns A function to call to increment the rate limiter count\n */\nexport function createRateLimiter(\n maxPerSecond: number,\n enable: () => void,\n disable: (seconds: number) => void,\n): RateLimitIncrement {\n let count = 0;\n let retrySeconds = 5;\n let disabledTimeout = 0;\n\n setInterval(() => {\n if (disabledTimeout === 0) {\n if (count > maxPerSecond) {\n retrySeconds *= 2;\n disable(retrySeconds);\n\n // Cap at one day\n if (retrySeconds > 86400) {\n retrySeconds = 86400;\n }\n disabledTimeout = retrySeconds;\n }\n } else {\n disabledTimeout -= 1;\n\n if (disabledTimeout === 0) {\n enable();\n }\n }\n\n count = 0;\n }, 1_000).unref();\n\n return () => {\n count += 1;\n };\n}\n\n// Add types for the exception event data\nexport type PausedExceptionEvent = Debugger.PausedEventDataType & {\n data: {\n // This contains error.stack\n description: string;\n objectId?: string;\n };\n};\n\n/** Could this be an anonymous function? */\nexport function isAnonymous(name: string | undefined): boolean {\n return name !== undefined && (name.length === 0 || name === '?' || name === '');\n}\n\n/** Do the function names appear to match? */\nexport function functionNamesMatch(a: string | undefined, b: string | undefined): boolean {\n return a === b || `Object.${a}` === b || a === `Object.${b}` || (isAnonymous(a) && isAnonymous(b));\n}\n\nexport interface FrameVariables {\n function: string;\n vars?: Variables;\n}\n\nexport interface LocalVariablesIntegrationOptions {\n /**\n * Capture local variables for both caught and uncaught exceptions\n *\n * - When false, only uncaught exceptions will have local variables\n * - When true, both caught and uncaught exceptions will have local variables.\n *\n * Defaults to `true`.\n *\n * Capturing local variables for all exceptions can be expensive since the debugger pauses for every throw to collect\n * local variables.\n *\n * To reduce the likelihood of this feature impacting app performance or throughput, this feature is rate-limited.\n * Once the rate limit is reached, local variables will only be captured for uncaught exceptions until a timeout has\n * been reached.\n */\n captureAllExceptions?: boolean;\n /**\n * Maximum number of exceptions to capture local variables for per second before rate limiting is triggered.\n */\n maxExceptionsPerSecond?: number;\n /**\n * When true, local variables will be captured for all frames, including those that are not in_app.\n *\n * Defaults to `false`.\n */\n includeOutOfAppFrames?: boolean;\n}\n\nexport interface LocalVariablesWorkerArgs extends LocalVariablesIntegrationOptions {\n /**\n * Whether to enable debug logging.\n */\n debug: boolean;\n /**\n * Base path used to calculate module name.\n *\n * Defaults to `dirname(process.argv[1])` and falls back to `process.cwd()`\n */\n basePath?: string;\n}\n","import { Worker } from 'node:worker_threads';\nimport type { Event, EventHint, Exception, IntegrationFn } from '@sentry/core';\nimport { debug, defineIntegration } from '@sentry/core';\nimport type { NodeClient } from '../../sdk/client';\nimport { isDebuggerEnabled } from '../../utils/debug';\nimport type { FrameVariables, LocalVariablesIntegrationOptions, LocalVariablesWorkerArgs } from './common';\nimport { functionNamesMatch, LOCAL_VARIABLES_KEY } from './common';\n\n// This string is a placeholder that gets overwritten with the worker code.\nexport const base64WorkerScript = '###LocalVariablesWorkerScript###';\n\nfunction log(...args: unknown[]): void {\n debug.log('[LocalVariables]', ...args);\n}\n\n/**\n * Adds local variables to exception frames\n */\nexport const localVariablesAsyncIntegration = defineIntegration(((\n integrationOptions: LocalVariablesIntegrationOptions = {},\n) => {\n function addLocalVariablesToException(exception: Exception, localVariables: FrameVariables[]): void {\n // Filter out frames where the function name is `new Promise` since these are in the error.stack frames\n // but do not appear in the debugger call frames\n const frames = (exception.stacktrace?.frames || []).filter(frame => frame.function !== 'new Promise');\n\n for (let i = 0; i < frames.length; i++) {\n // Sentry frames are in reverse order\n const frameIndex = frames.length - i - 1;\n\n const frameLocalVariables = localVariables[i];\n const frame = frames[frameIndex];\n\n if (!frame || !frameLocalVariables) {\n // Drop out if we run out of frames to match up\n break;\n }\n\n if (\n // We need to have vars to add\n frameLocalVariables.vars === undefined ||\n // Only skip out-of-app frames if includeOutOfAppFrames is not true\n (frame.in_app === false && integrationOptions.includeOutOfAppFrames !== true) ||\n // The function names need to match\n !functionNamesMatch(frame.function, frameLocalVariables.function)\n ) {\n continue;\n }\n\n frame.vars = frameLocalVariables.vars;\n }\n }\n\n function addLocalVariablesToEvent(event: Event, hint: EventHint): Event {\n if (\n hint.originalException &&\n typeof hint.originalException === 'object' &&\n LOCAL_VARIABLES_KEY in hint.originalException &&\n Array.isArray(hint.originalException[LOCAL_VARIABLES_KEY])\n ) {\n for (const exception of event.exception?.values || []) {\n addLocalVariablesToException(exception, hint.originalException[LOCAL_VARIABLES_KEY]);\n }\n\n hint.originalException[LOCAL_VARIABLES_KEY] = undefined;\n }\n\n return event;\n }\n\n async function startInspector(): Promise {\n // We load inspector dynamically because on some platforms Node is built without inspector support\n const inspector = await import('node:inspector');\n if (!inspector.url()) {\n inspector.open(0);\n }\n }\n\n function startWorker(options: LocalVariablesWorkerArgs): void {\n const worker = new Worker(new URL(`data:application/javascript;base64,${base64WorkerScript}`), {\n workerData: options,\n // We don't want any Node args to be passed to the worker\n execArgv: [],\n env: { ...process.env, NODE_OPTIONS: undefined },\n });\n\n process.on('exit', () => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n worker.terminate();\n });\n\n worker.once('error', (err: Error) => {\n log('Worker error', err);\n });\n\n worker.once('exit', (code: number) => {\n log('Worker exit', code);\n });\n\n // Ensure this thread can't block app exit\n worker.unref();\n }\n\n return {\n name: 'LocalVariablesAsync',\n async setup(client: NodeClient) {\n const clientOptions = client.getOptions();\n\n if (!clientOptions.includeLocalVariables) {\n return;\n }\n\n if (await isDebuggerEnabled()) {\n debug.warn('Local variables capture has been disabled because the debugger was already enabled');\n return;\n }\n\n const options: LocalVariablesWorkerArgs = {\n ...integrationOptions,\n debug: debug.isEnabled(),\n };\n\n startInspector().then(\n () => {\n try {\n startWorker(options);\n } catch (e) {\n debug.error('Failed to start worker', e);\n }\n },\n e => {\n debug.error('Failed to start inspector', e);\n },\n );\n },\n processEvent(event: Event, hint: EventHint): Event {\n return addLocalVariablesToEvent(event, hint);\n },\n };\n}) satisfies IntegrationFn);\n","import type { Debugger, InspectorNotification, Runtime, Session } from 'node:inspector';\nimport type { Event, Exception, IntegrationFn, StackFrame, StackParser } from '@sentry/core';\nimport { debug, defineIntegration, getClient, LRUMap } from '@sentry/core';\nimport { NODE_MAJOR } from '../../nodeVersion';\nimport type { NodeClient } from '../../sdk/client';\nimport { isDebuggerEnabled } from '../../utils/debug';\nimport type {\n FrameVariables,\n LocalVariablesIntegrationOptions,\n PausedExceptionEvent,\n RateLimitIncrement,\n Variables,\n} from './common';\nimport { createRateLimiter, functionNamesMatch } from './common';\n\n/** Creates a unique hash from stack frames */\nexport function hashFrames(frames: StackFrame[] | undefined): string | undefined {\n if (frames === undefined) {\n return;\n }\n\n // Only hash the 10 most recent frames (ie. the last 10)\n return frames.slice(-10).reduce((acc, frame) => `${acc},${frame.function},${frame.lineno},${frame.colno}`, '');\n}\n\n/**\n * We use the stack parser to create a unique hash from the exception stack trace\n * This is used to lookup vars when the exception passes through the event processor\n */\nexport function hashFromStack(stackParser: StackParser, stack: string | undefined): string | undefined {\n if (stack === undefined) {\n return undefined;\n }\n\n return hashFrames(stackParser(stack, 1));\n}\n\ntype OnPauseEvent = InspectorNotification;\nexport interface DebugSession {\n /** Configures and connects to the debug session */\n configureAndConnect(onPause: (message: OnPauseEvent, complete: () => void) => void, captureAll: boolean): void;\n /** Updates which kind of exceptions to capture */\n setPauseOnExceptions(captureAll: boolean): void;\n /** Gets local variables for an objectId */\n getLocalVariables(objectId: string, callback: (vars: Variables) => void): void;\n}\n\ntype Next = (result: T) => void;\ntype Add = (fn: Next) => void;\ntype CallbackWrapper = { add: Add; next: Next };\n\n/** Creates a container for callbacks to be called sequentially */\nexport function createCallbackList(complete: Next): CallbackWrapper {\n // A collection of callbacks to be executed last to first\n let callbacks: Next[] = [];\n\n let completedCalled = false;\n function checkedComplete(result: T): void {\n callbacks = [];\n if (completedCalled) {\n return;\n }\n completedCalled = true;\n complete(result);\n }\n\n // complete should be called last\n callbacks.push(checkedComplete);\n\n function add(fn: Next): void {\n callbacks.push(fn);\n }\n\n function next(result: T): void {\n const popped = callbacks.pop() || checkedComplete;\n\n try {\n popped(result);\n } catch {\n // If there is an error, we still want to call the complete callback\n checkedComplete(result);\n }\n }\n\n return { add, next };\n}\n\n/**\n * Promise API is available as `Experimental` and in Node 19 only.\n *\n * Callback-based API is `Stable` since v14 and `Experimental` since v8.\n * Because of that, we are creating our own `AsyncSession` class.\n *\n * https://nodejs.org/docs/latest-v19.x/api/inspector.html#promises-api\n * https://nodejs.org/docs/latest-v14.x/api/inspector.html\n */\nclass AsyncSession implements DebugSession {\n /** Throws if inspector API is not available */\n private constructor(private readonly _session: Session) {\n //\n }\n\n public static async create(orDefault?: DebugSession | undefined): Promise {\n if (orDefault) {\n return orDefault;\n }\n\n const inspector = await import('node:inspector');\n return new AsyncSession(new inspector.Session());\n }\n\n /** @inheritdoc */\n public configureAndConnect(onPause: (event: OnPauseEvent, complete: () => void) => void, captureAll: boolean): void {\n this._session.connect();\n\n this._session.on('Debugger.paused', event => {\n onPause(event, () => {\n // After the pause work is complete, resume execution or the exception context memory is leaked\n this._session.post('Debugger.resume');\n });\n });\n\n this._session.post('Debugger.enable');\n this._session.post('Debugger.setPauseOnExceptions', { state: captureAll ? 'all' : 'uncaught' });\n }\n\n public setPauseOnExceptions(captureAll: boolean): void {\n this._session.post('Debugger.setPauseOnExceptions', { state: captureAll ? 'all' : 'uncaught' });\n }\n\n /** @inheritdoc */\n public getLocalVariables(objectId: string, complete: (vars: Variables) => void): void {\n this._getProperties(objectId, props => {\n const { add, next } = createCallbackList(complete);\n\n for (const prop of props) {\n if (prop.value?.objectId && prop.value.className === 'Array') {\n const id = prop.value.objectId;\n add(vars => this._unrollArray(id, prop.name, vars, next));\n } else if (prop.value?.objectId && prop.value.className === 'Object') {\n const id = prop.value.objectId;\n add(vars => this._unrollObject(id, prop.name, vars, next));\n } else if (prop.value) {\n add(vars => this._unrollOther(prop, vars, next));\n }\n }\n\n next({});\n });\n }\n\n /**\n * Gets all the PropertyDescriptors of an object\n */\n private _getProperties(objectId: string, next: (result: Runtime.PropertyDescriptor[]) => void): void {\n this._session.post(\n 'Runtime.getProperties',\n {\n objectId,\n ownProperties: true,\n },\n (err, params) => {\n if (err) {\n next([]);\n } else {\n next(params.result);\n }\n },\n );\n }\n\n /**\n * Unrolls an array property\n */\n private _unrollArray(objectId: string, name: string, vars: Variables, next: (vars: Variables) => void): void {\n this._getProperties(objectId, props => {\n vars[name] = props\n .filter(v => v.name !== 'length' && !isNaN(parseInt(v.name, 10)))\n .sort((a, b) => parseInt(a.name, 10) - parseInt(b.name, 10))\n .map(v => v.value?.value);\n\n next(vars);\n });\n }\n\n /**\n * Unrolls an object property\n */\n private _unrollObject(objectId: string, name: string, vars: Variables, next: (obj: Variables) => void): void {\n this._getProperties(objectId, props => {\n vars[name] = props\n .map<[string, unknown]>(v => [v.name, v.value?.value])\n .reduce((obj, [key, val]) => {\n obj[key] = val;\n return obj;\n }, {} as Variables);\n\n next(vars);\n });\n }\n\n /**\n * Unrolls other properties\n */\n private _unrollOther(prop: Runtime.PropertyDescriptor, vars: Variables, next: (vars: Variables) => void): void {\n if (prop.value) {\n if ('value' in prop.value) {\n if (prop.value.value === undefined || prop.value.value === null) {\n vars[prop.name] = `<${prop.value.value}>`;\n } else {\n vars[prop.name] = prop.value.value;\n }\n } else if ('description' in prop.value && prop.value.type !== 'function') {\n vars[prop.name] = `<${prop.value.description}>`;\n } else if (prop.value.type === 'undefined') {\n vars[prop.name] = '';\n }\n }\n\n next(vars);\n }\n}\n\nconst INTEGRATION_NAME = 'LocalVariables';\n\n/**\n * Adds local variables to exception frames\n */\nconst _localVariablesSyncIntegration = ((\n options: LocalVariablesIntegrationOptions = {},\n sessionOverride?: DebugSession,\n) => {\n const cachedFrames: LRUMap = new LRUMap(20);\n let rateLimiter: RateLimitIncrement | undefined;\n let shouldProcessEvent = false;\n\n function addLocalVariablesToException(exception: Exception): void {\n const hash = hashFrames(exception.stacktrace?.frames);\n\n if (hash === undefined) {\n return;\n }\n\n // Check if we have local variables for an exception that matches the hash\n // remove is identical to get but also removes the entry from the cache\n const cachedFrame = cachedFrames.remove(hash);\n\n if (cachedFrame === undefined) {\n return;\n }\n\n // Filter out frames where the function name is `new Promise` since these are in the error.stack frames\n // but do not appear in the debugger call frames\n const frames = (exception.stacktrace?.frames || []).filter(frame => frame.function !== 'new Promise');\n\n for (let i = 0; i < frames.length; i++) {\n // Sentry frames are in reverse order\n const frameIndex = frames.length - i - 1;\n\n const cachedFrameVariable = cachedFrame[i];\n const frameVariable = frames[frameIndex];\n\n // Drop out if we run out of frames to match up\n if (!frameVariable || !cachedFrameVariable) {\n break;\n }\n\n if (\n // We need to have vars to add\n cachedFrameVariable.vars === undefined ||\n // Only skip out-of-app frames if includeOutOfAppFrames is not true\n (frameVariable.in_app === false && options.includeOutOfAppFrames !== true) ||\n // The function names need to match\n !functionNamesMatch(frameVariable.function, cachedFrameVariable.function)\n ) {\n continue;\n }\n\n frameVariable.vars = cachedFrameVariable.vars;\n }\n }\n\n function addLocalVariablesToEvent(event: Event): Event {\n for (const exception of event.exception?.values || []) {\n addLocalVariablesToException(exception);\n }\n\n return event;\n }\n\n let setupPromise: Promise | undefined;\n\n async function setup(): Promise {\n const client = getClient();\n const clientOptions = client?.getOptions();\n\n if (!clientOptions?.includeLocalVariables) {\n return;\n }\n\n // Only setup this integration if the Node version is >= v18\n // https://github.com/getsentry/sentry-javascript/issues/7697\n const unsupportedNodeVersion = NODE_MAJOR < 18;\n\n if (unsupportedNodeVersion) {\n debug.log('The `LocalVariables` integration is only supported on Node >= v18.');\n return;\n }\n\n if (await isDebuggerEnabled()) {\n debug.warn('Local variables capture has been disabled because the debugger was already enabled');\n return;\n }\n\n try {\n const session = await AsyncSession.create(sessionOverride);\n\n const handlePaused = (\n stackParser: StackParser,\n { params: { reason, data, callFrames } }: InspectorNotification,\n complete: () => void,\n ): void => {\n if (reason !== 'exception' && reason !== 'promiseRejection') {\n complete();\n return;\n }\n\n rateLimiter?.();\n\n // data.description contains the original error.stack\n const exceptionHash = hashFromStack(stackParser, data.description);\n\n if (exceptionHash == undefined) {\n complete();\n return;\n }\n\n const { add, next } = createCallbackList(frames => {\n cachedFrames.set(exceptionHash, frames);\n complete();\n });\n\n // Because we're queuing up and making all these calls synchronously, we can potentially overflow the stack\n // For this reason we only attempt to get local variables for the first 5 frames\n for (let i = 0; i < Math.min(callFrames.length, 5); i++) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const { scopeChain, functionName, this: obj } = callFrames[i]!;\n\n const localScope = scopeChain.find(scope => scope.type === 'local');\n\n // obj.className is undefined in ESM modules\n const fn = obj.className === 'global' || !obj.className ? functionName : `${obj.className}.${functionName}`;\n\n if (localScope?.object.objectId === undefined) {\n add(frames => {\n frames[i] = { function: fn };\n next(frames);\n });\n } else {\n const id = localScope.object.objectId;\n add(frames =>\n session.getLocalVariables(id, vars => {\n frames[i] = { function: fn, vars };\n next(frames);\n }),\n );\n }\n }\n\n next([]);\n };\n\n const captureAll = options.captureAllExceptions !== false;\n\n session.configureAndConnect(\n (ev, complete) =>\n handlePaused(clientOptions.stackParser, ev as InspectorNotification, complete),\n captureAll,\n );\n\n if (captureAll) {\n const max = options.maxExceptionsPerSecond || 50;\n\n rateLimiter = createRateLimiter(\n max,\n () => {\n debug.log('Local variables rate-limit lifted.');\n session.setPauseOnExceptions(true);\n },\n seconds => {\n debug.log(\n `Local variables rate-limit exceeded. Disabling capturing of caught exceptions for ${seconds} seconds.`,\n );\n session.setPauseOnExceptions(false);\n },\n );\n }\n\n shouldProcessEvent = true;\n } catch (error) {\n debug.log('The `LocalVariables` integration failed to start.', error);\n }\n }\n\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n setupPromise = setup();\n },\n async processEvent(event: Event): Promise {\n await setupPromise;\n\n if (shouldProcessEvent) {\n return addLocalVariablesToEvent(event);\n }\n\n return event;\n },\n // These are entirely for testing\n _getCachedFramesCount(): number {\n return cachedFrames.size;\n },\n _getFirstCachedFrame(): FrameVariables[] | undefined {\n return cachedFrames.values()[0];\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Adds local variables to exception frames.\n */\nexport const localVariablesSyncIntegration = defineIntegration(_localVariablesSyncIntegration);\n","import type { Integration } from '@sentry/core';\nimport { NODE_VERSION } from '../../nodeVersion';\nimport type { LocalVariablesIntegrationOptions } from './common';\nimport { localVariablesAsyncIntegration } from './local-variables-async';\nimport { localVariablesSyncIntegration } from './local-variables-sync';\n\nexport const localVariablesIntegration = (options: LocalVariablesIntegrationOptions = {}): Integration => {\n return NODE_VERSION.major < 19 ? localVariablesSyncIntegration(options) : localVariablesAsyncIntegration(options);\n};\n","import { consoleSandbox } from '@sentry/core';\nimport { NODE_MAJOR, NODE_MINOR } from '../nodeVersion';\n\n/** Detect CommonJS. */\nexport function isCjs(): boolean {\n try {\n // oxlint-disable-next-line typescript/prefer-optional-chain\n return typeof module !== 'undefined' && typeof module.exports !== 'undefined';\n } catch {\n return false;\n }\n}\n\nlet hasWarnedAboutNodeVersion: boolean | undefined;\n\n/**\n * Check if the current Node.js version supports module.register\n */\nexport function supportsEsmLoaderHooks(): boolean {\n if (isCjs()) {\n return false;\n }\n\n if (NODE_MAJOR >= 21 || (NODE_MAJOR === 20 && NODE_MINOR >= 6) || (NODE_MAJOR === 18 && NODE_MINOR >= 19)) {\n return true;\n }\n\n if (!hasWarnedAboutNodeVersion) {\n hasWarnedAboutNodeVersion = true;\n\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n `[Sentry] You are using Node.js v${process.versions.node} in ESM mode (\"import syntax\"). The Sentry Node.js SDK is not compatible with ESM in Node.js versions before 18.19.0 or before 20.6.0. Please either build your application with CommonJS (\"require() syntax\"), or upgrade your Node.js version.`,\n );\n });\n }\n\n return false;\n}\n","import { existsSync, readFileSync } from 'node:fs';\nimport { dirname, join } from 'node:path';\nimport type { IntegrationFn } from '@sentry/core';\nimport { isCjs } from '../utils/detection';\n\ntype ModuleInfo = Record;\n\nlet moduleCache: ModuleInfo | undefined;\n\nconst INTEGRATION_NAME = 'Modules';\n\ndeclare const __SENTRY_SERVER_MODULES__: Record;\n\n/**\n * `__SENTRY_SERVER_MODULES__` can be replaced at build time with the modules loaded by the server.\n * Right now, we leverage this in Next.js to circumvent the problem that we do not get access to these things at runtime.\n */\nconst SERVER_MODULES = typeof __SENTRY_SERVER_MODULES__ === 'undefined' ? {} : __SENTRY_SERVER_MODULES__;\n\nconst _modulesIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n processEvent(event) {\n event.modules = {\n ...event.modules,\n ..._getModules(),\n };\n\n return event;\n },\n getModules: _getModules,\n };\n}) satisfies IntegrationFn;\n\n/**\n * Add node modules / packages to the event.\n * For this, multiple sources are used:\n * - They can be injected at build time into the __SENTRY_SERVER_MODULES__ variable (e.g. in Next.js)\n * - They are extracted from the dependencies & devDependencies in the package.json file\n * - They are extracted from the require.cache (CJS only)\n */\nexport const modulesIntegration = _modulesIntegration;\n\nfunction getRequireCachePaths(): string[] {\n try {\n return require.cache ? Object.keys(require.cache as Record) : [];\n } catch {\n return [];\n }\n}\n\n/** Extract information about package.json modules */\nfunction collectModules(): ModuleInfo {\n return {\n ...SERVER_MODULES,\n ...getModulesFromPackageJson(),\n ...(isCjs() ? collectRequireModules() : {}),\n };\n}\n\n/** Extract information about package.json modules from require.cache */\nfunction collectRequireModules(): ModuleInfo {\n const mainPaths = require.main?.paths || [];\n const paths = getRequireCachePaths();\n\n // We start with the modules from package.json (if possible)\n // These may be overwritten by more specific versions from the require.cache\n const infos: ModuleInfo = {};\n const seen = new Set();\n\n paths.forEach(path => {\n let dir = path;\n\n /** Traverse directories upward in the search of package.json file */\n const updir = (): void | (() => void) => {\n const orig = dir;\n dir = dirname(orig);\n\n if (!dir || orig === dir || seen.has(orig)) {\n return undefined;\n }\n if (mainPaths.indexOf(dir) < 0) {\n return updir();\n }\n\n const pkgfile = join(orig, 'package.json');\n seen.add(orig);\n\n if (!existsSync(pkgfile)) {\n return updir();\n }\n\n try {\n const info = JSON.parse(readFileSync(pkgfile, 'utf8')) as {\n name: string;\n version: string;\n };\n infos[info.name] = info.version;\n } catch {\n // no-empty\n }\n };\n\n updir();\n });\n\n return infos;\n}\n\n/** Fetches the list of modules and the versions loaded by the entry file for your node.js app. */\nfunction _getModules(): ModuleInfo {\n if (!moduleCache) {\n moduleCache = collectModules();\n }\n return moduleCache;\n}\n\ninterface PackageJson {\n dependencies?: Record;\n devDependencies?: Record;\n}\n\nfunction getPackageJson(): PackageJson {\n try {\n const filePath = join(process.cwd(), 'package.json');\n const packageJson = JSON.parse(readFileSync(filePath, 'utf8')) as PackageJson;\n\n return packageJson;\n } catch {\n return {};\n }\n}\n\nfunction getModulesFromPackageJson(): ModuleInfo {\n const packageJson = getPackageJson();\n\n return {\n ...packageJson.dependencies,\n ...packageJson.devDependencies,\n };\n}\n","import { consoleSandbox, debug, getClient } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { NodeClient } from '../sdk/client';\n\nconst DEFAULT_SHUTDOWN_TIMEOUT = 2000;\n\n/**\n * @hidden\n */\nexport function logAndExitProcess(error: unknown): void {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.error(error);\n });\n\n const client = getClient();\n\n if (client === undefined) {\n DEBUG_BUILD && debug.warn('No NodeClient was defined, we are exiting the process now.');\n global.process.exit(1);\n return;\n }\n\n const options = client.getOptions();\n const timeout =\n options?.shutdownTimeout && options.shutdownTimeout > 0 ? options.shutdownTimeout : DEFAULT_SHUTDOWN_TIMEOUT;\n client.close(timeout).then(\n (result: boolean) => {\n if (!result) {\n DEBUG_BUILD && debug.warn('We reached the timeout for emptying the request buffer, still exiting now!');\n }\n global.process.exit(1);\n },\n error => {\n DEBUG_BUILD && debug.error(error);\n },\n );\n}\n","import { captureException, debug, defineIntegration, getClient } from '@sentry/core';\nimport { isMainThread } from 'worker_threads';\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { NodeClient } from '../sdk/client';\nimport { logAndExitProcess } from '../utils/errorhandling';\n\ntype OnFatalErrorHandler = (firstError: Error, secondError?: Error) => void;\n\ntype TaggedListener = NodeJS.UncaughtExceptionListener & {\n tag?: string;\n};\n\ninterface OnUncaughtExceptionOptions {\n /**\n * Controls if the SDK should register a handler to exit the process on uncaught errors:\n * - `true`: The SDK will exit the process on all uncaught errors.\n * - `false`: The SDK will only exit the process when there are no other `uncaughtException` handlers attached.\n *\n * Default: `false`\n */\n exitEvenIfOtherHandlersAreRegistered: boolean;\n\n /**\n * This is called when an uncaught error would cause the process to exit.\n *\n * @param firstError Uncaught error causing the process to exit\n * @param secondError Will be set if the handler was called multiple times. This can happen either because\n * `onFatalError` itself threw, or because an independent error happened somewhere else while `onFatalError`\n * was running.\n */\n onFatalError?(this: void, firstError: Error, secondError?: Error): void;\n}\n\nconst INTEGRATION_NAME = 'OnUncaughtException';\n\n/**\n * Add a global exception handler.\n */\nexport const onUncaughtExceptionIntegration = defineIntegration((options: Partial = {}) => {\n const optionsWithDefaults = {\n exitEvenIfOtherHandlersAreRegistered: false,\n ...options,\n };\n\n return {\n name: INTEGRATION_NAME,\n setup(client: NodeClient) {\n // errors in worker threads are already handled by the childProcessIntegration\n // also we don't want to exit the Node process on worker thread errors\n if (!isMainThread) {\n return;\n }\n\n global.process.on('uncaughtException', makeErrorHandler(client, optionsWithDefaults));\n },\n };\n});\n\ntype ErrorHandler = { _errorHandler: boolean } & ((error: Error) => void);\n\n/** Exported only for tests */\nexport function makeErrorHandler(client: NodeClient, options: OnUncaughtExceptionOptions): ErrorHandler {\n const timeout = 2000;\n let caughtFirstError: boolean = false;\n let caughtSecondError: boolean = false;\n let calledFatalError: boolean = false;\n let firstError: Error;\n\n const clientOptions = client.getOptions();\n\n return Object.assign(\n (error: Error): void => {\n let onFatalError: OnFatalErrorHandler = logAndExitProcess;\n\n if (options.onFatalError) {\n onFatalError = options.onFatalError;\n } else if (clientOptions.onFatalError) {\n onFatalError = clientOptions.onFatalError as OnFatalErrorHandler;\n }\n\n // Attaching a listener to `uncaughtException` will prevent the node process from exiting. We generally do not\n // want to alter this behaviour so we check for other listeners that users may have attached themselves and adjust\n // exit behaviour of the SDK accordingly:\n // - If other listeners are attached, do not exit.\n // - If the only listener attached is ours, exit.\n const userProvidedListenersCount = (global.process.listeners('uncaughtException') as TaggedListener[]).filter(\n listener => {\n // There are 3 listeners we ignore:\n return (\n // as soon as we're using domains this listener is attached by node itself\n listener.name !== 'domainUncaughtExceptionClear' &&\n // the handler we register for tracing\n listener.tag !== 'sentry_tracingErrorCallback' &&\n // the handler we register in this integration\n (listener as ErrorHandler)._errorHandler !== true\n );\n },\n ).length;\n\n const processWouldExit = userProvidedListenersCount === 0;\n const shouldApplyFatalHandlingLogic = options.exitEvenIfOtherHandlersAreRegistered || processWouldExit;\n\n if (!caughtFirstError) {\n // this is the first uncaught error and the ultimate reason for shutting down\n // we want to do absolutely everything possible to ensure it gets captured\n // also we want to make sure we don't go recursion crazy if more errors happen after this one\n firstError = error;\n caughtFirstError = true;\n\n if (getClient() === client) {\n captureException(error, {\n originalException: error,\n captureContext: {\n level: 'fatal',\n },\n mechanism: {\n handled: false,\n type: 'auto.node.onuncaughtexception',\n },\n });\n }\n\n if (!calledFatalError && shouldApplyFatalHandlingLogic) {\n calledFatalError = true;\n onFatalError(error);\n }\n } else {\n if (shouldApplyFatalHandlingLogic) {\n if (calledFatalError) {\n // we hit an error *after* calling onFatalError - pretty boned at this point, just shut it down\n DEBUG_BUILD &&\n debug.warn(\n 'uncaught exception after calling fatal error shutdown callback - this is bad! forcing shutdown',\n );\n logAndExitProcess(error);\n } else if (!caughtSecondError) {\n // two cases for how we can hit this branch:\n // - capturing of first error blew up and we just caught the exception from that\n // - quit trying to capture, proceed with shutdown\n // - a second independent error happened while waiting for first error to capture\n // - want to avoid causing premature shutdown before first error capture finishes\n // it's hard to immediately tell case 1 from case 2 without doing some fancy/questionable domain stuff\n // so let's instead just delay a bit before we proceed with our action here\n // in case 1, we just wait a bit unnecessarily but ultimately do the same thing\n // in case 2, the delay hopefully made us wait long enough for the capture to finish\n // two potential nonideal outcomes:\n // nonideal case 1: capturing fails fast, we sit around for a few seconds unnecessarily before proceeding correctly by calling onFatalError\n // nonideal case 2: case 2 happens, 1st error is captured but slowly, timeout completes before capture and we treat second error as the sendErr of (nonexistent) failure from trying to capture first error\n // note that after hitting this branch, we might catch more errors where (caughtSecondError && !calledFatalError)\n // we ignore them - they don't matter to us, we're just waiting for the second error timeout to finish\n caughtSecondError = true;\n setTimeout(() => {\n if (!calledFatalError) {\n // it was probably case 1, let's treat err as the sendErr and call onFatalError\n calledFatalError = true;\n onFatalError(firstError, error);\n } else {\n // it was probably case 2, our first error finished capturing while we waited, cool, do nothing\n }\n }, timeout); // capturing could take at least sendTimeout to fail, plus an arbitrary second for how long it takes to collect surrounding source etc\n }\n }\n }\n },\n { _errorHandler: true },\n );\n}\n","import type { Client, IntegrationFn, SeverityLevel, Span } from '@sentry/core';\nimport {\n captureException,\n consoleSandbox,\n defineIntegration,\n getClient,\n isMatchingPattern,\n withActiveSpan,\n} from '@sentry/core';\nimport { logAndExitProcess } from '../utils/errorhandling';\n\ntype UnhandledRejectionMode = 'none' | 'warn' | 'strict';\n\ntype IgnoreMatcher = { name?: string | RegExp; message?: string | RegExp };\n\ninterface OnUnhandledRejectionOptions {\n /**\n * Option deciding what to do after capturing unhandledRejection,\n * that mimicks behavior of node's --unhandled-rejection flag.\n */\n mode: UnhandledRejectionMode;\n /** Rejection Errors to ignore (don't capture or warn). */\n ignore?: IgnoreMatcher[];\n}\n\nconst INTEGRATION_NAME = 'OnUnhandledRejection';\n\nconst DEFAULT_IGNORES: IgnoreMatcher[] = [\n {\n name: 'AI_NoOutputGeneratedError', // When stream aborts in Vercel AI SDK V5, Vercel flush() fails with an error\n },\n {\n name: 'AbortError', // When stream aborts in Vercel AI SDK V6\n },\n];\n\nconst _onUnhandledRejectionIntegration = ((options: Partial = {}) => {\n const opts: OnUnhandledRejectionOptions = {\n mode: options.mode ?? 'warn',\n ignore: [...DEFAULT_IGNORES, ...(options.ignore ?? [])],\n };\n\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n global.process.on('unhandledRejection', makeUnhandledPromiseHandler(client, opts));\n },\n };\n}) satisfies IntegrationFn;\n\nexport const onUnhandledRejectionIntegration = defineIntegration(_onUnhandledRejectionIntegration);\n\n/** Extract error info safely */\nfunction extractErrorInfo(reason: unknown): { name: string; message: string } {\n // Check if reason is an object (including Error instances, not just plain objects)\n if (typeof reason !== 'object' || reason === null) {\n return { name: '', message: String(reason ?? '') };\n }\n\n const errorLike = reason as Record;\n const name = typeof errorLike.name === 'string' ? errorLike.name : '';\n const message = typeof errorLike.message === 'string' ? errorLike.message : String(reason);\n\n return { name, message };\n}\n\n/** Check if a matcher matches the reason */\nfunction isMatchingReason(matcher: IgnoreMatcher, errorInfo: ReturnType): boolean {\n // name/message matcher\n const nameMatches = matcher.name === undefined || isMatchingPattern(errorInfo.name, matcher.name, true);\n\n const messageMatches = matcher.message === undefined || isMatchingPattern(errorInfo.message, matcher.message);\n\n return nameMatches && messageMatches;\n}\n\n/** Match helper */\nfunction matchesIgnore(list: IgnoreMatcher[], reason: unknown): boolean {\n const errorInfo = extractErrorInfo(reason);\n return list.some(matcher => isMatchingReason(matcher, errorInfo));\n}\n\n/** Core handler */\nexport function makeUnhandledPromiseHandler(\n client: Client,\n options: OnUnhandledRejectionOptions,\n): (reason: unknown, promise: unknown) => void {\n return function sendUnhandledPromise(reason: unknown, promise: unknown): void {\n // Only handle for the active client\n if (getClient() !== client) {\n return;\n }\n\n // Skip if configured to ignore\n if (matchesIgnore(options.ignore ?? [], reason)) {\n return;\n }\n\n const level: SeverityLevel = options.mode === 'strict' ? 'fatal' : 'error';\n\n // this can be set in places where we cannot reliably get access to the active span/error\n // when the error bubbles up to this handler, we can use this to set the active span\n const activeSpanForError =\n reason && typeof reason === 'object' ? (reason as { _sentry_active_span?: Span })._sentry_active_span : undefined;\n\n const activeSpanWrapper = activeSpanForError\n ? (fn: () => void) => withActiveSpan(activeSpanForError, fn)\n : (fn: () => void) => fn();\n\n activeSpanWrapper(() => {\n captureException(reason, {\n originalException: promise,\n captureContext: {\n extra: { unhandledPromiseRejection: true },\n level,\n },\n mechanism: {\n handled: false,\n type: 'auto.node.onunhandledrejection',\n },\n });\n });\n\n handleRejection(reason, options.mode);\n };\n}\n\n/**\n * Handler for `mode` option\n */\nfunction handleRejection(reason: unknown, mode: UnhandledRejectionMode): void {\n // https://github.com/nodejs/node/blob/7cf6f9e964aa00772965391c23acda6d71972a9a/lib/internal/process/promises.js#L234-L240\n const rejectionWarning =\n 'This error originated either by ' +\n 'throwing inside of an async function without a catch block, ' +\n 'or by rejecting a promise which was not handled with .catch().' +\n ' The promise rejected with the reason:';\n\n /* eslint-disable no-console */\n if (mode === 'warn') {\n consoleSandbox(() => {\n console.warn(rejectionWarning);\n console.error(reason && typeof reason === 'object' && 'stack' in reason ? reason.stack : reason);\n });\n } else if (mode === 'strict') {\n consoleSandbox(() => {\n console.warn(rejectionWarning);\n });\n logAndExitProcess(reason);\n }\n /* eslint-enable no-console */\n}\n","import { defineIntegration, endSession, getIsolationScope, startSession } from '@sentry/core';\n\nconst INTEGRATION_NAME = 'ProcessSession';\n\n/**\n * Records a Session for the current process to track release health.\n */\nexport const processSessionIntegration = defineIntegration(() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n startSession();\n\n // Emitted in the case of healthy sessions, error of `mechanism.handled: true` and unhandledrejections because\n // The 'beforeExit' event is not emitted for conditions causing explicit termination,\n // such as calling process.exit() or uncaught exceptions.\n // Ref: https://nodejs.org/api/process.html#process_event_beforeexit\n process.on('beforeExit', () => {\n const session = getIsolationScope().getSession();\n\n // Only call endSession, if the Session exists on Scope and SessionStatus is not a\n // Terminal Status i.e. Exited or Crashed because\n // \"When a session is moved away from ok it must not be updated anymore.\"\n // Ref: https://develop.sentry.dev/sdk/sessions/\n if (session?.status !== 'ok') {\n endSession();\n }\n });\n },\n };\n});\n","import * as http from 'node:http';\nimport type { Client, Envelope, IntegrationFn } from '@sentry/core';\nimport { debug, defineIntegration, serializeEnvelope, suppressTracing } from '@sentry/core';\n\ntype SpotlightConnectionOptions = {\n /**\n * Set this if the Spotlight Sidecar is not running on localhost:8969\n * By default, the Url is set to http://localhost:8969/stream\n */\n sidecarUrl?: string;\n};\n\nexport const INTEGRATION_NAME = 'Spotlight';\n\nconst _spotlightIntegration = ((options: Partial = {}) => {\n const _options = {\n sidecarUrl: options.sidecarUrl || 'http://localhost:8969/stream',\n };\n\n return {\n name: INTEGRATION_NAME,\n setup(client) {\n try {\n if (process.env.NODE_ENV && process.env.NODE_ENV !== 'development') {\n debug.warn(\"[Spotlight] It seems you're not in dev mode. Do you really want to have Spotlight enabled?\");\n }\n } catch {\n // ignore\n }\n connectToSpotlight(client, _options);\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Use this integration to send errors and transactions to Spotlight.\n *\n * Learn more about spotlight at https://spotlightjs.com\n *\n * Important: This integration only works with Node 18 or newer.\n */\nexport const spotlightIntegration = defineIntegration(_spotlightIntegration);\n\nfunction connectToSpotlight(client: Client, options: Required): void {\n const spotlightUrl = parseSidecarUrl(options.sidecarUrl);\n if (!spotlightUrl) {\n return;\n }\n\n let failedRequests = 0;\n\n client.on('beforeEnvelope', (envelope: Envelope) => {\n if (failedRequests > 3) {\n debug.warn('[Spotlight] Disabled Sentry -> Spotlight integration due to too many failed requests');\n return;\n }\n\n const serializedEnvelope = serializeEnvelope(envelope);\n suppressTracing(() => {\n const req = http.request(\n {\n method: 'POST',\n path: spotlightUrl.pathname,\n hostname: spotlightUrl.hostname,\n port: spotlightUrl.port,\n headers: {\n 'Content-Type': 'application/x-sentry-envelope',\n },\n },\n res => {\n if (res.statusCode && res.statusCode >= 200 && res.statusCode < 400) {\n // Reset failed requests counter on success\n failedRequests = 0;\n }\n res.on('data', () => {\n // Drain socket\n });\n\n res.on('end', () => {\n // Drain socket\n });\n res.setEncoding('utf8');\n },\n );\n\n req.on('error', () => {\n failedRequests++;\n debug.warn('[Spotlight] Failed to send envelope to Spotlight Sidecar');\n });\n req.write(serializedEnvelope);\n req.end();\n });\n });\n}\n\nfunction parseSidecarUrl(url: string): URL | undefined {\n try {\n return new URL(`${url}`);\n } catch {\n debug.warn(`[Spotlight] Invalid sidecar URL: ${url}`);\n return undefined;\n }\n}\n","import * as util from 'node:util';\nimport { defineIntegration } from '@sentry/core';\n\nconst INTEGRATION_NAME = 'NodeSystemError';\n\ntype SystemErrorContext = {\n dest?: string; // If present, the file path destination when reporting a file system error\n errno: number; // The system-provided error number\n path?: string; // If present, the file path when reporting a file system error\n};\n\ntype SystemError = Error & SystemErrorContext;\n\nfunction isSystemError(error: unknown): error is SystemError {\n if (!(error instanceof Error)) {\n return false;\n }\n\n if (!('errno' in error) || typeof error.errno !== 'number') {\n return false;\n }\n\n // Appears this is the recommended way to check for Node.js SystemError\n // https://github.com/nodejs/node/issues/46869\n return util.getSystemErrorMap().has(error.errno);\n}\n\ntype Options = {\n /**\n * If true, includes the `path` and `dest` properties in the error context.\n */\n includePaths?: boolean;\n};\n\n/**\n * Captures context for Node.js SystemError errors.\n */\nexport const systemErrorIntegration = defineIntegration((options: Options = {}) => {\n return {\n name: INTEGRATION_NAME,\n processEvent: (event, hint, client) => {\n if (!isSystemError(hint.originalException)) {\n return event;\n }\n\n const error = hint.originalException;\n\n const errorContext: SystemErrorContext = {\n ...(error as SystemErrorContext),\n };\n\n if (!client.getOptions().sendDefaultPii && options.includePaths !== true) {\n delete errorContext.path;\n delete errorContext.dest;\n }\n\n event.contexts = {\n ...event.contexts,\n node_system_error: errorContext,\n };\n\n for (const exception of event.exception?.values || []) {\n if (exception.value) {\n if (error.path && exception.value.includes(error.path)) {\n exception.value = exception.value.replace(`'${error.path}'`, '').trim();\n }\n if (error.dest && exception.value.includes(error.dest)) {\n exception.value = exception.value.replace(`'${error.dest}'`, '').trim();\n }\n }\n }\n\n return event;\n },\n };\n});\n","/**\n * This code was originally forked from https://github.com/TooTallNate/proxy-agents/tree/b133295fd16f6475578b6b15bd9b4e33ecb0d0b7\n * With the following LICENSE:\n *\n * (The MIT License)\n *\n * Copyright (c) 2013 Nathan Rajlich *\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * 'Software'), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:*\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.*\n *\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n/* eslint-disable @typescript-eslint/explicit-member-accessibility */\n/* eslint-disable @typescript-eslint/member-ordering */\n/* eslint-disable jsdoc/require-jsdoc */\nimport * as http from 'node:http';\nimport type * as net from 'node:net';\nimport type { Duplex } from 'node:stream';\nimport type * as tls from 'node:tls';\n\nexport * from './helpers';\n\ninterface HttpConnectOpts extends net.TcpNetConnectOpts {\n secureEndpoint: false;\n protocol?: string;\n}\n\ninterface HttpsConnectOpts extends tls.ConnectionOptions {\n secureEndpoint: true;\n protocol?: string;\n port: number;\n}\n\nexport type AgentConnectOpts = HttpConnectOpts | HttpsConnectOpts;\n\nconst INTERNAL = Symbol('AgentBaseInternalState');\n\ninterface InternalState {\n defaultPort?: number;\n protocol?: string;\n currentSocket?: Duplex;\n}\n\nexport abstract class Agent extends http.Agent {\n private [INTERNAL]: InternalState;\n\n // Set by `http.Agent` - missing from `@types/node`\n options!: Partial;\n keepAlive!: boolean;\n\n constructor(opts?: http.AgentOptions) {\n super(opts);\n this[INTERNAL] = {};\n }\n\n abstract connect(\n req: http.ClientRequest,\n options: AgentConnectOpts,\n ): Promise | Duplex | http.Agent;\n\n /**\n * Determine whether this is an `http` or `https` request.\n */\n isSecureEndpoint(options?: AgentConnectOpts): boolean {\n if (options) {\n // First check the `secureEndpoint` property explicitly, since this\n // means that a parent `Agent` is \"passing through\" to this instance.\n if (typeof (options as Partial).secureEndpoint === 'boolean') {\n return options.secureEndpoint;\n }\n\n // If no explicit `secure` endpoint, check if `protocol` property is\n // set. This will usually be the case since using a full string URL\n // or `URL` instance should be the most common usage.\n if (typeof options.protocol === 'string') {\n return options.protocol === 'https:';\n }\n }\n\n // Finally, if no `protocol` property was set, then fall back to\n // checking the stack trace of the current call stack, and try to\n // detect the \"https\" module.\n const { stack } = new Error();\n if (typeof stack !== 'string') return false;\n return stack.split('\\n').some(l => l.indexOf('(https.js:') !== -1 || l.indexOf('node:https:') !== -1);\n }\n\n createSocket(req: http.ClientRequest, options: AgentConnectOpts, cb: (err: Error | null, s?: Duplex) => void): void {\n const connectOpts = {\n ...options,\n secureEndpoint: this.isSecureEndpoint(options),\n };\n Promise.resolve()\n .then(() => this.connect(req, connectOpts))\n .then(socket => {\n if (socket instanceof http.Agent) {\n // @ts-expect-error `addRequest()` isn't defined in `@types/node`\n return socket.addRequest(req, connectOpts);\n }\n this[INTERNAL].currentSocket = socket;\n // @ts-expect-error `createSocket()` isn't defined in `@types/node`\n super.createSocket(req, options, cb);\n }, cb);\n }\n\n createConnection(): Duplex {\n const socket = this[INTERNAL].currentSocket;\n this[INTERNAL].currentSocket = undefined;\n if (!socket) {\n throw new Error('No socket was returned in the `connect()` function');\n }\n return socket;\n }\n\n get defaultPort(): number {\n return this[INTERNAL].defaultPort ?? (this.protocol === 'https:' ? 443 : 80);\n }\n\n set defaultPort(v: number) {\n if (this[INTERNAL]) {\n this[INTERNAL].defaultPort = v;\n }\n }\n\n get protocol(): string {\n return this[INTERNAL].protocol ?? (this.isSecureEndpoint() ? 'https:' : 'http:');\n }\n\n set protocol(v: string) {\n if (this[INTERNAL]) {\n this[INTERNAL].protocol = v;\n }\n }\n}\n","/**\n * This code was originally forked from https://github.com/TooTallNate/proxy-agents/tree/b133295fd16f6475578b6b15bd9b4e33ecb0d0b7\n * With the following LICENSE:\n *\n * (The MIT License)\n *\n * Copyright (c) 2013 Nathan Rajlich *\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * 'Software'), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:*\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.*\n *\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable jsdoc/require-jsdoc */\nimport type { IncomingHttpHeaders } from 'node:http';\nimport type { Readable } from 'node:stream';\nimport { debug } from '@sentry/core';\n\nfunction debugLog(...args: unknown[]): void {\n debug.log('[https-proxy-agent:parse-proxy-response]', ...args);\n}\n\nexport interface ConnectResponse {\n statusCode: number;\n statusText: string;\n headers: IncomingHttpHeaders;\n}\n\nexport function parseProxyResponse(socket: Readable): Promise<{ connect: ConnectResponse; buffered: Buffer }> {\n return new Promise((resolve, reject) => {\n // we need to buffer any HTTP traffic that happens with the proxy before we get\n // the CONNECT response, so that if the response is anything other than an \"200\"\n // response code, then we can re-play the \"data\" events on the socket once the\n // HTTP parser is hooked up...\n let buffersLength = 0;\n const buffers: Buffer[] = [];\n\n function read() {\n const b = socket.read();\n if (b) ondata(b);\n else socket.once('readable', read);\n }\n\n function cleanup() {\n socket.removeListener('end', onend);\n socket.removeListener('error', onerror);\n socket.removeListener('readable', read);\n }\n\n function onend() {\n cleanup();\n debugLog('onend');\n reject(new Error('Proxy connection ended before receiving CONNECT response'));\n }\n\n function onerror(err: Error) {\n cleanup();\n debugLog('onerror %o', err);\n reject(err);\n }\n\n function ondata(b: Buffer) {\n buffers.push(b);\n buffersLength += b.length;\n\n const buffered = Buffer.concat(buffers, buffersLength);\n const endOfHeaders = buffered.indexOf('\\r\\n\\r\\n');\n\n if (endOfHeaders === -1) {\n // keep buffering\n debugLog('have not received end of HTTP headers yet...');\n read();\n return;\n }\n\n const headerParts = buffered.subarray(0, endOfHeaders).toString('ascii').split('\\r\\n');\n const firstLine = headerParts.shift();\n if (!firstLine) {\n socket.destroy();\n return reject(new Error('No header received from proxy CONNECT response'));\n }\n const firstLineParts = firstLine.split(' ');\n const statusCode = +(firstLineParts[1] || 0);\n const statusText = firstLineParts.slice(2).join(' ');\n const headers: IncomingHttpHeaders = {};\n for (const header of headerParts) {\n if (!header) continue;\n const firstColon = header.indexOf(':');\n if (firstColon === -1) {\n socket.destroy();\n return reject(new Error(`Invalid header from proxy CONNECT response: \"${header}\"`));\n }\n const key = header.slice(0, firstColon).toLowerCase();\n const value = header.slice(firstColon + 1).trimStart();\n const current = headers[key];\n if (typeof current === 'string') {\n headers[key] = [current, value];\n } else if (Array.isArray(current)) {\n current.push(value);\n } else {\n headers[key] = value;\n }\n }\n debugLog('got proxy server response: %o %o', firstLine, headers);\n cleanup();\n resolve({\n connect: {\n statusCode,\n statusText,\n headers,\n },\n buffered,\n });\n }\n\n socket.on('error', onerror);\n socket.on('end', onend);\n\n read();\n });\n}\n","/**\n * This code was originally forked from https://github.com/TooTallNate/proxy-agents/tree/b133295fd16f6475578b6b15bd9b4e33ecb0d0b7\n * With the following LICENSE:\n *\n * (The MIT License)\n *\n * Copyright (c) 2013 Nathan Rajlich *\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * 'Software'), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:*\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.*\n *\n * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n/* eslint-disable @typescript-eslint/explicit-member-accessibility */\n/* eslint-disable @typescript-eslint/no-unused-vars */\n// eslint-disable-next-line import/no-duplicates\nimport type * as http from 'node:http';\n// eslint-disable-next-line import/no-duplicates\nimport type { OutgoingHttpHeaders } from 'node:http';\nimport * as net from 'node:net';\nimport * as tls from 'node:tls';\nimport { debug } from '@sentry/core';\nimport type { AgentConnectOpts } from './base';\nimport { Agent } from './base';\nimport { parseProxyResponse } from './parse-proxy-response';\n\nfunction debugLog(...args: unknown[]): void {\n debug.log('[https-proxy-agent]', ...args);\n}\n\ntype Protocol = T extends `${infer Protocol}:${infer _}` ? Protocol : never;\n\ntype ConnectOptsMap = {\n http: Omit;\n https: Omit;\n};\n\ntype ConnectOpts = {\n [P in keyof ConnectOptsMap]: Protocol extends P ? ConnectOptsMap[P] : never;\n}[keyof ConnectOptsMap];\n\nexport type HttpsProxyAgentOptions = ConnectOpts &\n http.AgentOptions & {\n headers?: OutgoingHttpHeaders | (() => OutgoingHttpHeaders);\n };\n\n/**\n * The `HttpsProxyAgent` implements an HTTP Agent subclass that connects to\n * the specified \"HTTP(s) proxy server\" in order to proxy HTTPS requests.\n *\n * Outgoing HTTP requests are first tunneled through the proxy server using the\n * `CONNECT` HTTP request method to establish a connection to the proxy server,\n * and then the proxy server connects to the destination target and issues the\n * HTTP request from the proxy server.\n *\n * `https:` requests have their socket connection upgraded to TLS once\n * the connection to the proxy server has been established.\n */\nexport class HttpsProxyAgent extends Agent {\n static protocols = ['http', 'https'] as const;\n\n readonly proxy: URL;\n proxyHeaders: OutgoingHttpHeaders | (() => OutgoingHttpHeaders);\n connectOpts: net.TcpNetConnectOpts & tls.ConnectionOptions;\n\n constructor(proxy: Uri | URL, opts?: HttpsProxyAgentOptions) {\n super(opts);\n this.options = {};\n this.proxy = typeof proxy === 'string' ? new URL(proxy) : proxy;\n this.proxyHeaders = opts?.headers ?? {};\n debugLog('Creating new HttpsProxyAgent instance: %o', this.proxy.href);\n\n // Trim off the brackets from IPv6 addresses\n const host = (this.proxy.hostname || this.proxy.host).replace(/^\\[|\\]$/g, '');\n const port = this.proxy.port ? parseInt(this.proxy.port, 10) : this.proxy.protocol === 'https:' ? 443 : 80;\n this.connectOpts = {\n // Attempt to negotiate http/1.1 for proxy servers that support http/2\n ALPNProtocols: ['http/1.1'],\n ...(opts ? omit(opts, 'headers') : null),\n host,\n port,\n };\n }\n\n /**\n * Called when the node-core HTTP client library is creating a\n * new HTTP request.\n */\n async connect(req: http.ClientRequest, opts: AgentConnectOpts): Promise {\n const { proxy } = this;\n\n if (!opts.host) {\n throw new TypeError('No \"host\" provided');\n }\n\n // Create a socket connection to the proxy server.\n let socket: net.Socket;\n if (proxy.protocol === 'https:') {\n debugLog('Creating `tls.Socket`: %o', this.connectOpts);\n const servername = this.connectOpts.servername || this.connectOpts.host;\n socket = tls.connect({\n ...this.connectOpts,\n servername: servername && net.isIP(servername) ? undefined : servername,\n });\n } else {\n debugLog('Creating `net.Socket`: %o', this.connectOpts);\n socket = net.connect(this.connectOpts);\n }\n\n const headers: OutgoingHttpHeaders =\n typeof this.proxyHeaders === 'function' ? this.proxyHeaders() : { ...this.proxyHeaders };\n const host = net.isIPv6(opts.host) ? `[${opts.host}]` : opts.host;\n let payload = `CONNECT ${host}:${opts.port} HTTP/1.1\\r\\n`;\n\n // Inject the `Proxy-Authorization` header if necessary.\n if (proxy.username || proxy.password) {\n const auth = `${decodeURIComponent(proxy.username)}:${decodeURIComponent(proxy.password)}`;\n headers['Proxy-Authorization'] = `Basic ${Buffer.from(auth).toString('base64')}`;\n }\n\n headers.Host = `${host}:${opts.port}`;\n\n if (!headers['Proxy-Connection']) {\n headers['Proxy-Connection'] = this.keepAlive ? 'Keep-Alive' : 'close';\n }\n for (const name of Object.keys(headers)) {\n payload += `${name}: ${headers[name]}\\r\\n`;\n }\n\n const proxyResponsePromise = parseProxyResponse(socket);\n\n socket.write(`${payload}\\r\\n`);\n\n const { connect, buffered } = await proxyResponsePromise;\n req.emit('proxyConnect', connect);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore Not EventEmitter in Node types\n this.emit('proxyConnect', connect, req);\n\n if (connect.statusCode === 200) {\n req.once('socket', resume);\n\n if (opts.secureEndpoint) {\n // The proxy is connecting to a TLS server, so upgrade\n // this socket connection to a TLS connection.\n debugLog('Upgrading socket connection to TLS');\n const servername = opts.servername || opts.host;\n return tls.connect({\n ...omit(opts, 'host', 'path', 'port'),\n socket,\n servername: net.isIP(servername) ? undefined : servername,\n });\n }\n\n return socket;\n }\n\n // Some other status code that's not 200... need to re-play the HTTP\n // header \"data\" events onto the socket once the HTTP machinery is\n // attached so that the node core `http` can parse and handle the\n // error status code.\n\n // Close the original socket, and a new \"fake\" socket is returned\n // instead, so that the proxy doesn't get the HTTP request\n // written to it (which may contain `Authorization` headers or other\n // sensitive data).\n //\n // See: https://hackerone.com/reports/541502\n socket.destroy();\n\n const fakeSocket = new net.Socket({ writable: false });\n fakeSocket.readable = true;\n\n // Need to wait for the \"socket\" event to re-play the \"data\" events.\n req.once('socket', (s: net.Socket) => {\n debugLog('Replaying proxy buffer for failed request');\n // Replay the \"buffered\" Buffer onto the fake `socket`, since at\n // this point the HTTP module machinery has been hooked up for\n // the user.\n s.push(buffered);\n s.push(null);\n });\n\n return fakeSocket;\n }\n}\n\nfunction resume(socket: net.Socket | tls.TLSSocket): void {\n socket.resume();\n}\n\nfunction omit(\n obj: T,\n ...keys: K\n): {\n [K2 in Exclude]: T[K2];\n} {\n const ret = {} as {\n [K in keyof typeof obj]: (typeof obj)[K];\n };\n let key: keyof typeof obj;\n for (key in obj) {\n if (!keys.includes(key)) {\n ret[key] = obj[key];\n }\n }\n return ret;\n}\n","import * as http from 'node:http';\nimport * as https from 'node:https';\nimport { Readable } from 'node:stream';\nimport { createGzip } from 'node:zlib';\nimport type {\n BaseTransportOptions,\n Transport,\n TransportMakeRequestResponse,\n TransportRequest,\n TransportRequestExecutor,\n} from '@sentry/core';\nimport { consoleSandbox, createTransport, suppressTracing } from '@sentry/core';\nimport { HttpsProxyAgent } from '../proxy';\nimport type { HTTPModule } from './http-module';\n\nexport interface NodeTransportOptions extends BaseTransportOptions {\n /** Set a proxy that should be used for outbound requests. */\n proxy?: string;\n /** HTTPS proxy CA certificates */\n caCerts?: string | Buffer | Array;\n /** Custom HTTP module. Defaults to the native 'http' and 'https' modules. */\n httpModule?: HTTPModule;\n /** Allow overriding connection keepAlive, defaults to false */\n keepAlive?: boolean;\n}\n\n// Estimated maximum size for reasonable standalone event\nconst GZIP_THRESHOLD = 1024 * 32;\n\n/**\n * Gets a stream from a Uint8Array or string\n * Readable.from is ideal but was added in node.js v12.3.0 and v10.17.0\n */\nfunction streamFromBody(body: Uint8Array | string): Readable {\n return new Readable({\n read() {\n this.push(body);\n this.push(null);\n },\n });\n}\n\n/**\n * Creates a Transport that uses native the native 'http' and 'https' modules to send events to Sentry.\n */\nexport function makeNodeTransport(options: NodeTransportOptions): Transport {\n let urlSegments: URL;\n\n try {\n urlSegments = new URL(options.url);\n } catch (_e) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n '[@sentry/node]: Invalid dsn or tunnel option, will not send any events. The tunnel option must be a full URL when used.',\n );\n });\n return createTransport(options, () => Promise.resolve({}));\n }\n\n const isHttps = urlSegments.protocol === 'https:';\n\n // Proxy prioritization: http => `options.proxy` | `process.env.http_proxy`\n // Proxy prioritization: https => `options.proxy` | `process.env.https_proxy` | `process.env.http_proxy`\n const proxy = applyNoProxyOption(\n urlSegments,\n options.proxy || (isHttps ? process.env.https_proxy : undefined) || process.env.http_proxy,\n );\n\n const nativeHttpModule = isHttps ? https : http;\n const keepAlive = options.keepAlive === undefined ? false : options.keepAlive;\n\n // TODO(v11): Evaluate if we can set keepAlive to true. This would involve testing for memory leaks in older node\n // versions(>= 8) as they had memory leaks when using it: #2555\n const agent = proxy\n ? (new HttpsProxyAgent(proxy) as http.Agent)\n : new nativeHttpModule.Agent({ keepAlive, maxSockets: 30, timeout: 2000 });\n\n const requestExecutor = createRequestExecutor(options, options.httpModule ?? nativeHttpModule, agent);\n return createTransport(options, requestExecutor);\n}\n\n/**\n * Honors the `no_proxy` env variable with the highest priority to allow for hosts exclusion.\n *\n * @param transportUrl The URL the transport intends to send events to.\n * @param proxy The client configured proxy.\n * @returns A proxy the transport should use.\n */\nfunction applyNoProxyOption(transportUrlSegments: URL, proxy: string | undefined): string | undefined {\n const { no_proxy } = process.env;\n\n const urlIsExemptFromProxy = no_proxy\n ?.split(',')\n .some(\n exemption => transportUrlSegments.host.endsWith(exemption) || transportUrlSegments.hostname.endsWith(exemption),\n );\n\n if (urlIsExemptFromProxy) {\n return undefined;\n } else {\n return proxy;\n }\n}\n\n/**\n * Creates a RequestExecutor to be used with `createTransport`.\n */\nfunction createRequestExecutor(\n options: NodeTransportOptions,\n httpModule: HTTPModule,\n agent: http.Agent,\n): TransportRequestExecutor {\n const { hostname, pathname, port, protocol, search } = new URL(options.url);\n return function makeRequest(request: TransportRequest): Promise {\n return new Promise((resolve, reject) => {\n // This ensures we do not generate any spans in OpenTelemetry for the transport\n suppressTracing(() => {\n let body = streamFromBody(request.body);\n\n const headers: Record = { ...options.headers };\n\n if (request.body.length > GZIP_THRESHOLD) {\n headers['content-encoding'] = 'gzip';\n body = body.pipe(createGzip());\n }\n\n const hostnameIsIPv6 = hostname.startsWith('[');\n\n const req = httpModule.request(\n {\n method: 'POST',\n agent,\n headers,\n // Remove \"[\" and \"]\" from IPv6 hostnames\n hostname: hostnameIsIPv6 ? hostname.slice(1, -1) : hostname,\n path: `${pathname}${search}`,\n port,\n protocol,\n ca: options.caCerts,\n },\n res => {\n res.on('data', () => {\n // Drain socket\n });\n\n res.on('end', () => {\n // Drain socket\n });\n\n res.setEncoding('utf8');\n\n // \"Key-value pairs of header names and values. Header names are lower-cased.\"\n // https://nodejs.org/api/http.html#http_message_headers\n const retryAfterHeader = res.headers['retry-after'] ?? null;\n const rateLimitsHeader = res.headers['x-sentry-rate-limits'] ?? null;\n\n resolve({\n statusCode: res.statusCode,\n headers: {\n 'retry-after': retryAfterHeader,\n 'x-sentry-rate-limits': Array.isArray(rateLimitsHeader)\n ? rateLimitsHeader[0] || null\n : rateLimitsHeader,\n },\n });\n },\n );\n\n req.on('error', reject);\n body.pipe(req);\n });\n });\n };\n}\n","import { envToBool } from '@sentry/core';\n\n/**\n * Parse the spotlight option with proper precedence:\n * - `false` or explicit string from options: use as-is\n * - `true`: enable spotlight, but prefer a custom URL from the env var if set\n * - `undefined`: defer entirely to the env var (bool or URL)\n */\nexport function getSpotlightConfig(optionsSpotlight: boolean | string | undefined): boolean | string | undefined {\n if (optionsSpotlight === false) {\n return false;\n }\n\n if (typeof optionsSpotlight === 'string') {\n return optionsSpotlight;\n }\n\n // optionsSpotlight is true or undefined\n const envBool = envToBool(process.env.SENTRY_SPOTLIGHT, { strict: true });\n const envUrl = envBool === null && process.env.SENTRY_SPOTLIGHT ? process.env.SENTRY_SPOTLIGHT : undefined;\n\n return optionsSpotlight === true\n ? (envUrl ?? true) // true: use env URL if present, otherwise true\n : (envBool ?? envUrl); // undefined: use env var (bool or URL)\n}\n","import { posix, sep } from 'node:path';\nimport { dirname } from '@sentry/core';\n\n/** normalizes Windows paths */\nfunction normalizeWindowsPath(path: string): string {\n return path\n .replace(/^[A-Z]:/, '') // remove Windows-style prefix\n .replace(/\\\\/g, '/'); // replace all `\\` instances with `/`\n}\n\n/** Creates a function that gets the module name from a filename */\nexport function createGetModuleFromFilename(\n basePath: string = process.argv[1] ? dirname(process.argv[1]) : process.cwd(),\n isWindows: boolean = sep === '\\\\',\n): (filename: string | undefined) => string | undefined {\n const normalizedBase = isWindows ? normalizeWindowsPath(basePath) : basePath;\n\n return (filename: string | undefined) => {\n if (!filename) {\n return;\n }\n\n const normalizedFilename = isWindows ? normalizeWindowsPath(filename) : filename;\n\n // eslint-disable-next-line prefer-const\n let { dir, base: file, ext } = posix.parse(normalizedFilename);\n\n if (ext === '.js' || ext === '.mjs' || ext === '.cjs') {\n file = file.slice(0, ext.length * -1);\n }\n\n // The file name might be URI-encoded which we want to decode to\n // the original file name.\n const decodedFile = decodeURIComponent(file);\n\n if (!dir) {\n // No dirname whatsoever\n dir = '.';\n }\n\n const n = dir.lastIndexOf('/node_modules');\n if (n > -1) {\n return `${dir.slice(n + 14).replace(/\\//g, '.')}:${decodedFile}`;\n }\n\n // Let's see if it's a part of the main module\n // To be a part of main module, it has to share the same base\n if (dir.startsWith(normalizedBase)) {\n const moduleName = dir.slice(normalizedBase.length + 1).replace(/\\//g, '.');\n return moduleName ? `${moduleName}:${decodedFile}` : decodedFile;\n }\n\n return decodedFile;\n };\n}\n","// PUBLIC APIS\n\nimport type { StackParser } from '@sentry/core';\nimport { createStackParser, GLOBAL_OBJ, nodeStackLineParser } from '@sentry/core';\nimport { createGetModuleFromFilename } from '../utils/module';\n\n/**\n * Returns a release dynamically from environment variables.\n */\n// eslint-disable-next-line complexity\nexport function getSentryRelease(fallback?: string): string | undefined {\n // Always read first as Sentry takes this as precedence\n if (process.env.SENTRY_RELEASE) {\n return process.env.SENTRY_RELEASE;\n }\n\n // This supports the variable that sentry-webpack-plugin injects\n if (GLOBAL_OBJ.SENTRY_RELEASE?.id) {\n return GLOBAL_OBJ.SENTRY_RELEASE.id;\n }\n\n // This list is in approximate alpha order, separated into 3 categories:\n // 1. Git providers\n // 2. CI providers with specific environment variables (has the provider name in the variable name)\n // 3. CI providers with generic environment variables (checked for last to prevent possible false positives)\n\n const possibleReleaseNameOfGitProvider =\n // GitHub Actions - https://help.github.com/en/actions/configuring-and-managing-workflows/using-environment-variables#default-environment-variables\n process.env['GITHUB_SHA'] ||\n // GitLab CI - https://docs.gitlab.com/ee/ci/variables/predefined_variables.html\n process.env['CI_MERGE_REQUEST_SOURCE_BRANCH_SHA'] ||\n process.env['CI_BUILD_REF'] ||\n process.env['CI_COMMIT_SHA'] ||\n // Bitbucket - https://support.atlassian.com/bitbucket-cloud/docs/variables-and-secrets/\n process.env['BITBUCKET_COMMIT'];\n\n const possibleReleaseNameOfCiProvidersWithSpecificEnvVar =\n // AppVeyor - https://www.appveyor.com/docs/environment-variables/\n process.env['APPVEYOR_PULL_REQUEST_HEAD_COMMIT'] ||\n process.env['APPVEYOR_REPO_COMMIT'] ||\n // AWS CodeBuild - https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html\n process.env['CODEBUILD_RESOLVED_SOURCE_VERSION'] ||\n // AWS Amplify - https://docs.aws.amazon.com/amplify/latest/userguide/environment-variables.html\n process.env['AWS_COMMIT_ID'] ||\n // Azure Pipelines - https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml\n process.env['BUILD_SOURCEVERSION'] ||\n // Bitrise - https://devcenter.bitrise.io/builds/available-environment-variables/\n process.env['GIT_CLONE_COMMIT_HASH'] ||\n // Buddy CI - https://buddy.works/docs/pipelines/environment-variables#default-environment-variables\n process.env['BUDDY_EXECUTION_REVISION'] ||\n // Builtkite - https://buildkite.com/docs/pipelines/environment-variables\n process.env['BUILDKITE_COMMIT'] ||\n // CircleCI - https://circleci.com/docs/variables/\n process.env['CIRCLE_SHA1'] ||\n // Cirrus CI - https://cirrus-ci.org/guide/writing-tasks/#environment-variables\n process.env['CIRRUS_CHANGE_IN_REPO'] ||\n // Codefresh - https://codefresh.io/docs/docs/codefresh-yaml/variables/\n process.env['CF_REVISION'] ||\n // Codemagic - https://docs.codemagic.io/yaml-basic-configuration/environment-variables/\n process.env['CM_COMMIT'] ||\n // Cloudflare Pages - https://developers.cloudflare.com/pages/platform/build-configuration/#environment-variables\n process.env['CF_PAGES_COMMIT_SHA'] ||\n // Drone - https://docs.drone.io/pipeline/environment/reference/\n process.env['DRONE_COMMIT_SHA'] ||\n // Flightcontrol - https://www.flightcontrol.dev/docs/guides/flightcontrol/environment-variables#built-in-environment-variables\n process.env['FC_GIT_COMMIT_SHA'] ||\n // Heroku #1 https://devcenter.heroku.com/articles/heroku-ci\n process.env['HEROKU_TEST_RUN_COMMIT_VERSION'] ||\n // Heroku #2 https://devcenter.heroku.com/articles/dyno-metadata#dyno-metadata\n process.env['HEROKU_BUILD_COMMIT'] ||\n // Heroku #3 (deprecated by Heroku, kept for backward compatibility)\n process.env['HEROKU_SLUG_COMMIT'] ||\n // Railway - https://docs.railway.app/reference/variables#git-variables\n process.env['RAILWAY_GIT_COMMIT_SHA'] ||\n // Render - https://render.com/docs/environment-variables\n process.env['RENDER_GIT_COMMIT'] ||\n // Semaphore CI - https://docs.semaphoreci.com/ci-cd-environment/environment-variables\n process.env['SEMAPHORE_GIT_SHA'] ||\n // TravisCI - https://docs.travis-ci.com/user/environment-variables/#default-environment-variables\n process.env['TRAVIS_PULL_REQUEST_SHA'] ||\n // Vercel - https://vercel.com/docs/v2/build-step#system-environment-variables\n process.env['VERCEL_GIT_COMMIT_SHA'] ||\n process.env['VERCEL_GITHUB_COMMIT_SHA'] ||\n process.env['VERCEL_GITLAB_COMMIT_SHA'] ||\n process.env['VERCEL_BITBUCKET_COMMIT_SHA'] ||\n // Zeit (now known as Vercel)\n process.env['ZEIT_GITHUB_COMMIT_SHA'] ||\n process.env['ZEIT_GITLAB_COMMIT_SHA'] ||\n process.env['ZEIT_BITBUCKET_COMMIT_SHA'];\n\n const possibleReleaseNameOfCiProvidersWithGenericEnvVar =\n // CloudBees CodeShip - https://docs.cloudbees.com/docs/cloudbees-codeship/latest/pro-builds-and-configuration/environment-variables\n process.env['CI_COMMIT_ID'] ||\n // Coolify - https://coolify.io/docs/knowledge-base/environment-variables\n process.env['SOURCE_COMMIT'] ||\n // Heroku #3 https://devcenter.heroku.com/changelog-items/630\n process.env['SOURCE_VERSION'] ||\n // Jenkins - https://plugins.jenkins.io/git/#environment-variables\n process.env['GIT_COMMIT'] ||\n // Netlify - https://docs.netlify.com/configure-builds/environment-variables/#build-metadata\n process.env['COMMIT_REF'] ||\n // TeamCity - https://www.jetbrains.com/help/teamcity/predefined-build-parameters.html\n process.env['BUILD_VCS_NUMBER'] ||\n // Woodpecker CI - https://woodpecker-ci.org/docs/usage/environment\n process.env['CI_COMMIT_SHA'];\n\n return (\n possibleReleaseNameOfGitProvider ||\n possibleReleaseNameOfCiProvidersWithSpecificEnvVar ||\n possibleReleaseNameOfCiProvidersWithGenericEnvVar ||\n fallback\n );\n}\n\n/** Node.js stack parser */\nexport const defaultStackParser: StackParser = createStackParser(nodeStackLineParser(createGetModuleFromFilename()));\n","import * as os from 'node:os';\nimport type { Tracer } from '@opentelemetry/api';\nimport { trace } from '@opentelemetry/api';\nimport { registerInstrumentations } from '@opentelemetry/instrumentation';\nimport type { BasicTracerProvider } from '@opentelemetry/sdk-trace-base';\nimport type { DynamicSamplingContext, Scope, ServerRuntimeClientOptions, TraceContext } from '@sentry/core';\nimport {\n _INTERNAL_clearAiProviderSkips,\n _INTERNAL_flushLogsBuffer,\n applySdkMetadata,\n debug,\n SDK_VERSION,\n ServerRuntimeClient,\n} from '@sentry/core';\nimport { type AsyncLocalStorageLookup, getTraceContextForScope } from '@sentry/opentelemetry';\nimport { isMainThread, threadId } from 'worker_threads';\nimport { DEBUG_BUILD } from '../debug-build';\nimport type { NodeClientOptions } from '../types';\n\nconst DEFAULT_CLIENT_REPORT_FLUSH_INTERVAL_MS = 60_000; // 60s was chosen arbitrarily\n\n/** A client for using Sentry with Node & OpenTelemetry. */\nexport class NodeClient extends ServerRuntimeClient {\n public traceProvider: BasicTracerProvider | undefined;\n public asyncLocalStorageLookup: AsyncLocalStorageLookup | undefined;\n\n private _tracer: Tracer | undefined;\n private _clientReportInterval: NodeJS.Timeout | undefined;\n private _clientReportOnExitFlushListener: (() => void) | undefined;\n private _logOnExitFlushListener: (() => void) | undefined;\n\n public constructor(options: NodeClientOptions) {\n const serverName =\n options.includeServerName === false\n ? undefined\n : options.serverName || global.process.env.SENTRY_NAME || os.hostname();\n\n const clientOptions: ServerRuntimeClientOptions = {\n ...options,\n platform: 'node',\n // Use provided runtime or default to 'node' with current process version\n runtime: options.runtime || { name: 'node', version: global.process.version },\n serverName,\n };\n\n if (options.openTelemetryInstrumentations) {\n registerInstrumentations({\n instrumentations: options.openTelemetryInstrumentations,\n });\n }\n\n applySdkMetadata(clientOptions, 'node');\n\n debug.log(`Initializing Sentry: process: ${process.pid}, thread: ${isMainThread ? 'main' : `worker-${threadId}`}.`);\n\n super(clientOptions);\n\n if (this.getOptions().enableLogs) {\n this._logOnExitFlushListener = () => {\n _INTERNAL_flushLogsBuffer(this);\n };\n\n if (serverName) {\n this.on('beforeCaptureLog', log => {\n log.attributes = {\n ...log.attributes,\n 'server.address': serverName,\n };\n });\n }\n\n process.on('beforeExit', this._logOnExitFlushListener);\n }\n }\n\n /** Get the OTEL tracer. */\n public get tracer(): Tracer {\n if (this._tracer) {\n return this._tracer;\n }\n\n const name = '@sentry/node';\n const version = SDK_VERSION;\n const tracer = trace.getTracer(name, version);\n this._tracer = tracer;\n\n return tracer;\n }\n\n /** @inheritDoc */\n // @ts-expect-error - PromiseLike is a subset of Promise\n public async flush(timeout?: number): PromiseLike {\n await this.traceProvider?.forceFlush();\n\n if (this.getOptions().sendClientReports) {\n this._flushOutcomes();\n }\n\n return super.flush(timeout);\n }\n\n /** @inheritDoc */\n // @ts-expect-error - PromiseLike is a subset of Promise\n public async close(timeout?: number | undefined): PromiseLike {\n if (this._clientReportInterval) {\n clearInterval(this._clientReportInterval);\n }\n\n if (this._clientReportOnExitFlushListener) {\n process.off('beforeExit', this._clientReportOnExitFlushListener);\n }\n\n if (this._logOnExitFlushListener) {\n process.off('beforeExit', this._logOnExitFlushListener);\n }\n\n const allEventsSent = await super.close(timeout);\n if (this.traceProvider) {\n await this.traceProvider.shutdown();\n }\n\n return allEventsSent;\n }\n\n /**\n * Will start tracking client reports for this client.\n *\n * NOTICE: This method will create an interval that is periodically called and attach a `process.on('beforeExit')`\n * hook. To clean up these resources, call `.close()` when you no longer intend to use the client. Not doing so will\n * result in a memory leak.\n */\n // The reason client reports need to be manually activated with this method instead of just enabling them in a\n // constructor, is that if users periodically and unboundedly create new clients, we will create more and more\n // intervals and beforeExit listeners, thus leaking memory. In these situations, users are required to call\n // `client.close()` in order to dispose of the acquired resources.\n // We assume that calling this method in Sentry.init() is a sensible default, because calling Sentry.init() over and\n // over again would also result in memory leaks.\n // Note: We have experimented with using `FinalizationRegisty` to clear the interval when the client is garbage\n // collected, but it did not work, because the cleanup function never got called.\n public startClientReportTracking(): void {\n const clientOptions = this.getOptions();\n if (clientOptions.sendClientReports) {\n this._clientReportOnExitFlushListener = () => {\n this._flushOutcomes();\n };\n\n this._clientReportInterval = setInterval(() => {\n DEBUG_BUILD && debug.log('Flushing client reports based on interval.');\n this._flushOutcomes();\n }, clientOptions.clientReportFlushInterval ?? DEFAULT_CLIENT_REPORT_FLUSH_INTERVAL_MS)\n // Unref is critical for not preventing the process from exiting because the interval is active.\n .unref();\n\n process.on('beforeExit', this._clientReportOnExitFlushListener);\n }\n }\n\n /** @inheritDoc */\n protected _setupIntegrations(): void {\n // Clear AI provider skip registrations before setting up integrations\n // This ensures a clean state between different client initializations\n // (e.g., when LangChain skips OpenAI in one client, but a subsequent client uses OpenAI standalone)\n _INTERNAL_clearAiProviderSkips();\n super._setupIntegrations();\n }\n\n /** Custom implementation for OTEL, so we can handle scope-span linking. */\n protected _getTraceInfoFromScope(\n scope: Scope | undefined,\n ): [dynamicSamplingContext: Partial | undefined, traceContext: TraceContext | undefined] {\n if (!scope) {\n return [undefined, undefined];\n }\n\n return getTraceContextForScope(this, scope);\n }\n}\n","import { debug, GLOBAL_OBJ } from '@sentry/core';\nimport { createAddHookMessageChannel } from 'import-in-the-middle';\nimport * as moduleModule from 'module';\nimport { supportsEsmLoaderHooks } from '../utils/detection';\n\n/**\n * Initialize the ESM loader - This method is private and not part of the public\n * API.\n *\n * @ignore\n */\nexport function initializeEsmLoader(): void {\n if (!supportsEsmLoaderHooks()) {\n return;\n }\n\n if (!GLOBAL_OBJ._sentryEsmLoaderHookRegistered) {\n GLOBAL_OBJ._sentryEsmLoaderHookRegistered = true;\n\n try {\n const { addHookMessagePort } = createAddHookMessageChannel();\n // @ts-expect-error register is available in these versions\n moduleModule.register('import-in-the-middle/hook.mjs', import.meta.url, {\n data: { addHookMessagePort, include: [] },\n transferList: [addHookMessagePort],\n });\n } catch (error) {\n debug.warn(\"Failed to register 'import-in-the-middle' hook\", error);\n }\n }\n}\n","import type { Integration, Options } from '@sentry/core';\nimport {\n applySdkMetadata,\n consoleIntegration,\n consoleSandbox,\n conversationIdIntegration,\n debug,\n envToBool,\n functionToStringIntegration,\n getCurrentScope,\n getIntegrationsToSetup,\n hasSpansEnabled,\n inboundFiltersIntegration,\n linkedErrorsIntegration,\n propagationContextFromHeaders,\n requestDataIntegration,\n stackParserFromStackParserOptions,\n} from '@sentry/core';\nimport {\n enhanceDscWithOpenTelemetryRootSpanName,\n openTelemetrySetupCheck,\n setOpenTelemetryContextAsyncContextStrategy,\n setupEventContextTrace,\n} from '@sentry/opentelemetry';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { childProcessIntegration } from '../integrations/childProcess';\nimport { nodeContextIntegration } from '../integrations/context';\nimport { contextLinesIntegration } from '../integrations/contextlines';\nimport { httpIntegration } from '../integrations/http';\nimport { localVariablesIntegration } from '../integrations/local-variables';\nimport { modulesIntegration } from '../integrations/modules';\nimport { nativeNodeFetchIntegration } from '../integrations/node-fetch';\nimport { onUncaughtExceptionIntegration } from '../integrations/onuncaughtexception';\nimport { onUnhandledRejectionIntegration } from '../integrations/onunhandledrejection';\nimport { processSessionIntegration } from '../integrations/processSession';\nimport { INTEGRATION_NAME as SPOTLIGHT_INTEGRATION_NAME, spotlightIntegration } from '../integrations/spotlight';\nimport { systemErrorIntegration } from '../integrations/systemError';\nimport { makeNodeTransport } from '../transports';\nimport type { NodeClientOptions, NodeOptions } from '../types';\nimport { isCjs } from '../utils/detection';\nimport { getSpotlightConfig } from '../utils/spotlight';\nimport { defaultStackParser, getSentryRelease } from './api';\nimport { NodeClient } from './client';\nimport { initializeEsmLoader } from './esmLoader';\n\n/**\n * Get default integrations for the Node-Core SDK.\n */\nexport function getDefaultIntegrations(): Integration[] {\n return [\n // Common\n // TODO(v11): Replace with `eventFiltersIntegration` once we remove the deprecated `inboundFiltersIntegration`\n // eslint-disable-next-line deprecation/deprecation\n inboundFiltersIntegration(),\n functionToStringIntegration(),\n linkedErrorsIntegration(),\n requestDataIntegration(),\n systemErrorIntegration(),\n conversationIdIntegration(),\n // Native Wrappers\n consoleIntegration(),\n httpIntegration(),\n nativeNodeFetchIntegration(),\n // Global Handlers\n onUncaughtExceptionIntegration(),\n onUnhandledRejectionIntegration(),\n // Event Info\n contextLinesIntegration(),\n localVariablesIntegration(),\n nodeContextIntegration(),\n childProcessIntegration(),\n processSessionIntegration(),\n modulesIntegration(),\n ];\n}\n\n/**\n * Initialize Sentry for Node.\n */\nexport function init(options: NodeOptions | undefined = {}): NodeClient | undefined {\n return _init(options, getDefaultIntegrations);\n}\n\n/**\n * Initialize Sentry for Node, without any integrations added by default.\n */\nexport function initWithoutDefaultIntegrations(options: NodeOptions | undefined = {}): NodeClient {\n return _init(options, () => []);\n}\n\n/**\n * Initialize Sentry for Node, without performance instrumentation.\n */\nfunction _init(\n _options: NodeOptions | undefined = {},\n getDefaultIntegrationsImpl: (options: Options) => Integration[],\n): NodeClient {\n const options = getClientOptions(_options, getDefaultIntegrationsImpl);\n\n if (options.debug === true) {\n if (DEBUG_BUILD) {\n debug.enable();\n } else {\n // use `console.warn` rather than `debug.warn` since by non-debug bundles have all `debug.x` statements stripped\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');\n });\n }\n }\n\n if (options.registerEsmLoaderHooks !== false) {\n initializeEsmLoader();\n }\n\n setOpenTelemetryContextAsyncContextStrategy();\n\n const scope = getCurrentScope();\n scope.update(options.initialScope);\n\n if (options.spotlight && !options.integrations.some(({ name }) => name === SPOTLIGHT_INTEGRATION_NAME)) {\n options.integrations.push(\n spotlightIntegration({\n sidecarUrl: typeof options.spotlight === 'string' ? options.spotlight : undefined,\n }),\n );\n }\n\n applySdkMetadata(options, 'node-core');\n\n const client = new NodeClient(options);\n // The client is on the current scope, from where it generally is inherited\n getCurrentScope().setClient(client);\n\n client.init();\n\n debug.log(`SDK initialized from ${isCjs() ? 'CommonJS' : 'ESM'}`);\n\n client.startClientReportTracking();\n\n updateScopeFromEnvVariables();\n\n enhanceDscWithOpenTelemetryRootSpanName(client);\n setupEventContextTrace(client);\n\n // Ensure we flush events when vercel functions are ended\n // See: https://vercel.com/docs/functions/functions-api-reference#sigterm-signal\n if (process.env.VERCEL) {\n process.on('SIGTERM', async () => {\n // We have 500ms for processing here, so we try to make sure to have enough time to send the events\n await client.flush(200);\n });\n }\n\n return client;\n}\n\n/**\n * Validate that your OpenTelemetry setup is correct.\n */\nexport function validateOpenTelemetrySetup(): void {\n if (!DEBUG_BUILD) {\n return;\n }\n\n const setup = openTelemetrySetupCheck();\n\n const required: ReturnType = ['SentryContextManager', 'SentryPropagator'];\n\n if (hasSpansEnabled()) {\n required.push('SentrySpanProcessor');\n }\n\n for (const k of required) {\n if (!setup.includes(k)) {\n debug.error(\n `You have to set up the ${k}. Without this, the OpenTelemetry & Sentry integration will not work properly.`,\n );\n }\n }\n\n if (!setup.includes('SentrySampler')) {\n debug.warn(\n 'You have to set up the SentrySampler. Without this, the OpenTelemetry & Sentry integration may still work, but sample rates set for the Sentry SDK will not be respected. If you use a custom sampler, make sure to use `wrapSamplingDecision`.',\n );\n }\n}\n\nfunction getClientOptions(\n options: NodeOptions,\n getDefaultIntegrationsImpl: (options: Options) => Integration[],\n): NodeClientOptions {\n const release = getRelease(options.release);\n\n const spotlight = getSpotlightConfig(options.spotlight);\n\n const tracesSampleRate = getTracesSampleRate(options.tracesSampleRate);\n\n const mergedOptions = {\n ...options,\n dsn: options.dsn ?? process.env.SENTRY_DSN,\n environment: options.environment ?? process.env.SENTRY_ENVIRONMENT,\n sendClientReports: options.sendClientReports ?? true,\n transport: options.transport ?? makeNodeTransport,\n stackParser: stackParserFromStackParserOptions(options.stackParser || defaultStackParser),\n release,\n tracesSampleRate,\n spotlight,\n debug: envToBool(options.debug ?? process.env.SENTRY_DEBUG),\n };\n\n const integrations = options.integrations;\n const defaultIntegrations = options.defaultIntegrations ?? getDefaultIntegrationsImpl(mergedOptions);\n\n return {\n ...mergedOptions,\n integrations: getIntegrationsToSetup({\n defaultIntegrations,\n integrations,\n }),\n };\n}\n\nfunction getRelease(release: NodeOptions['release']): string | undefined {\n if (release !== undefined) {\n return release;\n }\n\n const detectedRelease = getSentryRelease();\n if (detectedRelease !== undefined) {\n return detectedRelease;\n }\n\n return undefined;\n}\n\nfunction getTracesSampleRate(tracesSampleRate: NodeOptions['tracesSampleRate']): number | undefined {\n if (tracesSampleRate !== undefined) {\n return tracesSampleRate;\n }\n\n const sampleRateFromEnv = process.env.SENTRY_TRACES_SAMPLE_RATE;\n if (!sampleRateFromEnv) {\n return undefined;\n }\n\n const parsed = parseFloat(sampleRateFromEnv);\n return isFinite(parsed) ? parsed : undefined;\n}\n\n/**\n * Update scope and propagation context based on environmental variables.\n *\n * See https://github.com/getsentry/rfcs/blob/main/text/0071-continue-trace-over-process-boundaries.md\n * for more details.\n */\nfunction updateScopeFromEnvVariables(): void {\n if (envToBool(process.env.SENTRY_USE_ENVIRONMENT) !== false) {\n const sentryTraceEnv = process.env.SENTRY_TRACE;\n const baggageEnv = process.env.SENTRY_BAGGAGE;\n const propagationContext = propagationContextFromHeaders(sentryTraceEnv, baggageEnv);\n getCurrentScope().setPropagationContext(propagationContext);\n }\n}\n","import { context } from '@opentelemetry/api';\nimport type { Scope } from '@sentry/core';\nimport { getScopesFromContext } from '@sentry/opentelemetry';\n\n/**\n * Update the active isolation scope.\n * Should be used with caution!\n */\nexport function setIsolationScope(isolationScope: Scope): void {\n const scopes = getScopesFromContext(context.active());\n if (scopes) {\n scopes.isolationScope = isolationScope;\n }\n}\n","import type { MissingInstrumentationContext } from '@sentry/core';\nimport { isCjs } from './detection';\n\nexport const createMissingInstrumentationContext = (pkg: string): MissingInstrumentationContext => ({\n package: pkg,\n 'javascript.is_cjs': isCjs(),\n});\n","import { isWrapped } from '@opentelemetry/instrumentation';\nimport { consoleSandbox, getClient, getGlobalScope, hasSpansEnabled, isEnabled } from '@sentry/core';\nimport type { NodeClient } from '../sdk/client';\nimport { createMissingInstrumentationContext } from './createMissingInstrumentationContext';\nimport { isCjs } from './detection';\n\n/**\n * Checks and warns if a framework isn't wrapped by opentelemetry.\n */\nexport function ensureIsWrapped(\n maybeWrappedFunction: unknown,\n name: 'express' | 'connect' | 'fastify' | 'hapi' | 'koa' | 'hono',\n): void {\n const clientOptions = getClient()?.getOptions();\n if (\n !clientOptions?.disableInstrumentationWarnings &&\n !isWrapped(maybeWrappedFunction) &&\n isEnabled() &&\n hasSpansEnabled(clientOptions)\n ) {\n consoleSandbox(() => {\n if (isCjs()) {\n // eslint-disable-next-line no-console\n console.warn(\n `[Sentry] ${name} is not instrumented. This is likely because you required/imported ${name} before calling \\`Sentry.init()\\`.`,\n );\n } else {\n // eslint-disable-next-line no-console\n console.warn(\n `[Sentry] ${name} is not instrumented. Please make sure to initialize Sentry in a separate file that you \\`--import\\` when running node, see: https://docs.sentry.io/platforms/javascript/guides/${name}/install/esm/.`,\n );\n }\n });\n\n getGlobalScope().setContext('missing_instrumentation', createMissingInstrumentationContext(name));\n }\n}\n","import { types } from 'node:util';\nimport { Worker } from 'node:worker_threads';\nimport type { Contexts, Event, EventHint, Integration, IntegrationFn, ScopeData } from '@sentry/core';\nimport {\n debug,\n defineIntegration,\n getClient,\n getCombinedScopeData,\n getCurrentScope,\n getFilenameToDebugIdMap,\n getIsolationScope,\n GLOBAL_OBJ,\n} from '@sentry/core';\nimport { NODE_VERSION } from '../../nodeVersion';\nimport type { NodeClient } from '../../sdk/client';\nimport { isDebuggerEnabled } from '../../utils/debug';\nimport type { AnrIntegrationOptions, WorkerStartData } from './common';\n\nconst { isPromise } = types;\n\n// This string is a placeholder that gets overwritten with the worker code.\nexport const base64WorkerScript = '###AnrWorkerScript###';\n\nconst DEFAULT_INTERVAL = 50;\nconst DEFAULT_HANG_THRESHOLD = 5000;\n\nfunction log(message: string, ...args: unknown[]): void {\n debug.log(`[ANR] ${message}`, ...args);\n}\n\nfunction globalWithScopeFetchFn(): typeof GLOBAL_OBJ & { __SENTRY_GET_SCOPES__?: () => ScopeData } {\n return GLOBAL_OBJ;\n}\n\n/** Fetches merged scope data */\nfunction getScopeData(): ScopeData {\n const scope = getCombinedScopeData(getIsolationScope(), getCurrentScope());\n\n // We remove attachments because they likely won't serialize well as json\n scope.attachments = [];\n // We can't serialize event processor functions\n scope.eventProcessors = [];\n\n return scope;\n}\n\n/**\n * Gets contexts by calling all event processors. This shouldn't be called until all integrations are setup\n */\nasync function getContexts(client: NodeClient): Promise {\n let event: Event | null = { message: 'ANR' };\n const eventHint: EventHint = {};\n\n for (const processor of client.getEventProcessors()) {\n if (event === null) break;\n event = await processor(event, eventHint);\n }\n\n return event?.contexts || {};\n}\n\nconst INTEGRATION_NAME = 'Anr';\n\ntype AnrInternal = { startWorker: () => void; stopWorker: () => void };\n\n// eslint-disable-next-line deprecation/deprecation\nconst _anrIntegration = ((options: Partial = {}) => {\n if (NODE_VERSION.major < 16 || (NODE_VERSION.major === 16 && NODE_VERSION.minor < 17)) {\n throw new Error('ANR detection requires Node 16.17.0 or later');\n }\n\n let worker: Promise<() => void> | undefined;\n let client: NodeClient | undefined;\n\n // Hookup the scope fetch function to the global object so that it can be called from the worker thread via the\n // debugger when it pauses\n const gbl = globalWithScopeFetchFn();\n gbl.__SENTRY_GET_SCOPES__ = getScopeData;\n\n return {\n name: INTEGRATION_NAME,\n startWorker: () => {\n if (worker) {\n return;\n }\n\n if (client) {\n worker = _startWorker(client, options);\n }\n },\n stopWorker: () => {\n if (worker) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n worker.then(stop => {\n stop();\n worker = undefined;\n });\n }\n },\n async setup(initClient: NodeClient) {\n client = initClient;\n\n if (options.captureStackTrace && (await isDebuggerEnabled())) {\n debug.warn('ANR captureStackTrace has been disabled because the debugger was already enabled');\n options.captureStackTrace = false;\n }\n\n // setImmediate is used to ensure that all other integrations have had their setup called first.\n // This allows us to call into all integrations to fetch the full context\n setImmediate(() => this.startWorker());\n },\n } as Integration & AnrInternal;\n}) satisfies IntegrationFn;\n\n// eslint-disable-next-line deprecation/deprecation\ntype AnrReturn = (options?: Partial) => Integration & AnrInternal;\n\n/**\n * Application Not Responding (ANR) integration for Node.js applications.\n *\n * @deprecated The ANR integration has been deprecated. Use `eventLoopBlockIntegration` from `@sentry/node-native` instead.\n *\n * Detects when the Node.js main thread event loop is blocked for more than the configured\n * threshold (5 seconds by default) and reports these as Sentry events.\n *\n * ANR detection uses a worker thread to monitor the event loop in the main app thread.\n * The main app thread sends a heartbeat message to the ANR worker thread every 50ms by default.\n * If the ANR worker does not receive a heartbeat message for the configured threshold duration,\n * it triggers an ANR event.\n *\n * - Node.js 16.17.0 or higher\n * - Only supported in the Node.js runtime (not browsers)\n * - Not supported for Node.js clusters\n *\n * Overhead should be minimal:\n * - Main thread: Only polling the ANR worker over IPC every 50ms\n * - Worker thread: Consumes around 10-20 MB of RAM\n * - When ANR detected: Brief pause in debugger to capture stack trace (negligible compared to the blocking)\n *\n * @example\n * ```javascript\n * Sentry.init({\n * dsn: \"https://examplePublicKey@o0.ingest.sentry.io/0\",\n * integrations: [\n * Sentry.anrIntegration({\n * anrThreshold: 5000,\n * captureStackTrace: true,\n * pollInterval: 50,\n * }),\n * ],\n * });\n * ```\n */\nexport const anrIntegration = defineIntegration(_anrIntegration) as AnrReturn;\n\n/**\n * Starts the ANR worker thread\n *\n * @returns A function to stop the worker\n */\nasync function _startWorker(\n client: NodeClient,\n // eslint-disable-next-line deprecation/deprecation\n integrationOptions: Partial,\n): Promise<() => void> {\n const dsn = client.getDsn();\n\n if (!dsn) {\n return () => {\n //\n };\n }\n\n const contexts = await getContexts(client);\n\n // These will not be accurate if sent later from the worker thread\n delete contexts.app?.app_memory;\n delete contexts.device?.free_memory;\n\n const initOptions = client.getOptions();\n\n const sdkMetadata = client.getSdkMetadata() || {};\n if (sdkMetadata.sdk) {\n sdkMetadata.sdk.integrations = initOptions.integrations.map(i => i.name);\n }\n\n const options: WorkerStartData = {\n debug: debug.isEnabled(),\n dsn,\n tunnel: initOptions.tunnel,\n environment: initOptions.environment || 'production',\n release: initOptions.release,\n dist: initOptions.dist,\n sdkMetadata,\n appRootPath: integrationOptions.appRootPath,\n pollInterval: integrationOptions.pollInterval || DEFAULT_INTERVAL,\n anrThreshold: integrationOptions.anrThreshold || DEFAULT_HANG_THRESHOLD,\n captureStackTrace: !!integrationOptions.captureStackTrace,\n maxAnrEvents: integrationOptions.maxAnrEvents || 1,\n staticTags: integrationOptions.staticTags || {},\n contexts,\n };\n\n if (options.captureStackTrace) {\n const inspector = await import('node:inspector');\n if (!inspector.url()) {\n inspector.open(0);\n }\n }\n\n const worker = new Worker(new URL(`data:application/javascript;base64,${base64WorkerScript}`), {\n workerData: options,\n // We don't want any Node args to be passed to the worker\n execArgv: [],\n env: { ...process.env, NODE_OPTIONS: undefined },\n });\n\n process.on('exit', () => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n worker.terminate();\n });\n\n const timer = setInterval(() => {\n try {\n const currentSession = getIsolationScope().getSession();\n // We need to copy the session object and remove the toJSON method so it can be sent to the worker\n // serialized without making it a SerializedSession\n const session = currentSession ? { ...currentSession, toJSON: undefined } : undefined;\n // message the worker to tell it the main event loop is still running\n worker.postMessage({ session, debugImages: getFilenameToDebugIdMap(initOptions.stackParser) });\n } catch {\n //\n }\n }, options.pollInterval);\n // Timer should not block exit\n timer.unref();\n\n worker.on('message', (msg: string) => {\n if (msg === 'session-ended') {\n log('ANR event sent from ANR worker. Clearing session in this thread.');\n getIsolationScope().setSession(undefined);\n }\n });\n\n worker.once('error', (err: Error) => {\n clearInterval(timer);\n log('ANR worker error', err);\n });\n\n worker.once('exit', (code: number) => {\n clearInterval(timer);\n log('ANR worker exit', code);\n });\n\n // Ensure this thread can't block app exit\n worker.unref();\n\n return () => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n worker.terminate();\n clearInterval(timer);\n };\n}\n\n/**\n * @see {@link disableBlockDetectionForCallback}\n *\n * @deprecated The ANR integration has been deprecated. Use `eventLoopBlockIntegration` from `@sentry/node-native` instead.\n */\nexport function disableAnrDetectionForCallback(callback: () => T): T;\n/**\n * @see {@link disableBlockDetectionForCallback}\n *\n * @deprecated The ANR integration has been deprecated. Use `eventLoopBlockIntegration` from `@sentry/node-native` instead.\n */\nexport function disableAnrDetectionForCallback(callback: () => Promise): Promise;\n/**\n * Temporarily disables ANR detection for the duration of a callback function.\n *\n * This utility function allows you to disable ANR detection during operations that\n * are expected to block the event loop, such as intensive computational tasks or\n * synchronous I/O operations.\n *\n * @deprecated The ANR integration has been deprecated. Use `eventLoopBlockIntegration` from `@sentry/node-native` instead.\n */\nexport function disableAnrDetectionForCallback(callback: () => T | Promise): T | Promise {\n const integration = getClient()?.getIntegrationByName(INTEGRATION_NAME) as AnrInternal | undefined;\n\n if (!integration) {\n return callback();\n }\n\n integration.stopWorker();\n\n const result = callback();\n if (isPromise(result)) {\n return result.finally(() => integration.startWorker());\n }\n\n integration.startWorker();\n return result;\n}\n","import { format } from 'node:util';\nimport type { Log, LogSeverityLevel, ParameterizedString, Scope } from '@sentry/core';\nimport { _INTERNAL_captureLog } from '@sentry/core';\n\n/**\n * Additional metadata to capture the log with.\n */\ninterface CaptureLogMetadata {\n scope?: Scope;\n}\n\ntype CaptureLogArgWithTemplate = [\n messageTemplate: string,\n messageParams: Array,\n attributes?: Log['attributes'],\n metadata?: CaptureLogMetadata,\n];\n\ntype CaptureLogArgWithoutTemplate = [\n message: ParameterizedString,\n attributes?: Log['attributes'],\n metadata?: CaptureLogMetadata,\n];\n\nexport type CaptureLogArgs = CaptureLogArgWithTemplate | CaptureLogArgWithoutTemplate;\n\n/**\n * Capture a log with the given level.\n *\n * @param level - The level of the log.\n * @param message - The message to log.\n * @param attributes - Arbitrary structured data that stores information about the log - e.g., userId: 100.\n */\nexport function captureLog(level: LogSeverityLevel, ...args: CaptureLogArgs): void {\n const [messageOrMessageTemplate, paramsOrAttributes, maybeAttributesOrMetadata, maybeMetadata] = args;\n if (Array.isArray(paramsOrAttributes)) {\n // type-casting here because from the type definitions we know that `maybeAttributesOrMetadata` is an attributes object (or undefined)\n const attributes = { ...(maybeAttributesOrMetadata as Log['attributes'] | undefined) };\n attributes['sentry.message.template'] = messageOrMessageTemplate;\n paramsOrAttributes.forEach((param, index) => {\n attributes[`sentry.message.parameter.${index}`] = param;\n });\n const message = format(messageOrMessageTemplate, ...paramsOrAttributes);\n _INTERNAL_captureLog({ level, message, attributes }, maybeMetadata?.scope);\n } else {\n _INTERNAL_captureLog(\n { level, message: messageOrMessageTemplate, attributes: paramsOrAttributes },\n // type-casting here because from the type definitions we know that `maybeAttributesOrMetadata` is a metadata object (or undefined)\n (maybeAttributesOrMetadata as CaptureLogMetadata | undefined)?.scope ?? maybeMetadata?.scope,\n );\n }\n}\n","import { captureLog, type CaptureLogArgs } from './capture';\n\n/**\n * @summary Capture a log with the `trace` level. Requires the `enableLogs` option to be enabled.\n *\n * You can either pass a message and attributes or a message template, params and attributes.\n *\n * @example\n *\n * ```\n * Sentry.logger.trace('Starting database connection', {\n * database: 'users',\n * connectionId: 'conn_123'\n * });\n * ```\n *\n * @example With template strings\n *\n * ```\n * Sentry.logger.trace('Database connection %s established for %s',\n * ['successful', 'users'],\n * { connectionId: 'conn_123' }\n * );\n * ```\n */\nexport function trace(...args: CaptureLogArgs): void {\n captureLog('trace', ...args);\n}\n\n/**\n * @summary Capture a log with the `debug` level. Requires the `enableLogs` option to be enabled.\n *\n * You can either pass a message and attributes or a message template, params and attributes.\n *\n * @example\n *\n * ```\n * Sentry.logger.debug('Cache miss for user profile', {\n * userId: 'user_123',\n * cacheKey: 'profile:user_123'\n * });\n * ```\n *\n * @example With template strings\n *\n * ```\n * Sentry.logger.debug('Cache %s for %s: %s',\n * ['miss', 'user profile', 'key not found'],\n * { userId: 'user_123' }\n * );\n * ```\n */\nexport function debug(...args: CaptureLogArgs): void {\n captureLog('debug', ...args);\n}\n\n/**\n * @summary Capture a log with the `info` level. Requires the `enableLogs` option to be enabled.\n *\n * You can either pass a message and attributes or a message template, params and attributes.\n *\n * @example\n *\n * ```\n * Sentry.logger.info('User profile updated', {\n * userId: 'user_123',\n * updatedFields: ['email', 'preferences']\n * });\n * ```\n *\n * @example With template strings\n *\n * ```\n * Sentry.logger.info('User %s updated their %s',\n * ['John Doe', 'profile settings'],\n * { userId: 'user_123' }\n * );\n * ```\n */\nexport function info(...args: CaptureLogArgs): void {\n captureLog('info', ...args);\n}\n\n/**\n * @summary Capture a log with the `warn` level. Requires the `enableLogs` option to be enabled.\n *\n * You can either pass a message and attributes or a message template, params and attributes.\n *\n * @example\n *\n * ```\n * Sentry.logger.warn('Rate limit approaching', {\n * endpoint: '/api/users',\n * currentRate: '95/100',\n * resetTime: '2024-03-20T10:00:00Z'\n * });\n * ```\n *\n * @example With template strings\n *\n * ```\n * Sentry.logger.warn('Rate limit %s for %s: %s',\n * ['approaching', '/api/users', '95/100 requests'],\n * { resetTime: '2024-03-20T10:00:00Z' }\n * );\n * ```\n */\nexport function warn(...args: CaptureLogArgs): void {\n captureLog('warn', ...args);\n}\n\n/**\n * @summary Capture a log with the `error` level. Requires the `enableLogs` option to be enabled.\n *\n * You can either pass a message and attributes or a message template, params and attributes.\n *\n * @example\n *\n * ```\n * Sentry.logger.error('Failed to process payment', {\n * orderId: 'order_123',\n * errorCode: 'PAYMENT_FAILED',\n * amount: 99.99\n * });\n * ```\n *\n * @example With template strings\n *\n * ```\n * Sentry.logger.error('Payment processing failed for order %s: %s',\n * ['order_123', 'insufficient funds'],\n * { amount: 99.99 }\n * );\n * ```\n */\nexport function error(...args: CaptureLogArgs): void {\n captureLog('error', ...args);\n}\n\n/**\n * @summary Capture a log with the `fatal` level. Requires the `enableLogs` option to be enabled.\n *\n * You can either pass a message and attributes or a message template, params and attributes.\n *\n * @example\n *\n * ```\n * Sentry.logger.fatal('Database connection pool exhausted', {\n * database: 'users',\n * activeConnections: 100,\n * maxConnections: 100\n * });\n * ```\n *\n * @example With template strings\n *\n * ```\n * Sentry.logger.fatal('Database %s: %s connections active',\n * ['connection pool exhausted', '100/100'],\n * { database: 'users' }\n * );\n * ```\n */\nexport function fatal(...args: CaptureLogArgs): void {\n captureLog('fatal', ...args);\n}\n\nexport { fmt } from '@sentry/core';\n","import { monitorEventLoopDelay, performance } from 'perf_hooks';\nimport { _INTERNAL_safeDateNow, _INTERNAL_safeUnref, defineIntegration, metrics } from '@sentry/core';\n\nconst INTEGRATION_NAME = 'NodeRuntimeMetrics';\nconst DEFAULT_INTERVAL_MS = 30_000;\nconst EVENT_LOOP_DELAY_RESOLUTION_MS = 10;\n\nexport interface NodeRuntimeMetricsOptions {\n /**\n * Which metrics to collect.\n *\n * Default on (8 metrics):\n * - `cpuUtilization` — CPU utilization ratio\n * - `memRss` — Resident Set Size (actual memory footprint)\n * - `memHeapUsed` — V8 heap currently in use\n * - `memHeapTotal` — total V8 heap allocated (headroom paired with `memHeapUsed`)\n * - `eventLoopDelayP50` — median event loop delay (baseline latency)\n * - `eventLoopDelayP99` — 99th percentile event loop delay (tail latency / spikes)\n * - `eventLoopUtilization` — fraction of time the event loop was active\n * - `uptime` — process uptime (detect restarts/crashes)\n *\n * Default off (opt-in):\n * - `cpuTime` — raw user/system CPU time in seconds\n * - `memExternal` — external/ArrayBuffer memory (relevant for native addons)\n * - `eventLoopDelayMin` / `eventLoopDelayMax` / `eventLoopDelayMean` / `eventLoopDelayP90`\n */\n collect?: {\n // Default on\n cpuUtilization?: boolean;\n memHeapUsed?: boolean;\n memRss?: boolean;\n eventLoopDelayP99?: boolean;\n eventLoopUtilization?: boolean;\n uptime?: boolean;\n // Default off\n cpuTime?: boolean;\n memHeapTotal?: boolean;\n memExternal?: boolean;\n eventLoopDelayMin?: boolean;\n eventLoopDelayMax?: boolean;\n eventLoopDelayMean?: boolean;\n eventLoopDelayP50?: boolean;\n eventLoopDelayP90?: boolean;\n };\n /**\n * How often to collect metrics, in milliseconds.\n * @default 30000\n */\n collectionIntervalMs?: number;\n}\n\n/**\n * Automatically collects Node.js runtime metrics and emits them to Sentry.\n *\n * @example\n * ```ts\n * Sentry.init({\n * integrations: [\n * Sentry.nodeRuntimeMetricsIntegration(),\n * ],\n * });\n * ```\n */\nexport const nodeRuntimeMetricsIntegration = defineIntegration((options: NodeRuntimeMetricsOptions = {}) => {\n const collectionIntervalMs = options.collectionIntervalMs ?? DEFAULT_INTERVAL_MS;\n const collect = {\n // Default on\n cpuUtilization: true,\n memHeapUsed: true,\n memHeapTotal: true,\n memRss: true,\n eventLoopDelayP50: true,\n eventLoopDelayP99: true,\n eventLoopUtilization: true,\n uptime: true,\n // Default off\n cpuTime: false,\n memExternal: false,\n eventLoopDelayMin: false,\n eventLoopDelayMax: false,\n eventLoopDelayMean: false,\n eventLoopDelayP90: false,\n ...options.collect,\n };\n\n const needsEventLoopDelay =\n collect.eventLoopDelayP99 ||\n collect.eventLoopDelayMin ||\n collect.eventLoopDelayMax ||\n collect.eventLoopDelayMean ||\n collect.eventLoopDelayP50 ||\n collect.eventLoopDelayP90;\n\n const needsCpu = collect.cpuUtilization || collect.cpuTime;\n\n let intervalId: ReturnType | undefined;\n let prevCpuUsage: NodeJS.CpuUsage | undefined;\n let prevElu: ReturnType | undefined;\n let prevFlushTime: number = 0;\n let eventLoopDelayHistogram: ReturnType | undefined;\n\n const resolutionNs = EVENT_LOOP_DELAY_RESOLUTION_MS * 1e6;\n const nsToS = (ns: number): number => Math.max(0, (ns - resolutionNs) / 1e9);\n\n const METRIC_ATTRIBUTES = { attributes: { 'sentry.origin': 'auto.node.runtime_metrics' } };\n const METRIC_ATTRIBUTES_BYTE = { unit: 'byte', attributes: { 'sentry.origin': 'auto.node.runtime_metrics' } };\n const METRIC_ATTRIBUTES_SECOND = { unit: 'second', attributes: { 'sentry.origin': 'auto.node.runtime_metrics' } };\n\n function collectMetrics(): void {\n const now = _INTERNAL_safeDateNow();\n const elapsed = now - prevFlushTime;\n\n if (needsCpu && prevCpuUsage !== undefined) {\n const delta = process.cpuUsage(prevCpuUsage);\n\n if (collect.cpuTime) {\n metrics.gauge('node.runtime.cpu.user', delta.user / 1e6, METRIC_ATTRIBUTES_SECOND);\n metrics.gauge('node.runtime.cpu.system', delta.system / 1e6, METRIC_ATTRIBUTES_SECOND);\n }\n if (collect.cpuUtilization && elapsed > 0) {\n // Ratio of CPU time to wall-clock time. Can exceed 1.0 on multi-core systems.\n // TODO: In cluster mode, add a runtime_id/process_id attribute to disambiguate per-worker metrics.\n metrics.gauge(\n 'node.runtime.cpu.utilization',\n (delta.user + delta.system) / (elapsed * 1000),\n METRIC_ATTRIBUTES,\n );\n }\n\n prevCpuUsage = process.cpuUsage();\n }\n\n if (collect.memRss || collect.memHeapUsed || collect.memHeapTotal || collect.memExternal) {\n const mem = process.memoryUsage();\n if (collect.memRss) {\n metrics.gauge('node.runtime.mem.rss', mem.rss, METRIC_ATTRIBUTES_BYTE);\n }\n if (collect.memHeapUsed) {\n metrics.gauge('node.runtime.mem.heap_used', mem.heapUsed, METRIC_ATTRIBUTES_BYTE);\n }\n if (collect.memHeapTotal) {\n metrics.gauge('node.runtime.mem.heap_total', mem.heapTotal, METRIC_ATTRIBUTES_BYTE);\n }\n if (collect.memExternal) {\n metrics.gauge('node.runtime.mem.external', mem.external, METRIC_ATTRIBUTES_BYTE);\n metrics.gauge('node.runtime.mem.array_buffers', mem.arrayBuffers, METRIC_ATTRIBUTES_BYTE);\n }\n }\n\n if (needsEventLoopDelay && eventLoopDelayHistogram) {\n if (collect.eventLoopDelayMin) {\n metrics.gauge(\n 'node.runtime.event_loop.delay.min',\n nsToS(eventLoopDelayHistogram.min),\n METRIC_ATTRIBUTES_SECOND,\n );\n }\n if (collect.eventLoopDelayMax) {\n metrics.gauge(\n 'node.runtime.event_loop.delay.max',\n nsToS(eventLoopDelayHistogram.max),\n METRIC_ATTRIBUTES_SECOND,\n );\n }\n if (collect.eventLoopDelayMean) {\n metrics.gauge(\n 'node.runtime.event_loop.delay.mean',\n nsToS(eventLoopDelayHistogram.mean),\n METRIC_ATTRIBUTES_SECOND,\n );\n }\n if (collect.eventLoopDelayP50) {\n metrics.gauge(\n 'node.runtime.event_loop.delay.p50',\n nsToS(eventLoopDelayHistogram.percentile(50)),\n METRIC_ATTRIBUTES_SECOND,\n );\n }\n if (collect.eventLoopDelayP90) {\n metrics.gauge(\n 'node.runtime.event_loop.delay.p90',\n nsToS(eventLoopDelayHistogram.percentile(90)),\n METRIC_ATTRIBUTES_SECOND,\n );\n }\n if (collect.eventLoopDelayP99) {\n metrics.gauge(\n 'node.runtime.event_loop.delay.p99',\n nsToS(eventLoopDelayHistogram.percentile(99)),\n METRIC_ATTRIBUTES_SECOND,\n );\n }\n\n eventLoopDelayHistogram.reset();\n }\n\n if (collect.eventLoopUtilization && prevElu !== undefined) {\n const currentElu = performance.eventLoopUtilization();\n const delta = performance.eventLoopUtilization(currentElu, prevElu);\n metrics.gauge('node.runtime.event_loop.utilization', delta.utilization, METRIC_ATTRIBUTES);\n prevElu = currentElu;\n }\n\n if (collect.uptime && elapsed > 0) {\n metrics.count('node.runtime.process.uptime', elapsed / 1000, METRIC_ATTRIBUTES_SECOND);\n }\n\n prevFlushTime = now;\n }\n\n return {\n name: INTEGRATION_NAME,\n\n setup(): void {\n if (needsEventLoopDelay) {\n // Disable any previous histogram before overwriting (prevents native resource leak on re-init).\n eventLoopDelayHistogram?.disable();\n try {\n eventLoopDelayHistogram = monitorEventLoopDelay({ resolution: EVENT_LOOP_DELAY_RESOLUTION_MS });\n eventLoopDelayHistogram.enable();\n } catch {\n // Not available in all runtimes (e.g. Bun throws NotImplementedError).\n eventLoopDelayHistogram = undefined;\n }\n }\n\n // Prime baselines before the first collection interval.\n if (needsCpu) {\n prevCpuUsage = process.cpuUsage();\n }\n if (collect.eventLoopUtilization) {\n prevElu = performance.eventLoopUtilization();\n }\n prevFlushTime = _INTERNAL_safeDateNow();\n\n // Guard against double setup (e.g. re-init).\n if (intervalId) {\n clearInterval(intervalId);\n }\n intervalId = _INTERNAL_safeUnref(setInterval(collectMetrics, collectionIntervalMs));\n },\n };\n});\n","/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport type { LogSeverityLevel } from '@sentry/core';\nimport { debug } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { captureLog } from '../logs/capture';\n\nconst DEFAULT_CAPTURED_LEVELS: Array = ['trace', 'debug', 'info', 'warn', 'error', 'fatal'];\n\n// See: https://github.com/winstonjs/triple-beam\nconst LEVEL_SYMBOL = Symbol.for('level');\nconst MESSAGE_SYMBOL = Symbol.for('message');\nconst SPLAT_SYMBOL = Symbol.for('splat');\n\n/**\n * Options for the Sentry Winston transport.\n */\ninterface WinstonTransportOptions {\n /**\n * Use this option to filter which levels should be captured. By default, all levels are captured.\n *\n * @example\n * ```ts\n * const SentryWinstonTransport = Sentry.createSentryWinstonTransport(Transport, {\n * // Only capture error and warn logs\n * levels: ['error', 'warn'],\n * });\n * ```\n */\n levels?: Array;\n\n /**\n * Use this option to map custom levels to Sentry log severity levels.\n *\n * @example\n * ```ts\n * const SentryWinstonTransport = Sentry.createSentryWinstonTransport(Transport, {\n * customLevelMap: {\n * myCustomLevel: 'info',\n * customError: 'error',\n * },\n * });\n * ```\n */\n customLevelMap?: Record;\n}\n\n/**\n * Creates a new Sentry Winston transport that fowards logs to Sentry. Requires the `enableLogs` option to be enabled.\n *\n * Supports Winston 3.x.x.\n *\n * @param TransportClass - The Winston transport class to extend.\n * @returns The extended transport class.\n *\n * @example\n * ```ts\n * const winston = require('winston');\n * const Transport = require('winston-transport');\n *\n * const SentryWinstonTransport = Sentry.createSentryWinstonTransport(Transport);\n *\n * const logger = winston.createLogger({\n * transports: [new SentryWinstonTransport()],\n * });\n * ```\n */\nexport function createSentryWinstonTransport(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n TransportClass: new (options?: any) => TransportStreamInstance,\n sentryWinstonOptions?: WinstonTransportOptions,\n): typeof TransportClass {\n // @ts-ignore - We know this is safe because SentryWinstonTransport extends TransportClass\n class SentryWinstonTransport extends TransportClass {\n private _levels: Set;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public constructor(options?: any) {\n super(options);\n this._levels = new Set(sentryWinstonOptions?.levels ?? DEFAULT_CAPTURED_LEVELS);\n }\n\n /**\n * Forwards a winston log to the Sentry SDK.\n */\n public log(info: unknown, callback: () => void): void {\n try {\n setImmediate(() => {\n // @ts-ignore - We know this is safe because SentryWinstonTransport extends TransportClass\n this.emit('logged', info);\n });\n\n if (!isObject(info)) {\n return;\n }\n\n const levelFromSymbol = info[LEVEL_SYMBOL];\n\n // See: https://github.com/winstonjs/winston?tab=readme-ov-file#streams-objectmode-and-info-objects\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { level, message, timestamp, ...attributes } = info;\n // Remove all symbols from the remaining attributes\n attributes[LEVEL_SYMBOL] = undefined;\n attributes[MESSAGE_SYMBOL] = undefined;\n attributes[SPLAT_SYMBOL] = undefined;\n\n const customLevel = sentryWinstonOptions?.customLevelMap?.[levelFromSymbol as string];\n const winstonLogLevel = WINSTON_LEVEL_TO_LOG_SEVERITY_LEVEL_MAP[levelFromSymbol as string];\n const logSeverityLevel = customLevel ?? winstonLogLevel ?? 'info';\n\n if (this._levels.has(logSeverityLevel)) {\n captureLog(logSeverityLevel, message as string, {\n ...attributes,\n 'sentry.origin': 'auto.log.winston',\n });\n } else if (!customLevel && !winstonLogLevel) {\n DEBUG_BUILD &&\n debug.log(\n `Winston log level ${levelFromSymbol} is not captured by Sentry. Please add ${levelFromSymbol} to the \"customLevelMap\" option of the Sentry Winston transport.`,\n );\n }\n } catch {\n // do nothing\n }\n\n if (callback) {\n callback();\n }\n }\n }\n\n return SentryWinstonTransport as typeof TransportClass;\n}\n\nfunction isObject(anything: unknown): anything is Record {\n return typeof anything === 'object' && anything != null;\n}\n\n// npm\n// {\n// error: 0,\n// warn: 1,\n// info: 2,\n// http: 3,\n// verbose: 4,\n// debug: 5,\n// silly: 6\n// }\n//\n// syslog\n// {\n// emerg: 0,\n// alert: 1,\n// crit: 2,\n// error: 3,\n// warning: 4,\n// notice: 5,\n// info: 6,\n// debug: 7,\n// }\nconst WINSTON_LEVEL_TO_LOG_SEVERITY_LEVEL_MAP: Record = {\n // npm\n silly: 'trace',\n // npm and syslog\n debug: 'debug',\n // npm\n verbose: 'debug',\n // npm\n http: 'debug',\n // npm and syslog\n info: 'info',\n // syslog\n notice: 'info',\n // npm\n warn: 'warn',\n // syslog\n warning: 'warn',\n // npm and syslog\n error: 'error',\n // syslog\n emerg: 'fatal',\n // syslog\n alert: 'fatal',\n // syslog\n crit: 'fatal',\n};\n","import * as diagnosticsChannel from 'node:diagnostics_channel';\nimport type { Integration, IntegrationFn, LogSeverityLevel } from '@sentry/core';\nimport {\n _INTERNAL_captureLog,\n addExceptionMechanism,\n captureException,\n captureMessage,\n defineIntegration,\n severityLevelFromString,\n withScope,\n} from '@sentry/core';\n\nconst SENTRY_TRACK_SYMBOL = Symbol('sentry-track-pino-logger');\n\ntype LevelMapping = {\n // Fortunately pino uses the same levels as Sentry\n labels: { [level: number]: LogSeverityLevel };\n};\n\ntype Pino = {\n [key: symbol]: unknown;\n levels: LevelMapping;\n [SENTRY_TRACK_SYMBOL]?: 'track' | 'ignore';\n};\n\n/**\n * Gets a custom Pino key from a logger instance by searching for the symbol.\n * Pino uses non-global symbols like Symbol('pino.messageKey'): https://github.com/pinojs/pino/blob/8a816c0b1f72de5ae9181f3bb402109b66f7d812/lib/symbols.js\n */\nfunction getPinoKey(logger: Pino, symbolName: string, defaultKey: string): string {\n const symbols = Object.getOwnPropertySymbols(logger);\n const symbolString = `Symbol(${symbolName})`;\n for (const sym of symbols) {\n if (sym.toString() === symbolString) {\n const value = logger[sym];\n return typeof value === 'string' ? value : defaultKey;\n }\n }\n return defaultKey;\n}\n\ntype MergeObject = {\n [key: string]: unknown;\n err?: Error;\n};\n\ntype PinoHookArgs = [MergeObject, string, number];\n\ntype PinoOptions = {\n /**\n * Automatically instrument all Pino loggers.\n *\n * When set to `false`, only loggers marked with `pinoIntegration.trackLogger(logger)` will be captured.\n *\n * @default true\n */\n autoInstrument: boolean;\n /**\n * Options to enable capturing of error events.\n */\n error: {\n /**\n * Levels that trigger capturing of events.\n *\n * @default []\n */\n levels: LogSeverityLevel[];\n /**\n * By default, Sentry will mark captured errors as handled.\n * Set this to `false` if you want to mark them as unhandled instead.\n *\n * @default true\n */\n handled: boolean;\n };\n /**\n * Options to enable capturing of logs.\n */\n log: {\n /**\n * Levels that trigger capturing of logs. Logs are only captured if\n * `enableLogs` is enabled.\n *\n * @default [\"trace\", \"debug\", \"info\", \"warn\", \"error\", \"fatal\"]\n */\n levels: LogSeverityLevel[];\n };\n};\n\nconst DEFAULT_OPTIONS: PinoOptions = {\n autoInstrument: true,\n error: { levels: [], handled: true },\n log: { levels: ['trace', 'debug', 'info', 'warn', 'error', 'fatal'] },\n};\n\ntype DeepPartial = {\n [P in keyof T]?: T[P] extends object ? Partial : T[P];\n};\n\ntype PinoResult = {\n level?: string;\n time?: string;\n pid?: number;\n hostname?: string;\n} & Record;\n\nfunction stripIgnoredFields(result: PinoResult): PinoResult {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { level, time, pid, hostname, ...rest } = result;\n return rest;\n}\n\nconst _pinoIntegration = defineIntegration((userOptions: DeepPartial = {}) => {\n const options: PinoOptions = {\n autoInstrument: userOptions.autoInstrument !== false,\n error: { ...DEFAULT_OPTIONS.error, ...userOptions.error },\n log: { ...DEFAULT_OPTIONS.log, ...userOptions.log },\n };\n\n function shouldTrackLogger(logger: Pino): boolean {\n const override = logger[SENTRY_TRACK_SYMBOL];\n return override === 'track' || (override !== 'ignore' && options.autoInstrument);\n }\n\n return {\n name: 'Pino',\n setup: client => {\n const enableLogs = !!client.getOptions().enableLogs;\n\n const integratedChannel = diagnosticsChannel.tracingChannel('pino_asJson');\n\n function onPinoStart(self: Pino, args: PinoHookArgs, result: PinoResult): void {\n if (!shouldTrackLogger(self)) {\n return;\n }\n\n const resultObj = stripIgnoredFields(result);\n\n const [captureObj, message, levelNumber] = args;\n const level = self?.levels?.labels?.[levelNumber] || 'info';\n const messageKey = getPinoKey(self, 'pino.messageKey', 'msg');\n const logMessage = message || (resultObj?.[messageKey] as string | undefined) || '';\n\n if (enableLogs && options.log.levels.includes(level)) {\n const attributes: Record = {\n ...resultObj,\n 'sentry.origin': 'auto.log.pino',\n 'pino.logger.level': levelNumber,\n };\n\n _INTERNAL_captureLog({ level, message: logMessage, attributes });\n }\n\n if (options.error.levels.includes(level)) {\n const captureContext = {\n level: severityLevelFromString(level),\n };\n\n withScope(scope => {\n scope.addEventProcessor(event => {\n event.logger = 'pino';\n\n addExceptionMechanism(event, {\n handled: options.error.handled,\n type: 'auto.log.pino',\n });\n\n return event;\n });\n\n const error = captureObj[getPinoKey(self, 'pino.errorKey', 'err')];\n if (error) {\n captureException(error, captureContext);\n return;\n }\n\n captureMessage(logMessage, captureContext);\n });\n }\n }\n\n integratedChannel.end.subscribe(data => {\n const {\n instance,\n arguments: args,\n result,\n } = data as { instance: Pino; arguments: PinoHookArgs; result: string };\n onPinoStart(instance, args, JSON.parse(result));\n });\n },\n };\n}) satisfies IntegrationFn;\n\ninterface PinoIntegrationFunction {\n (userOptions?: DeepPartial): Integration;\n /**\n * Marks a Pino logger to be tracked by the Pino integration.\n *\n * @param logger A Pino logger instance.\n */\n trackLogger(logger: unknown): void;\n /**\n * Marks a Pino logger to be ignored by the Pino integration.\n *\n * @param logger A Pino logger instance.\n */\n untrackLogger(logger: unknown): void;\n}\n\n/**\n * Integration for Pino logging library.\n * Captures Pino logs as Sentry logs and optionally captures some log levels as events.\n *\n * By default, all Pino loggers will be captured. To ignore a specific logger, use `pinoIntegration.untrackLogger(logger)`.\n *\n * If you disable automatic instrumentation with `autoInstrument: false`, you can mark specific loggers to be tracked with `pinoIntegration.trackLogger(logger)`.\n *\n * Requires Pino >=v8.0.0 and Node >=20.6.0 or >=18.19.0\n */\nexport const pinoIntegration = Object.assign(_pinoIntegration, {\n trackLogger(logger: unknown): void {\n if (logger && typeof logger === 'object' && 'levels' in logger) {\n (logger as Pino)[SENTRY_TRACK_SYMBOL] = 'track';\n }\n },\n untrackLogger(logger: unknown): void {\n if (logger && typeof logger === 'object' && 'levels' in logger) {\n (logger as Pino)[SENTRY_TRACK_SYMBOL] = 'ignore';\n }\n },\n}) as PinoIntegrationFunction;\n","import type { Span } from '@opentelemetry/api';\nimport type { SpanOrigin } from '@sentry/core';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\n\n/** Adds an origin to an OTEL Span. */\nexport function addOriginToSpan(span: Span, origin: SpanOrigin): void {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, origin);\n}\n","/** Build a full URL from request options or a ClientRequest. */\nexport function getRequestUrl(requestOptions: {\n protocol?: string | null;\n hostname?: string | null;\n host?: string | null;\n port?: string | number | null;\n path?: string | null;\n}): string {\n const protocol = requestOptions.protocol || '';\n const hostname = requestOptions.hostname || requestOptions.host || '';\n // Don't log standard :80 (http) and :443 (https) ports to reduce the noise\n // Also don't add port if the hostname already includes a port\n const port =\n !requestOptions.port || requestOptions.port === 80 || requestOptions.port === 443 || /^(.*):(\\d+)$/.test(hostname)\n ? ''\n : `:${requestOptions.port}`;\n const path = requestOptions.path ? requestOptions.path : '/';\n return `${protocol}//${hostname}${port}${path}`;\n}\n","const replacements: [string, string][] = [\n ['january', '1'],\n ['february', '2'],\n ['march', '3'],\n ['april', '4'],\n ['may', '5'],\n ['june', '6'],\n ['july', '7'],\n ['august', '8'],\n ['september', '9'],\n ['october', '10'],\n ['november', '11'],\n ['december', '12'],\n ['jan', '1'],\n ['feb', '2'],\n ['mar', '3'],\n ['apr', '4'],\n ['may', '5'],\n ['jun', '6'],\n ['jul', '7'],\n ['aug', '8'],\n ['sep', '9'],\n ['oct', '10'],\n ['nov', '11'],\n ['dec', '12'],\n ['sunday', '0'],\n ['monday', '1'],\n ['tuesday', '2'],\n ['wednesday', '3'],\n ['thursday', '4'],\n ['friday', '5'],\n ['saturday', '6'],\n ['sun', '0'],\n ['mon', '1'],\n ['tue', '2'],\n ['wed', '3'],\n ['thu', '4'],\n ['fri', '5'],\n ['sat', '6'],\n];\n\n/**\n * Replaces names in cron expressions\n */\nexport function replaceCronNames(cronExpression: string): string {\n return replacements.reduce(\n // oxlint-disable-next-line sdk/no-regexp-constructor\n (acc, [name, replacement]) => acc.replace(new RegExp(name, 'gi'), replacement),\n cronExpression,\n );\n}\n","import { captureException, withMonitor } from '@sentry/core';\nimport { replaceCronNames } from './common';\n\nexport type CronJobParams = {\n cronTime: string | Date;\n onTick: (context: unknown, onComplete?: unknown) => void | Promise;\n onComplete?: () => void | Promise;\n start?: boolean | null;\n context?: unknown;\n runOnInit?: boolean | null;\n unrefTimeout?: boolean | null;\n} & (\n | {\n timeZone?: string | null;\n utcOffset?: never;\n }\n | {\n timeZone?: never;\n utcOffset?: number | null;\n }\n);\n\nexport type CronJob = {\n //\n};\n\nexport type CronJobConstructor = {\n from: (param: CronJobParams) => CronJob;\n\n new (\n cronTime: CronJobParams['cronTime'],\n onTick: CronJobParams['onTick'],\n onComplete?: CronJobParams['onComplete'],\n start?: CronJobParams['start'],\n timeZone?: CronJobParams['timeZone'],\n context?: CronJobParams['context'],\n runOnInit?: CronJobParams['runOnInit'],\n utcOffset?: null,\n unrefTimeout?: CronJobParams['unrefTimeout'],\n ): CronJob;\n new (\n cronTime: CronJobParams['cronTime'],\n onTick: CronJobParams['onTick'],\n onComplete?: CronJobParams['onComplete'],\n start?: CronJobParams['start'],\n timeZone?: null,\n context?: CronJobParams['context'],\n runOnInit?: CronJobParams['runOnInit'],\n utcOffset?: CronJobParams['utcOffset'],\n unrefTimeout?: CronJobParams['unrefTimeout'],\n ): CronJob;\n};\n\nconst ERROR_TEXT = 'Automatic instrumentation of CronJob only supports crontab string';\n\n/**\n * Instruments the `cron` library to send a check-in event to Sentry for each job execution.\n *\n * ```ts\n * import * as Sentry from '@sentry/node';\n * import { CronJob } from 'cron';\n *\n * const CronJobWithCheckIn = Sentry.cron.instrumentCron(CronJob, 'my-cron-job');\n *\n * // use the constructor\n * const job = new CronJobWithCheckIn('* * * * *', () => {\n * console.log('You will see this message every minute');\n * });\n *\n * // or from\n * const job = CronJobWithCheckIn.from({ cronTime: '* * * * *', onTick: () => {\n * console.log('You will see this message every minute');\n * });\n * ```\n */\nexport function instrumentCron(lib: T & CronJobConstructor, monitorSlug: string): T {\n let jobScheduled = false;\n\n return new Proxy(lib, {\n construct(target, args: ConstructorParameters) {\n const [cronTime, onTick, onComplete, start, timeZone, ...rest] = args;\n\n if (typeof cronTime !== 'string') {\n throw new Error(ERROR_TEXT);\n }\n\n if (jobScheduled) {\n throw new Error(`A job named '${monitorSlug}' has already been scheduled`);\n }\n\n jobScheduled = true;\n\n const cronString = replaceCronNames(cronTime);\n\n async function monitoredTick(context: unknown, onComplete?: unknown): Promise {\n return withMonitor(\n monitorSlug,\n async () => {\n try {\n await onTick(context, onComplete);\n } catch (e) {\n captureException(e, {\n mechanism: {\n handled: false,\n type: 'auto.function.cron.instrumentCron',\n },\n });\n throw e;\n }\n },\n {\n schedule: { type: 'crontab', value: cronString },\n timezone: timeZone || undefined,\n },\n );\n }\n\n return new target(cronTime, monitoredTick, onComplete, start, timeZone, ...rest);\n },\n get(target, prop: keyof CronJobConstructor) {\n if (prop === 'from') {\n return (param: CronJobParams) => {\n const { cronTime, onTick, timeZone } = param;\n\n if (typeof cronTime !== 'string') {\n throw new Error(ERROR_TEXT);\n }\n\n if (jobScheduled) {\n throw new Error(`A job named '${monitorSlug}' has already been scheduled`);\n }\n\n jobScheduled = true;\n\n const cronString = replaceCronNames(cronTime);\n\n param.onTick = async (context: unknown, onComplete?: unknown) => {\n return withMonitor(\n monitorSlug,\n async () => {\n try {\n await onTick(context, onComplete);\n } catch (e) {\n captureException(e, {\n mechanism: {\n handled: false,\n type: 'auto.function.cron.instrumentCron',\n },\n });\n throw e;\n }\n },\n {\n schedule: { type: 'crontab', value: cronString },\n timezone: timeZone || undefined,\n },\n );\n };\n\n return target.from(param);\n };\n } else {\n return target[prop];\n }\n },\n });\n}\n","import { captureException, type MonitorConfig, withMonitor } from '@sentry/core';\nimport { replaceCronNames } from './common';\n\nexport interface NodeCronOptions {\n name: string;\n timezone?: string;\n}\n\nexport interface NodeCron {\n schedule: (\n cronExpression: string,\n callback: (context?: unknown) => void,\n options: NodeCronOptions | undefined,\n ) => unknown;\n}\n\n/**\n * Wraps the `node-cron` library with check-in monitoring.\n *\n * ```ts\n * import * as Sentry from \"@sentry/node\";\n * import * as cron from \"node-cron\";\n *\n * const cronWithCheckIn = Sentry.cron.instrumentNodeCron(cron);\n *\n * cronWithCheckIn.schedule(\n * \"* * * * *\",\n * () => {\n * console.log(\"running a task every minute\");\n * },\n * { name: \"my-cron-job\" },\n * );\n * ```\n */\nexport function instrumentNodeCron(\n lib: Partial & T,\n monitorConfig: Pick = {},\n): T {\n return new Proxy(lib, {\n get(target, prop) {\n if (prop === 'schedule' && target.schedule) {\n // When 'get' is called for schedule, return a proxied version of the schedule function\n return new Proxy(target.schedule, {\n apply(target, thisArg, argArray: Parameters) {\n const [expression, callback, options] = argArray;\n\n const name = options?.name;\n const timezone = options?.timezone;\n\n if (!name) {\n throw new Error('Missing \"name\" for scheduled job. A name is required for Sentry check-in monitoring.');\n }\n\n const monitoredCallback = async (...args: Parameters): Promise => {\n return withMonitor(\n name,\n async () => {\n // We have to manually catch here and capture the exception because node-cron swallows errors\n // https://github.com/node-cron/node-cron/issues/399\n try {\n // oxlint-disable-next-line typescript/await-thenable -- callback may be async at runtime\n return await callback(...args);\n } catch (e) {\n captureException(e, {\n mechanism: {\n handled: false,\n type: 'auto.function.node-cron.instrumentNodeCron',\n },\n });\n throw e;\n }\n },\n {\n schedule: { type: 'crontab', value: replaceCronNames(expression) },\n timezone,\n ...monitorConfig,\n },\n );\n };\n\n return target.apply(thisArg, [expression, monitoredCallback, options]);\n },\n });\n } else {\n return target[prop as keyof T];\n }\n },\n });\n}\n","import { withMonitor } from '@sentry/core';\nimport { replaceCronNames } from './common';\n\nexport interface NodeSchedule {\n scheduleJob(\n nameOrExpression: string | Date | object,\n expressionOrCallback: string | Date | object | (() => void),\n callback?: () => void,\n ): unknown;\n}\n\n/**\n * Instruments the `node-schedule` library to send a check-in event to Sentry for each job execution.\n *\n * ```ts\n * import * as Sentry from '@sentry/node';\n * import * as schedule from 'node-schedule';\n *\n * const scheduleWithCheckIn = Sentry.cron.instrumentNodeSchedule(schedule);\n *\n * const job = scheduleWithCheckIn.scheduleJob('my-cron-job', '* * * * *', () => {\n * console.log('You will see this message every minute');\n * });\n * ```\n */\nexport function instrumentNodeSchedule(lib: T & NodeSchedule): T {\n return new Proxy(lib, {\n get(target, prop: keyof NodeSchedule) {\n if (prop === 'scheduleJob') {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n return new Proxy(target.scheduleJob, {\n apply(target, thisArg, argArray: Parameters) {\n const [nameOrExpression, expressionOrCallback, callback] = argArray;\n\n if (\n typeof nameOrExpression !== 'string' ||\n typeof expressionOrCallback !== 'string' ||\n typeof callback !== 'function'\n ) {\n throw new Error(\n \"Automatic instrumentation of 'node-schedule' requires the first parameter of 'scheduleJob' to be a job name string and the second parameter to be a crontab string\",\n );\n }\n\n const monitorSlug = nameOrExpression;\n const expression = expressionOrCallback;\n\n async function monitoredCallback(): Promise {\n return withMonitor(\n monitorSlug,\n async () => {\n // oxlint-disable-next-line typescript/await-thenable -- callback may be async at runtime\n await callback?.();\n },\n {\n schedule: { type: 'crontab', value: replaceCronNames(expression) },\n },\n );\n }\n\n return target.apply(thisArg, [monitorSlug, expression, monitoredCallback]);\n },\n });\n }\n\n return target[prop];\n },\n });\n}\n","import { instrumentCron } from './cron';\nimport { instrumentNodeCron } from './node-cron';\nimport { instrumentNodeSchedule } from './node-schedule';\n\n/** Methods to instrument cron libraries for Sentry check-ins */\nexport const cron = {\n instrumentCron,\n instrumentNodeCron,\n instrumentNodeSchedule,\n};\n","import type { ClientRequest, IncomingMessage, RequestOptions, ServerResponse } from 'node:http';\nimport { diag } from '@opentelemetry/api';\nimport type { HttpInstrumentationConfig } from '@opentelemetry/instrumentation-http';\nimport { HttpInstrumentation } from '@opentelemetry/instrumentation-http';\nimport type { Span } from '@sentry/core';\nimport {\n defineIntegration,\n getClient,\n hasSpansEnabled,\n SEMANTIC_ATTRIBUTE_URL_FULL,\n stripDataUrlContent,\n} from '@sentry/core';\nimport type { HTTPModuleRequestIncomingMessage, NodeClient, SentryHttpInstrumentationOptions } from '@sentry/node-core';\nimport {\n addOriginToSpan,\n generateInstrumentOnce,\n getRequestUrl,\n httpServerIntegration,\n httpServerSpansIntegration,\n NODE_VERSION,\n SentryHttpInstrumentation,\n} from '@sentry/node-core';\nimport type { NodeClientOptions } from '../types';\n\nconst INTEGRATION_NAME = 'Http';\n\nconst INSTRUMENTATION_NAME = '@opentelemetry_sentry-patched/instrumentation-http';\n\n// The `http.client.request.created` diagnostics channel, needed for trace propagation,\n// was added in Node 22.12.0 (backported from 23.2.0). Earlier 22.x versions don't have it.\nconst FULLY_SUPPORTS_HTTP_DIAGNOSTICS_CHANNEL =\n (NODE_VERSION.major === 22 && NODE_VERSION.minor >= 12) ||\n (NODE_VERSION.major === 23 && NODE_VERSION.minor >= 2) ||\n NODE_VERSION.major >= 24;\n\ninterface HttpOptions {\n /**\n * Whether breadcrumbs should be recorded for outgoing requests.\n * Defaults to true\n */\n breadcrumbs?: boolean;\n\n /**\n * If set to false, do not emit any spans.\n * This will ensure that the default HttpInstrumentation from OpenTelemetry is not setup,\n * only the Sentry-specific instrumentation for request isolation is applied.\n *\n * If `skipOpenTelemetrySetup: true` is configured, this defaults to `false`, otherwise it defaults to `true`.\n */\n spans?: boolean;\n\n /**\n * Whether the integration should create [Sessions](https://docs.sentry.io/product/releases/health/#sessions) for incoming requests to track the health and crash-free rate of your releases in Sentry.\n * Read more about Release Health: https://docs.sentry.io/product/releases/health/\n *\n * Defaults to `true`.\n */\n trackIncomingRequestsAsSessions?: boolean;\n\n /**\n * Number of milliseconds until sessions tracked with `trackIncomingRequestsAsSessions` will be flushed as a session aggregate.\n *\n * Defaults to `60000` (60s).\n */\n sessionFlushingDelayMS?: number;\n\n /**\n * Whether to inject trace propagation headers (sentry-trace, baggage, traceparent) into outgoing HTTP requests.\n *\n * When set to `false`, Sentry will not inject any trace propagation headers, but will still create breadcrumbs\n * (if `breadcrumbs` is enabled). This is useful when `skipOpenTelemetrySetup: true` is configured and you want\n * to avoid duplicate trace headers being injected by both Sentry and OpenTelemetry's HttpInstrumentation.\n *\n * @default `true`\n */\n tracePropagation?: boolean;\n\n /**\n * Do not capture spans or breadcrumbs for outgoing HTTP requests to URLs where the given callback returns `true`.\n * This controls both span & breadcrumb creation - spans will be non recording if tracing is disabled.\n *\n * The `url` param contains the entire URL, including query string (if any), protocol, host, etc. of the outgoing request.\n * For example: `'https://someService.com/users/details?id=123'`\n *\n * The `request` param contains the original {@type RequestOptions} object used to make the outgoing request.\n * You can use it to filter on additional properties like method, headers, etc.\n */\n ignoreOutgoingRequests?: (url: string, request: RequestOptions) => boolean;\n\n /**\n * Do not capture spans for incoming HTTP requests to URLs where the given callback returns `true`.\n * Spans will be non recording if tracing is disabled.\n *\n * The `urlPath` param consists of the URL path and query string (if any) of the incoming request.\n * For example: `'/users/details?id=123'`\n *\n * The `request` param contains the original {@type IncomingMessage} object of the incoming request.\n * You can use it to filter on additional properties like method, headers, etc.\n */\n ignoreIncomingRequests?: (urlPath: string, request: IncomingMessage) => boolean;\n\n /**\n * A hook that can be used to mutate the span for incoming requests.\n * This is triggered after the span is created, but before it is recorded.\n */\n incomingRequestSpanHook?: (span: Span, request: IncomingMessage, response: ServerResponse) => void;\n\n /**\n * Whether to automatically ignore common static asset requests like favicon.ico, robots.txt, etc.\n * This helps reduce noise in your transactions.\n *\n * @default `true`\n */\n ignoreStaticAssets?: boolean;\n\n /**\n * Do not capture spans for incoming HTTP requests with the given status codes.\n * By default, spans with some 3xx and 4xx status codes are ignored (see @default).\n * Expects an array of status codes or a range of status codes, e.g. [[300,399], 404] would ignore 3xx and 404 status codes.\n *\n * @default `[[401, 404], [301, 303], [305, 399]]`\n */\n dropSpansForIncomingRequestStatusCodes?: (number | [number, number])[];\n\n /**\n * Do not capture the request body for incoming HTTP requests to URLs where the given callback returns `true`.\n * This can be useful for long running requests where the body is not needed and we want to avoid capturing it.\n *\n * @param url Contains the entire URL, including query string (if any), protocol, host, etc. of the incoming request.\n * @param request Contains the {@type RequestOptions} object used to make the incoming request.\n */\n ignoreIncomingRequestBody?: (url: string, request: RequestOptions) => boolean;\n\n /**\n * Controls the maximum size of incoming HTTP request bodies attached to events.\n *\n * Available options:\n * - 'none': No request bodies will be attached\n * - 'small': Request bodies up to 1,000 bytes will be attached\n * - 'medium': Request bodies up to 10,000 bytes will be attached (default)\n * - 'always': Request bodies will always be attached\n *\n * Note that even with 'always' setting, bodies exceeding 1MB will never be attached\n * for performance and security reasons.\n *\n * @default 'medium'\n */\n maxIncomingRequestBodySize?: 'none' | 'small' | 'medium' | 'always';\n\n /**\n * If true, do not generate spans for incoming requests at all.\n * This is used by Remix to avoid generating spans for incoming requests, as it generates its own spans.\n */\n disableIncomingRequestSpans?: boolean;\n\n /**\n * Additional instrumentation options that are passed to the underlying HttpInstrumentation.\n */\n instrumentation?: {\n requestHook?: (span: Span, req: ClientRequest | HTTPModuleRequestIncomingMessage) => void;\n responseHook?: (span: Span, response: HTTPModuleRequestIncomingMessage | ServerResponse) => void;\n applyCustomAttributesOnSpan?: (\n span: Span,\n request: ClientRequest | HTTPModuleRequestIncomingMessage,\n response: HTTPModuleRequestIncomingMessage | ServerResponse,\n ) => void;\n };\n}\n\nexport const instrumentSentryHttp = generateInstrumentOnce(\n `${INTEGRATION_NAME}.sentry`,\n options => {\n return new SentryHttpInstrumentation(options);\n },\n);\n\nexport const instrumentOtelHttp = generateInstrumentOnce(INTEGRATION_NAME, config => {\n const instrumentation = new HttpInstrumentation({\n ...config,\n // This is hard-coded and can never be overridden by the user\n disableIncomingRequestInstrumentation: true,\n });\n\n // We want to update the logger namespace so we can better identify what is happening here\n try {\n instrumentation['_diag'] = diag.createComponentLogger({\n namespace: INSTRUMENTATION_NAME,\n });\n // @ts-expect-error We are writing a read-only property here...\n instrumentation.instrumentationName = INSTRUMENTATION_NAME;\n } catch {\n // ignore errors here...\n }\n\n // The OTel HttpInstrumentation (>=0.213.0) has a guard (`_httpPatched`/`_httpsPatched`)\n // that prevents patching `http`/`https` when loaded by both CJS `require()` and ESM `import`.\n // In environments like AWS Lambda, the runtime loads `http` via CJS first (for the Runtime API),\n // and then the user's ESM handler imports `node:http`. The guard blocks ESM patching after CJS,\n // which breaks HTTP spans for ESM handlers. We disable this guard to allow both to be patched.\n // TODO(andrei): Remove once https://github.com/open-telemetry/opentelemetry-js/issues/6489 is fixed.\n try {\n const noopDescriptor = { get: () => false, set: () => {} };\n Object.defineProperty(instrumentation, '_httpPatched', noopDescriptor);\n Object.defineProperty(instrumentation, '_httpsPatched', noopDescriptor);\n } catch {\n // ignore errors here...\n }\n\n return instrumentation;\n});\n\n/** Exported only for tests. */\nexport function _shouldUseOtelHttpInstrumentation(\n options: HttpOptions,\n clientOptions: Partial = {},\n): boolean {\n // If `spans` is passed in, it takes precedence\n // Else, we by default emit spans, unless `skipOpenTelemetrySetup` is set to `true` or spans are not enabled\n if (typeof options.spans === 'boolean') {\n return options.spans;\n }\n\n if (clientOptions.skipOpenTelemetrySetup) {\n return false;\n }\n\n // IMPORTANT: We only disable span instrumentation when spans are not enabled _and_ we are on a Node version\n // that fully supports the necessary diagnostics channels for trace propagation\n if (!hasSpansEnabled(clientOptions) && FULLY_SUPPORTS_HTTP_DIAGNOSTICS_CHANNEL) {\n return false;\n }\n\n return true;\n}\n\n/**\n * The http integration instruments Node's internal http and https modules.\n * It creates breadcrumbs and spans for outgoing HTTP requests which will be attached to the currently active span.\n */\nexport const httpIntegration = defineIntegration((options: HttpOptions = {}) => {\n const spans = options.spans ?? true;\n const disableIncomingRequestSpans = options.disableIncomingRequestSpans;\n\n const serverOptions = {\n sessions: options.trackIncomingRequestsAsSessions,\n sessionFlushingDelayMS: options.sessionFlushingDelayMS,\n ignoreRequestBody: options.ignoreIncomingRequestBody,\n maxRequestBodySize: options.maxIncomingRequestBodySize,\n } satisfies Parameters[0];\n\n const serverSpansOptions = {\n ignoreIncomingRequests: options.ignoreIncomingRequests,\n ignoreStaticAssets: options.ignoreStaticAssets,\n ignoreStatusCodes: options.dropSpansForIncomingRequestStatusCodes,\n instrumentation: options.instrumentation,\n onSpanCreated: options.incomingRequestSpanHook,\n } satisfies Parameters[0];\n\n const server = httpServerIntegration(serverOptions);\n const serverSpans = httpServerSpansIntegration(serverSpansOptions);\n\n const enableServerSpans = spans && !disableIncomingRequestSpans;\n\n return {\n name: INTEGRATION_NAME,\n setup(client: NodeClient) {\n const clientOptions = client.getOptions();\n\n if (enableServerSpans && hasSpansEnabled(clientOptions)) {\n serverSpans.setup(client);\n }\n },\n setupOnce() {\n const clientOptions = (getClient()?.getOptions() || {}) satisfies Partial;\n const useOtelHttpInstrumentation = _shouldUseOtelHttpInstrumentation(options, clientOptions);\n\n server.setupOnce();\n\n const sentryHttpInstrumentationOptions = {\n breadcrumbs: options.breadcrumbs,\n propagateTraceInOutgoingRequests:\n typeof options.tracePropagation === 'boolean'\n ? options.tracePropagation\n : FULLY_SUPPORTS_HTTP_DIAGNOSTICS_CHANNEL || !useOtelHttpInstrumentation,\n createSpansForOutgoingRequests: FULLY_SUPPORTS_HTTP_DIAGNOSTICS_CHANNEL,\n spans: options.spans,\n ignoreOutgoingRequests: options.ignoreOutgoingRequests,\n outgoingRequestHook: (span: Span, request: ClientRequest) => {\n // Sanitize data URLs to prevent long base64 strings in span attributes\n const url = getRequestUrl(request);\n if (url.startsWith('data:')) {\n const sanitizedUrl = stripDataUrlContent(url);\n span.setAttribute('http.url', sanitizedUrl);\n span.setAttribute(SEMANTIC_ATTRIBUTE_URL_FULL, sanitizedUrl);\n span.updateName(`${request.method || 'GET'} ${sanitizedUrl}`);\n }\n\n options.instrumentation?.requestHook?.(span, request);\n },\n outgoingResponseHook: options.instrumentation?.responseHook,\n outgoingRequestApplyCustomAttributes: options.instrumentation?.applyCustomAttributesOnSpan,\n } satisfies SentryHttpInstrumentationOptions;\n\n // This is Sentry-specific instrumentation for outgoing request breadcrumbs & trace propagation\n instrumentSentryHttp(sentryHttpInstrumentationOptions);\n\n // This is the \"regular\" OTEL instrumentation that emits outgoing request spans\n if (useOtelHttpInstrumentation) {\n const instrumentationConfig = getConfigWithDefaults(options);\n instrumentOtelHttp(instrumentationConfig);\n }\n },\n processEvent(event) {\n // Note: We always run this, even if spans are disabled\n // The reason being that e.g. the remix integration disables span creation here but still wants to use the ignore status codes option\n return serverSpans.processEvent(event);\n },\n };\n});\n\nfunction getConfigWithDefaults(options: Partial = {}): HttpInstrumentationConfig {\n const instrumentationConfig = {\n // This is handled by the SentryHttpInstrumentation on Node 22+\n disableOutgoingRequestInstrumentation: FULLY_SUPPORTS_HTTP_DIAGNOSTICS_CHANNEL,\n\n ignoreOutgoingRequestHook: request => {\n const url = getRequestUrl(request);\n\n if (!url) {\n return false;\n }\n\n const _ignoreOutgoingRequests = options.ignoreOutgoingRequests;\n if (_ignoreOutgoingRequests?.(url, request)) {\n return true;\n }\n\n return false;\n },\n\n requireParentforOutgoingSpans: false,\n requestHook: (span, req) => {\n addOriginToSpan(span, 'auto.http.otel.http');\n\n // Sanitize data URLs to prevent long base64 strings in span attributes\n const url = getRequestUrl(req as ClientRequest);\n if (url.startsWith('data:')) {\n const sanitizedUrl = stripDataUrlContent(url);\n span.setAttribute('http.url', sanitizedUrl);\n span.setAttribute(SEMANTIC_ATTRIBUTE_URL_FULL, sanitizedUrl);\n span.updateName(`${(req as ClientRequest).method || 'GET'} ${sanitizedUrl}`);\n }\n\n options.instrumentation?.requestHook?.(span, req);\n },\n responseHook: (span, res) => {\n options.instrumentation?.responseHook?.(span, res);\n },\n applyCustomAttributesOnSpan: (\n span: Span,\n request: ClientRequest | HTTPModuleRequestIncomingMessage,\n response: HTTPModuleRequestIncomingMessage | ServerResponse,\n ) => {\n options.instrumentation?.applyCustomAttributesOnSpan?.(span, request, response);\n },\n } satisfies HttpInstrumentationConfig;\n\n return instrumentationConfig;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const PACKAGE_VERSION = '0.24.0';\nexport const PACKAGE_NAME = '@opentelemetry/instrumentation-undici';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport * as diagch from 'diagnostics_channel';\nimport { URL } from 'url';\n\nimport {\n InstrumentationBase,\n safeExecuteInTheMiddle,\n} from '@opentelemetry/instrumentation';\nimport {\n Attributes,\n context,\n Histogram,\n HrTime,\n INVALID_SPAN_CONTEXT,\n propagation,\n Span,\n SpanKind,\n SpanStatusCode,\n trace,\n ValueType,\n} from '@opentelemetry/api';\nimport {\n hrTime,\n hrTimeDuration,\n hrTimeToMilliseconds,\n} from '@opentelemetry/core';\nimport {\n ATTR_ERROR_TYPE,\n ATTR_HTTP_REQUEST_METHOD,\n ATTR_HTTP_REQUEST_METHOD_ORIGINAL,\n ATTR_HTTP_RESPONSE_STATUS_CODE,\n ATTR_NETWORK_PEER_ADDRESS,\n ATTR_NETWORK_PEER_PORT,\n ATTR_SERVER_ADDRESS,\n ATTR_SERVER_PORT,\n ATTR_URL_FULL,\n ATTR_URL_PATH,\n ATTR_URL_QUERY,\n ATTR_URL_SCHEME,\n ATTR_USER_AGENT_ORIGINAL,\n METRIC_HTTP_CLIENT_REQUEST_DURATION,\n} from '@opentelemetry/semantic-conventions';\n\n/** @knipignore */\nimport { PACKAGE_NAME, PACKAGE_VERSION } from './version';\n\nimport {\n ListenerRecord,\n RequestHeadersMessage,\n RequestMessage,\n RequestTrailersMessage,\n ResponseHeadersMessage,\n} from './internal-types';\nimport { UndiciInstrumentationConfig, UndiciRequest } from './types';\n\ninterface InstrumentationRecord {\n span: Span;\n attributes: Attributes;\n startTime: HrTime;\n}\n\n// A combination of https://github.com/elastic/apm-agent-nodejs and\n// https://github.com/gadget-inc/opentelemetry-instrumentations/blob/main/packages/opentelemetry-instrumentation-undici/src/index.ts\nexport class UndiciInstrumentation extends InstrumentationBase {\n // Keep ref to avoid https://github.com/nodejs/node/issues/42170 bug and for\n // unsubscribing.\n declare private _channelSubs: Array;\n private _recordFromReq = new WeakMap();\n\n declare private _httpClientDurationHistogram: Histogram;\n\n constructor(config: UndiciInstrumentationConfig = {}) {\n super(PACKAGE_NAME, PACKAGE_VERSION, config);\n }\n\n // No need to instrument files/modules\n protected override init() {\n return undefined;\n }\n\n override disable(): void {\n super.disable();\n this._channelSubs.forEach(sub => sub.unsubscribe());\n this._channelSubs.length = 0;\n }\n\n override enable(): void {\n // \"enabled\" handling is currently a bit messy with InstrumentationBase.\n // If constructed with `{enabled: false}`, this `.enable()` is still called,\n // and `this.getConfig().enabled !== this.isEnabled()`, creating confusion.\n //\n // For now, this class will setup for instrumenting if `.enable()` is\n // called, but use `this.getConfig().enabled` to determine if\n // instrumentation should be generated. This covers the more likely common\n // case of config being given a construction time, rather than later via\n // `instance.enable()`, `.disable()`, or `.setConfig()` calls.\n super.enable();\n\n // This method is called by the super-class constructor before ours is\n // called. So we need to ensure the property is initalized.\n this._channelSubs = this._channelSubs || [];\n\n // Avoid to duplicate subscriptions\n if (this._channelSubs.length > 0) {\n return;\n }\n\n this.subscribeToChannel(\n 'undici:request:create',\n this.onRequestCreated.bind(this)\n );\n this.subscribeToChannel(\n 'undici:client:sendHeaders',\n this.onRequestHeaders.bind(this)\n );\n this.subscribeToChannel(\n 'undici:request:headers',\n this.onResponseHeaders.bind(this)\n );\n this.subscribeToChannel('undici:request:trailers', this.onDone.bind(this));\n this.subscribeToChannel('undici:request:error', this.onError.bind(this));\n }\n\n protected override _updateMetricInstruments() {\n this._httpClientDurationHistogram = this.meter.createHistogram(\n METRIC_HTTP_CLIENT_REQUEST_DURATION,\n {\n description: 'Measures the duration of outbound HTTP requests.',\n unit: 's',\n valueType: ValueType.DOUBLE,\n advice: {\n explicitBucketBoundaries: [\n 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5,\n 7.5, 10,\n ],\n },\n }\n );\n }\n\n private subscribeToChannel(\n diagnosticChannel: string,\n onMessage: (message: any, name: string | symbol) => void\n ) {\n // `diagnostics_channel` had a ref counting bug until v18.19.0.\n // https://github.com/nodejs/node/pull/47520\n const [major, minor] = process.version\n .replace('v', '')\n .split('.')\n .map(n => Number(n));\n const useNewSubscribe = major > 18 || (major === 18 && minor >= 19);\n\n let unsubscribe: () => void;\n if (useNewSubscribe) {\n diagch.subscribe?.(diagnosticChannel, onMessage);\n unsubscribe = () => diagch.unsubscribe?.(diagnosticChannel, onMessage);\n } else {\n const channel = diagch.channel(diagnosticChannel);\n channel.subscribe(onMessage);\n unsubscribe = () => channel.unsubscribe(onMessage);\n }\n\n this._channelSubs.push({\n name: diagnosticChannel,\n unsubscribe,\n });\n }\n\n private parseRequestHeaders(request: UndiciRequest) {\n const result = new Map();\n\n if (Array.isArray(request.headers)) {\n // headers are an array [k1, v2, k2, v2] (undici v6+)\n // values could be string or a string[] for multiple values\n for (let i = 0; i < request.headers.length; i += 2) {\n const key = request.headers[i];\n const value = request.headers[i + 1];\n\n // Key should always be a string, but the types don't know that, and let's be safe\n if (typeof key === 'string') {\n result.set(key.toLowerCase(), value);\n }\n }\n } else if (typeof request.headers === 'string') {\n // headers are a raw string (undici v5)\n // headers could be repeated in several lines for multiple values\n const headers = request.headers.split('\\r\\n');\n for (const line of headers) {\n if (!line) {\n continue;\n }\n const colonIndex = line.indexOf(':');\n if (colonIndex === -1) {\n // Invalid header? Probably this can't happen, but again let's be safe.\n continue;\n }\n const key = line.substring(0, colonIndex).toLowerCase();\n const value = line.substring(colonIndex + 1).trim();\n const allValues = result.get(key);\n\n if (allValues && Array.isArray(allValues)) {\n allValues.push(value);\n } else if (allValues) {\n result.set(key, [allValues, value]);\n } else {\n result.set(key, value);\n }\n }\n }\n return result;\n }\n\n // This is the 1st message we receive for each request (fired after request creation). Here we will\n // create the span and populate some atttributes, then link the span to the request for further\n // span processing\n private onRequestCreated({ request }: RequestMessage): void {\n // Ignore if:\n // - instrumentation is disabled\n // - ignored by config\n // - method is 'CONNECT'\n const config = this.getConfig();\n const enabled = config.enabled !== false;\n const shouldIgnoreReq = safeExecuteInTheMiddle(\n () =>\n !enabled ||\n request.method === 'CONNECT' ||\n config.ignoreRequestHook?.(request),\n e => e && this._diag.error('caught ignoreRequestHook error: ', e),\n true\n );\n\n if (shouldIgnoreReq) {\n return;\n }\n\n const startTime = hrTime();\n let requestUrl;\n try {\n requestUrl = new URL(request.path, request.origin);\n } catch (err) {\n this._diag.warn('could not determine url.full:', err);\n // Skip instrumenting this request.\n return;\n }\n const urlScheme = requestUrl.protocol.replace(':', '');\n const requestMethod = this.getRequestMethod(request.method);\n const attributes: Attributes = {\n [ATTR_HTTP_REQUEST_METHOD]: requestMethod,\n [ATTR_HTTP_REQUEST_METHOD_ORIGINAL]: request.method,\n [ATTR_URL_FULL]: requestUrl.toString(),\n [ATTR_URL_PATH]: requestUrl.pathname,\n [ATTR_URL_QUERY]: requestUrl.search,\n [ATTR_URL_SCHEME]: urlScheme,\n };\n\n const schemePorts: Record = { https: '443', http: '80' };\n const serverAddress = requestUrl.hostname;\n const serverPort = requestUrl.port || schemePorts[urlScheme];\n\n attributes[ATTR_SERVER_ADDRESS] = serverAddress;\n if (serverPort && !isNaN(Number(serverPort))) {\n attributes[ATTR_SERVER_PORT] = Number(serverPort);\n }\n\n // Get user agent from headers\n const headersMap = this.parseRequestHeaders(request);\n const userAgentValues = headersMap.get('user-agent');\n\n if (userAgentValues) {\n // NOTE: having multiple user agents is not expected so\n // we're going to take last one like `curl` does\n // ref: https://curl.se/docs/manpage.html#-A\n const userAgent = Array.isArray(userAgentValues)\n ? userAgentValues[userAgentValues.length - 1]\n : userAgentValues;\n attributes[ATTR_USER_AGENT_ORIGINAL] = userAgent;\n }\n\n // Get attributes from the hook if present\n const hookAttributes = safeExecuteInTheMiddle(\n () => config.startSpanHook?.(request),\n e => e && this._diag.error('caught startSpanHook error: ', e),\n true\n );\n if (hookAttributes) {\n Object.entries(hookAttributes).forEach(([key, val]) => {\n attributes[key] = val;\n });\n }\n\n // Check if parent span is required via config and:\n // - if a parent is required but not present, we use a `NoopSpan` to still\n // propagate context without recording it.\n // - create a span otherwise\n const activeCtx = context.active();\n const currentSpan = trace.getSpan(activeCtx);\n let span: Span;\n\n if (\n config.requireParentforSpans &&\n (!currentSpan || !trace.isSpanContextValid(currentSpan.spanContext()))\n ) {\n span = trace.wrapSpanContext(INVALID_SPAN_CONTEXT);\n } else {\n span = this.tracer.startSpan(\n requestMethod === '_OTHER' ? 'HTTP' : requestMethod,\n {\n kind: SpanKind.CLIENT,\n attributes: attributes,\n },\n activeCtx\n );\n }\n\n // Execute the request hook if defined\n safeExecuteInTheMiddle(\n () => config.requestHook?.(span, request),\n e => e && this._diag.error('caught requestHook error: ', e),\n true\n );\n\n // Context propagation goes last so no hook can tamper\n // the propagation headers\n const requestContext = trace.setSpan(context.active(), span);\n const addedHeaders: Record = {};\n propagation.inject(requestContext, addedHeaders);\n\n const headerEntries = Object.entries(addedHeaders);\n\n for (let i = 0; i < headerEntries.length; i++) {\n const [k, v] = headerEntries[i];\n\n if (typeof request.addHeader === 'function') {\n request.addHeader(k, v);\n } else if (typeof request.headers === 'string') {\n request.headers += `${k}: ${v}\\r\\n`;\n } else if (Array.isArray(request.headers)) {\n // undici@6.11.0 accidentally, briefly removed `request.addHeader()`.\n request.headers.push(k, v);\n }\n }\n this._recordFromReq.set(request, { span, attributes, startTime });\n }\n\n // This is the 2nd message we receive for each request. It is fired when connection with\n // the remote is established and about to send the first byte. Here we do have info about the\n // remote address and port so we can populate some `network.*` attributes into the span\n private onRequestHeaders({ request, socket }: RequestHeadersMessage): void {\n const record = this._recordFromReq.get(request as UndiciRequest);\n\n if (!record) {\n return;\n }\n\n const config = this.getConfig();\n const { span } = record;\n const { remoteAddress, remotePort } = socket;\n const spanAttributes: Attributes = {\n [ATTR_NETWORK_PEER_ADDRESS]: remoteAddress,\n [ATTR_NETWORK_PEER_PORT]: remotePort,\n };\n\n // After hooks have been processed (which may modify request headers)\n // we can collect the headers based on the configuration\n if (config.headersToSpanAttributes?.requestHeaders) {\n const headersToAttribs = new Set(\n config.headersToSpanAttributes.requestHeaders.map(n => n.toLowerCase())\n );\n const headersMap = this.parseRequestHeaders(request);\n\n for (const [name, value] of headersMap.entries()) {\n if (headersToAttribs.has(name)) {\n const attrValue = Array.isArray(value) ? value : [value];\n spanAttributes[`http.request.header.${name}`] = attrValue;\n }\n }\n }\n\n span.setAttributes(spanAttributes);\n }\n\n // This is the 3rd message we get for each request and it's fired when the server\n // headers are received, body may not be accessible yet.\n // From the response headers we can set the status and content length\n private onResponseHeaders({\n request,\n response,\n }: ResponseHeadersMessage): void {\n const record = this._recordFromReq.get(request);\n\n if (!record) {\n return;\n }\n\n const { span, attributes } = record;\n const spanAttributes: Attributes = {\n [ATTR_HTTP_RESPONSE_STATUS_CODE]: response.statusCode,\n };\n\n const config = this.getConfig();\n\n // Execute the response hook if defined\n safeExecuteInTheMiddle(\n () => config.responseHook?.(span, { request, response }),\n e => e && this._diag.error('caught responseHook error: ', e),\n true\n );\n\n if (config.headersToSpanAttributes?.responseHeaders) {\n const headersToAttribs = new Set();\n config.headersToSpanAttributes?.responseHeaders.forEach(name =>\n headersToAttribs.add(name.toLowerCase())\n );\n\n for (let idx = 0; idx < response.headers.length; idx = idx + 2) {\n const name = response.headers[idx].toString().toLowerCase();\n const value = response.headers[idx + 1];\n\n if (headersToAttribs.has(name)) {\n const attrName = `http.response.header.${name}`;\n if (!Object.hasOwn(spanAttributes, attrName)) {\n spanAttributes[attrName] = [value.toString()];\n } else {\n (spanAttributes[attrName] as string[]).push(value.toString());\n }\n }\n }\n }\n\n span.setAttributes(spanAttributes);\n span.setStatus({\n code:\n response.statusCode >= 400\n ? SpanStatusCode.ERROR\n : SpanStatusCode.UNSET,\n });\n record.attributes = Object.assign(attributes, spanAttributes);\n }\n\n // This is the last event we receive if the request went without any errors\n private onDone({ request }: RequestTrailersMessage): void {\n const record = this._recordFromReq.get(request);\n\n if (!record) {\n return;\n }\n\n const { span, attributes, startTime } = record;\n\n // End the span\n span.end();\n this._recordFromReq.delete(request);\n\n // Record metrics\n this.recordRequestDuration(attributes, startTime);\n }\n\n // This is the event we get when something is wrong in the request like\n // - invalid options when calling `fetch` global API or any undici method for request\n // - connectivity errors such as unreachable host\n // - requests aborted through an `AbortController.signal`\n // NOTE: server errors are considered valid responses and it's the lib consumer\n // who should deal with that.\n private onError({ request, error }: any): void {\n const record = this._recordFromReq.get(request);\n\n if (!record) {\n return;\n }\n\n const { span, attributes, startTime } = record;\n\n // NOTE: in `undici@6.3.0` when request aborted the error type changes from\n // a custom error (`RequestAbortedError`) to a built-in `DOMException` carrying\n // some differences:\n // - `code` is from DOMEXception (ABORT_ERR: 20)\n // - `message` changes\n // - stacktrace is smaller and contains node internal frames\n span.recordException(error);\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: error.message,\n });\n span.end();\n this._recordFromReq.delete(request);\n\n // Record metrics (with the error)\n attributes[ATTR_ERROR_TYPE] = error.message;\n this.recordRequestDuration(attributes, startTime);\n }\n\n private recordRequestDuration(attributes: Attributes, startTime: HrTime) {\n // Time to record metrics\n const metricsAttributes: Attributes = {};\n // Get the attribs already in span attributes\n const keysToCopy = [\n ATTR_HTTP_RESPONSE_STATUS_CODE,\n ATTR_HTTP_REQUEST_METHOD,\n ATTR_SERVER_ADDRESS,\n ATTR_SERVER_PORT,\n ATTR_URL_SCHEME,\n ATTR_ERROR_TYPE,\n ];\n keysToCopy.forEach(key => {\n if (key in attributes) {\n metricsAttributes[key] = attributes[key];\n }\n });\n\n // Take the duration and record it\n const durationSeconds =\n hrTimeToMilliseconds(hrTimeDuration(startTime, hrTime())) / 1000;\n this._httpClientDurationHistogram.record(\n durationSeconds,\n metricsAttributes\n );\n }\n\n private getRequestMethod(original: string): string {\n const knownMethods = {\n CONNECT: true,\n OPTIONS: true,\n HEAD: true,\n GET: true,\n POST: true,\n PUT: true,\n PATCH: true,\n DELETE: true,\n TRACE: true,\n // QUERY from https://datatracker.ietf.org/doc/draft-ietf-httpbis-safe-method-w-body/\n QUERY: true,\n };\n\n if (original.toUpperCase() in knownMethods) {\n return original.toUpperCase();\n }\n\n return '_OTHER';\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { UndiciInstrumentation } from './undici';\nexport type {\n IgnoreRequestFunction,\n RequestHookFunction,\n ResponseHookFunction,\n StartSpanHookFunction,\n UndiciInstrumentationConfig,\n UndiciRequest,\n UndiciResponse,\n} from './types';\n","import type { UndiciInstrumentationConfig } from '@opentelemetry/instrumentation-undici';\nimport { UndiciInstrumentation } from '@opentelemetry/instrumentation-undici';\nimport type { IntegrationFn } from '@sentry/core';\nimport {\n defineIntegration,\n getClient,\n hasSpansEnabled,\n SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SEMANTIC_ATTRIBUTE_URL_FULL,\n stripDataUrlContent,\n} from '@sentry/core';\nimport type { NodeClient } from '@sentry/node-core';\nimport { generateInstrumentOnce, SentryNodeFetchInstrumentation } from '@sentry/node-core';\nimport type { NodeClientOptions } from '../types';\n\nconst INTEGRATION_NAME = 'NodeFetch';\n\ninterface NodeFetchOptions extends Pick<\n UndiciInstrumentationConfig,\n 'requestHook' | 'responseHook' | 'headersToSpanAttributes'\n> {\n /**\n * Whether breadcrumbs should be recorded for requests.\n * Defaults to true\n */\n breadcrumbs?: boolean;\n\n /**\n * If set to false, do not emit any spans.\n * This will ensure that the default UndiciInstrumentation from OpenTelemetry is not setup,\n * only the Sentry-specific instrumentation for breadcrumbs & trace propagation is applied.\n *\n * If `skipOpenTelemetrySetup: true` is configured, this defaults to `false`, otherwise it defaults to `true`.\n */\n spans?: boolean;\n\n /**\n * Whether to inject trace propagation headers (sentry-trace, baggage, traceparent) into outgoing fetch requests.\n *\n * When set to `false`, Sentry will not inject any trace propagation headers, but will still create breadcrumbs\n * (if `breadcrumbs` is enabled). This is useful when `skipOpenTelemetrySetup: true` is configured and you want\n * to avoid duplicate trace headers being injected by both Sentry and OpenTelemetry's UndiciInstrumentation.\n *\n * @default `true`\n */\n tracePropagation?: boolean;\n\n /**\n * Do not capture spans or breadcrumbs for outgoing fetch requests to URLs where the given callback returns `true`.\n * This controls both span & breadcrumb creation - spans will be non recording if tracing is disabled.\n */\n ignoreOutgoingRequests?: (url: string) => boolean;\n}\n\nconst instrumentOtelNodeFetch = generateInstrumentOnce(\n INTEGRATION_NAME,\n UndiciInstrumentation,\n (options: NodeFetchOptions) => {\n return _getConfigWithDefaults(options);\n },\n);\n\nconst instrumentSentryNodeFetch = generateInstrumentOnce(\n `${INTEGRATION_NAME}.sentry`,\n SentryNodeFetchInstrumentation,\n (options: NodeFetchOptions) => {\n return options;\n },\n);\n\nconst _nativeNodeFetchIntegration = ((options: NodeFetchOptions = {}) => {\n return {\n name: 'NodeFetch',\n setupOnce() {\n const instrumentSpans = _shouldInstrumentSpans(options, getClient()?.getOptions());\n\n // This is the \"regular\" OTEL instrumentation that emits spans\n if (instrumentSpans) {\n instrumentOtelNodeFetch(options);\n }\n\n // This is the Sentry-specific instrumentation that creates breadcrumbs & propagates traces\n // This must be registered after the OTEL one, to ensure that the core trace propagation logic takes presedence\n // Otherwise, the sentry-trace header may be set multiple times\n instrumentSentryNodeFetch(options);\n },\n };\n}) satisfies IntegrationFn;\n\nexport const nativeNodeFetchIntegration = defineIntegration(_nativeNodeFetchIntegration);\n\n// Matching the behavior of the base instrumentation\nfunction getAbsoluteUrl(origin: string, path: string = '/'): string {\n const url = `${origin}`;\n\n if (url.endsWith('/') && path.startsWith('/')) {\n return `${url}${path.slice(1)}`;\n }\n\n if (!url.endsWith('/') && !path.startsWith('/')) {\n return `${url}/${path}`;\n }\n\n return `${url}${path}`;\n}\n\nfunction _shouldInstrumentSpans(options: NodeFetchOptions, clientOptions: Partial = {}): boolean {\n // If `spans` is passed in, it takes precedence\n // Else, we by default emit spans, unless `skipOpenTelemetrySetup` is set to `true` or spans are not enabled\n return typeof options.spans === 'boolean'\n ? options.spans\n : !clientOptions.skipOpenTelemetrySetup && hasSpansEnabled(clientOptions);\n}\n\n/** Exported only for tests. */\nexport function _getConfigWithDefaults(options: Partial = {}): UndiciInstrumentationConfig {\n const instrumentationConfig = {\n requireParentforSpans: false,\n ignoreRequestHook: request => {\n const url = getAbsoluteUrl(request.origin, request.path);\n const _ignoreOutgoingRequests = options.ignoreOutgoingRequests;\n const shouldIgnore = _ignoreOutgoingRequests && url && _ignoreOutgoingRequests(url);\n\n return !!shouldIgnore;\n },\n startSpanHook: request => {\n const url = getAbsoluteUrl(request.origin, request.path);\n\n // Sanitize data URLs to prevent long base64 strings in span attributes\n if (url.startsWith('data:')) {\n const sanitizedUrl = stripDataUrlContent(url);\n return {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.node_fetch',\n 'http.url': sanitizedUrl,\n [SEMANTIC_ATTRIBUTE_URL_FULL]: sanitizedUrl,\n [SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME]: `${request.method || 'GET'} ${sanitizedUrl}`,\n };\n }\n\n return {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.node_fetch',\n };\n },\n requestHook: options.requestHook,\n responseHook: options.responseHook,\n headersToSpanAttributes: options.headersToSpanAttributes,\n } satisfies UndiciInstrumentationConfig;\n\n return instrumentationConfig;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const PACKAGE_VERSION = '0.33.0';\nexport const PACKAGE_NAME = '@opentelemetry/instrumentation-fs';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { FMember, FPMember } from './types';\n\nexport const PROMISE_FUNCTIONS: FPMember[] = [\n 'access',\n 'appendFile',\n 'chmod',\n 'chown',\n 'copyFile',\n 'cp' as FPMember, // added in v16\n 'lchown',\n 'link',\n 'lstat',\n 'lutimes', // added in v12\n 'mkdir',\n 'mkdtemp',\n 'open',\n 'opendir', // added in v12\n 'readdir',\n 'readFile',\n 'readlink',\n 'realpath',\n 'rename',\n 'rm', // added in v14\n 'rmdir',\n 'stat',\n 'symlink',\n 'truncate',\n 'unlink',\n 'utimes',\n 'writeFile',\n // 'lchmod', // only implemented on macOS\n];\n\nexport const CALLBACK_FUNCTIONS: FMember[] = [\n 'access',\n 'appendFile',\n 'chmod',\n 'chown',\n 'copyFile',\n 'cp' as FMember, // added in v16\n 'exists', // deprecated, inconsistent cb signature, handling separately when patching\n 'lchown',\n 'link',\n 'lstat',\n 'lutimes', // added in v12\n 'mkdir',\n 'mkdtemp',\n 'open',\n 'opendir', // added in v12\n 'readdir',\n 'readFile',\n 'readlink',\n 'realpath',\n 'realpath.native',\n 'rename',\n 'rm', // added in v14\n 'rmdir',\n 'stat',\n 'symlink',\n 'truncate',\n 'unlink',\n 'utimes',\n 'writeFile',\n // 'close', // functions on file descriptor\n // 'fchmod', // functions on file descriptor\n // 'fchown', // functions on file descriptor\n // 'fdatasync', // functions on file descriptor\n // 'fstat', // functions on file descriptor\n // 'fsync', // functions on file descriptor\n // 'ftruncate', // functions on file descriptor\n // 'futimes', // functions on file descriptor\n // 'lchmod', // only implemented on macOS\n // 'read', // functions on file descriptor\n // 'readv', // functions on file descriptor\n // 'write', // functions on file descriptor\n // 'writev', // functions on file descriptor\n];\n\nexport const SYNC_FUNCTIONS: FMember[] = [\n 'accessSync',\n 'appendFileSync',\n 'chmodSync',\n 'chownSync',\n 'copyFileSync',\n 'cpSync' as FMember, // added in v16\n 'existsSync',\n 'lchownSync',\n 'linkSync',\n 'lstatSync',\n 'lutimesSync', // added in v12\n 'mkdirSync',\n 'mkdtempSync',\n 'opendirSync', // added in v12\n 'openSync',\n 'readdirSync',\n 'readFileSync',\n 'readlinkSync',\n 'realpathSync',\n 'realpathSync.native',\n 'renameSync',\n 'rmdirSync',\n 'rmSync', // added in v14\n 'statSync',\n 'symlinkSync',\n 'truncateSync',\n 'unlinkSync',\n 'utimesSync',\n 'writeFileSync',\n // 'closeSync', // functions on file descriptor\n // 'fchmodSync', // functions on file descriptor\n // 'fchownSync', // functions on file descriptor\n // 'fdatasyncSync', // functions on file descriptor\n // 'fstatSync', // functions on file descriptor\n // 'fsyncSync', // functions on file descriptor\n // 'ftruncateSync', // functions on file descriptor\n // 'futimesSync', // functions on file descriptor\n // 'lchmodSync', // only implemented on macOS\n // 'readSync', // functions on file descriptor\n // 'readvSync', // functions on file descriptor\n // 'writeSync', // functions on file descriptor\n // 'writevSync', // functions on file descriptor\n];\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport type { FunctionPropertyNames, FMember } from './types';\nimport type * as fs from 'fs';\ntype FS = typeof fs;\n\nexport function splitTwoLevels(\n functionName: FMember\n):\n | [FunctionPropertyNames & string]\n | [FunctionPropertyNames & string, string] {\n const memberParts = functionName.split('.');\n if (memberParts.length > 1) {\n if (memberParts.length !== 2)\n throw Error(`Invalid member function name ${functionName}`);\n return memberParts as [FunctionPropertyNames & string, string];\n } else {\n return [functionName as FunctionPropertyNames & string];\n }\n}\n\nexport function indexFs(\n fs: FSObject,\n member: FMember\n): { objectToPatch: any; functionNameToPatch: string } {\n if (!member) throw new Error(JSON.stringify({ member }));\n const splitResult = splitTwoLevels(member);\n const [functionName1, functionName2] = splitResult;\n if (functionName2) {\n return {\n objectToPatch: fs[functionName1],\n functionNameToPatch: functionName2,\n };\n } else {\n return {\n objectToPatch: fs,\n functionNameToPatch: functionName1,\n };\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as api from '@opentelemetry/api';\nimport { isTracingSuppressed, suppressTracing } from '@opentelemetry/core';\nimport {\n InstrumentationBase,\n InstrumentationNodeModuleDefinition,\n isWrapped,\n} from '@opentelemetry/instrumentation';\n/** @knipignore */\nimport { PACKAGE_NAME, PACKAGE_VERSION } from './version';\nimport {\n CALLBACK_FUNCTIONS,\n PROMISE_FUNCTIONS,\n SYNC_FUNCTIONS,\n} from './constants';\nimport type * as fs from 'fs';\nimport type {\n FMember,\n FPMember,\n CreateHook,\n EndHook,\n FsInstrumentationConfig,\n} from './types';\nimport { promisify } from 'util';\nimport { indexFs } from './utils';\n\ntype FS = typeof fs;\ntype FSPromises = (typeof fs)['promises'];\n\n/**\n * This is important for 2-level functions like `realpath.native` to retain the 2nd-level\n * when patching the 1st-level.\n */\nfunction patchedFunctionWithOriginalProperties<\n T extends (...args: any[]) => ReturnType,\n>(patchedFunction: T, original: T): T {\n return Object.assign(patchedFunction, original);\n}\n\nexport class FsInstrumentation extends InstrumentationBase {\n constructor(config: FsInstrumentationConfig = {}) {\n super(PACKAGE_NAME, PACKAGE_VERSION, config);\n }\n\n init(): (\n | InstrumentationNodeModuleDefinition\n | InstrumentationNodeModuleDefinition\n )[] {\n return [\n new InstrumentationNodeModuleDefinition(\n 'fs',\n ['*'],\n (fs: FS) => {\n for (const fName of SYNC_FUNCTIONS) {\n const { objectToPatch, functionNameToPatch } = indexFs(fs, fName);\n\n if (isWrapped(objectToPatch[functionNameToPatch])) {\n this._unwrap(objectToPatch, functionNameToPatch);\n }\n this._wrap(\n objectToPatch,\n functionNameToPatch,\n this._patchSyncFunction.bind(this, fName)\n );\n }\n for (const fName of CALLBACK_FUNCTIONS) {\n const { objectToPatch, functionNameToPatch } = indexFs(fs, fName);\n if (isWrapped(objectToPatch[functionNameToPatch])) {\n this._unwrap(objectToPatch, functionNameToPatch);\n }\n if (fName === 'exists') {\n // handling separately because of the inconsistent cb style:\n // `exists` doesn't have error as the first argument, but the result\n this._wrap(\n objectToPatch,\n functionNameToPatch,\n this._patchExistsCallbackFunction.bind(this, fName)\n );\n continue;\n }\n this._wrap(\n objectToPatch,\n functionNameToPatch,\n this._patchCallbackFunction.bind(this, fName)\n );\n }\n for (const fName of PROMISE_FUNCTIONS) {\n if (isWrapped(fs.promises[fName])) {\n this._unwrap(fs.promises, fName);\n }\n this._wrap(\n fs.promises,\n fName,\n this._patchPromiseFunction.bind(this, fName)\n );\n }\n return fs;\n },\n (fs: FS) => {\n if (fs === undefined) return;\n for (const fName of SYNC_FUNCTIONS) {\n const { objectToPatch, functionNameToPatch } = indexFs(fs, fName);\n if (isWrapped(objectToPatch[functionNameToPatch])) {\n this._unwrap(objectToPatch, functionNameToPatch);\n }\n }\n for (const fName of CALLBACK_FUNCTIONS) {\n const { objectToPatch, functionNameToPatch } = indexFs(fs, fName);\n if (isWrapped(objectToPatch[functionNameToPatch])) {\n this._unwrap(objectToPatch, functionNameToPatch);\n }\n }\n for (const fName of PROMISE_FUNCTIONS) {\n if (isWrapped(fs.promises[fName])) {\n this._unwrap(fs.promises, fName);\n }\n }\n }\n ),\n new InstrumentationNodeModuleDefinition(\n 'fs/promises',\n ['*'],\n (fsPromises: FSPromises) => {\n for (const fName of PROMISE_FUNCTIONS) {\n if (isWrapped(fsPromises[fName])) {\n this._unwrap(fsPromises, fName);\n }\n this._wrap(\n fsPromises,\n fName,\n this._patchPromiseFunction.bind(this, fName)\n );\n }\n return fsPromises;\n },\n (fsPromises: FSPromises) => {\n if (fsPromises === undefined) return;\n for (const fName of PROMISE_FUNCTIONS) {\n if (isWrapped(fsPromises[fName])) {\n this._unwrap(fsPromises, fName);\n }\n }\n }\n ),\n ];\n }\n\n protected _patchSyncFunction ReturnType>(\n functionName: FMember,\n original: T\n ): T {\n const instrumentation = this;\n const patchedFunction = function (this: any, ...args: any[]) {\n const activeContext = api.context.active();\n\n if (!instrumentation._shouldTrace(activeContext)) {\n return original.apply(this, args);\n }\n if (\n instrumentation._runCreateHook(functionName, {\n args: args,\n }) === false\n ) {\n return api.context.with(\n suppressTracing(activeContext),\n original,\n this,\n ...args\n );\n }\n\n const span = instrumentation.tracer.startSpan(\n `fs ${functionName}`\n ) as api.Span;\n\n try {\n // Suppress tracing for internal fs calls\n const res = api.context.with(\n suppressTracing(api.trace.setSpan(activeContext, span)),\n original,\n this,\n ...args\n );\n instrumentation._runEndHook(functionName, { args: args, span });\n return res;\n } catch (error: any) {\n span.recordException(error);\n span.setStatus({\n message: error.message,\n code: api.SpanStatusCode.ERROR,\n });\n instrumentation._runEndHook(functionName, { args: args, span, error });\n throw error;\n } finally {\n span.end();\n }\n };\n return patchedFunctionWithOriginalProperties(patchedFunction, original);\n }\n\n protected _patchCallbackFunction ReturnType>(\n functionName: FMember,\n original: T\n ): T {\n const instrumentation = this;\n const patchedFunction = function (this: any, ...args: any[]) {\n const activeContext = api.context.active();\n\n if (!instrumentation._shouldTrace(activeContext)) {\n return original.apply(this, args);\n }\n if (\n instrumentation._runCreateHook(functionName, {\n args: args,\n }) === false\n ) {\n return api.context.with(\n suppressTracing(activeContext),\n original,\n this,\n ...args\n );\n }\n\n const lastIdx = args.length - 1;\n const cb = args[lastIdx];\n if (typeof cb === 'function') {\n const span = instrumentation.tracer.startSpan(\n `fs ${functionName}`\n ) as api.Span;\n\n // Return to the context active during the call in the callback\n args[lastIdx] = api.context.bind(\n activeContext,\n function (this: unknown, error?: Error) {\n if (error) {\n span.recordException(error);\n span.setStatus({\n message: error.message,\n code: api.SpanStatusCode.ERROR,\n });\n }\n instrumentation._runEndHook(functionName, {\n args: args,\n span,\n error,\n });\n span.end();\n return cb.apply(this, arguments);\n }\n );\n\n try {\n // Suppress tracing for internal fs calls\n return api.context.with(\n suppressTracing(api.trace.setSpan(activeContext, span)),\n original,\n this,\n ...args\n );\n } catch (error: any) {\n span.recordException(error);\n span.setStatus({\n message: error.message,\n code: api.SpanStatusCode.ERROR,\n });\n instrumentation._runEndHook(functionName, {\n args: args,\n span,\n error,\n });\n span.end();\n throw error;\n }\n } else {\n // TODO: what to do if we are pretty sure it's going to throw\n return original.apply(this, args);\n }\n };\n return patchedFunctionWithOriginalProperties(patchedFunction, original);\n }\n\n protected _patchExistsCallbackFunction<\n T extends (...args: any[]) => ReturnType,\n >(functionName: 'exists', original: T): T {\n const instrumentation = this;\n const patchedFunction = function (this: any, ...args: any[]) {\n const activeContext = api.context.active();\n\n if (!instrumentation._shouldTrace(activeContext)) {\n return original.apply(this, args);\n }\n if (\n instrumentation._runCreateHook(functionName, {\n args: args,\n }) === false\n ) {\n return api.context.with(\n suppressTracing(activeContext),\n original,\n this,\n ...args\n );\n }\n\n const lastIdx = args.length - 1;\n const cb = args[lastIdx];\n if (typeof cb === 'function') {\n const span = instrumentation.tracer.startSpan(\n `fs ${functionName}`\n ) as api.Span;\n\n // Return to the context active during the call in the callback\n args[lastIdx] = api.context.bind(\n activeContext,\n function (this: unknown) {\n // `exists` never calls the callback with an error\n instrumentation._runEndHook(functionName, {\n args: args,\n span,\n });\n span.end();\n return cb.apply(this, arguments);\n }\n );\n\n try {\n // Suppress tracing for internal fs calls\n return api.context.with(\n suppressTracing(api.trace.setSpan(activeContext, span)),\n original,\n this,\n ...args\n );\n } catch (error: any) {\n span.recordException(error);\n span.setStatus({\n message: error.message,\n code: api.SpanStatusCode.ERROR,\n });\n instrumentation._runEndHook(functionName, {\n args: args,\n span,\n error,\n });\n span.end();\n throw error;\n }\n } else {\n return original.apply(this, args);\n }\n };\n const functionWithOriginalProperties =\n patchedFunctionWithOriginalProperties(patchedFunction, original);\n\n // `exists` has a custom promisify function because of the inconsistent signature\n // replicating that on the patched function\n const promisified = function (path: unknown) {\n return new Promise(resolve =>\n functionWithOriginalProperties(path, resolve)\n );\n };\n Object.defineProperty(promisified, 'name', { value: functionName });\n Object.defineProperty(functionWithOriginalProperties, promisify.custom, {\n value: promisified,\n });\n\n return functionWithOriginalProperties;\n }\n\n protected _patchPromiseFunction ReturnType>(\n functionName: FPMember,\n original: T\n ): T {\n const instrumentation = this;\n const patchedFunction = async function (this: any, ...args: any[]) {\n const activeContext = api.context.active();\n\n if (!instrumentation._shouldTrace(activeContext)) {\n return original.apply(this, args);\n }\n if (\n instrumentation._runCreateHook(functionName, {\n args: args,\n }) === false\n ) {\n return api.context.with(\n suppressTracing(activeContext),\n original,\n this,\n ...args\n );\n }\n\n const span = instrumentation.tracer.startSpan(\n `fs ${functionName}`\n ) as api.Span;\n\n try {\n // Suppress tracing for internal fs calls\n const res = await api.context.with(\n suppressTracing(api.trace.setSpan(activeContext, span)),\n original,\n this,\n ...args\n );\n instrumentation._runEndHook(functionName, { args: args, span });\n return res;\n } catch (error: any) {\n span.recordException(error);\n span.setStatus({\n message: error.message,\n code: api.SpanStatusCode.ERROR,\n });\n instrumentation._runEndHook(functionName, { args: args, span, error });\n throw error;\n } finally {\n span.end();\n }\n };\n return patchedFunctionWithOriginalProperties(patchedFunction, original);\n }\n\n protected _runCreateHook(\n ...args: Parameters\n ): ReturnType {\n const { createHook } = this.getConfig();\n if (typeof createHook === 'function') {\n try {\n return createHook(...args);\n } catch (e) {\n this._diag.error('caught createHook error', e);\n }\n }\n return true;\n }\n\n protected _runEndHook(...args: Parameters): ReturnType {\n const { endHook } = this.getConfig();\n if (typeof endHook === 'function') {\n try {\n endHook(...args);\n } catch (e) {\n this._diag.error('caught endHook error', e);\n }\n }\n }\n\n protected _shouldTrace(context: api.Context): boolean {\n if (isTracingSuppressed(context)) {\n // Performance optimization. Avoid creating additional contexts and spans\n // if we already know that the tracing is being suppressed.\n return false;\n }\n\n const { requireParentSpan } = this.getConfig();\n if (requireParentSpan) {\n const parentSpan = api.trace.getSpan(context);\n if (parentSpan == null) {\n return false;\n }\n }\n\n return true;\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { FsInstrumentation } from './instrumentation';\nexport type {\n CreateHook,\n EndHook,\n FMember,\n FPMember,\n FsInstrumentationConfig,\n FunctionProperties,\n FunctionPropertyNames,\n FunctionPropertyNamesTwoLevels,\n Member,\n} from './types';\n","import { FsInstrumentation } from '@opentelemetry/instrumentation-fs';\nimport { defineIntegration, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'FileSystem';\n\n/**\n * This integration will create spans for `fs` API operations, like reading and writing files.\n *\n * **WARNING:** This integration may add significant overhead to your application. Especially in scenarios with a lot of\n * file I/O, like for example when running a framework dev server, including this integration can massively slow down\n * your application.\n *\n * @param options Configuration for this integration.\n */\nexport const fsIntegration = defineIntegration(\n (\n options: {\n /**\n * Setting this option to `true` will include any filepath arguments from your `fs` API calls as span attributes.\n *\n * Defaults to `false`.\n */\n recordFilePaths?: boolean;\n\n /**\n * Setting this option to `true` will include the error messages of failed `fs` API calls as a span attribute.\n *\n * Defaults to `false`.\n */\n recordErrorMessagesAsSpanAttributes?: boolean;\n } = {},\n ) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n generateInstrumentOnce(\n INTEGRATION_NAME,\n () =>\n new FsInstrumentation({\n requireParentSpan: true,\n endHook(functionName, { args, span, error }) {\n span.updateName(`fs.${functionName}`);\n\n span.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'file',\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.file.fs',\n });\n\n if (options.recordErrorMessagesAsSpanAttributes) {\n if (typeof args[0] === 'string' && FS_OPERATIONS_WITH_PATH_ARG.includes(functionName)) {\n span.setAttribute('path_argument', args[0]);\n } else if (\n typeof args[0] === 'string' &&\n typeof args[1] === 'string' &&\n FS_OPERATIONS_WITH_TARGET_PATH.includes(functionName)\n ) {\n span.setAttribute('target_argument', args[0]);\n span.setAttribute('path_argument', args[1]);\n } else if (typeof args[0] === 'string' && FS_OPERATIONS_WITH_PREFIX.includes(functionName)) {\n span.setAttribute('prefix_argument', args[0]);\n } else if (\n typeof args[0] === 'string' &&\n typeof args[1] === 'string' &&\n FS_OPERATIONS_WITH_EXISTING_PATH_NEW_PATH.includes(functionName)\n ) {\n span.setAttribute('existing_path_argument', args[0]);\n span.setAttribute('new_path_argument', args[1]);\n } else if (\n typeof args[0] === 'string' &&\n typeof args[1] === 'string' &&\n FS_OPERATIONS_WITH_SRC_DEST.includes(functionName)\n ) {\n span.setAttribute('src_argument', args[0]);\n span.setAttribute('dest_argument', args[1]);\n } else if (\n typeof args[0] === 'string' &&\n typeof args[1] === 'string' &&\n FS_OPERATIONS_WITH_OLD_PATH_NEW_PATH.includes(functionName)\n ) {\n span.setAttribute('old_path_argument', args[0]);\n span.setAttribute('new_path_argument', args[1]);\n }\n }\n\n if (error && options.recordErrorMessagesAsSpanAttributes) {\n span.setAttribute('fs_error', error.message);\n }\n },\n }),\n )();\n },\n };\n },\n);\n\nconst FS_OPERATIONS_WITH_OLD_PATH_NEW_PATH = ['rename', 'renameSync'];\nconst FS_OPERATIONS_WITH_SRC_DEST = ['copyFile', 'cp', 'copyFileSync', 'cpSync'];\nconst FS_OPERATIONS_WITH_EXISTING_PATH_NEW_PATH = ['link', 'linkSync'];\nconst FS_OPERATIONS_WITH_PREFIX = ['mkdtemp', 'mkdtempSync'];\nconst FS_OPERATIONS_WITH_TARGET_PATH = ['symlink', 'symlinkSync'];\nconst FS_OPERATIONS_WITH_PATH_ARG = [\n 'access',\n 'appendFile',\n 'chmod',\n 'chown',\n 'exists',\n 'mkdir',\n 'lchown',\n 'lstat',\n 'lutimes',\n 'open',\n 'opendir',\n 'readdir',\n 'readFile',\n 'readlink',\n 'realpath',\n 'realpath.native',\n 'rm',\n 'rmdir',\n 'stat',\n 'truncate',\n 'unlink',\n 'utimes',\n 'writeFile',\n 'accessSync',\n 'appendFileSync',\n 'chmodSync',\n 'chownSync',\n 'existsSync',\n 'lchownSync',\n 'lstatSync',\n 'lutimesSync',\n 'opendirSync',\n 'mkdirSync',\n 'openSync',\n 'readdirSync',\n 'readFileSync',\n 'readlinkSync',\n 'realpathSync',\n 'realpathSync.native',\n 'rmdirSync',\n 'rmSync',\n 'statSync',\n 'truncateSync',\n 'unlinkSync',\n 'utimesSync',\n 'writeFileSync',\n];\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport enum ExpressLayerType {\n ROUTER = 'router',\n MIDDLEWARE = 'middleware',\n REQUEST_HANDLER = 'request_handler',\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport enum AttributeNames {\n EXPRESS_TYPE = 'express.type',\n EXPRESS_NAME = 'express.name',\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Request } from 'express';\nimport { Attributes } from '@opentelemetry/api';\n\n/**\n * This symbol is used to mark express layer as being already instrumented\n * since its possible to use a given layer multiple times (ex: middlewares)\n */\nexport const kLayerPatched: unique symbol = Symbol('express-layer-patched');\n\n/**\n * This const define where on the `request` object the Instrumentation will mount the\n * current stack of express layer.\n *\n * It is necessary because express doesn't store the different layers\n * (ie: middleware, router etc) that it called to get to the current layer.\n * Given that, the only way to know the route of a given layer is to\n * store the path of where each previous layer has been mounted.\n *\n * ex: bodyParser > auth middleware > /users router > get /:id\n * in this case the stack would be: [\"/users\", \"/:id\"]\n *\n * ex2: bodyParser > /api router > /v1 router > /users router > get /:id\n * stack: [\"/api\", \"/v1\", \"/users\", \":id\"]\n *\n */\nexport const _LAYERS_STORE_PROPERTY = '__ot_middlewares';\n\nexport type PatchedRequest = {\n [_LAYERS_STORE_PROPERTY]?: string[];\n} & Request;\nexport type PathParams = string | RegExp | Array;\n\n// https://github.com/expressjs/express/blob/main/lib/router/index.js#L53\nexport type ExpressRouter = {\n params: { [key: string]: string };\n _params: string[];\n caseSensitive: boolean;\n mergeParams: boolean;\n strict: boolean;\n stack: ExpressLayer[];\n};\n\n// https://github.com/expressjs/express/blob/main/lib/router/layer.js#L33\nexport type ExpressLayer = {\n handle: Function & Record;\n [kLayerPatched]?: boolean;\n name: string;\n params: { [key: string]: string };\n path: string;\n regexp: RegExp;\n route?: ExpressLayer;\n};\n\nexport type LayerMetadata = {\n attributes: Attributes;\n name: string;\n};\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Attributes } from '@opentelemetry/api';\nimport {\n IgnoreMatcher,\n ExpressInstrumentationConfig,\n LayerPathSegment,\n} from './types';\nimport { ExpressLayerType } from './enums/ExpressLayerType';\nimport { AttributeNames } from './enums/AttributeNames';\nimport {\n ExpressLayer,\n PatchedRequest,\n _LAYERS_STORE_PROPERTY,\n} from './internal-types';\n\n/**\n * Store layers path in the request to be able to construct route later\n * @param request The request where\n * @param [value] the value to push into the array\n */\nexport const storeLayerPath = (\n request: PatchedRequest,\n value?: string\n): { isLayerPathStored: boolean } => {\n if (Array.isArray(request[_LAYERS_STORE_PROPERTY]) === false) {\n Object.defineProperty(request, _LAYERS_STORE_PROPERTY, {\n enumerable: false,\n value: [],\n });\n }\n if (value === undefined) return { isLayerPathStored: false };\n\n (request[_LAYERS_STORE_PROPERTY] as string[]).push(value);\n\n return { isLayerPathStored: true };\n};\n\n/**\n * Recursively search the router path from layer stack\n * @param path The path to reconstruct\n * @param layer The layer to reconstruct from\n * @returns The reconstructed path\n */\nexport const getRouterPath = (path: string, layer: ExpressLayer): string => {\n const stackLayer = layer.handle?.stack?.[0];\n\n if (stackLayer?.route?.path) {\n return `${path}${stackLayer.route.path}`;\n }\n\n if (stackLayer?.handle?.stack) {\n return getRouterPath(path, stackLayer);\n }\n\n return path;\n};\n\n/**\n * Parse express layer context to retrieve a name and attributes.\n * @param route The route of the layer\n * @param layer Express layer\n * @param [layerPath] if present, the path on which the layer has been mounted\n */\nexport const getLayerMetadata = (\n route: string,\n layer: ExpressLayer,\n layerPath?: string\n): {\n attributes: Attributes;\n name: string;\n} => {\n if (layer.name === 'router') {\n const maybeRouterPath = getRouterPath('', layer);\n const extractedRouterPath = maybeRouterPath\n ? maybeRouterPath\n : layerPath || route || '/';\n\n return {\n attributes: {\n [AttributeNames.EXPRESS_NAME]: extractedRouterPath,\n [AttributeNames.EXPRESS_TYPE]: ExpressLayerType.ROUTER,\n },\n name: `router - ${extractedRouterPath}`,\n };\n } else if (layer.name === 'bound dispatch' || layer.name === 'handle') {\n return {\n attributes: {\n [AttributeNames.EXPRESS_NAME]:\n (route || layerPath) ?? 'request handler',\n [AttributeNames.EXPRESS_TYPE]: ExpressLayerType.REQUEST_HANDLER,\n },\n name: `request handler${layer.path ? ` - ${route || layerPath}` : ''}`,\n };\n } else {\n return {\n attributes: {\n [AttributeNames.EXPRESS_NAME]: layer.name,\n [AttributeNames.EXPRESS_TYPE]: ExpressLayerType.MIDDLEWARE,\n },\n name: `middleware - ${layer.name}`,\n };\n }\n};\n\n/**\n * Check whether the given obj match pattern\n * @param constant e.g URL of request\n * @param obj obj to inspect\n * @param pattern Match pattern\n */\nconst satisfiesPattern = (\n constant: string,\n pattern: IgnoreMatcher\n): boolean => {\n if (typeof pattern === 'string') {\n return pattern === constant;\n } else if (pattern instanceof RegExp) {\n return pattern.test(constant);\n } else if (typeof pattern === 'function') {\n return pattern(constant);\n } else {\n throw new TypeError('Pattern is in unsupported datatype');\n }\n};\n\n/**\n * Check whether the given request is ignored by configuration\n * It will not re-throw exceptions from `list` provided by the client\n * @param constant e.g URL of request\n * @param [list] List of ignore patterns\n * @param [onException] callback for doing something when an exception has\n * occurred\n */\nexport const isLayerIgnored = (\n name: string,\n type: ExpressLayerType,\n config?: ExpressInstrumentationConfig\n): boolean => {\n if (\n Array.isArray(config?.ignoreLayersType) &&\n config?.ignoreLayersType?.includes(type)\n ) {\n return true;\n }\n if (Array.isArray(config?.ignoreLayers) === false) return false;\n try {\n for (const pattern of config!.ignoreLayers!) {\n if (satisfiesPattern(name, pattern)) {\n return true;\n }\n }\n } catch (e) {\n /* catch block*/\n }\n\n return false;\n};\n\n/**\n * Converts a user-provided error value into an error and error message pair\n *\n * @param error - User-provided error value\n * @returns Both an Error or string representation of the value and an error message\n */\nexport const asErrorAndMessage = (\n error: unknown\n): [error: string | Error, message: string] =>\n error instanceof Error\n ? [error, error.message]\n : [String(error), String(error)];\n\n/**\n * Extracts the layer path from the route arguments\n *\n * @param args - Arguments of the route\n * @returns The layer path\n */\nexport const getLayerPath = (\n args: [LayerPathSegment | LayerPathSegment[], ...unknown[]]\n): string | undefined => {\n const firstArg = args[0];\n\n if (Array.isArray(firstArg)) {\n return firstArg.map(arg => extractLayerPathSegment(arg) || '').join(',');\n }\n\n return extractLayerPathSegment(firstArg);\n};\n\nconst extractLayerPathSegment = (arg: LayerPathSegment) => {\n if (typeof arg === 'string') {\n return arg;\n }\n\n if (arg instanceof RegExp || typeof arg === 'number') {\n return arg.toString();\n }\n\n return;\n};\n\nexport function getConstructedRoute(req: {\n originalUrl: PatchedRequest['originalUrl'];\n [_LAYERS_STORE_PROPERTY]?: string[];\n}) {\n const layersStore: string[] = Array.isArray(req[_LAYERS_STORE_PROPERTY])\n ? (req[_LAYERS_STORE_PROPERTY] as string[])\n : [];\n\n const meaningfulPaths = layersStore.filter(\n path => path !== '/' && path !== '/*'\n );\n\n if (meaningfulPaths.length === 1 && meaningfulPaths[0] === '*') {\n return '*';\n }\n\n // Join parts and remove duplicate slashes\n return meaningfulPaths.join('').replace(/\\/{2,}/g, '/');\n}\n\n/**\n * Extracts the actual matched route from Express request for OpenTelemetry instrumentation.\n * Returns the route that should be used as the http.route attribute.\n *\n * @param req - The Express request object with layers store\n * @param layersStoreProperty - The property name where layer paths are stored\n * @returns The matched route string or undefined if no valid route is found\n */\nexport function getActualMatchedRoute(req: {\n originalUrl: PatchedRequest['originalUrl'];\n [_LAYERS_STORE_PROPERTY]?: string[];\n}): string | undefined {\n const layersStore: string[] = Array.isArray(req[_LAYERS_STORE_PROPERTY])\n ? (req[_LAYERS_STORE_PROPERTY] as string[])\n : [];\n\n // If no layers are stored, no route can be determined\n if (layersStore.length === 0) {\n return undefined;\n }\n\n // Handle root path case - if all paths are root, only return root if originalUrl is also root\n // The layer store also includes root paths in case a non-existing url was requested\n if (layersStore.every(path => path === '/')) {\n return req.originalUrl === '/' ? '/' : undefined;\n }\n\n const constructedRoute = getConstructedRoute(req);\n if (constructedRoute === '*') {\n return constructedRoute;\n }\n\n // For RegExp routes or route arrays, return the constructed route\n // This handles the case where the route is defined using RegExp or an array\n if (\n constructedRoute.includes('/') &&\n (constructedRoute.includes(',') ||\n constructedRoute.includes('\\\\') ||\n constructedRoute.includes('*') ||\n constructedRoute.includes('['))\n ) {\n return constructedRoute;\n }\n\n // Ensure route starts with '/' if it doesn't already\n const normalizedRoute = constructedRoute.startsWith('/')\n ? constructedRoute\n : `/${constructedRoute}`;\n\n // Validate that this appears to be a matched route\n // A route is considered matched if:\n // 1. We have a constructed route\n // 2. The original URL matches or starts with our route pattern\n const isValidRoute =\n normalizedRoute.length > 0 &&\n (req.originalUrl === normalizedRoute ||\n req.originalUrl.startsWith(normalizedRoute) ||\n isRoutePattern(normalizedRoute));\n\n return isValidRoute ? normalizedRoute : undefined;\n}\n\n/**\n * Checks if a route contains parameter patterns (e.g., :id, :userId)\n * which are valid even if they don't exactly match the original URL\n */\nfunction isRoutePattern(route: string): boolean {\n return route.includes(':') || route.includes('*');\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// this is autogenerated file, see scripts/version-update.js\nexport const PACKAGE_VERSION = '0.62.0';\nexport const PACKAGE_NAME = '@opentelemetry/instrumentation-express';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getRPCMetadata, RPCType } from '@opentelemetry/core';\nimport {\n trace,\n context,\n diag,\n Attributes,\n SpanStatusCode,\n} from '@opentelemetry/api';\nimport type * as express from 'express';\nimport { ExpressInstrumentationConfig, ExpressRequestInfo } from './types';\nimport { ExpressLayerType } from './enums/ExpressLayerType';\nimport { AttributeNames } from './enums/AttributeNames';\nimport {\n asErrorAndMessage,\n getLayerMetadata,\n getLayerPath,\n isLayerIgnored,\n storeLayerPath,\n getActualMatchedRoute,\n getConstructedRoute,\n} from './utils';\n/** @knipignore */\nimport { PACKAGE_NAME, PACKAGE_VERSION } from './version';\nimport {\n InstrumentationBase,\n InstrumentationNodeModuleDefinition,\n isWrapped,\n safeExecuteInTheMiddle,\n} from '@opentelemetry/instrumentation';\nimport { ATTR_HTTP_ROUTE } from '@opentelemetry/semantic-conventions';\nimport {\n ExpressLayer,\n ExpressRouter,\n kLayerPatched,\n PatchedRequest,\n _LAYERS_STORE_PROPERTY,\n} from './internal-types';\n\n/** Express instrumentation for OpenTelemetry */\nexport class ExpressInstrumentation extends InstrumentationBase {\n constructor(config: ExpressInstrumentationConfig = {}) {\n super(PACKAGE_NAME, PACKAGE_VERSION, config);\n }\n\n init() {\n return [\n new InstrumentationNodeModuleDefinition(\n 'express',\n ['>=4.0.0 <6'],\n moduleExports => {\n const isExpressWithRouterPrototype =\n typeof moduleExports?.Router?.prototype?.route === 'function';\n const routerProto = isExpressWithRouterPrototype\n ? moduleExports.Router.prototype // Express v5\n : moduleExports.Router; // Express v4\n // patch express.Router.route\n if (isWrapped(routerProto.route)) {\n this._unwrap(routerProto, 'route');\n }\n this._wrap(routerProto, 'route', this._getRoutePatch());\n // patch express.Router.use\n if (isWrapped(routerProto.use)) {\n this._unwrap(routerProto, 'use');\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this._wrap(routerProto, 'use', this._getRouterUsePatch() as any);\n // patch express.Application.use\n if (isWrapped(moduleExports.application.use)) {\n this._unwrap(moduleExports.application, 'use');\n }\n this._wrap(\n moduleExports.application,\n 'use',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this._getAppUsePatch(isExpressWithRouterPrototype) as any\n );\n return moduleExports;\n },\n moduleExports => {\n if (moduleExports === undefined) return;\n const isExpressWithRouterPrototype =\n typeof moduleExports?.Router?.prototype?.route === 'function';\n const routerProto = isExpressWithRouterPrototype\n ? moduleExports.Router.prototype\n : moduleExports.Router;\n this._unwrap(routerProto, 'route');\n this._unwrap(routerProto, 'use');\n this._unwrap(moduleExports.application, 'use');\n }\n ),\n ];\n }\n\n /**\n * Get the patch for Router.route function\n */\n private _getRoutePatch() {\n const instrumentation = this;\n return function (original: express.Router['route']) {\n return function route_trace(\n this: ExpressRouter,\n ...args: Parameters\n ) {\n const route = original.apply(this, args);\n const layer = this.stack[this.stack.length - 1] as ExpressLayer;\n instrumentation._applyPatch(layer, getLayerPath(args));\n return route;\n };\n };\n }\n\n /**\n * Get the patch for Router.use function\n */\n private _getRouterUsePatch() {\n const instrumentation = this;\n return function (original: express.Router['use']) {\n return function use(\n this: express.Application,\n ...args: Parameters\n ) {\n const route = original.apply(this, args);\n const layer = this.stack[this.stack.length - 1] as ExpressLayer;\n instrumentation._applyPatch(layer, getLayerPath(args));\n return route;\n };\n };\n }\n\n /**\n * Get the patch for Application.use function\n */\n private _getAppUsePatch(isExpressWithRouterPrototype: boolean) {\n const instrumentation = this;\n return function (original: express.Application['use']) {\n return function use(\n // `router` in express@5, `_router` in express@4.\n this: { _router?: ExpressRouter; router?: ExpressRouter },\n ...args: Parameters\n ) {\n // If we access app.router in express 4.x we trigger an assertion error.\n // This property existed in v3, was removed in v4 and then re-added in v5.\n const router = isExpressWithRouterPrototype\n ? this.router\n : this._router;\n const route = original.apply(this, args);\n if (router) {\n const layer = router.stack[router.stack.length - 1];\n instrumentation._applyPatch(layer, getLayerPath(args));\n }\n return route;\n };\n };\n }\n\n /** Patch each express layer to create span and propagate context */\n private _applyPatch(\n this: ExpressInstrumentation,\n layer: ExpressLayer,\n layerPath?: string\n ) {\n const instrumentation = this;\n // avoid patching multiple times the same layer\n if (layer[kLayerPatched] === true) return;\n layer[kLayerPatched] = true;\n\n this._wrap(layer, 'handle', original => {\n // TODO: instrument error handlers\n if (original.length === 4) return original;\n\n const patched = function (\n this: ExpressLayer,\n req: PatchedRequest,\n res: express.Response\n ) {\n const { isLayerPathStored } = storeLayerPath(req, layerPath);\n\n const constructedRoute = getConstructedRoute(req);\n const actualMatchedRoute = getActualMatchedRoute(req);\n\n const attributes: Attributes = {\n [ATTR_HTTP_ROUTE]: actualMatchedRoute,\n };\n const metadata = getLayerMetadata(constructedRoute, layer, layerPath);\n const type = metadata.attributes[\n AttributeNames.EXPRESS_TYPE\n ] as ExpressLayerType;\n\n const rpcMetadata = getRPCMetadata(context.active());\n if (rpcMetadata?.type === RPCType.HTTP) {\n rpcMetadata.route = actualMatchedRoute;\n }\n\n // verify against the config if the layer should be ignored\n if (isLayerIgnored(metadata.name, type, instrumentation.getConfig())) {\n if (type === ExpressLayerType.MIDDLEWARE) {\n (req[_LAYERS_STORE_PROPERTY] as string[]).pop();\n }\n return original.apply(this, arguments);\n }\n\n if (trace.getSpan(context.active()) === undefined) {\n return original.apply(this, arguments);\n }\n\n const spanName = instrumentation._getSpanName(\n {\n request: req,\n layerType: type,\n route: constructedRoute,\n },\n metadata.name\n );\n const span = instrumentation.tracer.startSpan(spanName, {\n attributes: Object.assign(attributes, metadata.attributes),\n });\n\n const parentContext = context.active();\n let currentContext = trace.setSpan(parentContext, span);\n\n const { requestHook } = instrumentation.getConfig();\n if (requestHook) {\n safeExecuteInTheMiddle(\n () =>\n requestHook(span, {\n request: req,\n layerType: type,\n route: constructedRoute,\n }),\n e => {\n if (e) {\n diag.error('express instrumentation: request hook failed', e);\n }\n },\n true\n );\n }\n\n let spanHasEnded = false;\n // TODO: Fix router spans (getRouterPath does not work properly) to\n // have useful names before removing this branch\n if (\n metadata.attributes[AttributeNames.EXPRESS_TYPE] ===\n ExpressLayerType.ROUTER\n ) {\n span.end();\n spanHasEnded = true;\n currentContext = parentContext;\n }\n // listener for response.on('finish')\n const onResponseFinish = () => {\n if (spanHasEnded === false) {\n spanHasEnded = true;\n span.end();\n }\n };\n\n // verify we have a callback\n const args = Array.from(arguments);\n const callbackIdx = args.findIndex(arg => typeof arg === 'function');\n if (callbackIdx >= 0) {\n arguments[callbackIdx] = function () {\n // express considers anything but an empty value, \"route\" or \"router\"\n // passed to its callback to be an error\n const maybeError = arguments[0];\n const isError = ![undefined, null, 'route', 'router'].includes(\n maybeError\n );\n if (!spanHasEnded && isError) {\n const [error, message] = asErrorAndMessage(maybeError);\n span.recordException(error);\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message,\n });\n }\n\n if (spanHasEnded === false) {\n spanHasEnded = true;\n req.res?.removeListener('finish', onResponseFinish);\n span.end();\n }\n if (!(req.route && isError) && isLayerPathStored) {\n (req[_LAYERS_STORE_PROPERTY] as string[]).pop();\n }\n const callback = args[callbackIdx] as Function;\n // Preserve the active context (which may include baggage set by middleware)\n // but restore the parent span to prevent sibling middleware spans\n // from nesting under each other\n const activeContext = context.active();\n const parentSpan = trace.getSpan(parentContext);\n const nextContext = parentSpan\n ? trace.setSpan(activeContext, parentSpan)\n : activeContext;\n return context.bind(nextContext, callback).apply(this, arguments);\n };\n }\n\n try {\n return context.bind(currentContext, original).apply(this, arguments);\n } catch (anyError) {\n const [error, message] = asErrorAndMessage(anyError);\n span.recordException(error);\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message,\n });\n throw anyError;\n } finally {\n /**\n * At this point if the callback wasn't called, that means either the\n * layer is asynchronous (so it will call the callback later on) or that\n * the layer directly ends the http response, so we'll hook into the \"finish\"\n * event to handle the later case.\n */\n if (!spanHasEnded) {\n res.once('finish', onResponseFinish);\n }\n }\n };\n\n // `handle` isn't just a regular function in some cases. It also contains\n // some properties holding metadata and state so we need to proxy them\n // through through patched function\n // ref: https://github.com/open-telemetry/opentelemetry-js-contrib/issues/1950\n // Also some apps/libs do their own patching before OTEL and have these properties\n // in the proptotype. So we use a `for...in` loop to get own properties and also\n // any enumerable prop in the prototype chain\n // ref: https://github.com/open-telemetry/opentelemetry-js-contrib/issues/2271\n for (const key in original) {\n Object.defineProperty(patched, key, {\n get() {\n return original[key];\n },\n set(value) {\n original[key] = value;\n },\n });\n }\n return patched;\n });\n }\n\n _getSpanName(info: ExpressRequestInfo, defaultName: string) {\n const { spanNameHook } = this.getConfig();\n\n if (!(spanNameHook instanceof Function)) {\n return defaultName;\n }\n\n try {\n return spanNameHook(info, defaultName) ?? defaultName;\n } catch (err) {\n diag.error(\n 'express instrumentation: error calling span name rewrite hook',\n err\n );\n return defaultName;\n }\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { ExpressInstrumentation } from './instrumentation';\nexport { ExpressLayerType } from './enums/ExpressLayerType';\nexport { AttributeNames } from './enums/AttributeNames';\nexport type {\n ExpressInstrumentationConfig,\n ExpressRequestCustomAttributeFunction,\n ExpressRequestInfo,\n IgnoreMatcher,\n LayerPathSegment,\n SpanNameHook,\n} from './types';\n","declare const __DEBUG_BUILD__: boolean;\n\n/**\n * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.\n *\n * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.\n */\nexport const DEBUG_BUILD = __DEBUG_BUILD__;\n","import type * as http from 'node:http';\nimport type { Span } from '@opentelemetry/api';\nimport type { ExpressRequestInfo } from '@opentelemetry/instrumentation-express';\nimport { ExpressInstrumentation } from '@opentelemetry/instrumentation-express';\nimport type { IntegrationFn } from '@sentry/core';\nimport {\n captureException,\n debug,\n defineIntegration,\n getDefaultIsolationScope,\n getIsolationScope,\n httpRequestToRequestData,\n SEMANTIC_ATTRIBUTE_SENTRY_OP,\n spanToJSON,\n} from '@sentry/core';\nimport { addOriginToSpan, ensureIsWrapped, generateInstrumentOnce } from '@sentry/node-core';\nimport { DEBUG_BUILD } from '../../debug-build';\n\nconst INTEGRATION_NAME = 'Express';\n\nfunction requestHook(span: Span): void {\n addOriginToSpan(span, 'auto.http.otel.express');\n\n const attributes = spanToJSON(span).data;\n // this is one of: middleware, request_handler, router\n const type = attributes['express.type'];\n\n if (type) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, `${type}.express`);\n }\n\n // Also update the name, we don't need to \"middleware - \" prefix\n const name = attributes['express.name'];\n if (typeof name === 'string') {\n span.updateName(name);\n }\n}\n\nfunction spanNameHook(info: ExpressRequestInfo, defaultName: string): string {\n if (getIsolationScope() === getDefaultIsolationScope()) {\n DEBUG_BUILD && debug.warn('Isolation scope is still default isolation scope - skipping setting transactionName');\n return defaultName;\n }\n if (info.layerType === 'request_handler') {\n // type cast b/c Otel unfortunately types info.request as any :(\n const req = info.request as { method?: string };\n const method = req.method ? req.method.toUpperCase() : 'GET';\n getIsolationScope().setTransactionName(`${method} ${info.route}`);\n }\n return defaultName;\n}\n\nexport const instrumentExpress = generateInstrumentOnce(\n INTEGRATION_NAME,\n () =>\n new ExpressInstrumentation({\n requestHook: span => requestHook(span),\n spanNameHook: (info, defaultName) => spanNameHook(info, defaultName),\n }),\n);\n\nconst _expressIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentExpress();\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for [Express](https://expressjs.com/).\n *\n * If you also want to capture errors, you need to call `setupExpressErrorHandler(app)` after you set up your Express server.\n *\n * For more information, see the [express documentation](https://docs.sentry.io/platforms/javascript/guides/express/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.expressIntegration()],\n * })\n * ```\n */\nexport const expressIntegration = defineIntegration(_expressIntegration);\n\ninterface MiddlewareError extends Error {\n status?: number | string;\n statusCode?: number | string;\n status_code?: number | string;\n output?: {\n statusCode?: number | string;\n };\n}\n\ntype ExpressMiddleware = (req: http.IncomingMessage, res: http.ServerResponse, next: () => void) => void;\n\ntype ExpressErrorMiddleware = (\n error: MiddlewareError,\n req: http.IncomingMessage,\n res: http.ServerResponse,\n next: (error: MiddlewareError) => void,\n) => void;\n\ninterface ExpressHandlerOptions {\n /**\n * Callback method deciding whether error should be captured and sent to Sentry\n * @param error Captured middleware error\n */\n shouldHandleError?(this: void, error: MiddlewareError): boolean;\n}\n\n/**\n * An Express-compatible error handler.\n */\nexport function expressErrorHandler(options?: ExpressHandlerOptions): ExpressErrorMiddleware {\n return function sentryErrorMiddleware(\n error: MiddlewareError,\n request: http.IncomingMessage,\n res: http.ServerResponse,\n next: (error: MiddlewareError) => void,\n ): void {\n const normalizedRequest = httpRequestToRequestData(request);\n // Ensure we use the express-enhanced request here, instead of the plain HTTP one\n // When an error happens, the `expressRequestHandler` middleware does not run, so we set it here too\n getIsolationScope().setSDKProcessingMetadata({ normalizedRequest });\n\n const shouldHandleError = options?.shouldHandleError || defaultShouldHandleError;\n\n if (shouldHandleError(error)) {\n const eventId = captureException(error, { mechanism: { type: 'auto.middleware.express', handled: false } });\n (res as { sentry?: string }).sentry = eventId;\n }\n\n next(error);\n };\n}\n\nfunction expressRequestHandler(): ExpressMiddleware {\n return function sentryRequestMiddleware(\n request: http.IncomingMessage,\n _res: http.ServerResponse,\n next: () => void,\n ): void {\n const normalizedRequest = httpRequestToRequestData(request);\n // Ensure we use the express-enhanced request here, instead of the plain HTTP one\n getIsolationScope().setSDKProcessingMetadata({ normalizedRequest });\n\n next();\n };\n}\n\n/**\n * Add an Express error handler to capture errors to Sentry.\n *\n * The error handler must be before any other middleware and after all controllers.\n *\n * @param app The Express instances\n * @param options {ExpressHandlerOptions} Configuration options for the handler\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n * const express = require(\"express\");\n *\n * const app = express();\n *\n * // Add your routes, etc.\n *\n * // Add this after all routes,\n * // but before any and other error-handling middlewares are defined\n * Sentry.setupExpressErrorHandler(app);\n *\n * app.listen(3000);\n * ```\n */\nexport function setupExpressErrorHandler(\n app: { use: (middleware: ExpressMiddleware | ExpressErrorMiddleware) => unknown },\n options?: ExpressHandlerOptions,\n): void {\n app.use(expressRequestHandler());\n app.use(expressErrorHandler(options));\n ensureIsWrapped(app.use, 'express');\n}\n\nfunction getStatusCodeFromResponse(error: MiddlewareError): number {\n const statusCode = error.status || error.statusCode || error.status_code || error.output?.statusCode;\n return statusCode ? parseInt(statusCode as string, 10) : 500;\n}\n\n/** Returns true if response code is internal server error */\nfunction defaultShouldHandleError(error: MiddlewareError): boolean {\n const status = getStatusCodeFromResponse(error);\n return status >= 500;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport enum SemconvStability {\n /** Emit only stable semantic conventions. */\n STABLE = 0x1,\n /** Emit only old semantic conventions. */\n OLD = 0x2,\n /** Emit both stable and old semantic conventions. */\n DUPLICATE = 0x1 | 0x2,\n}\n\n// Common namespaces mentioned in semantic-conventions docs, but allow\n// other custom strings.\ntype SemConvStabilityNamespace =\n | 'http'\n | 'messaging'\n | 'database'\n | 'k8s'\n | (string & {});\n\n/**\n * Determine the appropriate semconv stability for the given namespace.\n *\n * This will parse the given string of comma-separated values (often\n * `process.env.OTEL_SEMCONV_STABILITY_OPT_IN`) looking for the `${namespace}`\n * or `${namespace}/dup` tokens. This is a pattern defined by a number of\n * non-normative semconv documents.\n *\n * For example:\n * - namespace 'http': https://opentelemetry.io/docs/specs/semconv/non-normative/http-migration/\n * - namespace 'database': https://opentelemetry.io/docs/specs/semconv/non-normative/database-migration/\n * - namespace 'k8s': https://opentelemetry.io/docs/specs/semconv/non-normative/k8s-migration/\n *\n * Usage:\n *\n * import {SemconvStability, semconvStabilityFromStr} from '@opentelemetry/instrumentation';\n *\n * export class FooInstrumentation extends InstrumentationBase {\n * private _semconvStability: SemconvStability;\n * constructor(config: FooInstrumentationConfig = {}) {\n * super('@opentelemetry/instrumentation-foo', VERSION, config);\n *\n * // When supporting the OTEL_SEMCONV_STABILITY_OPT_IN envvar\n * this._semconvStability = semconvStabilityFromStr(\n * 'http',\n * process.env.OTEL_SEMCONV_STABILITY_OPT_IN\n * );\n *\n * // or when supporting a `semconvStabilityOptIn` config option (e.g. for\n * // the web where there are no envvars).\n * this._semconvStability = semconvStabilityFromStr(\n * 'http',\n * config?.semconvStabilityOptIn\n * );\n * }\n * }\n *\n * // Then, to apply semconv, use the following or similar:\n * if (this._semconvStability & SemconvStability.OLD) {\n * // ...\n * }\n * if (this._semconvStability & SemconvStability.STABLE) {\n * // ...\n * }\n *\n */\nexport function semconvStabilityFromStr(\n namespace: SemConvStabilityNamespace,\n str: string | undefined\n) {\n let semconvStability = SemconvStability.OLD;\n\n // The same parsing of `str` as `getStringListFromEnv` from the core pkg.\n const entries = str\n ?.split(',')\n .map(v => v.trim())\n .filter(s => s !== '');\n for (const entry of entries ?? []) {\n if (entry.toLowerCase() === namespace + '/dup') {\n // DUPLICATE takes highest precedence.\n semconvStability = SemconvStability.DUPLICATE;\n break;\n } else if (entry.toLowerCase() === namespace) {\n semconvStability = SemconvStability.STABLE;\n }\n }\n\n return semconvStability;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as types from '../../types';\nimport * as path from 'path';\nimport { types as utilTypes } from 'util';\nimport { satisfies } from '../../semver';\nimport { wrap, unwrap, massWrap, massUnwrap } from '../../shimmer';\nimport { InstrumentationAbstract } from '../../instrumentation';\nimport {\n RequireInTheMiddleSingleton,\n Hooked,\n} from './RequireInTheMiddleSingleton';\nimport type { HookFn } from 'import-in-the-middle';\nimport { Hook as HookImport } from 'import-in-the-middle';\nimport {\n InstrumentationConfig,\n InstrumentationModuleDefinition,\n} from '../../types';\nimport { diag } from '@opentelemetry/api';\nimport type { OnRequireFn } from 'require-in-the-middle';\nimport { Hook as HookRequire } from 'require-in-the-middle';\nimport { readFileSync } from 'fs';\nimport { isWrapped } from '../../utils';\n\n/**\n * Base abstract class for instrumenting node plugins\n */\nexport abstract class InstrumentationBase<\n ConfigType extends InstrumentationConfig = InstrumentationConfig,\n >\n extends InstrumentationAbstract\n implements types.Instrumentation\n{\n private _modules: InstrumentationModuleDefinition[];\n private _hooks: (Hooked | HookRequire)[] = [];\n private _requireInTheMiddleSingleton: RequireInTheMiddleSingleton =\n RequireInTheMiddleSingleton.getInstance();\n private _enabled = false;\n\n constructor(\n instrumentationName: string,\n instrumentationVersion: string,\n config: ConfigType\n ) {\n super(instrumentationName, instrumentationVersion, config);\n\n let modules = this.init();\n\n if (modules && !Array.isArray(modules)) {\n modules = [modules];\n }\n\n this._modules = (modules as InstrumentationModuleDefinition[]) || [];\n\n if (this._config.enabled) {\n this.enable();\n }\n }\n\n protected override _wrap: typeof wrap = (moduleExports, name, wrapper) => {\n if (isWrapped(moduleExports[name])) {\n this._unwrap(moduleExports, name);\n }\n if (!utilTypes.isProxy(moduleExports)) {\n return wrap(moduleExports, name, wrapper);\n } else {\n const wrapped = wrap(Object.assign({}, moduleExports), name, wrapper);\n Object.defineProperty(moduleExports, name, {\n value: wrapped,\n });\n return wrapped;\n }\n };\n\n protected override _unwrap: typeof unwrap = (moduleExports, name) => {\n if (!utilTypes.isProxy(moduleExports)) {\n return unwrap(moduleExports, name);\n } else {\n return Object.defineProperty(moduleExports, name, {\n value: moduleExports[name],\n });\n }\n };\n\n protected override _massWrap: typeof massWrap = (\n moduleExportsArray,\n names,\n wrapper\n ) => {\n if (!moduleExportsArray) {\n diag.error('must provide one or more modules to patch');\n return;\n } else if (!Array.isArray(moduleExportsArray)) {\n moduleExportsArray = [moduleExportsArray];\n }\n\n if (!(names && Array.isArray(names))) {\n diag.error('must provide one or more functions to wrap on modules');\n return;\n }\n\n moduleExportsArray.forEach(moduleExports => {\n names.forEach(name => {\n this._wrap(moduleExports, name, wrapper);\n });\n });\n };\n\n protected override _massUnwrap: typeof massUnwrap = (\n moduleExportsArray,\n names\n ) => {\n if (!moduleExportsArray) {\n diag.error('must provide one or more modules to patch');\n return;\n } else if (!Array.isArray(moduleExportsArray)) {\n moduleExportsArray = [moduleExportsArray];\n }\n\n if (!(names && Array.isArray(names))) {\n diag.error('must provide one or more functions to wrap on modules');\n return;\n }\n\n moduleExportsArray.forEach(moduleExports => {\n names.forEach(name => {\n this._unwrap(moduleExports, name);\n });\n });\n };\n\n private _warnOnPreloadedModules(): void {\n this._modules.forEach((module: InstrumentationModuleDefinition) => {\n const { name } = module;\n try {\n const resolvedModule = require.resolve(name);\n if (require.cache[resolvedModule]) {\n // Module is already cached, which means the instrumentation hook might not work\n this._diag.warn(\n `Module ${name} has been loaded before ${this.instrumentationName} so it might not work, please initialize it before requiring ${name}`\n );\n }\n } catch {\n // Module isn't available, we can simply skip\n }\n });\n }\n\n private _extractPackageVersion(baseDir: string): string | undefined {\n try {\n const json = readFileSync(path.join(baseDir, 'package.json'), {\n encoding: 'utf8',\n });\n const version = JSON.parse(json).version;\n return typeof version === 'string' ? version : undefined;\n } catch {\n diag.warn('Failed extracting version', baseDir);\n }\n\n return undefined;\n }\n\n private _onRequire(\n module: InstrumentationModuleDefinition,\n exports: T,\n name: string,\n baseDir?: string | void\n ): T {\n if (!baseDir) {\n if (typeof module.patch === 'function') {\n module.moduleExports = exports;\n if (this._enabled) {\n this._diag.debug(\n 'Applying instrumentation patch for nodejs core module on require hook',\n {\n module: module.name,\n }\n );\n return module.patch(exports);\n }\n }\n return exports;\n }\n\n const version = this._extractPackageVersion(baseDir);\n module.moduleVersion = version;\n if (module.name === name) {\n // main module\n if (\n isSupported(module.supportedVersions, version, module.includePrerelease)\n ) {\n if (typeof module.patch === 'function') {\n module.moduleExports = exports;\n if (this._enabled) {\n this._diag.debug(\n 'Applying instrumentation patch for module on require hook',\n {\n module: module.name,\n version: module.moduleVersion,\n baseDir,\n }\n );\n return module.patch(exports, module.moduleVersion);\n }\n }\n }\n return exports;\n }\n // internal file\n const files = module.files ?? [];\n const normalizedName = path.normalize(name);\n const supportedFileInstrumentations = files.filter(\n f =>\n f.name === normalizedName &&\n isSupported(f.supportedVersions, version, module.includePrerelease)\n );\n return supportedFileInstrumentations.reduce((patchedExports, file) => {\n file.moduleExports = patchedExports;\n if (this._enabled) {\n this._diag.debug(\n 'Applying instrumentation patch for nodejs module file on require hook',\n {\n module: module.name,\n version: module.moduleVersion,\n fileName: file.name,\n baseDir,\n }\n );\n\n // patch signature is not typed, so we cast it assuming it's correct\n return file.patch(patchedExports, module.moduleVersion) as T;\n }\n return patchedExports;\n }, exports);\n }\n\n public enable(): void {\n if (this._enabled) {\n return;\n }\n this._enabled = true;\n\n // already hooked, just call patch again\n if (this._hooks.length > 0) {\n for (const module of this._modules) {\n if (typeof module.patch === 'function' && module.moduleExports) {\n this._diag.debug(\n 'Applying instrumentation patch for nodejs module on instrumentation enabled',\n {\n module: module.name,\n version: module.moduleVersion,\n }\n );\n module.patch(module.moduleExports, module.moduleVersion);\n }\n for (const file of module.files) {\n if (file.moduleExports) {\n this._diag.debug(\n 'Applying instrumentation patch for nodejs module file on instrumentation enabled',\n {\n module: module.name,\n version: module.moduleVersion,\n fileName: file.name,\n }\n );\n file.patch(file.moduleExports, module.moduleVersion);\n }\n }\n }\n return;\n }\n\n this._warnOnPreloadedModules();\n for (const module of this._modules) {\n const hookFn: HookFn = (exports, name, baseDir) => {\n if (!baseDir && path.isAbsolute(name)) {\n // Change IITM `name` and `baseDir` values to match what RITM returns.\n // See \"Comparing to RITM\" on https://github.com/nodejs/import-in-the-middle/pull/241\n // for an example of the differences.\n const parsedPath = path.parse(name);\n name = parsedPath.name;\n baseDir = parsedPath.dir;\n }\n return this._onRequire(module, exports, name, baseDir);\n };\n const onRequire: OnRequireFn = (exports, name, baseDir) => {\n return this._onRequire(module, exports, name, baseDir);\n };\n\n // `RequireInTheMiddleSingleton` does not support absolute paths.\n // For an absolute paths, we must create a separate instance of the\n // require-in-the-middle `Hook`.\n const hook = path.isAbsolute(module.name)\n ? new HookRequire([module.name], { internals: true }, onRequire)\n : this._requireInTheMiddleSingleton.register(module.name, onRequire);\n\n this._hooks.push(hook);\n const esmHook = new HookImport(\n [module.name],\n { internals: true },\n hookFn\n );\n this._hooks.push(esmHook);\n }\n }\n\n public disable(): void {\n if (!this._enabled) {\n return;\n }\n this._enabled = false;\n\n for (const module of this._modules) {\n if (typeof module.unpatch === 'function' && module.moduleExports) {\n this._diag.debug(\n 'Removing instrumentation patch for nodejs module on instrumentation disabled',\n {\n module: module.name,\n version: module.moduleVersion,\n }\n );\n module.unpatch(module.moduleExports, module.moduleVersion);\n }\n for (const file of module.files) {\n if (file.moduleExports) {\n this._diag.debug(\n 'Removing instrumentation patch for nodejs module file on instrumentation disabled',\n {\n module: module.name,\n version: module.moduleVersion,\n fileName: file.name,\n }\n );\n file.unpatch(file.moduleExports, module.moduleVersion);\n }\n }\n }\n }\n\n public isEnabled(): boolean {\n return this._enabled;\n }\n}\n\nfunction isSupported(\n supportedVersions: string[],\n version?: string,\n includePrerelease?: boolean\n): boolean {\n if (typeof version === 'undefined') {\n // If we don't have the version, accept the wildcard case only\n return supportedVersions.includes('*');\n }\n\n return supportedVersions.some(supportedVersion => {\n return satisfies(version, supportedVersion, { includePrerelease });\n });\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { LoggerProvider } from '../types/LoggerProvider';\n\nexport const GLOBAL_LOGS_API_KEY = Symbol.for('io.opentelemetry.js.api.logs');\n\ntype Get = (version: number) => T;\ntype OtelGlobal = Partial<{\n [GLOBAL_LOGS_API_KEY]: Get;\n}>;\n\nexport const _global = globalThis as OtelGlobal;\n\n/**\n * Make a function which accepts a version integer and returns the instance of an API if the version\n * is compatible, or a fallback version (usually NOOP) if it is not.\n *\n * @param requiredVersion Backwards compatibility version which is required to return the instance\n * @param instance Instance which should be returned if the required version is compatible\n * @param fallback Fallback instance, usually NOOP, which will be returned if the required version is not compatible\n */\nexport function makeGetter(\n requiredVersion: number,\n instance: T,\n fallback: T\n): Get {\n return (version: number): T =>\n version === requiredVersion ? instance : fallback;\n}\n\n/**\n * A number which should be incremented each time a backwards incompatible\n * change is made to the API. This number is used when an API package\n * attempts to access the global API to ensure it is getting a compatible\n * version. If the global API is not compatible with the API package\n * attempting to get it, a NOOP API implementation will be returned.\n */\nexport const API_BACKWARDS_COMPATIBILITY_VERSION = 1;\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { NOOP_LOGGER } from './NoopLogger';\nimport { Logger } from './types/Logger';\nimport { LoggerOptions } from './types/LoggerOptions';\nimport { LogRecord } from './types/LogRecord';\n\nexport class ProxyLogger implements Logger {\n // When a real implementation is provided, this will be it\n private _delegate?: Logger;\n private _provider: LoggerDelegator;\n public readonly name: string;\n public readonly version?: string | undefined;\n public readonly options?: LoggerOptions | undefined;\n\n constructor(\n provider: LoggerDelegator,\n name: string,\n version?: string | undefined,\n options?: LoggerOptions | undefined\n ) {\n this._provider = provider;\n this.name = name;\n this.version = version;\n this.options = options;\n }\n\n /**\n * Emit a log record. This method should only be used by log appenders.\n *\n * @param logRecord\n */\n emit(logRecord: LogRecord): void {\n this._getLogger().emit(logRecord);\n }\n\n /**\n * Try to get a logger from the proxy logger provider.\n * If the proxy logger provider has no delegate, return a noop logger.\n */\n private _getLogger() {\n if (this._delegate) {\n return this._delegate;\n }\n const logger = this._provider._getDelegateLogger(\n this.name,\n this.version,\n this.options\n );\n if (!logger) {\n return NOOP_LOGGER;\n }\n this._delegate = logger;\n return this._delegate;\n }\n}\n\nexport interface LoggerDelegator {\n _getDelegateLogger(\n name: string,\n version?: string,\n options?: LoggerOptions\n ): Logger | undefined;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n API_BACKWARDS_COMPATIBILITY_VERSION,\n GLOBAL_LOGS_API_KEY,\n _global,\n makeGetter,\n} from '../internal/global-utils';\nimport { LoggerProvider } from '../types/LoggerProvider';\nimport { NOOP_LOGGER_PROVIDER } from '../NoopLoggerProvider';\nimport { Logger } from '../types/Logger';\nimport { LoggerOptions } from '../types/LoggerOptions';\nimport { ProxyLoggerProvider } from '../ProxyLoggerProvider';\n\nexport class LogsAPI {\n private static _instance?: LogsAPI;\n\n private _proxyLoggerProvider = new ProxyLoggerProvider();\n\n private constructor() {}\n\n public static getInstance(): LogsAPI {\n if (!this._instance) {\n this._instance = new LogsAPI();\n }\n\n return this._instance;\n }\n\n public setGlobalLoggerProvider(provider: LoggerProvider): LoggerProvider {\n if (_global[GLOBAL_LOGS_API_KEY]) {\n return this.getLoggerProvider();\n }\n\n _global[GLOBAL_LOGS_API_KEY] = makeGetter(\n API_BACKWARDS_COMPATIBILITY_VERSION,\n provider,\n NOOP_LOGGER_PROVIDER\n );\n this._proxyLoggerProvider._setDelegate(provider);\n\n return provider;\n }\n\n /**\n * Returns the global logger provider.\n *\n * @returns LoggerProvider\n */\n public getLoggerProvider(): LoggerProvider {\n return (\n _global[GLOBAL_LOGS_API_KEY]?.(API_BACKWARDS_COMPATIBILITY_VERSION) ??\n this._proxyLoggerProvider\n );\n }\n\n /**\n * Returns a logger from the global logger provider.\n *\n * @returns Logger\n */\n public getLogger(\n name: string,\n version?: string,\n options?: LoggerOptions\n ): Logger {\n return this.getLoggerProvider().getLogger(name, version, options);\n }\n\n /** Remove the global logger provider */\n public disable(): void {\n delete _global[GLOBAL_LOGS_API_KEY];\n this._proxyLoggerProvider = new ProxyLoggerProvider();\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { OnRequireFn } from 'require-in-the-middle';\nimport { Hook } from 'require-in-the-middle';\nimport * as path from 'path';\nimport { ModuleNameTrie, ModuleNameSeparator } from './ModuleNameTrie';\n\nexport type Hooked = {\n moduleName: string;\n onRequire: OnRequireFn;\n};\n\n/**\n * Whether Mocha is running in this process\n * Inspired by https://github.com/AndreasPizsa/detect-mocha\n *\n * @type {boolean}\n */\nconst isMocha = [\n 'afterEach',\n 'after',\n 'beforeEach',\n 'before',\n 'describe',\n 'it',\n].every(fn => {\n // @ts-expect-error TS7053: Element implicitly has an 'any' type\n return typeof global[fn] === 'function';\n});\n\n/**\n * Singleton class for `require-in-the-middle`\n * Allows instrumentation plugins to patch modules with only a single `require` patch\n * WARNING: Because this class will create its own `require-in-the-middle` (RITM) instance,\n * we should minimize the number of new instances of this class.\n * Multiple instances of `@opentelemetry/instrumentation` (e.g. multiple versions) in a single process\n * will result in multiple instances of RITM, which will have an impact\n * on the performance of instrumentation hooks being applied.\n */\nexport class RequireInTheMiddleSingleton {\n private _moduleNameTrie: ModuleNameTrie = new ModuleNameTrie();\n private static _instance?: RequireInTheMiddleSingleton;\n\n private constructor() {\n this._initialize();\n }\n\n private _initialize() {\n new Hook(\n // Intercept all `require` calls; we will filter the matching ones below\n null,\n { internals: true },\n (exports, name, basedir) => {\n // For internal files on Windows, `name` will use backslash as the path separator\n const normalizedModuleName = normalizePathSeparators(name);\n\n const matches = this._moduleNameTrie.search(normalizedModuleName, {\n maintainInsertionOrder: true,\n // For core modules (e.g. `fs`), do not match on sub-paths (e.g. `fs/promises').\n // This matches the behavior of `require-in-the-middle`.\n // `basedir` is always `undefined` for core modules.\n fullOnly: basedir === undefined,\n });\n\n for (const { onRequire } of matches) {\n exports = onRequire(exports, name, basedir);\n }\n\n return exports;\n }\n );\n }\n\n /**\n * Register a hook with `require-in-the-middle`\n *\n * @param {string} moduleName Module name\n * @param {OnRequireFn} onRequire Hook function\n * @returns {Hooked} Registered hook\n */\n register(moduleName: string, onRequire: OnRequireFn): Hooked {\n const hooked = { moduleName, onRequire };\n this._moduleNameTrie.insert(hooked);\n return hooked;\n }\n\n /**\n * Get the `RequireInTheMiddleSingleton` singleton\n *\n * @returns {RequireInTheMiddleSingleton} Singleton of `RequireInTheMiddleSingleton`\n */\n static getInstance(): RequireInTheMiddleSingleton {\n // Mocha runs all test suites in the same process\n // This prevents test suites from sharing a singleton\n if (isMocha) return new RequireInTheMiddleSingleton();\n\n return (this._instance =\n this._instance ?? new RequireInTheMiddleSingleton());\n }\n}\n\n/**\n * Normalize the path separators to forward slash in a module name or path\n *\n * @param {string} moduleNameOrPath Module name or path\n * @returns {string} Normalized module name or path\n */\nfunction normalizePathSeparators(moduleNameOrPath: string): string {\n return path.sep !== ModuleNameSeparator\n ? moduleNameOrPath.split(path.sep).join(ModuleNameSeparator)\n : moduleNameOrPath;\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { InstrumentationModuleFile } from './types';\nimport { normalize } from './platform/index';\n\nexport class InstrumentationNodeModuleFile\n implements InstrumentationModuleFile\n{\n public name: string;\n public supportedVersions: string[];\n public patch;\n public unpatch;\n\n constructor(\n name: string,\n supportedVersions: string[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n patch: (moduleExports: any, moduleVersion?: string) => any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n unpatch: (moduleExports?: any, moduleVersion?: string) => void\n ) {\n this.name = normalize(name);\n this.supportedVersions = supportedVersions;\n this.patch = patch;\n this.unpatch = unpatch;\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n InstrumentationModuleDefinition,\n InstrumentationModuleFile,\n} from './types';\n\nexport class InstrumentationNodeModuleDefinition\n implements InstrumentationModuleDefinition\n{\n files: InstrumentationModuleFile[];\n public name: string;\n public supportedVersions: string[];\n public patch;\n public unpatch;\n constructor(\n name: string,\n supportedVersions: string[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n patch?: (exports: any, moduleVersion?: string) => any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n unpatch?: (exports: any, moduleVersion?: string) => void,\n files?: InstrumentationModuleFile[]\n ) {\n this.files = files || [];\n this.name = name;\n this.supportedVersions = supportedVersions;\n this.patch = patch;\n this.unpatch = unpatch;\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport type { Logger } from './types/Logger';\nexport type { LoggerProvider } from './types/LoggerProvider';\nexport { SeverityNumber } from './types/LogRecord';\nexport type { LogAttributes, LogBody, LogRecord } from './types/LogRecord';\nexport type { LoggerOptions } from './types/LoggerOptions';\nexport type { AnyValue, AnyValueMap } from './types/AnyValue';\nexport { NOOP_LOGGER, NoopLogger } from './NoopLogger';\n\nimport { LogsAPI } from './api/logs';\nexport const logs = LogsAPI.getInstance();\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { trace, metrics } from '@opentelemetry/api';\nimport { logs } from '@opentelemetry/api-logs';\nimport {\n disableInstrumentations,\n enableInstrumentations,\n} from './autoLoaderUtils';\nimport { AutoLoaderOptions } from './types_internal';\n\n/**\n * It will register instrumentations and plugins\n * @param options\n * @return returns function to unload instrumentation and plugins that were\n * registered\n */\nexport function registerInstrumentations(\n options: AutoLoaderOptions\n): () => void {\n const tracerProvider = options.tracerProvider || trace.getTracerProvider();\n const meterProvider = options.meterProvider || metrics.getMeterProvider();\n const loggerProvider = options.loggerProvider || logs.getLoggerProvider();\n const instrumentations = options.instrumentations?.flat() ?? [];\n\n enableInstrumentations(\n instrumentations,\n tracerProvider,\n meterProvider,\n loggerProvider\n );\n\n return () => {\n disableInstrumentations(instrumentations);\n };\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport { registerInstrumentations } from './autoLoader';\nexport { InstrumentationBase } from './platform/index';\nexport { InstrumentationNodeModuleDefinition } from './instrumentationNodeModuleDefinition';\nexport { InstrumentationNodeModuleFile } from './instrumentationNodeModuleFile';\nexport type {\n Instrumentation,\n InstrumentationConfig,\n InstrumentationModuleDefinition,\n InstrumentationModuleFile,\n ShimWrapped,\n SpanCustomizationHook,\n} from './types';\nexport type { AutoLoaderOptions, AutoLoaderResult } from './types_internal';\nexport {\n isWrapped,\n safeExecuteInTheMiddle,\n safeExecuteInTheMiddleAsync,\n} from './utils';\nexport { SemconvStability, semconvStabilityFromStr } from './semconvStability';\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n diag,\n DiagLogger,\n metrics,\n Meter,\n MeterProvider,\n trace,\n Tracer,\n TracerProvider,\n Span,\n} from '@opentelemetry/api';\nimport { Logger, LoggerProvider, logs } from '@opentelemetry/api-logs';\nimport * as shimmer from './shimmer';\nimport {\n InstrumentationModuleDefinition,\n Instrumentation,\n InstrumentationConfig,\n SpanCustomizationHook,\n} from './types';\n\n/**\n * Base abstract internal class for instrumenting node and web plugins\n */\nexport abstract class InstrumentationAbstract<\n ConfigType extends InstrumentationConfig = InstrumentationConfig,\n> implements Instrumentation\n{\n protected _config: ConfigType = {} as ConfigType;\n\n private _tracer: Tracer;\n private _meter: Meter;\n private _logger: Logger;\n protected _diag: DiagLogger;\n public readonly instrumentationName: string;\n public readonly instrumentationVersion: string;\n\n constructor(\n instrumentationName: string,\n instrumentationVersion: string,\n config: ConfigType\n ) {\n this.instrumentationName = instrumentationName;\n this.instrumentationVersion = instrumentationVersion;\n\n this.setConfig(config);\n\n this._diag = diag.createComponentLogger({\n namespace: instrumentationName,\n });\n\n this._tracer = trace.getTracer(instrumentationName, instrumentationVersion);\n this._meter = metrics.getMeter(instrumentationName, instrumentationVersion);\n this._logger = logs.getLogger(instrumentationName, instrumentationVersion);\n this._updateMetricInstruments();\n }\n\n /* Api to wrap instrumented method */\n protected _wrap = shimmer.wrap;\n /* Api to unwrap instrumented methods */\n protected _unwrap = shimmer.unwrap;\n /* Api to mass wrap instrumented method */\n protected _massWrap = shimmer.massWrap;\n /* Api to mass unwrap instrumented methods */\n protected _massUnwrap = shimmer.massUnwrap;\n\n /* Returns meter */\n protected get meter(): Meter {\n return this._meter;\n }\n\n /**\n * Sets MeterProvider to this plugin\n * @param meterProvider\n */\n public setMeterProvider(meterProvider: MeterProvider): void {\n this._meter = meterProvider.getMeter(\n this.instrumentationName,\n this.instrumentationVersion\n );\n\n this._updateMetricInstruments();\n }\n\n /* Returns logger */\n protected get logger(): Logger {\n return this._logger;\n }\n\n /**\n * Sets LoggerProvider to this plugin\n * @param loggerProvider\n */\n public setLoggerProvider(loggerProvider: LoggerProvider): void {\n this._logger = loggerProvider.getLogger(\n this.instrumentationName,\n this.instrumentationVersion\n );\n }\n\n /**\n * @experimental\n *\n * Get module definitions defined by {@link init}.\n * This can be used for experimental compile-time instrumentation.\n *\n * @returns an array of {@link InstrumentationModuleDefinition}\n */\n public getModuleDefinitions(): InstrumentationModuleDefinition[] {\n const initResult = this.init() ?? [];\n if (!Array.isArray(initResult)) {\n return [initResult];\n }\n\n return initResult;\n }\n\n /**\n * Sets the new metric instruments with the current Meter.\n */\n protected _updateMetricInstruments(): void {\n return;\n }\n\n /* Returns InstrumentationConfig */\n public getConfig(): ConfigType {\n return this._config;\n }\n\n /**\n * Sets InstrumentationConfig to this plugin\n * @param config\n */\n public setConfig(config: ConfigType): void {\n // copy config first level properties to ensure they are immutable.\n // nested properties are not copied, thus are mutable from the outside.\n this._config = {\n enabled: true,\n ...config,\n };\n }\n\n /**\n * Sets TraceProvider to this plugin\n * @param tracerProvider\n */\n public setTracerProvider(tracerProvider: TracerProvider): void {\n this._tracer = tracerProvider.getTracer(\n this.instrumentationName,\n this.instrumentationVersion\n );\n }\n\n /* Returns tracer */\n protected get tracer(): Tracer {\n return this._tracer;\n }\n\n /* Enable plugin */\n public abstract enable(): void;\n\n /* Disable plugin */\n public abstract disable(): void;\n\n /**\n * Init method in which plugin should define _modules and patches for\n * methods.\n */\n protected abstract init():\n | InstrumentationModuleDefinition\n | InstrumentationModuleDefinition[]\n | void;\n\n /**\n * Execute span customization hook, if configured, and log any errors.\n * Any semantics of the trigger and info are defined by the specific instrumentation.\n * @param hookHandler The optional hook handler which the user has configured via instrumentation config\n * @param triggerName The name of the trigger for executing the hook for logging purposes\n * @param span The span to which the hook should be applied\n * @param info The info object to be passed to the hook, with useful data the hook may use\n */\n protected _runSpanCustomizationHook(\n hookHandler: SpanCustomizationHook | undefined,\n triggerName: string,\n span: Span,\n info: SpanCustomizationInfoType\n ) {\n if (!hookHandler) {\n return;\n }\n\n try {\n hookHandler(span, info);\n } catch (e) {\n this._diag.error(\n `Error running span customization hook due to exception in handler`,\n { triggerName },\n e\n );\n }\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { LoggerProvider } from './types/LoggerProvider';\nimport { Logger } from './types/Logger';\nimport { LoggerOptions } from './types/LoggerOptions';\nimport { NOOP_LOGGER_PROVIDER } from './NoopLoggerProvider';\nimport { ProxyLogger } from './ProxyLogger';\n\nexport class ProxyLoggerProvider implements LoggerProvider {\n private _delegate?: LoggerProvider;\n\n getLogger(\n name: string,\n version?: string | undefined,\n options?: LoggerOptions | undefined\n ): Logger {\n return (\n this._getDelegateLogger(name, version, options) ??\n new ProxyLogger(this, name, version, options)\n );\n }\n\n /**\n * Get the delegate logger provider.\n * Used by tests only.\n * @internal\n */\n _getDelegate(): LoggerProvider {\n return this._delegate ?? NOOP_LOGGER_PROVIDER;\n }\n\n /**\n * Set the delegate logger provider\n * @internal\n */\n _setDelegate(delegate: LoggerProvider) {\n this._delegate = delegate;\n }\n\n /**\n * @internal\n */\n _getDelegateLogger(\n name: string,\n version?: string | undefined,\n options?: LoggerOptions | undefined\n ): Logger | undefined {\n return this._delegate?.getLogger(name, version, options);\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * BSD 2-Clause License\n *\n * Copyright (c) 2013-2019, Forrest L Norvell\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n *\n * * Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\n * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n/* Modified by OpenTelemetry Authors\n * - converted to TypeScript\n * - aligned with style-guide\n */\n\nimport { ShimWrapped } from './types';\n\n// Default to complaining loudly when things don't go according to plan.\n// eslint-disable-next-line no-console\nlet logger: typeof console.error = console.error.bind(console);\n\n// Sets a property on an object, preserving its enumerability.\n// This function assumes that the property is already writable.\nfunction defineProperty(obj: object, name: PropertyKey, value: unknown): void {\n const enumerable =\n !!obj[name as keyof typeof obj] &&\n Object.prototype.propertyIsEnumerable.call(obj, name);\n\n Object.defineProperty(obj, name, {\n configurable: true,\n enumerable,\n writable: true,\n value,\n });\n}\n\nexport const wrap = (\n nodule: Nodule,\n name: FieldName,\n wrapper: (original: Nodule[FieldName], name: FieldName) => Nodule[FieldName]\n): ShimWrapped | undefined => {\n if (!nodule || !nodule[name]) {\n logger('no original function ' + String(name) + ' to wrap');\n return;\n }\n\n if (!wrapper) {\n logger('no wrapper function');\n logger(new Error().stack);\n return;\n }\n\n const original = nodule[name];\n\n if (typeof original !== 'function' || typeof wrapper !== 'function') {\n logger('original object and wrapper must be functions');\n return;\n }\n\n const wrapped = wrapper(original, name) as object;\n\n defineProperty(wrapped, '__original', original);\n defineProperty(wrapped, '__unwrap', () => {\n if (nodule[name] === wrapped) {\n defineProperty(nodule, name, original);\n }\n });\n defineProperty(wrapped, '__wrapped', true);\n defineProperty(nodule, name, wrapped);\n return wrapped as ShimWrapped;\n};\n\nexport const massWrap = (\n nodules: Nodule[],\n names: FieldName[],\n wrapper: (original: Nodule[FieldName]) => Nodule[FieldName]\n): void => {\n if (!nodules) {\n logger('must provide one or more modules to patch');\n logger(new Error().stack);\n return;\n } else if (!Array.isArray(nodules)) {\n nodules = [nodules];\n }\n\n if (!(names && Array.isArray(names))) {\n logger('must provide one or more functions to wrap on modules');\n return;\n }\n\n nodules.forEach(nodule => {\n names.forEach(name => {\n wrap(nodule, name, wrapper);\n });\n });\n};\n\nexport const unwrap = (\n nodule: Nodule,\n name: keyof Nodule\n): void => {\n if (!nodule || !nodule[name]) {\n logger('no function to unwrap.');\n logger(new Error().stack);\n return;\n }\n\n const wrapped = nodule[name] as unknown as ShimWrapped;\n\n if (!wrapped.__unwrap) {\n logger(\n 'no original to unwrap to -- has ' +\n String(name) +\n ' already been unwrapped?'\n );\n } else {\n wrapped.__unwrap();\n return;\n }\n};\n\nexport const massUnwrap = (\n nodules: Nodule[],\n names: Array\n): void => {\n if (!nodules) {\n logger('must provide one or more modules to patch');\n logger(new Error().stack);\n return;\n } else if (!Array.isArray(nodules)) {\n nodules = [nodules];\n }\n\n if (!(names && Array.isArray(names))) {\n logger('must provide one or more functions to unwrap on modules');\n return;\n }\n\n nodules.forEach(nodule => {\n names.forEach(name => {\n unwrap(nodule, name);\n });\n });\n};\n\nexport interface ShimmerOptions {\n logger?: typeof console.error;\n}\n\nexport default function shimmer(options: ShimmerOptions): void {\n if (options && options.logger) {\n if (typeof options.logger !== 'function') {\n logger(\"new logger isn't a function, not replacing\");\n } else {\n logger = options.logger;\n }\n }\n}\n\nshimmer.wrap = wrap;\nshimmer.massWrap = massWrap;\nshimmer.unwrap = unwrap;\nshimmer.massUnwrap = massUnwrap;\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Logger } from './types/Logger';\nimport { LogRecord } from './types/LogRecord';\n\nexport class NoopLogger implements Logger {\n emit(_logRecord: LogRecord): void {}\n}\n\nexport const NOOP_LOGGER = new NoopLogger();\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// This is a custom semantic versioning implementation compatible with the\n// `satisfies(version, range, options?)` function from the `semver` npm package;\n// with the exception that the `loose` option is not supported.\n//\n// The motivation for the custom semver implementation is that\n// `semver` package has some initialization delay (lots of RegExp init and compile)\n// and this leads to coldstart overhead for the OTEL Lambda Node.js layer.\n// Hence, we have implemented lightweight version of it internally with required functionalities.\n\nimport { diag } from '@opentelemetry/api';\n\nconst VERSION_REGEXP =\n /^(?:v)?(?(?0|[1-9]\\d*)\\.(?0|[1-9]\\d*)\\.(?0|[1-9]\\d*))(?:-(?(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+(?[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\nconst RANGE_REGEXP =\n /^(?<|>|=|==|<=|>=|~|\\^|~>)?\\s*(?:v)?(?(?x|X|\\*|0|[1-9]\\d*)(?:\\.(?x|X|\\*|0|[1-9]\\d*))?(?:\\.(?x|X|\\*|0|[1-9]\\d*))?)(?:-(?(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+(?[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n\nconst operatorResMap: { [op: string]: number[] } = {\n '>': [1],\n '>=': [0, 1],\n '=': [0],\n '<=': [-1, 0],\n '<': [-1],\n '!=': [-1, 1],\n};\n\n/** Interface for the options to configure semantic versioning satisfy check. */\nexport interface SatisfiesOptions {\n /**\n * If set to true, the pre-release checks will be included\n * as described [here](https://github.com/npm/node-semver#prerelease-tags).\n */\n includePrerelease?: boolean;\n}\n\ninterface ParsedVersion {\n op?: string;\n\n version?: string;\n versionSegments?: string[];\n versionSegmentCount?: number;\n\n prerelease?: string;\n prereleaseSegments?: string[];\n prereleaseSegmentCount?: number;\n\n build?: string;\n\n invalid?: boolean;\n}\n\n/**\n * Checks given version whether it satisfies given range expression.\n * @param version the [version](https://github.com/npm/node-semver#versions) to be checked\n * @param range the [range](https://github.com/npm/node-semver#ranges) expression for version check\n * @param options options to configure semver satisfy check\n */\nexport function satisfies(\n version: string,\n range: string,\n options?: SatisfiesOptions\n): boolean {\n // Strict semver format check\n if (!_validateVersion(version)) {\n diag.error(`Invalid version: ${version}`);\n return false;\n }\n\n // If range is empty, satisfy check succeeds regardless what version is\n if (!range) {\n return true;\n }\n\n // Cleanup range\n range = range.replace(/([<>=~^]+)\\s+/g, '$1');\n\n // Parse version\n const parsedVersion: ParsedVersion | undefined = _parseVersion(version);\n if (!parsedVersion) {\n return false;\n }\n\n const allParsedRanges: ParsedVersion[] = [];\n\n // Check given version whether it satisfies given range expression\n const checkResult: boolean = _doSatisfies(\n parsedVersion,\n range,\n allParsedRanges,\n options\n );\n\n // If check result is OK,\n // do another final check for pre-release, if pre-release check is included by option\n if (checkResult && !options?.includePrerelease) {\n return _doPreleaseCheck(parsedVersion, allParsedRanges);\n }\n return checkResult;\n}\n\nfunction _validateVersion(version: unknown): boolean {\n return typeof version === 'string' && VERSION_REGEXP.test(version);\n}\n\nfunction _doSatisfies(\n parsedVersion: ParsedVersion,\n range: string,\n allParsedRanges: ParsedVersion[],\n options?: SatisfiesOptions\n): boolean {\n if (range.includes('||')) {\n // A version matches a range if and only if\n // every comparator in at least one of the ||-separated comparator sets is satisfied by the version\n const ranges: string[] = range.trim().split('||');\n for (const r of ranges) {\n if (_checkRange(parsedVersion, r, allParsedRanges, options)) {\n return true;\n }\n }\n return false;\n } else if (range.includes(' - ')) {\n // Hyphen ranges: https://github.com/npm/node-semver#hyphen-ranges-xyz---abc\n range = replaceHyphen(range, options);\n } else if (range.includes(' ')) {\n // Multiple separated ranges and all needs to be satisfied for success\n const ranges: string[] = range\n .trim()\n .replace(/\\s{2,}/g, ' ')\n .split(' ');\n for (const r of ranges) {\n if (!_checkRange(parsedVersion, r, allParsedRanges, options)) {\n return false;\n }\n }\n return true;\n }\n\n // Check given parsed version with given range\n return _checkRange(parsedVersion, range, allParsedRanges, options);\n}\n\nfunction _checkRange(\n parsedVersion: ParsedVersion,\n range: string,\n allParsedRanges: ParsedVersion[],\n options?: SatisfiesOptions\n): boolean {\n range = _normalizeRange(range, options);\n if (range.includes(' ')) {\n // If there are multiple ranges separated, satisfy each of them\n return _doSatisfies(parsedVersion, range, allParsedRanges, options);\n } else {\n // Validate and parse range\n const parsedRange: ParsedVersion = _parseRange(range);\n allParsedRanges.push(parsedRange);\n // Check parsed version by parsed range\n return _satisfies(parsedVersion, parsedRange);\n }\n}\n\nfunction _satisfies(\n parsedVersion: ParsedVersion,\n parsedRange: ParsedVersion\n): boolean {\n // If range is invalid, satisfy check fails (no error throw)\n if (parsedRange.invalid) {\n return false;\n }\n\n // If range is empty or wildcard, satisfy check succeeds regardless what version is\n if (!parsedRange.version || _isWildcard(parsedRange.version)) {\n return true;\n }\n\n // Compare version segment first\n let comparisonResult: number = _compareVersionSegments(\n parsedVersion.versionSegments || [],\n parsedRange.versionSegments || []\n );\n\n // If versions segments are equal, compare by pre-release segments\n if (comparisonResult === 0) {\n const versionPrereleaseSegments: string[] =\n parsedVersion.prereleaseSegments || [];\n const rangePrereleaseSegments: string[] =\n parsedRange.prereleaseSegments || [];\n if (!versionPrereleaseSegments.length && !rangePrereleaseSegments.length) {\n comparisonResult = 0;\n } else if (\n !versionPrereleaseSegments.length &&\n rangePrereleaseSegments.length\n ) {\n comparisonResult = 1;\n } else if (\n versionPrereleaseSegments.length &&\n !rangePrereleaseSegments.length\n ) {\n comparisonResult = -1;\n } else {\n comparisonResult = _compareVersionSegments(\n versionPrereleaseSegments,\n rangePrereleaseSegments\n );\n }\n }\n\n // Resolve check result according to comparison operator\n return operatorResMap[parsedRange.op!]?.includes(comparisonResult);\n}\n\nfunction _doPreleaseCheck(\n parsedVersion: ParsedVersion,\n allParsedRanges: ParsedVersion[]\n): boolean {\n if (parsedVersion.prerelease) {\n return allParsedRanges.some(\n r => r.prerelease && r.version === parsedVersion.version\n );\n }\n return true;\n}\n\nfunction _normalizeRange(range: string, options?: SatisfiesOptions): string {\n range = range.trim();\n range = replaceCaret(range, options);\n range = replaceTilde(range);\n range = replaceXRange(range, options);\n range = range.trim();\n return range;\n}\n\nfunction isX(id?: string): boolean {\n return !id || id.toLowerCase() === 'x' || id === '*';\n}\n\nfunction _parseVersion(versionString: string): ParsedVersion | undefined {\n const match: RegExpMatchArray | null = versionString.match(VERSION_REGEXP);\n if (!match) {\n diag.error(`Invalid version: ${versionString}`);\n return undefined;\n }\n\n const version: string = match!.groups!.version;\n const prerelease: string = match!.groups!.prerelease;\n const build: string = match!.groups!.build;\n\n const versionSegments: string[] = version.split('.');\n const prereleaseSegments: string[] | undefined = prerelease?.split('.');\n\n return {\n op: undefined,\n\n version,\n versionSegments,\n versionSegmentCount: versionSegments.length,\n\n prerelease,\n prereleaseSegments,\n prereleaseSegmentCount: prereleaseSegments ? prereleaseSegments.length : 0,\n\n build,\n };\n}\n\nfunction _parseRange(rangeString: string): ParsedVersion {\n if (!rangeString) {\n return {};\n }\n\n const match: RegExpMatchArray | null = rangeString.match(RANGE_REGEXP);\n if (!match) {\n diag.error(`Invalid range: ${rangeString}`);\n return {\n invalid: true,\n };\n }\n\n let op: string = match!.groups!.op;\n const version: string = match!.groups!.version;\n const prerelease: string = match!.groups!.prerelease;\n const build: string = match!.groups!.build;\n\n const versionSegments: string[] = version.split('.');\n const prereleaseSegments: string[] | undefined = prerelease?.split('.');\n\n if (op === '==') {\n op = '=';\n }\n\n return {\n op: op || '=',\n\n version,\n versionSegments,\n versionSegmentCount: versionSegments.length,\n\n prerelease,\n prereleaseSegments,\n prereleaseSegmentCount: prereleaseSegments ? prereleaseSegments.length : 0,\n\n build,\n };\n}\n\nfunction _isWildcard(s: string | undefined): boolean {\n return s === '*' || s === 'x' || s === 'X';\n}\n\nfunction _parseVersionString(v: string): string | number {\n const n: number = parseInt(v, 10);\n return isNaN(n) ? v : n;\n}\n\nfunction _normalizeVersionType(\n a: string | number,\n b: string | number\n): [string, string] | [number, number] {\n if (typeof a === typeof b) {\n if (typeof a === 'number') {\n return [a as number, b as number];\n } else if (typeof a === 'string') {\n return [a as string, b as string];\n } else {\n throw new Error('Version segments can only be strings or numbers');\n }\n } else {\n return [String(a), String(b)];\n }\n}\n\nfunction _compareVersionStrings(v1: string, v2: string): number {\n if (_isWildcard(v1) || _isWildcard(v2)) {\n return 0;\n }\n const [parsedV1, parsedV2] = _normalizeVersionType(\n _parseVersionString(v1),\n _parseVersionString(v2)\n );\n if (parsedV1 > parsedV2) {\n return 1;\n } else if (parsedV1 < parsedV2) {\n return -1;\n }\n return 0;\n}\n\nfunction _compareVersionSegments(v1: string[], v2: string[]): number {\n for (let i = 0; i < Math.max(v1.length, v2.length); i++) {\n const res: number = _compareVersionStrings(v1[i] || '0', v2[i] || '0');\n if (res !== 0) {\n return res;\n }\n }\n return 0;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// The rest of this file is adapted from portions of https://github.com/npm/node-semver/tree/868d4bb\n// License:\n/*\n * The ISC License\n *\n * Copyright (c) Isaac Z. Schlueter and Contributors\n *\n * Permission to use, copy, modify, and/or distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR\n * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]';\nconst NUMERICIDENTIFIER = '0|[1-9]\\\\d*';\nconst NONNUMERICIDENTIFIER = `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`;\nconst GTLT = '((?:<|>)?=?)';\n\nconst PRERELEASEIDENTIFIER = `(?:${NUMERICIDENTIFIER}|${NONNUMERICIDENTIFIER})`;\nconst PRERELEASE = `(?:-(${PRERELEASEIDENTIFIER}(?:\\\\.${PRERELEASEIDENTIFIER})*))`;\n\nconst BUILDIDENTIFIER = `${LETTERDASHNUMBER}+`;\nconst BUILD = `(?:\\\\+(${BUILDIDENTIFIER}(?:\\\\.${BUILDIDENTIFIER})*))`;\n\nconst XRANGEIDENTIFIER = `${NUMERICIDENTIFIER}|x|X|\\\\*`;\nconst XRANGEPLAIN =\n `[v=\\\\s]*(${XRANGEIDENTIFIER})` +\n `(?:\\\\.(${XRANGEIDENTIFIER})` +\n `(?:\\\\.(${XRANGEIDENTIFIER})` +\n `(?:${PRERELEASE})?${BUILD}?` +\n `)?)?`;\nconst XRANGE = `^${GTLT}\\\\s*${XRANGEPLAIN}$`;\nconst XRANGE_REGEXP = new RegExp(XRANGE);\n\nconst HYPHENRANGE =\n `^\\\\s*(${XRANGEPLAIN})` + `\\\\s+-\\\\s+` + `(${XRANGEPLAIN})` + `\\\\s*$`;\nconst HYPHENRANGE_REGEXP = new RegExp(HYPHENRANGE);\n\nconst LONETILDE = '(?:~>?)';\nconst TILDE = `^${LONETILDE}${XRANGEPLAIN}$`;\nconst TILDE_REGEXP = new RegExp(TILDE);\n\nconst LONECARET = '(?:\\\\^)';\nconst CARET = `^${LONECARET}${XRANGEPLAIN}$`;\nconst CARET_REGEXP = new RegExp(CARET);\n\n// Borrowed from https://github.com/npm/node-semver/blob/868d4bbe3d318c52544f38d5f9977a1103e924c2/classes/range.js#L285\n//\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nfunction replaceTilde(comp: string): string {\n const r = TILDE_REGEXP;\n return comp.replace(r, (_, M, m, p, pr) => {\n let ret;\n\n if (isX(M)) {\n ret = '';\n } else if (isX(m)) {\n ret = `>=${M}.0.0 <${+M + 1}.0.0-0`;\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0-0\n ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`;\n } else if (pr) {\n ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0-0\n ret = `>=${M}.${m}.${p} <${M}.${+m + 1}.0-0`;\n }\n return ret;\n });\n}\n\n// Borrowed from https://github.com/npm/node-semver/blob/868d4bbe3d318c52544f38d5f9977a1103e924c2/classes/range.js#L329\n//\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nfunction replaceCaret(comp: string, options?: SatisfiesOptions): string {\n const r = CARET_REGEXP;\n const z = options?.includePrerelease ? '-0' : '';\n return comp.replace(r, (_, M, m, p, pr) => {\n let ret;\n\n if (isX(M)) {\n ret = '';\n } else if (isX(m)) {\n ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`;\n } else if (isX(p)) {\n if (M === '0') {\n ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`;\n } else {\n ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`;\n }\n } else if (pr) {\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}-${pr} <${M}.${m}.${+p + 1}-0`;\n } else {\n ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`;\n }\n } else {\n ret = `>=${M}.${m}.${p}-${pr} <${+M + 1}.0.0-0`;\n }\n } else {\n if (M === '0') {\n if (m === '0') {\n ret = `>=${M}.${m}.${p}${z} <${M}.${m}.${+p + 1}-0`;\n } else {\n ret = `>=${M}.${m}.${p}${z} <${M}.${+m + 1}.0-0`;\n }\n } else {\n ret = `>=${M}.${m}.${p} <${+M + 1}.0.0-0`;\n }\n }\n return ret;\n });\n}\n\n// Borrowed from https://github.com/npm/node-semver/blob/868d4bbe3d318c52544f38d5f9977a1103e924c2/classes/range.js#L390\nfunction replaceXRange(comp: string, options?: SatisfiesOptions): string {\n const r = XRANGE_REGEXP;\n return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n const xM = isX(M);\n const xm = xM || isX(m);\n const xp = xm || isX(p);\n const anyX = xp;\n\n if (gtlt === '=' && anyX) {\n gtlt = '';\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options?.includePrerelease ? '-0' : '';\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0';\n } else {\n // nothing is forbidden\n ret = '*';\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0;\n }\n p = 0;\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n gtlt = '>=';\n if (xm) {\n M = +M + 1;\n m = 0;\n p = 0;\n } else {\n m = +m + 1;\n p = 0;\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<';\n if (xm) {\n M = +M + 1;\n } else {\n m = +m + 1;\n }\n }\n\n if (gtlt === '<') {\n pr = '-0';\n }\n\n ret = `${gtlt + M}.${m}.${p}${pr}`;\n } else if (xm) {\n ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`;\n } else if (xp) {\n ret = `>=${M}.${m}.0${pr} <${M}.${+m + 1}.0-0`;\n }\n\n return ret;\n });\n}\n\n// Borrowed from https://github.com/npm/node-semver/blob/868d4bbe3d318c52544f38d5f9977a1103e924c2/classes/range.js#L488\n//\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nfunction replaceHyphen(comp: string, options?: SatisfiesOptions): string {\n const r = HYPHENRANGE_REGEXP;\n return comp.replace(\n r,\n (_, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr) => {\n if (isX(fM)) {\n from = '';\n } else if (isX(fm)) {\n from = `>=${fM}.0.0${options?.includePrerelease ? '-0' : ''}`;\n } else if (isX(fp)) {\n from = `>=${fM}.${fm}.0${options?.includePrerelease ? '-0' : ''}`;\n } else if (fpr) {\n from = `>=${from}`;\n } else {\n from = `>=${from}${options?.includePrerelease ? '-0' : ''}`;\n }\n\n if (isX(tM)) {\n to = '';\n } else if (isX(tm)) {\n to = `<${+tM + 1}.0.0-0`;\n } else if (isX(tp)) {\n to = `<${tM}.${+tm + 1}.0-0`;\n } else if (tpr) {\n to = `<=${tM}.${tm}.${tp}-${tpr}`;\n } else if (options?.includePrerelease) {\n to = `<${tM}.${tm}.${+tp + 1}-0`;\n } else {\n to = `<=${to}`;\n }\n\n return `${from} ${to}`.trim();\n }\n );\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { LoggerProvider } from './types/LoggerProvider';\nimport { Logger } from './types/Logger';\nimport { LoggerOptions } from './types/LoggerOptions';\nimport { NoopLogger } from './NoopLogger';\n\nexport class NoopLoggerProvider implements LoggerProvider {\n getLogger(\n _name: string,\n _version?: string | undefined,\n _options?: LoggerOptions | undefined\n ): Logger {\n return new NoopLogger();\n }\n}\n\nexport const NOOP_LOGGER_PROVIDER = new NoopLoggerProvider();\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { Hooked } from './RequireInTheMiddleSingleton';\n\nexport const ModuleNameSeparator = '/';\n\n/**\n * Node in a `ModuleNameTrie`\n */\nclass ModuleNameTrieNode {\n hooks: Array<{ hook: Hooked; insertedId: number }> = [];\n children: Map = new Map();\n}\n\ntype ModuleNameTrieSearchOptions = {\n /**\n * Whether to return the results in insertion order\n */\n maintainInsertionOrder?: boolean;\n /**\n * Whether to return only full matches\n */\n fullOnly?: boolean;\n};\n\n/**\n * Trie containing nodes that represent a part of a module name (i.e. the parts separated by forward slash)\n */\nexport class ModuleNameTrie {\n private _trie: ModuleNameTrieNode = new ModuleNameTrieNode();\n private _counter: number = 0;\n\n /**\n * Insert a module hook into the trie\n *\n * @param {Hooked} hook Hook\n */\n insert(hook: Hooked) {\n let trieNode = this._trie;\n\n for (const moduleNamePart of hook.moduleName.split(ModuleNameSeparator)) {\n let nextNode = trieNode.children.get(moduleNamePart);\n if (!nextNode) {\n nextNode = new ModuleNameTrieNode();\n trieNode.children.set(moduleNamePart, nextNode);\n }\n trieNode = nextNode;\n }\n trieNode.hooks.push({ hook, insertedId: this._counter++ });\n }\n\n /**\n * Search for matching hooks in the trie\n *\n * @param {string} moduleName Module name\n * @param {boolean} maintainInsertionOrder Whether to return the results in insertion order\n * @param {boolean} fullOnly Whether to return only full matches\n * @returns {Hooked[]} Matching hooks\n */\n search(\n moduleName: string,\n { maintainInsertionOrder, fullOnly }: ModuleNameTrieSearchOptions = {}\n ): Hooked[] {\n let trieNode = this._trie;\n const results: ModuleNameTrieNode['hooks'] = [];\n let foundFull = true;\n\n for (const moduleNamePart of moduleName.split(ModuleNameSeparator)) {\n const nextNode = trieNode.children.get(moduleNamePart);\n if (!nextNode) {\n foundFull = false;\n break;\n }\n if (!fullOnly) {\n results.push(...nextNode.hooks);\n }\n trieNode = nextNode;\n }\n\n if (fullOnly && foundFull) {\n results.push(...trieNode.hooks);\n }\n\n if (results.length === 0) {\n return [];\n }\n if (results.length === 1) {\n return [results[0].hook];\n }\n if (maintainInsertionOrder) {\n results.sort((a, b) => a.insertedId - b.insertedId);\n }\n return results.map(({ hook }) => hook);\n }\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ShimWrapped } from './types';\n\n/**\n * function to execute patched function and being able to catch errors\n * @param execute - function to be executed\n * @param onFinish - callback to run when execute finishes\n */\nexport function safeExecuteInTheMiddle(\n execute: () => T,\n onFinish: (e: Error | undefined, result: T | undefined) => void,\n preventThrowingError?: boolean\n): T {\n let error: Error | undefined;\n let result: T | undefined;\n try {\n result = execute();\n } catch (e) {\n error = e;\n } finally {\n onFinish(error, result);\n if (error && !preventThrowingError) {\n // eslint-disable-next-line no-unsafe-finally\n throw error;\n }\n // eslint-disable-next-line no-unsafe-finally\n return result as T;\n }\n}\n\n/**\n * Async function to execute patched function and being able to catch errors\n * @param execute - function to be executed\n * @param onFinish - callback to run when execute finishes\n */\nexport async function safeExecuteInTheMiddleAsync(\n execute: () => T,\n onFinish: (\n e: Error | undefined,\n result: T | undefined\n ) => Promise | void,\n preventThrowingError?: boolean\n): Promise {\n let error: Error | undefined;\n let result: T | undefined;\n try {\n result = await execute();\n } catch (e) {\n error = e;\n } finally {\n await onFinish(error, result);\n if (error && !preventThrowingError) {\n // eslint-disable-next-line no-unsafe-finally\n throw error;\n }\n // eslint-disable-next-line no-unsafe-finally\n return result as T;\n }\n}\n/**\n * Checks if certain function has been already wrapped\n * @param func\n */\nexport function isWrapped(func: unknown): func is ShimWrapped {\n return (\n typeof func === 'function' &&\n typeof (func as ShimWrapped).__original === 'function' &&\n typeof (func as ShimWrapped).__unwrap === 'function' &&\n (func as ShimWrapped).__wrapped === true\n );\n}\n","/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { TracerProvider, MeterProvider } from '@opentelemetry/api';\nimport { Instrumentation } from './types';\nimport { LoggerProvider } from '@opentelemetry/api-logs';\n\n/**\n * Enable instrumentations\n * @param instrumentations\n * @param tracerProvider\n * @param meterProvider\n */\nexport function enableInstrumentations(\n instrumentations: Instrumentation[],\n tracerProvider?: TracerProvider,\n meterProvider?: MeterProvider,\n loggerProvider?: LoggerProvider\n): void {\n for (let i = 0, j = instrumentations.length; i < j; i++) {\n const instrumentation = instrumentations[i];\n if (tracerProvider) {\n instrumentation.setTracerProvider(tracerProvider);\n }\n if (meterProvider) {\n instrumentation.setMeterProvider(meterProvider);\n }\n if (loggerProvider && instrumentation.setLoggerProvider) {\n instrumentation.setLoggerProvider(loggerProvider);\n }\n // instrumentations have been already enabled during creation\n // so enable only if user prevented that by setting enabled to false\n // this is to prevent double enabling but when calling register all\n // instrumentations should be now enabled\n if (!instrumentation.getConfig().enabled) {\n instrumentation.enable();\n }\n }\n}\n\n/**\n * Disable instrumentations\n * @param instrumentations\n */\nexport function disableInstrumentations(\n instrumentations: Instrumentation[]\n): void {\n instrumentations.forEach(instrumentation => instrumentation.disable());\n}\n","export const balanced = (\n a: string | RegExp,\n b: string | RegExp,\n str: string,\n) => {\n const ma = a instanceof RegExp ? maybeMatch(a, str) : a\n const mb = b instanceof RegExp ? maybeMatch(b, str) : b\n\n const r = ma !== null && mb != null && range(ma, mb, str)\n\n return (\n r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + ma.length, r[1]),\n post: str.slice(r[1] + mb.length),\n }\n )\n}\n\nconst maybeMatch = (reg: RegExp, str: string) => {\n const m = str.match(reg)\n return m ? m[0] : null\n}\n\nexport const range = (\n a: string,\n b: string,\n str: string,\n): undefined | [number, number] => {\n let begs: number[],\n beg: number | undefined,\n left: number,\n right: number | undefined = undefined,\n result: undefined | [number, number]\n let ai = str.indexOf(a)\n let bi = str.indexOf(b, ai + 1)\n let i = ai\n\n if (ai >= 0 && bi > 0) {\n if (a === b) {\n return [ai, bi]\n }\n begs = []\n left = str.length\n\n while (i >= 0 && !result) {\n if (i === ai) {\n begs.push(i)\n ai = str.indexOf(a, i + 1)\n } else if (begs.length === 1) {\n const r = begs.pop()\n if (r !== undefined) result = [r, bi]\n } else {\n beg = begs.pop()\n if (beg !== undefined && beg < left) {\n left = beg\n right = bi\n }\n\n bi = str.indexOf(b, i + 1)\n }\n\n i = ai < bi && ai >= 0 ? ai : bi\n }\n\n if (begs.length && right !== undefined) {\n result = [left, right]\n }\n }\n\n return result\n}\n","import { balanced } from 'balanced-match'\n\nconst escSlash = '\\0SLASH' + Math.random() + '\\0'\nconst escOpen = '\\0OPEN' + Math.random() + '\\0'\nconst escClose = '\\0CLOSE' + Math.random() + '\\0'\nconst escComma = '\\0COMMA' + Math.random() + '\\0'\nconst escPeriod = '\\0PERIOD' + Math.random() + '\\0'\nconst escSlashPattern = new RegExp(escSlash, 'g')\nconst escOpenPattern = new RegExp(escOpen, 'g')\nconst escClosePattern = new RegExp(escClose, 'g')\nconst escCommaPattern = new RegExp(escComma, 'g')\nconst escPeriodPattern = new RegExp(escPeriod, 'g')\nconst slashPattern = /\\\\\\\\/g\nconst openPattern = /\\\\{/g\nconst closePattern = /\\\\}/g\nconst commaPattern = /\\\\,/g\nconst periodPattern = /\\\\\\./g\n\nexport const EXPANSION_MAX = 100_000\n\nfunction numeric(str: string) {\n return !isNaN(str as any) ? parseInt(str, 10) : str.charCodeAt(0)\n}\n\nfunction escapeBraces(str: string) {\n return str\n .replace(slashPattern, escSlash)\n .replace(openPattern, escOpen)\n .replace(closePattern, escClose)\n .replace(commaPattern, escComma)\n .replace(periodPattern, escPeriod)\n}\n\nfunction unescapeBraces(str: string) {\n return str\n .replace(escSlashPattern, '\\\\')\n .replace(escOpenPattern, '{')\n .replace(escClosePattern, '}')\n .replace(escCommaPattern, ',')\n .replace(escPeriodPattern, '.')\n}\n\n/**\n * Basically just str.split(\",\"), but handling cases\n * where we have nested braced sections, which should be\n * treated as individual members, like {a,{b,c},d}\n */\nfunction parseCommaParts(str: string) {\n if (!str) {\n return ['']\n }\n\n const parts: string[] = []\n const m = balanced('{', '}', str)\n\n if (!m) {\n return str.split(',')\n }\n\n const { pre, body, post } = m\n const p = pre.split(',')\n\n p[p.length - 1] += '{' + body + '}'\n const postParts = parseCommaParts(post)\n if (post.length) {\n ;(p[p.length - 1] as string) += postParts.shift()\n p.push.apply(p, postParts)\n }\n\n parts.push.apply(parts, p)\n\n return parts\n}\n\nexport type BraceExpansionOptions = {\n max?: number\n}\n\nexport function expand(str: string, options: BraceExpansionOptions = {}) {\n if (!str) {\n return []\n }\n\n const { max = EXPANSION_MAX } = options\n\n // I don't know why Bash 4.3 does this, but it does.\n // Anything starting with {} will have the first two bytes preserved\n // but *only* at the top level, so {},a}b will not expand to anything,\n // but a{},b}c will be expanded to [a}c,abc].\n // One could argue that this is a bug in Bash, but since the goal of\n // this module is to match Bash's rules, we escape a leading {}\n if (str.slice(0, 2) === '{}') {\n str = '\\\\{\\\\}' + str.slice(2)\n }\n\n return expand_(escapeBraces(str), max, true).map(unescapeBraces)\n}\n\nfunction embrace(str: string) {\n return '{' + str + '}'\n}\n\nfunction isPadded(el: string) {\n return /^-?0\\d/.test(el)\n}\n\nfunction lte(i: number, y: number) {\n return i <= y\n}\n\nfunction gte(i: number, y: number) {\n return i >= y\n}\n\nfunction expand_(str: string, max: number, isTop: boolean): string[] {\n /** @type {string[]} */\n const expansions: string[] = []\n\n const m = balanced('{', '}', str)\n if (!m) return [str]\n\n // no need to expand pre, since it is guaranteed to be free of brace-sets\n const pre = m.pre\n const post: string[] = m.post.length ? expand_(m.post, max, false) : ['']\n\n if (/\\$$/.test(m.pre)) {\n for (let k = 0; k < post.length && k < max; k++) {\n const expansion = pre + '{' + m.body + '}' + post[k]\n expansions.push(expansion)\n }\n } else {\n const isNumericSequence = /^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(m.body)\n const isAlphaSequence = /^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(\n m.body,\n )\n const isSequence = isNumericSequence || isAlphaSequence\n const isOptions = m.body.indexOf(',') >= 0\n if (!isSequence && !isOptions) {\n // {a},b}\n if (m.post.match(/,(?!,).*\\}/)) {\n str = m.pre + '{' + m.body + escClose + m.post\n return expand_(str, max, true)\n }\n return [str]\n }\n\n let n: string[]\n if (isSequence) {\n n = m.body.split(/\\.\\./)\n } else {\n n = parseCommaParts(m.body)\n if (n.length === 1 && n[0] !== undefined) {\n // x{{a,b}}y ==> x{a}y x{b}y\n n = expand_(n[0], max, false).map(embrace)\n //XXX is this necessary? Can't seem to hit it in tests.\n /* c8 ignore start */\n if (n.length === 1) {\n return post.map(p => m.pre + n[0] + p)\n }\n /* c8 ignore stop */\n }\n }\n\n // at this point, n is the parts, and we know it's not a comma set\n // with a single entry.\n let N: string[]\n\n if (isSequence && n[0] !== undefined && n[1] !== undefined) {\n const x = numeric(n[0])\n const y = numeric(n[1])\n const width = Math.max(n[0].length, n[1].length)\n let incr =\n n.length === 3 && n[2] !== undefined ?\n Math.max(Math.abs(numeric(n[2])), 1)\n : 1\n let test = lte\n const reverse = y < x\n if (reverse) {\n incr *= -1\n test = gte\n }\n const pad = n.some(isPadded)\n\n N = []\n\n for (let i = x; test(i, y); i += incr) {\n let c\n if (isAlphaSequence) {\n c = String.fromCharCode(i)\n if (c === '\\\\') {\n c = ''\n }\n } else {\n c = String(i)\n if (pad) {\n const need = width - c.length\n if (need > 0) {\n const z = new Array(need + 1).join('0')\n if (i < 0) {\n c = '-' + z + c.slice(1)\n } else {\n c = z + c\n }\n }\n }\n }\n N.push(c)\n }\n } else {\n N = []\n\n for (let j = 0; j < n.length; j++) {\n N.push.apply(N, expand_(n[j] as string, max, false))\n }\n }\n\n for (let j = 0; j < N.length; j++) {\n for (let k = 0; k < post.length && expansions.length < max; k++) {\n const expansion = pre + N[j] + post[k]\n if (!isTop || isSequence || expansion) {\n expansions.push(expansion)\n }\n }\n }\n }\n\n return expansions\n}\n","const MAX_PATTERN_LENGTH = 1024 * 64\nexport const assertValidPattern: (pattern: unknown) => void = (\n pattern: unknown,\n): asserts pattern is string => {\n if (typeof pattern !== 'string') {\n throw new TypeError('invalid pattern')\n }\n\n if (pattern.length > MAX_PATTERN_LENGTH) {\n throw new TypeError('pattern is too long')\n }\n}\n","// translate the various posix character classes into unicode properties\n// this works across all unicode locales\n\n// { : [, /u flag required, negated]\nconst posixClasses: { [k: string]: [e: string, u: boolean, n?: boolean] } =\n {\n '[:alnum:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}', true],\n '[:alpha:]': ['\\\\p{L}\\\\p{Nl}', true],\n '[:ascii:]': ['\\\\x' + '00-\\\\x' + '7f', false],\n '[:blank:]': ['\\\\p{Zs}\\\\t', true],\n '[:cntrl:]': ['\\\\p{Cc}', true],\n '[:digit:]': ['\\\\p{Nd}', true],\n '[:graph:]': ['\\\\p{Z}\\\\p{C}', true, true],\n '[:lower:]': ['\\\\p{Ll}', true],\n '[:print:]': ['\\\\p{C}', true],\n '[:punct:]': ['\\\\p{P}', true],\n '[:space:]': ['\\\\p{Z}\\\\t\\\\r\\\\n\\\\v\\\\f', true],\n '[:upper:]': ['\\\\p{Lu}', true],\n '[:word:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}\\\\p{Pc}', true],\n '[:xdigit:]': ['A-Fa-f0-9', false],\n }\n\n// only need to escape a few things inside of brace expressions\n// escapes: [ \\ ] -\nconst braceEscape = (s: string) => s.replace(/[[\\]\\\\-]/g, '\\\\$&')\n// escape all regexp magic characters\nconst regexpEscape = (s: string) =>\n s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n\n// everything has already been escaped, we just have to join\nconst rangesToString = (ranges: string[]): string => ranges.join('')\n\nexport type ParseClassResult = [\n src: string,\n uFlag: boolean,\n consumed: number,\n hasMagic: boolean,\n]\n\n// takes a glob string at a posix brace expression, and returns\n// an equivalent regular expression source, and boolean indicating\n// whether the /u flag needs to be applied, and the number of chars\n// consumed to parse the character class.\n// This also removes out of order ranges, and returns ($.) if the\n// entire class just no good.\nexport const parseClass = (\n glob: string,\n position: number,\n): ParseClassResult => {\n const pos = position\n /* c8 ignore start */\n if (glob.charAt(pos) !== '[') {\n throw new Error('not in a brace expression')\n }\n /* c8 ignore stop */\n const ranges: string[] = []\n const negs: string[] = []\n\n let i = pos + 1\n let sawStart = false\n let uflag = false\n let escaping = false\n let negate = false\n let endPos = pos\n let rangeStart = ''\n WHILE: while (i < glob.length) {\n const c = glob.charAt(i)\n if ((c === '!' || c === '^') && i === pos + 1) {\n negate = true\n i++\n continue\n }\n\n if (c === ']' && sawStart && !escaping) {\n endPos = i + 1\n break\n }\n\n sawStart = true\n if (c === '\\\\') {\n if (!escaping) {\n escaping = true\n i++\n continue\n }\n // escaped \\ char, fall through and treat like normal char\n }\n if (c === '[' && !escaping) {\n // either a posix class, a collation equivalent, or just a [\n for (const [cls, [unip, u, neg]] of Object.entries(posixClasses)) {\n if (glob.startsWith(cls, i)) {\n // invalid, [a-[] is fine, but not [a-[:alpha]]\n if (rangeStart) {\n return ['$.', false, glob.length - pos, true]\n }\n i += cls.length\n if (neg) negs.push(unip)\n else ranges.push(unip)\n uflag = uflag || u\n continue WHILE\n }\n }\n }\n\n // now it's just a normal character, effectively\n escaping = false\n if (rangeStart) {\n // throw this range away if it's not valid, but others\n // can still match.\n if (c > rangeStart) {\n ranges.push(braceEscape(rangeStart) + '-' + braceEscape(c))\n } else if (c === rangeStart) {\n ranges.push(braceEscape(c))\n }\n rangeStart = ''\n i++\n continue\n }\n\n // now might be the start of a range.\n // can be either c-d or c-] or c] or c] at this point\n if (glob.startsWith('-]', i + 1)) {\n ranges.push(braceEscape(c + '-'))\n i += 2\n continue\n }\n if (glob.startsWith('-', i + 1)) {\n rangeStart = c\n i += 2\n continue\n }\n\n // not the start of a range, just a single character\n ranges.push(braceEscape(c))\n i++\n }\n\n if (endPos < i) {\n // didn't see the end of the class, not a valid class,\n // but might still be valid as a literal match.\n return ['', false, 0, false]\n }\n\n // if we got no ranges and no negates, then we have a range that\n // cannot possibly match anything, and that poisons the whole glob\n if (!ranges.length && !negs.length) {\n return ['$.', false, glob.length - pos, true]\n }\n\n // if we got one positive range, and it's a single character, then that's\n // not actually a magic pattern, it's just that one literal character.\n // we should not treat that as \"magic\", we should just return the literal\n // character. [_] is a perfectly valid way to escape glob magic chars.\n if (\n negs.length === 0 &&\n ranges.length === 1 &&\n /^\\\\?.$/.test(ranges[0]) &&\n !negate\n ) {\n const r = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0]\n return [regexpEscape(r), false, endPos - pos, false]\n }\n\n const sranges = '[' + (negate ? '^' : '') + rangesToString(ranges) + ']'\n const snegs = '[' + (negate ? '' : '^') + rangesToString(negs) + ']'\n const comb =\n ranges.length && negs.length ? '(' + sranges + '|' + snegs + ')'\n : ranges.length ? sranges\n : snegs\n\n return [comb, uflag, endPos - pos, true]\n}\n","import type { MinimatchOptions } from './index.js'\n\n/**\n * Un-escape a string that has been escaped with {@link escape}.\n *\n * If the {@link MinimatchOptions.windowsPathsNoEscape} option is used, then\n * square-bracket escapes are removed, but not backslash escapes.\n *\n * For example, it will turn the string `'[*]'` into `*`, but it will not\n * turn `'\\\\*'` into `'*'`, because `\\` is a path separator in\n * `windowsPathsNoEscape` mode.\n *\n * When `windowsPathsNoEscape` is not set, then both square-bracket escapes and\n * backslash escapes are removed.\n *\n * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped\n * or unescaped.\n *\n * When `magicalBraces` is not set, escapes of braces (`{` and `}`) will not be\n * unescaped.\n */\n\nexport const unescape = (\n s: string,\n {\n windowsPathsNoEscape = false,\n magicalBraces = true,\n }: Pick = {},\n) => {\n if (magicalBraces) {\n return windowsPathsNoEscape ?\n s.replace(/\\[([^/\\\\])\\]/g, '$1')\n : s\n .replace(/((?!\\\\).|^)\\[([^/\\\\])\\]/g, '$1$2')\n .replace(/\\\\([^/])/g, '$1')\n }\n return windowsPathsNoEscape ?\n s.replace(/\\[([^/\\\\{}])\\]/g, '$1')\n : s\n .replace(/((?!\\\\).|^)\\[([^/\\\\{}])\\]/g, '$1$2')\n .replace(/\\\\([^/{}])/g, '$1')\n}\n","// parse a single path portion\n\nimport { parseClass } from './brace-expressions.js'\nimport type { MinimatchOptions, MMRegExp } from './index.js'\nimport { unescape } from './unescape.js'\n\n// classes [] are handled by the parseClass method\n// for positive extglobs, we sub-parse the contents, and combine,\n// with the appropriate regexp close.\n// for negative extglobs, we sub-parse the contents, but then\n// have to include the rest of the pattern, then the parent, etc.,\n// as the thing that cannot be because RegExp negative lookaheads\n// are different from globs.\n//\n// So for example:\n// a@(i|w!(x|y)z|j)b => ^a(i|w((!?(x|y)zb).*)z|j)b$\n// 1 2 3 4 5 6 1 2 3 46 5 6\n//\n// Assembling the extglob requires not just the negated patterns themselves,\n// but also anything following the negative patterns up to the boundary\n// of the current pattern, plus anything following in the parent pattern.\n//\n//\n// So, first, we parse the string into an AST of extglobs, without turning\n// anything into regexps yet.\n//\n// ['a', {@ [['i'], ['w', {!['x', 'y']}, 'z'], ['j']]}, 'b']\n//\n// Then, for all the negative extglobs, we append whatever comes after in\n// each parent as their tail\n//\n// ['a', {@ [['i'], ['w', {!['x', 'y'], 'z', 'b'}, 'z'], ['j']]}, 'b']\n//\n// Lastly, we turn each of these pieces into a regexp, and join\n//\n// v----- .* because there's more following,\n// v v otherwise, .+ because it must be\n// v v *something* there.\n// ['^a', {@ ['i', 'w(?:(!?(?:x|y).*zb$).*)z', 'j' ]}, 'b$']\n// copy what follows into here--^^^^^\n// ['^a', '(?:i|w(?:(?!(?:x|y).*zb$).*)z|j)', 'b$']\n// ['^a(?:i|w(?:(?!(?:x|y).*zb$).*)z|j)b$']\n\nexport type ExtglobType = '!' | '?' | '+' | '*' | '@'\nconst types = new Set(['!', '?', '+', '*', '@'])\nconst isExtglobType = (c: string | null): c is ExtglobType =>\n types.has(c as ExtglobType)\nconst isExtglobAST = (c: AST): c is AST & { type: ExtglobType } =>\n isExtglobType(c.type)\n\n// Map of which extglob types can adopt the children of a nested extglob\n//\n// anything but ! can adopt a matching type:\n// +(a|+(b|c)|d) => +(a|b|c|d)\n// *(a|*(b|c)|d) => *(a|b|c|d)\n// @(a|@(b|c)|d) => @(a|b|c|d)\n// ?(a|?(b|c)|d) => ?(a|b|c|d)\n//\n// * can adopt anything, because 0 or repetition is allowed\n// *(a|?(b|c)|d) => *(a|b|c|d)\n// *(a|+(b|c)|d) => *(a|b|c|d)\n// *(a|@(b|c)|d) => *(a|b|c|d)\n//\n// + can adopt @, because 1 or repetition is allowed\n// +(a|@(b|c)|d) => +(a|b|c|d)\n//\n// + and @ CANNOT adopt *, because 0 would be allowed\n// +(a|*(b|c)|d) => would match \"\", on *(b|c)\n// @(a|*(b|c)|d) => would match \"\", on *(b|c)\n//\n// + and @ CANNOT adopt ?, because 0 would be allowed\n// +(a|?(b|c)|d) => would match \"\", on ?(b|c)\n// @(a|?(b|c)|d) => would match \"\", on ?(b|c)\n//\n// ? can adopt @, because 0 or 1 is allowed\n// ?(a|@(b|c)|d) => ?(a|b|c|d)\n//\n// ? and @ CANNOT adopt * or +, because >1 would be allowed\n// ?(a|*(b|c)|d) => would match bbb on *(b|c)\n// @(a|*(b|c)|d) => would match bbb on *(b|c)\n// ?(a|+(b|c)|d) => would match bbb on +(b|c)\n// @(a|+(b|c)|d) => would match bbb on +(b|c)\n//\n// ! CANNOT adopt ! (nothing else can either)\n// !(a|!(b|c)|d) => !(a|b|c|d) would fail to match on b (not not b|c)\n//\n// ! can adopt @\n// !(a|@(b|c)|d) => !(a|b|c|d)\n//\n// ! CANNOT adopt *\n// !(a|*(b|c)|d) => !(a|b|c|d) would match on bbb, not allowed\n//\n// ! CANNOT adopt +\n// !(a|+(b|c)|d) => !(a|b|c|d) would match on bbb, not allowed\n//\n// ! CANNOT adopt ?\n// x!(a|?(b|c)|d) => x!(a|b|c|d) would fail to match \"x\"\nconst adoptionMap = new Map([\n ['!', ['@']],\n ['?', ['?', '@']],\n ['@', ['@']],\n ['*', ['*', '+', '?', '@']],\n ['+', ['+', '@']],\n])\n\n// nested extglobs that can be adopted in, but with the addition of\n// a blank '' element.\nconst adoptionWithSpaceMap = new Map([\n ['!', ['?']],\n ['@', ['?']],\n ['+', ['?', '*']],\n])\n\n// union of the previous two maps\nconst adoptionAnyMap = new Map([\n ['!', ['?', '@']],\n ['?', ['?', '@']],\n ['@', ['?', '@']],\n ['*', ['*', '+', '?', '@']],\n ['+', ['+', '@', '?', '*']],\n])\n\n// Extglobs that can take over their parent if they are the only child\n// the key is parent, value maps child to resulting extglob parent type\n// '@' is omitted because it's a special case. An `@` extglob with a single\n// member can always be usurped by that subpattern.\nconst usurpMap = new Map<\n ExtglobType,\n Map\n>([\n ['!', new Map([['!', '@']])],\n [\n '?',\n new Map([\n ['*', '*'],\n ['+', '*'],\n ]),\n ],\n [\n '@',\n new Map([\n ['!', '!'],\n ['?', '?'],\n ['@', '@'],\n ['*', '*'],\n ['+', '+'],\n ]),\n ],\n [\n '+',\n new Map([\n ['?', '*'],\n ['*', '*'],\n ]),\n ],\n])\n\n// Patterns that get prepended to bind to the start of either the\n// entire string, or just a single path portion, to prevent dots\n// and/or traversal patterns, when needed.\n// Exts don't need the ^ or / bit, because the root binds that already.\nconst startNoTraversal = '(?!(?:^|/)\\\\.\\\\.?(?:$|/))'\nconst startNoDot = '(?!\\\\.)'\n\n// characters that indicate a start of pattern needs the \"no dots\" bit,\n// because a dot *might* be matched. ( is not in the list, because in\n// the case of a child extglob, it will handle the prevention itself.\nconst addPatternStart = new Set(['[', '.'])\n// cases where traversal is A-OK, no dot prevention needed\nconst justDots = new Set(['..', '.'])\nconst reSpecials = new Set('().*{}+?[]^$\\\\!')\nconst regExpEscape = (s: string) =>\n s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n\n// any single thing other than /\nconst qmark = '[^/]'\n\n// * => any number of characters\nconst star = qmark + '*?'\n// use + when we need to ensure that *something* matches, because the * is\n// the only thing in the path portion.\nconst starNoEmpty = qmark + '+?'\n\n// remove the \\ chars that we added if we end up doing a nonmagic compare\n// const deslash = (s: string) => s.replace(/\\\\(.)/g, '$1')\n\nlet ID = 0\nexport class AST {\n type: ExtglobType | null\n readonly #root: AST\n\n #hasMagic?: boolean\n #uflag: boolean = false\n #parts: (string | AST)[] = []\n #parent?: AST\n #parentIndex: number\n #negs: AST[]\n #filledNegs: boolean = false\n #options: MinimatchOptions\n #toString?: string\n // set to true if it's an extglob with no children\n // (which really means one child of '')\n #emptyExt: boolean = false\n id = ++ID\n\n get depth(): number {\n return (this.#parent?.depth ?? -1) + 1\n }\n\n [Symbol.for('nodejs.util.inspect.custom')]() {\n return {\n '@@type': 'AST',\n id: this.id,\n type: this.type,\n root: this.#root.id,\n parent: this.#parent?.id,\n depth: this.depth,\n partsLength: this.#parts.length,\n parts: this.#parts,\n }\n }\n\n constructor(\n type: ExtglobType | null,\n parent?: AST,\n options: MinimatchOptions = {},\n ) {\n this.type = type\n // extglobs are inherently magical\n if (type) this.#hasMagic = true\n this.#parent = parent\n this.#root = this.#parent ? this.#parent.#root : this\n this.#options = this.#root === this ? options : this.#root.#options\n this.#negs = this.#root === this ? [] : this.#root.#negs\n if (type === '!' && !this.#root.#filledNegs) this.#negs.push(this)\n this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0\n }\n\n get hasMagic(): boolean | undefined {\n /* c8 ignore start */\n if (this.#hasMagic !== undefined) return this.#hasMagic\n /* c8 ignore stop */\n for (const p of this.#parts) {\n if (typeof p === 'string') continue\n if (p.type || p.hasMagic) return (this.#hasMagic = true)\n }\n // note: will be undefined until we generate the regexp src and find out\n return this.#hasMagic\n }\n\n // reconstructs the pattern\n toString(): string {\n return (\n this.#toString !== undefined ? this.#toString\n : !this.type ?\n (this.#toString = this.#parts.map(p => String(p)).join(''))\n : (this.#toString =\n this.type +\n '(' +\n this.#parts.map(p => String(p)).join('|') +\n ')')\n )\n }\n\n #fillNegs() {\n /* c8 ignore start */\n if (this !== this.#root) throw new Error('should only call on root')\n if (this.#filledNegs) return this\n /* c8 ignore stop */\n\n // call toString() once to fill this out\n this.toString()\n this.#filledNegs = true\n let n: AST | undefined\n while ((n = this.#negs.pop())) {\n if (n.type !== '!') continue\n // walk up the tree, appending everthing that comes AFTER parentIndex\n let p: AST | undefined = n\n let pp = p.#parent\n while (pp) {\n for (\n let i = p.#parentIndex + 1;\n !pp.type && i < pp.#parts.length;\n i++\n ) {\n for (const part of n.#parts) {\n /* c8 ignore start */\n if (typeof part === 'string') {\n throw new Error('string part in extglob AST??')\n }\n /* c8 ignore stop */\n part.copyIn(pp.#parts[i])\n }\n }\n p = pp\n pp = p.#parent\n }\n }\n return this\n }\n\n push(...parts: (string | AST)[]) {\n for (const p of parts) {\n if (p === '') continue\n /* c8 ignore start */\n if (\n typeof p !== 'string' &&\n !(p instanceof AST && p.#parent === this)\n ) {\n throw new Error('invalid part: ' + p)\n }\n /* c8 ignore stop */\n this.#parts.push(p)\n }\n }\n\n toJSON() {\n const ret: unknown[] =\n this.type === null ?\n this.#parts\n .slice()\n .map(p => (typeof p === 'string' ? p : p.toJSON()))\n : [this.type, ...this.#parts.map(p => (p as AST).toJSON())]\n if (this.isStart() && !this.type) ret.unshift([])\n if (\n this.isEnd() &&\n (this === this.#root ||\n (this.#root.#filledNegs && this.#parent?.type === '!'))\n ) {\n ret.push({})\n }\n return ret\n }\n\n isStart(): boolean {\n if (this.#root === this) return true\n // if (this.type) return !!this.#parent?.isStart()\n if (!this.#parent?.isStart()) return false\n if (this.#parentIndex === 0) return true\n // if everything AHEAD of this is a negation, then it's still the \"start\"\n const p = this.#parent\n for (let i = 0; i < this.#parentIndex; i++) {\n const pp = p.#parts[i]\n if (!(pp instanceof AST && pp.type === '!')) {\n return false\n }\n }\n return true\n }\n\n isEnd(): boolean {\n if (this.#root === this) return true\n if (this.#parent?.type === '!') return true\n if (!this.#parent?.isEnd()) return false\n if (!this.type) return this.#parent?.isEnd()\n // if not root, it'll always have a parent\n /* c8 ignore start */\n const pl = this.#parent ? this.#parent.#parts.length : 0\n /* c8 ignore stop */\n return this.#parentIndex === pl - 1\n }\n\n copyIn(part: AST | string) {\n if (typeof part === 'string') this.push(part)\n else this.push(part.clone(this))\n }\n\n clone(parent: AST) {\n const c = new AST(this.type, parent)\n for (const p of this.#parts) {\n c.copyIn(p)\n }\n return c\n }\n\n static #parseAST(\n str: string,\n ast: AST,\n pos: number,\n opt: MinimatchOptions,\n extDepth: number,\n ): number {\n const maxDepth = opt.maxExtglobRecursion ?? 2\n let escaping = false\n let inBrace = false\n let braceStart = -1\n let braceNeg = false\n if (ast.type === null) {\n // outside of a extglob, append until we find a start\n let i = pos\n let acc = ''\n while (i < str.length) {\n const c = str.charAt(i++)\n // still accumulate escapes at this point, but we do ignore\n // starts that are escaped\n if (escaping || c === '\\\\') {\n escaping = !escaping\n acc += c\n continue\n }\n\n if (inBrace) {\n if (i === braceStart + 1) {\n if (c === '^' || c === '!') {\n braceNeg = true\n }\n } else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n inBrace = false\n }\n acc += c\n continue\n } else if (c === '[') {\n inBrace = true\n braceStart = i\n braceNeg = false\n acc += c\n continue\n }\n\n // we don't have to check for adoption here, because that's\n // done at the other recursion point.\n const doRecurse =\n !opt.noext &&\n isExtglobType(c) &&\n str.charAt(i) === '(' &&\n extDepth <= maxDepth\n if (doRecurse) {\n ast.push(acc)\n acc = ''\n const ext = new AST(c, ast)\n i = AST.#parseAST(str, ext, i, opt, extDepth + 1)\n ast.push(ext)\n continue\n }\n acc += c\n }\n ast.push(acc)\n return i\n }\n\n // some kind of extglob, pos is at the (\n // find the next | or )\n let i = pos + 1\n let part = new AST(null, ast)\n const parts: AST[] = []\n let acc = ''\n while (i < str.length) {\n const c = str.charAt(i++)\n // still accumulate escapes at this point, but we do ignore\n // starts that are escaped\n if (escaping || c === '\\\\') {\n escaping = !escaping\n acc += c\n continue\n }\n\n if (inBrace) {\n if (i === braceStart + 1) {\n if (c === '^' || c === '!') {\n braceNeg = true\n }\n } else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n inBrace = false\n }\n acc += c\n continue\n } else if (c === '[') {\n inBrace = true\n braceStart = i\n braceNeg = false\n acc += c\n continue\n }\n\n const doRecurse =\n !opt.noext &&\n isExtglobType(c) &&\n str.charAt(i) === '(' &&\n /* c8 ignore start - the maxDepth is sufficient here */\n (extDepth <= maxDepth || (ast && ast.#canAdoptType(c)))\n /* c8 ignore stop */\n if (doRecurse) {\n const depthAdd = ast && ast.#canAdoptType(c) ? 0 : 1\n part.push(acc)\n acc = ''\n const ext = new AST(c, part)\n part.push(ext)\n i = AST.#parseAST(str, ext, i, opt, extDepth + depthAdd)\n continue\n }\n if (c === '|') {\n part.push(acc)\n acc = ''\n parts.push(part)\n part = new AST(null, ast)\n continue\n }\n if (c === ')') {\n if (acc === '' && ast.#parts.length === 0) {\n ast.#emptyExt = true\n }\n part.push(acc)\n acc = ''\n ast.push(...parts, part)\n return i\n }\n acc += c\n }\n\n // unfinished extglob\n // if we got here, it was a malformed extglob! not an extglob, but\n // maybe something else in there.\n ast.type = null\n ast.#hasMagic = undefined\n ast.#parts = [str.substring(pos - 1)]\n return i\n }\n\n #canAdoptWithSpace(child?: AST | string): child is AST & {\n type: null\n parts: [AST & { type: ExtglobType }]\n } {\n return this.#canAdopt(child, adoptionWithSpaceMap)\n }\n\n #canAdopt(\n child?: AST | string,\n map: Map = adoptionMap,\n ): child is AST & {\n type: null\n parts: [AST & { type: ExtglobType }]\n } {\n if (\n !child ||\n typeof child !== 'object' ||\n child.type !== null ||\n child.#parts.length !== 1 ||\n this.type === null\n ) {\n return false\n }\n const gc = child.#parts[0]\n if (!gc || typeof gc !== 'object' || gc.type === null) {\n return false\n }\n return (this as AST & { type: ExtglobType }).#canAdoptType(\n gc.type,\n map,\n )\n }\n #canAdoptType(\n c: string,\n map: Map = adoptionAnyMap,\n ): c is ExtglobType {\n return !!map.get(this.type as ExtglobType)?.includes(c as ExtglobType)\n }\n\n #adoptWithSpace(\n this: AST & { type: ExtglobType },\n child: AST & {\n type: null\n },\n index: number,\n ) {\n const gc = child.#parts[0] as AST & { type: ExtglobType }\n const blank = new AST(null, gc, this.options)\n blank.#parts.push('')\n gc.push(blank)\n this.#adopt(child, index)\n }\n\n #adopt(\n child: AST & {\n type: null\n },\n index: number,\n ) {\n const gc = child.#parts[0] as AST & { type: ExtglobType }\n this.#parts.splice(index, 1, ...gc.#parts)\n for (const p of gc.#parts) {\n if (typeof p === 'object') p.#parent = this\n }\n this.#toString = undefined\n }\n\n #canUsurpType(c: string): boolean {\n const m = usurpMap.get(this.type as ExtglobType)\n return !!m?.has(c as ExtglobType)\n }\n\n #canUsurp(child?: AST | string): child is AST & {\n type: null\n parts: [AST & { type: ExtglobType }]\n } {\n if (\n !child ||\n typeof child !== 'object' ||\n child.type !== null ||\n child.#parts.length !== 1 ||\n this.type === null ||\n this.#parts.length !== 1\n ) {\n return false\n }\n const gc = child.#parts[0]\n if (!gc || typeof gc !== 'object' || gc.type === null) {\n return false\n }\n return (this as AST & { type: ExtglobType }).#canUsurpType(gc.type)\n }\n\n #usurp(this: AST & { type: ExtglobType }, child: AST & { type: null }) {\n const m = usurpMap.get(this.type as ExtglobType)\n const gc = child.#parts[0] as AST & { type: ExtglobType }\n const nt = m?.get(gc.type)\n /* c8 ignore start - impossible */\n if (!nt) return false\n /* c8 ignore stop */\n this.#parts = gc.#parts\n for (const p of this.#parts) {\n if (typeof p === 'object') {\n p.#parent = this\n }\n }\n this.type = nt\n this.#toString = undefined\n this.#emptyExt = false\n }\n\n static fromGlob(pattern: string, options: MinimatchOptions = {}) {\n const ast = new AST(null, undefined, options)\n AST.#parseAST(pattern, ast, 0, options, 0)\n return ast\n }\n\n // returns the regular expression if there's magic, or the unescaped\n // string if not.\n toMMPattern(): MMRegExp | string {\n // should only be called on root\n /* c8 ignore start */\n if (this !== this.#root) return this.#root.toMMPattern()\n /* c8 ignore stop */\n const glob = this.toString()\n const [re, body, hasMagic, uflag] = this.toRegExpSource()\n // if we're in nocase mode, and not nocaseMagicOnly, then we do\n // still need a regular expression if we have to case-insensitively\n // match capital/lowercase characters.\n const anyMagic =\n hasMagic ||\n this.#hasMagic ||\n (this.#options.nocase &&\n !this.#options.nocaseMagicOnly &&\n glob.toUpperCase() !== glob.toLowerCase())\n if (!anyMagic) {\n return body\n }\n\n const flags = (this.#options.nocase ? 'i' : '') + (uflag ? 'u' : '')\n return Object.assign(new RegExp(`^${re}$`, flags), {\n _src: re,\n _glob: glob,\n })\n }\n\n get options() {\n return this.#options\n }\n\n // returns the string match, the regexp source, whether there's magic\n // in the regexp (so a regular expression is required) and whether or\n // not the uflag is needed for the regular expression (for posix classes)\n // TODO: instead of injecting the start/end at this point, just return\n // the BODY of the regexp, along with the start/end portions suitable\n // for binding the start/end in either a joined full-path makeRe context\n // (where we bind to (^|/), or a standalone matchPart context (where\n // we bind to ^, and not /). Otherwise slashes get duped!\n //\n // In part-matching mode, the start is:\n // - if not isStart: nothing\n // - if traversal possible, but not allowed: ^(?!\\.\\.?$)\n // - if dots allowed or not possible: ^\n // - if dots possible and not allowed: ^(?!\\.)\n // end is:\n // - if not isEnd(): nothing\n // - else: $\n //\n // In full-path matching mode, we put the slash at the START of the\n // pattern, so start is:\n // - if first pattern: same as part-matching mode\n // - if not isStart(): nothing\n // - if traversal possible, but not allowed: /(?!\\.\\.?(?:$|/))\n // - if dots allowed or not possible: /\n // - if dots possible and not allowed: /(?!\\.)\n // end is:\n // - if last pattern, same as part-matching mode\n // - else nothing\n //\n // Always put the (?:$|/) on negated tails, though, because that has to be\n // there to bind the end of the negated pattern portion, and it's easier to\n // just stick it in now rather than try to inject it later in the middle of\n // the pattern.\n //\n // We can just always return the same end, and leave it up to the caller\n // to know whether it's going to be used joined or in parts.\n // And, if the start is adjusted slightly, can do the same there:\n // - if not isStart: nothing\n // - if traversal possible, but not allowed: (?:/|^)(?!\\.\\.?$)\n // - if dots allowed or not possible: (?:/|^)\n // - if dots possible and not allowed: (?:/|^)(?!\\.)\n //\n // But it's better to have a simpler binding without a conditional, for\n // performance, so probably better to return both start options.\n //\n // Then the caller just ignores the end if it's not the first pattern,\n // and the start always gets applied.\n //\n // But that's always going to be $ if it's the ending pattern, or nothing,\n // so the caller can just attach $ at the end of the pattern when building.\n //\n // So the todo is:\n // - better detect what kind of start is needed\n // - return both flavors of starting pattern\n // - attach $ at the end of the pattern when creating the actual RegExp\n //\n // Ah, but wait, no, that all only applies to the root when the first pattern\n // is not an extglob. If the first pattern IS an extglob, then we need all\n // that dot prevention biz to live in the extglob portions, because eg\n // +(*|.x*) can match .xy but not .yx.\n //\n // So, return the two flavors if it's #root and the first child is not an\n // AST, otherwise leave it to the child AST to handle it, and there,\n // use the (?:^|/) style of start binding.\n //\n // Even simplified further:\n // - Since the start for a join is eg /(?!\\.) and the start for a part\n // is ^(?!\\.), we can just prepend (?!\\.) to the pattern (either root\n // or start or whatever) and prepend ^ or / at the Regexp construction.\n toRegExpSource(\n allowDot?: boolean,\n ): [re: string, body: string, hasMagic: boolean, uflag: boolean] {\n const dot = allowDot ?? !!this.#options.dot\n if (this.#root === this) {\n this.#flatten()\n this.#fillNegs()\n }\n if (!isExtglobAST(this)) {\n const noEmpty =\n this.isStart() &&\n this.isEnd() &&\n !this.#parts.some(s => typeof s !== 'string')\n const src = this.#parts\n .map(p => {\n const [re, _, hasMagic, uflag] =\n typeof p === 'string' ?\n AST.#parseGlob(p, this.#hasMagic, noEmpty)\n : p.toRegExpSource(allowDot)\n this.#hasMagic = this.#hasMagic || hasMagic\n this.#uflag = this.#uflag || uflag\n return re\n })\n .join('')\n\n let start = ''\n if (this.isStart()) {\n if (typeof this.#parts[0] === 'string') {\n // this is the string that will match the start of the pattern,\n // so we need to protect against dots and such.\n\n // '.' and '..' cannot match unless the pattern is that exactly,\n // even if it starts with . or dot:true is set.\n const dotTravAllowed =\n this.#parts.length === 1 && justDots.has(this.#parts[0])\n if (!dotTravAllowed) {\n const aps = addPatternStart\n // check if we have a possibility of matching . or ..,\n // and prevent that.\n const needNoTrav =\n // dots are allowed, and the pattern starts with [ or .\n (dot && aps.has(src.charAt(0))) ||\n // the pattern starts with \\., and then [ or .\n (src.startsWith('\\\\.') && aps.has(src.charAt(2))) ||\n // the pattern starts with \\.\\., and then [ or .\n (src.startsWith('\\\\.\\\\.') && aps.has(src.charAt(4)))\n // no need to prevent dots if it can't match a dot, or if a\n // sub-pattern will be preventing it anyway.\n const needNoDot = !dot && !allowDot && aps.has(src.charAt(0))\n\n start =\n needNoTrav ? startNoTraversal\n : needNoDot ? startNoDot\n : ''\n }\n }\n }\n\n // append the \"end of path portion\" pattern to negation tails\n let end = ''\n if (\n this.isEnd() &&\n this.#root.#filledNegs &&\n this.#parent?.type === '!'\n ) {\n end = '(?:$|\\\\/)'\n }\n const final = start + src + end\n return [\n final,\n unescape(src),\n (this.#hasMagic = !!this.#hasMagic),\n this.#uflag,\n ]\n }\n\n // We need to calculate the body *twice* if it's a repeat pattern\n // at the start, once in nodot mode, then again in dot mode, so a\n // pattern like *(?) can match 'x.y'\n\n const repeated = this.type === '*' || this.type === '+'\n // some kind of extglob\n const start = this.type === '!' ? '(?:(?!(?:' : '(?:'\n let body = (this as AST & { type: ExtglobType }).#partsToRegExp(dot)\n\n if (this.isStart() && this.isEnd() && !body && this.type !== '!') {\n // invalid extglob, has to at least be *something* present, if it's\n // the entire path portion.\n const s = this.toString()\n const me = this as AST\n me.#parts = [s]\n me.type = null\n me.#hasMagic = undefined\n return [s, unescape(this.toString()), false, false]\n }\n\n let bodyDotAllowed =\n !repeated || allowDot || dot || !startNoDot ?\n ''\n : this.#partsToRegExp(true)\n if (bodyDotAllowed === body) {\n bodyDotAllowed = ''\n }\n if (bodyDotAllowed) {\n body = `(?:${body})(?:${bodyDotAllowed})*?`\n }\n\n // an empty !() is exactly equivalent to a starNoEmpty\n let final = ''\n if (this.type === '!' && this.#emptyExt) {\n final = (this.isStart() && !dot ? startNoDot : '') + starNoEmpty\n } else {\n const close =\n this.type === '!' ?\n // !() must match something,but !(x) can match ''\n '))' +\n (this.isStart() && !dot && !allowDot ? startNoDot : '') +\n star +\n ')'\n : this.type === '@' ? ')'\n : this.type === '?' ? ')?'\n : this.type === '+' && bodyDotAllowed ? ')'\n : this.type === '*' && bodyDotAllowed ? `)?`\n : `)${this.type}`\n final = start + body + close\n }\n return [\n final,\n unescape(body),\n (this.#hasMagic = !!this.#hasMagic),\n this.#uflag,\n ]\n }\n\n #flatten() {\n if (!isExtglobAST(this)) {\n for (const p of this.#parts) {\n if (typeof p === 'object') {\n p.#flatten()\n }\n }\n } else {\n // do up to 10 passes to flatten as much as possible\n let iterations = 0\n let done = false\n do {\n done = true\n for (let i = 0; i < this.#parts.length; i++) {\n const c = this.#parts[i]\n if (typeof c === 'object') {\n c.#flatten()\n if (this.#canAdopt(c)) {\n done = false\n this.#adopt(c, i)\n } else if (this.#canAdoptWithSpace(c)) {\n done = false\n ;(this as AST & { type: ExtglobType }).#adoptWithSpace(c, i)\n } else if (this.#canUsurp(c)) {\n done = false\n ;(this as AST & { type: ExtglobType }).#usurp(c)\n }\n }\n }\n } while (!done && ++iterations < 10)\n }\n this.#toString = undefined\n }\n\n #partsToRegExp(this: AST & { type: ExtglobType }, dot: boolean) {\n return this.#parts\n .map(p => {\n // extglob ASTs should only contain parent ASTs\n /* c8 ignore start */\n if (typeof p === 'string') {\n throw new Error('string type in extglob ast??')\n }\n /* c8 ignore stop */\n // can ignore hasMagic, because extglobs are already always magic\n const [re, _, _hasMagic, uflag] = p.toRegExpSource(dot)\n this.#uflag = this.#uflag || uflag\n return re\n })\n .filter(p => !(this.isStart() && this.isEnd()) || !!p)\n .join('|')\n }\n\n static #parseGlob(\n glob: string,\n hasMagic: boolean | undefined,\n noEmpty: boolean = false,\n ): [re: string, body: string, hasMagic: boolean, uflag: boolean] {\n let escaping = false\n let re = ''\n let uflag = false\n // multiple stars that aren't globstars coalesce into one *\n let inStar = false\n for (let i = 0; i < glob.length; i++) {\n const c = glob.charAt(i)\n if (escaping) {\n escaping = false\n re += (reSpecials.has(c) ? '\\\\' : '') + c\n continue\n }\n if (c === '*') {\n if (inStar) continue\n inStar = true\n re += noEmpty && /^[*]+$/.test(glob) ? starNoEmpty : star\n hasMagic = true\n continue\n } else {\n inStar = false\n }\n if (c === '\\\\') {\n if (i === glob.length - 1) {\n re += '\\\\\\\\'\n } else {\n escaping = true\n }\n continue\n }\n if (c === '[') {\n const [src, needUflag, consumed, magic] = parseClass(glob, i)\n if (consumed) {\n re += src\n uflag = uflag || needUflag\n i += consumed - 1\n hasMagic = hasMagic || magic\n continue\n }\n }\n if (c === '?') {\n re += qmark\n hasMagic = true\n continue\n }\n re += regExpEscape(c)\n }\n return [re, unescape(glob), !!hasMagic, uflag]\n }\n}\n","import type { MinimatchOptions } from './index.js'\n\n/**\n * Escape all magic characters in a glob pattern.\n *\n * If the {@link MinimatchOptions.windowsPathsNoEscape}\n * option is used, then characters are escaped by wrapping in `[]`, because\n * a magic character wrapped in a character class can only be satisfied by\n * that exact character. In this mode, `\\` is _not_ escaped, because it is\n * not interpreted as a magic character, but instead as a path separator.\n *\n * If the {@link MinimatchOptions.magicalBraces} option is used,\n * then braces (`{` and `}`) will be escaped.\n */\nexport const escape = (\n s: string,\n {\n windowsPathsNoEscape = false,\n magicalBraces = false,\n }: Pick = {},\n) => {\n // don't need to escape +@! because we escape the parens\n // that make those magic, and escaping ! as [!] isn't valid,\n // because [!]] is a valid glob class meaning not ']'.\n if (magicalBraces) {\n return windowsPathsNoEscape ?\n s.replace(/[?*()[\\]{}]/g, '[$&]')\n : s.replace(/[?*()[\\]\\\\{}]/g, '\\\\$&')\n }\n return windowsPathsNoEscape ?\n s.replace(/[?*()[\\]]/g, '[$&]')\n : s.replace(/[?*()[\\]\\\\]/g, '\\\\$&')\n}\n","import { expand } from 'brace-expansion'\nimport { assertValidPattern } from './assert-valid-pattern.js'\nimport type { ExtglobType } from './ast.js'\nimport { AST } from './ast.js'\nimport { escape } from './escape.js'\nimport { unescape } from './unescape.js'\n\nexport type Platform =\n | 'aix'\n | 'android'\n | 'darwin'\n | 'freebsd'\n | 'haiku'\n | 'linux'\n | 'openbsd'\n | 'sunos'\n | 'win32'\n | 'cygwin'\n | 'netbsd'\n\nexport interface MinimatchOptions {\n /** do not expand `{x,y}` style braces */\n nobrace?: boolean\n /** do not treat patterns starting with `#` as a comment */\n nocomment?: boolean\n /** do not treat patterns starting with `!` as a negation */\n nonegate?: boolean\n /** print LOTS of debugging output */\n debug?: boolean\n /** treat `**` the same as `*` */\n noglobstar?: boolean\n /** do not expand extglobs like `+(a|b)` */\n noext?: boolean\n /** return the pattern if nothing matches */\n nonull?: boolean\n /** treat `\\\\` as a path separator, not an escape character */\n windowsPathsNoEscape?: boolean\n /**\n * inverse of {@link MinimatchOptions.windowsPathsNoEscape}\n * @deprecated\n */\n allowWindowsEscape?: boolean\n /**\n * Compare a partial path to a pattern. As long as the parts\n * of the path that are present are not contradicted by the\n * pattern, it will be treated as a match. This is useful in\n * applications where you're walking through a folder structure,\n * and don't yet have the full path, but want to ensure that you\n * do not walk down paths that can never be a match.\n */\n partial?: boolean\n /** allow matches that start with `.` even if the pattern does not */\n dot?: boolean\n /** ignore case */\n nocase?: boolean\n /** ignore case only in wildcard patterns */\n nocaseMagicOnly?: boolean\n /** consider braces to be \"magic\" for the purpose of `hasMagic` */\n magicalBraces?: boolean\n /**\n * If set, then patterns without slashes will be matched\n * against the basename of the path if it contains slashes.\n * For example, `a?b` would match the path `/xyz/123/acb`, but\n * not `/xyz/acb/123`.\n */\n matchBase?: boolean\n /** invert the results of negated matches */\n flipNegate?: boolean\n /** do not collapse multiple `/` into a single `/` */\n preserveMultipleSlashes?: boolean\n /**\n * A number indicating the level of optimization that should be done\n * to the pattern prior to parsing and using it for matches.\n */\n optimizationLevel?: number\n /** operating system platform */\n platform?: Platform\n /**\n * When a pattern starts with a UNC path or drive letter, and in\n * `nocase:true` mode, do not convert the root portions of the\n * pattern into a case-insensitive regular expression, and instead\n * leave them as strings.\n *\n * This is the default when the platform is `win32` and\n * `nocase:true` is set.\n */\n windowsNoMagicRoot?: boolean\n /**\n * max number of `{...}` patterns to expand. Default 100_000.\n */\n braceExpandMax?: number\n /**\n * Max number of non-adjacent `**` patterns to recursively walk down.\n *\n * The default of 200 is almost certainly high enough for most purposes,\n * and can handle absurdly excessive patterns.\n */\n maxGlobstarRecursion?: number\n\n /**\n * Max depth to traverse for nested extglobs like `*(a|b|c)`\n *\n * Default is 2, which is quite low, but any higher value\n * swiftly results in punishing performance impacts. Note\n * that this is *not* relevant when the globstar types can\n * be safely coalesced into a single set.\n *\n * For example, `*(a|@(b|c)|d)` would be flattened into\n * `*(a|b|c|d)`. Thus, many common extglobs will retain good\n * performance and never hit this limit, even if they are\n * excessively deep and complicated.\n *\n * If the limit is hit, then the extglob characters are simply\n * not parsed, and the pattern effectively switches into\n * `noextglob: true` mode for the contents of that nested\n * sub-pattern. This will typically _not_ result in a match,\n * but is considered a valid trade-off for security and\n * performance.\n */\n maxExtglobRecursion?: number\n}\n\nexport const minimatch = (\n p: string,\n pattern: string,\n options: MinimatchOptions = {},\n) => {\n assertValidPattern(pattern)\n\n // shortcut: comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n return false\n }\n\n return new Minimatch(pattern, options).match(p)\n}\n\n// Optimized checking for the most common glob patterns.\nconst starDotExtRE = /^\\*+([^+@!?*[(]*)$/\nconst starDotExtTest = (ext: string) => (f: string) =>\n !f.startsWith('.') && f.endsWith(ext)\nconst starDotExtTestDot = (ext: string) => (f: string) => f.endsWith(ext)\nconst starDotExtTestNocase = (ext: string) => {\n ext = ext.toLowerCase()\n return (f: string) => !f.startsWith('.') && f.toLowerCase().endsWith(ext)\n}\nconst starDotExtTestNocaseDot = (ext: string) => {\n ext = ext.toLowerCase()\n return (f: string) => f.toLowerCase().endsWith(ext)\n}\nconst starDotStarRE = /^\\*+\\.\\*+$/\nconst starDotStarTest = (f: string) =>\n !f.startsWith('.') && f.includes('.')\nconst starDotStarTestDot = (f: string) =>\n f !== '.' && f !== '..' && f.includes('.')\nconst dotStarRE = /^\\.\\*+$/\nconst dotStarTest = (f: string) =>\n f !== '.' && f !== '..' && f.startsWith('.')\nconst starRE = /^\\*+$/\nconst starTest = (f: string) => f.length !== 0 && !f.startsWith('.')\nconst starTestDot = (f: string) =>\n f.length !== 0 && f !== '.' && f !== '..'\nconst qmarksRE = /^\\?+([^+@!?*[(]*)?$/\nconst qmarksTestNocase = ([$0, ext = '']: RegExpMatchArray) => {\n const noext = qmarksTestNoExt([$0])\n if (!ext) return noext\n ext = ext.toLowerCase()\n return (f: string) => noext(f) && f.toLowerCase().endsWith(ext)\n}\nconst qmarksTestNocaseDot = ([$0, ext = '']: RegExpMatchArray) => {\n const noext = qmarksTestNoExtDot([$0])\n if (!ext) return noext\n ext = ext.toLowerCase()\n return (f: string) => noext(f) && f.toLowerCase().endsWith(ext)\n}\nconst qmarksTestDot = ([$0, ext = '']: RegExpMatchArray) => {\n const noext = qmarksTestNoExtDot([$0])\n return !ext ? noext : (f: string) => noext(f) && f.endsWith(ext)\n}\nconst qmarksTest = ([$0, ext = '']: RegExpMatchArray) => {\n const noext = qmarksTestNoExt([$0])\n return !ext ? noext : (f: string) => noext(f) && f.endsWith(ext)\n}\nconst qmarksTestNoExt = ([$0]: RegExpMatchArray) => {\n const len = $0.length\n return (f: string) => f.length === len && !f.startsWith('.')\n}\nconst qmarksTestNoExtDot = ([$0]: RegExpMatchArray) => {\n const len = $0.length\n return (f: string) => f.length === len && f !== '.' && f !== '..'\n}\n\n/* c8 ignore start */\nconst defaultPlatform: Platform = (\n typeof process === 'object' && process ?\n (typeof process.env === 'object' &&\n process.env &&\n process.env.__MINIMATCH_TESTING_PLATFORM__) ||\n process.platform\n : 'posix') as Platform\n\nexport type Sep = '\\\\' | '/'\n\nconst path: { [k: string]: { sep: Sep } } = {\n win32: { sep: '\\\\' },\n posix: { sep: '/' },\n}\n/* c8 ignore stop */\n\nexport const sep =\n defaultPlatform === 'win32' ? path.win32.sep : path.posix.sep\nminimatch.sep = sep\n\nexport const GLOBSTAR = Symbol('globstar **')\nminimatch.GLOBSTAR = GLOBSTAR\n\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nconst qmark = '[^/]'\n\n// * => any number of characters\nconst star = qmark + '*?'\n\n// ** when dots are allowed. Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nconst twoStarDot = '(?:(?!(?:\\\\/|^)(?:\\\\.{1,2})($|\\\\/)).)*?'\n\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nconst twoStarNoDot = '(?:(?!(?:\\\\/|^)\\\\.).)*?'\n\nexport const filter =\n (pattern: string, options: MinimatchOptions = {}) =>\n (p: string) =>\n minimatch(p, pattern, options)\nminimatch.filter = filter\n\nconst ext = (a: MinimatchOptions, b: MinimatchOptions = {}) =>\n Object.assign({}, a, b)\n\nexport const defaults = (def: MinimatchOptions): typeof minimatch => {\n if (!def || typeof def !== 'object' || !Object.keys(def).length) {\n return minimatch\n }\n\n const orig = minimatch\n\n const m = (p: string, pattern: string, options: MinimatchOptions = {}) =>\n orig(p, pattern, ext(def, options))\n\n return Object.assign(m, {\n Minimatch: class Minimatch extends orig.Minimatch {\n constructor(pattern: string, options: MinimatchOptions = {}) {\n super(pattern, ext(def, options))\n }\n static defaults(options: MinimatchOptions) {\n return orig.defaults(ext(def, options)).Minimatch\n }\n },\n\n AST: class AST extends orig.AST {\n /* c8 ignore start */\n constructor(\n type: ExtglobType | null,\n parent?: AST,\n options: MinimatchOptions = {},\n ) {\n super(type, parent, ext(def, options))\n }\n /* c8 ignore stop */\n\n static fromGlob(pattern: string, options: MinimatchOptions = {}) {\n return orig.AST.fromGlob(pattern, ext(def, options))\n }\n },\n\n unescape: (\n s: string,\n options: Pick<\n MinimatchOptions,\n 'windowsPathsNoEscape' | 'magicalBraces'\n > = {},\n ) => orig.unescape(s, ext(def, options)),\n\n escape: (\n s: string,\n options: Pick<\n MinimatchOptions,\n 'windowsPathsNoEscape' | 'magicalBraces'\n > = {},\n ) => orig.escape(s, ext(def, options)),\n\n filter: (pattern: string, options: MinimatchOptions = {}) =>\n orig.filter(pattern, ext(def, options)),\n\n defaults: (options: MinimatchOptions) =>\n orig.defaults(ext(def, options)),\n\n makeRe: (pattern: string, options: MinimatchOptions = {}) =>\n orig.makeRe(pattern, ext(def, options)),\n\n braceExpand: (pattern: string, options: MinimatchOptions = {}) =>\n orig.braceExpand(pattern, ext(def, options)),\n\n match: (\n list: string[],\n pattern: string,\n options: MinimatchOptions = {},\n ) => orig.match(list, pattern, ext(def, options)),\n\n sep: orig.sep,\n GLOBSTAR: GLOBSTAR as typeof GLOBSTAR,\n })\n}\nminimatch.defaults = defaults\n\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nexport const braceExpand = (\n pattern: string,\n options: MinimatchOptions = {},\n) => {\n assertValidPattern(pattern)\n\n // Thanks to Yeting Li for\n // improving this regexp to avoid a ReDOS vulnerability.\n if (options.nobrace || !/\\{(?:(?!\\{).)*\\}/.test(pattern)) {\n // shortcut. no need to expand.\n return [pattern]\n }\n\n return expand(pattern, { max: options.braceExpandMax })\n}\nminimatch.braceExpand = braceExpand\n\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion. Otherwise, any series\n// of * is equivalent to a single *. Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\n\nexport const makeRe = (pattern: string, options: MinimatchOptions = {}) =>\n new Minimatch(pattern, options).makeRe()\nminimatch.makeRe = makeRe\n\nexport const match = (\n list: string[],\n pattern: string,\n options: MinimatchOptions = {},\n) => {\n const mm = new Minimatch(pattern, options)\n list = list.filter(f => mm.match(f))\n if (mm.options.nonull && !list.length) {\n list.push(pattern)\n }\n return list\n}\nminimatch.match = match\n\n// replace stuff like \\* with *\nconst globMagic = /[?*]|[+@!]\\(.*?\\)|\\[|\\]/\nconst regExpEscape = (s: string) =>\n s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n\nexport type MMRegExp = RegExp & {\n _src?: string\n _glob?: string\n}\n\nexport type ParseReturnFiltered = string | MMRegExp | typeof GLOBSTAR\nexport type ParseReturn = ParseReturnFiltered | false\n\nexport class Minimatch {\n options: MinimatchOptions\n set: ParseReturnFiltered[][]\n pattern: string\n\n windowsPathsNoEscape: boolean\n nonegate: boolean\n negate: boolean\n comment: boolean\n empty: boolean\n preserveMultipleSlashes: boolean\n partial: boolean\n globSet: string[]\n globParts: string[][]\n nocase: boolean\n\n isWindows: boolean\n platform: Platform\n windowsNoMagicRoot: boolean\n maxGlobstarRecursion: number\n\n regexp: false | null | MMRegExp\n constructor(pattern: string, options: MinimatchOptions = {}) {\n assertValidPattern(pattern)\n\n options = options || {}\n this.options = options\n this.maxGlobstarRecursion = options.maxGlobstarRecursion ?? 200\n this.pattern = pattern\n this.platform = options.platform || defaultPlatform\n this.isWindows = this.platform === 'win32'\n // avoid the annoying deprecation flag lol\n const awe = ('allowWindow' + 'sEscape') as keyof MinimatchOptions\n this.windowsPathsNoEscape =\n !!options.windowsPathsNoEscape || options[awe] === false\n if (this.windowsPathsNoEscape) {\n this.pattern = this.pattern.replace(/\\\\/g, '/')\n }\n this.preserveMultipleSlashes = !!options.preserveMultipleSlashes\n this.regexp = null\n this.negate = false\n this.nonegate = !!options.nonegate\n this.comment = false\n this.empty = false\n this.partial = !!options.partial\n this.nocase = !!this.options.nocase\n this.windowsNoMagicRoot =\n options.windowsNoMagicRoot !== undefined ?\n options.windowsNoMagicRoot\n : !!(this.isWindows && this.nocase)\n\n this.globSet = []\n this.globParts = []\n this.set = []\n\n // make the set of regexps etc.\n this.make()\n }\n\n hasMagic(): boolean {\n if (this.options.magicalBraces && this.set.length > 1) {\n return true\n }\n for (const pattern of this.set) {\n for (const part of pattern) {\n if (typeof part !== 'string') return true\n }\n }\n return false\n }\n\n debug(..._: unknown[]) {}\n\n make() {\n const pattern = this.pattern\n const options = this.options\n\n // empty patterns and comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n this.comment = true\n return\n }\n\n if (!pattern) {\n this.empty = true\n return\n }\n\n // step 1: figure out negation, etc.\n this.parseNegate()\n\n // step 2: expand braces\n this.globSet = [...new Set(this.braceExpand())]\n\n if (options.debug) {\n //oxlint-disable-next-line no-console\n this.debug = (...args: unknown[]) => console.error(...args)\n }\n\n this.debug(this.pattern, this.globSet)\n\n // step 3: now we have a set, so turn each one into a series of\n // path-portion matching patterns.\n // These will be regexps, except in the case of \"**\", which is\n // set to the GLOBSTAR object for globstar behavior,\n // and will not contain any / characters\n //\n // First, we preprocess to make the glob pattern sets a bit simpler\n // and deduped. There are some perf-killing patterns that can cause\n // problems with a glob walk, but we can simplify them down a bit.\n const rawGlobParts = this.globSet.map(s => this.slashSplit(s))\n this.globParts = this.preprocess(rawGlobParts)\n this.debug(this.pattern, this.globParts)\n\n // glob --> regexps\n let set = this.globParts.map((s, _, __) => {\n if (this.isWindows && this.windowsNoMagicRoot) {\n // check if it's a drive or unc path.\n const isUNC =\n s[0] === '' &&\n s[1] === '' &&\n (s[2] === '?' || !globMagic.test(s[2])) &&\n !globMagic.test(s[3])\n const isDrive = /^[a-z]:/i.test(s[0])\n if (isUNC) {\n return [\n ...s.slice(0, 4),\n ...s.slice(4).map(ss => this.parse(ss)),\n ]\n } else if (isDrive) {\n return [s[0], ...s.slice(1).map(ss => this.parse(ss))]\n }\n }\n return s.map(ss => this.parse(ss))\n })\n\n this.debug(this.pattern, set)\n\n // filter out everything that didn't compile properly.\n this.set = set.filter(\n s => s.indexOf(false) === -1,\n ) as ParseReturnFiltered[][]\n\n // do not treat the ? in UNC paths as magic\n if (this.isWindows) {\n for (let i = 0; i < this.set.length; i++) {\n const p = this.set[i]\n if (\n p[0] === '' &&\n p[1] === '' &&\n this.globParts[i][2] === '?' &&\n typeof p[3] === 'string' &&\n /^[a-z]:$/i.test(p[3])\n ) {\n p[2] = '?'\n }\n }\n }\n\n this.debug(this.pattern, this.set)\n }\n\n // various transforms to equivalent pattern sets that are\n // faster to process in a filesystem walk. The goal is to\n // eliminate what we can, and push all ** patterns as far\n // to the right as possible, even if it increases the number\n // of patterns that we have to process.\n preprocess(globParts: string[][]) {\n // if we're not in globstar mode, then turn ** into *\n if (this.options.noglobstar) {\n for (const partset of globParts) {\n for (let j = 0; j < partset.length; j++) {\n if (partset[j] === '**') {\n partset[j] = '*'\n }\n }\n }\n }\n\n const { optimizationLevel = 1 } = this.options\n\n if (optimizationLevel >= 2) {\n // aggressive optimization for the purpose of fs walking\n globParts = this.firstPhasePreProcess(globParts)\n globParts = this.secondPhasePreProcess(globParts)\n } else if (optimizationLevel >= 1) {\n // just basic optimizations to remove some .. parts\n globParts = this.levelOneOptimize(globParts)\n } else {\n // just collapse multiple ** portions into one\n globParts = this.adjascentGlobstarOptimize(globParts)\n }\n\n return globParts\n }\n\n // just get rid of adjascent ** portions\n adjascentGlobstarOptimize(globParts: string[][]) {\n return globParts.map(parts => {\n let gs: number = -1\n while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n let i = gs\n while (parts[i + 1] === '**') {\n i++\n }\n if (i !== gs) {\n parts.splice(gs, i - gs)\n }\n }\n return parts\n })\n }\n\n // get rid of adjascent ** and resolve .. portions\n levelOneOptimize(globParts: string[][]) {\n return globParts.map(parts => {\n parts = parts.reduce((set: string[], part) => {\n const prev = set[set.length - 1]\n if (part === '**' && prev === '**') {\n return set\n }\n if (part === '..') {\n if (prev && prev !== '..' && prev !== '.' && prev !== '**') {\n set.pop()\n return set\n }\n }\n set.push(part)\n return set\n }, [])\n return parts.length === 0 ? [''] : parts\n })\n }\n\n levelTwoFileOptimize(parts: string | string[]) {\n if (!Array.isArray(parts)) {\n parts = this.slashSplit(parts)\n }\n let didSomething: boolean = false\n\n do {\n didSomething = false\n //